ASDF no longer builds on ACL

Bug #1528027 reported by Robert P. Goldman
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ASDF
Fix Released
Critical
Robert P. Goldman

Bug Description

Tested on Mac OS X. Interestingly, the problem is not that ASDF itself doesn't build cleanly: the error is that the ASDF *tools* don't build cleanly. Probably this should not be breaking the ASDF build. I have not had time to check this, but I would guess from the error messages that there are bugs in macro-generated code, because the code the warnings are about looks like something that no human would write.

Here's the transcript:
rpg@rpgoldman-2: ~/lisp/asdf $ make test l=allegro_64
./make.sh l='allegro_64' L='' u='' U='' v='' s='' t='' test
;Compiler warnings for "home:lisp;asdf;tools;build.lisp.newest" :
; In BUILD-ASDF: Suspicious lambda-list: (&OPTIONAL)
; In DOC: Suspicious lambda-list: (&OPTIONAL)
; In WEBSITE: Suspicious lambda-list: (&OPTIONAL)
; In WC: Suspicious lambda-list: (&OPTIONAL)
; In LIST-SOURCE-REGISTRY: Suspicious lambda-list: (&OPTIONAL)
; Warning: Lisp compilation had style-warnings while compiling #<CL-SOURCE-FILE "asdf-tools" "build">
; While executing: CHECK-LISP-COMPILE-WARNINGS, in process listener(1).
;Compiler warnings for "home:lisp;asdf;tools;git.lisp.newest" :
; In CLEAN: Suspicious lambda-list: (&OPTIONAL)
; In %PUSH: Suspicious lambda-list: (&OPTIONAL)
; In MERGE-MASTER-INTO-RELEASE: Suspicious lambda-list: (&OPTIONAL)
; In FIX-LOCAL-GIT-TAGS: Suspicious lambda-list: (&OPTIONAL)
; In GIT-ALL-COMMITTED-P: Suspicious lambda-list: (&OPTIONAL)
; In EXT-INIT: Suspicious lambda-list: (&OPTIONAL)
; In EXT-CLEAR: Suspicious lambda-list: (&OPTIONAL)
; In EXT-RESET: Suspicious lambda-list: (&OPTIONAL)
; In EXT-UPDATE: Suspicious lambda-list: (&OPTIONAL)
; Warning: Lisp compilation had style-warnings while compiling #<CL-SOURCE-FILE "asdf-tools" "git">
; While executing: CHECK-LISP-COMPILE-WARNINGS, in process listener(1).
;Compiler warnings for "home:lisp;asdf;tools;test-basic.lisp.newest" :
; In TEST-ASCII: Suspicious lambda-list: (&OPTIONAL)
; Warning: Lisp compilation had style-warnings while compiling #<CL-SOURCE-FILE "asdf-tools" "test-basic">
; While executing: CHECK-LISP-COMPILE-WARNINGS, in process listener(1).
;Compiler warnings for "home:lisp;asdf;tools;test-all.lisp.newest" :
; In TEST-ALL-NO-UPGRADE: Suspicious lambda-list: (&OPTIONAL)
; In TEST-ALL: Suspicious lambda-list: (&OPTIONAL)
; In TEST-ALL-NO-UPGRADE-NO-STOP: Suspicious lambda-list: (&OPTIONAL)
; In TEST-ALL-NO-STOP: Suspicious lambda-list: (&OPTIONAL)
; In CHECK-ALL-SCRIPTS-RESULTS: Suspicious lambda-list: (&OPTIONAL)
; In CHECK-ALL-UPGRADE-RESULTS: Suspicious lambda-list: (&OPTIONAL)
; In CHECK-ALL-RESULTS: Suspicious lambda-list: (&OPTIONAL)
; Warning: Lisp compilation had style-warnings while compiling #<CL-SOURCE-FILE "asdf-tools" "test-all">
; While executing: CHECK-LISP-COMPILE-WARNINGS, in process listener(1).
;Compiler warnings for "home:lisp;asdf;tools;release.lisp.newest" :
; In MAKE-UIOP-TARBALL: Suspicious lambda-list: (&OPTIONAL)
; In MAKE-ASDF-DEFSYSTEM-TARBALL: Suspicious lambda-list: (&OPTIONAL)
; In MAKE-ASDF-ALL-TARBALL: Suspicious lambda-list: (&OPTIONAL)
; In MAKE-ASDF-LISP: Suspicious lambda-list: (&OPTIONAL)
; In MAKE-ARCHIVE: Suspicious lambda-list: (&OPTIONAL)
; In PUBLISH-ARCHIVE: Suspicious lambda-list: (&OPTIONAL)
; In LINK-ARCHIVE: Suspicious lambda-list: (&OPTIONAL)
; In MAKE-AND-PUBLISH-ARCHIVE: Suspicious lambda-list: (&OPTIONAL)
; Warning: Lisp compilation had style-warnings while compiling #<CL-SOURCE-FILE "asdf-tools" "release">
; While executing: CHECK-LISP-COMPILE-WARNINGS, in process listener(1).
makeinfo --html asdf.texinfo \
 2>&1 > manual-html.log || { echo "failed. See log in manual-html.log" ; exit 1 ;}
Now starting allegro_64, loading the script support, and exiting without doing anything...
/usr/local/acl/acl90.64/alisp -qq -batch -e "(quote(#.#.\`(load,(string\`|test/script-support.lisp|):verbose():print())#.#.\`(asdf-test::exit-lisp,0)))"
SUCCEEDED at starting allegro_64, loading the script support, and exiting without doing anything.
Now starting allegro_64, loading the script support, loading ASDF from source, then exiting...
/usr/local/acl/acl90.64/alisp -qq -batch -e "(quote(#.#.\`(load,(string\`|test/script-support.lisp|):verbose():print())#.#.\`(asdf-test::verbose())#.#.\`(load,(string\`|build/asdf.lisp|):verbose():print())#.#.\`(uiop/image:quit,0)))"
FAILED at starting allegro_64, loading the script support, loading ASDF from source, then exiting.

Revision history for this message
Faré (fahree) wrote :

What is the value of the LISP variable? If not set, it defaults to CCL.

I see that indeed CCL seems to issue this warning:
? (defun foo (&optional) 1)
;Compiler warnings :
; In FOO: Suspicious lambda-list: (&OPTIONAL)

Somehow, it doesn't show any warning I use asdf-tools, even if I rm -rf build/fasls/

... and the reason is that I have quicklisp in my home directory, at which point asdf-tools compiled with ql:quickload, which seems to suppress this warning (!)
When I rm -rf build/fasls/ and mv ~/quickload ~/quickload.bak, I do get the same error that you do.

That's weird, because it's a style warning, anyway, so shouldn't break the build.

I can workaround this by suppressing style-warning's :around-compile asdf-tools, but this suggests a deeper problem with compiler warning detection.

Revision history for this message
Robert P. Goldman (rpgoldman) wrote :

I have a patch to the macro that suppresses the "&optional" when the argument list is empty.

I'll push it now for your review. The tests still don't run on ACL after that, though, but it's a different error.

Revision history for this message
Robert P. Goldman (rpgoldman) wrote :

Remaining issue is caused by this line in footer.lisp:

(setf excl:*warn-on-nested-reader-conditionals* asdf/common-lisp::*acl-warn-save*))

ASDF/COMMON-LISP package is not defined. I will check, but I suspect this is another macro-generated code issue. Maybe a missing comma?

Revision history for this message
Robert P. Goldman (rpgoldman) wrote :

Simpler than I thought: looks like once UIOP/COMMON-LISP had the nickname ASDF/COMMON-LISP, but that has been changed. Will patch and push.

Revision history for this message
Faré (fahree) wrote :

OK, so the STYLE-WARNINGs don't cause the build to fail. They are merely a visual annoyance the first time that asdf-tools is compiled.

More problematic is the thing that actually fails in the end:
Now starting allegro_64, loading the script support, loading ASDF from source, then exiting...
/usr/local/acl/acl90.64/alisp -qq -batch -e "(quote(#.#.\`(load,(string\`|test/script-support.lisp|):verbose():print())#.#.\`(asdf-test::verbose())#.#.\`(load,(string\`|build/asdf.lisp|):verbose():print())#.#.\`(uiop/image:quit,0)))"
FAILED at starting allegro_64, loading the script support, loading ASDF from source, then exiting.

I can reproduce the failure locally on Linux:
alisp -qq -batch -e "(quote(#.#.\`(load,(string\`|test/script-support.lisp|):verbose():print())#.#.\`(asdf-test::verbose())#.#.\`(load,(string\`|build/asdf.lisp|):verbose():print())#.#.\`(uiop/image:quit,0)))"
An unhandled error occurred during initialization:
An error occurred (Package "ASDF/COMMON-LISP" not found. [file position = 571370]) during
the reading or evaluation of -e "(quote(#.#.`(load,(string`|test/script-support.lisp|):verbose():print())#.#.`(asdf-test::verbose())#.#.`(load,(string`|build/asdf.lisp|):verbose():print())#.#.`(uiop/image:quit,0)))"

The problem is that footer.lisp refers to asdf/common-lisp in #+allegro, instead of using uiop/common-lisp, when I removed the alias. I see that you fixed that in commit 49b8812.

Changed in asdf:
assignee: nobody → Robert P. Goldman (rpgoldman)
milestone: none → asdf3.2
status: New → Fix Committed
Revision history for this message
Robert P. Goldman (rpgoldman) wrote :

Thanks. Is my fix to get the STYLE-WARNINGs to go away ok, too?

Revision history for this message
Faré (fahree) wrote :

Yes, your other fix is good, too — though I just pushed a small simplification to it.

Changed in asdf:
milestone: asdf3.2 → 3.1.7
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.