diff --git a/NEWS b/NEWS index 4f6ff6a98..c3482519c 100644 --- a/NEWS +++ b/NEWS @@ -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 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