[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-3-5-g9368
From: |
Neil Jerram |
Subject: |
[Guile-commits] GNU Guile branch, master, updated. release_1-9-3-5-g93683f9 |
Date: |
Wed, 16 Sep 2009 23:20:47 +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=93683f9bb16680f66c0784b14ca57bb3b5816ce2
The branch, master has been updated
via 93683f9bb16680f66c0784b14ca57bb3b5816ce2 (commit)
via ba20f78a6c91e0535d205f7f5291d860c1bcbc27 (commit)
via 931c82f5b02213c8e9e1cca2b21672b809970e18 (commit)
via a29c00447ba91458e35f81c7715c333ff1641018 (commit)
from eb350124a85dd4daf39bacbdc50452ef87a33a43 (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 93683f9bb16680f66c0784b14ca57bb3b5816ce2
Author: Neil Jerram <address@hidden>
Date: Thu Sep 17 00:17:58 2009 +0100
Convenience for running GDB on Guile in Emacs
* meta/gdb-uninstalled-guile.in: Add (in a comment) an elisp form that
can be evaluated to run GDB on Guile in Emacs.
commit ba20f78a6c91e0535d205f7f5291d860c1bcbc27
Author: Neil Jerram <address@hidden>
Date: Thu Sep 17 00:14:16 2009 +0100
Fix omission of VM frames from backtrace
From the time when a #<program> was a SMOB, really_make_boot_program
in vm.c was still using SCM_SET_SMOB_FLAGS to set the
SCM_F_PROGRAM_IS_BOOT flag - which meant that it was setting flag
1<<32 :-) which obviously was then missed by the SCM_PROGRAM_IS_BOOT
calls in stacks.c.
* libguile/programs.h (SCM_F_PROGRAM_IS_BOOT): Use a less significant
bit for this flag, now that programs use a tc7 type.
* libguile/vm.c (really_make_boot_program): Don't use
SCM_SET_SMOB_FLAGS, now that programs aren't SMOBs.
commit 931c82f5b02213c8e9e1cca2b21672b809970e18
Author: Neil Jerram <address@hidden>
Date: Thu Sep 17 00:05:06 2009 +0100
Fix incorrect stack count warnings
* libguile/stacks.c (stack_depth): Decrement depth count for a
macro-expansion frame. (Missing this decrement will cause a "stack
count incorrect" warning but is actually benign, as it only means
that scm_make_stack allocates a bit more space for the stack than it
really needs.)
(read_frames): Increment count of remaining unused frames, when
cutting out a macro transformer application frame. (Missing this
increment could cause the "stack count incorrect" warning, and could
make read_frames think it's filled up all the available stack frames
when there's actually still one frame unused; this wasn't benign,
because it could cause information to be missing from a stack
trace.)
commit a29c00447ba91458e35f81c7715c333ff1641018
Author: Neil Jerram <address@hidden>
Date: Wed Sep 16 23:59:15 2009 +0100
Remove unhittable else branch for nonexistent type of debug frame
* libguile/stacks.c (stack_depth): Remove unhittable else branch
apparently catering to a kind of frame that isn't an eval, apply or
void frame - in fact there are no other kinds of frames.
-----------------------------------------------------------------------
Summary of changes:
libguile/programs.h | 2 +-
libguile/stacks.c | 10 +++++++---
libguile/vm.c | 2 +-
meta/gdb-uninstalled-guile.in | 3 +++
4 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/libguile/programs.h b/libguile/programs.h
index d52631f..c846c1b 100644
--- a/libguile/programs.h
+++ b/libguile/programs.h
@@ -26,7 +26,7 @@
* Programs
*/
-#define SCM_F_PROGRAM_IS_BOOT (1<<16)
+#define SCM_F_PROGRAM_IS_BOOT 0x100
#define SCM_PROGRAM_P(x) (!SCM_IMP (x) && SCM_TYP7(x) == scm_tc7_program)
#define SCM_PROGRAM_OBJCODE(x) (SCM_CELL_OBJECT_1 (x))
diff --git a/libguile/stacks.c b/libguile/stacks.c
index 45566ca..a701863 100644
--- a/libguile/stacks.c
+++ b/libguile/stacks.c
@@ -143,6 +143,11 @@ stack_depth (scm_t_debug_frame *dframe, scm_t_ptrdiff
offset, SCM vmframe,
{
scm_t_debug_info *info = RELOC_INFO (dframe->info, offset);
scm_t_debug_info *vect = RELOC_INFO (dframe->vect, offset);
+ /* If current frame is a macro during expansion, we should
+ skip the previously recorded macro transformer
+ application frame. */
+ if (SCM_MACROEXPP (*dframe) && n > 0)
+ --n;
n += (info - vect) / 2 + 1;
/* Data in the apply part of an eval info frame comes from previous
stack frame if the scm_t_debug_info vector is overflowed. */
@@ -151,7 +156,7 @@ stack_depth (scm_t_debug_frame *dframe, scm_t_ptrdiff
offset, SCM vmframe,
&& !SCM_UNBNDP (info[1].a.proc))
++n;
}
- else if (SCM_APPLYFRAMEP (*dframe))
+ else
{
scm_t_debug_info *vect = RELOC_INFO (dframe->vect, offset);
if (SCM_PROGRAM_P (vect[0].a.proc))
@@ -177,8 +182,6 @@ stack_depth (scm_t_debug_frame *dframe, scm_t_ptrdiff
offset, SCM vmframe,
else
++n; /* increment for non-program apply frame */
}
- else
- ++n;
}
if (dframe && SCM_VOIDFRAMEP (*dframe))
*id = RELOC_INFO(dframe->vect, offset)[0].id;
@@ -282,6 +285,7 @@ read_frames (scm_t_debug_frame *dframe, scm_t_ptrdiff
offset,
{
*(iframe - 1) = *iframe;
--iframe;
+ ++n;
}
info = RELOC_INFO (dframe->info, offset);
vect = RELOC_INFO (dframe->vect, offset);
diff --git a/libguile/vm.c b/libguile/vm.c
index 4e4a361..d41c8cd 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -203,7 +203,7 @@ really_make_boot_program (long nargs)
sizeof (struct scm_objcode) + sizeof (text));
ret = scm_make_program (scm_bytecode_to_objcode (u8vec),
SCM_BOOL_F, SCM_BOOL_F);
- SCM_SET_SMOB_FLAGS (ret, SCM_F_PROGRAM_IS_BOOT);
+ SCM_SET_CELL_WORD_0 (ret, SCM_CELL_WORD_0 (ret) | SCM_F_PROGRAM_IS_BOOT);
return ret;
}
diff --git a/meta/gdb-uninstalled-guile.in b/meta/gdb-uninstalled-guile.in
index d55e215..d1604cc 100644
--- a/meta/gdb-uninstalled-guile.in
+++ b/meta/gdb-uninstalled-guile.in
@@ -38,3 +38,6 @@ XDG_CACHE_HOME=${top_builddir}/cache
export XDG_CACHE_HOME
exec ${top_builddir}/meta/uninstalled-env libtool --mode=execute \
gdb --args ${top_builddir}/libguile/guile "$@"
+
+# And for GDB in Emacs, evaluate this form:
+# (gdb "@top_builddir_absolute@/meta/uninstalled-env ./libtool --mode=execute
gdb --args @top_builddir_absolute@/libguile/guile")
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, master, updated. release_1-9-3-5-g93683f9,
Neil Jerram <=