Please send Guile bug reports to bug-guile@gnu.org.
+Changes in 2.0.2 (since 2.0.1):
+
+* Notable changes
+
+** `guile-tools' renamed to `guild'
+
+The new name is shorter. Its intended future use is for a CPAN-like
+system for Guile wizards and journeyfolk to band together to share code;
+hence the name. `guile-tools' is provided as a backward-compatible
+symbolic link. See "Using Guile Tools" in the manual, for more.
+
+** New control operators: `shift' and `reset'
+
+See "Shift and Reset" in the manual, for more information.
+
+** `while' as an expression
+
+Previously the return value of `while' was unspecified. Now its
+values are specified both in the case of normal termination, and via
+termination by invoking `break', possibly with arguments. See "while
+do" in the manual for more.
+
+** Disallow access to handles of weak hash tables
+
+`hash-get-handle' and `hash-create-handle!' are no longer permitted to
+be called on weak hash tables, because the fields in a weak handle could
+be nulled out by the garbage collector at any time, but yet they are
+otherwise indistinguishable from pairs. Use `hash-ref' and `hash-set!'
+instead.
+
+** More precision for `get-internal-run-time', `get-internal-real-time'
+
+On 64-bit systems which support POSIX clocks, Guile's internal timing
+procedures offer nanosecond resolution instead of the 10-millisecond
+resolution previously available. 32-bit systems now use 1-millisecond
+timers.
+
+** Guile now measures time spent in GC
+
+`gc-stats' now returns a meaningful value for `gc-time-taken'.
+
+** Add `gcprof'
+
+The statprof profiler now exports a `gcprof' procedure, driven by the
+`after-gc-hook', to see which parts of your program are causing GC. Let
+us know if you find it useful.
+
+** `map', `for-each' and some others now implemented in Scheme
+
+We would not mention this in NEWS, as it is not a user-visible change,
+if it were not for one thing: `map' and `for-each' are no longer
+primitive generics. Instead they are normal bindings, which can be
+wrapped by normal generics. This fixes some modularity issues between
+core `map', SRFI-1 `map', and GOOPS.
+
+Also it's pretty cool that we can do this without a performance impact.
+
+** Add `scm_peek_byte_or_eof'.
+
+This helper is like `scm_peek_char_or_eof', but for bytes instead of
+full characters.
+
+** Implement #:stop-at-first-non-option option for getopt-long
+
+See "getopt-long Reference" in the manual, for more information.
+
+** Improve R6RS conformance for conditions in the I/O libraries
+
+The `(rnrs io simple)' module now raises the correct R6RS conditions in
+error cases. `(rnrs io ports)' is also more correct now, though it is
+still a work in progress.
+
+** All deprecated routines emit warnings
+
+A few deprecated routines were lacking deprecation warnings. This has
+been fixed now.
+
+* Speed improvements
+
+** Constants in compiled code now share state better
+
+Constants with shared state, like `("foo")' and `"foo"', now share state
+as much as possible, in the entire compilation unit. This cuts compiled
+`.go' file sizes in half, generally, and speeds startup.
+
+** VLists: optimize `vlist-fold-right', and add `vhash-fold-right'
+
+These procedures are now twice as fast as they were.
+
+** UTF-8 ports to bypass `iconv' entirely
+
+This reduces memory usage in a very common case.
+
+** Compiler speedups
+
+The compiler is now about 40% faster. (Note that this is only the case
+once the compiler is itself compiled, so the build still takes as long
+as it did before.)
+
+** VM speed tuning
+
+Some assertions that were mostly useful for sanity-checks on the
+bytecode compiler are now off for both "regular" and "debug" engines.
+This together with a fix to cache a TLS access and some other tweaks
+improve the VM's performance by about 20%.
+
+** SRFI-1 list-set optimizations
+
+lset-adjoin and lset-union now have fast paths for eq? sets.
+
+** `memq', `memv' optimizations
+
+These procedures are now at least twice as fast than in 2.0.1.
+
+* Deprecations
+
+** Deprecate scm_whash API
+
+`scm_whash_get_handle', `SCM_WHASHFOUNDP', `SCM_WHASHREF',
+`SCM_WHASHSET', `scm_whash_create_handle', `scm_whash_lookup', and
+`scm_whash_insert' are now deprecated. Use the normal hash table API
+instead.
+
+** Deprecate scm_struct_table
+
+`SCM_STRUCT_TABLE_NAME', `SCM_SET_STRUCT_TABLE_NAME',
+`SCM_STRUCT_TABLE_CLASS', `SCM_SET_STRUCT_TABLE_CLASS',
+`scm_struct_table', and `scm_struct_create_handle' are now deprecated.
+These routines formed part of the internals of the map between structs
+and classes.
+
+** Deprecate scm_internal_dynamic_wind
+
+The `scm_t_inner' type and `scm_internal_dynamic_wind' are deprecated,
+as the `scm_dynwind' API is better, and this API encourages users to
+stuff SCM values into pointers.
+
+** Deprecate scm_immutable_cell, scm_immutable_double_cell
+
+These routines are deprecated, as the GC_STUBBORN API doesn't do
+anything any more.
+
+* Manual updates
+
+Andreas Rottman kindly transcribed the missing parts of the `(rnrs io
+ports)' documentation from the R6RS documentation. Thanks Andreas!
+
+* Bugs fixed
+
+** Fix double-loading of script in -ds case
+** -x error message fix
+** iconveh-related cross-compilation fixes
+** Fix small integer return value packing on big endian machines.
+** Fix hash-set! in weak-value table from non-immediate to immediate
+** Fix call-with-input-file & relatives for multiple values
+** Fix `hash' for inf and nan
+** Fix libguile internal type errors caught by typing-strictness==2
+** Fix compile error in MinGW fstat socket detection
+** Fix generation of auto-compiled file names on MinGW
+** Fix multithreaded access to internal hash tables
+** Emit a 1-based line number in error messages
+** Fix define-module ordering
+** Fix several POSIX functions to use the locale encoding
+** Add type and range checks to the complex generalized vector accessors
+** Fix unaligned accesses for bytevectors of complex numbers
+** Fix '(a #{.} b)
+** Fix erroneous VM stack overflow for canceled threads
+
+\f
Changes in 2.0.1 (since 2.0.0):
* Notable changes
support, would re-define `pthread_create', `pthread_join', and other API
to redirect to the BDW-GC wrappers, `GC_pthread_create', etc. This was
unintended, and not necessary: because threads must enter Guile with
-scm_with_guile, Guile can handle thread registration itself, without
+`scm_with_guile', Guile can handle thread registration itself, without
needing to make the GC aware of all threads. This oversight has been
fixed.
because the symbol printer would never produce a "\x" before. The
printer also works better too.
-** Added --force-auto-compile option
+** Added `--fresh-auto-compile' option
This allows a user to invalidate the auto-compilation cache. It's
usually not needed. See "Compilation" in the manual, for a discussion.
* New modules
-** `(ice-9 binary-ports)': XXX, in the manual
+** `(ice-9 binary-ports)': "R6RS I/O Ports", in the manual
** `(ice-9 eval-string)': "Fly Evaluation", in the manual
+** `(ice-9 command-line)', not documented yet
* Bugs fixed
-** Fixed iconv_t memory leak on close-port
+** Fixed `iconv_t' memory leak on close-port
** Fixed some leaks with weak hash tables
** Export `vhash-delq' and `vhash-delv' from `(ice-9 vlist)'
** `after-gc-hook' works again
** Fix optional second arg to R6RS log function
** Fix R6RS `assert' to return true value.
** Fix fencepost error when seeking in bytevector input ports
+** Gracefully handle `setlocale' errors when starting the REPL
+** Improve support of the `--disable-posix' configure option
+** Make sure R6RS binary ports pass `binary-port?' regardless of the locale
+** Gracefully handle unterminated UTF-8 sequences instead of hitting an `assert'
\f