The Racket repository
Go to file
Matthew Flatt c8c3647da5 cs: interpret short-lived compile-time code
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.
2019-12-22 08:34:41 -07:00
.github Add comment to CI step (non-functional) 2019-12-13 08:52:28 +01:00
.gitlab Test all XML collection 2019-11-07 18:18:32 +01:00
pkgs cs: interpret short-lived compile-time code 2019-12-22 08:34:41 -07:00
racket cs: interpret short-lived compile-time code 2019-12-22 08:34:41 -07:00
.gitattributes Don't include git files in archives. 2010-05-12 01:46:05 -04:00
.gitignore Fix typo. 2019-06-21 12:32:37 -05:00
.gitlab-ci.yml Test all XML collection 2019-11-07 18:18:32 +01:00
.mailmap Minor metadata changes. 2019-10-15 08:09:32 -04:00
.travis.yml Try to fix Slack notifications. 2019-10-09 10:24:20 -04:00
build.md rebuild 'build.md' 2019-11-03 14:45:20 -05:00
LICENSE Clarify embedded executable issues (#2908) 2019-11-15 21:02:20 -05:00
Makefile Fix spelling typos 2019-11-28 07:51:39 -07:00
README.md Fixed small typo. 2019-12-10 06:09:32 -07:00

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

https://docs.racket-lang.org

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.