1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00

Minor NEWS tweaks

* NEWS: Minor tweaks.
This commit is contained in:
Andy Wingo 2022-02-10 20:54:16 +01:00
parent 27b86a6f32
commit 3d69993295

33
NEWS
View file

@ -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