annotated tag sbcl-2.6.4: created. sbcl-2.6.4
crhodes via Sbcl-commits <[email protected]>
| Newsgroups | gmane.lisp.steel-bank.cvs |
|---|---|
| Message-ID | <[email protected]> |
The annotated tag "sbcl-2.6.4" has been created in SBCL:
at dd00ba68c82c29e9aafb9f48cb3ffd74d4f77142 (tag)
tagging 1a0e4afd51c0d6e5c608ddae7fd154e2b5045619 (commit)
replaces sbcl-2.6.3
tagged by Christophe Rhodes
on Wed Apr 29 20:26:57 2026 +0100
- Log -----------------------------------------------------------------
changes in sbcl-2.6.4 relative to sbcl-2.6.3:
* minor incompatible change: when DEFSETF is called on a name that was
previously used as a (presumed) call to a function, it issues a single
STYLE-WARNING (like DEFMACRO).
* minor incompatible change: SB-EXT:PROCESS-KILL no longer supports the
:PTY-PROCESS-GROUP option (which was never correctly implemented).
* minor incompatible change: the :INITIAL-OFFSET argument for typed
DEFSTRUCT, if given, no longer accepts NIL.
* platform support:
** more likely to support 32-bit linux's struct timeval with 64-bit time_t.
** the runtime's main function is now defined as a weak symbol for
platform/compiler combinations that support it.
** on Windows, individual empty arguments for RUN-PROGRAM are escaped.
** add input/output speed fields for our definition of the termios
structure, addressing a crash in sb-posix:tcsetattr on OpenBSD.
(lp#2150499, thanks to Robert Palm)
* bug fix: address infinite loops in the compiler. (lp#2144911, lp#2148056)
* bug fix: if an FTYPE has been proclaimed for a function, don't mix NULL
with explicitly-typed keyword arguments. (lp#2147050, reported by Vasily
Postnicov)
* bug fix: compiler error from treatment of unused results. (lp#2147383)
* bug fix: compiler error from invalid dimension arguments to MAKE-ARRAY.
(lp#2147384)
* bug fix: compiler error arising from continuing to optimize deleted nodes.
(lp#2147385)
* bug fix: make sure linkage-table alien entries have base-string names.
(lp#2147646, thanks to Seokjun Lee)
* bug fix: make sure CHECK-TYPE's expansion does not include internal
non-externalizable objects. (lp#2148777, reported by Willem Broekema)
* bug fix: alien calls involving passing structs by value are less likely to
read or write wrong areas of memory. (thanks to Jesse Bouwman)
* bug fix: lowering EQUALP to EQUAL handles constant dotted lists correctly.
* bug fix: a number of standard functions perform more explicit type checks
on their arguments.
* bug fix: only return the primary value from (LIST*/APPEND/NCONC <values>).
* bug fix: correct treatment of escaped closing brackets in pathname
patterns.
* bug fix: escape dots in pathnames more correctly.
* bug fix: the hash set for function names will incur collisions less
frequently. (reported by Andrew Wolven)
* bug fix: the system is now capable of expressing select() on the whole
range of possible file descriptors.
* optimization: compiler optimizations for (REPLACE vector list) now apply
given :START1 and/or :END1 keyword arguments.
* optimization: CONCATENATE is faster for concatenating list arguments to a
VECTOR.
* optimization: ROUND for integers is more compact.
* optimization: on 64-bit x86, implement TRUNCATE using the Lemire, Kaser,
Kurz transform.
-----BEGIN PGP SIGNATURE-----
iQFFBAABCgAvFiEE1oOcoKZ/dNnftwki69WVqRANY80FAmnyW4ERHGNzcjIxQGNh
bnRhYi5uZXQACgkQ69WVqRANY80b7wgAmfNZpy/csu4ZtC8DqTpMDzebgT/m5JGJ
bpyHufRc6iv+UpV13niDs/0z8QcFoi88Nbxt7Bk10JnIT98Fsy7kTKNmDdMBMMGV
OAF4PgvG5tjj91Hg/fFqq8VVe90L5/Jk7sEH+H7DvyCCqcAT2w0Eyy7Zlql4sG1C
Q3dAOvSjdYFiZ3//kuUze4illd4C8dzmBeXD9RYTP2875RlaUJMuTtqRrxwuF7Je
Pg56KjOponlfk5nnU/NarKaf7rWAiRR4xJLiBQDiIPm/T/yrZjlSwRGE8KrOYzA9
GcEBqeW+2jOv6q2UIVQmRXxGPmoRNu0ZvJo8kOTQH9FniPmcdE1Mzw==
=EB8q
-----END PGP SIGNATURE-----
Christophe Rhodes (4):
Persist the :ucrt feature, if present, into the final image
First draft of NEWS for sbcl-2.6.4
fixes to NEWS
2.6.4: will be tagged as "sbcl-2.6.4"
Douglas Katzman (65):
build-all-cores
Factor out a subtraction that appears too many places
Change :accessor to :reader in a define-condition
Remove hash slot from PATTERN
Clean up apply_absolute_fixups
Fix comment
Improve local var name
Show number of stored fixups if *show-new-code*
Get relocation.test.sh working for x86-64-darwin
Try a different implementation of reader/writer lock
x86-64: Implement tls-load-indirect for mark-region-gc
Remove unused lines of code
x86-64: always enable tls-load-indirect
Compute STATIC-FDEFN-OFFSET more concisely
Remove subcritical FIXMEs at pad-data-block
Make c-callable-fdefns non-static
Move print-object on sb-pcl::cache near its defstruct
Enable a test file for mark-region which passes now
Enable sb-profile test for mark-region
Avoid calling cache-statistics function
Rename call-static-fun to call-lisp-fun
Expose a much simplified utf8-to-string decoder
Decode utf8 from C
Remove dump-segment, fold it into dump-code-object
Implement a SIGSEGV mitigation strategy for tls-load-indirect
Mostly combine all definitions of arch_get_bad_address into one
Rename DSD-READER to DSD-PRIMITIVES
Change HW to SW card marking on immobile layout pages
Correct some obsolete bit-masking steps
Move some things
Fix mark-region with permgen
Use soft card marking on all fixedobj pages
Remove stray line noticed by reviewer
Put back DSD-READER but only for structure-object
Remove another misuse of (DECLARE SPECIAL) for #+tls-load-indirect
Optimize (BOUNDP 'known-symbol) if #+tls-load-indirect
Remove ENABLE_PAGE_PROTECTION choice from immobile-space
Halve the size of immobile cards
Cons nothing for alien linkage entries that exist
Remove a hack from src/code/signal
Avoid certain TLS load traps
Tidy up the definition of *FINITE-SBS*
x86-64: Rearrange CAS vops for SYMBOL-[GLOBAL-]VALUE
Remove cold-fixup function
Clean up sap-foreign-symbol
Do some more renaming
x86-64: Rearrange the alien linkage table
Use a global list to hold disassembler instructions
Mention foreign-symbol-address less
Delete alien-linkage-value macro
Make fun-name-hashset more hashy
Remove unnecessary WHEN and LET
Transform delete-if-not
Permute FDEFN slots for #+linkage-space
Undo a couple lines of prior change
Accept immediate sc in symbol-global-value
Show raw constants of :DWORD or :QWORD size
Don't forget NIL
x86-64: TRUNCATE using the Lemire, Kaser, Kurz transform
Defensively code in type-width-in-bits
Implement choice of using fastrem in IR1 transform
Delete immobile space sigsegv handler
Improve RELEASE-MUTEX docstring
Fix strange comment
Fix input-manifest
Gabor Melis (2):
Improve SB-INTROSPECT:FIND-DEFINITION-SOURCES-BY-NAME error handling
Make DEFSETF warn a bit more like DEFMACRO
Jesse Bouwman (7):
tests: struct-by-value parameter overread
x86-64, struct-by-value: don't read past input struct
tests: failing overwrite cases
struct-by-value: don't overwrite when copying values from registers to memory
x86-64, struct-by-value: prevent overwrites when copying during callbacks
x86-64, struct-by-value: correct ABI classification for nested structs
x86-64, struct-by-value: coordinate arglist transforms
Seokjun Lee (2):
Base-stringize alien linkage table names
Make main() a weak symbol for linkable runtime
Stas Boukarev (111):
Avoid looping in join-equality-constraints
inherit-equality-p: don't treat sets specially
Simplify join-type-constraints
Don't add equality constraints for types without bounds
find-or-create-equality-constraint: more normalization
Add a transform for (sqrt rational)
(float (/ int1 int2)) => (/ (float int1) (float int2))
Don't add equality constraints with offsets for types
Remove redundant float coercions
join-equality-constraints: set the amount to 0 instead of removing
Don't redefine a macro
Typo
join-equality-constraints: better growth termination
Better groveling of struct timeval on 32-bit linux with 64-bit time
Don't mix in NULL for proclaimed &key types
Smaller type testing of function for call-symbol
x86-64: smaller (funcall (or null function))
Maybe fix join-equality-constraints
find-or-create-equality-constraint: use vector-length as a key
Unroll more things for (equal x '(y))
Fix ppc64 build
Transform (replace simple-vector list) with :start1/:end1
map-refs: protect against unused results
check-array-dimensions: be ready for a mv-combination
ir1-optimize-combination: stop if the node is deleted in derive-type
Faster (concatenate 'vector ..) for list arguments
Don't create an extra cons in (concatenate 'list ...)
Tidy up some type specifiers
Better type derivation (truncate x integer-union-with-zero)
Fix EQUALP to EQUAL lowering for constant dotted lists
Fix coerce compile-time checking
x86-64: fix dynbind for -sb-thread
Don't put bounds into the complex type for (complex float)
Lower more things to from EQUALP to EQUAL
Better types for (floor/ceiling (integer -5 5) integer)
Exclude zeros when deriving truncate types
Handle division by zero when deriving (/ integer integer)
Warn about integer division by zero
Fix a test
Don't return the data vector from (replace complex-vector list)
Fix ash-modfx constant folding
Propagate that after (/= (rem n d) 0) D is (not (integer -1 1))
Narrow the type of (truncate n d) based on the remainder
More compact ROUND for integers
Fix win32 build
Check types for standalone byte, byte-size, byte-position
Check for characters in unread-char
Check types in broadcast-stream output routines
Check for integers in array-in-bounds-p
Ensure the types are checked in the set functions
Actually fix check-coerce
Better ftype for compiler-macro-function
Return one value from (list* (values 1 2))
find-class: check that the name is a symbol even when errorp is nil
/=: check all arguments for NUMBER before returning NIL
Return one value from (append/nconc (values 1 2))
More type checks for the stream functions
Out of line some/every: check if the function is defined early
char/=: check all arguments for CHARACTER before returning NIL
Return early from set-exclusive-or if one of the arguments is NIL
Don't endlessly bounce between ash and logand transforms
sb-ext:process-kill: remove the option to use :pty-process-group
Remove closed processes from *active-processes*
run-program: escape empty strings on windows
pathnames: mind escape-char when processing []
pathnames: fix dot escaping with multiple preceding escapes
pathnames: correctly escape dots in the middle of a pattern
sb-vm:new-arena: move the docstring to the right place
constant-fold-call: call lvar-value with ignore-types=t
Check that fd-set/fd-clr don't overflow fd-setsize
unix-fast-select: allow select on FD_SETSIZE - 1
Fix an error message from DEFSTRUCT
Better predicates for named list structures
defstruct: disallow (:initial-offset nil)
alloc-buffer: check the type of size once
(setf readtable-base-char-preference): assert-not-standard-readtable
Don't lose :character-set when changing pathname case
Remove a redundant check from unparse-physical-enough
Warn about bad subseq ranges after transforming (concatenate .. (subseq ..))
arm64: fix undefined restarts for call-symbol
check-type: don't include ctypes in the expansion
x86-64/truncate-c: correctly determine if the quotient is unused
Transform floor/ceiling to truncate when used as a divisibility test
let-lvar-dest: ignore NIL lvars
Typos
Address a FIXME in emit-inline-add-sub
x86-64: fix mask-signed-field-integer for 64 and any-reg result
arm64: fix a potential issue with fast-ash-c/signed=>signed
arm64: use the right register in ash-inverted
Typos in arm64/float.lisp
x86-64: use xorps for conjugate/complex-single-float
Fix logtest on ppc64
arm64: fix alien-struct-by-value copying
arm64, struct-by-value: look at the stack when running out of GPRs
arm64, struct-by-value: correctly pass small structs on the stack
x86-64, struct-by-value: correctly pass small structs on the stack
arm64, struct-by-value: don't split stack/registers in callbacks
arm64, struct-by-value: don't consume gprs when running out of fprs
arm64, struct-by-value: don't read past the input struct
arm64, callbacks: return float results in the right register
arm64: don't do (ldrsw (32-bit-reg x) ..)
x86-64, struct-by-value: correctly pass small structs on the stack
x86-64, struct-by-value: fix record-arg-tn for win32
Resolve a loop in constraints
x86-64, struct-by-value: leave registers if a struct doesn't fit
x86-64, struct callbacks: leave registers if a struct doesn't fit
Revert "Persist the :ucrt feature, if present, into the final image"
Disable a test
Add c_ispeed and c_ospeed fields to sb-posix:termios
Skip a test
Spell-check NEWS
-----------------------------------------------------------------------
hooks/post-receive
--
SBCL