summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2022-02-10 20:54:16 +0100
committerAndy Wingo <wingo@pobox.com>2022-02-10 20:54:16 +0100
commit3d699932952c795f877a6e84b27c645d488ced50 (patch)
treeae51fb38f76604c36cbdd1c43182eda97980e4e5 /NEWS
parent27b86a6f32d226446b42250cf6d1261127646c93 (diff)
downloadguile-3d699932952c795f877a6e84b27c645d488ced50.tar.gz
Minor NEWS tweaks
* NEWS: Minor tweaks.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS33
1 files 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