diff options
author | Mark H Weaver <mhw@netris.org> | 2019-06-18 15:46:43 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2019-06-18 15:46:43 -0400 |
commit | 8e2919b9529f042c52241d22e1661a242853c2a6 (patch) | |
tree | 39f1fb3fbb7e2bbb47f8dea8633c94be92795d18 | |
parent | c5c9ec9b1be86b957297e96ad33ec4d07a640a29 (diff) |
NEWS: Add more details.
* NEWS: Update text.
-rw-r--r-- | NEWS | 64 |
1 files changed, 57 insertions, 7 deletions
@@ -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. |