[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, master, updated. release_1-9-6-112-gfc
From: |
Andy Wingo |
Subject: |
[Guile-commits] GNU Guile branch, master, updated. release_1-9-6-112-gfc76486 |
Date: |
Sat, 09 Jan 2010 20:47:55 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=fc7648637b356078988ca1ed598e74c394beeaaa
The branch, master has been updated
via fc7648637b356078988ca1ed598e74c394beeaaa (commit)
via 37e9bc8ae48ae2c014fd4f63fc37b18348d05513 (commit)
from 391d29029d69704bc6bd541d80209532e582c3c0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit fc7648637b356078988ca1ed598e74c394beeaaa
Author: Andy Wingo <address@hidden>
Date: Sat Jan 9 21:48:16 2010 +0100
fix bug in subr-call and smob-call
* libguile/vm-i-system.c (subr-call, smob-call): Unlike the previous
situation, in which a call to a subr or a smob didn't actually build a
frame, we no longer need to explicitly pop the procedure and its
arguments. Indeed the procedure and its arguments must remain on the
stack, for hooks and ticks and such always to see frames with valid
procedures. Two lines out, two bugs less, and faster to boot.
commit 37e9bc8ae48ae2c014fd4f63fc37b18348d05513
Author: Andy Wingo <address@hidden>
Date: Sat Jan 9 20:40:36 2010 +0100
Narrow one more frame in debug.scm:debug-pre-unwind-handler
* module/system/vm/debug.scm (debug-pre-unwind-handler): Narrow two
frames instead of stack-reffing past one. The second frame is
necessary, now that make-stack itself is on the stack.
-----------------------------------------------------------------------
Summary of changes:
libguile/vm-i-system.c | 2 --
module/system/vm/debug.scm | 6 +++---
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
index cc32804..2e1dae9 100644
--- a/libguile/vm-i-system.c
+++ b/libguile/vm-i-system.c
@@ -887,7 +887,6 @@ VM_DEFINE_INSTRUCTION (80, subr_call, "subr-call", 1, -1,
-1)
}
NULLSTACK_FOR_NONLOCAL_EXIT ();
- DROPN (nargs + 1); /* drop args and procedure */
if (SCM_UNLIKELY (SCM_VALUESP (ret)))
{
@@ -935,7 +934,6 @@ VM_DEFINE_INSTRUCTION (81, smob_call, "smob-call", 1, -1,
-1)
}
NULLSTACK_FOR_NONLOCAL_EXIT ();
- DROPN (nargs + 1); /* drop args and procedure */
if (SCM_UNLIKELY (SCM_VALUESP (ret)))
{
diff --git a/module/system/vm/debug.scm b/module/system/vm/debug.scm
index 938dca7..935a938 100644
--- a/module/system/vm/debug.scm
+++ b/module/system/vm/debug.scm
@@ -367,7 +367,7 @@ With an argument, select a frame by index, then show it."
;; (state associated with vm ?)
(define (debug-pre-unwind-handler key . args)
- (let ((stack (make-stack #t)))
+ (let ((stack (make-stack #t debug-pre-unwind-handler)))
(pmatch args
((,subr ,msg ,args . ,rest)
(format #t "Throw to key `~a':\n" key)
@@ -375,6 +375,6 @@ With an argument, select a frame by index, then show it."
(else
(format #t "Throw to key `~a' with args `~s'." key args)))
(format #t "Entering the debugger. Type `bt' for a backtrace or `c' to
continue.\n")
- (run-debugger (stack-ref stack 1)))
- (save-stack 1)
+ (run-debugger (stack-ref stack 0)))
+ (save-stack debug-pre-unwind-handler)
(apply throw key args))
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, master, updated. release_1-9-6-112-gfc76486,
Andy Wingo <=