The Racket repository
Go to file
Alexis King 18e897bfb8 expander extract: Improve purity analysis for struct type properties
The changes in aab63ad3 introduced a dependency on
racket/private/promise, which the analysis was not capable of dropping
due to the use of the `prop:force` property. This caused trouble for the
thread layer, since it introduced a reference to `error`, which is
defined in the io layer. This change adds some additional detection for
struct type properties with guards that accept procedures of particular
arities, which allows `prop:force` to be marked as pure.

Also, a typo in the thread layer’s Makefile meant globals weren’t
actually getting tracked, so this fixes that, too.
2019-05-19 10:48:04 -05:00
.github/ISSUE_TEMPLATE_DRAFT Don't set this up quite yet. 2018-11-29 21:49:16 -05:00
.gitlab Use all CPUS available for CI on the runner and install qemu magic 2019-05-10 22:00:40 +02:00
pkgs Add for[*]/foldr[/derived] and reimplement for[*]/stream using it 2019-05-19 10:47:54 -05:00
racket expander extract: Improve purity analysis for struct type properties 2019-05-19 10:48:04 -05:00
.gitattributes Don't include git files in archives. 2010-05-12 01:46:05 -04:00
.gitignore Additional files to ignore. 2018-11-21 12:39:56 -05:00
.gitlab-ci.yml Use all CPUS available for CI on the runner and install qemu magic 2019-05-10 22:00:40 +02:00
.mailmap mailmap updates & fixes. 2013-04-03 18:10:22 -04:00
.travis.yml Build cs variant on Travis, but allow failure. 2018-12-02 20:16:05 -05:00
appveyor.yml use VS 2013 on AppVeyor 2018-05-15 11:07:06 -06:00
azure-pipelines.yml Add mac tests on Azure. 2018-09-15 12:43:54 -04:00
INSTALL.txt makefile: add PACK_BUILT_OPTIONS for control over distro package form 2019-05-10 07:20:31 -06:00
Makefile avoid incorrect unix-style inference 2019-05-18 07:56:02 -04:00
README.md reorganize and update "README.txt"s about sources and builds 2018-11-16 07:49:53 -07:00

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.