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