diff options
author | Andy Wingo <wingo@pobox.com> | 2008-10-24 11:56:31 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2008-10-25 22:58:48 +0200 |
commit | 21497600d23534b2878f82401ffaf5551fdb6efd (patch) | |
tree | e4009ae6458a6fc517d92709cde38a9a89fea128 /oop/goops.scm | |
parent | ae9ce4b786dd76d85061c5a3ceb3bb96b5ba6115 (diff) | |
download | guile-21497600d23534b2878f82401ffaf5551fdb6efd.tar.gz |
add `formals', `body', and `compile-env' slots to <method>
* ice-9/boot-9.scm (compile-time-environment): Return #f instead of
erroring under the interpreter, a bit more sane.
* libguile/goops.c (create_standard_classes):
* libguile/goops.h (scm_si_formals, scm_si_body, scm_si_compile_env):
* oop/goops.scm (method, initialize): Add `formals', `body', and
`compile-env' slots to <method>.
Diffstat (limited to 'oop/goops.scm')
-rw-r--r-- | oop/goops.scm | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/oop/goops.scm b/oop/goops.scm index 2a250c7fa..406210891 100644 --- a/oop/goops.scm +++ b/oop/goops.scm @@ -484,6 +484,9 @@ ls)))) `(make <method> #:specializers (cons* ,@(specializers args)) + #:formals ',(formals args) + #:body ',body + #:compile-env (compile-time-environment) #:procedure (lambda ,(formals args) ,@(if (null? body) (list *unspecified*) @@ -1427,7 +1430,11 @@ (slot-set! method 'specializers (get-keyword #:specializers initargs '())) (slot-set! method 'procedure (get-keyword #:procedure initargs dummy-procedure)) - (slot-set! method 'code-table '())) + (slot-set! method 'code-table '()) + (slot-set! method 'formals (get-keyword #:formals initargs '())) + (slot-set! method 'body (get-keyword #:body initargs '())) + (slot-set! method 'compile-env (get-keyword #:compile-env initargs #f))) + (define-method (initialize (obj <foreign-object>) initargs)) |