From ca025920e52d40a678bf95be3480a5e6d46149e5 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 7 Jan 2021 12:12:00 +0100 Subject: Update NEWS * NEWS: Update. --- NEWS | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 694449202..6f4f6dac7 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ Guile NEWS --- history of user-visible changes. -Copyright (C) 1996-2020 Free Software Foundation, Inc. +Copyright (C) 1996-2021 Free Software Foundation, Inc. See the end for copying conditions. Please send Guile bug reports to bug-guile@gnu.org. @@ -16,6 +16,45 @@ 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 -- cgit v1.2.1