I was having trouble getting a new ILISP to work with a recent CMUCL,
and I've isolated it down somewhat.

I downloaded CVS snapshot 2003-11, and ran it in the shell with no
initialization file.  I then executed the following sequence of
commands:

* (setf (default-directory) "/home/rif/Tmp/ILISP/")

"/home/rif/Tmp/ILISP/"
* (load "ilisp-pkg.lisp")

; Loading #p"/home/rif/Tmp/ILISP/ilisp-pkg.lisp".
T
* (load "cl-ilisp.lisp")

; Loading #p"/home/rif/Tmp/ILISP/cl-ilisp.lisp".
T
* (load "cmulisp.lisp")

; Loading #p"/home/rif/Tmp/ILISP/cmulisp.lisp".
T
* (load "find-src.lisp")

; Loading #p"/home/rif/Tmp/ILISP/find-src.lisp".
; Compiling LAMBDA (PCL::.PV-CELL. PCL::.NEXT-METHOD-CALL. CLASS):

; In: LAMBDA (PCL::.PV-CELL. PCL::.NEXT-METHOD-CALL. CLASS)

;   (KERNEL::STRUCTURE-CLASS-NAME CLASS)
; ==>
;   CLASS
; Warning: Result is a STRUCTURE-CLASS, not a (VALUES &OPTIONAL 
KERNEL::STRUCTURE-CLASS &REST T).
;
; Note: Deleting unreachable code.
;
; Compiling Top-Level Form:

; Compilation unit finished.
;   1 warning
;   1 note

; Compiling LAMBDA (PCL::.PV-CELL. PCL::.NEXT-METHOD-CALL. OBJECT):
; Compiling Top-Level Form:
; Compiling LAMBDA (PCL::.PV-CELL. PCL::.NEXT-METHOD-CALL. OBJECT):
; Compiling Top-Level Form:
; Compiling LAMBDA (PCL::.PV-CELL. PCL::.NEXT-METHOD-CALL. OBJECT):
; Compiling Top-Level Form:

Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
   #<STRUCTURE-CLASS EVAL:INTERPRETED-FUNCTION
     {4845A82D}> is not of type KERNEL::STRUCTURE-CLASS
   [Condition of type TYPE-ERROR]

Restarts:
  0: [CONTINUE] Return NIL from load of "find-src.lisp".
  1: [ABORT   ] Return to Top-Level.

Debug  (type H for help)

((FAST-METHOD CLASS-NAME (STRUCTURE-CLASS)) #<unused-arg> #<unused-arg>
 #<STRUCTURE-CLASS EVAL:INTERPRETED-FUNCTION {4845A82D}>)
Source: (KERNEL::STRUCTURE-CLASS-NAME CLASS)


If I compile the final file (find-src.lisp), I can load the compiled
file (find-src.x86f).  Is this a known problem?  If so, what causes
it?  The unfortunate side effect is that, AFAICT, there is no way to
get a new ILISP working without compiling at least find-src.x86f from
a lisp started in a shell.  This is likely to be offputting to
newbies.

If it helps at all, the form that seems to be causing the
choking during the load of the .lisp file is:

(defmethod add-method-pathnames ((method standard-method))
  (multiple-value-bind (source method-spec) (object-source-file method)
    (add-definition-source-files method-spec :function source)))

Cheers,

rif

ps.  Does the CL spec allow for code that only works properly when
compiled?


Reply via email to