Version 30 (modified by diatchki, 3 years ago) (diff)


This list overviews the active branches in the main GHC repository.

Active branches

  • master: Primary development branch for GHC HEAD.
  • late-lam-lift: Late Lambda Lift. Nick Frisby. We lift some lambdas before CorePrep. I'm still determining when to 'not' lift a lambda. My terse notes here.
  • wip/ext-olver: Iavor S. Diatchki. Integrate an extrenal SMT solver with the constrain solver. Mostly for working with type-level naturals at the moment.
  • simd: SIMD support. Geoffrey Mainland. This extends the simple SIMD support in GHC HEAD, and is slated for 7.8.

Limbo branches

These branches are not merged, but they are also not totally dead ended, and their status is currently uncertain.

  • coloured-core: Support for terminal color codes in -ddump-simpl output. Thomas Schilling.
  • wip/nested-cpr: Nested CPR. Works, but results where underwhelming. See NestedCPR. Joachim Breitner.
  • wip/cbv-conv-thunk: Opportunistic evaluation of thunks. This is a side-line of wip/nested-cpr: Nested CPR requires a convergence analysis, and it might be worth evaluating them (#7596). Seems to be not as useful as hoped. Joachim Breitner.
  • wip/common-context: Common context transformation which can reduce code size and possibly produce more join points. See NestedCPR. Joachim Breitner.


The actual status of these branches, including whether they have been merged and/or superseded, is not clear.

  • ghc-spj: ???. Simon PJ.
  • wip/exprArity: Contains one patch left over when Joachim merged SPJ’s better-ho-cardinality branch.

Dead/merged branches

This is a list of inactive branches which have been merged into the tree.

  • cpr-sum-types: CPR for sum types. Simon PJ.
  • tc-arrows: Rearrange the typechecking of arrows, especially arrow "forms". Simon PJ & Ross Patterson.
  • ghc-parmake-gsoc: Parallel --make. Patrick Palka, GSoC 2013. This extends ghc --make to be able to compile multiple modules in parallel.
  • atomics: Atomic memory operations. Ryan Newton. This expands on some work Simon Marlow started in 7.2.
  • late-dmd: Late Demand Analysis. Nick Frisby. See #7782, LateDmd
  • ticky-for-all-lets: Ticky for all lets. Nick Frisby. I think this patch is in mostly good shape, but I had to revert it because of a silly mistake. Need to double-check it. It adds ticky counters for lets, even those that don't end up as proper closures. … uh oh: looks like I merged this as 11a85cc7ea50d4b7c12ea2cc3c0ce39734dc4217 … I apologize for bad note-taking.
  • ghc-axioms: First attempt at branched type family instances. Richard Eisenberg / José Pedro Magalhães / Simon PJ. Last commit was Jan 3, 2012. This was an early attempt at implementing branched type family instances. Superseded by overlapping-tyfams.
  • type-reasoning on base: Experiments with type-level reasoning definitions. Richard Eisenberg / Gabor Greif. Changes to TypeLits and related files to support type-level reasoning. Merged into master on July 24th by Richard.
  • at-defaults: Associated-type defaults. Max Bolingbroke. Merged into the 7.4 release.
  • cardinality: Cardinality Analysis. Ilya Sergey. This will be part of the 7.8 release.
  • encoding: Better UTF8 encoding support. Max Bolingbroke. This was merged into 7.4
  • type-holes-branch: Support for Type Holes. Simon PJ, Sean Leather and Thijs Alkemade. This will be part of the 7.8 release.
  • imp-param-class: Turn Implicit Parameters into functional dependencies using TypeNats. Iavor Diatchki. Merged and will be part of 7.8(?)
  • unboxed-tuple-arguments: Extending -XUnboxedTuples. Max Bolingbroke. Merged into 7.6.
  • ghc-new-co: New GHC Coercions. Simon PJ. Merged into 7.4(?)
  • ghc-constraint-solver: New constraint solver. Simon & Dimitrios. Merged into 7.4(?)
  • patch-5084: Fix for #5084. Max Bolingbroke. SimonPJ fixed it differently for 7.4(?)
  • known-key-serialization: Iface serialization changes. Max Bolingbroke. Merged in 7.4(?)
  • profiling: Profiling infrastructure overhaul. Simon Marlow. Merged in 7.4(?)
  • ghc-defer: Deferred type errors. Simon PJ. Merged in 7.6.
  • silent-sc-args: Silent superclass parameters. Simon PJ. Merged in 7.6.
  • new-demand-to-merge: New demand analyzer. Ilya Sergey. Will be part of 7.8 release.
  • cross-compiler-alienless: Better support for cross compilation. Gabor Greif. Merged and reimplemented by Ian Lynagh. Will be part of 7.8.

  • patch-7704: Fix for #7704. José Pedro Magalhães. Will be part of 7.8.
  • srcloc and real-src-loc-span: Amendments to spannings and SrcLocs. Ian Lynagh.
  • type-nats-simple: Derived from type-nats, intended for eventually being merged into master, slated for 7.8.
  • type-nats: This is subsumed by functionality already on master, and the current work on this is happening on wip/ext-solver.
  • decision-procedure: This is an earlier version of wip/ext-solver.
  • better-ho-cardinality: Authored by Simon PJ, merged by Joachim while working on the demand analyser with the exception of the patch in wip/exprArity.