Second recent compiler bug involving double-float type

Bug #2084398 reported by Matt Kaufmann
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Undecided
Unassigned

Bug Description

An unexpected compilation error occurs with the SBCL version reported
below, obtained today from GitHub -- so Bug # 2084209 was already
fixed, and this is a second bug involving double-float type. Here is
a log on MacOS 10.15.7. There is no such error with SBCL 2.4.6
(released) on that Mac, or with SBCL 2.4.9 (released) on Linux.
Perhaps the error is related to recent improvements to avoid boxing of
double-floats.

~$ ~/lisps/sbcl/sbcl-2.4.9-post-3e96beedaf/sbcl/run-sbcl.sh
This is SBCL 2.4.9.49-3e96beeda, 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.
* (declaim (ftype (function (double-float t t t t t t t t t t)
       (values t))
    f1))
(F1)
* (defun f1 (scalar x1 x2 x3 x4 x5 x6 x7 x8 x9 x10)
    (declare (ignore scalar x1 x2 x3 x4 x5 x6 x7 x8 x10))
    x9)
F1
* (defun f2 ()
    (let ((val (f1 0.0d0 0 0 0 0 0 0 0 0 0 0)))
      val))

debugger invoked on a SIMPLE-ERROR in thread
#<THREAD tid=775 "main thread" RUNNING {1001898003}>:
  SB-VM::FIXED-CALL-NAMED is not the name of a defined VOP.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

(SB-C::VOP-PARSE-OR-LOSE SB-VM::FIXED-CALL-NAMED)
0] backtrace

Backtrace for: #<SB-THREAD:THREAD tid=775 "main thread" RUNNING {1001898003}>
0: (SB-C::VOP-PARSE-OR-LOSE SB-VM::FIXED-CALL-NAMED)
1: (SB-REGALLOC::DESCRIBE-TN-USE 0 #<SB-C:TN t1[RAX(d)] :NORMAL> #<SB-C:TN-REF :TN #<SB-C:TN t2[S3] :NORMAL> :WRITE-P NIL :VOP SB-VM::FIXED-CALL-NAMED>)
2: (SB-REGALLOC::FAILED-TO-PACK-LOAD-TN-ERROR (#<SB-C:STORAGE-CLASS :NAME SB-VM::ANY-REG>) #<SB-C:TN-REF :TN #<SB-C:TN t2[S3] :NORMAL> :WRITE-P NIL :VOP SB-VM::FIXED-CALL-NAMED>)
3: (SB-REGALLOC::PACK-LOAD-TN (1) #<SB-C:TN-REF :TN #<SB-C:TN t2[S3] :NORMAL> :WRITE-P NIL :VOP SB-VM::FIXED-CALL-NAMED>)
4: (SB-REGALLOC::PACK-LOAD-TNS #<SB-C::IR2-BLOCK :START-VOP #<SB-C::VOP :INFO SB-C:CURRENT-BINDING-POINTER :ARGS NIL :RESULTS #<SB-C:TN-REF :TN #<SB-C:TN t3[S2] :COMPONENT> :WRITE-P T :VOP SB-C:CURRENT-BINDING-POINTER>> :LAST-VOP #<SB-C::VOP :INFO SB-C:MOVE :ARGS #<SB-C:TN-REF :TN #<SB-C:TN t4[RDX(d)] :NORMAL> :WRITE-P NIL :VOP SB-C:MOVE> :RESULTS #<SB-C:TN-REF :TN #<SB-C:TN t5[RDX(d)] :NORMAL> :WRITE-P T :VOP SB-C:MOVE>> :LOCAL-TN-COUNT 18 {1001935833}>)
5: (SB-REGALLOC:PACK #<SB-C:COMPONENT :NAME "<unknown>" {1001934403}>)
6: (SB-C::%COMPILE-COMPONENT #<SB-C:COMPONENT :NAME "<unknown>" {1001934403}>)
7: (SB-C::COMPILE-COMPONENT #<SB-C:COMPONENT :NAME "<unknown>" {1001934403}>)
8: (SB-C::%COMPILE (SB-INT:NAMED-LAMBDA F2 NIL (BLOCK F2 (LET ((VAL #)) VAL))) NIL NIL)
9: ((LAMBDA NIL :IN SB-C:COMPILE-IN-LEXENV))
10: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
11: (SB-C:COMPILE-IN-LEXENV (SB-INT:NAMED-LAMBDA F2 NIL (BLOCK F2 (LET ((VAL #)) VAL))) #<NULL-LEXENV> NIL NIL NIL NIL T)
12: (SB-IMPL::%SIMPLE-EVAL (SB-INT:NAMED-LAMBDA F2 NIL (BLOCK F2 (LET ((VAL #)) VAL))) #<NULL-LEXENV>)
13: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SB-INT:NAMED-LAMBDA F2 NIL (BLOCK F2 (LET ((VAL #)) VAL))) #<NULL-LEXENV>)
14: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SB-IMPL::%DEFUN (QUOTE F2) (SB-INT:NAMED-LAMBDA F2 NIL (BLOCK F2 (LET (#) VAL)))) #<NULL-LEXENV>)
15: (SB-INT:SIMPLE-EVAL-IN-LEXENV (DEFUN F2 NIL (LET ((VAL (F1 0.0d0 0 0 0 0 0 0 0 0 0 0))) VAL)) #<NULL-LEXENV>)
16: (EVAL (DEFUN F2 NIL (LET ((VAL (F1 0.0d0 0 0 0 0 0 0 0 0 0 0))) VAL)))
17: (INTERACTIVE-EVAL (DEFUN F2 NIL (LET ((VAL (F1 0.0d0 0 0 0 0 0 0 0 0 0 0))) VAL)) :EVAL NIL)
18: (SB-IMPL::REPL-FUN NIL)
19: ((LAMBDA NIL :IN SB-IMPL::TOPLEVEL-REPL))
20: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<FUNCTION (LAMBDA NIL :IN SB-IMPL::TOPLEVEL-REPL) {E67FC1B}>)
21: (SB-IMPL::TOPLEVEL-REPL NIL)
22: (SB-IMPL::TOPLEVEL-INIT)
23: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
24: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
25: (SB-IMPL::%START-LISP)

0]

Here is information on version, OS, and *features*.

~$ ~/lisps/sbcl/sbcl-2.4.9-post-3e96beedaf/sbcl/run-sbcl.sh --version
SBCL 2.4.9.49-3e96beeda
~$ uname -a
Darwin Matts-MacBook-Pro.local 19.6.0 Darwin Kernel Version 19.6.0: Tue Jun 21 21:18:39 PDT 2022; root:xnu-6153.141.66~1/RELEASE_X86_64 x86_64
~$ ~/lisps/sbcl/sbcl-2.4.9-post-3e96beedaf/sbcl/run-sbcl.sh
This is SBCL 2.4.9.49-3e96beeda, 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.
* *features*
(:ARENA-ALLOCATOR :X86-64 :GENCGC :64-BIT :ANSI-CL :BSD :COMMON-LISP :DARWIN
 :IEEE-FLOATING-POINT :LITTLE-ENDIAN :MACH-O :PACKAGE-LOCAL-NICKNAMES :SB-LDB
 :SB-PACKAGE-LOCKS :SB-THREAD :SB-UNICODE :SBCL :UNIX)
*

I built SBCL from sources as follows.

sh make.sh --without-immobile-space --without-immobile-code --without-compact-instance-header

Stas Boukarev (stassats)
Changed in sbcl:
status: New → 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.