Use a vtable bit to mark <slot> instances
authorAndy Wingo <wingo@pobox.com>
Sun, 18 Jan 2015 20:01:31 +0000 (21:01 +0100)
committerAndy Wingo <wingo@pobox.com>
Fri, 23 Jan 2015 15:16:03 +0000 (16:16 +0100)
commite437c50b88bc540b09763df52331c096f6ec8533
treee3ca2d8b4583b6bed3cab6c5f78171519feee860
parent568174d173e994eaac470123bb769a8847be11c7
Use a vtable bit to mark <slot> instances

* libguile/goops.h (SCM_VTABLE_FLAG_GOOPS_SLOT): Allocate another vtable
  flag to indicate that instances of this vtable are slots.
* libguile/goops.c (scm_init_goops_builtins): Export
  vtable-flag-goops-slot to Scheme.

* module/oop/goops.scm (<slot>, slot?, make-standard-class, initialize):
  Arrange for <slot> classes to have the vtable-flag-goops.slot.
  (build-slots-list): Ensure that <slot> slots are statically laid out.
libguile/goops.c
libguile/goops.h
module/oop/goops.scm