Deferred warnings broken on SBCL 1.4.7

Eric Timmons etimmons at mit.edu
Wed May 30 03:51:09 UTC 2018


Looks like SBCL 1.4.7 changed the slots of
sb-c::compiler-error-context (in particular enclosing-source ->
%enclosing-source, source -> %source, and original-source was
removed). As a result, deferred warnings are broken. Attached is the
output of `./run-tests.sh sbcl test-deferred-warnings.script`

-Eric
-------------- next part --------------
OLDPWD=/home/etimmons/common-lisp/asdf
PWD=/home/etimmons/common-lisp/asdf/test
sbcl --no-userinit --no-sysinit --disable-debugger --eval "(or\`,#.(load(string\`|script-support.lisp|))#.(asdf-test::compile-asdf-script))"
This is SBCL 1.4.7, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
; loading #P"/home/etimmons/common-lisp/asdf/build/fasls/sbcl/asdf.fasl"
Reusing previously-compiled ASDF
Compiled OK
Testing: test-deferred-warnings.script
sbcl --no-userinit --no-sysinit --disable-debugger --eval "'(#.(load(string'|script-support.lisp|))#.(asdf-test::load-asdf)#.(asdf-test::frob-packages)#.(asdf-test:run-test-script'|test-deferred-warnings.script|))"
This is SBCL 1.4.7, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
; loading #P"/home/etimmons/common-lisp/asdf/build/fasls/sbcl/asdf.fasl"
Configuring ASDF
Enabling debugging
Being a bit verbose
Comparing directories
ASDF-TEST:*TEST-DIRECTORY* and
(:PATHNAME-DIRECTORY-PATHNAME (NTH-VALUE 2 (:LOCATE-SYSTEM :TEST-ASDF))) both evaluate to same path:
  #P"/home/etimmons/common-lisp/asdf/test/"
Frob packages
Running test-deferred-warnings.script with sbcl-1.4.7-linux-x64
; loading #P"/home/etimmons/common-lisp/asdf/test/test-deferred-warnings.script"
; Registering system unintern-foo
; Registering system use-foo-only
; Registering system use-foo-with-wrapper
; Registering system use-then-defun-foo
; Registering system use-then-defmacro-foo
; Registering system use-setf-foo-only
; Registering system use-setf-then-defun-foo
; Registering system use-setf-then-defsetf-foo
; Registering system undefined-variables
TDW0
  UIOP/LISP-BUILD:*COMPILE-FILE-WARNINGS-BEHAVIOUR* => :WARN
;; loading #P"/home/etimmons/common-lisp/asdf/build/fasls/sbcl-1.4.7-linux-x64/asdf/test/unintern-foo.fasl"
; compiling file "/home/etimmons/common-lisp/asdf/test/use-foo.lisp" (written 16 FEB 2018 10:16:30 PM):

; /home/etimmons/common-lisp/asdf/build/fasls/sbcl-1.4.7-linux-x64/asdf/test/use-foo-tmpGHU3ALSV.fasl written
; compilation finished in 0:00:00.001
;; loading #P"/home/etimmons/common-lisp/asdf/build/fasls/sbcl-1.4.7-linux-x64/asdf/test/use-foo.fasl"
CFWBI-UFO
  ASDF-TEST::C => #<SB-EXT:UNKNOWN-KEYWORD-ARGUMENT {1002CB97C3}>
While evaluating the form starting at line 42, column 0
  of #P"/home/etimmons/common-lisp/asdf/test/test-deferred-warnings.script":
TEST ABORTED: Unknown &KEY argument: :ENCLOSING-SOURCE
Backtrace:
Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {10005E05B3}>
0: (SB-C::MAKE-COMPILER-ERROR-CONTEXT :ENCLOSING-SOURCE NIL :SOURCE NIL :ORIGINAL-SOURCE "  (ASDF-TEST/DEFERRED-WARNINGS::FOO ASDF-TEST/DEFERRED-WARNINGS::X)" :CONTEXT ((DEFUN ASDF-TEST/DEFERRED-WARNINGS::USE-FOO)) :FILE-NAME #P"/home/etimmons/common-lisp/asdf/test/use-foo.lisp" :FILE-POSITION 41 :ORIGINAL-SOURCE-PATH (3 1)) [more]
1: ((LAMBDA (UIOP/LISP-BUILD::STUFF) :IN UIOP/LISP-BUILD:UNREIFY-DEFERRED-WARNINGS) (:FUNCTION ASDF-TEST/DEFERRED-WARNINGS::FOO 1 (:ENCLOSING-SOURCE NIL :SOURCE NIL :ORIGINAL-SOURCE "  (ASDF-TEST/DEFERRED-WARNINGS::FOO ASDF-TEST/DEFERRED-WARNINGS::X)" :CONTEXT ((DEFUN ASDF-TEST/DEFERRED-WARNINGS::USE-FOO)) :FILE-NAME #P"/home/etimmons/common-lisp/asdf/test/use-foo.lisp" :FILE-POSITION 41 ...)))
2: (UIOP/LISP-BUILD:UNREIFY-DEFERRED-WARNINGS ((SB-C::*UNDEFINED-WARNINGS* (:FUNCTION ASDF-TEST/DEFERRED-WARNINGS::FOO 1 (:ENCLOSING-SOURCE NIL :SOURCE NIL :ORIGINAL-SOURCE "  (ASDF-TEST/DEFERRED-WARNINGS::FOO ASDF-TEST/DEFERRED-WARNINGS::X)" :CONTEXT (#) :FILE-NAME #P"/home/etimmons/common-lisp/asdf/test/use-foo.lisp" :FILE-POSITION 41 ...)))))
3: ((FLET "LAMBDA0" :IN "/home/etimmons/common-lisp/asdf/build/asdf.lisp"))
4: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
5: (UIOP/LISP-BUILD:CHECK-DEFERRED-WARNINGS (#P"/home/etimmons/common-lisp/asdf/build/fasls/sbcl-1.4.7-linux-x64/asdf/test/use-foo.sbcl-warnings") NIL NIL)
6: (ASDF/LISP-ACTION::PERFORM-LISP-WARNINGS-CHECK #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/SYSTEM:SYSTEM "use-foo-only">)
7: ((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/SYSTEM:SYSTEM "use-foo-only">)
8: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
9: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/SYSTEM:SYSTEM "use-foo-only">) [fast-method]
10: ((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1002AA6E33}>) [fast-method]
11: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
12: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1002AA6E33}>) [fast-method]
13: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "use-foo-only"> :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method]
14: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "use-foo-only"> :FORCE T)
15: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
16: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "use-foo-only"> :FORCE T) [fast-method]
17: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF/LISP-ACTION:LOAD-OP :USE-FOO-ONLY :FORCE T)
18: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
19: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP :USE-FOO-ONLY :FORCE T) [fast-method]
20: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<CLOSURE (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {1002AA07BB}> :OVERRIDE T :KEY NIL :OVERRIDE-CACHE T :OVERRIDE-FORCING NIL)
21: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
22: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<CLOSURE (LAMBDA NIL :IN ASDF/OPERATE:OPERATE) {1004D8D54B}> :OVERRIDE NIL :KEY NIL :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)
23: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) ASDF/LISP-ACTION:LOAD-OP :USE-FOO-ONLY :FORCE T) [fast-method]
24: (ASDF/OPERATE:LOAD-SYSTEM :USE-FOO-ONLY :FORCE T)
25: ((LAMBDA NIL :IN "/home/etimmons/common-lisp/asdf/test/test-deferred-warnings.script"))
26: (SB-INT:SIMPLE-EVAL-IN-LEXENV (HANDLER-BIND ((ERROR (LAMBDA (ASDF-TEST::C) (ASDF-TEST::DBG :CFWBI-UFO ASDF-TEST::C)))) (LET ((UIOP/LISP-BUILD:*COMPILE-FILE-WARNINGS-BEHAVIOUR* :IGNORE)) (ASDF/OPERATE:LOAD-SYSTEM :USE-FOO-ONLY :FORCE T))) #<NULL-LEXENV>)
27: (SB-EXT:EVAL-TLF (HANDLER-BIND ((ERROR (LAMBDA (ASDF-TEST::C) (ASDF-TEST::DBG :CFWBI-UFO ASDF-TEST::C)))) (LET ((UIOP/LISP-BUILD:*COMPILE-FILE-WARNINGS-BEHAVIOUR* :IGNORE)) (ASDF/OPERATE:LOAD-SYSTEM :USE-FOO-ONLY :FORCE T))) 12 NIL)
28: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (HANDLER-BIND ((ERROR (LAMBDA (ASDF-TEST::C) (ASDF-TEST::DBG :CFWBI-UFO ASDF-TEST::C)))) (LET ((UIOP/LISP-BUILD:*COMPILE-FILE-WARNINGS-BEHAVIOUR* :IGNORE)) (ASDF/OPERATE:LOAD-SYSTEM :USE-FOO-ONLY :FORCE T))) 12)
29: ((LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) (HANDLER-BIND ((ERROR (LAMBDA (ASDF-TEST::C) (ASDF-TEST::DBG :CFWBI-UFO ASDF-TEST::C)))) (LET ((UIOP/LISP-BUILD:*COMPILE-FILE-WARNINGS-BEHAVIOUR* :IGNORE)) (ASDF/OPERATE:LOAD-SYSTEM :USE-FOO-ONLY :FORCE T))) :CURRENT-INDEX 12)
30: (SB-C::%DO-FORMS-FROM-INFO #<CLOSURE (LAMBDA (SB-KERNEL:FORM &KEY :CURRENT-INDEX &ALLOW-OTHER-KEYS) :IN SB-INT:LOAD-AS-SOURCE) {1003B5EB1B}> #<SB-C::SOURCE-INFO {1003B5EAD3}> SB-C::INPUT-ERROR-IN-LOAD)
31: (SB-INT:LOAD-AS-SOURCE #<SB-INT:FORM-TRACKING-STREAM for "file /home/etimmons/common-lisp/asdf/test/test-deferred-warnings.script" {1003B5BE33}> :VERBOSE T :PRINT NIL :CONTEXT "loading")
32: ((FLET SB-FASL::THUNK :IN LOAD))
33: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<CLOSURE (FLET SB-FASL::THUNK :IN LOAD) {7FFFF6C5F2BB}> #<SB-INT:FORM-TRACKING-STREAM for "file /home/etimmons/common-lisp/asdf/test/test-deferred-warnings.script" {1003B5BE33}>)
34: ((FLET SB-FASL::LOAD-STREAM :IN LOAD) #<SB-INT:FORM-TRACKING-STREAM for "file /home/etimmons/common-lisp/asdf/test/test-deferred-warnings.script" {1003B5BE33}> NIL)
35: (LOAD "test-deferred-warnings.script" :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST T :EXTERNAL-FORMAT :DEFAULT)
36: ((LAMBDA NIL :IN ASDF-TEST:RUN-TEST-SCRIPT))
37: (ASDF-TEST::CALL-WITH-TEST #<CLOSURE (LAMBDA NIL :IN ASDF-TEST:RUN-TEST-SCRIPT) {1003B53CCB}>)
38: (ASDF-TEST:RUN-TEST-SCRIPT ASDF-TEST::|test-deferred-warnings.script|)
39: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF-TEST:RUN-TEST-SCRIPT (QUOTE ASDF-TEST::|test-deferred-warnings.script|)) #<NULL-LEXENV>)
40: (EVAL (ASDF-TEST:RUN-TEST-SCRIPT (QUOTE ASDF-TEST::|test-deferred-warnings.script|)))
41: (SB-IMPL::SHARP-DOT #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> #\. NIL)
42: (SB-IMPL::READ-MAYBE-NOTHING #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> #\#)
43: (SB-IMPL::READ-LIST #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> #<unused argument>)
44: (SB-IMPL::READ-MAYBE-NOTHING #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> #\()
45: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> T (NIL) T)
46: (READ #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> T NIL T)
47: (SB-IMPL::READ-QUOTE #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> #<unused argument>)
48: (SB-IMPL::READ-MAYBE-NOTHING #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> #\')
49: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> T (NIL) T)
50: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> T (NIL) NIL)
51: (READ #<SB-IMPL::STRING-INPUT-STREAM {1001B2D533}> T NIL NIL)
52: (SB-IMPL::%READ-FROM-STRING "'(#.(load(string'|script-support.lisp|))#.(asdf-test::load-asdf)#.(asdf-test::frob-packages)#.(asdf-test:run-test-script'|test-deferred-warnings.script|))" T NIL 0 NIL NIL)
53: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "'(#.(load(string'|script-support.lisp|))#.(asdf-test::load-asdf)#.(asdf-test::frob-packages)#.(asdf-test:run-test-script'|test-deferred-warnings.script|))")))
54: (SB-IMPL::TOPLEVEL-INIT)
55: ((FLET SB-UNIX::BODY :IN SB-EXT:SAVE-LISP-AND-DIE))
56: ((FLET "WITHOUT-INTERRUPTS-BODY-36" :IN SB-EXT:SAVE-LISP-AND-DIE))
57: ((LABELS SB-IMPL::RESTART-LISP :IN SB-EXT:SAVE-LISP-AND-DIE))
Above backtrace due to this condition:
Unknown &KEY argument: :ENCLOSING-SOURCE
Script failed
; 
; compilation unit aborted
;   caught 1 fatal ERROR condition
; 
; compilation unit aborted
;   caught 1 fatal ERROR condition
Using sbcl, test-deferred-warnings.script failed
you can retry compilation with:
./test/run-tests.sh sbcl test-deferred-warnings.script
or more interactively (and maybe with rlwrap or in emacs), start with:
(cd test ; sbcl --no-userinit --no-sysinit )
then copy/paste:
'(#.(load "script-support.lisp") #.(asdf-test::da) #.(load-asdf) #.(frob-packages) #.(load "test-deferred-warnings.script"))



-#---------------------------------------
Using sbcl
Ran 1 tests: 
  0 passing and 1 failing
failing test(s):  test-deferred-warnings.script
-#---------------------------------------



More information about the asdf-devel mailing list