[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
load time value problem
- To: clisp-list@ma2s2.mathematik.uni-karlsruhe.de
- Subject: load time value problem
- From: Don Cohen <donc@ISI.EDU>
- Date: Mon, 23 Dec 96 10:12:50 PST
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?