<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>ok..well...some provision I guess eventually should be made for those who agree with you and Tony.<BR>
What will come first is something else. :)<BR>
 A system that is Win32 as much as possible, EXCEPT that it uses the gcc-based backend, and as, and ld, and maybe throws around some forward slashes here and there.<BR>
 <BR>
I weakly propose:<BR>
  NT386GNU be deleted<BR>
  and NT386MINGWIN (NT386MING? I386_MINGWIN? X86_MINGWIN?)<BR>
  and NT386CYGWIN (NT386CYG? I386_CYGWIN? X86_CYGWIN?)<BR>
 takes its place.<BR>
 <BR>
but not right now.<BR>
 <BR>
However, it still might be one target, and you edit the config file.<BR>
It depends on what people define as a "target" and what it means for two "different" things to be the same "target".<BR>
The same target can link with same target. To a huge extent, NT386 can link with NT386GNU.<BR>
Different targets get installed to different pkg directories.<BR>
 <BR>
SOLgnu and SOLsun might provide a similar set of questions/answers, not that I know anything about it. :)<BR>
 <BR>
Anyway, I'm in a practical mode now, so I'll stop rambling in email. :)<BR>
 <BR>
There's also the matter of X Windows or not...<BR>
 <BR>
 - Jay<BR><BR>
<HR id=stopSpelling>
> To: jayk123@hotmail.com<BR>> CC: m3devel@elegosoft.com<BR>> Subject: Re: [M3devel] religion, philosophy, Posix vs. Win32 <BR>> Date: Sun, 13 Jan 2008 16:40:17 -0800<BR>> From: mika@async.caltech.edu<BR>> <BR>> Jay,<BR>> <BR>> I don't know if this is completely responsive to your question, and<BR>> take it with a grain of salt because I have never programmed on a<BR>> "pure" Windows system (and God willing, I never shall).<BR>> <BR>> I expect the NT386GNU target, Cygwin, Windows-POSIX, whatever you<BR>> call it, to look as much as Unix "as possible." (Obviously not,<BR>> but as "reasonable".) The main things are (1) yes, /bin/sh, and<BR>> (2) Unix (POSIX?) libc---Modula-3 does a good job of covering up<BR>> the basic stuff so you don't need to worry about it for the most<BR>> part, but sometimes, just sometimes, you need to get, say, some<BR>> system information that doesn't have an existing M3 interface (say<BR>> the amount of free diskspace or something like that). Then you<BR>> should be able to call C code that is portable between Unix and<BR>> Windows.<BR>> <BR>> One thing that is bizarre about the old NT386GNU PM3 that doesn't<BR>> conform to the above description: it uses Windows Time.T. It's all<BR>> the more bizarre because Cygwin uses Unix time_t. (Time.Now and<BR>> time(3) are off by a couple of hundred years on NT386GNU, whereas<BR>> they are the same on all Unixes.) I am sure there are other things.<BR>> Oh yes, the open-file (default) locking semantics are different<BR>> too. Those two are actually the only differences that I noticed<BR>> in the programming environments.<BR>> <BR>> Mika<BR>> <BR>> Jay writes:<BR>> >--_d0659847-2f20-454a-9665-5df3b5ce2832_<BR>> >Content-Type: text/plain; charset="iso-8859-1"<BR>> >Content-Transfer-Encoding: quoted-printable<BR>> ><BR>> >The conclusion here is:<BR>> > Just try to convince me otherwise. :)<BR>> ><BR>> >The gist of the question is:<BR>> > Just what characteristics of "Posix" and "Win32" should "NT386GNU" have?<BR>> ><BR>> > Just what characteristics of "Posix" do people notice and like?<BR>> >You can't say "the whole thing". :)<BR>> ><BR>> >Restated:<BR>> ><BR>> >What is Posix? I don't mean, where is the standard document web site.<BR>> >I mean what is it TO YOU?<BR>> ><BR>> >Is it open/read/write/close?<BR>> >Is it fork?<BR>> >Is it sbrk?<BR>> > On these previous ones, they are interesting to many programmers,<BR>> > but Modula-3 already layers over all this, so these are unlikely defining<BR>> >characteristics here.<BR>> ><BR>> >Is it sh? Probably somewhat. But if have you sat in Cygwin sh much vs. cmd?<BR>> > It is annoying. Command line history is flaky. Paths are munged to say /cy=<BR>> >gdrive.<BR>> > You lose the critical F8 command line completion against history feature.<BR>> > You lose a lot of editing capability, but do gain some alternate possibly=<BR>> > "portable"<BR>> > similar.<BR>> ><BR>> >Is it Perl? No.<BR>> >Is it X Windows. I doubt it.<BR>> >Is it pthreads? Probably not.<BR>> > Or at least vtalarm? Maybe?<BR>> > Or setjmp/longjmp? Ok.<BR>> > Longjmp to the same buffer multiple times? Not likely.<BR>> > Longjmp to a place that has already returned? Not likely.<BR>> >All full paths starting with a forward slash? Maybe.<BR>> > Backward slash being a valid non-seperator path character? Maybe.<BR>> ><BR>> >Think about that last one.<BR>> >It is valid and occurs in Win32 code to treat forward slash and backward sl=<BR>> >ash the same.<BR>> >Some code does, some code does not.<BR>> >What if you just did that unconditionally, like even in Posix?<BR>> >What is the role of backward slash in Posix paths? It either just doesn't o=<BR>> >ccur,<BR>> >or is an escape character, or is a regular character. Something at a low le=<BR>> >vel<BR>> >could replace the backward slashes with forward slashes.<BR>> ><BR>> >I would like to change the code in m3-sys/cm3/m3path.m3 to treat backward s=<BR>> >lashes<BR>> >and forward slashes the same. Backward slashes just won't occur on Posix, r=<BR>> >ight?<BR>> >So far I have managed without this change, but not having it has bitten me =<BR>> >a few times.<BR>> >I do have the analogous change to the Win32 path code in m3core.<BR>> ><BR>> >It is the redundant filenames libfoo.a instead of foo.lib and libfoo.so ins=<BR>> >tead of foo.so?<BR>> >Perhaps. This seems dumb, redundant to me. Why have prefixes and suffixes?<BR>> >Don't suffixes suffice?<BR>> ><BR>> >That all said, I remain convinced that a useful intermediate or probably en=<BR>> >dpoint<BR>> >is a toolset that targets Windows using cm3cg, ld, as, but otherwise looks =<BR>> >like<BR>> >NT386 as much as possible. MAYBE alter the library names to libfoo.*.<BR>> ><BR>> >sh and make are needed for building cm3cg.<BR>> >I did use Cygwin for that. MinGWin sounds promising here too but I haven't =<BR>> >tried.<BR>> ><BR>> > - Jay<BR>> ><BR>> ><BR>> >_________________________________________________________________<BR>> >Get the power of Windows + Web with the new Windows Live.<BR>> >http://www.windowslive.com?ocid=3DTXT_TAGHM_Wave2_powerofwindows_012008=<BR>> ><BR>> >--_d0659847-2f20-454a-9665-5df3b5ce2832_<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;<BR>> >padding:0px<BR>> >}<BR>> >body.hmmessage<BR>> >{<BR>> >FONT-SIZE: 10pt;<BR>> >FONT-FAMILY:Tahoma<BR>> >}<BR>> ></style><BR>> ></head><BR>> ><body class=3D'hmmessage'>The conclusion here is:<br>&nbsp;Just try to conv=<BR>> >ince me otherwise. :)<br><br>The gist of the question is:<br>&nbsp; Just wh=<BR>> >at characteristics of "Posix" and "Win32" should "NT386GNU" have?<br><br>&n=<BR>> >bsp;Just what characteristics of "Posix" do people notice and like?<br>You =<BR>> >can't say "the whole thing". :)<br><br>Restated:<br><br>What is Posix? I do=<BR>> >n't mean, where is the standard document web site.<br>I mean what is it TO =<BR>> >YOU?<br><br>Is it open/read/write/close?<br>Is it fork?<br>Is it sbrk?<br>&=<BR>> >nbsp; On these previous ones, they are interesting to many programmers,<br>=<BR>> >&nbsp;but Modula-3 already layers over all this, so these are unlikely defi=<BR>> >ning<br>characteristics here.<br><br>Is it sh? Probably somewhat. But if ha=<BR>> >ve you sat in Cygwin sh much vs. cmd?<br>&nbsp;It is annoying. Command line=<BR>> > history is flaky. Paths are munged to say /cygdrive.<br>&nbsp;You lose the=<BR>> > critical F8 command line completion against history feature.<br>&nbsp; You=<BR>> > lose a lot of editing capability, but do gain some alternate possibly "por=<BR>> >table"<br>&nbsp; similar.<br><br>Is it Perl? No.<br>Is it X Windows. I doub=<BR>> >t it.<br>Is it pthreads? Probably not.<br>&nbsp; Or at least vtalarm? Maybe=<BR>> >?<br>&nbsp; Or setjmp/longjmp? Ok.<br>&nbsp;&nbsp;&nbsp; Longjmp to the sam=<BR>> >e buffer multiple times? Not likely.<br>&nbsp;&nbsp;&nbsp; Longjmp to a pla=<BR>> >ce that has already returned? Not likely.<br>All full paths starting with a=<BR>> > forward slash? Maybe.<br>&nbsp; Backward slash being a valid non-seperator=<BR>> > path character? Maybe.<br><br>Think about that last one.<br>It is valid an=<BR>> >d occurs in Win32 code to treat forward slash and backward slash the same.<=<BR>> >br>Some code does, some code does not.<br>What if you just did that uncondi=<BR>> >tionally, like even in Posix?<br>What is the role of backward slash in Posi=<BR>> >x paths? It either just doesn't occur,<br>or is an escape character, or is =<BR>> >a regular character. Something at a low level<br>could replace the backward=<BR>> > slashes with forward slashes.<br><br>I would like to change the code in m3=<BR>> >-sys/cm3/m3path.m3 to treat backward slashes<br>and forward slashes the sam=<BR>> >e. Backward slashes just won't occur on Posix, right?<br>So far I have mana=<BR>> >ged without this change, but not having it has bitten me a few times.<br>I =<BR>> >do have the analogous change to the Win32 path code in m3core.<br><br>It is=<BR>> > the redundant filenames libfoo.a instead of foo.lib and libfoo.so instead =<BR>> >of foo.so?<br>Perhaps. This seems dumb, redundant to me. Why have prefixes =<BR>> >and suffixes?<br>Don't suffixes suffice?<br><br>That all said, I remain con=<BR>> >vinced that a useful intermediate or probably endpoint<br>is a toolset that=<BR>> > targets Windows using cm3cg, ld, as, but otherwise looks like<br>NT386 as =<BR>> >much as possible. MAYBE alter the library names to libfoo.*.<br><br>sh and =<BR>> >make are needed for building cm3cg.<br>I did use Cygwin for that. MinGWin s=<BR>> >ounds promising here too but I haven't tried.<br><br>&nbsp;- Jay<br><br><br=<BR>> > /><hr />Get the power of Windows + Web with the new Windows Live. <a href=<BR>> >=3D'http://www.windowslive.com?ocid=3DTXT_TAGHM_Wave2_powerofwindows_012008=<BR>> >' target=3D'_new'>Get it now!</a></body><BR>> ></html>=<BR>> ><BR>> >--_d0659847-2f20-454a-9665-5df3b5ce2832_--<BR><BR><br /><hr />Put your friends on the big screen with Windows Vista® + Windows Live™. <a href='http://www.microsoft.com/windows/shop/specialoffers.mspx?ocid=TXT_TAGLM_CPC_MediaCtr_bigscreen_012008' target='_new'>Start now!</a></body>
</html>