arities can have noncontiguous starts and ends
authorAndy Wingo <wingo@pobox.com>
Sun, 25 Oct 2009 12:01:57 +0000 (13:01 +0100)
committerAndy Wingo <wingo@pobox.com>
Sun, 25 Oct 2009 12:12:27 +0000 (13:12 +0100)
commitdf435c83072a79d9fdacbc57d9925ab7c0be5deb
tree13c26c148cf3bd7c9b72ec9788cd3efd128bb49e
parentc89222f8ceb038130c8a3dcdc96f747178ce9607
arities can have noncontiguous starts and ends

* module/language/glil/compile-assembly.scm (open-arity, close-arity)
  (begin-arity, glil->assembly): Refactor so that arities can have
  noncontiguous starts and ends. So within a prelude there is no arity
  -- only before (the previous arity) or after (the new arity).

* module/system/vm/program.scm (arity:end): Add this private accessor.
  Arities are expected to be in the new format. While not a change in
  objcode format, it is an incompatible change, so I'll bump the objcode
  cookie.
  (program-arity): Check that the ip is within both bounds of the arity.

* libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump.

* libguile/programs.c (scm_i_program_arity): Update for new arity format.

* module/system/vm/frame.scm (vm-frame-arguments): Avoid throwing an
  error in this function, which is called from the backtrace code.
libguile/_scm.h
libguile/programs.c
module/language/glil/compile-assembly.scm
module/system/vm/frame.scm
module/system/vm/program.scm