The Racket repository
Go to file
Matthew Flatt 712494312a improve consistency of printers and prop:custom-write
The pretty printer and built-in printer for traditional Racket did not
consistently provide the current quoting mode while checking for
unquoting and cycles. All printers, including the Racket CS printer,
are improved for a structure type that has
`prop:custom-print-quotable` as 'always, in which case we know that
unquoting- and cycle-checking time that the components will be in
quoted mode.

The pretty printer also made three passes through a value to check for
cycles, compute cycles, and compute unquotes, and those are now fused
into a single pass like the Racket CS printer. The built-in printer
for traditional Racket still makes up to two passes, but it now
behaves more like other printers by recurring immediately on nested
calls via `prop:custom-write` instead of accumulating them for after
the `prop:custom-write` callback returns.

The documentation clarifies that synthesizing new values during
printing can interefere with cycle checking and unquoting, but the
printers now react to that behavior more consistently.
2020-01-15 07:21:19 -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 improve consistency of printers and prop:custom-write 2020-01-15 07:21:19 -07:00
racket improve consistency of printers and prop:custom-write 2020-01-15 07:21:19 -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 racket-build-guide: Don’t decode within exec/commandline 2020-01-02 12:17:07 -06:00
LICENSE Clarify embedded executable issues (#2908) 2019-11-15 21:02:20 -05:00
Makefile Fix typos (#3005) 2020-01-14 11:49:23 +01: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.