Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • haskell/ghc-api-compat
  • hsyl20/ghc-api-compat
  • berberman/ghc-api-compat
  • AriFordsham/ghc-api-compat
4 results
Show changes
Commits on Source (5)
name: CI
# Trigger the workflow on push or pull request, but only for the master branch
on:
pull_request:
push:
branches: [master]
jobs:
cabal:
name: ${{ matrix.os }} / ghc ${{ matrix.ghc }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
cabal: ["latest"]
ghc: ["8.6", "8.8", "8.10"]
steps:
- uses: actions/checkout@v2
if: github.event.action == 'opened' || github.event.action == 'synchronize' || github.event.ref == 'refs/heads/master'
- uses: actions/setup-haskell@v1.1
id: setup-haskell-cabal
name: Setup Haskell
with:
ghc-version: ${{ matrix.ghc }}
cabal-version: ${{ matrix.cabal }}
- name: Build
run: |
cabal update
cabal build all --enable-tests --enable-benchmarks --write-ghc-environment-files=always
- name: Test
run: |
cabal test all --enable-tests
......@@ -13,3 +13,10 @@ Build with:
.. code::
cabal build -w /path/to/ghc/HEAD/_build/stage1/bin/ghc
ghc-api.csv
===========
ghc-api.csv is a file chronicling GHC's module renamings. Right now it duplicates information from ghc-api-compat.cabal, and there's no guarantee that it will be kept up-to-date or in sync, but there's an aspiration that this package(and others) can be generated automatically from it, and it can serve as a 'single source of truth'.
Please note modules may have been renamed multiple times. In that case, there will be multiple entries, from A to B and from B to C.
\ No newline at end of file
......@@ -4,19 +4,18 @@ synopsis: GHC-API compatibility helpers
description:
GHC codebase is a moving target. This package provides
compatibility for codes relying on an older GHC-API version.
See https://gitlab.haskell.org/ghc/ghc/-/wikis/Make-GHC-codebase-more-modular for the migration plan.
license: BSD3
license-file: LICENSE
author: Sylvain Henry
maintainer: sylvain@haskus.fr
copyright: Sylvain Henry 2020
category: Development
build-type: Simple
cabal-version: 1.22
source-repository head
type: git
location: https://github.com/hsyl20/ghc-api-compat.git
location: https://gitlab.haskell.org/haskell/ghc-api-compat.git
library
build-depends:
ghc >= 8.6, base < 5.0
......@@ -120,7 +119,9 @@ library
if impl(ghc >= 9.0)
hs-source-dirs: src
exposed-modules: Outputable
exposed-modules: Outputable DynFlags
build-depends:
containers >= 0.6.0 && <= 0.6.5
reexported-modules:
GHC.Rename.Bind as RnBinds
, GHC.Rename.Env as RnEnv
......@@ -347,7 +348,7 @@ library
, GHC.Driver.Main as HscMain
, GHC.Driver.Make as GhcMake
, GHC.Driver.Hooks as Hooks
, GHC.Driver.Session as DynFlags
-- , GHC.Driver.Session as DynFlags
, GHC.Driver.Phases as DriverPhases
, GHC.Driver.Pipeline as DriverPipeline
, GHC.Driver.Pipeline.Monad as PipelineMonad
......
Old,New,Introduced
CgUtils,GHC.StgToCmm.CgUtils,8.10.1
Check,GHC.HsToCore.PmCheck,8.10.1
CodeGen.Platform,GHC.Platform.Regs,8.10.1
CodeGen.Platform.ARM,GHC.Platform.ARM,8.10.1
CodeGen.Platform.ARM64,GHC.Platform.ARM64,8.10.1
CodeGen.Platform.NoRegs,GHC.Platform.NoRegs,8.10.1
CodeGen.Platform.PPC,GHC.Platform.PPC,8.10.1
CodeGen.Platform.SPARC,GHC.Platform.SPARC,8.10.1
CodeGen.Platform.X86,GHC.Platform.X86,8.10.1
CodeGen.Platform.X86_64,GHC.Platform.X86_64,8.10.1
Convert,GHC.ThToHs,8.10.1
HsBinds,GHC.Hs.Binds,8.10.1
HsDecls,GHC.Hs.Decls,8.10.1
HsDoc,GHC.Hs.Doc,8.10.1
HsDumpAst,GHC.Hs.Dump,8.10.1
HsExpr,GHC.Hs.Expr,8.10.1
HsExtension,GHC.Hs.Extension,8.10.1
HsImpExp,GHC.Hs.ImpExp,8.10.1
HsInstances,GHC.Hs.Instances,8.10.1
HsLit,GHC.Hs.Lit,8.10.1
HsPat,GHC.Hs.Pat,8.10.1
HsSyn,GHC.Hs,8.10.1
HsTypes,GHC.Hs.Types,8.10.1
HsUtils,GHC.Hs.Utils,8.10.1
PlaceHolder,GHC.Hs.PlaceHolder,8.10.1
PmOracle,GHC.HsToCore.PmCheck.Oracle,8.10.1
PmPpr,GHC.HsToCore.PmCheck.Ppr,8.10.1
PmTypes,GHC.HsToCore.PmCheck.Types,8.10.1
StgCmm,GHC.StgToCmm,8.10.1
StgCmmArgRep,GHC.StgToCmm.ArgRep,8.10.1
StgCmmBind,GHC.StgToCmm.Bind,8.10.1
StgCmmClosure,GHC.StgToCmm.Closure,8.10.1
StgCmmCon,GHC.StgToCmm.DataCon,8.10.1
StgCmmEnv,GHC.StgToCmm.Env,8.10.1
StgCmmExpr,GHC.StgToCmm.Expr,8.10.1
StgCmmExtCode,GHC.StgToCmm.ExtCode,8.10.1
StgCmmForeign,GHC.StgToCmm.Foreign,8.10.1
StgCmmHeap,GHC.StgToCmm.Heap,8.10.1
StgCmmHpc,GHC.StgToCmm.Hpc,8.10.1
StgCmmLayout,GHC.StgToCmm.Layout,8.10.1
StgCmmMonad,GHC.StgToCmm.Monad,8.10.1
StgCmmPrim,GHC.StgToCmm.Prim,8.10.1
StgCmmProf,GHC.StgToCmm.Prof,8.10.1
StgCmmTicky,GHC.StgToCmm.Ticky,8.10.1
StgCmmUtils,GHC.StgToCmm.Utils,8.10.1
GHC.Platform.ARM64,GHC.Platform.AArch64,8.10.5
Annotations,GHC.Types.Annotations,9.0.1
Ar,GHC.SysTools.Ar,9.0.1
AsmCodeGen,GHC.CmmToAsm,9.0.1
AsmUtils,GHC.Utils.Asm,9.0.1
Avail,GHC.Types.Avail,9.0.1
Bag,GHC.Data.Bag,9.0.1
Basic,GHC.Types.Basic,9.0.1
BasicTypes,GHC.Types.Basic,9.0.1
Binary,GHC.Utils.Binary,9.0.1
BinIface,GHC.Iface.Binary,9.0.1
BitMap,GHC.Data.Bitmap,9.0.1
BkpSyn,GHC.Driver.Backpack.Syntax,9.0.1
BlockId,GHC.Cmm.BlockId,9.0.1
BlockLayout,GHC.CmmToAsm.BlockLayout,9.0.1
BooleanFormula,GHC.Data.BooleanFormula,9.0.1
BufWrite,GHC.Utils.BufHandle,9.0.1
ByteCodeAsm,GHC.ByteCode.Asm,9.0.1
ByteCodeGen,GHC.CoreToByteCode,9.0.1
ByteCodeInstr,GHC.ByteCode.Instr,9.0.1
ByteCodeItbls,GHC.ByteCode.InfoTable,9.0.1
ByteCodeLink,GHC.ByteCode.Linker,9.0.1
ByteCodeTypes,GHC.ByteCode.Types,9.0.1
CFG,GHC.CmmToAsm.CFG,9.0.1
CLabel,GHC.Cmm.CLabel,9.0.1
Class,GHC.Core.Class,9.0.1
CliOption,GHC.Utils.CliOption,9.0.1
CmdLineParser,GHC.Driver.CmdLine,9.0.1
Cmm,GHC.Cmm,9.0.1
CmmBuildInfoTables,GHC.Cmm.Info.Build,9.0.1
CmmCallConv,GHC.Cmm.CallConv,9.0.1
CmmCommonBlockElim,GHC.Cmm.CommonBlockElim,9.0.1
CmmContFlowOpt,GHC.Cmm.ContFlowOpt,9.0.1
CmmExpr,GHC.Cmm.Expr,9.0.1
CmmImplementSwitchPlans,GHC.Cmm.Switch.Implement,9.0.1
CmmInfo,GHC.Cmm.Info,9.0.1
CmmLayoutStack,GHC.Cmm.LayoutStack,9.0.1
CmmLex,GHC.Cmm.Lexer,9.0.1
CmmLint,GHC.Cmm.Lint,9.0.1
CmmLive,GHC.Cmm.Liveness,9.0.1
CmmMachOp,GHC.Cmm.MachOp,9.0.1
CmmMonad,GHC.Cmm.Monad,9.0.1
CmmNode,GHC.Cmm.Node,9.0.1
CmmOpt,GHC.Cmm.Opt,9.0.1
CmmParse,GHC.Cmm.Parser,9.0.1
CmmPipeline,GHC.Cmm.Pipeline,9.0.1
CmmProcPoint,GHC.Cmm.ProcPoint,9.0.1
CmmSink,GHC.Cmm.Sink,9.0.1
CmmSwitch,GHC.Cmm.Switch,9.0.1
CmmType,GHC.Cmm.Type,9.0.1
CmmUtils,GHC.Cmm.Utils,9.0.1
CoAxion,GHC.Core.Coercion.Axiom,9.0.1
CodeOutput,GHC.Driver.CodeOutput,9.0.1
Coercion,GHC.Core.Coercion,9.0.1
Config,GHC.Settings.Config,9.0.1
ConLike,GHC.Core.ConLike,9.0.1
Constants,GHC.Settings.Constants,9.0.1
CoreArity,GHC.Core.Opt.Arity,9.0.1
CoreFVs,GHC.Core.FVs,9.0.1
CoreLint,GHC.Core.Lint,9.0.1
CoreMap,GHC.Core.Map,9.0.1
CoreMonad,GHC.Core.Opt.Monad,9.0.1
CoreOpt,GHC.Core.SimpleOpt,9.0.1
CorePrep,GHC.CoreToStg.Prep,9.0.1
CoreSeq,GHC.Core.Seq,9.0.1
CoreStats,GHC.Core.Stats,9.0.1
CoreSubst,GHC.Core.Subst,9.0.1
CoreSyn,GHC.Core,9.0.1
CoreTidy,GHC.Core.Tidy,9.0.1
CoreToStg,GHC.CoreToStg,9.0.1
CoreUnfold,GHC.Core.Unfold,9.0.1
CoreUtils,GHC.Core.Utils,9.0.1
CostCentre,GHC.Types.CostCentre,9.0.1
CostCentreState,GHC.Types.CostCentre.State,9.0.1
Coverage,GHC.HsToCore.Coverage,9.0.1
Cpr,GHC.Types.Cpr,9.0.1
CPrim,GHC.CmmToAsm.CPrim,9.0.1
CType,GHC.Parser.CharClass,9.0.1
DataCon,GHC.Core.DataCon,9.0.1
Debug,GHC.Cmm.DebugBlock,9.0.1
Debugger,GHC.Runtime.Debugger,9.0.1
Demand,GHC.Types.Demand,9.0.1
Desugar,GHC.HsToCore,9.0.1
DiGraph,GHC.Data.Graph.Directed,9.0.1
Dominators,GHC.CmmToAsm.CFG.Dominators,9.0.1
DriverBkp,GHC.Driver.Backpack,9.0.1
DriverMkDepend,GHC.Driver.MakeFile,9.0.1
DriverPhases,GHC.Driver.Phases,9.0.1
DriverPipeline,GHC.Driver.Pipeline,9.0.1
DsArrows,GHC.HsToCore.Arrows,9.0.1
DsBinds,GHC.HsToCore.Binds,9.0.1
DsCCall,GHC.HsToCore.Foreign.Call,9.0.1
DsExpr,GHC.HsToCore.Expr,9.0.1
DsForeign,GHC.HsToCore.Foreign.Decl,9.0.1
DsGRHSs,GHC.HsToCore.GuardedRHSs,9.0.1
DsListComp,GHC.HsToCore.ListComp,9.0.1
DsMeta,GHC.HsToCore.Quote,9.0.1
DsMonad,GHC.HsToCore.Monad,9.0.1
DsUsage,GHC.HsToCore.Usage,9.0.1
DsUtils,GHC.HsToCore.Utils,9.0.1
Dwarf,GHC.CmmToAsm.Dwarf,9.0.1
Dwarf.Constants,GHC.CmmToAsm.Dwarf.Constants,9.0.1
Dwarf.Types,GHC.CmmToAsm.Dwarf.Types,9.0.1
DynamicLoading,GHC.Runtime.Loader,9.0.1
DynFlags,GHC.Driver.Session,9.0.1
Elf,GHC.SysTools.Elf,9.0.1
Encoding,GHC.Utils.Encoding,9.0.1
EnumSet,GHC.Data.EnumSet,9.0.1
ErrUtils,GHC.Utils.Error,9.0.1
Exception,GHC.Utils.Exception,9.0.1
ExtractDocs,GHC.HsToCore.Docs,9.0.1
FamInstEnv,GHC.Core.FamInstEnv,9.0.1
FastFunctions,GHC.Utils.IO.Unsafe,9.0.1
FastMutInt,GHC.Data.FastMutInt,9.0.1
FastString,GHC.Data.FastString,9.0.1
FastStringEnv,GHC.Data.FastString.Env,9.0.1
FieldLabel,GHC.Types.FieldLabel,9.0.1
FileCleanup,GHC.SysTools.FileCleanup,9.0.1
Finder,GHC.Driver.Finder,9.0.1
Fingerprint,GHC.Utils.Fingerprint,9.0.1
FiniteMap,GHC.Data.FiniteMap,9.0.1
ForeignCall,GHC.Types.ForeignCall,9.0.1
Format,GHC.CmmToAsm.Format,9.0.1
FV,GHC.Utils.FV,9.0.1
GHC,GHC,9.0.1
GHC.Hs.Types,GHC.Hs.Type,9.0.1
GHCi,GHC.Runtime.Interpreter,9.0.1
GhcMake,GHC.Driver.Make,9.0.1
GhcMonad,GHC.Driver.Monad,9.0.1
GhcPlugins,GHC.Plugins,9.0.1
GhcPrelude,GHC.Prelude,9.0.1
GraphBase,GHC.Data.Graph.Base,9.0.1
GraphColor,GHC.Data.Graph.Color,9.0.1
GraphOps,GHC.Data.Graph.Ops,9.0.1
GraphPpr,GHC.Data.Graph.Ppr,9.0.1
HeaderInfo,GHC.Parser.Header,9.0.1
HieAst,GHC.Iface.Ext.Ast,9.0.1
HieBin,GHC.Iface.Ext.Binary,9.0.1
HieDebug,GHC.Iface.Ext.Debug,9.0.1
HieTypes,GHC.Iface.Ext.Types,9.0.1
HieUtils,GHC.Iface.Ext.Utils,9.0.1
Hooks,GHC.Driver.Hooks,9.0.1
Hoopl.Block,GHC.Cmm.Dataflow.Block,9.0.1
Hoopl.Collections,GHC.Cmm.Dataflow.Collections,9.0.1
Hoopl.Dataflow,GHC.Cmm.Dataflow,9.0.1
Hoopl.Graph,GHC.Cmm.Dataflow.Graph,9.0.1
Hoopl.Label,GHC.Cmm.Dataflow.Label,9.0.1
HscMain,GHC.Driver.Main,9.0.1
HscTypes,GHC.Driver.Types,9.0.1
Id,GHC.Types.Id,9.0.1
IfaceEnv,GHC.Iface.Env,9.0.1
IfaceSyn,GHC.Iface.Syntax,9.0.1
IfaceType,GHC.Iface.Type,9.0.1
Info,GHC.Types.Id.Info,9.0.1
InstEnv,GHC.Core.InstEnv,9.0.1
Instruction,GHC.CmmToAsm.Instr,9.0.1
InteractiveEval,GHC.Runtime.Eval,9.0.1
InteractiveEvalTypes,GHC.Runtime.Eval.Types,9.0.1
IOEnv,GHC.Data.IOEnv,9.0.1
Json,GHC.Utils.Json,9.0.1
KnownUniques,GHC.Builtin.Uniques,9.0.1
Lexeme,GHC.Utils.Lexeme,9.0.1
Lexer,GHC.Parser.Lexer,9.0.1
Linker,GHC.Runtime.Linker,9.0.1
LinkerTypes,GHC.Runtime.Linker.Types,9.0.1
ListSetOpts,GHC.Data.List.SetOps,9.0.1
Literal,GHC.Types.Literal,9.0.1
Llvm,GHC.Llvm,9.0.1
Llvm.AbsSyn,GHC.Llvm.Syntax,9.0.1
Llvm.MetaData,GHC.Llvm.MetaData,9.0.1
Llvm.PpLlvm,GHC.Llvm.Ppr,9.0.1
Llvm.Types,GHC.Llvm.Types,9.0.1
LlvmCodeGen,GHC.CmmToLlvm,9.0.1
LlvmCodeGen.Base,GHC.CmmToLlvm.Base,9.0.1
LlvmCodeGen.CodeGen,GHC.CmmToLlvm.CodeGen,9.0.1
LlvmCodeGen.Data,GHC.CmmToLlvm.Data,9.0.1
LlvmCodeGen.Ppr,GHC.CmmToLlvm.Ppr,9.0.1
LlvmCodeGen.Regs,GHC.CmmToLlvm.Regs,9.0.1
LlvmMangler,GHC.CmmToLlvm.Mangler,9.0.1
LoadIface,GHC.Iface.Load,9.0.1
Make,GHC.Types.Id.Make,9.0.1
Match,GHC.HsToCore.Match,9.0.1
MatchCon,GHC.HsToCore.Match.Constructor,9.0.1
MatchLit,GHC.HsToCore.Match.Literal,9.0.1
Maybes,GHC.Data.Maybe,9.0.1
MkCore,GHC.Core.Make,9.0.1
MkGraph,GHC.Cmm.Graph,9.0.1
MkIface,GHC.Iface.Make,9.0.1
Module,GHC.Unit.Module,9.0.1
MonadUtils,GHC.Utils.Monad,9.0.1
Name,GHC.Types.Name,9.0.1
NameCache,GHC.Types.Name.Cache,9.0.1
NameEnv,GHC.Types.Name.Env,9.0.1
NameSet,GHC.Types.Name.Set,9.0.1
NameShape,GHC.Types.Name.Shape,9.0.1
NCGMonad,GHC.CmmToAsm.Monad,9.0.1
OccName,GHC.Types.Name.Occurrence,9.0.1
OptCoercion,GHC.Core.Coercion.Opt,9.0.1
OrdList,GHC.Data.OrdList,9.0.1
Outputable,GHC.Utils.Outputable,9.0.1
PackageConfig,GHC.Unit.Info,9.0.1
Packages,GHC.Unit.State,9.0.1
Pair,GHC.Data.Pair,9.0.1
Panic,GHC.Utils.Panic,9.0.1
Parser,GHC.Parser,9.0.1
PatSyn,GHC.Core.PatSyn,9.0.1
PIC,GHC.CmmToAsm.PIC,9.0.1
PipelineMonad,GHC.Driver.Pipeline.Monad,9.0.1
PlainPanic,GHC.Utils.Panic.Plain,9.0.1
Plugins,GHC.Driver.Plugins,9.0.1
PPC.CodeGen,GHC.CmmToAsm.PPC.CodeGen,9.0.1
PPC.Cond,GHC.CmmToAsm.PPC.Cond,9.0.1
PPC.Instr,GHC.CmmToAsm.PPC.Instr,9.0.1
PPC.Ppr,GHC.CmmToAsm.PPC.Ppr,9.0.1
PPC.RegInfo,GHC.CmmToAsm.PPC.RegInfo,9.0.1
PPC.Regs,GHC.CmmToAsm.PPC.Regs,9.0.1
PprBase,GHC.CmmToAsm.Ppr,9.0.1
PprC,GHC.CmmToC,9.0.1
PprCmm,GHC.Cmm.Ppr,9.0.1
PprCmmDecl,GHC.Cmm.Ppr.Decl,9.0.1
PprCmmExpr,GHC.Cmm.Ppr.Expr,9.0.1
PprColour,GHC.Utils.Ppr.Colour,9.0.1
PprCore,GHC.Core.Ppr,9.0.1
PprTyThing,GHC.Core.Ppr.TyThing,9.0.1
Predicate,GHC.Core.Predicate,9.0.1
PrelInfo,GHC.Builtin.Utils,9.0.1
PrelNames,GHC.Builtin.Names,9.0.1
Pretty,GHC.Utils.Ppr,9.0.1
PrimOp,GHC.Builtin.PrimOps,9.0.1
RdrHsSyn,GHC.Parser.PostProcess,9.0.1
RdrName,GHC.Types.Name.Reader,9.0.1
Reg,GHC.Platform.Reg,9.0.1
RegAlloc.Graph.ArchBase,GHC.CmmToAsm.Reg.Graph.Base,9.0.1
RegAlloc.Graph.ArchX86,GHC.CmmToAsm.Reg.Graph.X86,9.0.1
RegAlloc.Graph.Coalesce,GHC.CmmToAsm.Reg.Graph.Coalesce,9.0.1
RegAlloc.Graph.Main,GHC.CmmToAsm.Reg.Graph,9.0.1
RegAlloc.Graph.Spill,GHC.CmmToAsm.Reg.Graph.Spill,9.0.1
RegAlloc.Graph.SpillClean,GHC.CmmToAsm.Reg.Graph.SpillClean,9.0.1
RegAlloc.Graph.SpillCost,GHC.CmmToAsm.Reg.Graph.SpillCost,9.0.1
RegAlloc.Graph.Stats,GHC.CmmToAsm.Reg.Graph.Stats,9.0.1
RegAlloc.Graph.TrivColorable,GHC.CmmToAsm.Reg.Graph.TrivColorable,9.0.1
RegAlloc.Linear.Base,GHC.CmmToAsm.Reg.Linear.Base,9.0.1
RegAlloc.Linear.FreeRegs,GHC.CmmToAsm.Reg.Linear.FreeRegs,9.0.1
RegAlloc.Linear.JoinToTargets,GHC.CmmToAsm.Reg.Linear.JoinToTargets,9.0.1
RegAlloc.Linear.Main,GHC.CmmToAsm.Reg.Linear,9.0.1
RegAlloc.Linear.PPC.FreeRegs,GHC.CmmToAsm.Reg.Linear.PPC,9.0.1
RegAlloc.Linear.SPARC.FreeRegs,GHC.CmmToAsm.Reg.Linear.SPARC,9.0.1
RegAlloc.Linear.StackMap,GHC.CmmToAsm.Reg.Linear.StackMap,9.0.1
RegAlloc.Linear.State,GHC.CmmToAsm.Reg.Linear.State,9.0.1
RegAlloc.Linear.Stats,GHC.CmmToAsm.Reg.Linear.Stats,9.0.1
RegAlloc.Linear.X86.FreeRegs,GHC.CmmToAsm.Reg.Linear.X86,9.0.1
RegAlloc.Linear.X86_64.FreeRegs,GHC.CmmToAsm.Reg.Linear.X86_64,9.0.1
RegAlloc.Liveness,GHC.CmmToAsm.Reg.Liveness,9.0.1
RegClass,GHC.Platform.Reg.Class,9.0.1
RepType,GHC.Types.RepType,9.0.1
RnBinds,GHC.Rename.Bind,9.0.1
RnEnv,GHC.Rename.Env,9.0.1
RnExpr,GHC.Rename.Expr,9.0.1
RnFixity,GHC.Rename.Fixity,9.0.1
RnHsDoc,GHC.Rename.Doc,9.0.1
RnModIface,GHC.Iface.Rename,9.0.1
RnNames,GHC.Rename.Names,9.0.1
RnPat,GHC.Rename.Pat,9.0.1
RnSource,GHC.Rename.Module,9.0.1
RnSplice,GHC.Rename.Splice,9.0.1
RnTypes,GHC.Rename.HsType,9.0.1
RnUnbound,GHC.Rename.Unbound,9.0.1
RnUtils,GHC.Rename.Utils,9.0.1
RtClosureInspect,GHC.Runtime.Heap.Inspect,9.0.1
Rules,GHC.Core.Rules,9.0.1
Settings,GHC.Settings,9.0.1
SimplStg,GHC.Stg.Pipeline,9.0.1
SMRep,GHC.Runtime.Heap.Layout,9.0.1
SPARC.AddrMode,GHC.CmmToAsm.SPARC.AddrMode,9.0.1
SPARC.Base,GHC.CmmToAsm.SPARC.Base,9.0.1
SPARC.CodeGen,GHC.CmmToAsm.SPARC.CodeGen,9.0.1
SPARC.CodeGen.Amode,GHC.CmmToAsm.SPARC.CodeGen.Amode,9.0.1
SPARC.CodeGen.Base,GHC.CmmToAsm.SPARC.CodeGen.Base,9.0.1
SPARC.CodeGen.CondCode,GHC.CmmToAsm.SPARC.CodeGen.CondCode,9.0.1
SPARC.CodeGen.Expand,GHC.CmmToAsm.SPARC.CodeGen.Expand,9.0.1
SPARC.CodeGen.Gen32,GHC.CmmToAsm.SPARC.CodeGen.Gen32,9.0.1
SPARC.CodeGen.Gen64,GHC.CmmToAsm.SPARC.CodeGen.Gen64,9.0.1
SPARC.CodeGen.Sanity,GHC.CmmToAsm.SPARC.CodeGen.Sanity,9.0.1
SPARC.Cond,GHC.CmmToAsm.SPARC.Cond,9.0.1
SPARC.Imm,GHC.CmmToAsm.SPARC.Imm,9.0.1
SPARC.Instr,GHC.CmmToAsm.SPARC.Instr,9.0.1
SPARC.Ppr,GHC.CmmToAsm.SPARC.Ppr,9.0.1
SPARC.Regs,GHC.CmmToAsm.SPARC.Regs,9.0.1
SPARC.ShortcutJump,GHC.CmmToAsm.SPARC.ShortcutJump,9.0.1
SPARC.Stack,GHC.CmmToAsm.SPARC.Stack,9.0.1
SrcLoc,GHC.Types.SrcLoc,9.0.1
State,GHC.Utils.Monad.State,9.0.1
StgCse,GHC.Stg.CSE,9.0.1
StgFVs,GHC.Stg.FVs,9.0.1
StgLiftLams,GHC.Stg.Lift,9.0.1
StgLiftLams.Analysis,GHC.Stg.Lift.Analysis,9.0.1
StgLiftLams.LiftM,GHC.Stg.Lift.Monad,9.0.1
StgLint,GHC.Stg.Lint,9.0.1
StgStats,GHC.Stg.Stats,9.0.1
StgSubst,GHC.Stg.Subst,9.0.1
StgSyn,GHC.Stg.Syntax,9.0.1
Stream,GHC.Data.Stream,9.0.1
StringBuffer,GHC.Data.StringBuffer,9.0.1
SysTools,GHC.SysTools,9.0.1
SysTools.BaseDir,GHC.SysTools.BaseDir,9.0.1
SysTools.ExtraObj,GHC.SysTools.ExtraObj,9.0.1
SysTools.Info,GHC.SysTools.Info,9.0.1
SysTools.Process,GHC.SysTools.Process,9.0.1
SysTools.Settings,GHC.Settings.IO,9.0.1
SysTools.Tasks,GHC.SysTools.Tasks,9.0.1
SysTools.Terminal,GHC.SysTools.Terminal,9.0.1
TargetReg,GHC.CmmToAsm.Reg.Target,9.0.1
TcEnv,GHC.Tc.Utils.Env,9.0.1
TcHsSyn,GHC.Tc.Utils.Zonk,9.0.1
TcIface,GHC.IfaceToCore,9.0.1
TcRnMonad,GHC.Tc.Utils.Monad,9.0.1
TcRnTypes,GHC.Tc.Types,9.0.1
TcTypeNats,GHC.Builtin.Types.Literals,9.0.1
THNames,GHC.Builtin.Names.TH,9.0.1
TidyPgm,GHC.Iface.Tidy,9.0.1
ToIface,GHC.CoreToIface,9.0.1
ToolSettings,GHC.Settings,9.0.1
TrieMap,GHC.Data.TrieMap,9.0.1
TyCoFVs,GHC.Core.TyCo.FVs,9.0.1
TyCon,GHC.Core.TyCon,9.0.1
TyCoPpr,GHC.Core.TyCo.Ppr,9.0.1
TyCoRep,GHC.Core.TyCo.Rep,9.0.1
TyCoSubst,GHC.Core.TyCo.Subst,9.0.1
TyCoTidy,GHC.Core.TyCo.Tidy,9.0.1
Type,GHC.Core.Type,9.0.1
TysPrims,GHC.Builtin.Types.Prim,9.0.1
TysWiredIn,GHC.Builtin.Types,9.0.1
UnariseStg,GHC.Stg.Unarise,9.0.1
Unify,GHC.Core.Unify,9.0.1
UniqDFM,GHC.Types.Unique.DFM,9.0.1
UniqDSet,GHC.Types.Unique.DSet,9.0.1
UniqFM,GHC.Types.Unique.FM,9.0.1
UniqSet,GHC.Types.Unique.Set,9.0.1
UniqSupply,GHC.Types.Unique.Supply,9.0.1
Unique,GHC.Types.Unique,9.0.1
UnVarGraph,GHC.Data.Graph.UnVar,9.0.1
Util,GHC.Utils.Misc,9.0.1
Var,GHC.Types.Var,9.0.1
VarEnv,GHC.Types.Var.Env,9.0.1
VarSet,GHC.Types.Var.Set,9.0.1
X86.CodeGen,GHC.CmmToAsm.X86.CodeGen,9.0.1
X86.Cond,GHC.CmmToAsm.X86.Cond,9.0.1
X86.Instr,GHC.CmmToAsm.X86.Instr,9.0.1
X86.Ppr,GHC.CmmToAsm.X86.Ppr,9.0.1
X86.RegInfo,GHC.CmmToAsm.X86.RegInfo,9.0.1
X86.Regs,GHC.CmmToAsm.X86.Regs,9.0.1
GHC.HsToCore.PmCheck,GHC.HsToCore.Pmc,9.1.1
GHC.HsToCore.PmCheck.Ppr,GHC.HsToCore.Pmc.Ppr,9.1.1
GHC.HsToCore.PmCheck.Types,GHC.HsToCore.Pmc.Types,9.1.1
GHC.Cmm.Monad,GHC.Cmm.Parser.Monad,9.2.1
GHC.Core.Ppr.TyThing,GHC.Types.TyThing.Ppr,9.2.1
GHC.CoreToByteCode,GHC.StgToByteCode,9.2.1
GHC.Driver.Finder,GHC.Unit.Finder,9.2.1
GHC.Runtime.Linker,GHC.Linker,9.2.1
GHC.Runtime.Linker.Types,GHC.Linker.Types,9.2.1
GHC.SysTools.ExtraObj,GHC.Linker.ExtraObj,9.2.1
GHC.SysTools.FileCleanup,GHC.Utils.TmpFs,9.2.1
{-# LANGUAGE CPP #-}
module DynFlags
( module GHC.Driver.Session,
Way(..),
wayRTSOnly,
wayGeneralFlags,
wayUnsetGeneralFlags,
buildTag,
dynamicGhc,
hostFullWays,
interpWays,
)
where
import Data.Set (Set)
import GHC.Driver.Session
#if MIN_VERSION_GLASGOW_HASKELL(9,2,0,0)
import GHC.Platform.Ways
#else
import GHC.Driver.Ways
#endif
buildTag :: DynFlags -> String
buildTag = waysBuildTag . ways
dynamicGhc :: Bool
dynamicGhc = hostIsDynamic
interpWays :: Set Way
interpWays = hostFullWays
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE BlockArguments #-}
module Main where
import qualified Data.List as List
import System.Process
import Control.Monad
import Data.Version
import Text.ParserCombinators.ReadP
main :: IO ()
main = do
callCommand "ghcup upgrade"
let toVersion x = fst $ head $ filter (null . snd) $ readP_to_S (parseVersion) x
let show_versions = concatMap (\v -> "\n - " ++ showVersion v)
-- get available GHC versions via ghcup
avails <- readCreateProcess (shell "ghcup list -r -t ghc") ""
let fix_avail = toVersion . takeWhile (/= ' ') . drop 4
let avail_ghc_versions = fmap fix_avail (lines avails)
putStrLn $ "Available GHC versions: " ++ show_versions avail_ghc_versions
let
-- only test the recent ones
test_pred = (>= makeVersion [8,8])
prefiltered = filter test_pred avail_ghc_versions
-- take only the latest version per major release
major = take 2 . versionBranch
same_major x y = major x == major y
test_ghc_versions = fmap (last . List.sort) $ List.groupBy same_major prefiltered
putStrLn $ "We will test the following GHC versions: " ++ show_versions test_ghc_versions
forM_ test_ghc_versions \version -> do
let v = showVersion version
let ghc = "ghc-"++v
putStrLn "#######################################"
putStrLn $ "Testing " ++ ghc
putStrLn "#######################################"
putStrLn "# Installing GHC..."
callCommand $ "ghcup install ghc " ++ v
putStrLn "# Trying to build with cabal-install..."
callCommand "cabal clean"
callCommand $ "cabal build -w " ++ ghc