Glasgow Haskell Compiler User's Guide
Navigation
index
next
|
previous
|
GHC 8.4.1 User's Guide
»
Previous topic
5. Using runghc
Next topic
6.1. Using GHC
This Page
Show Source
Quick search
Enter search terms or a module, class or function name.
6. Using GHC
¶
6.1. Using GHC
6.1.1. Getting started: compiling programs
6.1.2. Options overview
6.1.2.1. Command-line arguments
6.1.2.2. Command line options in source files
6.1.2.3. Setting options in GHCi
6.1.3. Static, Dynamic, and Mode options
6.1.4. Meaningful file suffixes
6.1.5. Modes of operation
6.1.5.1. Using
ghc
--make
6.1.5.2. Expression evaluation mode
6.1.5.3. Batch compiler mode
6.1.5.3.1. Overriding the default behaviour for a file
6.1.6. Verbosity options
6.1.7. Platform-specific Flags
6.1.8. Miscellaneous flags
6.2. Warnings and sanity-checking
6.3. Optimisation (code improvement)
6.3.1.
-O*
: convenient “packages” of optimisation flags.
6.3.2.
-f*
: platform-independent flags
6.4. Using Concurrent Haskell
6.5. Using SMP parallelism
6.5.1. Compile-time options for SMP parallelism
6.5.2. RTS options for SMP parallelism
6.5.3. Hints for using SMP parallelism
6.6. Flag reference
6.6.1. Verbosity options
6.6.2. Alternative modes of operation
6.6.3. Which phases to run
6.6.4. Redirecting output
6.6.5. Keeping intermediate files
6.6.6. Temporary files
6.6.7. Finding imports
6.6.8. Interface file options
6.6.9. Recompilation checking
6.6.10. Interactive-mode options
6.6.11. Packages
6.6.12. Language options
6.6.13. Warnings
6.6.14. Optimisation levels
6.6.15. Individual optimisations
6.6.16. Profiling options
6.6.17. Program coverage options
6.6.18. C pre-processor options
6.6.19. Code generation options
6.6.20. Linking options
6.6.21. Plugin options
6.6.22. Replacing phases
6.6.23. Forcing options to particular phases
6.6.24. Platform-specific options
6.6.25. Compiler debugging options
6.6.26. Miscellaneous compiler options
6.7. Running a compiled program
6.7.1. Setting RTS options
6.7.1.1. Setting RTS options on the command line
6.7.1.2. Setting RTS options at compile time
6.7.1.3. Setting RTS options with the
GHCRTS
environment variable
6.7.1.4. “Hooks” to change RTS behaviour
6.7.1.4.1. Runtime events
6.7.1.4.2. Event log output
6.7.2. Miscellaneous RTS options
6.7.3. RTS options to control the garbage collector
6.7.4. RTS options to produce runtime statistics
6.7.5. RTS options for concurrency and parallelism
6.7.6. RTS options for profiling
6.7.7. Tracing
6.7.8. RTS options for hackers, debuggers, and over-interested souls
6.7.9. Getting information about the RTS
6.8. Filenames and separate compilation
6.8.1. Haskell source files
6.8.2. Output files
6.8.3. The search path
6.8.4. Redirecting the compilation output(s)
6.8.5. Keeping Intermediate Files
6.8.6. Redirecting temporary files
6.8.7. Other options related to interface files
6.8.8. The recompilation checker
6.8.9. How to compile mutually recursive modules
6.8.10. Module signatures
6.8.11. Using
make
6.8.12. Dependency generation
6.8.13. Orphan modules and instance declarations
6.9. Packages
6.9.1. Using Packages
6.9.2. The
main
package
6.9.3. Consequences of packages for the Haskell language
6.9.4. Thinning and renaming modules
6.9.5. Package Databases
6.9.5.1. The
GHC_PACKAGE_PATH
environment variable
6.9.5.2. Package environments
6.9.6. Installed package IDs, dependencies, and broken packages
6.9.7. Package management (the
ghc-pkg
command)
6.9.8. Building a package from Haskell source
6.9.9.
InstalledPackageInfo
: a package specification
6.10. GHC Backends
6.10.1. Native Code Generator (
-fasm
)
6.10.2. LLVM Code Generator (
-fllvm
)
6.10.3. C Code Generator (
-fvia-C
)
6.10.4. Unregisterised compilation
6.11. Options related to a particular phase
6.11.1. Replacing the program for one or more phases
6.11.2. Forcing options to a particular phase
6.11.3. Options affecting the C pre-processor
6.11.3.1. Standard CPP macros
6.11.3.2. CPP and string gaps
6.11.4. Options affecting a Haskell pre-processor
6.11.5. Options affecting code generation
6.11.6. Options affecting linking
6.12. Using shared libraries
6.12.1. Building programs that use shared libraries
6.12.2. Shared libraries for Haskell packages
6.12.3. Shared libraries that export a C API
6.12.4. Finding shared libraries at runtime
6.12.4.1. Unix
6.12.4.2. Mac OS X
6.13. Debugging the compiler
6.13.1. Dumping out compiler intermediate structures
6.13.1.1. Front-end
6.13.1.2. Type-checking and renaming
6.13.1.3. Core representation and simplification
6.13.1.4. STG representation
6.13.1.5. C– representation
6.13.1.6. LLVM code generator
6.13.1.7. Native code generator
6.13.1.8. Miscellaneous backend dumps
6.13.2. Formatting dumps
6.13.3. Suppressing unwanted information
6.13.4. Checking for consistency
6.13.5. Checking for determinism
Navigation
index
next
|
previous
|
GHC 8.4.1 User's Guide
»