diff options
author | Andy Wingo <wingo@pobox.com> | 2015-11-27 15:54:51 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2015-12-01 11:30:54 +0100 |
commit | 58153e3a08c89fd9cc84dbf65e1df27119986cca (patch) | |
tree | 3e77d5e70d1cfd5227089ee667ae7367b85be87a /NEWS | |
parent | 3582787cb032da4d3a722bfb00882e6d992b0c87 (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-- | NEWS | 23 |
1 files changed, 22 insertions, 1 deletions
@@ -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 |