From 3d699932952c795f877a6e84b27c645d488ced50 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 10 Feb 2022 20:54:16 +0100 Subject: [PATCH] Minor NEWS tweaks * NEWS: Minor tweaks. --- NEWS | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/NEWS b/NEWS index 7b2225b22..288db26bf 100644 --- a/NEWS +++ b/NEWS @@ -15,7 +15,7 @@ Although historically Guile has treated modules as glorified hash tables, most modules are actually _declarative_ -- they just define functions and variables and provide them for other modules to use, and don't manipulate modules as first-class objects. See "Declarative -Modules" in the manual. +Modules" in the manual, for more discussion. Since version 3.0.0, Guile has taken advantage of declarative semantics to allow a top-level definition to be inlined within its uses in the @@ -27,8 +27,8 @@ This facility is mostly transparent to the user and is enabled at the default -O2 optimization level. "Small" definitions are available for cross-module inlining (-Oinlinable-exports, included at -O2). The actual inlining decision is performed by Guile's partial evaluation pass -(-Ocross-module-inlining, included at -O2 also), subject to effort and -size growth counters. +(the -Ocross-module-inlining modifier to -Opeval, included at -O2 also), +subject to effort and size growth counters. Note however that as with macros, when a definition changes in module A, a separately compiled module B that uses that definition doesn't @@ -50,11 +50,12 @@ or not. ** Avoid the need for a custom GMP allocator In Guile 3.0.6, we fixed a longstanding bug in Guile's use of the -library that Guile uses to implement bignums, GMP. See the Guile 3.0.6 -release notes. However this left us with a suboptimal Guile, in which -each large integer had to have a finalizer. Finalizers take time and -space, and so they limit allocation rate, causing bignum performance to -drop. Though you could set an environment variable to go back to the +library that Guile uses to implement bignums (large integers), GMP +(https://gmplib.org). See the Guile 3.0.6 release notes. However this +left us with a suboptimal Guile, in which each large integer had to have +a finalizer to free the memory allocated by GMP. Finalizers take time +and space, and so they limit allocation rate, causing bignum performance +to drop. Though you could set an environment variable to go back to the older, faster behavior, it wasn't the default. In Guile 3.0.8 we fix this problem comprehensively by avoiding embedding @@ -112,7 +113,7 @@ Thanks to Maxime Devos. This meta-command is like ,optimize, but at a lower level. -** Improve alias analysis in CSE +** Improve alias analysis in common subexpression elimination ** Avoid argument-count checks for well-typed calls to known procedures @@ -155,18 +156,14 @@ returns false) to functions `vector-move-left!', `vector-move-right!', ** `scm_from_contiguous_typed_array' is deprecated -This function was undocumented. - -** Deprecate the "simple vector" concept - -This concept meant to indicate "vectors which aren't array slices". -Deprecate scm_is_simple_vector; instead use scm_is_vector. - -** Deprecate `scm_from_contiguous_typed_array' - This function was added during the Guile 2.x series and was not documented and is no longer used in Guile itself. +** Deprecate the "simple vector" concept, `scm_is_simple_vector' + +This concept meant to indicate "vectors which aren't array slices". Use +scm_is_vector. + ** Deprecate internal contiguous array flag We still reserve space for the flag to preserve ABI but it has no