diff options
author | Andy Wingo <wingo@pobox.com> | 2016-06-29 10:49:14 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2016-06-29 10:49:14 +0200 |
commit | e9538ef69b62d02113e808ef97bcf6829d839bd2 (patch) | |
tree | 877990ffb1f8b7c09c561840ec98b561d96355a6 | |
parent | 8f644ef87a65721748af0aaea2bba7637d02f57d (diff) | |
download | guile-e9538ef69b62d02113e808ef97bcf6829d839bd2.tar.gz |
Update NEWS
-rw-r--r-- | NEWS | 166 |
1 files changed, 91 insertions, 75 deletions
@@ -9,25 +9,6 @@ Changes in 2.0.12 (since 2.0.11): * Notable changes -** GOOPS - -Two major changes have been made: - -1- #:init-value on class-allocated slots: allocating an instance of a -class with a #:class or #:each-subclass slot allocation should not -re-initialize the class-allocated slot. - -2- accessor methods only apply to subclasses with their slot - -FIXME -(a) let users know that it will break Goops user code relying on -previsouly inherited getters, setters and accessors ... (b) why this: so -that Guile 2.x.x behave like guile-1.8 wrt Goops. But the full picture -is rather strange, and will be (re)fixed soon, see this discussion -http://thread.gmane.org/gmane.lisp.guile.user/11218/focus=11813 for some -details. -ENDFIXME - ** FFI: Add support for functions that set 'errno' When accessing POSIX functions from a system's libc via Guile's dynamic @@ -59,10 +40,50 @@ to avoid confusing Emacs' lisp modes. Previously "\(" was an error. ** 'string-hash', 'read-string', and 'write' have been optimized +** GOOPS bug fix for inherited accessor methods + +In the port of GOOPS to Guile 2.0, we introduced a bug related to +accessor methods. The bug resulted in GOOPS assuming that a slot S in +an object whose class is C would always be present in instances of all +subclasses C, and allocated to the same struct index. This is not the +case for multiple inheritance. This behavior has been fixed to be as it +was in 1.8. + +One aspect of this change may cause confusion among users. Previously +if you defined a class C: + + (use-modules (oop goops)) + (define-class C () + (a #:getter get-a)) + +And now you define a subclass, intending to provide an #:init-value for +the slot A: + + (define-class D () + (a #:init-value 42)) + +Really what you have done is define in D a new slot with the same name, +overriding the existing slot. The problem comes in that before fixing +this bug (but not in 1.8), the getter 'get-a' would succeed for +instances of D, even though 'get-a' should only work for the slot 'a' +that is defined on class C, not any other slot that happens to have the +same name and be in a class with C as a superclass. + +It would be possible to "merge" the slot definitions on C and D, but +that part of the meta-object protocol (`compute-slots' et al) is not +fully implemented. + +Somewhat relatedly, GOOPS also had a fix around #:init-value on +class-allocated slots. GOOPS was re-initializing the value of slots +with #:class or #:each-subclass allocation every time instances of that +class was allocated. This has been fixed. + * New interfaces ** New SRFI-28 string formatting implementation +See "SRFI-28" in the manual. + ** New (ice-9 unicode) module See "Characters" in the manual. @@ -74,9 +95,11 @@ and related procedures. Likewise, (web server http) exports 'http'. ** New procedures: 'string-utf8-length' and 'scm_c_string_utf8_length' +See "Bytevectors as Strings" in the manual, for more. + ** New 'EXIT_SUCCESS' and 'EXIT_FAILURE' Scheme variables -** New C macro 'SCM_VALIDATE_SIZE_COPY' +See "Processes" in the manual. ** New C functions to disable automatic SMOB finalization @@ -100,76 +123,69 @@ More ARM cross-compilation targets are supported: "arm.*eb", * Bugs fixed -*** detect too-old libunistring at configure time (<http://bugs.gnu.org/17399>) -*** use source file permissions for compiled files - (<http://bugs.gnu.org/18477>) +** Compiler *** 'call-with-prompt' does not truncate multiple-value returns (<http://bugs.gnu.org/14347>) -*** sizeof (long) support for LLP64 data model (<http://bugs.gnu.org/22406>) -*** fix 'fat_mutex_unlock' (<http://bugs.gnu.org/22152>) -*** 'uri-decode' no longer decodes "+" to space -*** http: accept date strings with a leading space for hours - (<http://bugs.gnu.org/23421>) -*** http: accept empty reason phrases (<http://bugs.gnu.org/22273>) -*** http: 'Location' header can now contain URI references, not just - absolute URIs -*** http: do not buffer HTTP chunks (<http://bugs.gnu.org/19939>) -*** http: 'open-socket-for-uri' now sets better OS buffering parameters - (<http://bugs.gnu.org/15368>) -*** http: use 'close-port' for delimited input ports -*** texinfo: fix HTML output for @itemize and @acronym - (<http://bugs.gnu.org/21772>) -*** {get,set}sockopt now expect type 'int' for SO_SNDBUF/SO_RCVBUF -*** fix port position handling on binary input ports +*** Use permissions of source file for compiled file + (<http://bugs.gnu.org/18477>) +*** Fix bug when inlining some functions with optional arguments + (<http://bugs.gnu.org/17634>) +*** Avoid quadratic expansion time in 'and' and 'or' macros + (<http://bugs.gnu.org/17147>) +*** Fix expander bug introduced when adding support for tail patterns + (http://lists.gnu.org/archive/html/guile-user/2015-09/msg00017.html) +*** Handle ~p in 'format' warnings (<http://bugs.gnu.org/18299>) + +** Threads +*** Fix data races leading to corruption (<http://bugs.gnu.org/22152>) + +** Memory management +*** Fix race between SMOB marking and finalization + (<http://bugs.gnu.org/19883>) + +** Ports +*** Fix port position handling on binary input ports (<http://bugs.gnu.org/20302>) -*** match-each+, non-pair syntax object in a dotted tail -*** 'atan' procedure when applied to complex numbers -*** bytevector and custom binary ports to use ISO-8859-1 +*** Bytevector and custom binary ports to use ISO-8859-1 (<http://bugs.gnu.org/20200>) -*** avoid test failure when 'setaffinity' returns ENOSYS - (<http://bugs.gnu.org/19646>) -*** fix buffer overrun with unbuffered custom binary input ports +*** Fix buffer overrun with unbuffered custom binary input ports (<http://bugs.gnu.org/19621>) -*** fix memory corruption that arose when using 'get-bytevector-n' +*** Fix memory corruption that arose when using 'get-bytevector-n' (<http://bugs.gnu.org/17466>) -*** 'select' signal interruptions clarification (<http://bugs.gnu.org/18988>) + +** System +*** {get,set}sockopt now expect type 'int' for SO_SNDBUF/SO_RCVBUF +*** 'system*' now available on MS-Windows +*** Better support for file names containing backslashes on Windows + +** Web +*** 'split-and-decode-uri-path' no longer decodes "+" to space +*** HTTP: Support date strings with a leading space for hours + (<http://bugs.gnu.org/23421>) +*** HTTP: Accept empty reason phrases (<http://bugs.gnu.org/22273>) +*** HTTP: 'Location' header can now contain URI references, not just + absolute URIs +*** HTTP: Improve chunked-mode support (<http://bugs.gnu.org/19939>) +*** HTTP: 'open-socket-for-uri' now sets better OS buffering parameters + (<http://bugs.gnu.org/15368>) + +** Miscellaneous +*** Fix 'atan' procedure when applied to complex numbers +*** Fix Texinfo to HTML conversion for @itemize and @acronym + (<http://bugs.gnu.org/21772>) *** 'bytevector-fill!' accepts fill arguments greater than 127 (<http://bugs.gnu.org/19027>) *** 'bytevector-copy' correctly copies SRFI-4 homogeneous vectors - (<http://bugs.gnu.org/18866>) -*** avoid bash-specific '==' in guile.m4 (<http://bugs.gnu.org/18898>) + (<http://bugs.gnu.org/18866>) *** 'strerror' no longer hangs when passed a non-integer argument (<http://bugs.gnu.org/18065>) *** 'scm_boot_guile' now gracefully handles argc == 0 (<http://bugs.gnu.org/18680>) -*** optional arg inits that refer to previous args are now correctly handled - (<http://bugs.gnu.org/17634>) -*** autogen.sh invokes 'libtoolize', not 'libtool' - (<http://bugs.gnu.org/18470>) -*** fix 'SCM_SMOB_OBJECT_LOC' definition (<http://bugs.gnu.org/18495>) -*** SRFI-43 vector-concatenate error message -*** handle ~p in 'format' warnings (<http://bugs.gnu.org/18299>) -*** fix long-standing bug argument mismatch in 'bit-count*' -*** handle Windows file names that contain backslashes -*** CPU set size proper calculation for getaffinity -*** unconditionally build and test (ice-9 popen) -*** make 'system*' available on MS-Windows. -*** portability fixes for 'nl_langinfo' -*** test-suite, lack-of-/dev/null detection improved -*** test-suite, i18n tests adjusted for MS-Windows -*** test-suite, i18n, ignore LC_MESSAGES on MinGW -*** test-suite, Use NUL instead of /dev/null on MinGW -*** avoid quadratic expansion time in 'and' and 'or' macros - (<http://bugs.gnu.org/17147>) +*** Fix 'SCM_SMOB_OBJECT_LOC' definition (<http://bugs.gnu.org/18495>) +*** Fix bug where 'bit-count*' was not using its second argument *** SRFI-1 'length+' raises an error for non-lists and dotted lists (<http://bugs.gnu.org/17296>) -*** system async functions marked as 'SCM_API' - (<http://bugs.gnu.org/17661>) -*** fix race between SMOB marking and finalization - (<http://bugs.gnu.org/19883>) -*** remove unused i18n functions (<http://bugs.gnu.org/19172>) -*** fix 'mkstemp'-related build error on Windows (<http://bugs.gnu.org/21425>) -*** document SXPath (<http://bugs.gnu.org/19478>) +*** Add documentation for SXPath (<http://bugs.gnu.org/19478>) Changes in 2.0.11 (since 2.0.10): |