Commit graph

136 commits

Author SHA1 Message Date
Douglas Katzman 386706b438 Update crossbuild makefile 2026-09-02 19:09:44 +00:00
Douglas Katzman c5d1a5ce8e Enable a crossbuild test of :tls-based-mv-return 2026-08-30 16:57:03 -04:00
Douglas Katzman d3fa62156f Limit the scope of warning suppressions
* Rev 906a406a quieted all compiler notes coming from make-host-1,
  rendering moot the muffle-conditions code-deletion-note in shared.lisp,
  not to mention (satisfies unable-to-optimize-note-p) there as well.
* Prevent introduction of new occurrences of the optional+key warning
  by confining the suppression to precisely where there is old code.

We need to fix whatever is wrong with cross-typep so that make-host-2
correctly utilizes the &OPTIONAL-AND-&KEY-IN-LAMBDA-LIST condition.
2026-07-17 23:59:27 +00:00
Douglas Katzman 9c82bf8bdc Add missing feature to arm64 crossbuild test 2026-07-17 22:18:51 +00:00
Douglas Katzman 74f07eb8f4 Fix crossbuild-runner
It doesn't work to omit avx512 from the darwin config which may have been
inadvertent. It's suspicious that a new non-working Makefile was checked in.
And I'm not sure why there are 5 features keywords to do one thing
if all of them are in fact mandatory as of now.
2026-07-04 20:42:56 +00:00
arthur bdc8c073cf Basic support for avx512 2026-07-01 04:31:38 +03:00
Stas Boukarev 4888d390b9 Don't advertise :alien-callbacks on mips 2026-02-25 17:18:48 +03:00
Douglas Katzman 9ffabf0a4d build-all-cores 2026-01-20 14:14:37 -05:00
ZiLong Wang c5e8e5d2ff crossbuild-runner backends for loongarch 2026-01-19 06:34:44 +03:00
Douglas Katzman 9c841cfd69 Test a #-sb-unicode 64-bit build 2025-09-10 12:23:04 -04:00
Douglas Katzman 0c37e54a4b Remove sb-unix:espipe, unused as of rev 8cad0235 2025-09-10 08:51:16 -04:00
Douglas Katzman 637800e3aa Define sizeof-unw-cursor for xbuild test 2025-09-04 13:17:49 -04:00
Stas Boukarev cde8d44d2e Add os-provides-clock-gettime to crossbuild. 2025-08-13 02:15:11 +03:00
Douglas Katzman ca829a3c37 Actually cease attempting to build a non-working config 2025-05-05 18:16:34 +00:00
Douglas Katzman f7479117f5 x86-64: Always enable static space relocation 2025-04-20 20:45:21 +00:00
Douglas Katzman b99036a396 Fix build-all-cores
Some checks failed
CL-host / ecl (push) Waiting to run
CL-host / clisp (push) Waiting to run
CL-host / ccl (push) Waiting to run
CL-host / cmucl (push) Waiting to run
CL-host / sbcl (push) Waiting to run
CL-host / compare-xc-host-fasls (ccl, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (clisp, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (cmucl, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (self, false) (push) Blocked by required conditions
Linux / build (x86, --with-sb-thread, ) (push) Waiting to run
Linux / build (x86, --without-sb-thread, ) (push) Waiting to run
Linux / build (x86, --without-sb-unicode, ) (push) Waiting to run
Linux / build (x86-64, --with-mark-region-gc) (push) Waiting to run
Linux / build (x86-64, --with-sb-fasteval --without-sb-eval, fasteval) (push) Waiting to run
Linux / build (x86-64, --with-sb-thread, ) (push) Waiting to run
Linux / build (x86-64, --with-sb-thread, sse4) (push) Waiting to run
Linux / build (x86-64, --without-sb-thread, ) (push) Waiting to run
Linux / build (x86-64, --without-sb-unicode, ) (push) Waiting to run
Mac / build (--without-sb-thread, x86-64) (push) Waiting to run
Mac / build (arm64, --with-mark-region-gc) (push) Waiting to run
Mac / build (arm64, --with-sb-thread) (push) Waiting to run
Mac / build (x86-64, --with-mark-region-gc) (push) Waiting to run
Mac / build (x86-64, --with-sb-thread) (push) Waiting to run
Windows / build (push) Waiting to run
Linux qemu / ppc64le (push) Failing after 1s
2024-12-15 08:19:03 -05:00
Douglas Katzman c72b9a0771 ppc64: Switch to #+linkage-space for full calls
Some checks are pending
CL-host / ecl (push) Waiting to run
CL-host / clisp (push) Waiting to run
CL-host / ccl (push) Waiting to run
CL-host / cmucl (push) Waiting to run
CL-host / sbcl (push) Waiting to run
CL-host / self (push) Waiting to run
CL-host / compare-xc-host-fasls (ccl, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (clisp, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (cmucl, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (self, false) (push) Blocked by required conditions
Linux / build (x86, --with-sb-thread, ) (push) Waiting to run
Linux / build (x86, --without-sb-thread, ) (push) Waiting to run
Linux / build (x86, --without-sb-unicode, ) (push) Waiting to run
Linux / build (x86-64, --with-mark-region-gc) (push) Waiting to run
Linux / build (x86-64, --with-sb-fasteval --without-sb-eval, fasteval) (push) Waiting to run
Linux / build (x86-64, --with-sb-thread, ) (push) Waiting to run
Linux / build (x86-64, --with-sb-thread, sse4) (push) Waiting to run
Linux / build (x86-64, --without-sb-thread, ) (push) Waiting to run
Linux / build (x86-64, --without-sb-unicode, ) (push) Waiting to run
Mac / build (--without-sb-thread, x86-64) (push) Waiting to run
Mac / build (arm64, --with-mark-region-gc) (push) Waiting to run
Mac / build (arm64, --with-sb-thread) (push) Waiting to run
Mac / build (x86-64, --with-mark-region-gc) (push) Waiting to run
Mac / build (x86-64, --with-sb-thread) (push) Waiting to run
Windows / build (push) Waiting to run
The call sequence needs only 1 add and 1 load where it used to need 3
loads for fdefn, fun, raw-fun. So while it is potentially faster, the
motivation was actually to remove support for untagged-fdefns which
strew #+/- all over the place.

The regression suite on ppc64 seems to be no more unstable than is typical.
I haven't observed a clean run in probably a year, and it may also be
getting some memory-ordering-related bugs due to the hash-table patches.
2024-08-17 04:49:54 +00:00
Douglas Katzman a2c50e6eee Remove :salted-symbol-hash as a choice 2024-08-06 22:03:08 +00:00
Douglas Katzman 99f594e9da Implement #+salted-symbol-hash (almost) everywhere else
But as usual I do not know how to to run on 32-bit riscv.
Next step is to delete the feature name.
2024-08-06 20:55:55 +00:00
Stas Boukarev 8bffe9edcc - accidental change.
Some checks are pending
CL-host / ecl (push) Waiting to run
CL-host / clisp (push) Waiting to run
CL-host / ccl (push) Waiting to run
CL-host / cmucl (push) Waiting to run
CL-host / sbcl (push) Waiting to run
CL-host / self (push) Waiting to run
CL-host / compare-xc-host-fasls (ccl, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (clisp, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (cmucl, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (self, false) (push) Blocked by required conditions
Linux / build (x86, --with-sb-thread, ) (push) Waiting to run
Linux / build (x86, --without-sb-thread, ) (push) Waiting to run
Linux / build (x86, --without-sb-unicode, ) (push) Waiting to run
Linux / build (x86-64, --with-mark-region-gc) (push) Waiting to run
Linux / build (x86-64, --with-sb-fasteval --without-sb-eval, fasteval) (push) Waiting to run
Linux / build (x86-64, --with-sb-thread, ) (push) Waiting to run
Linux / build (x86-64, --with-sb-thread, sse4) (push) Waiting to run
Linux / build (x86-64, --without-sb-thread, ) (push) Waiting to run
Linux / build (x86-64, --without-sb-unicode, ) (push) Waiting to run
Mac / build (--without-sb-thread, x86-64) (push) Waiting to run
Mac / build (arm64, --with-mark-region-gc) (push) Waiting to run
Mac / build (arm64, --with-sb-thread) (push) Waiting to run
Mac / build (x86-64, --with-mark-region-gc) (push) Waiting to run
Mac / build (x86-64, --with-sb-thread) (push) Waiting to run
Windows / build (push) Waiting to run
2024-07-20 04:33:35 +03:00
Stas Boukarev 030084b3f1 Adjust crossbuild-runner/backends/arm64/linux-headers.lisp 2024-07-20 03:49:31 +03:00
Stas Boukarev 8bdd26cbc9 Fix 32-bit stuff-groveled-from-headers for crossbuild-runner 2024-07-20 03:11:05 +03:00
Stas Boukarev 5d2ae935a0 Fix stuff-groveled-from-headers for crossbuild-runner 2024-07-20 02:11:43 +03:00
Douglas Katzman 13e6c55207 Fix Makefile 2024-07-17 15:25:53 +00:00
Charles Zhang 4ddf90c073 Add a build test for #+(and arm64 immobile-space). 2024-07-17 14:07:00 +02:00
Douglas Katzman e69a2fdd2d x86-64: Implement lisp linkage-space as per doc/internals-notes
Some checks failed
CL-host / ecl (push) Has been cancelled
CL-host / clisp (push) Has been cancelled
CL-host / ccl (push) Has been cancelled
CL-host / cmucl (push) Has been cancelled
CL-host / sbcl (push) Has been cancelled
CL-host / self (push) Has been cancelled
Linux / build (x86, --with-sb-thread, ) (push) Has been cancelled
Linux / build (x86, --without-sb-thread, ) (push) Has been cancelled
Linux / build (x86, --without-sb-unicode, ) (push) Has been cancelled
Linux / build (x86-64, --with-mark-region-gc) (push) Has been cancelled
Linux / build (x86-64, --with-sb-fasteval --without-sb-eval, fasteval) (push) Has been cancelled
Linux / build (x86-64, --with-sb-thread, ) (push) Has been cancelled
Linux / build (x86-64, --with-sb-thread, sse4) (push) Has been cancelled
Linux / build (x86-64, --without-sb-thread, ) (push) Has been cancelled
Linux / build (x86-64, --without-sb-unicode, ) (push) Has been cancelled
Mac / build (--without-sb-thread, x86-64) (push) Has been cancelled
Mac / build (arm64, --with-mark-region-gc) (push) Has been cancelled
Mac / build (arm64, --with-sb-thread) (push) Has been cancelled
Mac / build (x86-64, --with-mark-region-gc) (push) Has been cancelled
Mac / build (x86-64, --with-sb-thread) (push) Has been cancelled
Windows / build (push) Has been cancelled
CL-host / compare-xc-host-fasls (ccl, false) (push) Has been cancelled
CL-host / compare-xc-host-fasls (clisp, false) (push) Has been cancelled
CL-host / compare-xc-host-fasls (cmucl, false) (push) Has been cancelled
CL-host / compare-xc-host-fasls (self, false) (push) Has been cancelled
This rectifies many awkward aspects of the immobile space fdefns
which it replaces.

All other architectures should be unaffected by the patch.

Tested with with +/- {immobile-space, sb-thread, mark-region}
on linux, and the default config on windows and macOS.
2024-07-03 11:22:51 -04:00
Douglas Katzman 0db2006024 Add a 32-bit fasteval test config 2024-05-04 15:01:04 -04:00
Douglas Katzman f3145c7c2e Enable #+salted-symbol-hash for 32-bit arm 2024-03-15 16:06:41 -04:00
Douglas Katzman a10ba64237 Add #+salted-symbol-hash to 32-bit x86 config
Only 3 bits available for randomness without robbing from the name hash bits,
reducing SXHASH range and messing up xperfecthash30. Better than nothing.
2024-03-12 09:28:33 -04:00
Douglas Katzman 0b505bc5a4 Add a fasteval build config 2024-03-06 08:30:14 -05:00
Douglas Katzman d8befc4545 Add a build test for #+(and arm64 relocatable-static-space) 2024-03-04 15:11:33 -05:00
Douglas Katzman 74c3889094 Enable #+salted-symbol-hash for 64-bit riscv 2024-03-04 10:42:03 -05:00
Douglas Katzman dc8b80d67a ppc64: enable #+salted-symbol-hash 2024-03-03 20:29:45 -05:00
Douglas Katzman 25eb5adb96 x86-64: store SYMBOL-NAME-HASH in the high 4 bytes of hash slot
So now NIL's name-hash is 0 given that static space is below 4GB
and the SYMBOL-NAME-HASH accessor is simply a 32-bit MOV.
Also put 1 random byte in the hash slot so that SYMBOL-HASH is a
slightly better hash function for EQL,EQUAL,EQUALP tables.
2024-03-03 11:07:21 -05:00
Christophe Rhodes 1dc158e972 Make there be a sparc target
For the benefit of github CI, which defines a sparc crossbuild.

Additionally, make build-all-cores.sh exit with the exit code of the
underlying make job, if it gets that far.
2024-02-10 18:30:27 +00:00
Douglas Katzman 1cdb582cca Add a crossbuild test config for #-sb-unicode
which happens to be #+win32 and exposed a bug that a no-longer-needed allowance
for warnings caused it to exit with success despite a missing BASE-CHAR-P, and
also that there was also a pre-existing warning in stream.lisp if #-sb-unicode.
2024-02-09 17:07:10 -05:00
Douglas Katzman f9140652df Fix for different GNU make internals
one uses --jobserver-auth, one uses --jobserver-fds
2024-02-07 04:57:26 -05:00
Douglas Katzman 2b335ca5e4 Avoid rewriting Makefile if unchanged
And fix missing 'git add' from rev 85619d59ae
2024-02-05 08:03:06 -05:00
Douglas Katzman ff13bbf506 Accept -jN arg to build-all-cores
and don't redirect *stdout* and *stderr* if -j1.

You can specify more than one target, and they will follow one another
with no chance of overlap since it's sequential. This should give more-or-less
the same behavior as the deleted crossbuild-runner/build-all.sh script.

We can add a few more indicators of where each build starts,
but this is probably adequate for now.
2024-02-05 03:55:25 -05:00
Douglas Katzman 85619d59ae Correct the features of arm64-darwin xbuild test
I'm starting to think that make-host-2 might need to suppress the MEMBER
transform if a constant list has a NIL, because the address of NIL is
sensitive to static-space-start, necessitating xperfecthash entries
for each choice. Nonetheles, gathering an exhaustive list of known good
configurations to test isn't in itself an unreasonable thing.
2024-02-05 01:43:49 -05:00
Douglas Katzman 78a0ff78f9 Improve build-all-cores.sh
* Merge xperfecthash file diffs back into the main file
* Rather than hardwiring the choice of OS in pass-1.lisp, put the choice
  in the configuration params. Unfortunately stuff-groveled-from-headers
  may need to exist in different incarnations due to package issues.
2024-02-05 00:51:41 -05:00
Douglas Katzman 57a8929253 Delete 2 scripts and add a better one- build-all-cores.sh
Neither make-all-targets.sh nor crossbuild-runner/build-all.sh could
do everything deisired. build-all.sh could incorporate changes to xperfecthash
and xfloat-math into the revison-controlled files, but could not use >1 host
CPU (via "make -j") whereas in contrast, make-all-targets could utilize >1 CPU
but could not merge diffs into xperfecthash or or xfloat-math.

This new script can, in theory (i.e. not yet), merge target-specific journal
updates into the git-controlled files, while also using N CPUs.
It also corrects the defect of pass-2.lisp that it never wrote .core artifacts,
causing Make to re-run when it need not. Additionally, since Makefile is now
autogenerated we can insert approximate dependencies - in so far as it would
select the same subset of build-order.lisp-expr as would an ordinary build.

Also we gain the ability to specify more than one set of *FEATURES* to be
built for a given architecture. It simply needs a distinct "config name".
2024-02-04 21:56:11 -05:00
Douglas Katzman f0ef90a4a2 Kill obsolete sbcl.nm refs after cf6a01774b removed that file 2024-02-04 21:31:40 -05:00
Douglas Katzman 9863540f7e Add :immobile-space to #+win32 crossbuild test 2024-02-02 15:04:45 -05:00
Douglas Katzman 1a74090745 arm64: switch to soft card marks
This was performance-neutral in my limited testing- the regression
suite consumes the same amount of time before and after. Given that the
compiler probably takes a little longer due to deciding to emit barriers,
the runtime of the code under test seems as good if not better.

Thanks to Stas for some help with Darwin changes.
2023-11-20 23:24:11 -05:00
Stas Boukarev dd79dc37f6 Remove :integer-eql-vop feature, use vop-existsp instead. 2023-09-05 06:57:57 +03:00
Douglas Katzman 2d77e3315a Fix make-all-targets.sh for sparc
Rev db461ef1 changed the crossbuild test to simulate :sunos and not :linux
which, among other things, removed a constant for CLOCK-THREAD-CPUTIME-ID.
2023-07-29 21:11:56 +00:00
Stas Boukarev 5cbfc91b50 Real stuff-groveled-from-headers.lisp for crossbuild-runner/x86* 2023-07-17 11:53:33 +03:00
Douglas Katzman db461ef1be Add :SUNOS to sparc crossbuild test 2023-06-09 00:01:20 -04:00
Douglas Katzman 84c376c550 x86-64: Use immobile-space conditionals less confusingly
Whether funcallable-instances contain executable instructions has nothing
to do with either #+immobile-space or #+compact-instance-header any more.
Which is to say, it has not actually been tied to those, but misuse of
conditionals implied a dependence. In fact funcallable-instances were removed
from immobile-space some time ago (as were closure-calling trampolines) due to
inability to write to text segments in ELF cores.

So this changes adds an :EXECUTABLE-FUNINSTANCES feature, thereby undoing
misuse of the others, and generally makes x86-64 more consistent regardless
of +/- immobile-space. Despite introducing a new feature, it reduces
the amount of differentiation between possible x86-64 configurations.
2023-05-02 16:42:52 -04:00