5. Using GHC¶
- 5.1. Using GHC
- 5.2. Warnings and sanity-checking
- 5.3. Optimisation (code improvement)
- 5.4. Using Concurrent Haskell
- 5.5. Using SMP parallelism
- 5.6. Flag reference
- 5.6.1. Verbosity options
- 5.6.2. Alternative modes of operation
- 5.6.3. Which phases to run
- 5.6.4. Redirecting output
- 5.6.5. Keeping intermediate files
- 5.6.6. Temporary files
- 5.6.7. Finding imports
- 5.6.8. Interface file options
- 5.6.9. Extended interface file options
- 5.6.10. Recompilation checking
- 5.6.11. Interactive-mode options
- 5.6.12. Packages
- 5.6.13. Language options
- 5.6.14. Warnings
- 5.6.15. Optimisation levels
- 5.6.16. Individual optimisations
- 5.6.17. Profiling options
- 5.6.18. Program coverage options
- 5.6.19. C pre-processor options
- 5.6.20. Code generation options
- 5.6.21. Linking options
- 5.6.22. Plugin options
- 5.6.23. Replacing phases
- 5.6.24. Forcing options to particular phases
- 5.6.25. Platform-specific options
- 5.6.26. Compiler debugging options
- 5.6.27. Miscellaneous compiler options
- 5.7. Runtime system (RTS) options
- 5.7.1. Setting RTS options
- 5.7.2. Miscellaneous RTS options
- 5.7.3. RTS options to control the garbage collector
- 5.7.4. RTS options to produce runtime statistics
- 5.7.5. RTS options for concurrency and parallelism
- 5.7.6. RTS options for profiling
- 5.7.7. Tracing
- 5.7.8. RTS options for hackers, debuggers, and over-interested souls
- 5.7.9. Getting information about the RTS
- 5.8. Filenames and separate compilation
- 5.8.1. Haskell source files
- 5.8.2. Output files
- 5.8.3. The search path
- 5.8.4. Redirecting the compilation output(s)
- 5.8.5. Keeping Intermediate Files
- 5.8.6. Redirecting temporary files
- 5.8.7. Other options related to interface files
- 5.8.8. Options related to extended interface files
- 5.8.9. The recompilation checker
- 5.8.10. How to compile mutually recursive modules
- 5.8.11. Module signatures
- 5.8.12. Using
make
- 5.8.13. Dependency generation
- 5.8.14. Orphan modules and instance declarations
- 5.9. Packages
- 5.9.1. Using Packages
- 5.9.2. The
main
package - 5.9.3. Consequences of packages for the Haskell language
- 5.9.4. Thinning and renaming modules
- 5.9.5. Package Databases
- 5.9.6. Installed package IDs, dependencies, and broken packages
- 5.9.7. Package management (the
ghc-pkg
command) - 5.9.8. Building a package from Haskell source
- 5.9.9.
InstalledPackageInfo
: a package specification - 5.9.10. Linking against C++ libraries
- 5.10. GHC Backends
- 5.11. Options related to a particular phase
- 5.12. Using shared libraries
- 5.13. Debugging the compiler
- 5.13.1. Dumping out compiler intermediate structures
- 5.13.1.1. Front-end
- 5.13.1.2. Type-checking and renaming
- 5.13.1.3. Core representation and simplification
- 5.13.1.4. STG representation
- 5.13.1.5. C-- representation
- 5.13.1.6. LLVM code generator
- 5.13.1.7. C code generator
- 5.13.1.8. Native code generator
- 5.13.1.9. JavaScript code generator
- 5.13.1.10. Miscellaneous backend dumps
- 5.13.2. Formatting dumps
- 5.13.3. Suppressing unwanted information
- 5.13.4. Checking for consistency
- 5.13.5. Checking for determinism
- 5.13.6. Other
- 5.13.1. Dumping out compiler intermediate structures