Commit graph

28116 commits

Author SHA1 Message Date
Christophe Rhodes 1a0e4afd51 2.6.4: will be tagged as "sbcl-2.6.4" 2026-04-29 20:26:57 +01:00
Stas Boukarev 7cabf02c65 Spell-check NEWS
[skip ci]
2026-04-28 23:52:26 +03:00
Christophe Rhodes 3fbd492e48 fixes to NEWS 2026-04-28 20:35:36 +01:00
Stas Boukarev 29216741cf Skip a test 2026-04-28 14:24:44 +03:00
Stas Boukarev 7c5b07f38a Add c_ispeed and c_ospeed fields to sb-posix:termios
Should fix a problem with OpenBSD.

Based on a patch by Robert Palm.

Fixes lp#2150499
2026-04-28 14:01:14 +03:00
Stas Boukarev 25215818e2 Disable a test 2026-04-28 04:12:05 +03:00
Douglas Katzman 114538b378 Fix input-manifest 2026-04-27 20:40:10 -04:00
Jesse Bouwman 6a39892471 x86-64, struct-by-value: coordinate arglist transforms 2026-04-27 14:05:06 -07:00
Christophe Rhodes 6fff197f35 First draft of NEWS for sbcl-2.6.4 2026-04-27 18:30:32 +01:00
Stas Boukarev 8ecb4fb731 Revert "Persist the :ucrt feature, if present, into the final image"
Until it's known if users need that.

This reverts commit 4dde13a7c1.
2026-04-27 14:46:42 +03:00
Jesse Bouwman 314b572626 x86-64, struct-by-value: correct ABI classification for nested structs 2026-04-26 17:44:30 -07:00
Jesse Bouwman f484412bc4 x86-64, struct-by-value: prevent overwrites when copying during callbacks 2026-04-26 11:11:18 -07:00
Stas Boukarev f735fd577c x86-64, struct callbacks: leave registers if a struct doesn't fit
Which was copied from arm64.
2026-04-26 19:16:19 +03:00
Jesse Bouwman a190d9710a struct-by-value: don't overwrite when copying values from registers to memory 2026-04-26 12:18:26 +03:00
Jesse Bouwman c4c736c568 tests: failing overwrite cases 2026-04-26 12:18:26 +03:00
Douglas Katzman 71cca79006 Fix strange comment
which made sense only if you knew it so well as to not need the comment.
2026-04-26 01:18:17 -04:00
Douglas Katzman b0cdf28901 Improve RELEASE-MUTEX docstring
"set it to NIL" may have made some sense over 20 years ago when a mutex
was essentially just a container of one value, namely the owning thread.
2026-04-26 00:22:39 -04:00
Stas Boukarev 5c866b5159 x86-64, struct-by-value: leave registers if a struct doesn't fit
Something else might go into that register.
2026-04-25 21:06:13 +03:00
Jesse Bouwman e3d6e48da2 x86-64, struct-by-value: don't read past input struct 2026-04-25 18:33:51 +03:00
Jesse Bouwman fa6a16b5ec tests: struct-by-value parameter overread 2026-04-25 18:27:16 +03:00
Stas Boukarev 0132c442dd Resolve a loop in constraints
Process newly changed blocks always in the same order.

Reported by _death
2026-04-25 02:51:06 +03:00
Christophe Rhodes 4dde13a7c1 Persist the :ucrt feature, if present, into the final image
It's probably not useful for users, but it is necessary for making the
right choice while building our own contribs.  Acting on a report by
Masatoshi SANO.
2026-04-24 12:12:45 +01:00
Stas Boukarev 8a98e7b59d x86-64, struct-by-value: fix record-arg-tn for win32
Correctly write to stack tns.
2026-04-24 00:20:22 +03:00
Stas Boukarev 627064c1dc x86-64, struct-by-value: correctly pass small structs on the stack 2026-04-23 20:16:38 +03:00
Stas Boukarev 467666387e arm64: don't do (ldrsw (32-bit-reg x) ..)
It's supposed to sign extend into a 64-bit register.
The assembler doesn't care, but there's no reason to create
unnecessary tns.
2026-04-23 20:16:38 +03:00
Stas Boukarev f1109de3da arm64, callbacks: return float results in the right register 2026-04-23 13:28:19 +03:00
Stas Boukarev 3d222e98b2 arm64, struct-by-value: don't read past the input struct 2026-04-23 12:24:30 +03:00
Stas Boukarev cd3e8721e3 arm64, struct-by-value: don't consume gprs when running out of fprs 2026-04-23 11:27:20 +03:00
Stas Boukarev 0cb8e863d1 arm64, struct-by-value: don't split stack/registers in callbacks 2026-04-23 11:18:59 +03:00
Stas Boukarev 2c30eafc7e x86-64, struct-by-value: correctly pass small structs on the stack 2026-04-23 10:50:34 +03:00
Stas Boukarev 0e7a0d7981 arm64, struct-by-value: correctly pass small structs on the stack 2026-04-23 10:40:05 +03:00
Stas Boukarev 29a23fdce1 arm64, struct-by-value: look at the stack when running out of GPRs 2026-04-23 08:09:39 +03:00
Stas Boukarev 4b3abf2f8c arm64: fix alien-struct-by-value copying
Don't stop too early.
2026-04-23 07:48:01 +03:00
Stas Boukarev da85ccc9b4 Fix logtest on ppc64
Where n-fixnum-tag-bits is different from ppc32 (and from everything else)
2026-04-23 00:08:42 +03:00
Douglas Katzman b5150429f7 Delete immobile space sigsegv handler 2026-04-22 12:29:11 -04:00
Stas Boukarev 315d1ee568 x86-64: use xorps for conjugate/complex-single-float 2026-04-22 04:21:32 +03:00
Stas Boukarev 77337ebd4a Typos in arm64/float.lisp 2026-04-21 03:11:43 +03:00
Stas Boukarev 82f008f592 arm64: use the right register in ash-inverted 2026-04-20 23:57:16 +03:00
Stas Boukarev 97ecfac9da arm64: fix a potential issue with fast-ash-c/signed=>signed
Which can't be triggered due to VOP selection.
2026-04-20 23:28:47 +03:00
Stas Boukarev d81da0bd3f x86-64: fix mask-signed-field-integer for 64 and any-reg result 2026-04-20 22:57:30 +03:00
Stas Boukarev 79752fb42a Address a FIXME in emit-inline-add-sub 2026-04-20 20:44:18 +03:00
Stas Boukarev 8595450051 Typos 2026-04-20 20:16:27 +03:00
Stas Boukarev 0079393bff let-lvar-dest: ignore NIL lvars
Fixes lp#2148799
2026-04-20 16:09:23 +03:00
Stas Boukarev 3eb58efbbe Transform floor/ceiling to truncate when used as a divisibility test 2026-04-20 04:26:35 +03:00
Douglas Katzman 914726b494 Implement choice of using fastrem in IR1 transform 2026-04-19 18:05:03 -04:00
Stas Boukarev cfdbd482aa x86-64/truncate-c: correctly determine if the quotient is unused
Fixes lp#2148782
2026-04-19 20:06:46 +03:00
Douglas Katzman 566883ab44 Defensively code in type-width-in-bits
The receiving logic already potentially expected NIL
2026-04-19 11:59:56 -04:00
Stas Boukarev c9317d951a check-type: don't include ctypes in the expansion
Which have a hard time when included in inline functions.

Fixes lp#2148777
2026-04-19 17:26:24 +03:00
Douglas Katzman ae89d7be84 x86-64: TRUNCATE using the Lemire, Kaser, Kurz transform
2 MULs outperforms one DIV or IDIV by at least 2x based on my
testing and also Agner Fog's instruction latency tables
2026-04-18 22:17:50 -04:00
Douglas Katzman c41011cb52 Don't forget NIL 2026-04-18 22:00:21 -04:00