X11 libraries

Alastair Reid alastair@reid-consulting-uk.ltd.uk
Wed, 02 Apr 2003 13:05:58 +0100

> According to the current hierarchy document[1] we have these
> libraries under Graphics.X11.Xlib.  Perhaps these names would be
> correct:
>     Graphics.X11.Xlib 
>     Graphics.X11.Xlib.Types
>     Graphics.X11.X1ib.StdDIS

> The reason for separating Xlib into its own hierarchy is that there
> are other APIs under X11 (Xt, Xaw, Xmu).  

That makes sense except that I didn't tell you enough about Types and
StdDIS.  Types contains generic X11 types (which would be used by Xt,
Xaw, etc). StdDIS contains generic GreenCard definitions and would
also be used by Xt, etc.  So I see things developing as follows:

     Graphics.X11         -- reexports all children except StdDIS 
     Graphics.X11.StdDIS  -- should be shared by all GC'd files
     Graphics.X11.Types   -- shared by all X11 impls

[StdDIS is just a copy of the file included in GreenCard distributions
and would go away if we were to do the sensible thing and have a
single StdDIS somewhere in the libraries tree.]

> We could follow the convention of having the parent export the
> children though, and have Graphics.X11 export the contents of
> Graphics.X11.Xlib.

That's the plan.  The only one not reexported is StdDIS since that
provides definitions which are internal to the other modules.

>> I'm hoping to get round to moving the Win32 and HGL libraries over
>> pretty soon as well so whatever answer you give should apply to
>> them too.

> Win32 is currently listed as being under System.Win32.  However,
> since we've just put Dotnet at the top of the hierarchy, and Win32
> contains a range of both systems and graphics stuff, I'd be happy
> for it to be at the top of the hierarchy too.

I think I'd prefer both to be under System.

> HGL is assigned Graphics.HGL, which seems like the right thing.

Ok, I'll put it there.

> The NHC folks seem to be using their own Makefiles, called
> Makefile.nhc98.

I'll probably do the same.

Hmmm, I wonder if the existing scriptMakefile used by Hugs to convert
and compile the libraries should be moved into libraries/base ?

>> pps Should I continue the unsavoury practice of committing
>> GreenCard generated code to the repository?  (Currently done for
>> Win32, I'd do it for Xlib too for the sake of consistency.)

> I think the reason for this was that we could avoid a greencard
> dependency in a GHC build.  I'm agnostic really, since we probably
> won't be including X11 in the default GHC build (see previous
> discussions about why we want to tighten up the set of libraries
> that GHC is shipped with).

I gather that the Win32 library is needed for windows version of GHC
so it's a bit moer of an issue there...

I'll avoid doing it for X11 for now.