[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