The Racket repository
![]() Make the old-generation marking process incremental on request, where `(collect-garbage 'incremental)` makes a request. Only the marking phase of an old-generation collection is incremental, so far. In exchange for slower minor collections and a larger heap, you get a major collection pause time that is roughly halved. So, this is a step forward, but not good enough for most purposes that need incremental collection. An incremental-mode request sticks until the next major GC. The idea is that any program that could benefit from incremental collection will have some sort of periodic task where it can naturally request incremental mode. (In particular, that request belongs in the program, not in some external flag to the runtime system.) Otherwise, the system should revert to non-incremental mode, given that incremental mode is slower overall and can use much more memory --- usually within a factor of two, but the factor can be much worse due to fragmentation. |
||
---|---|---|
pkgs | ||
racket | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
appveyor.yml | ||
INSTALL.txt | ||
Makefile | ||
README.txt |
This is the source code for the main Racket distribution. See "INSTALL.txt" for information on building Racket. License ------- Racket Copyright (c) 2010-2015 PLT Design Inc. Racket is distributed under the GNU Lesser General Public License (LGPL). This implies that you may link Racket into proprietary applications, provided you follow the rules stated in the LGPL. You can also modify Racket; if you distribute a modified version, you must distribute it under the terms of the LGPL, which in particular states that you must release the source code for the modified software. See racket/src/COPYING_LESSER.txt for more information.