The Glasgow Haskell Compiler User's Guide, Version 6.2
Prev | Chapter 1. Introduction to GHC | Next

# 1.4. Release notes for version 6.2

## 1.4.1. User-visible compiler changes

- GHC is more portable. The main change is a detailed set of instructions in the building guide for getting an unregisterised build of GHC up and running on a new architecture.

- The policy regarding which files are created where has been cleaned up and documented better. See Section 4.6.

- Some options which were previously static are now dynamic. Most notably, the optimisation options are now dynamic, which means that you can use `-Onot` or `-funbox-strict-fields` in an `OPTIONS` pragma.

- New flag: `-main-is`, allows for specifying an alternative to `Main.main` for the function to call to start the program. See Section 4.10.7.

- New command-line option `-e` for giving an expression on the command line to be evaluated. See Section 4.4.2.

- New command-line option `-fth` to enable Template Haskell. Template Haskell is still enabled by `-fgasgow-exts` too.

- New command-line option `-fimplicit-params` to enable Implicit Parameters. Implicit Parameters are still enabled by `-fglasgow-exts` too.

- The following deprecated features have been removed: `_ccall_`, `_casm_`, ```...''` (literal-literals), the `CCallable` and `CReturnable` classes. These features have been obsoleted by the Foreign Function Interface for some time now.

- The deprecated keyword `with` has been removed, along with the option `-fwith` that used to enable it.

- Constructor fields may be unpacked on an individual basis using the UNPACK pragma (see Section 7.8.8). Previously, the only way to unpack constructor fields was to use the `-funbox-strict-fields` flag which causes all strict fields to be unpacked.

## 1.4.2. User-visible interpreter (GHCi) changes

- GHCi now uses a more liberal defaulting strategy at the expression prompt. See Section 3.4.4.

## 1.4.3. User-visible library changes

- The I/O library now supports large files (>4Gb) if the underlying OS supports them.

- Some changes to `THSyntax` for Template Haskell users.

- Many changes to the `Data.Generics` library. The library now solidly implements the functionality described in "Scrap your boilerplate", and quite bit more besides.

- Added `System.posix.Temp`.

- `System.Sendfile` is gone.

- Updated FFI libraries to match the spec. `ForeignPtr`: `foreignPtrToPtr` is now `unsafeForeignPtrToPtr`, and `newForeignPtr_` has been added.

  Also the argument order for `newForeignPtr` and `addForeignPtrFinalizer` have changed.

- `rawSystem` has a new interface, and works more consistenty across platforms.

- Various libraries have more comprehensive documentation.

- Added: `System.IO.openBinaryFile` and `System.IO.hSetBinaryMode` to System.IO.

- `Numeric`: `showHex` and `showOct` changed behaviour to match the report (drop the leading “0x” and “0o” respectively). Also, `shoBin` was removed.

- Showing `System.IO.Handle` was previously an impure operation, because it displayed too much of the Handle's internal state. Now it is pure, showing only the filename that the Handle is associated with (if any).

  `System.IO.hShow` was added, for converting a Handle to a String with more detail.

- `parsec` and `QuickCheck` now have their own packages.

- `Data.Char`: the character classification functions (`isUpper`, `isLower`, etc.) and the conversion functions (`toUpper`, `toLower`) now understand the full Unicode character set, at least on some platforms. On a glibc-based platform (eg. Linux), you need to set the environment variable `LANG` to something other than `C`. On Windows, these functions will work for Unicode characters up to `0xffff`.

- The `Regex` and `MatchPS` libraries in the `text` package have been removed. Please use `Text.Regex` instead.

- The `MD5` library in the `util` package has been removed. We'll include a replacement in the hierarchical libraries if someone would like to send us one!

- `System.IO`: added `hGetBufNonBlocking` and `hPutBufNonBlocking`.

- `Data.FiniteMap`: added `foldFM_GE`, `fmToList_GE`, `keysFM_GE`, `eltsFM_GE`.

## 1.4.4. Experimental features

- Initial support for interop'ing with .NET via FFI declarations.

- Initial support for arrows syntax. See Section 7.6.

- Initial support for the x86-64 (or amd64) platform.

## 1.4.5. Internal changes

- `autoreconf` is now required instead of `autoconf` to generate GHC's `configure` script. The configure setup has seen a great deal of cleanup thanks to work by Sven Panne.

- Alex is now required to build GHC. GHC's old handwritten lexer has been replaced by one generated from an Alex specification.

Prev | Home | Next
GHC version numbering policy | Up | Installing GHC