programs have their own tc7 now
authorAndy Wingo <wingo@pobox.com>
Thu, 20 Aug 2009 12:27:38 +0000 (14:27 +0200)
committerAndy Wingo <wingo@pobox.com>
Thu, 20 Aug 2009 16:52:51 +0000 (18:52 +0200)
commit2fb924f64f6cf47a9b4d6e8a22433ac2c5739379
treedfe2aa5484ef14797a7c659f2b0cd873d54dd37b
parentcdde57b2f11a6c28518aebed234b98ce5bd7131f
programs have their own tc7 now

* libguile/tags.h (scm_tc7_program):
* libguile/programs.h: Programs now have their own tc7 code. Fix up the
  macros appropriately.

* libguile/programs.c: Remove smobby bits, leaving marking, printing,
  and application for other parts of Guile.

* libguile/debug.c (scm_procedure_source):
* libguile/eval.c (scm_trampoline_0, scm_trampoline_1)
  (scm_trampoline_2): Add cases for tc7_program.
* libguile/eval.i.c (CEVAL, SCM_APPLY):
* libguile/evalext.c (scm_self_evaluating_p):
* libguile/gc-card.c (scm_i_sweep_card, scm_i_tag_name):
* libguile/gc-mark.c (1):
* libguile/print.c (iprin1):
* libguile/procs.c (scm_procedure_p, scm_thunk_p)
* libguile/vm-i-system.c (make-closure): Adapt to new procedure
  representation.

* libguile/procprop.c (scm_i_procedure_arity): Do the right thing for
  programs.
* test-suite/tests/procprop.test ("procedure-arity"): Arity test now
  succeeds.

* libguile/goops.c (scm_class_of): Programs now belong to the class
  <procedure>, not a smob class.

* libguile/vm.h (struct vm, struct vm_cont):
* libguile/vm-engine.c (vm_engine):
* libguile/frames.h (SCM_FRAME_BYTE_CAST, struct vm_frame):
* libguile/frames.c (scm_c_make_vm_frame): Fix usages of scm_byte_t,
  changing them to scm_t_uint8.
19 files changed:
libguile/debug.c
libguile/eval.c
libguile/eval.i.c
libguile/evalext.c
libguile/frames.c
libguile/frames.h
libguile/gc-card.c
libguile/gc-mark.c
libguile/goops.c
libguile/print.c
libguile/procprop.c
libguile/procs.c
libguile/programs.c
libguile/programs.h
libguile/tags.h
libguile/vm-engine.c
libguile/vm-i-system.c
libguile/vm.h
test-suite/tests/procprop.test