Changes in 3.0.5 (since 3.0.4) * New interfaces and functionality ** O(1) compilation of `case' and related expressions Guile now optimizes chains of eq? comparisons to constants, resulting in O(1) dispatch time, regardless of the length of the chain. This optimization is also unlocked in many cases for `match' expressions with many similar clauses whose first differentiator are constants. ** New (ice-9 copy-tree) module This module includes the `copy-tree' procedure that was previously implemented in C and present in the default `(guile)' module. See "Copying" in the manual. ** New warning: use-before-definition This analysis, enabled at `-W1', issues warnings for programs that use top-level variables before they are defined. ** New warning: non-idempotent-definition This analysis, enabled at `-W1', issues warnings for programs that whose use of a variable is ambiguous. For example, in the program: (define saved-add +) (define + error) The intention would seem to be to "save" the value of the base `+' procedure, then override it locally. However if this program is ever loaded twice, then the second time it is loaded, `+' will be taken from the local binding instead of the import. Users that want this kind of behavior should either use lexical bindings instead of top-level bindings, or otherwise rename important clobbered bindings via modules. * New deprecations ** `copy-tree' in the default environment, and `scm_copy_tree' from C Import the `(ice-9 copy-tree)' module instead. ** `unbound-variable-analysis`, `macro-use-before-definition-analysis` These bindings from `(language tree-il analyze)' are replaced by the use-before-definition analysis, which powers a number of warnings. Use `make-use-before-definition-analysis', but note that these interfaces are quite intimate parts of the compiler! * Incompatible changes ** `copy' read-option removed This read option would include a copy of the source expression in the source-properties of each subexpression. This option has always been off by default and lost most of its use value with the switch to a compiler in Guile 2.0.
Also 3.0.7 version is already available.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b7a9bee4c957222fd8e19d636ecc684f18a72566 commit b7a9bee4c957222fd8e19d636ecc684f18a72566 Author: Sam James <sam@gentoo.org> AuthorDate: 2021-06-08 03:50:31 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-06-08 03:50:31 +0000 dev-scheme/guile: add 3.0.7 Closes: https://bugs.gentoo.org/768915 Signed-off-by: Sam James <sam@gentoo.org> dev-scheme/guile/Manifest | 1 + dev-scheme/guile/guile-3.0.7.ebuild | 70 +++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+)