GHC plans for 8.4.1

This page is our road-map for what will be in 8.4.

If you believe your favourite thing belongs in this list, but isn't there, please yell. If it's not in the road map, it probably won't get done. Without a lot of support, many things in the road map won't get done either, so we need your help!


Release in February 2018. Cut release branch in November 2017.

Libraries Status

See Libraries

Release highlights (planned)

Below are the major highlights of 8.4.

  • Further work on compiler performance
  • Improved support for cross-compilation (Moritz Angermann)
  • A more expressive Haskell AST based on Trees That Grow (Shayan Najd)

Build system and miscellaneous changes

  • Improved Windows support, including support for split sections and long file paths (Tamar Christina)
  • Support for building stating libraries for elf and mach-o (-staticlib)

Landed in master branch

Library changes

  • Phase 2 of the Semigroup-Monoid Proposal (Herbert Riedel)

Build system and miscellaneous changes

  • iserv can be used over the network via iserv-proxy
  • llvm backend uses LLVM5
  • New Shake-based build system, hadrian, will be merged. (Andrey Mokhov)
  • Remove dependency on Hoopl package. (Michal Terepeta, Phab:D3616)

Tickets marked merge with no milestone

Ticket Type Summary Priority Owner
No tickets found

Tickets slated for 8.4.1


Status: merge (1 match)

Ticket Type Summary Priority Differential Rev(s) Owner
#13752 bug Odd pattern synonym type errors normal

Status: patch (17 matches)

Ticket Type Summary Priority Differential Rev(s) Owner
#12919 bug Equality not used for substitution highest Phab:D3848 goldfire
#11126 bug Entered absent arg in a Repa program high Phab:D3221 bgamari
#12970 feature request Add default implementation for Bits.bitSize high Phab:D3723 dfeuer
#14310 bug Assertion triggered by STM invariant. high Phab:D4065, Phab:D4067, Phab:D4073
#11798 feature request Explicit recompilation required to change compilation options normal Phab:D3368
#12965 bug String merging broken on Windows normal Phab:D3384
#13154 bug Standalone-derived anyclass instances aren't as permissive as empty instances normal Phab:D3337 RyanGlScott
#13617 bug GHCi linker does not honor alignment of sections. normal Phab:D3915 Phyx-
#13903 bug KQueue evtmgr backend fails to register for write events normal Phab:D3692
#14190 bug Typeable imposes seemingly redundant constraints on polykinded instances normal Phab:D4000
#14242 bug Ticks and join points don't play well normal
#14254 bug The Binary instance for TypeRep smells a bit expensive normal Phab:D3998, Phab:D4082, Phab:D4085
#14460 bug Symlink resolving fails against SMB mounts normal Phab:D4216 Phyx-
#14482 bug GHC -M mode fails to ensure that boot files are built before source files normal Phab:D4208
#14492 bug Tiered memory allocation restricts available memory normal Phab:D4215
#14504 bug Nofib is broken on Windows normal Phab:D4222
#9285 task IO manager startup procedure somewhat odd low simonmar

Status: upstream (2 matches)

Ticket Type Summary Priority Differential Rev(s) Owner
#9775 bug "Failed to remove" errors during Windows build from hsc2hs normal
#13897 task Ship check-ppr in bindist and compile during testsuite run normal Phab:D4039 alanz


Status: new (281 matches)

Ticket Type Summary Priority Owner
#5889 bug -fno-prof-count-entries leads to linking errors highest bgamari
#11715 bug Constraint vs * highest goldfire
#12437 bug 20% regression in max_bytes_used for T1969 highest bgamari
#13233 bug typePrimRep panic while compiling GHC with profiling highest
#14123 task Figure out invariants surrounding ticks in Core highest
#14135 bug PatternSynonyms regression in GHC HEAD (expectJust mkOneConFull) highest
#14155 bug GHC mentions unlifted types out of the blue (to me anyway) highest
#14416 task CI with CircleCI highest
#4012 bug Compilation results are not deterministic high niteria
#5775 bug Inconsistency in demand analysis high
#7411 bug Exceptions are optimized away in certain situations high
#8095 bug TypeFamilies painfully slow high goldfire
#8228 bug GHC built under Windows does not generate dyn_hi files high Phyx-
#8281 bug The impossible happened: primRepToFFIType high
#8949 bug switch -msse2 to be on by default high
#9370 bug unfolding info as seen when building a module depends on flags in a previously-compiled module high bgamari
#10068 task Make the runtime reflection API for names, modules, locations more systematic high
#10074 task Implement the 'Improved LLVM Backend' proposal high angerman
#10599 bug Template Haskell doesn't allow `newName "type"` high goldfire
#10892 task ApplicativeDo should use *> and <* high bollu
#10946 bug Typed hole inside typed Template Haskell bracket causes panic high
#11066 bug Inacessible branch should be warning - otherwise breaks type soundness? high
#11195 bug New pattern-match check can be non-performant high
#11196 bug TypeInType performance regressions high
#11198 bug TypeInType error message regressions high
#11371 bug Bogus in-scope set in substitutions high niteria
#11523 bug Infinite Loop when mixing UndecidableSuperClasses and the class/instance constraint synonym trick. high simonpj
#11606 bug name shadowing warnings don't trigger on standalone declarations in ghci high rwbarton
#12088 bug Type/data family instances in kind checking high
#12178 feature request Allow inline pragmas on pattern synonyms high osa1
#12564 bug Type family in type pattern kind high goldfire
#12665 feature request Make Read instances for Integral types faster, and make them fail fast high dfeuer
#13380 bug raiseIO# result looks wrong high dfeuer
#13426 bug compile-time memory-usage regression for DynFlags between GHC 8.0 and GHC 8.2 high dfeuer
#13535 bug vector test suite uses excessive memory on GHC 8.2 high bgamari
#13576 bug Runtime crashes on arm64 (iOS) high
#13624 bug loadObj() does not respect alignment high
#13650 task Implement KPush in types high goldfire
#13763 bug Performance regression (~34%) in 8.2.1, poor register allocation(?) in an inner loop over an array high
#13851 bug Change in specialisation(?) behaviour since 8.0.2 causes 6x slowdown high
#13896 bug Use response file to invoke hsc2hs high
#13900 bug Core lint in BuildFlavour=perf-llvm high bgamari
#13930 bug Cabal configure regresses in space/time high
#13993 bug Certain inter-module specializations run out of simplifier ticks high
#13994 bug STG lint failure on master high
#14013 bug Bad monads performance high simonpj
#14038 bug TypeApplications regression in GHC HEAD: ‘p0’ is untouchable inside the constraints: () high
#14052 bug Significant GHCi speed regression with :module and `let` in GHC 8.2.1 high
#14069 bug RTS linker maps code as writable high
#14230 bug Gruesome kind mismatch errors for associated data family instances high goldfire
#14253 bug Pattern match checker mistakenly concludes pattern match on pattern synonym is unreachable high
#14270 bug GHC HEAD's ghc-stage1 panics on Data.Typeable.Internal high bgamari
#14297 bug make bindist packages the wrong binaries for cross compilers high angerman
#14338 bug Simplifier fails with "Simplifier ticks exhausted" high bgamari
#14441 bug GHC HEAD regression involving type families in kinds high
#14454 bug Unregisterised build is broken high bgamari
#14468 task Why does alanz's branch blow up GHC's heap? high
#314 bug #line pragmas not respected inside nested comments normal
#605 task Optimisation: strict enumerations normal
#3094 bug Some GHC.* module should export word size and heap object header size normal
#3427 feature request control what sort of entity a deprecated pragma applies to normal thoughtpolice
#4879 feature request Deprecate exports normal
#5611 bug Asynchronous exception discarded after safe FFI call normal
#5620 bug Dynamic linking and threading does not work on Windows normal
#6132 bug Can't use both shebang line and #ifdef declarations in the same file. normal
#7273 bug Binary size increase in nofib/grep between 7.6.1 and HEAD normal
#7353 bug Make system IO interruptible on Windows normal refold
#7860 feature request Add more bit fiddling functions to 'integer-gmp' normal hvr
#8634 feature request Relax functional dependency coherence check ("liberal coverage condition") normal
#8763 bug forM_ [1..N] does not get fused (10 times slower than go function) normal
#9221 bug (super!) linear slowdown of parallel builds on 40 core machine normal
#9244 feature request Compiler could warn about type variable shadowing, and hint about ScopedTypeVariables normal
#9248 bug Document -XHaskell98 and -XHaskell2010 in flag reference normal goldfire
#9793 feature request Some as-patterns could be accepted in pattern synonyms normal
#10141 bug CUSK mysteries normal goldfire
#10346 bug Cross-module SpecConstr normal
#10352 task Properly link Haskell shared libs on all systems normal
#10431 feature request EqualityConstraints extension? normal
#10506 bug SourceNotes are not applied to all identifiers normal
#10536 task Clear up how to turn off dynamic linking in normal
#10542 bug Incorrect Unicode input on Windows Console normal
#10640 task Document prim-ops normal bgamari
#10770 bug Typeable solver has strange effects normal
#10789 feature request Notify user when a kind mismatch holds up a type family reduction normal
#10853 bug Refine addTopDecls normal
#10878 bug Near doubling of generated code size for compiler/cmm/PprC.hs with commit 5d57087e31 normal
#10933 feature request REMOVED pragma normal
#10962 task Improved arithmetic primops normal
#10972 feature request Add a :binfo (beginner info) GHCi command normal kanetw
#11092 bug ApiAnnotations : make annotation for shebang normal alanz
#11149 task Unify fixity/associativity of <>-ish pretty-printing operators normal
#11197 bug Overeager deferred type errors normal goldfire
#11204 bug Recompilation checking stochastically broken on Darwin normal
#11222 feature request Teach strictness analysis about `catch`-like operations normal dfeuer
#11238 task Redesign the dynamic linking on ELF systems normal trommler
#11243 feature request Flag to not expand type families normal
#11259 bug Use system runtime linker in GHCi on PowerPC 64 bit normal trommler
#11260 bug Re-compilation driver/recomp11 test fails normal
#11261 bug Implement DWARF debugging on powerpc64 normal trommler
#11307 bug Regresssion: parsing type operators normal
#11323 bug powerpc64: recomp015 fails with redundant linking normal trommler
#11359 task Consider removing RelaxedLayout and friends normal
#11369 bug Suppress redundant-constraint warnings in case of empty classes normal
#11382 bug Optimize Data.Char normal
#11384 bug Error says to fix incorrect return type normal
#11394 task Base should use native Win32 IO on Windows normal
#11409 feature request Cannot instantiate literals using TypeApplications normal
#11445 task Turn on SplitSections by default normal
#11457 feature request Run type-checker plugins before GHC's solver normal
#11472 task Remove CallStack CPP guards in GHC 8.4 normal
#11474 bug incorrect redundant-constraints warning normal
#11495 bug TH_spliceE5_prof is failing with release candidate 8.0.1 normal
#11526 bug unsafeLookupStaticPtr should not live in IO normal
#11549 bug Add -fshow-runtime-rep normal
#11587 bug Place shared objects in LIBDIR normal
#11594 feature request closed empty type families fully applied get reduced lazily when in a constraint tuple and fully applied normal
#11634 bug Bang patterns bind... unexpectedly. Deserves loud warning normal
#11686 feature request implicit call stacks should provide a way to get the calling function's name normal gridaphobe
#11719 bug Cannot use higher-rank kinds with type families normal
#11749 task Add long forms for multi-character short-form flags and possibly deprecate short forms normal
#11765 feature request Allow documentary type signatures normal
#11767 task Add @since annotations for base instances normal
#11773 bug linux/powepc : ghc-stage1 segfaults when building unregisterised normal erikd
#11827 bug InteractiveEval error handling gets a boot ModSummary instead of normal ModSummary normal
#11836 bug Hello World Bug - silent stdout errors normal
#11953 feature request Export Word32#, Word64# on all architectures normal
#11955 bug Haddock documentation for pattern synonyms printed with explicit forall quantifiers normal
#12021 bug Type variable escapes its scope normal
#12038 bug Shutdown interacts badly with requestSync() normal
#12090 task Document Weverything/Wall/Wextra/Wdefault in user's guide normal hvr
#12193 bug Include target versions of unlit and hsc2hs when cross-compiling normal thomie
#12218 task Implement -fexternal-interpreter via static linking normal
#12388 bug Don't barf on failures in the RTS linker normal
#12389 feature request Limit duplicate export warnings for datatypes normal parsonsmatt
#12428 feature request Allow pattern synonyms to optionally carry coerceability normal
#12498 feature request Support unconventionally named import libraries normal Phyx-
#12517 bug Simplify runghc command line options normal harendra
#12581 bug Testsuite segfaults on OS X normal
#12599 task Add Hadrian build artifacts to gitignore normal bgamari
#12619 task Allow users guide to be built independently from GHC normal
#12636 bug ProfHeap's printf modifiers are incorrect normal
#12652 bug Type checker no longer accepting code using function composition and rank-n types normal simonpj
#12669 feature request Add some weird Kmettian tests to the test suite normal
#12712 bug break011 is broken on Windows normal
#12714 bug T9405 fails on Windows normal
#12715 bug T3994 is intermittently broken on Windows normal
#12737 bug T12227 is failing on ghc-8.0 normal
#12758 task Bring sanity to our performance testsuite normal
#12765 task Don't optimize coercions with -O0 normal
#12774 task bkpcabal02 test fails on OS X normal
#12798 bug LLVM seeming to over optimize, producing inefficient assembly code... normal
#12808 bug For closures, Loop Invariant Code Flow related to captured free values not lifted outside the loop... normal
#12875 bug GHC fails to link all StaticPointers-defining modules of a library in an executable normal
#12891 task Automate symbols inclusion in RtsSymbols.c from Rts.h normal bgamari
#12913 task Port SplitSections to Windows normal
#12926 bug ghc master (8.1.20161202) panics with assertion failure with devel2 flavor and -O2 normal
#12934 bug Testsuite driver buffering behavior has changed with Python 3 normal
#12937 bug String merging broken on Darwin normal bgamari
#12938 bug Polykinded associated type family rejected on false pretenses normal goldfire
#12940 bug ghc-8.0.2 RC1 libs installed under package dirs vs Cabal installing packages under abi dir normal
#12941 task Extend nofib with benchmarks focused on compiler performance normal michalt
#12949 bug Pattern coverage checker ignores dictionary arguments normal gkaracha
#12951 task Remove __USE_MINGW_ANSI_STDIO define from PosixSource.h normal
#12964 bug Runtime regression to RTS change normal
#12982 feature request Missed constant folding oportunities normal
#12999 task Investigate use of floating-point arithmetic in I/O Event-handler normal
#13002 bug :set -O does not work in .ghci file normal
#13003 bug improve documentation for typed TH and make it more discoverable normal
#13008 task Cleanup backwards compatibility ifdefs due to stage1 external interpreter work normal
#13065 feature request Prohibit user-defined Generic and Generic1 instances normal
#13069 bug hs-boot files permit default methods in type class (but don't typecheck them) normal
#13072 task Move large tuples to a separate module in base normal rwbarton
#13075 bug Top-level bang pattern accepted normal
#13078 bug Panic from ghc-stage1 when building HEAD with profiling normal
#13080 bug Memory leak caused by nested monadic loops normal
#13090 bug Expose all unfoldings of overloaded functions by default normal
#13092 bug family instance consistency checks are too pessimistic normal rwbarton
#13093 bug Runtime linker chokes on object files created by MSVC++ normal Phyx-
#13104 bug runRW# ruins join points normal
#13152 feature request Provide a mechanism to notify build system when .hi file is ready normal
#13153 bug Several Traversable instances have an extra fmap normal dfeuer
#13165 bug Speed up the RTS hash table normal
#13176 feature request Deprecate the realWorld# normal
#13189 feature request Implement same specification as GHC spec file for mingw32 normal Phyx-
#13225 bug Fannkuch-redux time regression from join point patch normal
#13226 bug Compiler allocation regressions from top-level string literal patch normal
#13240 feature request Make it easier to find builds we may want to cancel normal mpickering
#13243 bug make test in non-validate configuration fails with a variety of ghci errors normal
#13253 bug Exponential compilation time with RWST & ReaderT stack with `-02` normal
#13276 feature request Unboxed sums are not Typeable normal
#13279 task Check known-key lists normal dfeuer
#13280 task Consider deriving more Foldable methods normal dfeuer
#13309 task Use liftA2 in ApplicativeDo normal AaronFriel
#13331 bug Worker/wrapper can lead to sharing failure normal
#13346 task Run nofib with -fspec-constr-keen normal
#13357 task Check demand signatures for catchRetry# and catchSTM# normal
#13360 feature request Add a flag to enable inferring HasCallStack constraints normal
#13362 feature request GHC first generation of GC to be as large as largest cache size by default normal
#13363 bug Wildcarn patterns and COMPLETE sets can lead to misleading redundant pattern-match warnings normal
#13378 bug LLVM backend doesn't support MacOS dead code stripping normal
#13390 bug String literal float-out during desugaring regresses T1969 at -O0 normal
#13406 bug IO hack in demand analyzer can miss I/O normal
#13422 bug INLINE CONLIKE sometimes fails to inline normal
#13423 bug Exception to I/O hack in demand analyzer too broad normal
#13443 feature request Typeclass resolution errors quite puzzling normal
#13448 task Make HPC use an RTS option to select the tix file normal dfeuer
#13452 bug Lock .tix file normal
#13465 bug Foldable deriving treatment of tuples is too surprising normal
#13507 bug Changes to environment files don't apply in GHCi on :reload normal
#13511 feature request ApplicativeDo return case doesn't handle lets normal
#13513 bug Incorrect behavior on arm64 with optimisations normal
#13515 bug Unexpected failure of T11223_simple_duplicate_lib on 32-bit Windows normal
#13554 feature request Allow the user to provide a C function that is called on each thread the RTS creates before running any Haskell code normal
#13564 task Why does memory usage increase so much during CoreTidy? normal
#13629 bug sqrt should use machine instruction on x86_64 normal
#13639 bug Skylighting package compilation is glacial normal dfeuer
#13647 bug Tidy up TcTypeable normal
#13654 feature request Optimize casMutVar# for single-threaded runtime normal
#13683 feature request Use epoll rather than poll where appropriate normal
#13686 feature request Compile a few modules for profiling unconditionally normal
#13690 bug Running profiling tests in the GHCi way is extremely slow normal
#13692 bug Constructors and such should be able to move around seq# sometimes normal
#13693 bug RTS cannot be reinitialized reliably after hs_exit() normal
#13709 task Drop GCC Driver normal
#13717 bug Pattern synonym exhaustiveness checks don't play well with EmptyCase normal
#13723 feature request Recover gracefully from simplifier tick exhaustion normal
#13724 bug Clamping of llvm llc to -O1 and -O2 normal
#13753 feature request Improve GHC's ghc package environment lookup logic normal
#13892 task Add some benchmarks to nofib from Andras Kovac's Eff benchmarks normal
#13898 task Consolidate treatment of strictness in parser normal
#13905 bug ApplicativeDo is too strict with newtype patterns normal
#13906 bug ApplicativeDo doesn't handle existentials as well as it could normal
#13944 feature request Introduce synchronized FFI normal
#13981 bug Family instance consistency checks happens too early when hs-boot defined type occurs on LHS normal
#14003 feature request Allow more worker arguments in SpecConstr normal choenerzs
#14005 task Explore moving from pretty to prettyprinter normal
#14006 bug Heap profiling ghc gives hp2ps error normal
#14023 task Split up glasgow_exts.rst normal
#14030 task Implement the "Derive Lift instances for data types in template-haskell" proposal normal RyanGlScott
#14056 task Figure out what to do about libffi normal
#14078 bug -ddump-json doesn't work well with GHCi normal
#14122 bug Core lint error while compiling GHC.IO.Handle normal
#14165 bug Investigate regressions from simplifier refactor normal
#14191 task Implement Semigroup as a superclass of Monoid Proposal (Phase 2) normal hvr
#14214 bug Users guide lies about default optimization level normal bgamari
#14252 feature request ApplicativeDo: Add compiler message about irrefutable pattern matches and Monad constraints normal
#14268 task Implement Explicit Foralls Proposal normal johnleo
#14273 bug Typed holes' "valid substitutions" suggestions are oblivious to type class constraints normal Tritlo
#14282 bug tagToEnum# . dataToTag# not optimized away normal dfeuer
#14283 task Remove the special case for tagToEnum# in the code generator? normal
#14288 bug ScopedTypeVariables with nested foralls broken since 8.0.2 normal RyanGlScott
#14291 bug Tests tend to fail in the ext-interp way when split sections is enabled normal
#14295 bug tagToEnum# leads to some silly closures normal
#14309 task Expand comment in hPutStrLn normal
#14319 bug Stuck type families can lead to lousy error messages normal
#14331 bug Overzealous free-floating kind check causes deriving clause to be rejected normal
#14337 bug typeRepKind can perform substantial amounts of allocation normal
#14401 task Add a test ensuring that TypeReps can be stored in compact regions normal
#14405 task Remove core-spec.pdf from repository normal
#14412 bug Can't run tests with sdist -> bindist -> test normal
#14413 bug Profiling breaks determinism normal
#14469 bug Rebuilding profiled stage2 after building stage3 is broken normal
#14495 feature request Relocatable GHC normal angerman
#14501 bug hp2ps and unlit are compiled by the stage0 compiler normal
#14502 task Build Alpine Linux binary distributions normal bgamari
#14509 task Consider adding new stg_ap_* functions normal
#2725 task Remove Hack in compiler/nativeGen/X86/CodeGen.hs low thoughtpolice
#5291 bug GhcDynamic build fails on Windows: can't find DLLs low
#5302 bug Unused arguments in join points low simonpj
#9249 bug Link to "latest" user's guide low
#9981 bug Potential typechecker regression in GHC 7.10.1RC low simonpj
#10582 bug Tiny bug in lexer around lexing banana brackets low goldfire
#10930 bug missing empty-Enumeration and out-of-range warning for `Natural` low hvr
#11091 task Fix MonadFail warnings low
#11958 task Improved testing of cross-compiler low
#13001 bug EnumFromThenTo is is not a good producer low akio
#13039 feature request Add options to select GHCi prompt type errors low
#13064 bug Incorrect redudant imports warning low
#13182 task Rethinking dataToTag# low
#13779 feature request Add more signature suppression control for dumps low
#2988 task Improve float-in lowest


Last modified 2 weeks ago Last modified on Nov 9, 2017 9:19:26 PM