guile-commits
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]