> 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

Reply via email to