From c9ed9aa069ffb28b869bc7e409ebe98494e87f06 Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Wed, 22 Jan 2014 16:21:07 -0600 Subject: [PATCH] Clean up the release notes. In particular, spell out the current dynamic situation, clean up the FIXMEs and xrefs, and don't forget to mention InterruptibleFFI. Signed-off-by: Austin Seipp --- docs/users_guide/7.8.1-notes.xml | 87 +++++++++++++++++++++++++------- 1 file changed, 70 insertions(+), 17 deletions(-) diff --git a/docs/users_guide/7.8.1-notes.xml b/docs/users_guide/7.8.1-notes.xml index 72601f3e0c..ce3374273b 100644 --- a/docs/users_guide/7.8.1-notes.xml +++ b/docs/users_guide/7.8.1-notes.xml @@ -58,7 +58,7 @@ instances created other than the ones in its definition. - TODO FIXME: reference. + For more information, see @@ -70,7 +70,7 @@ increases the type safety of GHC, it is possible that some code that previously compiled will no longer work. - TODO FIXME: reference. + For more information, see @@ -79,16 +79,15 @@ GHC now supports overloading list literals using the new OverloadedLists extension. - TODO FIXME: reference. + For more information, see - There has been significant overhaul of the type inference engine and - constraint solver. - - TODO FIXME: reference. + There has been significant overhaul of the type + inference engine and constraint solver, meaning it + should be faster and less memory intensive. @@ -116,11 +115,11 @@ The LLVM backend now supports 128- and 256-bit SIMD operations. - - TODO FIXME: reference. - This is only available with the LLVM backend. + Note carefully: this is only available with + the LLVM backend, and should be considered + experimental. @@ -144,8 +143,6 @@ compilation. In particular, GHC now has all the necessary patches to support cross compilation to Apple iOS, using the LLVM backend. - - TODO FIXME: reference. @@ -174,7 +171,38 @@ - TODO: mention dynamic changes + On Linux and Mac OS X, GHCi now uses the system + dynamic linker by default, instead of its built in + (static) object linker. This is more robust + cross-platform, and fixes many long-standing bugs (for + example, both constructors and destructors, weak + symbols, etc work correctly, and several edge cases in + the RTS are fixed.) + + + + As a result of this, GHCi (and Template Haskell) must + now load dynamic object files, not static + ones. To assist this, there is a new compilation flag, + -dynamic-too, which when used + during compilation causes GHC to emit both static and + dynamic object files at the same time. GHC itself + still defaults to static linking. + + + + Note that Cabal will correctly handle + -dynamic-too for you automatically, + especially when -XTemplateHaskell + is needed - but you must tell Cabal you are + using the TemplateHaskell + extension. + + + + Currently, Dynamic GHCi and + -dynamic-too are not supported on + Windows (32bit or 64bit.) @@ -217,10 +245,12 @@ - GHC now generates warnings when definitions conflict with the - Applicative-Monad Proposal (AMP). - - TODO FIXME: reference. + In GHC 7.10, Applicative will + become a superclass of Monad, + potentially breaking a lot of user code. To ease this + transition, GHC now generates warnings when + definitions conflict with the Applicative-Monad + Proposal (AMP). @@ -239,6 +269,29 @@ using the new flag -f[no-]warn-amp. + + + + Using the new InterruptibleFFI + extension, it's possible to now declare a foreign + import as interruptible, as opposed + to only safe or + unsafe. An + interruptible foreign call is the + same as a safe call, but may be + interrupted by asynchronous Haskell + exceptions, such as those generated by + throwTo or + timeout. + + + + For more information, (including the exact details on + how the foreign thread is interrupted,) see + + + GHC's internal compiler pipeline is now exposed -- GitLab