On Win32 platforms, the compiler is capable of both producing and using dynamic link libraries (DLLs) containing ghc-compiled code. This section shows you how to make use of this facility.
The default on Win32 platforms is to link applications in such a way that the executables will use the Prelude and system libraries DLLs, rather than contain (large chunks of) them. This is transparent at the command-line, so
sh$ cat main.hs module Main where main = putStrLn "hello, world!" sh$ ghc -o main main.hs ghc: module version changed to 1; reason: no old .hi file sh$ strip main.exe sh$ ls -l main.exe -rwxr-xr-x 1 544 everyone 6144 May 3 17:11 main.exe* sh$ ./main hello, world! sh$
will give you a binary as before, but the main.exe generated will use the Prelude and RTS DLLs instead.
6K for a "hello, world" application - not bad, huh? :-)