The 7.4.2 release is a bugfix release. The changes relative to 7.4.1 are listed below.
A bug in dependency analysis of type declarations in the presence of type families (#5826) has been fixed.
The "Heap exhausted" error message was truncating the reported heap size to 32 bits (#5838). This has now been fixed.
The register clobber list in the ARM runtime now includes extra registers (#5824).
A crash due to a buffer overflow during RTS argument processing (#5851) has been fixed.
A blocked STM computation inside unsafePerformIO
or unsafeInterleaveIO
would segfault when resuming
after an asynchronous exception (#5866).
This has now been fixed.
A race condition when creating directories during parallel builds (#5891) has been fixed.
Changed behavior of the --main-is
flag so that it
forces recompilation of fewer modules (#5878).
The wording of the help text for the -N
flag has
been improved (#5896).
Fixed command line options passed to clang
, when
used as the assembler (#5903).
Changed behavior of unrecognized flags (#5921).
Any unrecognized argument starting with a '-'
now produces an
error, instead of being passed to the linker.
A bug in code generation on PowerPC (#5900) resulting in an invalid operand for a shift instruction has been fixed.
Updated LLVM backend to support the new "fence" instruction instead of the llvm.memory.barrier intrinsic (#5814).
ARM support in the RTS linker (#5839) has been implemented.
An RTS crash in threadStackOverflow
(#5214)
has been fixed.
Generating an occurence without a binding site within a Template Haskell splice now results in a sensible error message, instead of a compiler panic (#5999, #5971).
A bug where an exception generated in a TH splice would escape to the top level (#5976) has been fixed.
When using -fwarn-unsafe
, GHC now reports unsafe
language extensions.
The non-threaded RTS now avoids wakeups when the system is idle (#5991).
A bug causing a crash with a very small initial stack size (#5993) has been fixed.
A performance bug causing functions to lose the tail-recursive property after optimization (#5920, #5997) has been fixed.
hs_init
can now be called with
NULL
pointers as arguments (#6006).
Fixed bug (#5836) where GHCi would silently accept an import statement for a non-existing module.
Fixed bug (#5904) which caused GHCi to crash when a *-module was loaded twice.
The :edit
command in GHCi now causes the current
module to be automatically reloaded after exiting from the editor
(#5343).
A GHCi bug (#5534) causing compiled modules not to be loaded correctly has been fixed.
A GHCi bug (#5979, #6007) where a failed import would cause successive imports to fail has been fixed.
Fixed bug (#5872)
in the default implementation of popCount
in
Data.Bits
.
A potential race condition in
Control.Concurrent.Chan
(#5870)
has been fixed.
An MVar
bug which could cause deadlocks (#5943)
has been fixed.
Fixed a bug in hGetBufSome
(#5843)
which was causing Data.ByteString.hGetSome
to
block on Windows in some situations.
Fixed crash while parsing numeric values in exponential notation (#5688).