> panne 2003/02/09 14:41:07 PST
>
> Modified files:
> libraries/OpenGL/Graphics/Rendering/OpenGL/GLU Constants.hs
> libraries/OpenGL/specs/enumerant ConvertEnumSpec.hs
> test.stdout
> Log:
> Splitting object files is crucial for a large library like HOpenGL,
> but the files generated by ConvertEnumSpec hit several system limits
> quite severly:
>
> * Compilation time for the stuff generated from enum.spec was
> almost 15min on an Athlon 2000 XP+ before the commandline limit
> for the linker was finally reached.
>
> * Even if the problem above was fixed, there are far
> more than 7000
> object files for this single Haskell module, which
> will probably
> generate lots of linking fun with the current GNU linker on
> WinDoze.
>
> * A lot of (un-)marshalers are generated which are never needed.
>
> So I bit the bullet and made ConvertEnumSpec emit an #ifdef around
> every data type and its (un-)marshalers, giving quite some
> flexibility
> at the #include site. The downside is that we now have another
> dependency on the preprocessor, something which I initially hoped to
> avoid completely. But on the other hand, HOpenGL already depends on
> the preprocessor for handling the different calling conventions on
> normal *nix systems and WinDoze DLLs. *sigh*
Just a thought, but if the module in question contains lots of datatypes
you might want to try with -fno-generics, which will cut down on some of
the code we generate for each datatype, provided you don't use generics.
Cheers,
Simon
_______________________________________________
Cvs-libraries mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-libraries