fix boot program detection, which in turn makes `make-stack' actually work
authorAndy Wingo <wingo@pobox.com>
Thu, 5 Feb 2009 12:44:06 +0000 (13:44 +0100)
committerAndy Wingo <wingo@pobox.com>
Thu, 5 Feb 2009 12:44:06 +0000 (13:44 +0100)
commit3b9e095b44a618b9e5781adfaa287e14b0f44d03
tree7ca239803d487641aa8d6b91649b71a96dd40762
parente06e857c8dc1f9f8c25bc4d3e40ce5bf351753d5
fix boot program detection, which in turn makes `make-stack' actually work

* libguile/programs.h (SCM_F_PROGRAM_IS_BOOT, SCM_PROGRAM_IS_BOOT): Flags
  for determining if a program is a boot program. It turns out that our
  heuristics e.g. in stacks.c would catch non-boot programs, like
  programs that end with (goto/args 1), because the 1 is the same byte as
  `halt'. That took a while to find...

* libguile/stacks.c (stack_depth, read_frames): Use the new boot prog
  macros.
  (scm_make_stack): Assert that we read the number of frames that we said
  we would.

* libguile/vm.c (really_make_boot_program): Mark boot programs
  appropriately.
libguile/programs.h
libguile/stacks.c
libguile/vm.c