This reverts commit 90fc899b368bbbd16d284d03dcef53039fffbfca.
This reverts commit 780fb37c0dab0bdab8b91a083660ae88021435e8.
This reverts commit 9e54b2bc1b8c0ca8a3d84b86a438153e8e1ff2e7.
This reverts commit 43a584f7105ba3a0d7830879003a8c5241258969.
original commit: 40f7ab2ba4a948a9ac9f6b1114a91c71a0968e9b
The other handler is meant for type name environments.
In practice, this should never come up in the current
codebase, but extensions that use `lookup-type` could
rely on it.
original commit: 612a7fcca97523e7f4b82b0cb5ecc0d6a6321e29
This has no effect on the truth table, but affects
side effects. It shouldn't actually matter because
`check-all-registered-types` is not called in the
TR top-level anyway, but this seems safer.
original commit: cf7b5b79e766254611255765e8e50f0b80d4c803
Improves tests/typed-racket/succeed/new-metrics.rkt by about 33% overall runtime.
Major changes include:
- Handling memoization entirely inside the `subtype*` function.
- Remembering only previously seen pairs of types when one of them
might be a recursive type (such as Mu or a structure).
Thanks to Ryan Newtown for this this idea, which enables the
previous change as well.
- Doing as much as possible without touching parameters.
(Unfortunately, not as much as I hoped was possible here).
- Replacing uses of => in `match` with #:when (written for this purpose).
- Significant improvement to the `Type-key` system so that it is
useful much more often.
- Use of unsafe operations.
- Minor optimizations to a few other operations.
original commit: 0a6537a6cbed7ca477d1539749b0afa371a2fda9
* Make it close the source file after it has finished reading.
* Run in parallel when the file are supplied via the command line.
original commit: 43eadd0fa75e4235318d337e9bd015e1ae6ddd24
Use the new helper function to report errors more
helpfully when two identically named type variables
from different scopes are encountered.
original commit: 18d4eb51351bb265f69f16b825932d93b228e69e
The reason these functions used gensym to begin with
was that fresh variables resulted in confusing error
messages of the form "Expected a, but got a".
An upcoming commit fixes these error messages, so
the gensym is replaced.
original commit: b214fa01c11c6fc74f24318bc702bbb5ad915822
Also, use `#:no-declare` to fix some module declarations that are
all in the same section. (If bindings were defined in the modules, then
they'd need to be in different section, but the section titles could
be hidden to make them look like they're all in the same section.)
original commit: 39a0c3b492d46baed04e2205c0604cf8c4d4967b