Commit graph

198 commits

Author SHA1 Message Date
Douglas Katzman 2df1a2bb30 Silence some output of make-target-2 if --noinform was given 2026-08-10 17:02:08 +00: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
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 e071985c6e (setf readtable-base-char-preference): assert-not-standard-readtable 2026-04-16 03:02:20 +03:00
Douglas Katzman 95b53ec87d Transform (SXHASH instance) 2026-03-17 22:51:19 +00:00
Douglas Katzman 7b46ba866f Change some defvars to defglobal 2026-02-28 20:16:45 -05:00
Douglas Katzman e0c54aa096 arm64: implement %vector-cas-pair (for Armv8.1-A or later) 2026-01-08 20:23:56 +00:00
Douglas Katzman b10859f845 Skip tree-shaker if #+sb-devel 2025-12-28 11:48:40 -05:00
Douglas Katzman d23d8006ba Remove the :no-constructor-defun defstruct option
Weaken function names in defstruct-descriptions before tree-shaking
and restore them after. This deletes more constructors than the option.
2025-12-28 11:34:57 -05:00
Douglas Katzman 022b631e9a Chang the shake-tree symbol preservation logic a bit
This doesn't actually change the behavior, it just expresses more packages
in the manner of keeping all external plus some so-called "precious" internal
symbols. Some new symbol are listed as I noticed that they are used
only in tests but are apparently unreferenced from the pristine core.
2025-12-28 10:42:51 -05:00
Christophe Rhodes 664fb21804 Don't fold identical code on #+sb-devel
We lose function identity in a way that makes source locations for
e.g. deftransforms somewhat surprising.
2025-11-18 22:30:23 +00:00
Stas Boukarev 6b5a800bac Don't remove sb-alien::alien-lambda 2025-02-18 20:03:18 +03:00
Stas Boukarev f01e03122d Inline single-use compiler constructors. 2025-01-18 09:34:58 +03:00
Stas Boukarev 477da851c0 More compiler defstruct efficiencies.
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
For :constructor, :predicate, etc.
2025-01-15 04:57:08 +03:00
Douglas Katzman f5373b1546 Remove obsolete workaround
It doesn't matter what the bundled ASDF removes from *FEATURES*
since we don't build contribs with it.
2024-12-03 19:07:47 +00:00
Stas Boukarev 0e32b0bef6 make-derived-union-type: widen bignum types.
Avoids doing slow math repeatedly.

Fixes lp#2085637
2024-10-31 00:08:24 +03:00
Douglas Katzman e6cb5defca Use the simple zstd decompressor, not the streaming API
Some checks failed
CL-host / sbcl (push) Waiting to run
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 / 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
More often than not ZSTD_createDStream and realloc will deadlock or crash
if called in a signal handler, which rendered the C backtracer basically
useless in any complicated debugging scenario where you really needed it.
2024-10-21 02:08:09 +00:00
Douglas Katzman ce4d83fbff Structify compilation-units 2024-08-21 00:35:24 +00:00
Stas Boukarev 73b2555c2d Clear *backend-parsed-vops*
Which is used for VOP inheritance, which is not needed in the target.
Saves about 600KB
2024-05-19 19:22:00 +03:00
Charles Zhang a1ca3fe4f1 Don't have SB-BIGNUM use SB-ALIEN, SB-SYS, or SB-KERNEL.
Which breaks some mutual package use cycles.
2024-05-18 02:32:12 +02:00
Stas Boukarev 23e82e0c94 Compress debug info in make-target-2.
Instead of save-lisp-and-die.
2024-04-30 16:15:36 +03:00
Stas Boukarev 56992f5266 Don't duplicate *features* into +internal-features+ on sb-devel. 2024-04-12 00:21:01 +03:00
Stas Boukarev 1be8c6d758 Preserve all sb-impl:+internal-features+ for sb-devel 2024-04-11 16:47:41 +03:00
Charles Zhang 1d0a27b130 Don't dump the actual top level form for top-level components.
Showing the form doesn't help enough with debugging that saving and
dumping them all the time is justified.
2024-03-19 00:15:13 +01:00
Stas Boukarev 57869a0fde Remove inline expansions in SB-C. 2024-03-02 01:27:59 +03:00
Douglas Katzman 48d5de166c Fix one more bug in perfecthash.c
Again a typo at the & macro. Add random test which managed to hit that line.
Change spelling of TAB and SCRAMBLE to use #A literals.
2024-01-18 00:03:39 -05:00
Douglas Katzman 255f3ead06 Fix ppc64 failure-to-build (from a few weeks ago)
Git rev 7354472bb5 caused NIL to get a bogus widetag.
2024-01-01 23:59:50 -05:00
Stas Boukarev 7354472bb5 set-slot-old-p: consider pseudo-static constants as always old.
Even if there's no allocator.
2023-12-13 15:46:27 +03:00
Douglas Katzman 860d5e8234 Preserve :MARK-REGION-GC in *FEATURES*
and drop :CHENEYGC since it won't build.
2023-10-11 14:32:08 -04:00
Kirill A. Korinsky 64e971b975 Darwin: recovery support non dispatch semaphores
See: 160448fd04
2023-08-30 22:37:22 +02:00
Douglas Katzman de5809667a Improve allocator histogram
- A silly reason prevented the histogram and precise cons-profiling to
  both be enabled: there was a JRCX with an out-of-range branch target.

- Distinguish between "allocator histogram" and "allocator metrics"
  because the former says something about user code that would likely hold
  regardless of the garbage collector implementation, whereas the latter
  measures aspects of gencgc such as the time taken to find free memory.

- Count the sum of bytes allocated for the inexact (power-of-2) bins.

- Instrumentation for the histogram is more amenable to inserting into
  all of the backends than is the code for the precise profiler,
  though at present it is still only implemented on x86-64.
  It is also a little easier to control in a build script, as it requires
  only a change to *features* rather than a compiler policy.
2023-06-06 17:16:32 -04:00
Charles Zhang 8704f528f2 riscv: Make contribs build again.
The issue was that the LINKAGE_TEMP_REG being NL3 was a C argument
register, so of course that caused clashing on C call-out, causing
problems with run-program. Going back to NL7 didn't work either
because it wasn't getting saved before entry into the trampoline. The
code here used to have NL7 before the trampoline code was gutted and
then restored, so I'm wondering how this ever worked before, because
it definitely did. Pick LIP as the TEMP_REG now because not only does
it get saved, it's also the least likely thing to get disturbed by
clobbering.

Fixes #lp2002930.

Also remove assembly routine printing because it doesn't need to be
part of the build script (unlike the other files in output/ which
can't trivially be recovered from a built image), and because not all
disassembler printers have been written on riscv yet.
2023-06-01 16:54:43 +02:00
Charles Zhang dd0f579028 Delete metaspace.
The feature was checked-in without being completed and it's already
bitrotted. Wrapper is folded back into layout name-wise for the most
part now because that's how it's been effectively functioning. There
are still probably more cleanups to be done, related to this, but this
takes care of most of the dead code and unnecessary layers of
alternate names/indirection.
2023-05-21 17:35:43 +02:00
Douglas Katzman fd0ca5628e Disassemble all assembly routines to a file 2023-05-02 04:16:57 -04:00
Douglas Katzman 187704c133 Reduce spurious noise
When detecting format control strings that contain potential mentions
of SB- packages, MAP-ALLOCATED-OBJECTS could find suspiciously live strings,
but then if GC occurs in the printing loop smashing some weak pointers
it could print "Found string NIL" so re-test for a non-broken weak pointer.
2023-03-23 18:09:19 -04:00
Stas Boukarev 6ce2c5fc08 Restore sb-devel 2023-01-29 18:53:31 +03:00
Douglas Katzman 569eded955 Prefer exported symbol 2023-01-15 12:37:18 -05:00
Douglas Katzman 4fe0fa4088 Fix lp#2002896 2023-01-15 11:31:41 -05:00
Douglas Katzman f9b92e43b9 Shake tree harder 2023-01-08 15:58:20 -05:00
Douglas Katzman 14141b4f79 Fix %symtbl-count
(Not sure why I thought SIZE couldn't be zero)
2023-01-08 15:03:21 -05:00
Douglas Katzman d801db2da3 Remove the CTYPE-OF cache
It pre-dates the ability to return literal ctypes given a constant call
to SPECIFIER-TYPE, and pre-dates hash-consing in general.
So it doesn't do much. Plus there is no such cache in make-host-1.
Or "what's good for the goose is good for the gander"
where "goose" = make-host-1 and "gander" = everything else.
2023-01-03 12:05:19 -05:00
Douglas Katzman 2acc965db2 Convince some bootstrap symbols to shake out 2022-12-10 19:53:30 -05:00
Douglas Katzman c095d870e6 Fix build 2022-12-01 16:01:04 -05:00
Douglas Katzman 776fbe9208 Fix bug in find-containing-arena
Returned from the wrong loop
2022-12-01 15:15:56 -05:00
Douglas Katzman 781036b8bd Give users a way to craft their code that anticipates arenas
so that it builds OK whether or not arenas do anything.
2022-10-21 14:41:45 -04:00
Douglas Katzman 9255dbbc30 Do more bootstrap symbol shake-out 2022-10-01 02:07:58 -04:00
Douglas Katzman c74e342394 Remove initial-core-symbol-bit
Testing the generation works better
2022-10-01 02:05:59 -04:00
Douglas Katzman 6b3a7c0ec0 Cause some cold-init symbols to be shaken out 2022-09-29 12:21:23 -04:00
Douglas Katzman 1c5f82b95e Shake out a few more symbols
Firstly, find-fdefn on a symbol is *not* redundant with having globladb info
since the fdefn goes in its own slot. But also the test was wrong
because it's trying to check whether the symbol is currently FBOUNDP.
Since FDEFNs can't go away, this change finds a little more to remove.
In practice, some un-fboundp symbols aren't removed because they have code
references, like STREAM-EXTERNAL-FORMAT calling S-%STREAM-EXTERNAL-FORMAT
which is defined only if sb-simple-streams gets loaded, etc, etc.
2022-09-15 11:04:36 -04:00
Stas Boukarev 71c39187c7 Fix +sb-devel 2022-09-12 18:43:06 +03:00