![]() Instead of compiling the right-hand side of a `let-syntax`, interpret using the schemify layer's safe-for-space interpreter. Similarly, interpret the right-hand side of `define-syntax` when it is evaluated during the enclosing module's expansion (compiling it for use when the enclosing module is instantiated for expanding other modules). This is an old idea, and it's effective in some cases: `racketcs -cl racket/base` or `racketcs -cl racket` takes 20% less time with this change. Various obstacles kept us from trying this earlier; most significantly, the gap to finish the safe-for-space interpreter was small enough to make it work. It's not clear that the result is an improvement for `raco setup`, though. The interpreter is not fast (it's about 1/4 the speed of the traditional Racket interpreter), so there's room for improvement, but even a slow interpreter pays off for building. |
||
---|---|---|
.github | ||
.gitlab | ||
pkgs | ||
racket | ||
.gitattributes | ||
.gitignore | ||
.gitlab-ci.yml | ||
.mailmap | ||
.travis.yml | ||
build.md | ||
LICENSE | ||
Makefile | ||
README.md |
Racket is a general-purpose programming language and an ecosystem for language-oriented programming.
This repository holds the source code for the core of Racket plus some related packages. The rest of the Racket distribution source code is in other repositories, mostly under the Racket GitHub organization.
Quick Start
Pre-built versions of Racket for a variety of operating systems and architectures, as well as convenient source distributions are available at
https://download.racket-lang.org
Racket comes with extensive documentation, including several tutorials. You can read all of this documentation, as well as documentation for third-party packages at
Building from Source
For information on building Racket from this repository, see the Build Guide.
Contributing
Contribute to Racket by submitting a pull request, reporting an issue, joining the development mailing list, or visiting the IRC or Slack channels.
By making a contribution, you are agreeing that your contribution is licensed under the Apache 2.0 and MIT licenses. Those licenses are available in this repository in the files LICENSE-APACHE.txt and LICENSE-MIT.txt.
License
Racket is free software; see LICENSE for more details.