|Version 3 (modified by 9 years ago) (diff),|
The RTS can be built in several different ways, corresponding to global CPP defines. The flavour of the RTS is chosen by GHC when compiling a Haskell program, in response to certain command-line options:
The CPP symbols and their corresponding command-line flags are:
Enables multithreading in the RTS, bound threads, and SMP execution.
Enables extra debugging code, assertions, traces, and the
Enables "unregisterised" compilation, i.e. via C with no mangler.
So for example,
libHSRts_thr_debug.a is the version of the runtime compiled with
DEBUG, and will be linked in if you use the
-debug options to GHC.
The ways that the RTS is built in are controlled by the
GhcRTSWays Makefile variable.
The following combinations are allowed:
The following ways are bitrotted and currently don't work (GHC 6.6):