<itemize>
-<item> Some Haskell 98 changes:
- <itemize>
- <item> Lazy name-clash detection.
- <item> Scoped infix declarations.
- <item> <tt/Eval/ class now completely removed.
- </itemize>
+<item> Full Haskell 98 language support.
<item> Scoped type variables implemented.
<item> Several bugs in _ccall_GC and foreign export fixed.
-
<item> Warnings for unused variables should work now (they didn't before).
<item> Simplifier improvements:
<item> <tt/OccName/ is a separate module, and is an abstract data type.
+<item> A new generational garbage collector: the number of generations
+is variable, using the -G RTS option (see <ref id="rts-options-gc"
+name="RTS options to control the garbage-collector">). This collector
+is faster and more space-efficient than the two-space collector in 4.01.
+
+<item> Error messages and warnings are now printed out in the order they
+occur in the source code.
+
+<item> <tt/isEmptyMVar/ operation added to the <tt/Concurrent/ library.
+
+<item> Two functions exported from <tt/IOExts/: <tt/unsafeIOToST/ and
+<tt/stToIO/.
+
</itemize>
[Default: 2] Set the number of generations used by the garbage
collector. The default of 2 seems to be good, but the garbage
-collector can support any number of generations. NOTE: -G1 (i.e. a
-two-space copying collector) is currently not supported.
+collector can support any number of generations. Anything larger than
+about 4 is probably not a good idea unless your program runs for a
+<emph/long/ time, because the oldest generation will never get
+collected.
+
+Specifying 1 generation with @+RTS -G1@ gives you a simple 2-space
+collector, as you would expect. In a 2-space collector, the @-A@
+option (see below) specifies the <emph/minimum/ allocation area size,
+since the allocation area will grow with the amount of live data in
+the heap. In a multi-generational collector the allocation area is a
+fixed size.
<tag>@-A<size>@:</tag>
<nidx>-A<size> RTS option</nidx>