GHC plans for 8.0.1
This page is our road-map for what will be in 8.0.
-
We hope to incorporate all the "Landed" and "In-flight" stuff under "Release highlights" below.
-
We'll include (or at least review) all patches in tickets in "Status: patch" below.
-
We will address all the tickets under "Status: new" below with "highest" or "high" priority. We love help to do more, but there are far too many "normal" tickets to make any promises.
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!
Dates
Release candidate by mid-January 2016. Release candidate three available in early April 2016, release in mid-April 2016.
Libraries Status
See Libraries
Release highlights
Below are the major highlights of 8.0.
In-flight, and likely to land in time
- Documentation for
-XTypeInType
(Richard)
Landed in HEAD
-
Option to ignore unrecognised warning flags (#10429 (closed), Ben, Phab:D1830)
-
Support for strictness and unpacking in Template Haskell (Trac #10697 (closed), Phab:D1603)
-
Visible type application (#5296 (closed))
-
Consistent warning options (#11218 (closed), Phab:D1613)
-
More expressive Generics metadata (Ryan Scott, Trac #10716 (closed), #10697 (closed), Phab:D493)
-
Expose enabled language extensions to TemplateHaskell (#10820 (closed), Ben, Phab:D1200)
-
Recursive superclasses (Simon, Phab:D1594, #11067 (closed))
-
Documentation for OverloadedLabels (Adam)
-
Use
Cxt
in Template Haskell's representation ofderiving
clauses (#10819 (closed), Ben, Phab:D1202) -
Fix #10845 (closed) with Phab:1422 (Rework the Implicit CallStack solver to handle local lets)
-
Support for reasoning about kind equalities, which gives promotion of GADTs to kinds, kind families, heterogeneous equality (kind-indexed GADTs), and
* :: *
. There is some discussion in DependentHaskell/Phase1, but that's very low-level. I (Richard) have no good user-oriented write-up yet, but there shouldn't be much in the way of new syntax -- just fewer type errors. (Phab:D808) -
Support for implicit parameters providing callstacks/source locations, allowing you to have a light-weight means of getting a call-stack in a Haskell application. (Phab:D861, Phab:D1422)
-
Improved optimization diagnostics. The compiler is now more liberal about issues warnings of failed specialization attempts
-
Support for wildcards in data and type family instances (Phab:D1092)
-
Support for Injective Type Families, which allows you to specify type families which are injective, i.e. a one-to-one relationship. (Phab:D202)
-
Support for typed holes in Template Haskell (Phab:D835)
-
Support for Applicative Do, allowing GHC to desugar do-notation to
Applicative
where possible. (Phab:D729) -
Support for deriving the
Lift
typeclass (Phab:D1168) -
A beautiful new users guide, written in reStructured Text, and significantly improved output.
-
Support for Strict Haskell including both the
StrictData
andStrict
language extensions (Phab:D1033 and Phab:D1142) -
Support for record pattern synonyms (Phab:D1152)
-
Allow patterns synonyms to be exported in the same way as data constructors (Phab:D1258)
-
Implement the
MonadFail
proposal (#10751 (closed)) -
Support for DuplicateRecordFields, allowing multiple datatypes to declare the same record field names provided they are used unambiguously (Phab:D761)
-
Support for OverloadedLabels, allowing a form of type-directed name resolution (Phab:D1331)
-
Simon PJ's
wip/spj-wildcard-refactor
branch, which refactors the handling of implicit binders and wildcards -
A huge improvement to pattern matching (including much better coverage of GADTs), based on the work of Simon PJ and Georgios Karachalias. For more details, see their paper. ( Phab:D1535)
-
Backpack is chugging along; we have a new user-facing syntax which allows multiple modules to be defined a single file, and are hoping to release at least the ability to publish multiple "units" in a single Cabal file.
-
Improved DWARF based debugging support from Peter Wortmann, Arash Rouhani, and Ben Gamari with backtraces from Haskell code.
-
Significantly more stable support on ARM (#11206 (closed))
-
Stack traces in GHCi (#11047 (closed))
-
Better instrumentation for tracking compiler performance of (#11710 (closed))
Possible, if the authors push forward fast enough
There's nothing here.
Won't make it, but being actively worked on
- An Improved LLVM Backend that ships with every major Tier 1 platform (Austin, #10074)
- Make compilation results more deterministic (#4012)
- Complete support for OverloadedRecordFields
- Support for Type Signature Sections, allowing you to write
(:: ty)
as a shorthand for(\x -> x :: ty)
. - A
DEPRECATED
pragma for exports (#4879) - A new, type-indexed type representation,
data TTypeRep (a :: k)
. See TypeableT. - A (possible) overhaul of GHC's build system to use Shake instead of Make.
- Polish and merge Compact Normal Form support for efficient GC/serialization (ICFP'15)
Migration Guide to 8.0
FIXME Write the migration guide.
Known issues with release candidate 2
Release candidate 2 was released on 7 Feb 2016. These significant issues are known to be present in this release,
-
#11334 (closed): Solving for
Typeable (Proxy :: Proxy 'Compose)
fails -
#11339 (closed):
microlens
package doesn't typecheck -
#11608 (closed):
microlens
andfree
packages both fail to typecheck -
#11414 (closed): Use of
-XStrict
results in compiler abort -
#11471 (closed): Typechecker allows unsafe use of runtime-representation-polymorphism
Known issues with release candidate 1
Release candidate 1 was released on 13 Jan 2016. These significant issues are present in this release,
-
The new
-XInjectiveTypeFamilies
language extension will likely be renamed to-XTypeFamilyDependencies
-
#11120 (closed): Type representations are missing for some types and promoted constructors
-
#11334 (closed): Solving for
Typeable (Proxy :: Proxy 'Compose)
fails -
#11276 (closed): Pattern checker performance can degrade significantly in presence of pattern matches with guards
-
#11405 (closed): Type-level skolem-escape check fails incorrectly
-
#11414 (closed): Use of
-XStrict
results in compiler abort -
#11379 (closed): Instance solver fails to terminate
-
#11419 (closed): Haddock documentation is currently not included in the binary distributions.
Tickets slated for 8.0.1
See the %8.0.1 milestone.