X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/8fe5976b95f291159b7d386000731fa2600050ce..1f7d590d9c7b87442c8d8b6424ed4f769d377692:/src/builtin.lisp diff --git a/src/builtin.lisp b/src/builtin.lisp index 395d2cf..5aad5f5 100644 --- a/src/builtin.lisp +++ b/src/builtin.lisp @@ -61,7 +61,7 @@ ',name (lambda (,classvar) (make-sod-slot ,classvar ,name (c-type ,type) - (make-property-set :lisp-class 'sod-class-slot + (make-property-set :slot-class 'sod-class-slot :initializer-function (lambda (,class) ,init) @@ -95,7 +95,7 @@ static void *~A__imprint(void *p) { struct ~A *sod__obj = p; - ~:{sod__obj->~A.~A._vt = &~A;~:^~% ~} + ~:{sod__obj->~A.~A._vt = &~A.~A;~:^~% ~} return (p); }~2%" class @@ -105,7 +105,8 @@ static void *~A__imprint(void *p) (tail (ichain-tail ichain))) (list (sod-class-nickname head) (sod-class-nickname tail) - (vtable-name class head)))) + (vtable-name class head) + (sod-class-nickname tail)))) (ilayout-ichains ilayout))))) (define-class-slot "init" (class stream) @@ -292,9 +293,11 @@ static const SodClass *const ~A__cpl[] = { (finalize-sod-class class) (add-to-module module class)))) +(export '*builtin-module*) (defvar *builtin-module* nil "The builtin module.") +(export 'make-builtin-module) (defun make-builtin-module () "Construct the builtin module. @@ -329,4 +332,7 @@ static const SodClass *const ~A__cpl[] = { (bootstrap-classes module)) (setf *builtin-module* module))) +(define-clear-the-decks builtin-module + (unless *builtin-module* (make-builtin-module))) + ;;;----- That's all, folks --------------------------------------------------