[M3devel] [M3commit] CVS Update: cm3

Daniel Alejandro Benavides D. dabenavidesd at yahoo.es
Sun Jan 20 23:30:59 CET 2008


Hi:
Yes, there is some kind of support for /dev file system, though I have not used it, I think this documentation is reliable:
http://www.cygwin.com/cygwin-ug-net/using-specialnames.html

Well after all the things you are right because the license issues maybe affect the decision of some users of making use of cygwin (NT386GNU): 
Let's suppose that there is some user(s) interested more in WIN32 platform so we can expose a better support for that on NT386_MINGW  or in current NT386. 
The NT386GNU user(s) would be more appropriate for those interested in using more tools of a POSIX enviroment, let's say grep, gaw, POSIX functions of time, x server/client enviroment and all the stuff you can get to work on cygwin. So the second user has to pay (if he needs) attention on the licensing issues of all of the used tools.  

Thanks for the comments.
Daniel Benavides

Jay <jayk123 at hotmail.com> wrote:    .hmmessage P { margin:0px; padding:0px } body.hmmessage { FONT-SIZE: 10pt; FONT-FAMILY:Tahoma }  Daniel, yes it's true cygwin has like -mno-cygwin or something. I will have to try that.
Currently msys is required to build m3cc and cygwin is required to build m3gdb.
   m3gdb didn't have any type information anyway, so if you install cygwin, you can just use its gdb.
   (Note that cygwin is highly modular/package-based, so you can pick and chose what you install, there are many many many choices, so you don't automatically get gdb, you don't automatically even get gcc or ld/binutils.)
  
 Otherwise just MinGWin is required.
 Cygwin might just work. I'll try it before much longer.
  
 Is someone going to go ahead and create a new target? I guess I'm about able to.
 I think I finally fixed the major crash so can..take a break and then continue. Wow that was tedious.
 Once I can get a MinGWin distribution, I want to look at the pixmap bug, before looking into this new target..
 Maybe someone will beat me to it though?
  
 /dev does not appear in Cygwin, at least not with cd and ls on my system.
 I expect /dev/null will work. I do have a very limited installed of Cygwin now, as I was trying to understand roughly what is needed. I don't know what to expect from /dev in Cygwin. You might be asking for too much.
  
 $ ls /dev/null
/dev/null
 Jay at jay-win1 /
$ ls /proc
1312  cpuinfo  meminfo     registry  stat    version
3936  loadavg  partitions  self      uptime
 Jay at jay-win1 /
$ ls /dev
ls: cannot access /dev: No such file or directory
 $ ls /dev/tty
/dev/tty
 $ ls /dev/con
ls: cannot access /dev/con: No such file or directory
 Jay at jay-win1 /
$ ls /dev/fd0
/dev/fd0
 Jay at jay-win1 /
$ ls /dev/fd*
ls: cannot access /dev/fd*: No such file or directory
 Jay at jay-win1 /
$ ls /dev/hd0
ls: cannot access /dev/hd0: No such file or directory
 Jay at jay-win1 /
$ ls /dev/sc*
ls: cannot access /dev/sc*: No such file or directory

 I'm not sure what all to guess here.
 fd0 appears but I don't have a floppy disk.
  
 $ cat /proc/uptime
41101.28 32423.71
 Jay at jay-win1 /
$ cat /proc/version
CYGWIN_NT-5.1 1.5.25(0.156/4/2) 2007-12-14 19:21
  
 I'm inclined not to make any cygwin binary distributions until further reading of the license...
  
 There's still the X Windows vs. Win32 question...
  
  - Jay

  
---------------------------------
 Date: Sun, 20 Jan 2008 21:41:23 +0100
From: dabenavidesd at yahoo.es
Subject: Re: [M3devel] [M3commit] CVS Update: cm3
To: jayk123 at hotmail.com; wagner at elegosoft.com; m3devel at elegosoft.com

Hi:
I think for all the users that maybe NT386GNU is more thought like NT386cygwin, but if we see that GNU tools are used in projects like Mingw, that is a fork of cygwin and with the aim of programs running without the dependency on cygwin dll, that maybe guide us to say that the "old target" NT386GNU should be run with a cygwin enviroment.
The NT386_MINGW seems to be a nice name/description for the platform which no depends on cygwin.dll but a MinGW/MSYS enviroment.
Certainly I think the gnu toolchain is highly used by both the projects, and as I remember, when installing gcc on cygwin it also offers the mingw tool set to the cygwin enviroment to be installed. So let's say that projects are very related and cooperative, but are not the same.
So Jay, m3cc could be built on a cygwin enviroment and m3gdb?
If so, we can think in those two separeted platforms? although  cooperative for m3 developers.
I would like to see m3-lectern packages running on NT386GNU using the filesystem /dev, which is something that I wouldn't expect to be on the proposed NT386_MINGW platform.

Thanks


Jay <jayk123 at hotmail.com> wrote:    .ExternalClass .EC_hmmessage P {padding:0px;} .ExternalClass EC_body.hmmessage {font-size:10pt;font-family:Tahoma;}  > the infrastructure. So I'd rather vote that only new targets get
> more systematic names.

Of course, though the existing names suggest new names, and
not clear the value of the existing NT386GNU. Ie. is there a benefit
to keep it in use with some meaning or not?
 
Cygwin does have a larger jmpbuf than msvcr*.dll/mingwin.
I think it holds sigaction state besides register state.
 
"NT" and "Win" seem redundant.
 I386_MINGWIN? 
 I386_CYGWIN? 
 NT386_GNU? 
 NT386_MINGNU? 
 
Ok, I admit that
  NT386_CYGWIN
  NT386_MINGWIN
 
despite the redundancy, clearly point to existing projects that probably have name recognition.
And building from NT386 is reasonable -- as was I saying about existing names influencing new names.
 
A C generating backend gets you perhaps easier retargeting as well.
I do see there is "MINGWIN64" out there, for AMD64.
Not sure what the state of IA64 is though...
(See -- you should avoid saying "32" or "64" in stuff, Win32 => Win, Win64 => Win.)
 
I also would agree that creating one target instead of two is probably a good idea -- seems easier.
 
I am not sure if current state is relevant. I mean, is NT386GNU really working and in use anywhere? Is PM3 in use?
If so, then matching their meaning would be good. Or even going beyond that -- to Trestle on X Windows. :) (Though CygwinX doesn't exactly appear active.)
 
And thus the precedent for no underscore.
NT386MINGWIN ?
NT386MINGNU ?
 
I don't know if "MSYS" needs a place in this name.
It is needed for building m3cc.
 
I wonder if a hybrid/adaptive approach will be desired -- if Cygwin is available, the MinGWin target could use it to build m3gdb, since it can't otherwise.
 
Hint for anyone trying out Cygwin and getting an odd mix of paths:
mkdir \cygdrive
get junction.exe from the former www.sysinternals.com
junction \cygdrive\c c:\
now when some Cygwin code passes /cygdrive/c to Win32 code, it will just work, no translation needed.
If you have multiple drives, I guess just fully populate each one
c:\cygdrive\c => c:\
c:\cygdrive\d => d:\
d:\cygdrive\c => c:\
d:\cygdrive\d => d:\
 
etc. but I haven't tried that.
Or, to reduce the multiplication, set them all up on c: and have d:\cygdrive => c:\cygdrive, e:\cygdrive => c:\cygdrive, etc.
 
 - Jay


 
---------------------------------
 
> Date: Sun, 20 Jan 2008 15:56:49 +0100
> From: wagner at elegosoft.com
> To: m3devel at elegosoft.com
> Subject: Re: [M3devel] [M3commit] CVS Update: cm3
> 
> Quoting Jay <jayk123 at hotmail.com>:
> 
> > Good, a happy customer. :)
> >
> >> GNU_MODE = 0 % Do not use GNU tools at all -- today's NT386
> >> GNU_MODE = 1 % Use GNU tools minimally -- today's NT386GNU
> >> GNU_MODE = 2 % Use GNU tools maximally -- not existant but probably
> >> easy
> >>
> >> Eh..I know, not great.. what do "minimally" and "maximally" mean.
> >
> > I'm still fishing for anyone to provide answers to these
> > less important decisions that I have trouble with.
> > Otherwise maybe no NT Cygwin system.
> >
> > TARGETs = { NT386, NT386GNU, NT386CYGWIN }?
> > TARGETs = { NT386, NT386MINGWIN, NT386CYGWIN }?
> > TARGETs = { NT386 + GNU_MODE }?
> >
> > The one reason I don't favor NT386 + GNU_MODE is that Cygwin has a 
> > much larger jmpbuf than the others.
> > I think same TARGET implies code can be linked together, and I think 
> > varying jmpbuf implies otherwise.
> > So NT386 and NT386MINGWIN should rarely cross paths with NT386CYGWIN.
> 
> I think a new target is called for if I have understood everything right.
> We need one pure native target (NT386), one pure-Cygwin-based target
> (NT386_CYGWIN?) and one mix of runtime, gnu tools and mingwin
> (NT386_MINGWIN?).
> 
> As NT386GNU already exists, we must decide if we want to use it as
> we traditionally did (all Cygwin) or the mixed implementation
> (Mingwin and much Windows RT).
> 
> > I also do NOT like this ad-hoc naming style.
> > PPC_DARWIN, I386_DARWIN are much more to my style.
> > The names should be somehow hierarchical, except, I realize, there 
> > isn't necessarily one "path" of
> > stuff which to name platforms, though the GNU folks have settled on 
> > a way or two.
> > They have triples or quadruples -- processor-hardware-os or such, 
> > however this doesn't
> > clearly suffice.
> 
> Well, yes, something more systematic would have been better, but
> to break with the history will cause much trouble for all users and
> the infrastructure. So I'd rather vote that only new targets get
> more systematic names.
> 
> > Something that accomodates:
> > NT386 + LLVM
> > NT386 + Watcom, linker and/or backend and/or runtime
> > NT386 + Digital Mars linker and/or backend and/or runtime
> > A C generating backend, and then linker/runtime
> > and similar IA64, AMD64 variants would be good.
> 
> I'm not sure that a C generating backend would really help matters.
> This was done in the first implementation of DEC, and they soon
> abandoned it as C had proven to be a bad choice as intermediate language.
> I agree it would be great for cross-compilation etc.
> 
> As far as C and RT dependencies of native Windows compilers go, I don't
> see why this couldn't be just a question of another cm3.cfg setup.
> 
> > To a large extent, these can be few platforms, subject to 
> > configuration, like if all
> > the linkers consume a common file format (not clear), and if all the 
> > jmpbufs are the same
> > size (known to be partly true, partly false).
> 
> Yes, jmpbuf is always a problem for user threads and exceptions.
> On Unix systems the jmpbuf and other important low-level structures
> are always defined by the system headers and independent of compilers
> AFAIK, so I'm a bit surprised that it should be different on Windows.
> But maybe I'm just wrong and haven't just seen the right counter
> examples...
> 
> > Oh and another thing, the runtime dependency is very likely cuttable, however
> > PRESUMABLY real world applications (if there are any) link in a 
> > substantial amount of
> > C or C++, in which case, it isn't necessarily cuttable.
> 
> Yes. Real world applications tend to link other libraries (C, C++,
> Fortran, ...) and even often call other applications like sh etc.
> 
> > As well, if I can figure out a good way to do it, switching NT386 
> > from awful slow
> > frequent TlsGetValue/TlsSetValue to manipulating the linked list in 
> > fs:0, that would be nice,
> > and might incur a C runtime dependency, but well worth it. The way 
> > Modula-3 works here
> > is terrible. Another compromise option is probably 
> > __declspec(thread), though there is trickiness there
> > in terms of being in a .dll that isn't used by the .exe.
> 
> Such optimizations should be done depending on the target.
> 
> Olaf
> -- 
> Olaf Wagner -- elego Software Solutions GmbH
> Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95
> http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
> 


 
---------------------------------
 Climb to the top of the charts! Play the word scramble challenge with star power. Play now!
  
---------------------------------
 
Web Revelación Yahoo! 2007:
Premio Favorita del Público - ¡Vota tu preferida!

---------------------------------
Shed those extra pounds with MSN and The Biggest Loser! Learn more.

       
---------------------------------

Web Revelación Yahoo! 2007:
 Premio Favorita del Público - ¡Vota tu preferida!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20080120/f0e902a2/attachment-0002.html>


More information about the M3devel mailing list