[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 01/58: Update NEWS for 2.2.3
[Guile-commits] 01/58: Update NEWS for 2.2.3
Tue, 7 Aug 2018 06:58:28 -0400 (EDT)
wingo pushed a commit to branch lightning
in repository guile.
Author: Andy Wingo <address@hidden>
Date: Fri Dec 1 11:34:58 2017 +0100
Update NEWS for 2.2.3
* NEWS: Update.
NEWS | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 90 insertions(+), 2 deletions(-)
diff --git a/NEWS b/NEWS
index cc885e0..5f05c06 100644
@@ -64,7 +64,7 @@ Notably, the `pkg-config' file is now `guile-3.0'.
Changes in 2.2.3 (since 2.2.2):
-* New interfaces
+* New interfaces and functionality
** (web uri) module has better support for RFC 3986
@@ -78,6 +78,53 @@ Identifiers" in the manual, for more.
These procedures should be used when accessing struct fields with type
`u' (unboxed). See "Structure Basics" in the manual, for full details.
+** Improved support for arrays with non-zero lower bounds
+Thanks to work by Daniel Llorens, Guile no longer exhibits buggy
+behavior in "sort" or "sort!" on arrays with non-zero lower dimension
+bounds. Arrays with non-zero lower dimension bounds are now allowed for
+array-slice-for-each, and truncated-print now supports bitvectors and
+arrays with non-zero lower bounds. General arrays are now supported as
+well for random:hollow-sphere!.
+** Add `uintptr_t' and `intptr_t' to FFI types.
+See "Foreign Types" in the manual for full details.
+* Compiler improvements
+** Improve speed of compiler backend for functions without loops
+This is a marginal speed improvement, especially for code compiled with
+optimization level "-O1" or below.
+** Disable slot pre-coloring for optimization level "-O1" or below
+This improves the speed of the compiler backend.
+** Improve complexity of constant subexpression elimination pass
+This is a large speed improvement when compiling large files with the
+default "-O2" pass.
+** CPS conversion avoids generating return arity adapters if possible
+In Guile, the expression in (define a EXP) may return 1 or more values.
+This value elision in "value" context is implicit earlier in the Guile
+compiler, in Tree-IL, but is made explicit in the CPS middle-end
+language by the addition of the equivalent of explicit call-with-values
+continuations that ignore additional values. However in many cases we
+can avoid generating these extra continuations if we know that EXP is
+single-valued, as is the case for example for constants or variable
+references or the like.
+Although these "arity-adapting continuations" would be removed by dead
+code elimination at optimization level "-O2" or above, they were still
+being needlessly generated in the first place. Guile now avoids
+generating them, speeding up not only the optimizer at -O2 but also the
+entire compiler pipeline at -O1 or below, as well as improving the
+residual code at -O1 or below.
* New deprecations
** Using `uri?' as a predicate on relative-refs deprecated
@@ -131,7 +178,7 @@ slot values manually on initialization.
** Struct fields with opaque ("o") protection deprecated
Struct fields are declared with a "protection", meaning read-only ('r'),
-read-write ('w'), or opaque ('o'). There is also "hidden" ('o') which
+read-write ('w'), or opaque ('o'). There is also "hidden" ('h') which
is read-write but which isn't initialized by arguments passed to
`make-struct/no-tail', but that's a detail. Opaque struct fields were
used to allocate storage in a struct that could only be accessed by C.
@@ -148,6 +195,47 @@ Use the new `struct-ref/unboxed' and `struct-set!/unboxed'
* Bug fixes
+** guile.m4 now checks for Guile 2.2 by default
+Before, it was still preferring Guile 2.0. It now also supports the
+Guile 3.0 prereleases.
+** Fix setting breakpoints from the REPL
+** Allow GDB support to be used with GDB linked against Guile 2.0.
+** Fix deadlock in `readdir' on error.
+** Fix crash on ia64 during thread switches.
+** Fix bug inferring range of `logand' computations with negative numbers
+** Fix bug when issuing HTTP requests through proxies.
+** Refactor weak hash table implementation to be more robust
+Guile 2.2's weak hash table implementation had three big problems. The
+first was a bug causing these tables to leak memory when they would be
+resized. The second was that the implementation was designed so that
+tables should be visited by the mark phase of the garbage collector in
+one big piece. This could cause the garbage collector to see too many
+newly marked objects at once, causing inefficies in garbage collection.
+Finally, the way in which lost weak references were ultimately removed
+from weak tables caused a race between the finalizer threads and the
+mutator threads, leading to unbounded excess space retention in
+pathological cases. All of this problems have been fixed.
+** Allow garbage collection of revealed file ports
+Guile can mark a file port as "revealed" if Scheme has been given access
+to the file descriptor. In that case, the file descriptor will not be
+closed when the port is garbage-collected. However we had a bug that
+for revealed ports prevented the port from ever being garbage-collected,
+leading to memory leaks of Guile's internal port buffers. This is now
+** Fix put-bytevector, unget-bytevector with start == bytevector length
** Enable GNU Readline 7.0's support for "bracketed paste".
Before, when pasting an expression that contained TAB characters into
- [Guile-commits] branch lightning updated (0a01963 -> 0d00164), Andy Wingo, 2018/08/07
- [Guile-commits] 02/58: doc: Update LALR URL., Andy Wingo, 2018/08/07
- [Guile-commits] 06/58: Make sure the return value of 'scm_crypt' is always initialized., Andy Wingo, 2018/08/07
- [Guile-commits] 03/58: Fix 'crypt' deadlock upon error., Andy Wingo, 2018/08/07
- [Guile-commits] 01/58: Update NEWS for 2.2.3,
Andy Wingo <=
- [Guile-commits] 07/58: No tabs in C code., Andy Wingo, 2018/08/07
- [Guile-commits] 04/58: 'load-thunk-from-memory' reports the correct error., Andy Wingo, 2018/08/07
- [Guile-commits] 13/58: srfi-18: 'thread-sleep!' timeout-as-a-number is relative., Andy Wingo, 2018/08/07
- [Guile-commits] 18/58: Fix typo in comment within numbers.c, Andy Wingo, 2018/08/07
- [Guile-commits] 08/58: Revert "Honor '%fresh-auto-compile'.", Andy Wingo, 2018/08/07
- [Guile-commits] 15/58: Fix eta-conversion edge cases in peval., Andy Wingo, 2018/08/07
- [Guile-commits] 17/58: Fix minor typo in the PEG documentation., Andy Wingo, 2018/08/07
- [Guile-commits] 20/58: Avoid inexact arithmetic in the type inferrer for 'sqrt'., Andy Wingo, 2018/08/07
- [Guile-commits] 16/58: Fix a few typos in the manual., Andy Wingo, 2018/08/07
- [Guile-commits] 05/58: compile: Load language modules upfront., Andy Wingo, 2018/08/07