<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-15">
<META content="MSHTML 6.00.6000.16762" name=GENERATOR></HEAD>
<BODY style="MARGIN: 4px 4px 1px">
<DIV>I do use Cygwin on occasion, but I'm not sure how most Cygwin users feel about it and Modula-3.</DIV>
<DIV> </DIV>
<DIV>Mika has a point that if you want to create an environment on Windows that is devoid of Microsoft tools, the Cygwin Modula-3 may be what you are looking for.</DIV>
<DIV> </DIV>
<DIV>On the other hand, I am in a camp of folks who don't mind using the Microsoft tools and want Modula-3 to work out of the box on Windows without having to add any other non-Microsoft stuff (like Cygwin).</DIV>
<DIV> </DIV>
<DIV>I think it is great for CM3 to be able to support both these camps!</DIV>
<DIV> </DIV>
<DIV>Thus, you will find me always advocating for keeping the "CM3 on Windows variant" where it will work on Windows using just the Microsoft tools. I am happy with the use of Windows threads and the native backend and use of the MS Visual Studio linker.</DIV>
<DIV> </DIV>
<DIV>Regards,</DIV>
<DIV>Randy Coleburn<BR><BR>>>> Mika Nystrom <mika@async.caltech.edu> 12/17/2008 10:10 PM >>><BR>Do Cygwin users really care about all that stuff?<BR><BR>The point of using Modula-3 on Cygwin is to turn a yucky Windows<BR>machine as close as possible into a friendly Unix environment...<BR>not to use a bunch of Microsoft tools and libraries---I would have<BR>thought that if you wanted to use Visual X-Y-Z then you wouldn't<BR>be using Cygwin but would be using the native Windows environment?<BR><BR>So yes I find it a bit odd that the ancient PM3-Klagenfurt I still<BR>occasionally use on Windows uses Windows threads and has its own<BR>compiler back-end. But it's kind of cool too and since it's not<BR>really distinguishable from user-level threads and gcc I just think<BR>"great" and get on with it. In fact I'm not even sure it uses<BR>the integrated back end now that I think about it.<BR><BR>I think what I'm saying is that almost no Cygwin users are terribly<BR>interested in Microsoft interfaces, and I would bet most Cygwin<BR>users aren't even aware of the existence of most Microsoft tools.<BR>They (we) want as little to do with Windows as possible....<BR><BR> Mika<BR><BR>Jay writes:<BR>>--_c7ada8a5-5684-4472-b0c7-b49c8c279dc2_<BR>>Content-Type: text/plain; charset="iso-8859-1"<BR>>Content-Transfer-Encoding: quoted-printable<BR>><BR>><BR>><BR>>From: TonyTo: jay<BR>>I would have thought of CygWin as a POSIX platform that just happens to hav=<BR>>e Windows underneath. Did we go round this roundabout before?<BR>><BR>><BR>><BR>><BR>><BR>>It's more complicated than that.<BR>>It isn't just one bit.<BR>>There's a few factors=2C that people care more and less about.<BR>> GUI library -- Win32 or X<BR>> thread library -- pthreads or Win32 (or user threads)=20<BR>> file system path representation -- forward slashes or backward slashes =<BR>> This seems to be what people care most about -- to see forward slashes.<BR>> C compiler -- Visual C++ cl or Cygwin/GNU gcc<BR>> linker -- Visual C++ link or Cygwin/GNU ld=20<BR>> C runtime -- msvcr*.dll or cygwin1.dll=20<BR>> integrated backend or not The integrated backend is way faster=2C but=<BR>> doesn't yet support 64bit LONGINT.<BR>> which debugger/symbol format -- gdb/stabs or windbg/VisuaStudio/CodeView/=<BR>>pdb<BR>>Many of these factors are independent of each other=2C but not entirely.<BR>>Compiler/linker directly lead to which debugger you can use=2C since they =<BR>>each use different formats.<BR>>Well=2C you can use either debugger=2C but..without symbols..at least for s=<BR>>ome modules.<BR>>The Cygwin C runtime and Visual C++ linker disagreeon the name of __ImageBa=<BR>>se=2C so you can't link to the Cygwin C runtime with theVisual C++ linker. =<BR>>This is probably fixable at least in one combination withan alias (ability =<BR>>to link Cygwin C runtime with Visual C++ linker=3B I don'tknow if Cygwin/GN=<BR>>U ld understands aliases).<BR>>I have also found that Cygwin produces incorrectimport .libs=2C perhaps the=<BR>>ir linker somehow accepts them.<BR>>=20<BR>>Cygwin can program the Win32 GUI=2C but there is an issue with passing 8 by=<BR>>te structs by value to __stdcall functions=2C the function name isn't mangl=<BR>>ed correctly and linking fails.<BR>>It is a bit of a combinatorial explosion.As the system stands=2C you can co=<BR>>ntrol each bit in the config file=2C andmultiple combinations might work=2C=<BR>> though I don't run any combinatorial tests.<BR>>Three combinations are "identified" (named=2C spoken of) and have had some =<BR>>development testing.NT386=2C NT386MINGNU (which I think should be called I3=<BR>>86_MINGWIN)=2C and NT386GNU (which I think should be called I386_CYGWIN).<BR>>Furthermore=2C you can imagine I386_INTERIX and I386_UWIN (I forget if that=<BR>>'s the name).Interix and UWIN being two other very viable Posix layers on W=<BR>>indows.Interix has been renamed a few times. It is called "SFU" -- services=<BR>> for Unix=2C and I don't know=2Clike SUA -- services for unix applications=<BR>>=2C and I think there's another name.It is a free download from Microsoft f=<BR>>or x86 Windows < Vista=2C and is an optional component in Vista.It has its =<BR>>pluses and minuses..not now.<BR>>Anyway=2C in conversation here=2C one of the main things that people DO NOT=<BR>> care aboutis which thread library is used.<BR>>I believe it was asserted that PM3/NT386GNU did work=2C but that it might h=<BR>>ave used Win32 threads.<BR>>And maybe never had any GUI?<BR>>I tried getting pthreads to work=2C but gave up debugging it.Perhaps a fres=<BR>>h go at debugging it would pan out..but I'm really not too interested..<BR>>I also have no interest in user threads. I believe they are never warranted=<BR>>=2C excepton old systems that don't have kernel threads=2C like the hypothe=<BR>>tical DJGPP port.<BR>>I never brought up the issue of serial ports.I ASSUMED that almost nobody u=<BR>>ses them=2C and anyone that does use them=2C doesn'tcare if they are implem=<BR>>ented using Cygwin or Win32=2C as long as they work.<BR>>I ASSUME there is no interop issue=2C like getting an int fd from the seria=<BR>>l portand passing it to select() or close=2C or getting a Win32 HANDLE and =<BR>>passing itto WaitForSingleObject=2C but I could be wrong here=2C certainly.<BR>>I didn't look into if Cygwin is complete enough to implement them.I conside=<BR>>r serial ports to be kind of out on the fringe..that it wouldn't be surpris=<BR>>ing if Cygwin didn't implement them..but I didn't look. Heck=2C I tried bui=<BR>>lding minicom on some non-Linux system(s) recently and it failed miserably.=<BR>> I don't know if there is even much Posix portability option for serial por=<BR>>t programming.<BR>>Sure..I debug over a serial port=2C and lately have machines I can't get vi=<BR>>deoout of (Itanium) or even seem to have no video hardware (Sun)=2C so I us=<BR>>e a serial consolefor initial install (recent achievement :) still haven't =<BR>>installed over network..)=2C but that's still imho a big step away from wri=<BR>>ting code that uses the serial port.(And NetBSD doesn't support the local v=<BR>>ideo on SGI O2=2C but I'm running OpenBSD there for now.)<BR>>=20<BR>>Anyway=2C there are a few ways to look at this issue.More and less trivial.<BR>>A trivial view is: Get the filtering to work. Build serial on all platform=<BR>>s but Cygwin. Or see if the Posix code will work.<BR>> I'd be surprised if the intersection of Cygwin x Modula-3 x serial port p=<BR>>rogrammers is not 0=2C but could be. I actually don't think anyone is using=<BR>> Cygwin x Modula-3.<BR>>Another view is: Get the Win32 serial code to work on Cygwin. The code is=<BR>> already there=2C and buildable=2C but building in a system that also build=<BR>>s FilePosix.m3 breaks Modula-3 rules=2C you end up with two implementatio=<BR>>ns of the File interface. What you want=2C I think=2C is FilePosix.m3 to pr=<BR>>ovide the File interface=2C and FileWin32.m3 to provide just its own spec=<BR>>ific FileWin32 interface. I think this is a simple transform of the code.<BR>>Anyway=2C not a big deal...my tone here...is rushed=2C not rude=2C sorry.Ma=<BR>>ybe I'll get the truncation I deserve. :)<BR>> - Jay=<BR>><BR>>--_c7ada8a5-5684-4472-b0c7-b49c8c279dc2_<BR>>Content-Type: text/html; charset="iso-8859-1"<BR>>Content-Transfer-Encoding: quoted-printable<BR>><BR>><html><BR>><head><BR>><style><BR>>.hmmessage P<BR>>{<BR>>margin:0px=3B<BR>>padding:0px<BR>>}<BR>>body.hmmessage<BR>>{<BR>>font-size: 10pt=3B<BR>>font-family:Verdana<BR>>}<BR>></style><BR>></head><BR>><body class=3D'hmmessage'><BR>><HR id=3DstopSpelling><BR>>From: Tony<BR>To: jay<BR><BR><BR>><DIV>I would have thought of CygWin as a POSIX platform that just happens t=<BR>>o have Windows underneath.  =3BDid we go round this roundabout before?<=<BR>>/DIV><BR>><DIV><SPAN class=3DEC_Apple-style-span style=3D"WORD-SPACING: 0px=3B FONT: =<BR>>12px Helvetica=3B TEXT-TRANSFORM: none=3B COLOR: rgb(0=2C0=2C0)=3B TEXT-IND=<BR>>ENT: 0px=3B WHITE-SPACE: normal=3B LETTER-SPACING: normal=3B BORDER-COLLAPS=<BR>>E: separate"><BR>><DIV style=3D"WORD-WRAP: break-word"><SPAN class=3DEC_Apple-style-span styl=<BR>>e=3D"WORD-SPACING: 0px=3B FONT: 12px Helvetica=3B TEXT-TRANSFORM: none=3B C=<BR>>OLOR: rgb(0=2C0=2C0)=3B TEXT-INDENT: 0px=3B WHITE-SPACE: normal=3B LETTER-S=<BR>>PACING: normal=3B BORDER-COLLAPSE: separate"><SPAN class=3DEC_Apple-style-s=<BR>>pan style=3D"WORD-SPACING: 0px=3B FONT: 12px Helvetica=3B TEXT-TRANSFORM: n=<BR>>one=3B COLOR: rgb(0=2C0=2C0)=3B TEXT-INDENT: 0px=3B WHITE-SPACE: normal=3B =<BR>>LETTER-SPACING: normal=3B BORDER-COLLAPSE: separate"><SPAN class=3DEC_Apple=<BR>>-style-span style=3D"WORD-SPACING: 0px=3B FONT: 12px Helvetica=3B TEXT-TRAN=<BR>>SFORM: none=3B COLOR: rgb(0=2C0=2C0)=3B TEXT-INDENT: 0px=3B WHITE-SPACE: no=<BR>>rmal=3B LETTER-SPACING: normal=3B BORDER-COLLAPSE: separate"><SPAN class=3D=<BR>>EC_Apple-style-span style=3D"WORD-SPACING: 0px=3B FONT: 12px Helvetica=3B T=<BR>>EXT-TRANSFORM: none=3B COLOR: rgb(0=2C0=2C0)=3B TEXT-INDENT: 0px=3B WHITE-S=<BR>>PACE: normal=3B LETTER-SPACING: normal=3B BORDER-COLLAPSE: separate"><SPAN =<BR>>class=3DEC_Apple-style-span style=3D"WORD-SPACING: 0px=3B FONT: 12px Helvet=<BR>>ica=3B TEXT-TRANSFORM: none=3B COLOR: rgb(0=2C0=2C0)=3B TEXT-INDENT: 0px=3B=<BR>> WHITE-SPACE: normal=3B LETTER-SPACING: normal=3B BORDER-COLLAPSE: separate=<BR>>"><SPAN class=3DEC_Apple-style-span style=3D"WORD-SPACING: 0px=3B FONT: 12p=<BR>>x Helvetica=3B TEXT-TRANSFORM: none=3B COLOR: rgb(0=2C0=2C0)=3B TEXT-INDENT=<BR>>: 0px=3B WHITE-SPACE: normal=3B LETTER-SPACING: normal=3B BORDER-COLLAPSE: =<BR>>separate"><SPAN class=3DEC_Apple-style-span style=3D"WORD-SPACING: 0px=3B F=<BR>>ONT: 12px Helvetica=3B TEXT-TRANSFORM: none=3B COLOR: rgb(0=2C0=2C0)=3B TEX=<BR>>T-INDENT: 0px=3B WHITE-SPACE: normal=3B LETTER-SPACING: normal=3B BORDER-CO=<BR>>LLAPSE: separate"><SPAN class=3DEC_Apple-style-span style=3D"WORD-SPACING: =<BR>>0px=3B FONT: 12px Helvetica=3B TEXT-TRANSFORM: none=3B COLOR: rgb(0=2C0=2C0=<BR>>)=3B TEXT-INDENT: 0px=3B WHITE-SPACE: normal=3B LETTER-SPACING: normal=3B B=<BR>>ORDER-COLLAPSE: separate"><BR>><DIV><BR></DIV></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></DI=<BR>>V></SPAN></DIV><BR>><DIV><BR>><BLOCKQUOTE><SPAN class=3DEC_Apple-style-span style=3D"WORD-SPACING: 0px=3B=<BR>> FONT: 12px Helvetica=3B TEXT-TRANSFORM: none=3B COLOR: rgb(0=2C0=2C0)=3B T=<BR>>EXT-INDENT: 0px=3B WHITE-SPACE: normal=3B LETTER-SPACING: normal=3B BORDER-=<BR>>COLLAPSE: separate"><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>It's more complicated than that.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>It isn't just one bit.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>There's a few factors=2C that people care more and less about.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR> =3B GUI library =3B -- Win32 or X</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR> =3B thread library =3B -- pthreads or Win32 (or user threads)=<BR>> </DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR> =3B file system path representation -- forward slashes or backwar=<BR>>d slashes<BR> =3B =3B =3B This seems to be what people care mos=<BR>>t about -- to see forward slashes.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR> =3B C compiler -- Visual C++ cl or Cygwin/GNU gcc</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR> =3B linker -- Visual C++ link or Cygwin/GNU ld </DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR> =3B C runtime -- msvcr*.dll or cygwin1.dll </DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR> =3B integrated backend or not <BR> =3B =3B =3B The in=<BR>>tegrated backend is way faster=2C but doesn't yet support 64bit LONGINT.</D=<BR>>IV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR> =3B which debugger/symbol format =3B-- gdb/stabs or windbg/Vi=<BR>>suaStudio/CodeView/pdb</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>Many of these factors are independent of each other=2C but not entirel=<BR>>y.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>Compiler/linker directly lead to which debugger you can use=2C since<B=<BR>>R> =3B they each use different formats.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>Well=2C you can use either debugger=2C but..without symbols..at least =<BR>>for some modules.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>The Cygwin C runtime and Visual C++ linker disagree<BR>on the name of =<BR>>__ImageBase=2C so you can't link to the Cygwin C runtime with the<BR>Visual=<BR>> C++ linker. This is probably fixable at least in one combination with<BR>a=<BR>>n alias (ability to link Cygwin C runtime with Visual C++ linker=3B I don't=<BR>><BR>know if Cygwin/GNU ld understands aliases).</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>I have also found that Cygwin produces incorrect<BR>import .libs=2C pe=<BR>>rhaps their linker somehow accepts them.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>> =3B</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>>Cygwin can program the Win32 GUI=2C but there is an issue with passing 8 b=<BR>>yte structs by value to __stdcall functions=2C the function name isn't mang=<BR>>led correctly and linking fails.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>It is a bit of a combinatorial explosion.<BR>As the system stands=2C y=<BR>>ou can control each bit in the config file=2C and<BR>multiple combinations =<BR>>might work=2C though I don't run any combinatorial tests.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>Three combinations are "identified" (named=2C spoken of) =3Band ha=<BR>>ve had some development testing.<BR>NT386=2C NT386MINGNU (which I think sho=<BR>>uld be called I386_MINGWIN)=2C and NT386GNU (which I think should be called=<BR>> I386_CYGWIN).</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>Furthermore=2C you can imagine I386_INTERIX and I386_UWIN (I forget if=<BR>> that's the name).<BR>Interix and UWIN being two other very viable Posix la=<BR>>yers on Windows.<BR>Interix has been renamed a few times. It is called "SFU=<BR>>" -- services for Unix=2C and I don't know=2C<BR>like SUA -- services for u=<BR>>nix applications=2C and I think there's another name.<BR>It is a free downl=<BR>>oad from Microsoft for x86 Windows <=3B Vista=2C and is an optional compo=<BR>>nent in Vista.<BR>It has its pluses and minuses..not now.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>Anyway=2C in conversation here=2C one of the main things that people D=<BR>>O NOT care about<BR>is which thread library is used.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>I believe it was asserted that PM3/NT386GNU did work=2C but that it mi=<BR>>ght have used Win32 threads.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>>And maybe never had any GUI?</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>I tried getting pthreads to work=2C but gave up debugging it.<BR>Perha=<BR>>ps a fresh go at debugging it would pan out..but I'm really not too interes=<BR>>ted..</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>I also have no interest in user threads. I believe they are never warr=<BR>>anted=2C except<BR>on old systems that don't have kernel threads=2C like th=<BR>>e hypothetical DJGPP port.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>I never brought up the issue of serial ports.<BR>I ASSUMED that almost=<BR>> nobody uses them=2C and anyone that does use them=2C doesn't<BR>care if th=<BR>>ey are implemented using Cygwin or Win32=2C as long as they work.<BR></DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>>I ASSUME there is no interop issue=2C like getting an int fd from the seri=<BR>>al port<BR>and passing it to select() or close=2C or getting a Win32 HANDLE=<BR>> and passing it<BR>to WaitForSingleObject=2C but I could be wrong here=2C c=<BR>>ertainly.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>I didn't look into if Cygwin is complete enough to implement them.<BR>=<BR>>I consider serial ports to be kind of out on the fringe..that it wouldn't b=<BR>>e surprising if Cygwin didn't implement them..but I didn't look. Heck=2C I =<BR>>tried building minicom on some non-Linux system(s) recently and it failed m=<BR>>iserably. I don't know if there is even much Posix portability option for s=<BR>>erial port programming.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>Sure..I debug over a serial port=2C and lately have machines I can't g=<BR>>et video<BR>out of (Itanium) or even seem to have no video hardware (Sun)=<BR>>=2C so I use a serial console<BR>for initial install (recent achievement :)=<BR>> still haven't installed over network..)=2C but that's still imho a big ste=<BR>>p away from writing code that uses the serial port.<BR>(And NetBSD doesn't =<BR>>support the local video on SGI O2=2C but I'm running OpenBSD there for now.=<BR>>)</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>> =3B</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>Anyway=2C there are a few ways to look at this issue.<BR>More and less=<BR>> trivial.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>A trivial view is:<BR> =3B Get the filtering to work. Build serial=<BR>> on all platforms but Cygwin.<BR> =3B =3B Or see if the Posix code =<BR>>will work.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>> =3B I'd be surprised if the intersection of Cygwin x Modula-3 x seria=<BR>>l port programmers is not 0=2C but could be. I actually don't think anyone =<BR>>is using Cygwin x Modula-3.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>Another view is:<BR> =3B Get the Win32 serial code to work on Cygw=<BR>>in.<BR> =3B The code is already there=2C and buildable=2C but building =<BR>>in a system that also builds FilePosix.m3<BR> =3B =3B breaks Modula=<BR>>-3 rules=2C you end up with two implementations of the File interface.<BR>&=<BR>>nbsp=3BWhat you want=2C I think=2C is FilePosix.m3 to provide the File inte=<BR>>rface=2C and FileWin32.m3 to provide<BR> =3B =3B just its own speci=<BR>>fic FileWin32 interface.<BR> =3B I think this is a simple transform of =<BR>>the code.</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR>Anyway=2C not a big deal...my tone here...is rushed=2C not rude=2C sor=<BR>>ry.<BR>Maybe I'll get the truncation I deserve. :)</DIV><BR>><DIV class=3DEC_hmmessage style=3D"FONT-SIZE: 10pt=3B FONT-FAMILY: Verdana"=<BR>>><BR> =3B- Jay</DIV></SPAN></BLOCKQUOTE></DIV></body><BR>></html>=<BR>><BR>>--_c7ada8a5-5684-4472-b0c7-b49c8c279dc2_--<BR><BR></DIV></BODY></HTML>