ghc: The GHC API
GHC's functionality can be useful for more things than just compiling Haskell programs. Important use cases are programs that analyse (and perhaps transform) Haskell code. Others include loading Haskell code dynamically in a GHCi-like manner. For this reason, a lot of GHC's functionality is made available through this package.
See https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/compiler for more information.
This package is not PVP-compliant.
This package directly exposes GHC internals, which can and do change with every release.
Modules
[Index] [Quick Jump]
- GHC
- Builtin
- ByteCode
- GHC.Cmm
- GHC.Cmm.BlockId
- GHC.Cmm.CLabel
- GHC.Cmm.CallConv
- GHC.Cmm.CommonBlockElim
- GHC.Cmm.Config
- GHC.Cmm.ContFlowOpt
- GHC.Cmm.Dataflow
- GHC.Cmm.DebugBlock
- GHC.Cmm.Dominators
- GHC.Cmm.Expr
- GHC.Cmm.GenericOpt
- GHC.Cmm.Graph
- GHC.Cmm.Info
- GHC.Cmm.InitFini
- GHC.Cmm.LRegSet
- GHC.Cmm.LayoutStack
- GHC.Cmm.Lexer
- GHC.Cmm.Lint
- GHC.Cmm.Liveness
- GHC.Cmm.MachOp
- GHC.Cmm.Node
- GHC.Cmm.Opt
- GHC.Cmm.Parser
- GHC.Cmm.Pipeline
- GHC.Cmm.ProcPoint
- GHC.Cmm.Reducibility
- GHC.Cmm.Reg
- GHC.Cmm.Sink
- GHC.Cmm.Switch
- GHC.Cmm.ThreadSanitizer
- GHC.Cmm.Type
- GHC.Cmm.UniqueRenamer
- GHC.Cmm.Utils
- GHC.CmmToAsm
- GHC.CmmToAsm.AArch64
- GHC.CmmToAsm.BlockLayout
- GHC.CmmToAsm.CFG
- GHC.CmmToAsm.CPrim
- GHC.CmmToAsm.Config
- GHC.CmmToAsm.Dwarf
- GHC.CmmToAsm.Format
- GHC.CmmToAsm.Instr
- GHC.CmmToAsm.Monad
- GHC.CmmToAsm.PIC
- GHC.CmmToAsm.PPC
- GHC.CmmToAsm.Ppr
- GHC.CmmToAsm.RV64
- Reg
- GHC.CmmToAsm.Reg.Graph
- GHC.CmmToAsm.Reg.Linear
- GHC.CmmToAsm.Reg.Linear.AArch64
- GHC.CmmToAsm.Reg.Linear.Base
- GHC.CmmToAsm.Reg.Linear.FreeRegs
- GHC.CmmToAsm.Reg.Linear.JoinToTargets
- GHC.CmmToAsm.Reg.Linear.PPC
- GHC.CmmToAsm.Reg.Linear.RV64
- GHC.CmmToAsm.Reg.Linear.StackMap
- GHC.CmmToAsm.Reg.Linear.State
- GHC.CmmToAsm.Reg.Linear.Stats
- GHC.CmmToAsm.Reg.Linear.X86
- GHC.CmmToAsm.Reg.Linear.X86_64
- GHC.CmmToAsm.Reg.Liveness
- GHC.CmmToAsm.Reg.Target
- GHC.CmmToAsm.Reg.Utils
- GHC.CmmToAsm.Types
- GHC.CmmToAsm.Utils
- GHC.CmmToAsm.Wasm
- GHC.CmmToAsm.X86
- GHC.CmmToC
- GHC.CmmToLlvm
- GHC.Core
- GHC.Core.Class
- GHC.Core.Coercion
- GHC.Core.ConLike
- GHC.Core.DataCon
- GHC.Core.FVs
- GHC.Core.FamInstEnv
- GHC.Core.InstEnv
- GHC.Core.LateCC
- GHC.Core.Lint
- GHC.Core.Make
- Map
- GHC.Core.Multiplicity
- Opt
- GHC.Core.Opt.Arity
- GHC.Core.Opt.CSE
- GHC.Core.Opt.CallArity
- GHC.Core.Opt.CallerCC
- GHC.Core.Opt.ConstantFold
- GHC.Core.Opt.CprAnal
- GHC.Core.Opt.DmdAnal
- GHC.Core.Opt.Exitify
- GHC.Core.Opt.FloatIn
- GHC.Core.Opt.FloatOut
- GHC.Core.Opt.LiberateCase
- GHC.Core.Opt.Monad
- GHC.Core.Opt.OccurAnal
- GHC.Core.Opt.Pipeline
- GHC.Core.Opt.SetLevels
- GHC.Core.Opt.Simplify
- GHC.Core.Opt.SpecConstr
- GHC.Core.Opt.Specialise
- GHC.Core.Opt.StaticArgs
- GHC.Core.Opt.Stats
- GHC.Core.Opt.WorkWrap
- GHC.Core.PatSyn
- GHC.Core.Ppr
- GHC.Core.Predicate
- GHC.Core.Reduction
- GHC.Core.RoughMap
- GHC.Core.Rules
- GHC.Core.Seq
- GHC.Core.SimpleOpt
- GHC.Core.Stats
- GHC.Core.Subst
- GHC.Core.Tidy
- TyCo
- GHC.Core.TyCon
- GHC.Core.Type
- GHC.Core.Unfold
- GHC.Core.Unify
- GHC.Core.UsageEnv
- GHC.Core.Utils
- GHC.CoreToIface
- GHC.CoreToStg
- Data
- GHC.Data.Bag
- GHC.Data.Bitmap
- GHC.Data.Bool
- GHC.Data.BooleanFormula
- GHC.Data.EnumSet
- GHC.Data.FastMutInt
- GHC.Data.FastString
- GHC.Data.FiniteMap
- GHC.Data.FlatBag
- Graph
- GHC.Data.IOEnv
- List
- GHC.Data.Maybe
- GHC.Data.OrdList
- GHC.Data.OsPath
- GHC.Data.Pair
- GHC.Data.SmallArray
- GHC.Data.Stream
- GHC.Data.Strict
- GHC.Data.StringBuffer
- GHC.Data.TrieMap
- GHC.Data.Unboxed
- GHC.Data.UnionFind
- GHC.Data.Word64Map
- GHC.Data.Word64Set
- Driver
- GHC.Driver.Backend
- GHC.Driver.Backpack
- GHC.Driver.CmdLine
- GHC.Driver.CodeOutput
- GHC.Driver.Config
- GHC.Driver.Config.Cmm
- GHC.Driver.Config.CmmToAsm
- GHC.Driver.Config.CmmToLlvm
- Core
- GHC.Driver.Config.CoreToStg
- GHC.Driver.Config.Diagnostic
- GHC.Driver.Config.Finder
- GHC.Driver.Config.HsToCore
- GHC.Driver.Config.Linker
- GHC.Driver.Config.Logger
- GHC.Driver.Config.Parser
- Stg
- GHC.Driver.Config.StgToCmm
- GHC.Driver.Config.StgToJS
- GHC.Driver.Config.Tidy
- GHC.Driver.DynFlags
- GHC.Driver.Env
- GHC.Driver.Errors
- GHC.Driver.Flags
- GHC.Driver.GenerateCgIPEStub
- GHC.Driver.Hooks
- GHC.Driver.LlvmConfigCache
- GHC.Driver.Main
- GHC.Driver.Make
- GHC.Driver.MakeFile
- GHC.Driver.MakeSem
- GHC.Driver.Monad
- GHC.Driver.Phases
- GHC.Driver.Pipeline
- GHC.Driver.Plugins
- GHC.Driver.Ppr
- GHC.Driver.Session
- GHC.Hs
- GHC.HsToCore
- GHC.HsToCore.Arrows
- GHC.HsToCore.Binds
- GHC.HsToCore.Breakpoints
- GHC.HsToCore.Coverage
- GHC.HsToCore.Docs
- Errors
- GHC.HsToCore.Expr
- Foreign
- GHC.HsToCore.GuardedRHSs
- GHC.HsToCore.ListComp
- GHC.HsToCore.Match
- GHC.HsToCore.Monad
- GHC.HsToCore.Pmc
- GHC.HsToCore.Quote
- GHC.HsToCore.Ticks
- GHC.HsToCore.Types
- GHC.HsToCore.Usage
- GHC.HsToCore.Utils
- Iface
- GHC.IfaceToCore
- JS
- Linker
- GHC.Llvm
- GHC.Parser
- GHC.Platform
- GHC.Platform.AArch64
- GHC.Platform.ARM
- GHC.Platform.ArchOS
- GHC.Platform.Constants
- GHC.Platform.Host
- GHC.Platform.LoongArch64
- GHC.Platform.NoRegs
- GHC.Platform.PPC
- GHC.Platform.Profile
- GHC.Platform.RISCV64
- GHC.Platform.Reg
- GHC.Platform.Regs
- GHC.Platform.S390X
- GHC.Platform.Wasm32
- GHC.Platform.Ways
- GHC.Platform.X86
- GHC.Platform.X86_64
- GHC.Plugins
- GHC.Prelude
- Rename
- Runtime
- GHC.Settings
- Stg
- GHC.StgToByteCode
- GHC.StgToCmm
- GHC.StgToCmm.ArgRep
- GHC.StgToCmm.Bind
- GHC.StgToCmm.CgUtils
- GHC.StgToCmm.Closure
- GHC.StgToCmm.Config
- GHC.StgToCmm.DataCon
- GHC.StgToCmm.Env
- GHC.StgToCmm.Expr
- GHC.StgToCmm.ExtCode
- GHC.StgToCmm.Foreign
- GHC.StgToCmm.Heap
- GHC.StgToCmm.Hpc
- GHC.StgToCmm.InfoTableProv
- GHC.StgToCmm.Layout
- GHC.StgToCmm.Lit
- GHC.StgToCmm.Monad
- GHC.StgToCmm.Prim
- GHC.StgToCmm.Prof
- GHC.StgToCmm.Sequel
- GHC.StgToCmm.TagCheck
- GHC.StgToCmm.Ticky
- GHC.StgToCmm.Types
- GHC.StgToCmm.Utils
- GHC.StgToJS
- GHC.StgToJS.Apply
- GHC.StgToJS.Arg
- GHC.StgToJS.Closure
- GHC.StgToJS.CodeGen
- GHC.StgToJS.DataCon
- GHC.StgToJS.Deps
- GHC.StgToJS.Expr
- GHC.StgToJS.ExprCtx
- GHC.StgToJS.FFI
- GHC.StgToJS.Heap
- GHC.StgToJS.Ids
- Linker
- GHC.StgToJS.Literal
- GHC.StgToJS.Monad
- GHC.StgToJS.Object
- GHC.StgToJS.Prim
- GHC.StgToJS.Profiling
- GHC.StgToJS.Regs
- Rts
- GHC.StgToJS.Sinker
- GHC.StgToJS.Stack
- GHC.StgToJS.StaticPtr
- GHC.StgToJS.Symbols
- GHC.StgToJS.Types
- GHC.StgToJS.Utils
- GHC.SysTools
- Tc
- GHC.ThToHs
- Types
- GHC.Types.Annotations
- GHC.Types.Avail
- GHC.Types.Basic
- GHC.Types.Breakpoint
- GHC.Types.CompleteMatch
- GHC.Types.CostCentre
- GHC.Types.Cpr
- GHC.Types.DefaultEnv
- GHC.Types.Demand
- GHC.Types.Error
- GHC.Types.FieldLabel
- GHC.Types.Fixity
- GHC.Types.ForeignCall
- GHC.Types.ForeignStubs
- GHC.Types.GREInfo
- GHC.Types.Hint
- GHC.Types.HpcInfo
- GHC.Types.IPE
- GHC.Types.Id
- GHC.Types.Literal
- GHC.Types.Meta
- GHC.Types.Name
- GHC.Types.PkgQual
- GHC.Types.ProfAuto
- GHC.Types.RepType
- GHC.Types.SafeHaskell
- GHC.Types.SaneDouble
- GHC.Types.SourceError
- GHC.Types.SourceFile
- GHC.Types.SourceText
- GHC.Types.SptEntry
- GHC.Types.SrcLoc
- GHC.Types.Target
- GHC.Types.Tickish
- GHC.Types.TyThing
- GHC.Types.TypeEnv
- GHC.Types.Unique
- GHC.Types.Var
- GHC.Unit
- Utils
- GHC.Utils.Asm
- GHC.Utils.Binary
- GHC.Utils.BufHandle
- GHC.Utils.CliOption
- GHC.Utils.Constants
- Containers
- GHC.Utils.Error
- GHC.Utils.Exception
- GHC.Utils.FV
- GHC.Utils.Fingerprint
- GHC.Utils.GlobalVars
- IO
- GHC.Utils.Json
- GHC.Utils.Lexeme
- GHC.Utils.Logger
- GHC.Utils.Misc
- GHC.Utils.Monad
- GHC.Utils.Outputable
- GHC.Utils.Panic
- GHC.Utils.Ppr
- GHC.Utils.TmpFs
- GHC.Utils.Touch
- GHC.Utils.Trace
- GHC.Utils.Unique
- GHC.Utils.Word64
- Wasm
- Language
- Haskell
- Language.Haskell.Syntax
- Language.Haskell.Syntax.Basic
- Language.Haskell.Syntax.Binds
- Language.Haskell.Syntax.Decls
- Language.Haskell.Syntax.Expr
- Language.Haskell.Syntax.Extension
- Language.Haskell.Syntax.ImpExp
- Language.Haskell.Syntax.Lit
- Module
- Language.Haskell.Syntax.Pat
- Language.Haskell.Syntax.Specificity
- Language.Haskell.Syntax.Type
- Language.Haskell.Syntax
- Haskell
Flags
Manual Flags
Name | Description | Default |
---|---|---|
internal-interpreter | Build with internal interpreter support. | Disabled |
dynamic-system-linker | The system can load dynamic code. This is not the case for musl. | Enabled |
with-libzstd | Disabled | |
static-libzstd | Disabled | |
hadrian-stage0 | Enable if compiling the stage0 compiler with hadrian | Disabled |
bootstrap | Enabled when building the stage1 compiler in order to vendor the in-tree `ghc-boot-th` library, and through that the in-tree TH AST defintions from `ghc-internal`. See Note [Bootstrapping Template Haskell] | Disabled |
Automatic Flags
Name | Description | Default |
---|---|---|
build-tool-depends | Use build-tool-depends | Enabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- ghc-9.12.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- 0, 8.2.1, 8.4.3, 8.4.4, 8.6.1, 8.6.4, 8.6.5, 8.8.1, 8.8.3, 8.10.1, 8.10.2, 8.10.7, 9.2.1, 9.2.2, 9.2.3, 9.2.3.20220620, 9.2.4, 9.2.5, 9.2.6, 9.2.7, 9.2.8, 9.4.0.20220623, 9.4.2, 9.4.3, 9.4.4, 9.6.0.20230111, 9.6.0.20230128, 9.6.0.20230210, 9.6.0.20230302, 9.6.1, 9.6.2, 9.6.3, 9.8.0.20230919, 9.8.0.20230929, 9.8.1, 9.10.1
Versions [RSS] | 8.2.1, 8.2.2, 8.4.1, 8.4.3, 8.4.4, 8.6.1, 8.6.4, 8.6.5, 8.8.1, 8.8.3, 8.10.1, 8.10.2, 8.10.7, 9.0.2, 9.2.1, 9.2.2, 9.2.3, 9.2.3.20220620, 9.2.4, 9.2.5, 9.2.6, 9.2.7, 9.2.8, 9.4.1, 9.4.2, 9.4.3, 9.4.4, 9.4.5, 9.4.6, 9.4.7, 9.4.8, 9.6.1, 9.6.3, 9.6.4, 9.6.5, 9.6.6, 9.8.1, 9.8.2, 9.10.1, 9.12.1 (info) |
---|---|
Dependencies | array (>=0.1 && <0.6), base (>=4.11 && <4.22), binary (>=0.8 && <0.9), bytestring (>=0.11 && <0.13), containers (>=0.6.2.1 && <0.8), deepseq (>=1.4 && <1.6), directory (>=1 && <1.4), exceptions (>=0.10 && <0.11), filepath (>=1.5 && <1.6), ghc-boot (==9.12.1), ghc-boot-th (==9.12.1), ghc-heap (==9.12.1), ghci (==9.12.1), hpc (>=0.6 && <0.8), os-string (>=2.0.1 && <2.1), process (>=1 && <1.7), semaphore-compat, stm, time (>=1.4 && <1.15), transformers (>=0.5 && <0.7), unix (>=2.7 && <2.9), Win32 (>=2.3 && <2.15) [details] |
License | BSD-3-Clause |
Author | The GHC Team |
Maintainer | glasgow-haskell-users@haskell.org |
Category | Development |
Home page | http://www.haskell.org/ghc/ |
Uploaded | by wz1000 at 2024-12-16T09:29:28Z |
Distributions | Arch:9.2.8, Debian:8.10.7, Fedora:9.4.5, NixOS:9.6.6 |
Reverse Dependencies | 318 direct, 14620 indirect [details] |
Downloads | 11780 total (71 in the last 30 days) |
Rating | 2.5 (votes: 6) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |