From: Pascal B. <pj...@in...> - 2005-09-05 05:38:39
|
Takehiko Abe writes: > I am getting an error "FIND-CLASS: XXX does not name a class" > while loading a fas file. > > Here's a test case: > > I have two files "file-a.lisp" and "file-b.lisp": > > ;;; file-a.lisp: > > (defun foo (obj) > (map nil #'(lambda (item) > (when (typep item 'bar) > (print 'bar))) > (list obj))) > > ;;; file-b.lisp > > (defclass bar () ()) > > ;;; > > Both files load and compile fine. However, when I load > file-a.fas (after restart) I frequently but not always get > an error reporting: > > "FIND-CLASS: BAR does not name a class" > > The problem is not consistent. Sometimes a compiled > fas file loads fine without error until I recompile it > or just for a while. I tried (lambda ...) instead of > #'(lambda ...) and the problem seemed to go away ... > again for a while. And sometimes I cannot reproduce the > error for a while. The type (class) bar is defined in file-b. So you must always load file-b before loading file-a. Instead of writing (load "file-a"), write: (load"loader") and put: (load "file-b") (load "file-a") in loader.lisp #'(lambda ...) is a pleonasm. Always write just: (lambda ...) -- __Pascal Bourguignon__ http://www.informatimago.com/ Grace personified, I leap into the window. I meant to do that. |