Interesting. Admittedly I've only tried this on one macOS running computer so far, but this fails reliably for me. I've tried a few older versions to no avail (going back to pre sb-simd landing) but haven't done so rigorously. Perhaps I have some wrong/missing libraries via homebrew?
In any event, what information would be most useful in figuring out what the problem might be?
First the preliminaries,
I'm using SBCL 2.2.8.32 on macOS 12.5.1 on an Apple M1 MacBookAir.
In order to get any evidence of failure (other than not having the obj/asdf-cache/sb-simd/uild-passed.test-report, I have to manually do
; wrote /Users/sly/src/sbcl/sbcl-master/sbcl/contrib/sb-simd/../../obj/asdf-cache/sb-simd/module-setup.fasl
; compilation finished in 0:00:00.000
; compiling file "SYS:CONTRIB;SB-SIMD;CODE;PACKAGES.LISP.NEWEST" (written 06 SEP 2022 08:09:17 AM):
...
; in: DEFINE-CUSTOM-VOP SB-SIMD-SSE::F32!-FROM-P128
; (SB-VM::DEFINE-CUSTOM-VOP SB-SIMD-SSE::F32!-FROM-P128
; (:ARGS (SB-VM::SRC :TARGET SB-VM::DST))
; (:TEMPORARY (:SC SB-VM::SINGLE-SSE-REG :FROM (:ARGUMENT 0)) SB-VM::TMP)
; (:RESULTS (SB-VM::DST))
; (:GENERATOR (SB-C:MOVE SB-VM::TMP SB-VM::SRC)
; (SB-ASSEM:INST SB-VM::XORPS SB-VM::DST SB-VM::DST)
; (SB-ASSEM:INST SB-VM::MOVSS SB-VM::DST SB-VM::TMP)))
;
; caught ERROR:
; (during macroexpansion of (DEFINE-VOP (SB-SIMD-SSE::%F32!-FROM-P128)
; ...))
; failed AVER:
; (= (LENGTH SB-C::VALUE) (LENGTH (REMOVE-DUPLICATES SB-C::VALUE)))
; This is probably a bug in SBCL itself. (Alternatively, SBCL might have been
; corrupted by bad user code, e.g. by an undefined Lisp operation like
; (FMAKUNBOUND 'COMPILE), or by stray pointers from alien code or from unsafe
; Lisp code; or there might be a bug in the OS or hardware that SBCL is running
; on.) If it seems to be a bug in SBCL itself, the maintainers would like to know
; about it. Bug reports are welcome on the SBCL mailing lists, which you can find
; at <http://sbcl.sourceforge.net/>.
Interesting. Admittedly I've only tried this on one macOS running computer so far, but this fails reliably for me. I've tried a few older versions to no avail (going back to pre sb-simd landing) but haven't done so rigorously. Perhaps I have some wrong/missing libraries via homebrew?
In any event, what information would be most useful in figuring out what the problem might be?
First the preliminaries,
I'm using SBCL 2.2.8.32 on macOS 12.5.1 on an Apple M1 MacBookAir.
In order to get any evidence of failure (other than not having the obj/asdf- cache/sb- simd/uild- passed. test-report, I have to manually do
sh ./make- target- contrib. sh sb-simd
When I do so, I see:
sbcl % sh ./make- target- contrib. sh sb-simd target- contrib. sh sb-simd contrib. sh obj/sbcl- home/contrib/ src/runtime/ sbcl --noinform --core ../..// output/ sbcl.core --lose- on-corruption --disable-debugger --no-sysinit --no-userinit --eval '(setf (sb-ext: readtable- base-char- preference *readtable*) :both)' --eval '(compile-file #p"SYS: CONTRIB; ASDF;UIOP. LISP" :print nil :output-file (merge-pathnames (parse- native- namestring "../../ /obj/sbcl- home/contrib/ /uiop.fasl" )))' </dev/null ASDF;UIOP. LISP.NEWEST" (written 06 SEP 2022 08:09:17 AM):
sh ./make-
//entering make-target-
sh ./build-contrib asdf
mkdir -p ../..//
../..//
; compiling file "SYS:CONTRIB;
; wrote /Users/ sly/src/ sbcl/sbcl- master/ sbcl/contrib/ asdf/.. /../obj/ sbcl-home/ contrib/ uiop.fasl obj/sbcl- home/contrib/ src/runtime/ sbcl --noinform --core ../..// output/ sbcl.core --lose- on-corruption --disable-debugger --no-sysinit --no-userinit --eval '(setf (sb-ext: readtable- base-char- preference *readtable*) :both)' --eval '(compile-file #p"SYS: CONTRIB; ASDF;ASDF. LISP" :print nil :output-file (merge-pathnames (parse- native- namestring "../../ /obj/sbcl- home/contrib/ /asdf.fasl" )))' </dev/null ASDF;ASDF. LISP.NEWEST" (written 06 SEP 2022 08:09:17 AM):
; compilation finished in 0:00:01.676
* if [ -d asdf-upstream ] ; then rm -rf asdf-upstream ; fi
mkdir -p ../..//
../..//
; compiling file "SYS:CONTRIB;
; wrote /Users/ sly/src/ sbcl/sbcl- master/ sbcl/contrib/ asdf/.. /../obj/ sbcl-home/ contrib/ asdf.fasl src/runtime/ sbcl --noinform --core ../..// output/ sbcl.core --lose- on-corruption --disable-debugger --no-sysinit --no-userinit --eval '(setf (sb-ext: readtable- base-char- preference *readtable*) :both)' \ typep-note) )))' \ :build- asdf-contrib "sb-simd")' sly/src/ sbcl/sbcl- master/ sbcl/contrib/ sb-simd/ ../../obj/ asdf-cache/ sb-simd/ module- setup.lisp" (written 06 SEP 2022 08:21:12 AM):
; compilation finished in 0:00:01.430
* true
sh ./build-contrib sb-simd
../..//
--eval '(declaim (muffle-conditions (and compiler-note (not sb-c::unknown-
--load ../asdf-stub.lisp \
--eval '(asdf:
; compiling file "/Users/
; wrote /Users/ sly/src/ sbcl/sbcl- master/ sbcl/contrib/ sb-simd/ ../../obj/ asdf-cache/ sb-simd/ module- setup.fasl SB-SIMD; CODE;PACKAGES. LISP.NEWEST" (written 06 SEP 2022 08:09:17 AM):
; compilation finished in 0:00:00.000
; compiling file "SYS:CONTRIB;
...
; in: DEFINE-CUSTOM-VOP SB-SIMD- SSE::F32! -FROM-P128 :DEFINE- CUSTOM- VOP SB-SIMD- SSE::F32! -FROM-P128 SINGLE- SSE-REG :FROM (:ARGUMENT 0)) SB-VM::TMP) SSE::%F32! -FROM-P128) sbcl.sourceforg e.net/>.
; (SB-VM:
; (:ARGS (SB-VM::SRC :TARGET SB-VM::DST))
; (:TEMPORARY (:SC SB-VM::
; (:RESULTS (SB-VM::DST))
; (:GENERATOR (SB-C:MOVE SB-VM::TMP SB-VM::SRC)
; (SB-ASSEM:INST SB-VM::XORPS SB-VM::DST SB-VM::DST)
; (SB-ASSEM:INST SB-VM::MOVSS SB-VM::DST SB-VM::TMP)))
;
; caught ERROR:
; (during macroexpansion of (DEFINE-VOP (SB-SIMD-
; ...))
; failed AVER:
; (= (LENGTH SB-C::VALUE) (LENGTH (REMOVE-DUPLICATES SB-C::VALUE)))
; This is probably a bug in SBCL itself. (Alternatively, SBCL might have been
; corrupted by bad user code, e.g. by an undefined Lisp operation like
; (FMAKUNBOUND 'COMPILE), or by stray pointers from alien code or from unsafe
; Lisp code; or there might be a bug in the OS or hardware that SBCL is running
; on.) If it seems to be a bug in SBCL itself, the maintainers would like to know
; about it. Bug reports are welcome on the SBCL mailing lists, which you can find
; at <http://