Hi Rudi,
Thanks for taking the time to look at this.
On Thu, 2007-12-27 at 16:32 +0800, Rudi Schlatte wrote:
> Hi Joubert,
>
> I tried to reproduce your problem: I took the files you sent,
> commented out the second form in package.lisp, loaded via require,
> added the the form again and reloaded via require. Both lisp files
> were recompiled and reloaded without errors.
Since you're not seeing the error, here's a variation where I hope you
will:
Attached are the same files with a slight modification.
Functions.lisp has another (defun) and and an explicit (export) form.
To repro:
1) Do a (require).
2) Now comment out the (format) form in the package.lisp file and save.
3) Evaluate (require). Boom!
I received a note from Christophe mentioning that the result when
changing a (defpackage) form inbetween evaluating successive (require)
forms, is undefined.
However, I'm *not* modifying the (defpackage) form itself, merely stuff
inside the package. It seems like a subtle, but definite distinction.
(Note: I found this behavior in the project I'm currently working on,
and the attached example is not an exact replica of my code, but shows
the same end-result.)
> Note that the file condition.txt that you attached does not contain
> the actual error output, just asdf telling you (via cerror) that there
> was some problem earlier. If you send a complete transcript, starting
> with the line (require :pak) entered by you at the REPL, I can have a
> look - otherwise I can only say "works for me", unfortunately ...
Here is the output when I evaluate (require :pak) after making the
changes to functions.lisp and package.lisp.
I get the content of the condition.txt file, and if I choose the "abort"
restart, see this:
CL-USER> (require :pak)
; compiling file "/tank/code/lisp/test-packaging/package.lisp" (written
27 DEC 2007 11:24:10 AM):
; compiling (IN-PACKAGE :CL-USER)
; compiling (DEFPACKAGE :PAK ...)
;
; caught WARNING:
; PAK also exports the following symbols:
; (PAK:FUNC3)
; See also:
; The ANSI Standard, Macro DEFPACKAGE
; /var/cache/common-lisp-controller/1000/sbcl/local/tank/code/lisp/test-packaging/package.fasl written
; compilation finished in 0:00:00
WARNING:
COMPILE-FILE warned while performing #<COMPILE-OP NIL {B0EED91}> on
#<CL-SOURCE-FILE "package" {AA23AA1}>.
;
; compilation unit aborted
; caught 1 fatal ERROR condition
; caught 1 WARNING condition
; Evaluation aborted.
CL-USER>
If I choose the "accept" restart, then there's no indication of an error
condition.
Hope this helps.
Joubert