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:
parent
27b86a6f32
commit
3d69993295
1 changed files with 15 additions and 18 deletions
33
NEWS
33
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue