1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 22:31:12 +02:00

cull 1.9.8 NEWS items

* NEWS: Remove 1.9.8 items; they have been folded in already.
This commit is contained in:
Andy Wingo 2010-03-16 22:56:37 +01:00
parent 17ed90df48
commit 71fada0b6d

77
NEWS
View file

@ -8,82 +8,7 @@ Please send Guile bug reports to bug-guile@gnu.org.
(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.)
Changes in 1.9.8 (since the 1.9.7 prerelease):
** Struct optimizations
Structs underly many types in Guile, including records and objects. This
release speeds up struct access and creation.
** Add libffi dependency
Libffi is now required, to build the foreign function interface. See
http://sourceware.org/libffi/, for more information on libffi.
We are not aware of a platform that Guile runs on for which libffi is
unavailable.
** Foreign function interface
This release comes with a new `(system foreign)' module. Currently it
provides a low level "foreign function interface" (FFI), which allows
users to write Scheme code to invoke C code, without writing a single
line of C code.
The `dynamic-link' and `dynamic-func' procedures, which have been
available for a long time, can be used to get the address of a C
function as a "foreign" object at the Scheme level; using libffi, Guile
can construct calls to these functions.
The arguments to a C function may be integers, floating point numbers,
pointers, and structs. Numbers are passed using their normal Scheme
representations, and pointers and structs are represented as foreign
objects. Foreign objects can be converted back and forth to/from a
bytevector. They can have an associated foreign finalizer (e.g., a
procedure that will reclaim any associated resources when the object
becomes unreachable); alternatively, they can be finalized using a
guardian.
The `(system foreign)' API is currently low-level and possibly
inconvenient. It will be extended to provide higher-level constructs.
** Incompatible changes to the foreign value interface introduced in 1.9.7
The API in <libguile/foreign.h> changed since 1.9.7. C extensions need
recompilation.
** `dynamic-wind' compilation
`dynamic-wind' now has special support from the compiler and VM. The
compiler is able to inline the body of a `dynamic-wind', making it more
efficient. The run-time support is provided by the `wind' and `unwind'
VM instructions.
** New module: `(ice-9 vlist)'
This module provides an implementation of Bagwell's VLists and
VList-based hash lists ("VHashes"). VLists are a list data structure
that provides constant-time random access and length computation
logarithmic in the number of elements. VLists also use less storage
space than standard Scheme linked lists.
VHashes are a functional dictionary type similar to association lists.
However, unlike association lists, accessing a value given its key is
typically a constant-time operation. VHashes are now used in a few
places of the compiler.
** New procedures: `getaddrinfo' and family
Bindings for the POSIX getaddrinfo(3) host name and service lookup
function are available. This function is now recommended over
`gethostname' and friends as it's more expressive and can return a
sorted list of addresses, as opposed to a single address.
** Tutorial deleted
The tutorial was removed. It was incomplete, outdated, and contained C
examples that were no longer valid. The reference manual, on the other
hand, contains up-to-date examples and documentation.
Changes in 1.9.9 (since the 1.9.8 prerelease):
** And of course, the usual collection of bugfixes