mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-24 12:20:20 +02:00
Fold 2.1.4 news into 2.2 news
* NEWS: Fold 2.1.4 news into main 2.2 news.
This commit is contained in:
parent
8622344a6b
commit
e61017afa8
1 changed files with 46 additions and 73 deletions
119
NEWS
119
NEWS
|
@ -6,85 +6,13 @@ Please send Guile bug reports to bug-guile@gnu.org.
|
|||
|
||||
|
||||
|
||||
Changes in 2.1.4 (changes since the 2.1.3 alpha release):
|
||||
Changes in 2.1.5 (changes since the 2.1.4 alpha release):
|
||||
|
||||
* Notable changes
|
||||
** C99 required
|
||||
|
||||
Following Emacs, you must use a C99-capable compiler when building
|
||||
Guile. In the future we also expect require C99 to use Guile's C
|
||||
interface, at least for `stdint' support.
|
||||
|
||||
* New interfaces
|
||||
** Implement R6RS custom binary input/output ports
|
||||
|
||||
See "Custom Ports" in the manual.
|
||||
|
||||
** Implement R6RS output-buffer-mode
|
||||
** Implement R6RS bytevector->string, string->bytevector
|
||||
|
||||
See "R6RS Transcoders" in the manual.
|
||||
|
||||
** Thread-safe atomic boxes (references)
|
||||
|
||||
See "Atomics" in the manual.
|
||||
|
||||
** File descriptor finalizers
|
||||
|
||||
See "Ports and File Descriptors" in the manual.
|
||||
|
||||
* Performance improvements
|
||||
** Added unboxing support for `logxor'
|
||||
** Better integer unboxing
|
||||
|
||||
* Incompatible changes
|
||||
** Statically scoped module duplicate handlers
|
||||
|
||||
It used to be that if a module did not specify a #:duplicates handler,
|
||||
when a name was first referenced in that module and multiple imported
|
||||
modules provide that name, the value of the
|
||||
`default-duplicate-binding-handlers' parameter would be used to resolve
|
||||
the duplicate bindings. We have changed so that instead a module
|
||||
defaults to the set of handlers described in the manual. If the module
|
||||
specifies #:duplicates, of course we use that. The
|
||||
`default-duplicate-binding-handlers' parameter now simply accesses the
|
||||
handlers of the current module, instead of some global value.
|
||||
|
||||
* Bug fixes
|
||||
** Better MinGW support
|
||||
|
||||
`system*' is now supported on MinGW targets.
|
||||
|
||||
** Avoid flushing buffers on ftell
|
||||
|
||||
Fixes regression relative to Guile 2.0.
|
||||
|
||||
** HTTP library does not require ETag lists to be qstrings
|
||||
|
||||
** Fix bug importing specific bindings with #:select
|
||||
|
||||
It used to be that if #:select didn't find a binding in the public
|
||||
interface of a module, it would actually grovel in the module's
|
||||
unexported private bindings. This was not intended and is now fixed.
|
||||
|
||||
** Stronger thread-safety guarantees for port implementations
|
||||
|
||||
See "I/O Extensions" in the manual for notes on threads and port
|
||||
implementations.
|
||||
|
||||
** Fix fixnum-range checks in R6RS fixnum bitops
|
||||
(http://bugs.gnu.org/14917)
|
||||
|
||||
** Fix `monitor' macro
|
||||
|
||||
** Fix bug with GUILE_INSTALL_LOCALE=1 and default port encodings
|
||||
|
||||
If GUILE_INSTALL_LOCALE is unset in the environment or set to 1, Guile
|
||||
will call setlocale() to install the locale. However it was neglecting
|
||||
to set the default port encoding to the locale's encoding. This is
|
||||
fixed.
|
||||
|
||||
** Various compiler bug fixes
|
||||
|
||||
|
||||
Previous changes in 2.1.x (changes since the 2.0.x series):
|
||||
|
@ -188,6 +116,12 @@ date, then no .go file would be loaded. Now Guile will continue to
|
|||
search the path for a file which is both present and up-to-date, with
|
||||
respect to the .scm file.
|
||||
|
||||
** C99 required
|
||||
|
||||
Following Emacs, you must use a C99-capable compiler when building
|
||||
Guile. In the future we also expect require C99 to use Guile's C
|
||||
interface, at least for `stdint' support.
|
||||
|
||||
* Performance improvements
|
||||
|
||||
** Faster programs via new virtual machine
|
||||
|
@ -293,6 +227,23 @@ See the newly updated "Statprof" section of the manual, for more.
|
|||
|
||||
See "Non-Blocking I/O" in the manual, for more.
|
||||
|
||||
** Implement R6RS custom binary input/output ports
|
||||
|
||||
See "Custom Ports" in the manual.
|
||||
|
||||
** Implement R6RS output-buffer-mode
|
||||
** Implement R6RS bytevector->string, string->bytevector
|
||||
|
||||
See "R6RS Transcoders" in the manual.
|
||||
|
||||
** Thread-safe atomic boxes (references)
|
||||
|
||||
See "Atomics" in the manual.
|
||||
|
||||
** File descriptor finalizers
|
||||
|
||||
See "Ports and File Descriptors" in the manual.
|
||||
|
||||
** New inline functions: `scm_new_smob', `scm_new_double_smob'
|
||||
|
||||
These can replace many uses of SCM_NEWSMOB, SCM_RETURN_NEWSMOB2, and the
|
||||
|
@ -565,6 +516,24 @@ are matched by binding. This allows literals to be reliably bound to
|
|||
values, renamed by imports or exports, et cetera. See "Syntax-rules
|
||||
Macros" in the manual for more on literals.
|
||||
|
||||
** Fix bug importing specific bindings with #:select
|
||||
|
||||
It used to be that if #:select didn't find a binding in the public
|
||||
interface of a module, it would actually grovel in the module's
|
||||
unexported private bindings. This was not intended and is now fixed.
|
||||
|
||||
** Statically scoped module duplicate handlers
|
||||
|
||||
It used to be that if a module did not specify a #:duplicates handler,
|
||||
when a name was first referenced in that module and multiple imported
|
||||
modules provide that name, the value of the
|
||||
`default-duplicate-binding-handlers' parameter would be used to resolve
|
||||
the duplicate bindings. We have changed so that instead a module
|
||||
defaults to the set of handlers described in the manual. If the module
|
||||
specifies #:duplicates, of course we use that. The
|
||||
`default-duplicate-binding-handlers' parameter now simply accesses the
|
||||
handlers of the current module, instead of some global value.
|
||||
|
||||
** `dynamic-wind' doesn't check that guards are thunks
|
||||
|
||||
Checking that the dynamic-wind out-guard procedure was actually a thunk
|
||||
|
@ -691,6 +660,10 @@ scm_t_debug_info', `scm_pure_generic_p', `SCM_PUREGENERICP',
|
|||
Instead, use the symbol values `none', `line', or `block', respectively,
|
||||
as arguments to the `setvbuf' function.
|
||||
|
||||
** Arbiters
|
||||
|
||||
Use mutexes or atomic variables instead.
|
||||
|
||||
** `with-statprof' macro deprecated
|
||||
|
||||
Use the `statprof' procedure instead.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue