summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2015-11-27 15:54:51 +0100
committerAndy Wingo <wingo@pobox.com>2015-12-01 11:30:54 +0100
commit58153e3a08c89fd9cc84dbf65e1df27119986cca (patch)
tree3e77d5e70d1cfd5227089ee667ae7367b85be87a /NEWS
parent3582787cb032da4d3a722bfb00882e6d992b0c87 (diff)
Remove frame-procedure
* libguile/frames.h: * libguile/frames.c (scm_frame_procedure): Remove. * test-suite/tests/eval.test ("stacks"): Adapt test. * NEWS: Add news item. * doc/ref/api-debug.texi (Frames): Document frame-procedure-name instead of frame-procedure.
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS23
1 files changed, 22 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 604113470..ce3887920 100644
--- a/NEWS
+++ b/NEWS
@@ -6,7 +6,28 @@ Please send Guile bug reports to bug-guile@gnu.org.
-Changes in 2.1.1 (changes since the 2.0.x series):
+Changes in 2.1.2 (changes since the 2.1.1 alpha release):
+
+* Incompatible changes
+
+** Remove frame-procedure
+
+Several optimizations in Guile make `frame-procedure' an interface that
+we can no longer support. For background, `frame-procedure' used to
+return the value at slot 0 in a frame, which usually corresponds to the
+SCM value of the procedure being applied. However it could be that this
+slot is re-used for some other value, because the closure was not needed
+in the function. Such a re-use might even be for an untagged value, in
+which case treating slot 0 as a SCM value is quite dangerous. It's also
+possible that so-called "well-known" closures (closures whose callers
+are all known) are optimized in such a way that slot 0 is not a
+procedure but some optimized representation of the procedure's free
+variables. Instead, developers building debugging tools that would like
+access to `frame-procedure' are invited to look at the source for the
+`(system vm frame)' for alternate interfaces.
+
+
+Changes in 2.1.x (changes since the 2.0.x series):
* Notable changes