![]() The default module name resolver uses a cache to map module names to resolved-path information. The cache was weak in a way that turns out to be much weaker on Racket CS, essentially because Chez Scheme is tuned to fire a minor GC more frequently. The new cache cuts 45 minutes(!) from a 2h15m single-process distribution build of Racket CS on Linux. That brings it under a factor of 1.5 of the non-CS build time, instead of over a factor of 2. Thanks to Caner and Sam for pointing out LONG ago (maybe a year ago) that the cache works badly for Pycket. Since the cache doesn't make a big difference for `racketcs -cl racket`, though, it took me this long to understand that it can be such a big deal for Racket CS when performing a distribution build. |
||
---|---|---|
.github | ||
.gitlab | ||
pkgs | ||
racket | ||
.gitattributes | ||
.gitignore | ||
.gitlab-ci.yml | ||
.mailmap | ||
.travis.yml | ||
appveyor.yml | ||
azure-pipelines.yml | ||
INSTALL.txt | ||
Makefile | ||
README.md |
This is the source code for the core of Racket. See "INSTALL.txt" for full information on building Racket.
To build the full Racket distribution from this repository, run make
in the top-level directory. To build minimal Racket, run make base
.
The rest of the Racket distribution source code is in other repositories, mostly under the Racket GitHub organization.
Contribute to Racket by submitting a pull request, joining the development mailing list, or visiting the IRC channel.
License
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.