From d66c7fefeda7c9f6599e06027e756f086a7632d2 Mon Sep 17 00:00:00 2001 From: simonpj Date: Wed, 26 Jun 2002 13:33:05 +0000 Subject: [PATCH] [project @ 2002-06-26 13:33:05 by simonpj] Add 5.04 release notes draft --- ghc/docs/users_guide/5-04-notes.sgml | 284 ++++++++++++++++++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 ghc/docs/users_guide/5-04-notes.sgml diff --git a/ghc/docs/users_guide/5-04-notes.sgml b/ghc/docs/users_guide/5-04-notes.sgml new file mode 100644 index 0000000..e259f09 --- /dev/null +++ b/ghc/docs/users_guide/5-04-notes.sgml @@ -0,0 +1,284 @@ + + Release notes for version 5.04 + + + User-visible compiler changes + + + MacOS X support (Wolfgang, please fill in). + + + ghc-pkg: new options + , + /, + , and + /, and + suppport for expanding environment variables in package + descriptions. See ). + + + The latest version of the FFI spec is fully supported. + The syntax of FFI declarations has changed accordingly. The + old syntax is still accepted for the time being, but will + elicit a warning from the compiler. + + + New option: specifies a user-defined + preprocessing phase (see ). + + + Major overhaul of the heap profiling subsystem, with new + facilities for retainer profiling and biographical profiling + (ala nhc98, albeit with a couple of omissions). The syntax of + the runtime heap-profiling options has changed. See . + + + The type system now supports full rank-N types + (previously only limited rank-2 types were supported). See + . + + + Explicit kind annotations can now be given on any + binding occurrence of a type variable. See . + + + The handling of type synonyms has been rationalised. + See . + + + Fixes for several space leaks in the compiler itself + (these fixes were also merged into 5.02.3). + + + It is now possible to derive arbitrary classes for + newtypes. See . + + + Deadlock is now an exception, rather than a return + status from the scheduler. See the module + Control.Exception in the library + documentation for more details. + + + The syntax and behaviour of RULE + pragmas has changed slightly. See . + + + Interface files are now in a binary format to reduce + compilation times. To view an interface file in plain text, + use the flag. + + + A restriction on the form of class declarations has been + lifted. In Haskell 98, it is illegal for class method types + to mention constraints on the class type variable. eg. + + + class Seq s a where + elem :: Eq a => a -> s a -> Bool + + + This restriction has now been lifted in GHC. + + + Main threads can now receive the + BlockedOnDeadMVar exception in the same way + as other threads. + + + The flag never really + worked, and has been removed. + + + The syntax of .hi-boot files is now + much clearer and Haskell-like. See . + + + There is a new flag which enables + FFI support without turning on the rest of the GHC + extensions. + + + The syntax for implicit parameter bindings has changed. + Previously the keyword with was used to + introduce implicit bindings, but now implicit bindings may be + introduced using let (see ). As a result of this, + with is no longer a keyword when + is turned on. + + The option -fwith may be used to + restore the old behaviour. + + + Infix type constructors are now allowed, and must begin + with a colon (as with data constructors). See . + + + The do-notation syntax is now + rebindable in the same way as other built-in syntax. See + . + + + Support for using “frameworks” on + Darwin/MacOS X has been added. See the + option in , and the + framework_dirs field of a package spec in + . + + + + + + User-visible interpreter (GHCi) changes + + + New commands: :browse, :set + args, :set prog, :show + binadings, and :show modules (see + ). + + + There is a much more flexible mechanism for manipulating + the scope for expressions typed at the prompt. For example, + one can now have both the Prelude and the + exports of several compiled modules in scope at the same + time. See . + + + GHCi now supports foreign import + "wrapper" FFI declarations. + + + + + + User-visible library changes + + + GHC is in the process of moving to a new hierarchical + set of libraries. At the moment, we have two sets of + libraries, both described in accompanying documents: + + + The “new libraries” which are + hierarchical and consist of the following packages: + base, haskell98, + haskell-src, and + network. Broadly speaking, + base contains the + Prelude, standard libraries and most of + the contents of the old lang + package. By default, the base and + haskell98 packages are enabled. + + + + The hslibs, most of which are now + deprecated. Where possible, new code should be written to + use the new libraries instead. + + The following libraries in hslibs + have not moved yet: + + + The packages win32, + xlib, graphics, + and posix. + + + The Edison libraries in the + data package. + + + In the lang package, the + modules TimeExts, + DirectoryExts, + SystemExts, and + NumExts. + + + The HaXml libraries in the + text package. + + + In the util package, the + modules MD5, + Select, Memo, + Observe, and + Readline. + + + + All other libraries from hslibs + either have equivalents in the new libraries (see the + hslibs docs for details), or were + already deprecated and hence were not moved into the new + hierarchy. + + + + + + The Read class is now based on a + parsing combinator library which is vastly more efficient than + the previous one. See the modules + Text.Read. + Text.ParserCombinators.ReadP, and + Text.ParserCombinators.ReadPrec in the + library documentation. + + The code generated by the compiler for derived + Read instances should be much shorter than + before. + + + + + + New experimental features + + + Linear implicit parameters. See . + + + The RTS has support for running in a multi-threaded + environment and making non-blocking (from Haskell's point of + view) calls to foreign C functions which would normally block. + To enable this behaviour, configure with the + option. + + + The compiler can now read in files containing Core + syntax (such as those produced by the + option) and compile them. This is + enabled with the flag. + + + + + + Internal changes + + + Happy 1.13 is now required to build GHC, because of the + change in names of certain libraries. + + + + + + + -- 1.7.10.4