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:
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
|
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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue