An hearty 'hello' to Haskell SIG folks!
I am a newcomer to Haskell (thanks to xmonad) and I plan to do some serious things with it (as soon as I get proficient with this elegant FP language).
During the last two-three weeks I've been secretly working on the GHC package (6.12). As you know, GHC can now create shared libraries so I deemed that a little change in the .spec file was necessary.
____________________________________ PROPOSED LAYOUT
* ghc: contains only the compiler, tools (such as ghc-pkg, etc) and libHSrts.a which seems to be (statically) linked in every application. In general: stuff needed only at compile time.
* ghc-libs (and ghc-libs-static): contains the dynamic version of libHSghc which is *HUGE* (and I guess it's needed only by programs which want to access GHC internals -- I don't have it installed and xmonad, xmobar and such things work).
* ghc-common: This subpackage contains packages.d/*.config files and owns core library directories, it is (mostly) empty and is required by ghc-runtime and ghc-runtime-static.
* ghc-runtime (and ghc-runtime-static): nothing to say, it contains just the core libraries and their interface files (.hi/.dyn_hi)
* ghc-prof: contains profiled (static) libraries, including the huge libHSghc. This is the biggest and monolithic package.
___________________________________________ NOTES
+ cabal-install 0.7.5 (from darcs) seems to work decently with this GHC release. + X11 library has problems with hsc2hs (one file has to be converted to UTF-8 before building the package) + ghc-libs-static and ghc-runtime-static Require ghc (these are useless without a compiler) while ghc-libs and ghc-runtime don't. + I decided to take libHSghc off the runtime package(s) because of its huge size and because it is not generally needed by other libraries/applications, thus making the runtime package small:
[lvillani@enterprise x86_64]$ du -h * 24M ghc-6.12.0.20091201-1.fc12.x86_64.rpm 56K ghc-common-6.12.0.20091201-1.fc12.x86_64.rpm 8.4M ghc-doc-6.12.0.20091201-1.fc12.x86_64.rpm 8.8M ghc-libs-6.12.0.20091201-1.fc12.x86_64.rpm 8.6M ghc-libs-static-6.12.0.20091201-1.fc12.x86_64.rpm 25M ghc-prof-6.12.0.20091201-1.fc12.x86_64.rpm 7.6M ghc-runtime-6.12.0.20091201-1.fc12.x86_64.rpm 8.0M ghc-runtime-static-6.12.0.20091201-1.fc12.x86_64.rpm
___________________________________________ NOTES
I still can't get Cabal to link shared libraries instead of static ones (tried --enable-shared, tried --disable-library-vanilla with no effect). This means that even if Cabal tells the compiler to produce dynamic libraries it doesn't link to them (thus making the whole "dynlib" thing almost useless at this point). I don't know if this is a bug or I am so dumb that I can't tell cabal- install what to do.
___________________________________________ LINKS
http://gitorious.org/lvillani/specs/blobs/master/haskell/ghc/ghc.spec + I'm 101% sure that there are errors in that .spec file.
I look forward to hear your thoughts!
JFYI: I moved the spec here: http://gitorious.org/lvillani/specs/blobs/raw/master/haskell/ghc/devel/ghc.s...
('master' branch holds my modifications, 'fedora-cvs' branch includes your version)
haskell-devel@lists.fedoraproject.org