Skip to content

Conversation

@NoahStoryM
Copy link
Contributor

Closes #1223.

@samth
Copy link
Member

samth commented Apr 13, 2022

Can you say something (preferably in a comment in the files) about why you need the additional changes beyond the first one?

@capfredf
Copy link
Member

racket/base isn't included at phase level 1 by default, either

@NoahStoryM
Copy link
Contributor Author

NoahStoryM commented Apr 14, 2022

On the first commit I simply let typed/racket/no-check and typed/scheme/no-check provide (for-syntax (all-from-out racket/base)) and (for-syntax (all-from-out scheme/base)) respectively, but then I met 2 problems:

  1. typed/scheme/no-check.rkt needs to require (for-syntax (all-from-out scheme/base)) first, which conflicts with typed/racket/no-check (because typed/racket/no-check provides (for-syntax (all-from-out racket/base)) now).

  2. typed/racket/base/no-check, typed/scheme/base/no-check and typed-scheme/no-check should not provide racket/base or scheme/base at phase level 1, so they cannot be implemented by requiring and providing typed/racket/no-check.

The simplest and most straightforward solution I can think of is to make these languages implement the corresponding no-check versions directly through typed/private/no-check-helper (like typed/racket/no-check), which made additional changes beyond the first one.

And I'm not quite sure how to add a comment, since the no-check versions for these languages are implemented independently now, so the comments about typed/racket/no-check seem a bit odd.

@samth samth merged commit 9974c9d into racket:master Jun 17, 2022
@samth
Copy link
Member

samth commented Jun 24, 2022

This change broke the "rosetta" (see https://plt.cs.northwestern.edu/pkg-build/server/built/fail/rosetta.txt) because apparently typed/racket/base/no-check used to provide the contents of (at least) racket/list.

Here's an example:

#lang typed/racket/base/no-check

drop

samth added a commit to samth/rosetta that referenced this pull request Jun 24, 2022
A recent change to Typed Racket (racket/typed-racket#1224) caused
some unintentionally-exported identifiers from `typed/racket` to be
no longer provided by `typed/racket/base/no-check`.  We will fix
this change, but this commit imports those identifiers from the
correct place.
@samth
Copy link
Member

samth commented Jun 24, 2022

In fact, I think all of racket was provided, or at least racket/list, racket/math, racket/function, and racket/port.

samth added a commit to samth/typed-racket that referenced this pull request Jun 24, 2022
Unfortunately this was accidentally done previously, and fixing it
in racket#1224 unfortunately broke existing code.
capfredf pushed a commit that referenced this pull request Jun 24, 2022
)

Unfortunately this was accidentally done previously, and fixing it
in #1224 unfortunately broke existing code.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

typed/racket/no-check does not export racket/base at phase level 1.

3 participants