Thread overview
Versioning (for Mac)
Dec 06, 2004
Ant
Re: Versioning (for Mac) -- version(Unix) or version(POSIX)
Dec 06, 2004
John Reimer
Dec 06, 2004
John Reimer
Dec 06, 2004
Ant
Dec 06, 2004
Ant
Re: Versioning (for Mac) - DUI dependencies
Dec 06, 2004
Ant
December 06, 2004
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

December 06, 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 version
> 

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?  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
December 06, 2004
John Reimer wrote:
> 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 version
>>
> 
> 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?  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

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. :-)
December 06, 2004
On Sun, 05 Dec 2004 23:39:36 -0800, John Reimer wrote:

> 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 version
>> 
> 
> I'm really thinking that we should decide on this one before everybody starts doing their own thing.

Let's decide then.

> 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

December 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 X11

> He changed all "version(linux)" to "version(Unix)"
> but this makes the drawin version incompatible with
> the DMD/linux version

However, 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
December 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 version

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;
}
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

December 06, 2004
On Mon, 06 Dec 2004 09:13:26 +0100, Anders F Björklund wrote:

> 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...

:)

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)
December 06, 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
December 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 HANDLE

Since 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
December 06, 2004
Ant wrote:

>>dui will come too, once all the dependencies are fixed...
> 
> :)
> 
> what dependencies?

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.