mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-14 23:50:19 +02:00
* eval.c (SCM_CEVAL, scm_apply): Completed GOOPS support code;
Some indentation fixes. * objects.h (SCM_METACLASS_STANDARD_LAYOUT): Printer field is no longer a user field; New field: class_flags. * objets.c, objects.h: New metaclass: scm_metaclass_operator.
This commit is contained in:
parent
e0d86ad2fb
commit
da7f71d7d5
4 changed files with 301 additions and 80 deletions
|
@ -40,9 +40,9 @@
|
|||
* If you do not wish that, delete this exception notice. */
|
||||
|
||||
|
||||
/* This file contains those minimal pieces of the Guile Object
|
||||
* Oriented Programming System which needs to be included in
|
||||
* libguile.
|
||||
/* This file and objects.h contains those minimal pieces of the Guile
|
||||
* Object Oriented Programming System which need to be included in
|
||||
* libguile. See the comments in objects.h.
|
||||
*/
|
||||
|
||||
#include "_scm.h"
|
||||
|
@ -53,7 +53,7 @@
|
|||
|
||||
|
||||
SCM scm_metaclass_standard;
|
||||
SCM *scm_entity_vtable;
|
||||
SCM scm_metaclass_operator;
|
||||
|
||||
void
|
||||
scm_init_objects ()
|
||||
|
@ -63,6 +63,11 @@ scm_init_objects ()
|
|||
SCM mt = scm_make_vtable_vtable (ml, SCM_INUM0,
|
||||
SCM_LIST3 (SCM_BOOL_F, SCM_EOL, SCM_EOL));
|
||||
|
||||
SCM os = scm_makfrom0str (SCM_METACLASS_OPERATOR_LAYOUT);
|
||||
SCM ol = scm_make_struct_layout (os);
|
||||
SCM ot = scm_make_vtable_vtable (ol, SCM_INUM0,
|
||||
SCM_LIST3 (SCM_BOOL_F, SCM_EOL, SCM_EOL));
|
||||
|
||||
SCM es = scm_makfrom0str (SCM_ENTITY_LAYOUT);
|
||||
SCM el = scm_make_struct_layout (es);
|
||||
SCM et = scm_make_struct (mt, SCM_INUM0,
|
||||
|
@ -70,6 +75,8 @@ scm_init_objects ()
|
|||
|
||||
scm_sysintern ("<standard-metaclass>", mt);
|
||||
scm_metaclass_standard = mt;
|
||||
scm_sysintern ("<operator-metaclass>", ot);
|
||||
scm_metaclass_operator = ot;
|
||||
SCM_SET_CLASS_FLAGS (et, SCM_CLASSF_OPERATOR | SCM_CLASSF_ENTITY);
|
||||
scm_sysintern ("<entity-class>", et);
|
||||
scm_entity_vtable = SCM_STRUCT_DATA (et);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue