[Ecls-list] ASDF load-op problem
kmkaplan+ecl at kim.kim-minh.com
kmkaplan+ecl at kim.kim-minh.com
Wed Sep 10 18:44:54 UTC 2008
Juan Jose Garcia-Ripoll writes:
> ASDF properly finds out the changes and loads the right file.
Some more investigation indicate that this is not a ASDF problem. See
below.
> Which platform is this?
I tried it on two Linux Intel systems:
The first is a Debian stable with a kernel customized by my internet
hosting service, OVH. The CPU is an Intel Celeron CPU 220 @1.20GHz:
Linux r10721.ovh.net 2.6.24.5-grsec-xxxx-grs-ipv6-32 #4 SMP Mon Jun 2 19:10:34 CEST 2008 i686 GNU/Linux
The other one is my workstation, a Debian testing system running on
Intel Xeon CPU 3.20GHz:
Linux kakou 2.6.24-1-686 #1 SMP Sat Apr 19 00:37:55 UTC 2008 i686 GNU/Linux
> Did you clean all the files before reinstalling?
Yes.
Since you can't reproduce it I did some deeper investigations and the
breakage occured at asdf-ecl.lisp 1.5. The thing I noticed is that it
used (compile-file ... :system-p t) and this looks like the culprit.
$ cat run-1.lisp
(require 'cmp)
(defparameter *systemp* t)
(defun myloader (name)
(si::system (format nil "cat ~A" name))
(let ((out (compile-file name :system-p *systemp*))
(fas (compile-file-pathname name)))
(when *systemp*
(c:build-fasl fas :lisp-files (list out)))
(load fas)))
(setf *compile-verbose* nil)
(si::system "echo \"(defun test () (write-line \\\"First test - loaded\\\"))\" >test.lisp")
(myloader "test.lisp")
(defparameter *1* (test))
(si::system "echo \"(defun test () (write-line \\\"Second test - reloaded\\\"))\" >test.lisp")
(myloader "test.lisp")
(defparameter *2* (test))
(assert (not (equalp *1* *2*)))
(quit)
$ ecl -norc -load run-1.lisp
;;; Loading "/tmp/run-1.lisp"
;;; Loading #P"/usr/local/lib/ecl/cmp.fas"
;;; Loading #P"/usr/local/lib/ecl/sysfun.lsp"
(defun test () (write-line "First test - loaded"))
;;; Loading "/tmp/test.fas"
First test - loaded
(defun test () (write-line "Second test - reloaded"))
;;; Loading "/tmp/test.fas"
First test - loaded
An error occurred during initialization:
The assertion (NOT (EQUALP *1* *2*)) failed..
Does this help?
More information about the ecl-devel
mailing list