Hi all,<br>Yes, I also noticed the Time.T issue in pm3 1.1.15 because I was trying to get compiled m3browser and I finally arranged to do that, but the program just broke, and I didn't know about cygwin differences against a real UNIX platform.<br><br>Also in that pm3 NT386GNU, the winvbt implementation was the one of dec-src not like current cm3 winvbt (that use WIDECHAR as I remember)<br><br>I tried to have the same interfaces to be able to use from m3browser.<br>Now fortunately you can compile m3browser with NT386 cm3 platform.<br><br>I just liked very much the way one can make a bootstrap from pm3 from one platform to another and make a minimal compiler for NT386GNU:<br>http://tkb.mpl.com/~tkb/software/misc/pm3-NT386GNU.patch<br><br>I couldn't repeat the above link instructions in a Debian Sarge machine, with all the pm3 Debian packages installed (available in the Debian Woody http://archive.debian.org/pool/main/p/pm3/ ) I think the reason was I was unable to do all the
 bootstrap process http://archive.debian.org/pool/main/p/pm3-i386<br><br><br>I would like to have that kind of posix to cygwin capability of port at least a minimal compiler/runtime system.<br><br>Also, talking  about the topic of port NT386 to NT386GNU (more than a year ago) I got some answer from Bert Laverman, <br><br><div class="reply_level0">Daniel Benavides wrote: </div> <div class="reply_level1">> What if we use the cygwin platform to run cm3, an use its runtime </div> <div class="reply_level1">> of linker and c Compiler? </div> <div class="reply_level0">"Normally this involves a speed penalty, because cygwin will emulate </div> <div class="reply_level0">a UNIX environment, and has to translate this to Windows calls. The </div> <div class="reply_level0">advantage is of course that you can ignore most differences between </div> <div class="reply_level0">Windows and UNIX. </div> <div class="reply_level0">If you don't want the speed penalty, and can take care
 of the </div> <div class="reply_level0">platform differences, then you can use the -mno-cygwin flag. However, </div> <div class="reply_level0">make sure you use only "real" Windows API calls." </div> <div class="reply_level0"><br></div> <div class="reply_level0">Bert Laverman<br></div><br><br>Thanks<br><br><br><br><b><i>Mika Nystrom <mika@async.caltech.edu></i></b> escribió:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> 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>><br>><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>><br>>The conclusion here is:<br> Just try to conv=<br>>ince me otherwise. :)<br><br>The gist of
 the question is:<br>  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>> 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> It is annoying. Command line=<br>> history is flaky. Paths are munged to say /cygdrive.<br> You lose the=<br>> critical F8 command line completion against history feature.<br>  You=<br>> lose a lot
 of editing capability, but do gain some alternate possibly "por=<br>>table"<br>  similar.<br><br>Is it Perl? No.<br>Is it X Windows. I doub=<br>>t it.<br>Is it pthreads? Probably not.<br>  Or at least vtalarm? Maybe=<br>>?<br>  Or setjmp/longjmp? Ok.<br>    Longjmp to the sam=<br>>e buffer multiple times? Not likely.<br>    Longjmp to a pla=<br>>ce that has already returned? Not likely.<br>All full paths starting with a=<br>> forward slash? Maybe.<br>  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> - Jay<br><br><br=><br>> /></br=><hr>Get the power of Windows + Web with the new Windows Live. <a href="%3Cbr">>=3D'http://www.windowslive.com?ocid=3DTXT_TAGHM_Wave2_powerofwindows_012008=<br>>' target=3D'_new'>Get it now!</a><br>>=<br>><br>>--_d0659847-2f20-454a-9665-5df3b5ce2832_--<br></blockquote><br><p>


      <hr size=1><br><font face="Verdana" size="-2">Web Revelación Yahoo! 2007:<br> Premio Favorita del Público - <a href="http://es.promotions.yahoo.com/revelacion2007/favoritos/">¡Vota tu preferida!</a></font>