1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 11:50:28 +02:00

add more NEWS

* NEWS: Add new NEWS and fold into main text.
This commit is contained in:
Andy Wingo 2011-02-14 23:26:18 +01:00
parent 487bacf4ff
commit b47fea090f

89
NEWS
View file

@ -10,6 +10,59 @@ latest prerelease, and a full NEWS corresponding to 1.8 -> 2.0.
Changes since the 1.9.15 prerelease: Changes since the 1.9.15 prerelease:
** `unquote' and `unquote-splicing' accept multiple expressions
As per the R6RS, these syntax operators can now accept any number of
expressions to unquote.
** `getopt-long' parsing errors throw to `quit', not `misc-error'
This change should inhibit backtraces on argument parsing errors.
`getopt-long' has been modified to print out the error that it throws
itself.
** New helpers: `print-exception', `set-exception-printer!'
These functions implement an extensible exception printer. Guile
registers printers for all of the exceptions it throws. Users may add
their own printers. There is also `scm_print_exception', for use by C
programs. Pleasantly, this allows SRFI-35 and R6RS exceptions to be
printed appropriately.
** `positions' reader option enabled by default
This change allows primitive-load without --auto-compile to also
propagate source information through the expander, for better errors and
to let macros know their source locations. The compiler was already
turning it on anyway.
** `load' is a macro (!) that resolves paths relative to source file dir
The familiar Schem `load' procedure is now a macro that captures the
name of the source file being expanded, and dispatches to the new
`load-in-vicinity'. Referencing `load' by bare name returns a closure
that embeds the current source file name.
This fix allows `load' of relative paths to be resolved with respect to
the location of the file that calls `load'.
** "autocompile" -> "auto-compile"
The "--autocompile" and "--no-autocompile" arguments were renamed to
have a dash, for consistency with the GUILE_AUTO_COMPILE environment
variable, and with common conventions. A number of variables were also
appropriately renamed.
** `scm_primitive_load' defaults to UTF-8, not Latin-1
Like `compile-file', `primitive-load' now defaults to UTF-8.
** Warning now available for auto-compiled files.
See the `%auto-compilation-options' variable. Warnings at
auto-compilation time are preceded with the `*current-warning-prefix*'
(a fluid).
** Deprecated: primitive properties ** Deprecated: primitive properties
The `primitive-make-property', `primitive-property-set!', The `primitive-make-property', `primitive-property-set!',
@ -670,6 +723,11 @@ subsequent datum: #'foo => foo. In the unlikely event that anyone
actually used this, this behavior may be reinstated via the actually used this, this behavior may be reinstated via the
`read-hash-extend' mechanism. `read-hash-extend' mechanism.
** `unquote' and `unquote-splicing' accept multiple expressions
As per the R6RS, these syntax operators can now accept any number of
expressions to unquote.
** Scheme expresssions may be commented out with #; ** Scheme expresssions may be commented out with #;
#; comments out an entire expression. See SRFI-62 or the R6RS for more #; comments out an entire expression. See SRFI-62 or the R6RS for more
@ -705,6 +763,13 @@ different from backtraces in interpreted code. There are no semantic
differences, however. Please mail bug-guile@gnu.org if you see any differences, however. Please mail bug-guile@gnu.org if you see any
deficiencies with Guile's backtraces. deficiencies with Guile's backtraces.
** `positions' reader option enabled by default
This change allows primitive-load without --auto-compile to also
propagate source information through the expander, for better errors and
to let macros know their source locations. The compiler was already
turning it on anyway.
** New macro: `current-source-location' ** New macro: `current-source-location'
The macro returns the current source location (to be documented). The macro returns the current source location (to be documented).
@ -799,6 +864,16 @@ calls need to be in scope. Now we ensure that the current module when
loading a module is one that has the needed bindings, instead of relying loading a module is one that has the needed bindings, instead of relying
on chance. on chance.
** `load' is a macro (!) that resolves paths relative to source file dir
The familiar Schem `load' procedure is now a macro that captures the
name of the source file being expanded, and dispatches to the new
`load-in-vicinity'. Referencing `load' by bare name returns a closure
that embeds the current source file name.
This fix allows `load' of relative paths to be resolved with respect to
the location of the file that calls `load'.
** Many syntax errors have different texts now ** Many syntax errors have different texts now
Syntax errors still throw to the `syntax-error' key, but the arguments Syntax errors still throw to the `syntax-error' key, but the arguments
@ -1370,6 +1445,14 @@ It used to be that a new thread entering Guile would do so in the
in which case it was `(guile-user)'. This has been fixed to have all in which case it was `(guile-user)'. This has been fixed to have all
new threads unknown to Guile default to `(guile-user)'. new threads unknown to Guile default to `(guile-user)'.
** New helpers: `print-exception', `set-exception-printer!'
These functions implement an extensible exception printer. Guile
registers printers for all of the exceptions it throws. Users may add
their own printers. There is also `scm_print_exception', for use by C
programs. Pleasantly, this allows SRFI-35 and R6RS exceptions to be
printed appropriately.
** GOOPS dispatch in scheme ** GOOPS dispatch in scheme
As an implementation detail, GOOPS dispatch is no longer implemented by As an implementation detail, GOOPS dispatch is no longer implemented by
@ -1420,6 +1503,12 @@ Guile now use a portable implementation of `inet_pton'/`inet_ntop', so
there is no more need to use `inet-aton'/`inet-ntoa'. The latter there is no more need to use `inet-aton'/`inet-ntoa'. The latter
functions are deprecated. functions are deprecated.
** `getopt-long' parsing errors throw to `quit', not `misc-error'
This change should inhibit backtraces on argument parsing errors.
`getopt-long' has been modified to print out the error that it throws
itself.
** New primitive: `tmpfile'. ** New primitive: `tmpfile'.
See "File System" in the manual. See "File System" in the manual.