I'm trying to find place where initialization is at the top-level, but
doesn't have to be. There's an instance in the class system.

Here's a patch that hides it. It is tested. Anyone object to a commit?

Index: private/class-internal.ss
===================================================================
--- private/class-internal.ss   (revision 14649)
+++ private/class-internal.ss   (working copy)
@@ -2543,10 +2543,14 @@
                  (make-struct-type name type 0 0 #f null insp)])
       make-))

-  (define object<%> ((make-naming-constructor struct:interface
'interface:object%)
-                    'object% null #f null #f null))
-  (setup-all-implemented! object<%>)
-  (define object% ((make-naming-constructor struct:class 'class:object%)
+  (define object<%>
+    (local [(define object<%>
+              ((make-naming-constructor struct:interface 'interface:object%)
+                    'object% null #f null #f null))]
+      (setup-all-implemented! object<%>)
+      object<%>))
+  (define object%
+    (local [(define object% ((make-naming-constructor struct:class
'class:object%)
                   'object%
                   0 (vector #f)
                   object<%>
@@ -2571,17 +2575,18 @@
                   (lambda (obj) #(()))        ; serialize
                   (lambda (obj args) (void))  ; deserialize-fixup

-                  #t)) ; no super-init
+                  #t))] ; no super-init

-  (vector-set! (class-supers object%) 0 object%)
-  (let*-values ([(struct:obj make-obj obj? -get -set!)
-                 (make-struct-type 'object #f 0 0 #f (list (cons
prop:object object%)) #f)])
-    (set-class-struct:object! object% struct:obj)
-    (set-class-make-object! object% make-obj))
-  (set-class-object?! object% object?) ; don't use struct pred; it
wouldn't work with prim classes
+      (vector-set! (class-supers object%) 0 object%)
+      (let*-values ([(struct:obj make-obj obj? -get -set!)
+                     (make-struct-type 'object #f 0 0 #f (list (cons
prop:object object%)) #f)])
+        (set-class-struct:object! object% struct:obj)
+        (set-class-make-object! object% make-obj))
+      (set-class-object?! object% object?) ; don't use struct pred;
it wouldn't work with prim classes
+
+      (set-interface-class! object<%> object%)
+      object%))

-  (set-interface-class! object<%> object%)
-
   ;;--------------------------------------------------------------------
   ;;  instantiation
   ;;--------------------------------------------------------------------


-- 
Jay McCarthy <j...@cs.byu.edu>
Assistant Professor / Brigham Young University
http://teammccarthy.org/jay

"The glory of God is Intelligence" - D&C 93
_________________________________________________
  For list-related administrative tasks:
  http://list.cs.brown.edu/mailman/listinfo/plt-dev

Reply via email to