assertion fails on compilation in cl-ledger (%FAILED-AVER (ZEROP (HASH-TABLE-COUNT (SB-FASL::FASL-OUTPUT-PATCH-TABLE FASL-OUTPUT))))
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
High
|
Unassigned |
Bug Description
Tested successively with SBCL 1.0.56, 1.0.57 and finally 1.0.57.66-5783625 (with the same result each time.)
$ uname -a
Linux inspiron 2.6.35-32-generic #67-Ubuntu SMP Mon Mar 5 19:35:26 UTC 2012 i686 GNU/Linux
*FEATURES*
*
(:QUICKLISP :SB-BSD-
:COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS :SB-UNICODE
:SB-EVAL :SB-SOURCE-
:OS-PROVIDES-
:OS-PROVIDES-PUTWC :OS-PROVIDES-DLADDR :OS-PROVIDES-DLOPEN :LITTLE-ENDIAN
:LINKAGE-TABLE :MULTIPLY-HIGH-VOPS :MEMORY-
:CYCLE-COUNTER :ALIEN-CALLBACKS :STACK-
:STACK-
:STACK-
:UNWIND-
:STACK-
:LINUX :ELF :UNIX :X86)
During the compilation of cl-ledger (commit c380be), I encountered the following error
in file "core/valexpr.lisp" while compiling READ-VALUE-TERM
(see https:/
failed AVER:
(ZEROP (HASH-TABLE-COUNT (FASL-OUTPUT-
To reproduce the bug, assuming quicklisp is installed :
cd /tmp
git clone git://github.
ln -s /tmp/cl-ledger ~/quicklisp/
sbcl
* (ql:quickload "cl-ledger")
Also, under the Slime environment, calling slime-compile-defun on READ-VALUE-TERM also triggers this bug.
This gives the following backtrace, which references SB-IMPL:
0: (SB-INT:BUG "~@<failed AVER: ~2I~_~A~:>" (ZEROP (HASH-TABLE-COUNT (SB-FASL:
1: (SB-IMPL:
2: (SB-FASL:
3: ((FLET #:CLEANUP-
4: (COMPILE-FILE "/tmp/fileV19r5N" :OUTPUT-FILE NIL :VERBOSE NIL :PRINT NIL :EXTERNAL-FORMAT :UTF-8 :TRACE-FILE NIL :BLOCK-COMPILE NIL :EMIT-CFASL NIL)
...
I am not the author of the original source code and I have difficulties further reducing the test case.
I will report this bug to John Wiegley as well, so that he can investigate it if he can.
Changed in sbcl: | |
status: | Triaged → In Progress |
assignee: | nobody → Paul Khuong (pvk) |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
Reduced test-case:
(declaim (inline call))
(defun call (function)
(lambda (x)
(funcall function x)))
(declaim (inline identity-))
(defun identity- (x)
x)
(defun test ()
(list
(call #'identity-)
(lambda (x)
(identity- x))))