1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +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 tables, most modules are actually _declarative_ -- they just define
functions and variables and provide them for other modules to use, and functions and variables and provide them for other modules to use, and
don't manipulate modules as first-class objects. See "Declarative 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 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 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 default -O2 optimization level. "Small" definitions are available for
cross-module inlining (-Oinlinable-exports, included at -O2). The cross-module inlining (-Oinlinable-exports, included at -O2). The
actual inlining decision is performed by Guile's partial evaluation pass actual inlining decision is performed by Guile's partial evaluation pass
(-Ocross-module-inlining, included at -O2 also), subject to effort and (the -Ocross-module-inlining modifier to -Opeval, included at -O2 also),
size growth counters. subject to effort and size growth counters.
Note however that as with macros, when a definition changes in module A, Note however that as with macros, when a definition changes in module A,
a separately compiled module B that uses that definition doesn't 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 ** Avoid the need for a custom GMP allocator
In Guile 3.0.6, we fixed a longstanding bug in Guile's use of the 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 library that Guile uses to implement bignums (large integers), GMP
release notes. However this left us with a suboptimal Guile, in which (https://gmplib.org). See the Guile 3.0.6 release notes. However this
each large integer had to have a finalizer. Finalizers take time and left us with a suboptimal Guile, in which each large integer had to have
space, and so they limit allocation rate, causing bignum performance to a finalizer to free the memory allocated by GMP. Finalizers take time
drop. Though you could set an environment variable to go back to the 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. older, faster behavior, it wasn't the default.
In Guile 3.0.8 we fix this problem comprehensively by avoiding embedding 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. 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 ** 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 ** `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 This function was added during the Guile 2.x series and was not
documented and is no longer used in Guile itself. 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 ** Deprecate internal contiguous array flag
We still reserve space for the flag to preserve ABI but it has no We still reserve space for the flag to preserve ABI but it has no