Skip to content

Commit c838cc0

Browse files
authored
Merge branch 'sbcl:master' into master
2 parents 6762303 + fc79888 commit c838cc0

File tree

373 files changed

+15025
-6994
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

373 files changed

+15025
-6994
lines changed

.cirrus.yml

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,21 @@ freebsd_build_task:
1919
ansi_test_script:
2020
- cd tests; ./ansi-tests.sh
2121

22-
task:
23-
name: Linux arm64
24-
arm_container:
25-
image: gcc:latest
26-
cpu: 1
27-
memory: 2G
28-
install_script:
29-
- apt-get -qq update
30-
- apt-get -qq -y install sbcl strace libzstd-dev
31-
build_script:
32-
- echo '"1.9.99.999"' > version.lisp-expr
33-
- ./make.sh --with-sb-core-compression
34-
35-
test_script:
36-
- cd tests; ./run-tests.sh --slow
37-
38-
ansi_test_script:
39-
- cd tests; ./ansi-tests.sh
22+
# task:
23+
# name: Linux arm64
24+
# arm_container:
25+
# image: gcc:latest
26+
# cpu: 1
27+
# memory: 2G
28+
# install_script:
29+
# - apt-get -qq update
30+
# - apt-get -qq -y install sbcl strace libzstd-dev
31+
# build_script:
32+
# - echo '"1.9.99.999"' > version.lisp-expr
33+
# - ./make.sh --with-sb-core-compression
34+
35+
# test_script:
36+
# - cd tests; ./run-tests.sh --slow
37+
38+
# ansi_test_script:
39+
# - cd tests; ./ansi-tests.sh

.github/workflows/email.yml

Lines changed: 0 additions & 31 deletions
This file was deleted.

.github/workflows/linux-arm.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Linux arm
2+
3+
on: [push]
4+
5+
jobs:
6+
build:
7+
8+
runs-on: ubuntu-24.04-arm
9+
timeout-minutes: 60
10+
11+
steps:
12+
- uses: actions/checkout@v1
13+
- name: install host sbcl
14+
run: |
15+
sudo dpkg --add-architecture armhf
16+
sudo apt-get -qq update | true
17+
sudo apt-get -qq install
18+
sudo apt-get -qq install libc6:armhf gcc-arm-linux-gnueabihf sbcl
19+
20+
- name: build
21+
env:
22+
SBCL_MAKE_TARGET_2_OPTIONS: --disable-ldb --disable-debugger
23+
CC: arm-linux-gnueabihf-gcc
24+
run: ./make.sh --xc-host='sbcl --dynamic-space-size 700MB --lose-on-corruption --disable-ldb --disable-debugger' --arch=arm
25+
26+
- name: test
27+
env:
28+
CC: arm-linux-gnueabihf-gcc
29+
run: cd tests; ./run-tests.sh
30+
- name: ansi-test
31+
run: cd tests; ./ansi-tests.sh

.github/workflows/linux-arm64.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Linux arm64
2+
3+
on: [push]
4+
5+
jobs:
6+
build:
7+
8+
runs-on: ubuntu-24.04-arm
9+
timeout-minutes: 60
10+
strategy:
11+
matrix:
12+
options: [--with-sb-thread]
13+
# subfeatures: ['']
14+
# include:
15+
# - { subfeatures: fasteval, options: --with-sb-fasteval --without-sb-eval }
16+
17+
fail-fast: false
18+
19+
steps:
20+
- uses: actions/checkout@v1
21+
- name: install host sbcl
22+
run: |
23+
sudo apt-get -qq update | true
24+
sudo apt-get -qq install sbcl libcapstone-dev libzstd-dev
25+
26+
- name: build
27+
env:
28+
SBCL_MAKE_TARGET_2_OPTIONS: --disable-ldb --disable-debugger
29+
run: ./make.sh ${{ matrix.options }} --with-sb-core-compression --xc-host='sbcl --dynamic-space-size 700MB --lose-on-corruption --disable-ldb --disable-debugger'
30+
- name: test-fasteval
31+
if: matrix.subfeatures == 'fasteval'
32+
run: cd tests; ./run-tests.sh --evaluator-mode interpret
33+
- name: test
34+
run: cd tests; ./run-tests.sh --slow
35+
- name: ansi-test
36+
run: cd tests; ./ansi-tests.sh

.github/workflows/linux-qemu.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
with:
1515
arch: none
1616
distro: none
17-
base_image: ppc64le/debian:trixie
17+
base_image: ppc64le/debian:trixie-20241016
1818

1919
githubToken: ${{ github.token }}
2020
install: |

.github/workflows/linux.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ jobs:
4646
env:
4747
SBCL_MAKE_TARGET_2_OPTIONS: --disable-ldb --disable-debugger
4848
run: ./make.sh ${{ matrix.options }} --with-sb-core-compression --xc-host='sbcl --dynamic-space-size 700MB --lose-on-corruption --disable-ldb --disable-debugger' --arch=${{ matrix.arch }}
49-
- name: test
50-
run: cd tests; ./run-tests.sh --slow
51-
- name: test
49+
- name: test-fasteval
5250
if: matrix.subfeatures == 'fasteval'
5351
run: cd tests; ./run-tests.sh --evaluator-mode interpret
52+
- name: test
53+
run: cd tests; ./run-tests.sh --slow
5454
- name: ansi-test
5555
run: cd tests; ./ansi-tests.sh
5656

.github/workflows/mac.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ jobs:
2222
- name: build
2323
env:
2424
SBCL_MAKE_TARGET_2_OPTIONS: --disable-ldb --disable-debugger
25-
CPATH: /opt/homebrew/include
26-
LIBRARY_PATH: /opt/homebrew/lib
2725
run: ./make.sh ${{ matrix.options }} --with-sb-core-compression --xc-host='sbcl --lose-on-corruption --disable-ldb --disable-debugger'
2826
- name: make binary
2927
run: |

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ src/runtime/target-arch-os.h
3232
src/runtime/target-arch.h
3333
src/runtime/target-lispregs.h
3434
src/runtime/target-os.h
35-
src/runtime/ppc-linux-mcontext.h
3635
tests/test-status.lisp-expr
3736
tests/test.log
3837
tests/*.so

.mailmap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Philipp Matthias Schäfer <[email protected]> Philipp Matthias Schaefer
3939

4040
Richard M Kreuter <[email protected]> kreuter <kreuter>
4141

42-
Robert Brown <brown@google.com> <robert.brown@gmail.com>
42+
Robert Brown <robert.brown@gmail.com> <brown@google.com>
4343

4444
4545
Stas Boukarev <[email protected]> stas <[email protected]>

NEWS

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,200 @@
11
;;;; -*- coding: utf-8; fill-column: 78 -*-
22

3+
changes relative to sbcl-2.5.0:
4+
* minor incompatible change: SBCL now reveals details of its COMPLEX
5+
representations through UPGRADED-COMPLEX-PART-TYPE, rather than hiding
6+
them.
7+
* minor incompatible change: the compiler will warn on the use of a
8+
SATISFIES type with an undefined function. (lp#576608, reported by Roman
9+
Marynchak)
10+
* minor incompatible change: (room t) now counts the space taken by the
11+
internals of hash-tables and CLOS instances.
12+
* platform support
13+
** fixes to the included version of ASDF, and to sockets functions, for
14+
the Haiku operating system. (thanks to Alexandru Popa)
15+
** add support for CAS (compare-and-swap) on SAPs for arm64, x86-64 and
16+
(partially) RISC-V. (lp#1894057, reported by Yukari Hafner)
17+
** the system is now consistent with 64-bit time_t on 32-bit linux
18+
platforms. (lp#2063340, reported by Peter van Eynde)
19+
** restore building on 32-bit ARM with newer gcc versions. (lp#1839783,
20+
reported by Sébastien Villemot)
21+
** fix large stack allocation on 64-bit Windows.
22+
* CL portability fixes to the definitions of certain compiler structures,
23+
detected by CLISP. (lp#2064301, lp#2064312, thanks to Robert Brown)
24+
* bug fix: structure BOA constructors with &REST arguments no longer cause
25+
structure slots named NIL or T to be unconditionally initialized with the
26+
values NIL and T respectively.
27+
* bug fix: structure BOA constructors without values for some slots no
28+
longer cause compilation errors for initforms that are not a single
29+
variable.
30+
* bug fix: sequence functions handle :TEST and :TEST-NOT both being given
31+
uniformly. (lp#309143)
32+
* bug fix: the type system is better equipped to handle complicated unions
33+
of numeric types. (lp#308937, lp#1694839, lp#1734959, lp#2073544)
34+
* bug fix: misoptimization of VALUES-LIST in the presence of intervening
35+
stack operations. (reported by haruhi.s)
36+
* bug fix: apply the limit to inline expansions more selectively.
37+
(lp#2092518, reported by Andrew Kravchuk)
38+
* bug fix: compiler-detected type mismatches are reported even given the
39+
presence of inlined functions. (lp#2092613, reported by Vasily Postnicov)
40+
* bug fix: improved type error detection for inlined array construction forms.
41+
(lp#2092889, reported by Vasily Postnicov)
42+
* bug fix: accesses to multidimensional arrays are now checked based on the
43+
(internal) INSERT-ARRAY-BOUNDS-CHECKS declaration, as with one-dimensional
44+
arrays. (lp#2095155, thanks to Vasily Postnicov)
45+
* bug fix: sb-bsd-sockets:socket-connect handles EINTR caused by GC signals.
46+
47+
changes in sbcl-2.5.0 relative to sbcl-2.4.11:
48+
* platform support:
49+
** improve support for the Haiku operating system. (thanks to Al Hoang,
50+
Estevan Castilho and Alexandru Popa)
51+
* bug fix: generic functions with a large number of required arguments, with
52+
methods with specializations on exactly STANDARD-OBJECT or
53+
FUNCALLABLE-STANDARD-OBJECT, test the types of their arguments more
54+
correctly.
55+
* bug fix: defining a method on SB-MOP:SLOT-VALUE-USING-CLASS where the
56+
object argument is specialized to a CONDITION-CLASS no longer leads to an
57+
internal error.
58+
* bug fix: the dissassembler on x86-64 correctly disassembles the vcvttpd2dq
59+
AVX2 instruction.
60+
* bug fix: ensure that the dispatch function for generic functions is
61+
compiled with a known compilation policy. (reported by Neil Goldman)
62+
* bug fix: the compiler retains less intermediate data between COMPILE-FILE
63+
forms. (lp#1557590, reported by andy arvid)
64+
* bug fix: the (invalid) :INITARGS slot option keyword is reported on.
65+
(lp#1887014, reported by Wayne Rittiman, Jr)
66+
* bug fix: the SB-SIMD s16.8-maddubs accepts packs of 16 8-bit quantities,
67+
not 8 16-bit quantities. (lp#2069538, reported by Georgios Makris)
68+
* bug fix: compiling a TYPECASE to dispatch between many user-defined
69+
classes no longer takes exponential time. (lp#2089311, reported by Tomas
70+
Hlavaty)
71+
* bug fix: derive the new type for a variable when setting it to a function
72+
of its previous version. (lp#2090997, reported by Vasily Postnicov)
73+
* bug fix: properly clear compiler annotations on variables set to new
74+
values involving functions of themselves. (lp#2090967, reported by Kirill
75+
A. Korinskiy)
76+
* bug fix: handle BY in LOOP forms involving iteration on the reverse of a
77+
list. (lp#2091210, reported by James Kalenius)
78+
* bug fix: fix miscompilation of IF where the consequent and alternative
79+
would have the same value but for an intervening side-effect.
80+
(lp#2092588, reported by JA)
81+
* optimization: SLOT-VALUE and (SETF SLOT-VALUE) on method arguments
82+
specialized to structure classes are compiled to the corresponding
83+
structure accessor.
84+
* optimization: calls to SLOT-VALUE (and related operators) on method
85+
arguments specialized to instances of SB-MOP:FUNCALLABLE-STANDARD-CLASS
86+
are optimized similarly to calls on method arguments specialized to
87+
instances of STANDARD-CLASS.
88+
* optimization: (coerce (reverse list) 'vector) doesn't cons a list.
89+
* optimization: (replace vector (reverse list)) doesn't cons a list.
90+
91+
changes in sbcl-2.4.11 relative to sbcl-2.4.10:
92+
* enhancement: define SB-EXT:*DEFAULT-SOURCE-EXTERNAL-FORMAT* as the
93+
external format for reading source files (for direct use in LOAD and
94+
COMPILE-FILE). On Windows, this defaults to an external format with CRLF
95+
line-endings. (lp#720517, reported by Mark David)
96+
* minor incompatible change: the documentation of
97+
SB-SEQUENCE:MAKE-SEQUENCE-LIKE has been altered to match its
98+
implementation regarding the (un)initialization of the sequence if neither
99+
:INITIAL-CONTENTS nor :INITIAL-ELEMENT is provided.
100+
* minor incompatible change: the outputs from SB-GROVEL no longer contain
101+
calls to SB-GROVEL::DEFINE-FOREIGN-ROUTINE, but call
102+
SB-ALIEN:DEFINE-ALIEN-ROUTINE directly; the definitions of some other
103+
SB-GROVEL utilities has also changed.
104+
* platform support:
105+
** The system is more likely to build with the musl C library. (thanks to
106+
Masatoshi SANO)
107+
** It is possible to build 32-bit binaries on NetBSD/x86-64 systems.
108+
(thanks to Masatoshi SANO)
109+
** Stale big-endian ARM code in callbacks is no longer present.
110+
(lp#2087866, reported by Rongcui Dong)
111+
** Correct the encoding of the VPSHUFD AVX2 instruction. (reported by
112+
Dmitry Ignatiev)
113+
** Implement the PINSRQ SSE instruction and provide access to it in
114+
SB-SIMD.
115+
** Fix some signed/unsigned and 32-bit issues in the runtime leading to
116+
problems with large --dynamic-space-size. (lp#2087986)
117+
* bug fix: cross-reference information about structure accessors is
118+
preserved when compilation policy requires it.
119+
* bug fix: changing &ALLOW-OTHER-KEYS in a generic function's lambda list
120+
needs to invalidate the effective methods cache. (reported by Robert
121+
Strandh)
122+
* bug fix: calling DISASSEMBLE on a method-function provides a more useful
123+
disassembly.
124+
* bug fix: PROCESS-CLOSE no longer leaks a zombie process.
125+
* bug fix: interaction between SYMBOL-MACROLET and SPECIAL declarations is
126+
handled more correctly in the code walker. (lp#1053198)
127+
* bug fix: better scaling when compiling large numbers of calls to local
128+
functions. (lp#1379661, reported by 3b and Burton Samograd)
129+
* bug fix: allow the compiler to approximate types involving large bignums
130+
or ratios with large numerator or denominator. (lp#2085637)
131+
* bug fix: miscompilation of type tests involving STRUCTURE-OBJECT.
132+
(lp#2088417)
133+
* optimization: CONCATENATE with consing arguments can elide some of the
134+
intermediate consing.
135+
* optimization: the implementations of various external-formats have been
136+
sped up.
137+
* optimization: elide %SAP-ALIEN calls if all uses dereference the resulting
138+
ALIEN object.
139+
* optimization: faster (expt integer integer) when computing fixnum results.
140+
* optimization: (ash unknown-integer right) can use modular arithmetic.
141+
* optimization: (apply x ... list) avoids consing intermediate lists in more
142+
situations.
143+
* optimizations for arm64, x86-64:
144+
** AREF on non-simple arrays with known element type is faster, along with
145+
uses such as LOOP ACROSS, VECTOR-PUSH/POP/EXTEND.
146+
** SIMD variants for POSITION for strings, 8 and 32 bit integer arrays.
147+
** faster overflow checking for (the fixnum (+ fixnum fixnum))
148+
149+
changes in sbcl-2.4.10 relative to sbcl-2.4.9:
150+
* minor incompatible change: SB-POSIX::POSIX-FORK is no longer exported from
151+
SB-POSIX. (The interface function, SB-POSIX:FORK, remains exported).
152+
* platform support:
153+
** fix bugs in instruction encoding on RISC-V; (reported by Guillaume Le
154+
Vaillant)
155+
** fix the location of the linkage-table comment in disassembly on 64-bit
156+
powerpc;
157+
** elide allocation of empty number stack frames on arm64;
158+
** fix crash on x86 platforms in compiling array dereferencing with
159+
computed offsets with negative intermediate results. (lp#2084943)
160+
* enhancement: the error message from standard object slot typecheck
161+
functions in optimized constructors is clearer about the context of the
162+
failed type check.
163+
* enhancement: BREAK is no longer tail-called, even when in tail position.
164+
* enhancement: on arm64 and x86-64, specialized entry points for functions
165+
known to take or return fixed numbers of double floats are generated and
166+
can be automatically called without boxing intermediate floats.
167+
* bug fix: RUN-PROGRAM no longer leaks memory by referencing otherwise
168+
unreachable stream instances.
169+
* bug fix: exporting or unexporting symbols during package iteration no
170+
longer causes any symbol to be visited more times than expected.
171+
* bug fix: DISASSEMBLE preserves the comment marker across line-breaks for
172+
long function or segment names. (lp#1889456, thanks to Fedorov Alexander)
173+
* bug fix: the compiler no longer loops infinitely trying to compile
174+
NOTINLINE calls to known functions with source transform definitions.
175+
(lp#2085451, reported by Fedorov Alexander)
176+
177+
changes in sbcl-2.4.9 relative to sbcl-2.4.8:
178+
* minor incompatible change: FIND, POSITION (and variants) now check :START
179+
and :END arguments for validity as bounding index designators for list
180+
sequences.
181+
* platform support:
182+
** improve support for Solaris and variants on x86 and x86-64. (thanks to
183+
Masatoshi SANO)
184+
** fix a bug in handling timeouts and interrupted system calls in
185+
SB-UNIX:UNIX-SIMPLE-POLL. (lp#2078824, thanks to Michał phoe Herda)
186+
** fix a bug in the lisp understanding of ssize_t under Windows.
187+
** fix large constant encoding in RISC-V. (lp#2077307, reported by
188+
Guillaume LE VAILLANT)
189+
** more parsimonious low-level type tests on arm64.
190+
** building from the result of git-archive should complete without error.
191+
* bug fix: exporting a symbol during package iteration no longer skips other
192+
symbols. (lp#2080387, reported by kbhit)
193+
* optimization: improvements to EQ hash tables and associated hash functions.
194+
* optimization: type checking of string and string-designator is more efficient.
195+
* optimization: the compiler better understands the nature of the results of
196+
CONCATENATE.
197+
3198
changes in sbcl-2.4.8 relative to sbcl-2.4.7:
4199
* bug fix: the elftool utility finds a writeable directory in more
5200
situations. (thanks to Shinmera)

0 commit comments

Comments
 (0)