racket/c
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
..
alloc.c GC marking (non-copying) mode 2020-04-22 07:10:02 -06: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 GC marking (non-copying) mode 2020-04-22 07:10:02 -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 GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
gcwrapper.c GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
globals.h GC marking (non-copying) mode 2020-04-22 07:10:02 -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 GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
prim5.c GC marking (non-copying) mode 2020-04-22 07:10:02 -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 GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
schsig.c add call-in-continuation 2020-03-12 04:48:39 -06:00
segment.c GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
segment.h GC marking (non-copying) mode 2020-04-22 07:10:02 -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 GC marking (non-copying) mode 2020-04-22 07:10:02 -06:00
version.h adjust build for BSDs, MinGW cross-compile, and more configuration 2019-07-06 13:16:57 -06:00
vfasl.c GC marking (non-copying) mode 2020-04-22 07:10:02 -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