Commit graph

15 commits

Author SHA1 Message Date
Charles Zhang 0f1fb5049a riscv: Fix potential source of GC unsafety.
Instead of trying to materialize immediate values greater than 32
bits, which is hard to do GC-safely on riscv64, don't treat >32 bit
immediate values as immediates at all. Rather, always treat them as
boxed constants. If we ever fix up how immediates are materialized on
riscv64, such that no untagged intermediates could possibly be loaded
into descriptor-regs, then we can go back to loading in immediates for
all fixnum values.

This also corrects a misunderstanding on what immediate-constant-sc is
supposed to do, as tested for in vm.before-xc.lisp. It's actually
entirely backend/implementation dependent for what we treat as an
immediate. It just happened that on 32-bit MIPS, encoded fixnums
coincided with the conveniently materializable immediate, so the idea
of fixnum = immediate got adopted to the other platforms, even when
this wasn't the original design intention.

And also give SAPs the same treatment.
2022-04-17 11:45:17 -07:00
Charles Zhang dd407e3c31 Ensure unqualified standard library constants refer to target values.
Rather than complaining when someone uses a host constant by accident,
make this mistake almost impossible by having unqualified constant
references always do the right thing.
2020-08-17 19:10:40 -07:00
Douglas Katzman 28ddc79abc Perform colonectomy 2020-04-16 17:12:58 -04:00
Douglas Katzman f91a811205 Replace all remaining "#![-+]" with "#[-+]" 2019-01-29 14:13:37 -05:00
Douglas Katzman 2def8ebf95 Search-and-replace SB!XC with SB-XC 2018-12-05 11:54:16 -05:00
Douglas Katzman 317aed7500 Search-and-replace SB!C with SB-C 2018-12-05 11:50:01 -05:00
Douglas Katzman 36910867d8 Search-and-replace SB!VM with SB-VM
Performed via:
 % perl -pi -e 's/SB!VM/SB-VM/g' **/*lisp *.lisp-expr **/*.texinfo
 % perl -pi -e 's/sb!vm/sb-vm/g' **/*lisp *.lisp-expr
2018-12-04 22:24:42 -05:00
Douglas Katzman 17678bcccf Really fix vm.before-xc.lisp 2018-02-06 19:27:59 -05:00
Douglas Katzman 55fe3fe772 Avoid reader syntax extension in portable code 2018-02-06 12:30:22 -05:00
Douglas Katzman 49cd9d548b Increase aggressiveness of tree shaker when saving initial core
Prior to saving, we unintern all symbols, pointing weakly to them,
then collect garbage (starting only at static roots and stacks),
and re-intern the non-broken pointers.
Any symbol with a reference chain from a known root is always retained.
A symbol having no incoming reference except for a package is dealt
with in one of the following manners dependent on its home package:
 1. require preserving all external symbols
    (with some new exports in package-data-list to make this work)
 2. preserve only specific (ad-hoc) internal symbols
 2. preserve externals plus some specific symbols
 4. preserve any symbol with any interesting properties at all-
    function binding, value, globaldb data, etc.

The result is more than a 4% core size reduction with x86-64.

It is likely that this will discover occurences of add-on libraries
poking around with SBCL-internal symbols that disappeared.
This is as intended even if means having to unbreak some things
by fixing 3rd-party code or adding more symbol preservation exceptions.
2018-02-05 01:27:35 -05:00
Douglas Katzman 44c07c9f72 Use SC number constants rather than calling SC-NUMBER-OR-LOSE 2017-11-17 11:42:51 -05:00
Douglas Katzman 5a3e8299f3 Remove needless confusion. Don't rename SB!XC <-> SB-XC 2017-11-13 19:00:32 -05:00
Stas Boukarev f6b2e37574 Get rid of vm-support-routines indirection.
VM routines were defined using two functions, one calling another
through structure slots. This is unnecessary, removing leads to a
~200KB core size reduction on x86-64.
2013-06-05 22:24:54 +04:00
William Harold Newman 4898ef32c6 0.9.2.43:
another slice of whitespace canonicalization
	(Anyone who ends up here with "cvs annotate" probably
		wants to look at the "tabby" tagged version.)
2005-07-14 16:30:05 +00:00
Christophe Rhodes 8a8568603c 0.8.21.17:
Fix fixnum / sb!xc:fixnum xc bug (as in discussion with Bruno Haible
	sbcl-devel 2005-03/2005-04)
	... don't use the CL:FIXNUM type in immediate-constant-sc;
	... write and use a test in before-xc.
2005-04-05 11:03:19 +00:00