racket/mats
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
..
3.ms fix missing continuation call in cp-push-mvrs 2020-01-20 09:27:45 -07:00
4.ms add call-in-continuation 2020-03-12 04:48:39 -06:00
5_1.ms change eqv? to recognize +nan.0s as equivalent 2019-01-17 09:05:13 -07:00
5_2.ms make test for relop-length more sensitive 2019-05-24 10:33:52 -04:00
5_3.ms Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
5_4.ms Merge github.com:cisco/ChezScheme 2019-02-17 18:22:55 -07:00
5_5.ms add string-append-immutable 2019-12-17 19:29:10 -07:00
5_6.ms make a test portable 2020-01-20 15:00:56 -07:00
5_7.ms make strings within symbols always immutable 2019-12-16 17:11:49 -07:00
5_8.ms add box-cas! and vector-cas! 2018-07-16 07:51:32 -06:00
6.ms add call-in-continuation 2020-03-12 04:48:39 -06:00
7.ms Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
8.ms library-manager, numeric, and bytevector-compres improvements 2020-02-21 13:48:47 -08:00
bytevector.ms library-manager, numeric, and bytevector-compres improvements 2020-02-21 13:48:47 -08:00
cat_flush.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
cfl.ms changed copyright year to 2017 2017-04-06 11:41:33 -04:00
cp0.ms Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
cptypes.ms cptypes: fix reduction of $value in ignored expressions 2020-04-01 18:59:22 -03:00
date.ms fix bug in date->time-utc caused by incorrect use of difftime in Windows 2017-12-29 16:48:30 -05:00
enum.ms 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
examples.ms fixed gather-filedata's sort of profile entries. for any two 2017-10-30 21:01:43 -04:00
exceptions.ms changed copyright year to 2017 2017-04-06 11:41:33 -04:00
fl.ms fix flround on [-0.5, 0.0) 2019-06-21 12:26:00 -06:00
foreign.ms fix __collect_safe on x86_64 for floating point args/results 2019-09-13 14:24:20 -04:00
foreign1.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
foreign2.c fix string allocation for callable argument or foreign-call return 2019-01-27 13:01:57 -07:00
foreign3.c Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
foreign4.c x86_64: fix foreign-procedure & results that are not multiples of a word 2018-06-15 13:59:34 -04:00
format.ms changed copyright year to 2017 2017-04-06 11:41:33 -04:00
freq.in initial upload of open-source release 2016-04-26 10:04:54 -04:00
freq.out initial upload of open-source release 2016-04-26 10:04:54 -04:00
ftype.h changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ftype.ms 9.5.2 changes: 2019-03-21 14:30:49 -07:00
fx.ms fix cp0 reduction of fx[+-*]/carry and their signatures 2017-10-09 12:09:50 -03:00
hash.ms Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
ht.ss changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ieee.ms adjust sqrt and log on -0.0 2019-06-21 12:48:42 -06:00
io.ms fix open-string-input-port on immutable strings 2019-07-02 13:17:39 -04:00
m4test.in changed copyright year to 2017 2017-04-06 11:41:33 -04:00
m4test.out initial upload of open-source release 2016-04-26 10:04:54 -04:00
mat.ss Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
Mf-a6fb support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-a6le support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-a6nb support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-a6nt Now opening 9.5.3 release. Intent is to formally release 9.5.2 2019-03-21 15:07:39 -07:00
Mf-a6ob support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-a6osx support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-a6s2 support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-arm32le support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-base Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
Mf-i3fb support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-i3le support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-i3nb support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-i3nt Now opening 9.5.3 release. Intent is to formally release 9.5.2 2019-03-21 15:07:39 -07:00
Mf-i3ob support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-i3osx support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-i3qnx support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-i3s2 support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-ppc32le support struct args to and results from foreign procedures 2018-03-12 21:01:47 -06:00
Mf-ta6fb Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ta6le Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ta6nb Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ta6nt Now opening 9.5.3 release. Intent is to formally release 9.5.2 2019-03-21 15:07:39 -07:00
Mf-ta6ob Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ta6osx Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ta6s2 Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ti3fb Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ti3le Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ti3nb Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ti3nt Now opening 9.5.3 release. Intent is to formally release 9.5.2 2019-03-21 15:07:39 -07:00
Mf-ti3ob Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ti3osx Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-ti3s2 Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
Mf-tppc32le Add __thread foreign-call convention 2018-03-14 17:20:33 -06:00
misc.ms convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
oop.ms changed copyright year to 2017 2017-04-06 11:41:33 -04:00
oop.ss initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-2-f-f-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-2-f-t-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-2-f-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-2-t-f-f print positive flonum exponents with "+" 2019-06-21 12:19:59 -06:00
patch-compile-2-t-f-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-2-t-t-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-2-t-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-3-f-f-t initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-3-f-t-f initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-3-f-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-3-t-f-f initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-3-t-f-t initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-3-t-t-f initial upload of open-source release 2016-04-26 10:04:54 -04:00
patch-compile-3-t-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-0-f-f-t Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
patch-compile-0-f-t-f add call-in-continuation 2020-03-12 04:48:39 -06:00
patch-compile-0-f-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-compile-0-t-f-f add call-in-continuation 2020-03-12 04:48:39 -06:00
patch-compile-0-t-f-t Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
patch-compile-0-t-t-f Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
patch-compile-0-t-t-t Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-interpret-2-f-f-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-interpret-2-f-t-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-interpret-2-t-f-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-interpret-2-t-t-f Add date-dst? and date-zone-name procedures 2017-06-08 11:21:39 -04:00
patch-interpret-3-f-f-f add call-in-continuation 2020-03-12 04:48:39 -06:00
patch-interpret-3-f-t-f add call-in-continuation 2020-03-12 04:48:39 -06:00
patch-interpret-3-t-f-f Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
patch-interpret-3-t-t-f Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
patch-interpret-0-f-f-f add call-in-continuation 2020-03-12 04:48:39 -06:00
patch-interpret-0-f-t-f add call-in-continuation 2020-03-12 04:48:39 -06:00
patch-interpret-0-t-f-f Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
patch-interpret-0-t-t-f Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
primvars.ms Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
profile.ms local-eval-hook now calls eval rather than interpret when profiling 2019-10-08 18:22:37 -07:00
record.ms cptypes: rewrite implementation of primref->argument-predicate 2020-03-07 08:47:37 -03:00
root-experr-compile-2-f-f-f library-manager, numeric, and bytevector-compres improvements 2020-02-21 13:48:47 -08:00
root-experr-compile-3-f-f-f Various enhancements and fixes highlighted by profiling performance 2019-09-21 15:37:29 -07:00
root-experr-compile-0-f-f-f add call-in-continuation 2020-03-12 04:48:39 -06:00
thread.ms convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
unix.ms library-manager, numeric, and bytevector-compres improvements 2020-02-21 13:48:47 -08:00
vs.bat support Windows build on Bash/WSL 2017-05-02 08:25:09 -06:00
windows.ms changed copyright year to 2017 2017-04-06 11:41:33 -04:00