Cookbook/Compilers and interpreters: Difference between revisions
< Cookbook
(debugging) |
(→General: use a less intimidating example) |
||
Line 41: | Line 41: | ||
| :i | | :i | ||
|<haskell> | |<haskell> | ||
Prelude> :i | Prelude> :i True | ||
data Bool = ... | True -- Defined in GHC.Bool | |||
</haskell> | </haskell> | ||
|- | |- |
Latest revision as of 08:33, 25 January 2010
GHC
Problem | Solution | Examples |
---|---|---|
compiling and linking an executable | --make | ghc --make Main.hs --> Main |
compiling without linking | -c | ghc -c Foo.hs --> Foo.hi, Foo.o |
generating Assembler code | -S | ghc -S Foo.hs --> Foo.hi, Foo.s |
generating C code | -C | ghc -C Foo.hs --> Foo.hc, Foo.hi |
linking files into an executable | -o | ghc -o test Foo.o Bar.o Baz.p --> test |
GHCi
General
Problem | Solution | Examples |
---|---|---|
checking a definition | :i | Prelude> :i True
data Bool = ... | True -- Defined in GHC.Bool |
checking a type | :t | Prelude> :t "Hello"
"Hello" :: [Char]
Prelude> :t length
length :: [a] -> Int |
loading a file | :l | Prelude> :l Foo.hs
[1 of 1] Compiling Foo ( Foo.hs, interpreted )
Ok, modules loaded: Foo. |
reloading all loaded files | :r | Prelude> :r |
Debugging
Problem | Solution | Examples |
---|---|---|
setting a break point | :break | Prelude> :break 2 -- sets a break point in line 2 |
Hugs
TODO