racket/s
Matthew Flatt afebbdd6a9 convert GC to "mkgc.ss" implementation
Replace repetitive C code in "gc.c" and "vfasl.c" with an
implementation using a little "Parenthe-C" language, which is a
somewhat declarative description of object tracing. From that
descrition, we generate different kinds of tracing functions, such as
the copy function or the sweep function.

The little language is still bascially C, just with parentheses and
parameterization that is much better than trying to use the C
preprocessor. (The "mkgc.ss" file includes the compiler from
Parenthe-C to C.)

Besides replacing existing code, we also generate a new traversal to
implement `compute-object-sizes`. Finally, the GC can now perform a
fused `collect` and `compute-object-sizes` in a single traversal.

Also improve the way that locked objects are detected during GC. This
can make a significant difference (on the order of 10-20% for a full
collection) when locked objects are long-lived.

original commit: de1f5c41d729ac75822a1f1e633ec6d042c883dc
2020-04-04 10:21:16 -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 convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -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 Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
base-lang.ss cptypes: rewrite implementation of primref->argument-predicate 2020-03-07 08:47:37 -03:00
bitset.ss add compute-size-increments 2019-01-05 09:49:12 -07:00
bytevector.ss compress-level parameter, improvement in lz4 compression, and various other related improvements 2019-04-18 05:47:19 -07: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 convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -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 collect in main thread when active 2020-03-23 15:32:00 -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 convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -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 convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -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 convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -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 convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -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 collect in main thread when active 2020-03-23 15:32:00 -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