[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

load time value problem



Here's a piece of code that I try to compile:
   (DEFUN
      |Normal-Delete-FOO|
      (&REST ARGLIST &AUX (COPY (COPY-LIST ARGLIST)))
      (COMPILED-UPDATE-BODY
	 'NIL (THEAP5RELATION FOO)
	 COPY
	 (LOAD-TIME-VALUE
	    (LOOP
	       FOR S IN
	       '((LAMBDA (R X Y)
		    (DELSTRUCTPROP-INTERNAL R X Y #'EQL))
		 (LAMBDA (REL &REST TUPLE)
		    (DELETE1BASETUPLE
		       REL TUPLE
		       #'(LAMBDA (TUPLE DATA)
			    (FMEMB3 TUPLE DATA #,(DBO RELATION FOO))))))
 ;; the #,(dbo ...) is coming from a print function for a structure
 ;; and evaluates to the right thing in the load time environment
	       COLLECT
	       (IF (CONSP S) (COMPILE NIL S) (COERCE S 'FUNCTION))))
	 'NIL '(#<COMPILED-CLOSURE NIL>)
	 (CONS 'FOO COPY)
	 '|Test-FOO|))

Here's the corresponding piece of compiled file:

#Y(#:TOP-LEVEL-FORM-2-3-5-2-1
   #16Y(00 00 00 00 00 01 D8 2E 01 D8 DA 31 82 3D 19 01) |Normal-Delete-FOO|
   SYSTEM::REMOVE-OLD-DEFINITIONS
   #Y(|Normal-Delete-FOO|
      #24Y(00 00 00 00 01 16 AB 70 A2 62 D8 AC D9 62 DA DB A2 79 DC 2C 08 05 19
           03
          )
      #.(RELATIONP-ERR 'FOO)
      #.(LOOP FOR S IN
          '((LAMBDA (R X Y) (DELSTRUCTPROP-INTERNAL R X Y #'EQL))
             (LAMBDA (REL &REST TUPLE)
               (DELETE1BASETUPLE REL TUPLE
                 #'(LAMBDA (TUPLE DATA)
                     (FMEMB3 TUPLE DATA #1="#,(DBO RELATION FOO)")
 ;;; Turns into a string!!
           ) ) )   )
          COLLECT (IF (CONSP S) (COMPILE NIL S) (COERCE S 'FUNCTION))
        )
      (#2=#Y(NIL
              #33Y(03 00 00 00 00 04 62 AD AA 8C 96 03 02 19 06 86 00 01 82 00
                   93 01 D8 AB 31 35 16 01 1B 6A 00 19 06
                  )
              DBOBJECT
      )     )
      FOO |Test-FOO| COMPILED-UPDATE-BODY
  )  )

Of course, the compiled code does not load.  I'm trying to figure out
why my #,(dbo ...) turned into a a string in the .fas file.
Anybody have any ideas?