The Racket repository
Go to file
Sorawee Porncharoenwase ee773b2835 Fix contract-out for struct
- A part of contract-out's code generation for struct assumes that
there's no parent struct and uses the provided struct name for
everything. This causes duplicate definitions when there are duplicate
field names where one is in a child struct and another is
in a parent struct. This PR fixes the problem.
- Disallow multiple #:omit-constructor
- Deprecate super-id. This information is unnecessary since we can
extract it from static struct information already. Attempting to
check that super-id is well-formed is error-prone due to how
the super struct type could be contracted which shields us from
detecting that they are indeed the super type.
- Utilize static struct field name information, and provide
the information when exporting a struct.

This PR is largely based on #732.

Fixes: #3266, #3269, #3271, and #3272
2020-06-29 19:35:19 -05:00
.github Consolidate current racket-ci images into a single one (#3230) 2020-06-03 18:34:20 +02:00
pkgs Fix contract-out for struct 2020-06-29 19:35:19 -05:00
racket Fix contract-out for struct 2020-06-29 19:35:19 -05:00
.gitattributes
.gitignore Fix typo. 2019-06-21 12:32:37 -05:00
.lgtm.yml Add initial LGTM configuration for Racket (#3200) 2020-05-22 08:30:47 +02:00
.mailmap Minor metadata changes. 2019-10-15 08:09:32 -04:00
build.md makefile: add SERVER_URL_SCHEME to support https 2020-05-03 16:09:55 -06:00
LICENSE Recent GMP is under LGPL v3. 2020-05-01 22:26:25 -04:00
Makefile makefile: add win32-also-cs, etc. 2020-06-02 08:28:10 -06:00
README.md add link to https://racket-lang.org/friendly.html (#3164) 2020-05-08 12:57:53 +02: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.

Friendly Environment Policy

Please see https://racket-lang.org/friendly.html