1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 19:50:24 +02:00

update NEWS for 1.9.4

This commit is contained in:
Andy Wingo 2009-10-15 15:45:03 +02:00
parent 6d7c440288
commit b0217d1704

163
NEWS
View file

@ -8,109 +8,63 @@ Please send Guile bug reports to bug-guile@gnu.org.
(During the 1.9 series, we will keep an incremental NEWS for the latest (During the 1.9 series, we will keep an incremental NEWS for the latest
prerelease, and a full NEWS corresponding to 1.8 -> 2.0.) prerelease, and a full NEWS corresponding to 1.8 -> 2.0.)
Changes in 1.9.3 (since the 1.9.2 prerelease): Changes in 1.9.4 (since the 1.9.3 prerelease):
** Guile now adds its install prefix to the LTDL_LIBRARY_PATH
** Guile now uses libgc, the Boehm-Demers-Weiser garbage collector Users may now install Guile to nonstandard prefixes and just run
`/path/to/bin/guile', instead of also having to set LTDL_LIBRARY_PATH to
include `/path/to/lib'.
The semantics of `scm_gc_malloc ()' have been changed, in a ** Dynamically loadable extensions may be placed in a Guile-specific path
backward-compatible way. A new allocation routine,
`scm_gc_malloc_pointerless ()', was added.
Libgc is a conservative GC, which we hope will make interaction with C Before, Guile only searched the system library paths for extensions
code easier and less error-prone. (e.g. /usr/lib), which meant that the names of Guile extensions had to
be globally unique. Installing them to a Guile-specific extensions
directory is cleaner. Use `pkg-config --variable=extensionsdir
guile-2.0' to get the location of the extensions directory.
** Files loaded with `load' will now be compiled automatically. ** The programmatic `compile' procedure compiles its expression in a
fresh module, by default
As with files loaded via `primitive-load-path', `load' will also compile This should make the results of `compile' more predictable. Users may
its target if autocompilation is enabled, and a fresh compiled file is specify a specific module in which to compile via the `#:env' keyword
not found. argument to `compile' (and `compile-file').
There are two points of difference to note, however. First, `load' does ** `compile-file' preserves expansion-time side-effects to `current-reader'
not search `GUILE_LOAD_COMPILED_PATH' for the file; it only looks in the
autocompilation directory, normally a subdirectory of ~/.cache/guile.
Secondly, autocompilation also applies to files loaded via the -l User modules may now modify the `current-reader' fluid at expansion
command-line argument -- so the user may experience a slight slowdown time, usually within an eval-when, and those modifications will remain
the first time they run a Guile script, as the script is autocompiled. in place when compiling subsequent forms in the file.
** Support for non-ASCII source code files See "The Scheme Compiler" in the Guile manual for more details.
The default reader now handles source code files for some of the ** Guile's Emacs integration is now more keyboard-friendly
non-ASCII character encodings, such as UTF-8. A non-ASCII source file
should have an encoding declaration near the top of the file. Also,
there is a new function, `file-encoding', that scans a port for a coding
declaration. See the section of the manual entitled, "Character Encoding
of Source Files".
The pre-1.9.3 reader handled 8-bit clean but otherwise unspecified source Backtraces may now be disclosed with the keyboard in addition to the
code. This use is now discouraged. mouse.
** Support for locale transcoding when reading from and writing to ports ** Compile-time warnings: -Wunbound-variable
Ports now have an associated character encoding, and port read and write Guile can warn about potentially unbound free variables. Pass the
operations do conversion to and from locales automatically. Ports also -Wunbound-variable on the `guile-tools compile' command line, or add
have an associated strategy for how to deal with locale conversion `#:warnings '(unbound-variable)' to your `compile' or `compile-file'
failures. invocation.
See the documentation in the manual for the four new support functions, ** Wide character/string support in locale-specific character/string
`set-port-encoding!', `port-encoding', `set-port-conversion-strategy!', functions
and `port-conversion-strategy'.
** String and SRFI-13 functions can operate on Unicode strings The `(ice-9 i18n)' functions (`string-locale<?', etc.) now work
correctly on wide strings as well. This should finish off the remaining
Unicode support patches. Please send any Unicode bug reports to
`bug-guile@gnu.org'.
** Unicode support for SRFI-14 character sets ** ABI harmonization
The default character sets are no longer locale dependent and contain `scm_primitive_load_path' now has the signature it did in 1.8.
characters from the whole Unicode range. There is a new predefined `scm_array_p' does as well, reverting an incompatible change made in
character set, `char-set:designated', which contains all assigned 1.9.3. Finally, Guile now has the same ABI when built with or without
Unicode characters. There is a new debugging function, `%char-set-dump'. threads, something that should make Debian users happy.
** Character functions operate on Unicode characters
`char-upcase' and `char-downcase' use default Unicode casing rules.
Character comparisons such as `char<?' and `char-ci<?' now sort based on
Unicode code points.
** Unicode symbol support
One may now use U+03BB (GREEK SMALL LETTER LAMBDA) as an identifier.
** New readline history functions
The (ice-9 readline) module now provides add-history, read-history,
write-history and clear-history, which wrap the corresponding GNU
History library functions.
** Removed deprecated uniform array procedures:
dimensions->uniform-array, list->uniform-array, array-prototype
Instead, use make-typed-array, list->typed-array, or array-type,
respectively.
** Removed deprecated uniform array procedures: scm_make_uve,
scm_array_prototype, scm_list_to_uniform_array,
scm_dimensions_to_uniform_array, scm_make_ra, scm_shap2ra, scm_cvref,
scm_ra_set_contp, scm_aind, scm_raprin1
These functions have been deprecated since early 2005.
** scm_array_p has one argument, not two
Use of the second argument produced a deprecation warning, so it is
unlikely that any code out there actually used this functionality.
** GOOPS documentation folded into Guile reference manual
GOOPS, Guile's object system, used to be documented in separate manuals.
This content is now included in Guile's manual directly.
** `libguile-i18n' has been merged into `libguile'
The C support code for `(ice-9 i18n)', which used to be in
`libguile-i18n', is now part of `libguile'.
** Last but not least, the `λ' macro can be used in lieu of `lambda'
** And of course, the usual collection of bugfixes ** And of course, the usual collection of bugfixes
@ -160,6 +114,17 @@ documented in the manual. This will be fixed before 2.0.
Pass the `--help' command-line option to these commands for more Pass the `--help' command-line option to these commands for more
information. information.
** Guile now adds its install prefix to the LTDL_LIBRARY_PATH
Users may now install Guile to nonstandard prefixes and just run
`/path/to/bin/guile', instead of also having to set LTDL_LIBRARY_PATH to
include `/path/to/lib'.
** Guile's Emacs integration is now more keyboard-friendly
Backtraces may now be disclosed with the keyboard in addition to the
mouse.
* Changes to Scheme functions and syntax * Changes to Scheme functions and syntax
** Procedure removed: `the-environment' ** Procedure removed: `the-environment'
@ -651,6 +616,13 @@ There was an EBCDIC compile flag that altered some of the character
processing. It appeared that full EBCDIC support was never completed processing. It appeared that full EBCDIC support was never completed
and was unmaintained. and was unmaintained.
** Compile-time warnings: -Wunbound-variable
Guile can warn about potentially unbound free variables. Pass the
-Wunbound-variable on the `guile-tools compile' command line, or add
`#:warnings '(unbound-variable)' to your `compile' or `compile-file'
invocation.
** New macro type: syncase-macro ** New macro type: syncase-macro
XXX Need to decide whether to document this for 2.0, probably should: XXX Need to decide whether to document this for 2.0, probably should:
@ -701,6 +673,12 @@ the variable. This was an error, and was fixed.
As syntax-case is available by default, importing `(ice-9 syncase)' has As syntax-case is available by default, importing `(ice-9 syncase)' has
no effect, and will trigger a deprecation warning. no effect, and will trigger a deprecation warning.
** New readline history functions
The (ice-9 readline) module now provides add-history, read-history,
write-history and clear-history, which wrap the corresponding GNU
History library functions.
** Removed deprecated uniform array procedures: ** Removed deprecated uniform array procedures:
dimensions->uniform-array, list->uniform-array, array-prototype dimensions->uniform-array, list->uniform-array, array-prototype
@ -753,11 +731,6 @@ definition depends on the application's value for `_FILE_OFFSET_BITS'.
These functions have been deprecated since early 2005. These functions have been deprecated since early 2005.
** scm_array_p has one argument, not two
Use of the second argument produced a deprecation warning, so it is
unlikely that any code out there actually used this functionality.
* Changes to the distribution * Changes to the distribution
** Guile's license is now LGPLv3+ ** Guile's license is now LGPLv3+
@ -788,6 +761,14 @@ macros should now require `guile-2.0' instead of `guile-1.8'.
If $(libdir) is /usr/lib, for example, Guile will install its .go files If $(libdir) is /usr/lib, for example, Guile will install its .go files
to /usr/lib/guile/1.9/ccache. These files are architecture-specific. to /usr/lib/guile/1.9/ccache. These files are architecture-specific.
** Dynamically loadable extensions may be placed in a Guile-specific path
Before, Guile only searched the system library paths for extensions
(e.g. /usr/lib), which meant that the names of Guile extensions had to
be globally unique. Installing them to a Guile-specific extensions
directory is cleaner. Use `pkg-config --variable=extensionsdir
guile-2.0' to get the location of the extensions directory.
** New dependency: libgc ** New dependency: libgc
See http://www.hpl.hp.com/personal/Hans_Boehm/gc/, for more information. See http://www.hpl.hp.com/personal/Hans_Boehm/gc/, for more information.