vm.c: remove a useless check
[bpt/guile.git] / NEWS
diff --git a/NEWS b/NEWS
index 10d78b6..c1589a1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,13 @@ See the end for copying conditions.
 Please send Guile bug reports to bug-guile@gnu.org.
 
 
+Changes in 2.0.5 (since 2.0.4):
+
+This release fixes the binary interface information (SONAME) of
+libguile, which was incorrect in 2.0.4.  It does not contain other
+changes.
+
+\f
 Changes in 2.0.4 (since 2.0.3):
 
 * Notable changes
@@ -13,17 +20,25 @@ Changes in 2.0.4 (since 2.0.3):
     
 Guile 2.0 came with a great debugging experience for compiled
 procedures, but the story for interpreted procedures was terrible.  Now,
-at least, interpreted procedures have names, and the 'arity procedure
-property is always as correct (or, as it can be, in the presence of
-case-lambda).
+at least, interpreted procedures have names, and the `arity' procedure
+property is always correct (or, as correct as it can be, in the presence
+of `case-lambda').
 
 ** Support for cross-compilation.
     
 One can now use a native Guile to cross-compile `.go' files for a
 different architecture.  See the documentation for `--target' in the
-"Compilation" section of the manual, for how to use the cross-compiler.
-See the "Cross building Guile" section of the README, for more on how to
-cross-compile Guile itself.
+"Compilation" section of the manual, for information on how to use the
+cross-compiler.  See the "Cross building Guile" section of the README,
+for more on how to cross-compile Guile itself.
+
+** The return of `local-eval'.
+
+Back by popular demand, `the-environment' and `local-eval' allow the
+user to capture a lexical environment, and then evaluate arbitrary
+expressions in that context.  There is also a new `local-compile'
+command.  See "Local Evaluation" in the manual, for more.  Special
+thanks to Mark Weaver for an initial implementation of this feature.
 
 ** Fluids can now have default values.
 
@@ -33,7 +48,7 @@ However, there was a case in which a new thread would enter Guile, and
 the default values of all the fluids would be `#f' for that thread.
 
 This has now been fixed so that `make-fluid' has an optional default
-value, which defaults to `#f'. 
+value for fluids in unrelated dynamic roots, which defaults to `#f'.
 
 ** Garbage collector tuning.
 
@@ -65,13 +80,11 @@ threads.
     
 Similarly, bignums can occupy a lot of memory.  Guile now offers hooks
 to enable custom GMP allocators that end up calling
-scm_gc_register_allocation'.  These allocators are enabled by default
+`scm_gc_register_allocation'.  These allocators are enabled by default
 when running Guile from the command-line.  To enable them in libraries,
 set the `scm_install_gmp_memory_functions' variable to a nonzero value
 before loading Guile.
 
-Thanks to Mark Weaver for inspiration.
-
 ** SRFI-39 parameters are available by default.
     
 Guile now includes support for parameters, as defined by SRFI-39, in the
@@ -79,7 +92,7 @@ default environment.  See "Parameters" in the manual, for more
 information.  `current-input-port', `current-output-port', and
 `current-error-port' are now parameters.
     
-** Add `current-warning-port'
+** Add `current-warning-port'.
     
 Guile now outputs warnings on a separate port, `current-warning-port',
 initialized to the value that `current-error-port' has on startup.
@@ -92,11 +105,6 @@ Following Racket's lead, Guile now supports syntax parameters.  See
 Also see Barzilay, Culpepper, and Flatt's 2011 SFP workshop paper,
 "Keeping it Clean with syntax-parameterize".
     
-    
-`primitive-load' returns the values yielded from evaluating the last
-expression in the file.  This in turn makes `load' always return the
-results of the last expression, both when interpreted and compiled.
-    
 ** Parse command-line arguments from the locale encoding.
     
 Guile now attempts to parse command-line arguments using the user's
@@ -104,52 +112,102 @@ locale.  However for backwards compatibility with other 2.0.x releases,
 it does so without actually calling `setlocale'.  Please report any bugs
 in this facility to bug-guile@gnu.org.
 
+** One-armed conditionals: `when' and `unless'
+
+Guile finally has `when' and `unless' in the default environment.  Use
+them whenever you would use an `if' with only one branch.  See
+"Conditionals" in the manual, for more.
+
+** `current-filename', `add-to-load-path'
+
+There is a new form, `(current-filename)', which expands out to the
+source file in which it occurs.  Combined with the new
+`add-to-load-path', this allows simple scripts to easily add nearby
+directories to the load path.  See "Load Paths" in the manual, for more.
+
+** `random-state-from-platform'
+
+This procedure initializes a random seed using good random sources
+available on your platform, such as /dev/urandom.  See "Random Number
+Generation" in the manual, for more.
+
+** Warn about unsupported `simple-format' options.
+
+The `-Wformat' compilation option now reports unsupported format options
+passed to `simple-format'.
+
+** Manual updates
+
+Besides the sections already mentioned, the following manual sections
+are new in this release: "Modules and the File System", "Module System
+Reflection", "Syntax Transformer Helpers", and "Local Inclusion".
+
 * New interfaces
 
 ** (ice-9 session): `apropos-hook'
 ** New print option: `escape-newlines', defaults to #t.
 ** (ice-9 ftw): `file-system-fold', `file-system-tree', `scandir'
+** `scm_c_value_ref': access to multiple returned values from C
+** scm_call (a varargs version), scm_call_7, scm_call_8, scm_call_9
+** Some new syntax helpers in (system syntax)
+
+Search the manual for these identifiers and modules, for more.
+
+* Build fixes
+
+** FreeBSD build fixes.
+** OpenBSD compilation fixes.
+** Solaris 2.10 test suite fixes.
+** IA64 compilation fix.
+** MinGW build fixes.
+** Work around instruction reordering on SPARC and HPPA in the VM.
+** Gnulib updates: added `dirfd', `setenv' modules.
 
 * Bug fixes
 
-** Fix R6RS `fold-left' so the accumulator is the first argument.
-** fix <dynwind> serialization.
-** Fix bugs in the new `peval' optimizer.
-** Allow values bound in non-tail let expressions to be collected.
-** Fix bit-set*! bug from 2005.
-** Fix bug in `make-repl' when `lang' is actually a language.
-** Hack the port-column of current-output-port after printing a prompt.
+** Add a deprecated alias for $expt.
+** Add an exception printer for `getaddrinfo-error'.
+** Add deprecated shim for `scm_display_error' with stack as first argument.
+** Add warnings for unsupported `simple-format' options.
+** Allow overlapping regions to be passed to `bytevector-copy!'.
+** Better function prologue disassembly
+** Compiler: fix miscompilation of (values foo ...) in some contexts.
+** Compiler: fix serialization of #nil-terminated lists.
+** Compiler: allow values bound in non-tail let expressions to be collected.
+** Deprecate SCM_ASRTGO.
+** Document invalidity of (begin) as expression; add back-compat shim.
+** Don't leak file descriptors when mmaping objcode.
+** Empty substrings no longer reference the original stringbuf.
+** FFI: Fix `set-pointer-finalizer!' to leave the type cell unchanged.
 ** FFI: Hold a weak reference to the CIF made by `procedure->pointer'.
 ** FFI: Hold a weak reference to the procedure passed to `procedure->pointer'.
 ** FFI: Properly unpack small integer return values in closure call.
-** Allow overlapping regions to be passed to `bytevector-copy!'.
-** Fix `validate-target' in (system base target).
-** `,language' at REPL sets the current-language fluid.
-** `primitive-load' returns the value(s) of the last expression.
-** Add an exception printer for `getaddrinfo-error'.
-** Add a deprecated alias for $expt.
-** Document invalidity of (begin) as expression; add back-compat shim.
-** Web: Allow URIs with empty authorities, like "file:///etc/hosts".
-** HTTP: Fix validators for various list-style headers.
+** Fix R6RS `fold-left' so the accumulator is the first argument.
+** Fix bit-set*! bug from 2005.
+** Fix bug in `make-repl' when `lang' is actually a <language>.
+** Fix bugs related to mutation, the null string, and shared substrings.
+** Fix <dynwind> serialization.
+** Fix erroneous check in `set-procedure-properties!'.
+** Fix generalized-vector-{ref,set!} for slices.
+** Fix error messages involving definition forms.
+** Fix primitive-eval to return #<unspecified> for definitions.
 ** HTTP: Extend handling of "Cache-Control" header.
 ** HTTP: Fix qstring writing of cache-extension values
-** HTTP: `write-request-line' writes absolute paths, not absolute URIs.
+** HTTP: Fix validators for various list-style headers.
 ** HTTP: Permit non-date values for Expires header.
-** FreeBSD build fixes.
-** Fix generalized-vector-{ref,set!} for slices.
-** Fix erroneous check in `set-procedure-properties!'.
-** Don't leak file descriptors when mmaping objcode.
-** Fix bugs related to mutation, the null string, and shared substrings.
-** Deprecate SCM_ASRTGO.
-** Add deprecated shim for `scm_display_error' with stack as first argument.
-** i18n: Fix gc_malloc/free mismatch on non-GNU systems.
+** HTTP: `write-request-line' writes absolute paths, not absolute URIs.
+** Hack the port-column of current-output-port after printing a prompt.
 ** Make sure `regexp-quote' tests use Unicode-capable string ports.
-** Have `cpu-word-size' error out on unknown CPUs; add support for MIPSEL.
+** Peval: Fix bugs in the new optimizer.
+** Statistically unique marks and labels, for robust hygiene across sessions.
+** Web: Allow URIs with empty authorities, like "file:///etc/hosts".
+** `,language' at REPL sets the current-language fluid.
+** `primitive-load' returns the value(s) of the last expression.
 ** `scm_from_stringn' always returns unique strings.
-** Empty substrings no longer reference the original stringbuf.
 ** `scm_i_substring_copy' tries to narrow the substring.
-** Avoid calling `u32_conv_from_encoding' on the null string.
+** i18n: Fix gc_malloc/free mismatch on non-GNU systems.
 
+\f
 Changes in 2.0.3 (since 2.0.2):
 
 * Speed improvements