From ac0e91c42dac01b74f89260090273cdb7ff7e791 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Tue, 30 Sep 2008 20:29:35 +0200 Subject: [PATCH] (oop goops) works again, after (the-environment) removal * oop/goops.scm: Update so as not to use (the-environment), which no longer exists. I think that the speed characteristics are the same, broadly speaking. --- oop/goops.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/oop/goops.scm b/oop/goops.scm index c8f1f1837..3af60f937 100644 --- a/oop/goops.scm +++ b/oop/goops.scm @@ -79,6 +79,8 @@ :replace ( ) :no-backtrace) +(define *goops-module* (current-module)) + ;; First initialize the builtin part of GOOPS (%init-goops-builtins) @@ -1173,14 +1175,17 @@ (vector-set! methods index m) m))))) +;; eval tricks are apparently to make the accessors as fast as possible +;; for the evaluator. when goops gets vm-aware, this will be different. + (define (make-bound-check-get index) - (local-eval `(lambda (o) (@assert-bound-ref o ,index)) (the-environment))) + (eval `(lambda (o) (@assert-bound-ref o ,index)) *goops-module*)) (define (make-get index) - (local-eval `(lambda (o) (@slot-ref o ,index)) (the-environment))) + (eval `(lambda (o) (@slot-ref o ,index)) *goops-module*)) (define (make-set index) - (local-eval `(lambda (o v) (@slot-set! o ,index v)) (the-environment))) + (eval `(lambda (o v) (@slot-set! o ,index v)) *goops-module*)) (define bound-check-get (standard-accessor-method make-bound-check-get bound-check-get-methods))