[Ecls-list] ASDF:MAKE-BUILD and PREBUILT-ASDF system.

Mark Cox markcox80 at gmail.com
Sat Jun 2 08:07:44 UTC 2012


I am having trouble building a monolithic program that has the PREBUILT-ASDF system as a dependency. The test case is at the end of this email. The error displayed is:

Condition of type: FILE-ERROR
Filesystem error with pathname #P"SYS:libLIBASDF.A.NEWEST".
 1) the file does not exist, or
 2) we are not allowed to access the file, or
 3) the pathname points to a broken symbolic link.
Available restarts:

1. (RETRY) Retry #<The STANDARD-CLASS ASDF::PROGRAM-OP> on #<system "ecl-example">.
2. (ACCEPT) Continue, treating #<The STANDARD-CLASS ASDF::PROGRAM-OP> on #<system "ecl-example"> as having been successful.
3. (RESTART-TOPLEVEL) Go back to Top-Level REPL.


A git bisect returned this:

daca6b7637fd0c8099e26ef9e8cc67b66ab127f5 is the first bad commit
commit daca6b7637fd0c8099e26ef9e8cc67b66ab127f5
Author: Juan Jose Garcia Ripoll <jjgarcia at users.sourceforge.net>
Date:   Wed Jan 25 12:57:12 2012 +0100

    In the prebuilt ASDF files, hard-code the paths of the compiled files, so that they can be found even if we switch to the bytecodes compiler.

:040000 040000 6ec72bd3ca7d86882f114bb859e0ef6f9c86b1b4 558a872bce88fc5a0495ad6b8342b1be9caa8d80 M	src
bisect run success

I am building ecl using:
./configure --prefix=/tmp/ecl


### ecl-example.asd
(defsystem ecl-example
  :depends-on (prebuilt-asdf)
  :serial t
  :components ((:file "example")))

### example.lisp
(print asdf:*central-registry*)

### build.lisp
### /tmp/ecl/bin/ecl -norc < build.lisp
(require 'asdf)
(push "/tmp/quicklisp/dists/quicklisp/software/alexandria-20120520-git/" asdf:*central-registry*)
(asdf:load-system "alexandria")

(let ((output-file "test-application"))
  (when (probe-file output-file)
    (delete-file output-file)
    (assert (not (probe-file output-file))))
       (let ((fn (first (asdf:make-build 'ecl-example
					 :type :program
					 :monolithic t))))
	 (alexandria:copy-file fn output-file :if-to-exists :supersede)
	 (delete-file fn))
    (ext:quit (if (probe-file output-file)

### git bisect log
git bisect start
# bad: [2c5b024036979f09c2017edd470795422dd47cf9] Export both EXT:INSTALL-BYTECODES-COMPILER and EXT:INSTALL-C-COMPILER
git bisect bad 2c5b024036979f09c2017edd470795422dd47cf9
# good: [d4821f1a807e55ddadcc1ab2d7a50197999ee526] The truename of a link to a directory was not properly adjusted when the pathname was in 'file' form, that is (truename directory-link) vs (truename directory-link/)
git bisect good d4821f1a807e55ddadcc1ab2d7a50197999ee526
# skip: [671aef66344ee64c925b9be37d17a524e9dbb2a0] Warn when the OTHERWISE/T clause in CASE appears at a position other than the last one.
git bisect skip 671aef66344ee64c925b9be37d17a524e9dbb2a0
# bad: [af9808d5d9f37ecb0793a6eda939ca3a940bc9c7] Save the value of the code walker in the compiler environment
git bisect bad af9808d5d9f37ecb0793a6eda939ca3a940bc9c7
# bad: [aaf55b6a463d49503bb98a16e235a5ec60520654] Fix for type propagation of EXPT
git bisect bad aaf55b6a463d49503bb98a16e235a5ec60520654
# good: [10dea13a5122cb1f07bce98f674b4b6574dbd922] Unicode strings were not properly saved in C compiled code.
git bisect good 10dea13a5122cb1f07bce98f674b4b6574dbd922
# skip: [ca845a76e8e584eb9ef0d8a25f28b226335797da] safe_close() did not return output flag.
git bisect skip ca845a76e8e584eb9ef0d8a25f28b226335797da
# good: [ac8b8a813a15a290cfabff5bb2e203ff24a01248] Fixed typo in the non-inlined version of ecl_to_size().
git bisect good ac8b8a813a15a290cfabff5bb2e203ff24a01248
# bad: [b5862f94dbfb7f72931a34e071cd19ac13e7c730] LOAD-TIME-VALUE evaluates its argument in an empty environment (interpreter)
git bisect bad b5862f94dbfb7f72931a34e071cd19ac13e7c730
# bad: [8ea48c7035b7c4113f6f49916849dc88679f0261] Fixed asdf:component-relative-pathname to allow specifying the file extension in prebuilt files.
git bisect bad 8ea48c7035b7c4113f6f49916849dc88679f0261
# bad: [daca6b7637fd0c8099e26ef9e8cc67b66ab127f5] In the prebuilt ASDF files, hard-code the paths of the compiled files, so that they can be found even if we switch to the bytecodes compiler.
git bisect bad daca6b7637fd0c8099e26ef9e8cc67b66ab127f5
# good: [2d4868112f60a7248473ff1c20f81723fcfdde5a] NEED-TO-MAKE-LOAD-FORM-P was not registered as taking two arguments [A. Paul]
git bisect good 2d4868112f60a7248473ff1c20f81723fcfdde5a

More information about the ecl-devel mailing list