X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/d53f85dd859fa69af8a0b67482774d2a88aaf407..12eae603c76edc8affc0e8331df7f22a4d8a8b2c:/NEWS?ds=sidebyside diff --git a/NEWS b/NEWS index ece561834..de8e2c13d 100644 --- a/NEWS +++ b/NEWS @@ -1,16 +1,15 @@ Guile NEWS --- history of user-visible changes. -Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. See the end for copying conditions. -Please send Guile bug reports to bug-guile@gnu.org. Note that you -must be subscribed to this list first, in order to successfully send a -report to it. +Please send Guile bug reports to bug-guile@gnu.org. Changes in 1.9.0: * New modules (see the manual for details) +** `(srfi srfi-18)', multithreading support ** The `(ice-9 i18n)' module provides internationalization support * Changes to the distribution @@ -31,13 +30,129 @@ See `cancel-thread', `set-thread-cleanup!', and `thread-cleanup'. * Changes to the C interface +** The GH interface (deprecated in version 1.6, 2001) was removed. + +** Internal `scm_i_' functions now have "hidden" linkage with GCC/ELF + +This makes these internal functions technically not callable from +application code. + ** Functions for handling `scm_option' now no longer require an argument indicating length of the `scm_t_option' array. +** Primitive procedures (aka. "subrs") are now stored in double cells +This removes the subr table and simplifies the code. + +** Primitive procedures with more than 3 arguments (aka. "gsubrs") are +no longer implemented using the "compiled closure" mechanism. This +simplifies code and reduces both the storage and run-time overhead. + + +Changes in 1.8.7 (since 1.8.6) + +* Bugs fixed + +** Fix %fast-slot-ref/set!, to avoid possible segmentation fault +** Fix MinGW build problem caused by HAVE_STRUCT_TIMESPEC confusion +** Fix build problem when scm_t_timespec is different from struct timespec +** Fix build when compiled with -Wundef -Werror + +** Allow @ macro to work with (ice-9 syncase) + +Previously, use of the @ macro in a module whose code is being +transformed by (ice-9 syncase) would cause an "Invalid syntax" error. +Now it works as you would expect (giving the value of the specified +module binding). + +** Have `scm_take_locale_symbol ()' return an interned symbol (bug #25865) + + +Changes in 1.8.6 (since 1.8.5) + +* New features (see the manual for details) + +** New convenience function `scm_c_symbol_length ()' + +** Single stepping through code from Emacs + +When you use GDS to evaluate Scheme code from Emacs, you can now use +`C-u' to indicate that you want to single step through that code. See +`Evaluating Scheme Code' in the manual for more details. + +** New "guile(1)" man page! + +* Changes to the distribution + +** Automake's `AM_MAINTAINER_MODE' is no longer used + +Thus, the `--enable-maintainer-mode' configure option is no longer +available: Guile is now always configured in "maintainer mode". + +** `ChangeLog' files are no longer updated + +Instead, changes are detailed in the version control system's logs. See +the top-level `ChangeLog' files for details. + + +* Bugs fixed + +** `symbol->string' now returns a read-only string, as per R5RS +** Fix incorrect handling of the FLAGS argument of `fold-matches' +** `guile-config link' now prints `-L$libdir' before `-lguile' +** Fix memory corruption involving GOOPS' `class-redefinition' +** Fix possible deadlock in `mutex-lock' +** Fix build issue on Tru64 and ia64-hp-hpux11.23 (`SCM_UNPACK' macro) +** Fix build issue on mips, mipsel, powerpc and ia64 (stack direction) +** Fix build issue on hppa2.0w-hp-hpux11.11 (`dirent64' and `readdir64_r') +** Fix build issue on i386-unknown-freebsd7.0 ("break strict-aliasing rules") +** Fix misleading output from `(help rationalize)' +** Fix build failure on Debian hppa architecture (bad stack growth detection) +** Fix `gcd' when called with a single, negative argument. +** Fix `Stack overflow' errors seen when building on some platforms +** Fix bug when `scm_with_guile ()' was called several times from the + same thread +** The handler of SRFI-34 `with-exception-handler' is now invoked in the + dynamic environment of the call to `raise' +** Fix potential deadlock in `make-struct' +** Fix compilation problem with libltdl from Libtool 2.2.x +** Fix sloppy bound checking in `string-{ref,set!}' with the empty string Changes in 1.8.5 (since 1.8.4) +* Infrastructure changes + +** Guile repository switched from CVS to Git + +The new repository can be accessed using +"git-clone git://git.sv.gnu.org/guile.git", or can be browsed on-line at +http://git.sv.gnu.org/gitweb/?p=guile.git . See `README' for details. + +** Add support for `pkg-config' + +See "Autoconf Support" in the manual for details. + +* New modules (see the manual for details) + +** `(srfi srfi-88)' + +* New features (see the manual for details) + +** New `postfix' read option, for SRFI-88 keyword syntax +** Some I/O primitives have been inlined, which improves I/O performance +** New object-based traps infrastructure + +This is a GOOPS-based infrastructure that builds on Guile's low-level +evaluator trap calls and facilitates the development of debugging +features like single-stepping, breakpoints, tracing and profiling. +See the `Traps' node of the manual for details. + +** New support for working on Guile code from within Emacs + +Guile now incorporates the `GDS' library (previously distributed +separately) for working on Guile code from within Emacs. See the +`Using Guile In Emacs' node of the manual for details. + * Bugs fixed ** `scm_add_slot ()' no longer segfaults (fixes bug #22369) @@ -46,9 +161,28 @@ Changes in 1.8.5 (since 1.8.4) Previously, expressions like `(match '((foo) (bar)) (((_ ...) ...) #t))' would trigger an unbound variable error for `match:andmap'. +** `(oop goops describe)' now properly provides the `describe' feature +** Fixed `args-fold' from `(srfi srfi-37)' + +Previously, parsing short option names of argument-less options would +lead to a stack overflow. + +** `(srfi srfi-35)' is now visible through `cond-expand' +** Fixed type-checking for the second argument of `eval' +** Fixed type-checking for SRFI-1 `partition' +** Fixed `struct-ref' and `struct-set!' on "light structs" +** Honor struct field access rights in GOOPS +** Changed the storage strategy of source properties, which fixes a deadlock +** Allow compilation of Guile-using programs in C99 mode with GCC 4.3 and later ** Fixed build issue for GNU/Linux on IA64 -** Fixed build issue on NetBSD 1.6 +** Fixed build issues on NetBSD 1.6 ** Fixed build issue on Solaris 2.10 x86_64 +** Fixed build issue with DEC/Compaq/HP's compiler +** Fixed `scm_from_complex_double' build issue on FreeBSD +** Fixed `alloca' build issue on FreeBSD 6 +** Removed use of non-portable makefile constructs +** Fixed shadowing of libc's on Tru64, which broke compilation +** Make sure all tests honor `$TMPDIR' * Changes to the distribution @@ -134,7 +268,6 @@ Changes in 1.8.3 (since 1.8.2) ** The reader is now faster, which reduces startup time ** Procedures returned by `record-accessor' and `record-modifier' are faster - Changes in 1.8.2 (since 1.8.1): @@ -143,6 +276,16 @@ Changes in 1.8.2 (since 1.8.1): ** set-program-arguments ** make-vtable +* Incompatible changes + +** The body of a top-level `define' no longer sees the binding being created + +In a top-level `define', the binding being created is no longer visible +from the `define' body. This breaks code like +"(define foo (begin (set! foo 1) (+ foo 1)))", where `foo' is now +unbound in the body. However, such code was not R5RS-compliant anyway, +per Section 5.2.1. + * Bugs fixed ** Fractions were not `equal?' if stored in unreduced form. @@ -187,8 +330,6 @@ Changes in 1.8.1 (since 1.8.0): ** scm_exp - [C] ** scm_sqrt - [C] -* New `(ice-9 i18n)' module (see the manual for details) - * Bugs fixed ** Build problems have been fixed on MacOS, SunOS, and QNX.