From 04f52ed7bab70378663c9783b42daf06421aff1c Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Fri, 25 Aug 2006 15:49:55 +0000 Subject: [PATCH] various minor tweaks, and rearrange to put "important" changes near the top --- docs/users_guide/6.6-notes.xml | 262 +++++++++++++++++++++------------------- 1 file changed, 139 insertions(+), 123 deletions(-) diff --git a/docs/users_guide/6.6-notes.xml b/docs/users_guide/6.6-notes.xml index 1f4e485..2260690 100644 --- a/docs/users_guide/6.6-notes.xml +++ b/docs/users_guide/6.6-notes.xml @@ -7,6 +7,120 @@ + GHC now supports SMP: + when you compile with , you now get + an RTS flag that allows you to specify the + number of OS threads that GHC should use. Defaults to 1. + See and . + + + + + GHC's modules are now also bundled into a + ghc package, allowing programs to make use + of GHC as a library. The interface has not yet been properly + designed, so is subject to change. + + + + + GHC now handles impredicative polymorphism and there are + changes to the way scoped type variables work; see + Simon's e-mail + for more details. + + + + + GHC now supports bang patterns to require a function is strict + in a given argument, e.g. + + f (!x, y) = [x,y] + is equivalent to + + f (x, y) | x `seq` False = undefined + | otherwise = [x,y] + + + + + The restriction that you cannot use two packages together if + they contain a module with the same name has been removed. + In implementation terms, the package name is now included in + every exported symbol name in the object file, so that + modules with the same name in different packages do not + clash. See . + + + + + GHC now treats source files as UTF-8 (ASCII is a strict + subset of UTF-8, so ASCII source files will continue to + work as before). However, invalid UTF-8 sequences are + ignored in comments, so ASCII code with comments in, for + example, Latin-1 will also work. + + + + + GADTs can now use record syntax. Also, if the datatype could + have been declared with Haskell 98 syntax then deriving + clauses are permitted. For more info see . + + + + + There is a new pragma LANGUAGE which allows + extensions to be specified portably, i.e. without having to + resort to the OPTIONS_GHC pragma and giving + GHC-specific options. The arguments to the pragma are the same + extensions that Cabal knows about. More info in + . + + + + + When you use ghc --make, GHC will now take + the executable filename from the name of the file containing + the Main module rather than using + a.out. The .exe + extension is appended on Windows, and it can of course be + overridden with . + + + + + GHC's garbage collector now deals more intelligently with + mutable data, so you mostly no longer need to worry about GC + performance when a lot of memory is taken up by + STArrays, IOArrays, + STRefs or IORefs. + + + + + GHC now allows more generalisation when typing mutually + recursive bindings, resulting in more programs being accepted. + See for more details. + + + + + The rules for instance declarations have been further relaxed. + You are now permitted to have instances whose heads contain + only type variables, e.g. + + instance C a + and instances whose constraints are not only type variables, + e.g. + + instance C2 Int a => C3 [a] b + For more details, see . + + + + The following flags (and, where appropriate, their inverses) used to be static (can only be given on the command line) but are now dynamic (can also be given in @@ -91,8 +205,9 @@ - The equality test performed when pattern matching against - an overloaded numeric literal now uses the + When the is given, + the equality test performed when pattern matching against an + overloaded numeric literal now uses the (==) in scope, rather than the one from Prelude. Likewise, the subtraction and inequality test performed when pattern matching against @@ -102,34 +217,11 @@ - With the exception of the arrow syntax, the types of functions - used by sugar (such as do notation, numeric literal patterns) - need not match the types of the Prelude - functions normally used. - - - - - GADTs can now use record syntax. Also, if the datatype could - have been declared with Haskell 98 syntax then deriving - clauses are permitted. For more info see . - - - - - There is a new pragma LANGUAGE which allows - extensions to be specified portably, i.e. without having to - resort to the OPTIONS_GHC pragma and giving - GHC-specific options. The arguments to the pragma are the same - extensions that Cabal knows about. More info in - . - - - - - GHC now allows more generalisation when typing mutually - recursive bindings, resulting in more programs being accepted. - See for more details. + Another change to : + with the exception of the arrow syntax, the types of + functions used by sugar (such as do notation, numeric + literal patterns) need not match the types of the + Prelude functions normally used. @@ -151,25 +243,6 @@ - GHC now treats source files as UTF-8 (ASCII is a strict - subset of UTF-8, so ASCII source files will continue to - work as before). However, invalid UTF-8 sequences are - ignored in comments, so ASCII code with comments in, for - example, Latin-1 will also work. - - - - - When you use ghc --make, GHC will now take - the executable filename from the name of the file containing - the Main module rather than using - a.out. The .exe - extension is appended on Windows, and it can of course be - overridden with . - - - - If you newtype the IO monad, e.g. newtype MyIO a = MyIO (IO a) @@ -215,48 +288,6 @@ - GHC now includes the package name in symbol names; the upshot - of this is that it is possible to link a program that uses - multiple packages each containing a module of the same name. - - - - - GHCi now has a :main command that allows - you to call the main function with - command-line arguments. - See for more information. - - - - - GHCi now has :ctags and - :etags commands to generate tags files for - vi-style and emacs-style editors respectively. - See for more information. - - - - - The rules for instance declarations have been further relaxed. - You are now permitted to have instances whose heads contain - only type variables, e.g. - - instance C a - and instances whose constraints are not only type variables, - e.g. - - instance C2 Int a => C3 [a] b - For more details, see . - - - - - GHCi now allows tab completion of in-scope names. - - - - The old syntax for FFI declarations (deprecated since 5.04) is no longer accepted. @@ -267,48 +298,33 @@ , and hence can be used by cabal. + + + + + GHCi changes + + - GHC now supports bang patterns to require a function is strict - in a given argument, e.g. - - f (!x, y) = [x,y] - is equivalent to - - f (x, y) | x `seq` False = undefined - | otherwise = [x,y] - - - - - GHC now handles impredicative polymorphism; see - Simon's e-mail - for more details. - - - - - GHC's modules are now also bundled into a - ghc package, allowing programs to make use - of GHC as a library. The interface has not yet been properly - designed, so is subject to change. + GHCi now allows tab completion of in-scope names and modules + on platforms that use readline (i.e. not Windows). - GHC's garbage collector now deals more intelligently with - mutable data, so you no longer need to worry about GC - performance when a lot of memory is taken up by - STArrays, IOArrays, - STRefs or IORefs. + GHCi now has a :main command that allows + you to call the main function with + command-line arguments. + See for more information. - GHC now supports SMP: - when you compile with , you now get - an RTS flag that allows you to specify the - number of OS threads that GHC should use. Defaults to 1. + GHCi now has :ctags and + :etags commands to generate tags files for + vi-style and emacs-style editors respectively. + See for more information. -- 1.7.10.4