Saturday, May 29, 2010

The new interface

After hacking away for a little bit, I've finally gotten the new user interface for LHC working!

a ~/code/lhc/test $ lhc --help
The LHC Haskell Compiler, v0.11, (C) 2009-2010 David Himmelstrup, Austin Seipp

lhc [FLAG] [FILE]
Compile Haskell code

-? --help[=FORMAT] Show usage information (optional format)
-V --version Show version information
-v --verbose Higher verbosity
-q --quiet Lower verbosity
--llvm Use LLVM backend
--ghc-opts=VALUE Give GHC frontend options
-i --install-library Don't compile; install modules under a library
-b --build-library Used when compiling a library (cabal only)
-O =VALUE Set optimization level (default=1)
--numeric-version Raw numeric version output
--supported-languages List supported LANGUAGE pragmas
-c Do not link, only compile
-o =VALUE output file for binary (default=a.out)
--src-dir=VALUE source code directory
a ~/code/lhc/test $ lhc HelloWorld.hs
[1 of 1] Compiling Main ( HelloWorld.hs, HelloWorld.o )
.....................
Found fixpoint in 7 iterations.
Lowering apply primitives... done in 0.09s
Heap points-to analysis... ...........................done in 0.95s
HPT fixpoint found in 27 iterations.
..................................................................................
Found fixpoint in 11 iterations.
Compiling C code... done in 0.11s
a ~/code/lhc/test $ ./HelloWorld
Hello, world!
a ~/code/lhc/test $

The changes should be landing shortly. It will require a patch to Cabal. There is also a bug in cabal/cmdargs that I have not yet tracked down which makes installing cabal packages difficult, although still possible, with this new scheme.

Edit 6-2-2010: all of the necessary patches have been pushed to both LHC and Cabal to make the new user interface work. Try it out (install using 'cabal install -fwith-libs' provided you have the darcs HEAD version of Cabal,) and tell us of any corner cases on IRC (#lhc-compiler on freenode)!

1 comment:

  1. If you do need some patches applying to cmdargs, please send them to me!

    ReplyDelete