ACL source file recording doesn't work from ilisp

Bob Rogers <[email protected]>
Newsgroups gmane.lisp.ilisp.devel
Message-ID <[email protected]>
   The following looks like a bug in ACL 6.1 on Linux, but it affects
source file recording of definitions modified via ilisp.
ilisp:ilisp-eval binds excl:*source-pathname* as suggested in the ACL
documentation, and excl:*load-source-file-info* and
excl:*record-source-file-info* are both T, so it seems like it ought to
work.  The first transcripts shows how a simplified example of the ilisp
technique fails.  Curiously, I do get the correct redefinition warning.

   The second transcript shows something that is clearly broken in ACL;
it also makes me think that there are lexical context issues getting in
the way on the first problem.

   But I'm no longer on a support contract.  Is there anybody with ACL
support who would like to report this to [email protected]?  I am
disinclined to try to work around the first problem until I have a
better picture of how broken it is, and how soon they are going to fix
it.

					-- Bob Rogers
					   http://rgrjr.dyndns.org/

------------------------------------------------------------------------
CL-USER(48): CL-USER(48): (let ((excl:*source-pathname* (pathname "~/clinit.cl"))) (funcall (compile nil '(lambda () (defun test2 (x) (* (/ x 2) pi))))))
TEST2
CL-USER(49): CL-USER(49): (excl:source-file 'test2)
:TOP-LEVEL
CL-USER(50): CL-USER(50): (let ((excl:*source-pathname* (pathname "~/clinit.cl"))) (funcall (compile nil '(lambda () (defun test2 (x) (* (/ x 2) pi))))))
Warning: TEST2, :OPERATOR was defined at the top level and is now being
         defined in /home/rogers/clinit.cl
TEST2
CL-USER(51): CL-USER(51): (excl:source-file 'test2)
:TOP-LEVEL
CL-USER(56): CL-USER(56): (values excl:*load-source-file-info* excl:*record-source-file-info*)
T
T
CL-USER(57): CL-USER(57): 
------------------------------------------------------------------------
CL-USER(2): (defun test (x) (* x pi))
TEST
CL-USER(10): (describe #'test)
#<Interpreted Function TEST> is a FUNCTION.
  The arguments are (X)
CL-USER(11): (excl:source-file 'test)
:TOP-LEVEL
CL-USER(12): (compile 'test)
TEST
NIL
NIL
CL-USER(14): CL-USER(14): (describe #'test)
#<Function TEST> is a COMPILED-FUNCTION.
  The arguments are (X)
CL-USER(16): CL-USER(16): (excl:source-file 'test)
:TOP-LEVEL
CL-USER(26): (let ((excl:*source-pathname* (pathname "~/clinit.cl"))) (defun test (x) (* (/ x 2) pi)))
Warning: TEST, :OPERATOR was defined at the top level and is now being
         defined in /home/rogers/clinit.cl
TEST
CL-USER(29): CL-USER(29): (describe #'test)
#<Interpreted Closure TEST> is a FUNCTION.
  The arguments are (X)
CL-USER(30): CL-USER(30): (compile 'test)
; While compiling TEST:
Warning: Attempting to compile an interpreted closure: TEST
Error: Attempt to access the plist field of
       (*SOURCE-PATHNAME* SPECIAL . SYMBOL) which is not a symbol.
  [condition type: SIMPLE-ERROR]

Restart actions (select using :continue):
 0: Return to Top Level (an "abort" restart).
 1: Abort entirely from this process.
[1] CL-USER(31): :zoom
Evaluation stack:

   (ERROR SIMPLE-ERROR :FORMAT-CONTROL ...)
 ->(COMP::PROCESS-NEW-SPECIAL-DECLS (#))
   (MAPHASH #<Closure # @ #xbfff7afa>
            #<EQ hash-table with 1 entry @ #x71b235ca>)
   (COMP::COMPILE-LE (EXCL::.LEXICAL-CLOSURE2. # . #) TEST ...)
   (COMP::COMPILE-TO-LAPS (EXCL::.LEXICAL-CLOSURE2. # . #) TEST)
   (COMPILE TEST)
   (EVAL (COMPILE 'TEST))
   (TPL:TOP-LEVEL-READ-EVAL-PRINT-LOOP)
   (TPL:START-INTERACTIVE-TOP-LEVEL
      #<TERMINAL-SIMPLE-STREAM [initial terminal io] fd 0/1 @
        #x7109cf7a>
      #<Function TOP-LEVEL-READ-EVAL-PRINT-LOOP> ...)
[1] CL-USER(32): 
------------------------------------------------------------------------


-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.