The 7.10.2 release is a bugfix release, with over 70+ bug fixes relative to 7.10.1. The major fixes are listed below. For the full list with more detail, see the GHC 7.10.2 milestone on our bug tracker.
The source location of a function's caller can now be made
available to the callee as an implicit parameter. This will
enable better location information in runtime errors (e.g. from
error
and partial functions like
head
). For more details see
Section 7.13.4.5, “Special implicit parameters”.
A bug in the typechecker which could result in strange, inconsistent reduction of type families has been fixed (issue #10488).
A variety of fixes of the new API annotations support.
A bug which caused GHC to generate bad DWARF unwinding information has been fixed (issue #10236).
DWARF support should now work on Windows/MinGW (#10468).
A bug which caused GHC's libffi.so
library to be built with executable stacks on some
platforms has been fixed (issue #10208).
A bus error on SPARC machines caused by misaligned data accesses in the RTS has been fixed.
A bug which caused the simplifier to produce code which segfaulted at runtime has been fixed (issue #10538).
A type-system bug which could allow a user to write
unsafeCoerce
has been fixed (issue
#9858).
A bug which caused GHC to generate incorrect hyperlinks to documentation in Haddock has been fixed (#10206).
A bug in the typechecker which allowed erroneous programs
using Coercible
to typecheck has been
fixed (issue #10285).
An issue which could cause the "Call Arity" analysis to perform poorly in general has been fixed (issue #10293).
Several dozen bugs in the new API annotations work have been fixed (issues #10395, #10363, #10358, #10357, #10315, #10314, #10312, and many more).
A regression which could cause the typechecker fail to properly simplify type-level terms has been fixed (issue #10321).
A bug which caused programs compiled with
-flate-dmd-anal
to crash at runtime has
been fixed (issue #10288).
A bug which caused ARM/Linux binaries to be built with executable stacks has been fixed (issue #10369).
Several bugs in GHC's cross compilation support using LLVM have been fixed (#10275).
Several bugs in GHC's support for AArch64 have been fixed (such as issue #10264).
The SMP runtime and GHCi are now enabled on AArch64 (issue #10525).
A bug in the code which caused GHC to emit invalid C code when porting to a new platform has been fixed (issue #10518).
A bug which could cause GHC to generate incorrect code at runtime (generating an infinite loop exception) has been fixed (issue #10218).
Several performance-related issues inside GHC have been fixed. As a result, you should see improved compilation times and memory usage (issues #10397, #10370, #10422).
A bug which could cause GHCi to crash if exceptions were
raised in the :cmd
command has been
fixed.
A bug in the event manager which could cause 'multi-shot' event registrations to only fire once has been fixed (issue #10317).
Support for PowerPC relocations has been added (issue #10402).
A lurking bug in the code generator which could cause incorrect assembly code to be generated due to register aliasing issues has been fixed (issue #10521).
A bug in the runtime system which could cause a deadlock when scheduling garbage collections has been fixed (issue #10545).
A bug which could cause compiled programs to loop forever when glibc's iconv implementation (gconv) wasn't available has been fixed, so these programs will now terminate with an error. As a result of this change, however, GHC compiled programs now also specifically recognize ASCII encodings, and can function without iconv in these cases. This allows statically compiled programs to exist inside an initramfs, for example (issues #10298, #7695).
Version number 4.8.1.0 (was 4.8.0.0)
The Lifetime
datatype (and its
constructors) are now exported from
GHC.Event
.
Several new constructors have been added to the
AnnKeywordId
datatype, in order
to fix several problem with GHC's new support for
API annotations (this should not regress or effect
any clients of the GHC API not using these new
features).
The source location functionality above required an breaking change
to the GHC API. Namely, the SrcSpan
s of
CtLoc
and TcLclEnv
are now
RealSrcSpan
s. While usually API changes like this
are avoided in bugfix releases, it was decided that the benefits
offered by the source location functionality outweighed the cost of
a small change to this rarely-used interface.
For issues dealing with language changes, please see the GHC 7.10 Migration Guide on the GHC wiki.
A bug in the simplifier which can cause it to totally fail to compile certain programs that get 'very large' at compile time is known (issue #10527).
GHC's LLVM backend does not support LLVM 3.4 (issue #9929).
On Mac OS X, the -threaded
Garbage
Collector currently suffers from a large performance
penalty due to a lack of system-specific optimization
(issue #7602).
GHCi fails to appropriately load
.dyn_o
files (issue #8736).
Not all cases of non-terminating type-level computation (with both
recursive type families and recursive newtypes) are caught. This
means that GHC might hang, but it should do so only when the program
is ill-typed (due to non-terminating type-level features). The bugs
are reported as #7788
and #10139.
There also remain certain obscure scenarios where the solver for
Coercible
instances is known to be still
incomplete. See comments in #10079.