1.8. Release notes for version 7.4.2
Prev | Chapter 1. Introduction to GHC | Next

## 1.8. Release notes for version 7.4.2

The 7.4.2 release is a bugfix release. The changes relative to 7.4.1 are listed below.

### 1.8.1. Compiler

- 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).

### 1.8.2. GHCi

- 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.

### 1.8.3. Libraries

- 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).

### 1.8.4. Tools

- `hp2ps` can now handle backslashes in identifiers correctly (#5800).

- A `haddock` bug (#5989) where modules were being incorrectly inferred safe has been fixed.

Prev | Up | Next
1.7. Release notes for version 7.4.1 | Home | Chapter 2. Using GHCi