racket/c
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
..
alloc.c Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
arm32le.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
build.bat adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
compress-io.c library-manager, numeric, and bytevector-compres improvements 2020-02-21 13:48:47 -08:00
compress-io.h compress-level parameter, improvement in lz4 compression, and various other related improvements 2019-04-18 05:47:19 -07:00
cs.ico initial upload of open-source release 2016-04-26 10:04:54 -04:00
expeditor.c skip <xlocale.h> on Linux 2019-12-11 14:41:07 -07:00
externs.h convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
fasl.c fix vfasl problems 2020-03-28 08:34:48 -06:00
flushcache.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
foreign.c Make variables unsigned to avoid ub in calculation 2019-06-05 22:49:55 +02:00
gc-ocd.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
gc-oce.c convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
gc.c convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
gcwrapper.c convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
globals.h collect in main thread when active 2020-03-23 15:32:00 -06:00
i3le.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
intern.c speed up objlist 2020-01-01 15:08:52 -07:00
io.c Improved Unicode support for command-line arguments, environment variables, the C interface and error messages, and the Windows registry, DLL loading, and process creation 2018-06-14 14:24:15 -04:00
itest.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
main.c adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
Makefile.a6nt add pseudo-random generator API 2019-10-07 10:58:39 -06:00
Makefile.i3nt add pseudo-random generator API 2019-10-07 10:58:39 -06:00
Makefile.ta6nt add pseudo-random generator API 2019-10-07 10:58:39 -06:00
Makefile.ti3nt add pseudo-random generator API 2019-10-07 10:58:39 -06:00
Mf-a6fb propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-a6le propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-a6nb propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-a6nt fixed tab character in makefiles 2019-08-15 10:19:58 -04:00
Mf-a6ob propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-a6osx propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-a6s2 propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-arm32le adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
Mf-base convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
Mf-i3fb propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-i3le propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-i3nb propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-i3nt fixed tab character in makefiles 2019-08-15 10:19:58 -04:00
Mf-i3ob propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-i3osx propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-i3qnx propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-i3s2 propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ppc32le propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ta6fb propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ta6le propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ta6nb propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ta6nt fixed tab character in makefiles 2019-08-15 10:19:58 -04:00
Mf-ta6ob propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ta6osx propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ta6s2 propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ti3fb propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ti3le propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ti3nb propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ti3nt fixed tab character in makefiles 2019-08-15 10:19:58 -04:00
Mf-ti3ob propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ti3osx propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-ti3s2 propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
Mf-tppc32le propagate CC and CPPFLAGS to ZLib and LZ4 builds 2019-12-09 08:34:50 -07:00
new-io.c library-manager, numeric, and bytevector-compres improvements 2020-02-21 13:48:47 -08:00
nocurses.h adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
number.c Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
popcount.h add stencil vectors and fxpopcount 2020-01-06 05:34:28 -07:00
ppc32.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
ppc32le.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
prim.c convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
prim5.c fix ephemeron allocation 2020-04-04 10:01:04 -06:00
print.c Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
random.c add pseudo-random generator API 2019-10-07 10:58:39 -06:00
scheme.c Merge github.com:cisco/ChezScheme 2020-02-22 15:18:47 -07:00
scheme.exe.manifest - Cygwin is now used on Windows, updated mats, eliminated unused killme 2016-06-10 10:07:07 -04:00
scheme.rc Now opening 9.5.3 release. Intent is to formally release 9.5.2 2019-03-21 15:07:39 -07:00
schlib.c Avoid an occasional invalid memory violation on Windows in S_call_help 2018-06-15 16:42:09 -04:00
schsig.c add call-in-continuation 2020-03-12 04:48:39 -06:00
segment.c fix emphemeron-key tracking in a segment with locked objects 2020-04-01 07:53:32 -06:00
segment.h adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
sort.h changed copyright year to 2017 2017-04-06 11:41:33 -04:00
statics.c adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
stats.c ignore result of mktime 2019-11-23 19:54:30 -05:00
symbol.c changed copyright year to 2017 2017-04-06 11:41:33 -04:00
system.h adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
thread.c collect in main thread when active 2020-03-23 15:32:00 -06:00
thread.h changed copyright year to 2017 2017-04-06 11:41:33 -04:00
types.h convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
version.h adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
vfasl.c convert GC to "mkgc.ss" implementation 2020-04-04 10:21:16 -06:00
vs.bat Added support for building chez with VS2019. (#435) 2019-06-04 16:37:57 -04:00
windows.c update Windows spin-loop count for deleting files and directories 2019-03-26 14:16:54 -04:00