... | ... | @@ -7,7 +7,7 @@ GHC is still humming along, with the 7.2.1 release (more of a "technology previe |
|
|
We advertised 7.2 as a technology preview, expecting 7.4 to merely consolidate the substantial new features in 7.2. But as it turns out GHC 7.4 will have a further wave of new features, especially in the type system.
|
|
|
Significant changes planned for the 7.4 branch are:
|
|
|
|
|
|
- **Declarations at the GHCi prompt.** Simon Marlow has extended GHCi so that it is possible to give any declaration at the ghci prompt. For example,
|
|
|
- **Declarations at the GHCi prompt.** Daniel Winograd-Cort (with help from Simon Marlow) has extended GHCi so that it is possible to give any declaration at the ghci prompt. For example,
|
|
|
|
|
|
```wiki
|
|
|
Prelude> data D = D Int
|
... | ... | @@ -85,7 +85,7 @@ Significant changes planned for the 7.4 branch are: |
|
|
|
|
|
- **Improvements to the implementation of type constraints.** Over the last six months, Dimitrios and Simon PJ (with Stephanie Weirich and Brent Yorgey) have figured out several improvements to the GHC's type constraint solver and its strongly-typed Core language. The changes to the constraint solver eliminate hundreds of lines of code, and make it more efficient as well. The changes to the Core language make it treat equality constraints uniformly with other type constraints; this makes the internals vastly more uniform. These changes are mostly invisible to programmers, but the changes to Core allow us to support equality superclasses for the first time. Details in our paper "Practical aspects of evidence-based compilation in System FC" [ http://research.microsoft.com/\~simonpj/papers/ext-f/ NewFC](http://research.microsoft.com/~simonpj/papers/ext-f/ NewFC)
|
|
|
|
|
|
- **Profiling and hpc overhaul.** GHC currently has three different ways of tracking which pieces of code are executed: const-centre profiling, HPC coverage, and GHCi debugger breakpoints. Each is implemented in a different, and somewhat *ad hoc* way. Simon Marlow has overhauled the whole system, unifiying the three mechanisms into one. On the way he has improved the semantics of cost centre stacks, which should lead to more useful time and space profiles.
|
|
|
- **Profiling and hpc overhaul.** GHC currently has three different ways of tracking which pieces of code are executed: const-centre profiling, HPC coverage, and GHCi debugger breakpoints. Each is implemented in a different, and somewhat *ad hoc* way. Simon Marlow has overhauled the whole system, unifiying the three mechanisms into one. On the way he has improved the semantics of cost centre stacks, which should lead to more useful time and space profiles. The `+RTS -xc` runtime flag, which displays a stack backtrace when an exception is thrown, has been greatly improved and should now produce useful information in most cases (it is still only available when the program is compiled for profiling, however).
|
|
|
|
|
|
- **Changes to the way Safe Haskell works**[ http://www.scs.stanford.edu/\~davidt/safehaskell.html SafeHaskell](http://www.scs.stanford.edu/~davidt/safehaskell.html SafeHaskell). David Terei has improved the design of Safe Haskell since the 7.2.1 release. In particular, it will no longer cause build failures for users who do not explicitly enable it. The checking that a package is trusted will only be done now if the `-fpackage-trust` flag is present. This allows package authors to use the `Trustworthy` pragma as they please and not worry that a users local package configuration will cause build failures. Users who are explicitly using Safe Haskell to construct secure systems should make use of the `-fpackage-trust` flag to maintain the security of the old design. Also since the 7.2.1 release, the safe status of a module will now be automatically inferred by Safe Haskell. These two changes make Safe Haskell easier to use and push it behind the scenes where it mostly belongs.
|
|
|
|
... | ... | |