summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2019-06-18 15:46:43 -0400
committerMark H Weaver <mhw@netris.org>2019-06-18 15:46:43 -0400
commit8e2919b9529f042c52241d22e1661a242853c2a6 (patch)
tree39f1fb3fbb7e2bbb47f8dea8633c94be92795d18 /NEWS
parentc5c9ec9b1be86b957297e96ad33ec4d07a640a29 (diff)
NEWS: Add more details.
* NEWS: Update text.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS64
1 files changed, 57 insertions, 7 deletions
diff --git a/NEWS b/NEWS
index 3f7db0b4b..9ceb254ad 100644
--- a/NEWS
+++ b/NEWS
@@ -69,23 +69,35 @@ encoding.
** Optimize fixnum exact integer square roots.
'exact-integer-sqrt' now avoids heap allocation when applied to a
-fixnum. 'sqrt' also avoids heap allocation when applied to a fixnum
+fixnum. 'sqrt' now avoids heap allocation when applied to a fixnum
that's a perfect square. Fewer heap allocations are now required when
-applying 'sqrt' to squares of exact rationals whose numerator or
+applying 'sqrt' to a square of an exact rational whose numerator or
denominator are fixnums.
** scm_mkstrport: Optimize the POS -> BYTE_POS conversion.
-** stexi->shtml: Add support for @i, @math, @tie and @dots.
+
+scm_mkstrport now avoids an unnecessary heap allocation and conversion
+to UTF-8, when STR is provided and POS is non-zero.
+
** SRFI-19: Support ~N in string->date.
** SRFI-19: Update the leap second table.
+** stexi->shtml: Add support for @i, @math, @tie and @dots.
+
** Define AT_SYMLINK_NOFOLLOW, AT_NO_AUTOMOUNT, and AT_EMPTY_PATH.
AT_SYMLINK_FOLLOW, AT_NO_AUTOMOUNT, and AT_EMPTY_PATH are now available
from Scheme, if supported on the platform.
-** time: Support expressions that return any number of values.
-** time: Use 'syntax-rules' instead of 'define-macro'.
+** Improvements to the 'time' macro from (ice-9 time).
+
+The 'time' macro now supports expressions that return multiple values.
+It has also been rewritten as a hygienic 'syntax-rules' macro.
+Previously, it was built using 'define-macro', and was therefore
+unhygienic. This is not merely an internal implementation detail, but
+is potentially relevant to any user of the 'time' macro, since it could
+lead to unintended variable capture and other problems.
+
** Clarify the documentation for 'nil?'.
** Clarify the manual's "Processes" section.
** Avoid 'with-latin1-locale' in binary I/O tests.
@@ -95,6 +107,10 @@ from Scheme, if supported on the platform.
** Avoid regexp ranges in HTTP inter-protocol exploitation check.
+The regular expression used to check for HTTP inter-protocol
+exploitation attacks previously used a character range '0-9', whose
+meaning depends on the current locale. This has now been fixed.
+
** Fixes to the SRFI-19 time/date library.
*** Fix TAI->UTC conversions, leap second handling, etc.
@@ -104,16 +120,50 @@ from Scheme, if supported on the platform.
*** Check for incompatible types in time comparisons.
** Improve overflow checks in bytevector, string, and I/O operations.
+
+Several numerical computations, performed using primitive C arithmetic
+in Guile's core bytevector, string, and I/O operations, have been
+rewritten to avoid overflows.
+
** Fix type inferencing for 'nil?' and 'null?' predicates.
+
+Previously, the compiler would sometimes miscompile certain combinations
+of 'nil?' and 'null?' predicates present within the same top-level form.
+See <https://bugs.gnu.org/33036>.
+
** Fix 'atomic-box-compare-and-swap!'.
+
+Previously, 'atomic-box-compare-and-swap!' would sometimes spuriously
+fail on architectures based on Load-Linked/Store-Conditional (LL/SC)
+synchronication primitives (e.g. ARM, PowerPC, and MIPS) in a way that
+was undetectable by the caller. See <https://bugs.gnu.org/32786>.
+
** Make URI handling locale independent.
+
+Previously, procedures in (web uri) would misbehave in some locales
+including sv_SE. See <https://bugs.gnu.org/35785>.
+
** Strings, i18n: Limit the use of alloca to approximately 8 kilobytes.
+
+Previously, 'string-locale-ci=?', 'string-locale-ci<?',
+'string-locale<?', 'string-locale-{downcase,upcase,titlecase}' and
+'string-normalize-{nfd,nfc,nfkd,nfkc}' would overflow the C stack when
+applied to very large strings.
+
+** Fix documentation of R6RS 'binary-port?' to reflect reality.
+
+Previously, the documentation incorrectly stated that 'binary-port?'
+always returns #t.
+
** Avoid passing NULL to 'memcpy' and 'memcmp'.
-** scm_to_stringn: Avoid passing NULL to c_strcasecmp.
+
+Previously, NULL was sometimes passed to 'memcpy' or 'memcmp' when the
+size argument was 0.
+
** Save and restore errno in the signal handler.
+** scm_to_stringn: Avoid passing NULL to c_strcasecmp.
** r6rs-ports: Accept 'port-position' values greater than 2^32.
** r6rs-ports: 'put-bytevector' accepts 64-bit integers.
-** Fix documentation of R6RS 'binary-port?' to reflect reality.
** Fix R6RS call-with-{input,output}-file to open textual ports.
** Update (ice-9 match) to include selected bug fixes from upstream.
** open-process: Fix dup(2) and execvp(2) error handling.