racket/s
Matthew Flatt f53f20b5b9 GC marking (non-copying) mode
Change the GC so that it can mark and sweep objects in-place, instead
of always copying. This change is helpful for reducing peak memory
use while performing a collection on a large, old heap.

Some non-copying support was already in place for locked objects,
but the new implementation is faster and more general. As an
alternative to locking, the storage manager now provides "immobile"
allocation (currently only for bytevectors, vectors, and boxes),
which allocates an object that won't move but that can be GCed if
it's not referenced. A locked object is an object that has been
immobiled and that is on a global list --- mostly the old,
non-scalable implementation of locked objects brought back, since
immobile objects cover the cases that need to scale.

original commit: aecb7b736cb1d52764c292fa6364a674958dfde3
2020-04-22 07:10:02 -06:00
..
.gitattributes install a file containing revision control information alongside boot files 2019-03-27 12:42:28 -04:00
4.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
5_1.ss add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
5_2.ss Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
5_3.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
5_4.ss add string-append-immutable 2019-12-17 19:29:10 -07:00
5_6.ss add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
5_7.ss make strings within symbols always immutable 2019-12-16 17:11:49 -07:00
6.ss improved consistency of Windows filename handling 2018-10-22 16:17:12 -04:00
7.ss fix leak related to object counts 2020-04-16 16:16:13 -06:00
a6fb.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
a6le.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
a6nb.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
a6nt.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
a6ob.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
a6osx.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
a6s2.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
arm32.ss more compact return points for function calls 2020-01-24 19:19:32 -07:00
arm32le.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
back.ss GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
base-lang.ss cptypes: rewrite implementation of primref->argument-predicate 2020-03-07 08:47:37 -03:00
bytevector.ss GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
cafe.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
cback.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
cmacros.ss GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
compile.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
costctr.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
cp0.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
cpcheck.ss Add support for record types with anonymous fields 2020-02-11 06:10:47 -07:00
cpcommonize.ss improve cross-library inlining 2020-01-19 08:35:02 -07:00
cpletrec.ss Add support for record types with anonymous fields 2020-02-11 06:10:47 -07:00
cpnanopass.ss GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
cprep.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
cptypes.ss cptypes: fix reduction of $value in ignored expressions 2020-04-01 18:59:22 -03:00
cpvalid.ss add enable-unsafe-variable-reference 2020-01-30 17:46:30 -07:00
date.ss Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
debug.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
engine.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
enum.ss enum-set-indexer procedure now checks for a symbol, changed "isn't" to "is not" for consistency 2017-05-05 15:22:46 -04:00
env.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
event.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
exceptions.ss cpvalid: obey enable-error-source-expression 2019-12-05 16:41:47 -07:00
expand-lang.ss library-manager, numeric, and bytevector-compres improvements 2020-02-21 13:48:47 -08:00
expeditor.ss export ee-backward-delete-sexp binding in the expression-editor module. (#439) 2019-07-25 14:41:55 -04:00
fasl-helpers.ss fasl: move uptr continue bit from low to high 2019-12-06 16:43:26 -07:00
fasl.ss fix annotation argument in fasl step 2020-03-07 07:59:16 -07:00
foreign.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
format.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
front.ss add enable-unsafe-variable-reference 2020-01-30 17:46:30 -07:00
ftype.ss committing a handful of changes, none of which should be particularly 2019-02-11 20:06:42 -08:00
fxmap.ss Additional improvements in cptypes 2018-04-12 21:54:19 -03:00
hashtable-types.ss add make-ephemeron-eq-hashtable, etc. 2017-07-06 16:27:23 -06:00
i3fb.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
i3le.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
i3nb.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
i3nt.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
i3ob.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
i3osx.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
i3qnx.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
i3s2.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
inspect.ss remove old implementation of compute-size-increments 2020-04-04 10:28:06 -06:00
interpret.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
io-types.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
io.ss Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
layout.ss Add support for record types with anonymous fields 2020-02-11 06:10:47 -07:00
library.ss add call-in-continuation 2020-03-12 04:48:39 -06:00
mathprims.ss add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
Mf-a6fb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6nb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6nt changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6ob changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6osx changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-a6s2 changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-arm32le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-base remove old implementation of compute-size-increments 2020-04-04 10:28:06 -06:00
Mf-cross Various updates, mostly to the compiler, including a new lambda 2018-01-29 09:20:07 -05:00
Mf-i3fb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3nb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3nt changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3ob changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3osx changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3qnx changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-i3s2 changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ppc32le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6fb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6nb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6nt changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6ob changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6osx changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ta6s2 changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3fb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3nb changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3nt changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3ob changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3osx changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-ti3s2 changed copyright year to 2017 2017-04-06 11:41:33 -04:00
Mf-tppc32le changed copyright year to 2017 2017-04-06 11:41:33 -04:00
mkgc.ss GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
mkheader.ss convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
newhash.ss add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
np-languages.ss add call-in-continuation 2020-03-12 04:48:39 -06:00
patch.ss committing a handful of changes, none of which should be particularly 2019-02-11 20:06:42 -08:00
pdhtml.ss Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
ppc32.ss more compact return points for function calls 2020-01-24 19:19:32 -07:00
ppc32le.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
pretty.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
primdata.ss GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
priminfo.ss cptypes: rewrite implementation of primref->argument-predicate 2020-03-07 08:47:37 -03:00
primref.ss cptypes: rewrite implementation of primref->argument-predicate 2020-03-07 08:47:37 -03:00
prims.ss GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
primvars.ss cptypes: rewrite implementation of primref->argument-predicate 2020-03-07 08:47:37 -03:00
print.ss Add support for record types with anonymous fields 2020-02-11 06:10:47 -07:00
read.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
record.ss Add support for record types with anonymous fields 2020-02-11 06:10:47 -07:00
reloc.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
setup.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
strip.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
strnum.ss fixup for string->number 2019-01-18 05:27:51 -07:00
syntax.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
ta6fb.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
ta6le.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
ta6nb.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
ta6nt.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
ta6ob.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
ta6osx.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
ta6s2.def use POPCNT instruction when available on x86_64 2020-01-11 11:04:48 -07:00
ti3fb.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
ti3le.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
ti3nb.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
ti3nt.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
ti3ob.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
ti3osx.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
ti3s2.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
tppc32le.def add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
trace.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
types.ss add support for continuation attachments 2018-07-25 09:43:50 -06:00
ubify.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
update-revision avoid --exclude with git-describe 2019-12-27 04:58:56 -06:00
x86_64.ss fix typo in a debugging assertion 2020-03-07 07:06:05 -07:00
x86.ss fix x86 (32-bit) __collect-safe callable 2020-03-17 20:31:37 -06:00