>>>>> "Sam" == Sam Steingold <[EMAIL PROTECTED]> writes:
Sam> when compiling a file with the following function:
[code snipped]
Sam> I get the follwing:
[snip]
Sam> ; In: DEFUN Y3-LOAD
Sam> ; (CERROR "ignore file [EMAIL PROTECTED]" "~S: no function ~S" 'Y3-LOAD FN
...)
Sam> ; Note: Deleting unreachable code.
I'm not 100% sure this is right, but if fn has a function definition,
cerror is not called. If fn doesn't, fdefinition signals an error, so
cerror isn't called either.
Sam> ;
Sam> ; (HANDLER-CASE (DELETE-FILE PATH) (ERROR # #) (:NO-ERROR NIL #))
Sam> ; --> BLOCK MULTIPLE-VALUE-CALL FUNCALL
Sam> ; ==>
Sam> ; (C::%FUNCALL FUNCTION #:FUNCALL-ARG-2863)
Sam> ; Warning: Function called with one argument, but wants exactly zero.
>From the CLHS Note:
(handler-case form
(type1 (var1) . body1)
...
(:no-error (varN-1 varN-2 ...) . bodyN))
is approximately equivalent to:
(block #1=#:error-return
(multiple-value-call #'(lambda (varN-1 varN-2 ...) . bodyN)
(block #2=#:normal-return
(return-from #1#
(handler-case (return-from #2# form)
(type1 (var1) . body1) ...)))))
So your :no-error clause expects no args, but you're are calling it
with one arg, the result of (delete-file path), if everything works
without errors.
Sam> ----------- here CMUCL sleeps for a minute on a VERY fast machine!!! ---------
Can't explain this. The snip you gave aboves compiles "instantly"
even on a slow box.
Sam> when I try to load the compiled file, I get an error:
Sam> * (load *)
Sam> ; Loading #p"/home/sds/work/isd-cvs/cadre/lisp/y3-input.x86f".
Sam> Error in function LISP::%ENUMERATE-SEARCH-LIST: Undefined search list: r
Sam> [Condition of type SIMPLE-ERROR]
Sam> Restarts:
Sam> 0: [CONTINUE] Return NIL from load of
#p"/home/sds/work/isd-cvs/cadre/lisp/y3-
Sam> input.x86f".
Sam> 1: [ABORT ] Return to Top-Level.
Sam> Debug (type H for help)
Sam> (LISP::%ENUMERATE-SEARCH-LIST
Sam> #<Unprintable pathname, Host=#<LISP::UNIX-HOST>, Device=NIL,
Directory=(:ABSOLU
Sam> TE
Sam>
#<EXTEN
Sam> SIONS:SEARCH-LIST
r>
Sam> "Y3
Dat
Sam> asets"
Sam>
:WILD),
Sam> Name=:WILD, Type=:WILD, Version=:WILD>
Sam> #<Closure Over Function (FLET #:G0
Sam> DIRECTORY)
Sam> {5E066289}>)
Looks like you've somehow created a search-list named "r:" that
doesn't exist. I don't know how that's possible. Sorry.
Ray