digitalmars.D - Versioning (for Mac)
- Ant (45/45) Dec 05 2004 Anders F Björklund changed dool to compile (and run unittest!)
- John Reimer (20/27) Dec 05 2004 I'm really thinking that we should decide on this one before everybody
- John Reimer (5/38) Dec 05 2004 Unless of course, Win32, Windows, Linux, and, dare I say, POSIX are
- Ant (5/22) Dec 05 2004 While we wait I'm defining a "CommonUnix".
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= (18/31) Dec 06 2004 Unix trademark is up in court, since Apple used it in their advertising.
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= (16/35) Dec 06 2004 dui will come too, once all the dependencies are fixed...
- Ant (7/13) Dec 06 2004 :)
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= (27/32) Dec 06 2004 Oh, just the usual library dependencies for GTK+ :
- Ant (22/29) Dec 06 2004 So I did it:
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= (10/25) Dec 06 2004 Is that "with DMD", or "with both DMD and GDC" ? (on Linux)
Anders F Björklund changed dool to compile (and run unittest!) on the Mac (darwin). He changed all "version(linux)" to "version(Unix)" but this makes the drawin version incompatible with the DMD/linux version Can we leave the "version(linux)" on the code and put on the header version(Unix) { version = linux; } ? perhaps the correct would be: change all "version(linux)" to "version(CommonUnix)" and add at the top: version(linux) version=CommonUnix; version(Unix) version=CommonUnix; this would allow versioning for specific flavor of unix. I'm trying this one. this on DMD/linux prints: in linux in Win32 version(linux) { version = Win32; } version(Win32) { version = linux; } void main() { version(linux) { printf("in linux\n"); } version(Win32) { printf("in Win32\n"); } } Ant
Dec 05 2004
Ant wrote:Anders F Björklund changed dool to compile (and run unittest!) on the Mac (darwin). He changed all "version(linux)" to "version(Unix)" but this makes the drawin version incompatible with the DMD/linux versionI'm really thinking that we should decide on this one before everybody starts doing their own thing. Wasn't there a discussion about version(Unix) and version(Posix) earlier? Unix is a tradmarked name. Is it safe to use it, or even accurate to use it anymore? Linux and Win32, and Windows work fine because they are references to specific OS's. Unix is not or, at least, not in the context it's being used here and other places. It's a reference to a general set of proprietary OS's that have a similar lineage, but sometimes significantly different implementations even in API. If this is the case, doesn't it makes sense to aim for a common API? The Posix standard was designed for that purpose, I believe - to bring disparate Unix-clone systems together. If any systems needs access to OS-specific features, an independent moniker should be coined for them anyway... much like linux, Win32, or Windows. Does this make any sense? I believe version(Posix) or (POSIX) is an acceptable scheme for referring to Unix-clones that share a common API, unless somebody can convince me otherwise. Later, John
Dec 05 2004
John Reimer wrote:Ant wrote:Unless of course, Win32, Windows, Linux, and, dare I say, POSIX are trademarked too! Ha, ha. Perhaps the trademark isn't a good reason to base the argument on then. The other reason is still a valid consideration, though. :-)Anders F Björklund changed dool to compile (and run unittest!) on the Mac (darwin). He changed all "version(linux)" to "version(Unix)" but this makes the drawin version incompatible with the DMD/linux versionI'm really thinking that we should decide on this one before everybody starts doing their own thing. Wasn't there a discussion about version(Unix) and version(Posix) earlier? Unix is a tradmarked name. Is it safe to use it, or even accurate to use it anymore? Linux and Win32, and Windows work fine because they are references to specific OS's. Unix is not or, at least, not in the context it's being used here and other places. It's a reference to a general set of proprietary OS's that have a similar lineage, but sometimes significantly different implementations even in API. If this is the case, doesn't it makes sense to aim for a common API? The Posix standard was designed for that purpose, I believe - to bring disparate Unix-clone systems together. If any systems needs access to OS-specific features, an independent moniker should be coined for them anyway... much like linux, Win32, or Windows. Does this make any sense? I believe version(Posix) or (POSIX) is an acceptable scheme for referring to Unix-clones that share a common API, unless somebody can convince me otherwise. Later, John
Dec 05 2004
On Sun, 05 Dec 2004 23:39:36 -0800, John Reimer wrote:Ant wrote:Let's decide then.Anders F Björklund changed dool to compile (and run unittest!) on the Mac (darwin). He changed all "version(linux)" to "version(Unix)" but this makes the drawin version incompatible with the DMD/linux versionI'm really thinking that we should decide on this one before everybody starts doing their own thing.Wasn't there a discussion about version(Unix) and version(Posix) earlier?While we wait I'm defining a "CommonUnix".Does this make any sense? I believe version(Posix) or (POSIX) is an acceptable scheme for referring to Unix-clones that share a common API, unless somebody can convince me otherwise.I like that. Later I can easelly change CommonUnix to Posix. Ant
Dec 05 2004
John Reimer wrote:I'm really thinking that we should decide on this one before everybody starts doing their own thing. Wasn't there a discussion about version(Unix) and version(Posix) earlier?There was. Not that anything was "decided" or anything...Unix is a tradmarked name. Is it safe to use it, or even accurate to use it anymore? Linux and Win32, and Windows work fine because they are references to specific OS's.Unix trademark is up in court, since Apple used it in their advertising. I think Windows trademark was up in the Lindows case, and that they won? Either way: "Windows is a registered trademark of Microsoft Corporation" "UNIX is a registered trademark of The Open Group" Win32 is also a trademark, why some GNU projects use "Woe32" instead. As you know, Linux is just a kernel (and registered by Linus Torvalds) But I won't go into that whole Linux debate. (search for GNU/Linux...) For now it just stands for: whatever configuration that DMD supports.The Posix standard was designed for that purpose, I believe - to bring disparate Unix-clone systems together. If any systems needs access to OS-specific features, an independent moniker should be coined for them anyway... much like linux, Win32, or Windows.I like "Posix" too. My vote is on this, for a new one. Have no idea about the difference between the current versions in D : Win32 and Windows ? Is there one ?Does this make any sense? I believe version(Posix) or (POSIX) is an acceptable scheme for referring to Unix-clones that share a common API, unless somebody can convince me otherwise.I just used "Unix" since it was already defined in GDC... There is a version(GNU) which is similar to DigitalMars. If one needs to separate out GDC specifically, that is. --anders
Dec 06 2004
Ant wrote:Anders F Björklund changed dool to compile (and run unittest!) on the Mac (darwin).dui will come too, once all the dependencies are fixed... BTW; It only does GTK+ 1.x native, so GTK+ 2.x is in X11He changed all "version(linux)" to "version(Unix)" but this makes the drawin version incompatible with the DMD/linux versionHowever, it still works with GDC running on Linux The idea was that both "linux" and "darwin" are Unix.Can we leave the "version(linux)" on the code and put on the header version(Unix) { version = linux; } ?Something like that could work, although it quickly gets boring to add such version hacks to every file... The compiler should define a common name for them. (the above code also has them flipped the wrong way)perhaps the correct would be: change all "version(linux)" to "version(CommonUnix)" and add at the top: version(linux) version=CommonUnix; version(Unix) version=CommonUnix;What I (implicitly) used in the code was: version(linux) version=Unix; version(darwin) version=Unix; Which works better than copying/pasting...this would allow versioning for specific flavor of unix. I'm trying this one.My "Unix" *was* that CommonUnix. Mac OS X is "darwin". You could also call it "Posix" or "POSIX" or whatever... --anders
Dec 06 2004
On Mon, 06 Dec 2004 09:13:26 +0100, Anders F Björklund wrote:Ant wrote::) what dependencies? This way of communicating is slow... check my other post. let us know if it works. Ant (it's late here, see you tomorrow)Anders F Björklund changed dool to compile (and run unittest!) on the Mac (darwin).dui will come too, once all the dependencies are fixed...
Dec 06 2004
Ant wrote:Oh, just the usual library dependencies for GTK+ : * GNU make (the system one is somewhat old) - pkg-config - fontconfig * GNU libiconv (the system one is not enough) * GNU libintl (the system one is not enough) - glib 2.2.x * Pango * ATK - GTK+ 2.4.x Current "native" Mac libraries are GTK+ 1.x only... (i.e. the ones building binaries not requiring X11) http://gtk-osx.sourceforge.net/ Building from scratch, since it's somewhat problematic to mix several gcc compilers and Fink run-time libraries. Mostly a proof-of-concept, it won't be useful until it runs *without* requiring the user to install X11 first ? http://www.apple.com/macosx/features/x11/download/ Apple does ship a XFree86 4.3 version with Panther, and there's commercial ones too. But it's not really native... The only other dependancy for DUI seems to be dool (?), and that has been taken care of, as discussed earlier. --anders PS. OpenGL runs fine by itself, though. Not tested from DUI, but tested using the GLUT gears and the libSDL bindings.dui will come too, once all the dependencies are fixed...:) what dependencies?
Dec 06 2004
On Mon, 06 Dec 2004 02:04:30 -0500, Ant wrote:Anders F Björklund changed dool to compile (and run unittest!) on the Mac (darwin). He changed all "version(linux)" to "version(Unix)" but this makes the drawin version incompatible with the DMD/linux versionSo I did it: defined on top of each dool module (where necessary): version(linux) { version=CommonUnix; } version(darwin) // I'm not sure; should it be Unix instead of darwin? { version=CommonUnix; } replaced all version(linux) by version(CommonUnix) added dool/system/drawin.d from Anders created dool.system.specific just to import the correct version (linux, darwin or windows - windows not yet ported from phobos) changed all "import dool.system.linux;" to "import dool.system.specific;" regenerated the Makefile.dool it's on the svn on dsource - anyone wants to try it on the Mac? works fine on linux. http://svn.dsource.org/svn/projects/dool/ Ant
Dec 06 2004
Ant wrote:So I did it: defined on top of each dool module (where necessary): version(linux) { version=CommonUnix; } version(darwin) // I'm not sure; should it be Unix instead of darwin? { version=CommonUnix; }It should be darwin. Could be "Unix" instead of "CommonUnix"...it's on the svn on dsource - anyone wants to try it on the Mac? works fine on linux.Is that "with DMD", or "with both DMD and GDC" ? (on Linux)http://svn.dsource.org/svn/projects/dool/The makefile failed to create the obj/* folders, but that is minor... Still has hard-coded paths, and SVN has both Makefile + Makefile.dool? Compiling gives:dool/io/FileStream.d:55: cannot implicitly convert expression neg1 of type int to HANDLESince you added that to linux.d and forgot to add it to darwin.d ? Besides that, and the Makefile problems above, it passed the tests. (further development of "dool" taken to email, instead of forum) --anders
Dec 06 2004