
Am Sonntag, 30. November 2008 00:17 schrieb Austin Seipp:
If you would be so kind as to try the latest lhc instead by running:
$ cabal install lhc-0.6.20081127
And reporting back, I would like to hear the results and if it went well. :)
Got and installed a lot of dependencies and the latest and greatest lhc in 20 minutes (may have been 21, I didn't time it with a stop-watch) again :)
Unfortunately: $ lhc -o lhcHeap heapMain lhc: user error (LibraryMap: Library base not found!)
Oops.
There is a reason this is happening, and there isn't an easy way to get around it right now, it seems.
The problem is that when you just install lhc, it has no libraries. To install the base library, you are going to need a copy of the lhc source code - this cannot be automated by hackage.
Why? Because we are afraid that by uploading lhc's version of base - simply called 'base' - to hackage, will will inadvertantly stop every continually uploaded package from building, and cabal install could stop working too. Scary thought, huh? :)
Fair enough. Might be good to advertise that on Hackage, though.
The easiest way to fix this problem is by doing the following:
1. You probably want the darcs version of LHC anyway if you're willing to try it. Good improvements are being made pretty much every day. 2. After you get the darcs repository, just go into it and do 'cabal install'
dafis@linux:~/lhc> darcs get --partial http://code.haskell.org/lhc Invalid repository: http://code.haskell.org/lhc darcs failed: failed to fetch: http://code.haskell.org/lhc/_darcs/inventory ExitFailure 1 There's a hashed_inventory in lhc/_darcs, but no inventory. Is that a darcs2 vs. darcs1 incompatibility and I'm just screwed or is the repo broken?
3. To install base, you are probably going to want the latest versions of both cabal and cabal-install from the darcs repository - they include support for LHC already (cabal 1.7.x.)
Okay, done. Though for some reason cabal --version says cabal-install version 0.6.0 using version 1.6.0.1 of the Cabal library even though I changed the constraint to Cabal >= 1.7 in the cabal-install.cabal file?
4. After you've installed lhc and the latest cabal/cabal install, you can just do: $ cd lhc/lib/base $ cabal install --lhc
And it should Just Work.
Will try if I can darcs get the repo :-/
All of these instructions can be found here:
http://lhc.seize.it/#development
Don Stewart just brought up this point in #haskell, so I think I will modify the wiki page a bit (http://lhc.seize.it) and highlight these notes and why it's currently like this.
I apologize for it being so cumbersome right now. We're trying to figure out a good solution.
Okay, ./configure --help and searching through the configure script (which I completely don't know the syntax of) lead me to try ./configure --prefix=$HOME DRIFTGHC=/home/dafis/.cabal/bin/DrIFT which successsfully completes the configure step, but shouldn't configure find executables in the path?
The reason is because the configure.ac script is designed to search for an executable named 'drift-ghc', not 'DrIFT'. I have no idea why.
import System (getArgs). Now ... myriads of lines of output ... jhc: user error (Grin.FromE - Unknown primitive: ("eqRef__",[EVar (6666::ELit (Data.IORef.Ref__ (ELit (Jhc@.Box.*::ESort *))::ESort #)),EVar (6670::ELit (Data.IORef.Ref__ (ELit (Jhc@.Box.*::ESort *))::ESort #))]))
What? And I get the same error for every nontrivial programme I tried to compile, but not for a couple of trivial programmes.
LHC and JHC are still extremely incomplete. They're nowhere near as supportive of extensions or libraries as GHC is. Don't count on them compiling anything non-trivial just yet.
No extensions and libraries, just a bit of Haskell98, the implicit heap from http://www.haskell.org/haskellwiki/Primes with a main that prints the n-th prime. I wouldn't expect many extensions yet, but most of H98.
Austin
Cheers, Daniel