
@lexi.lambda, @stamourv: My involvement with the Racket formula/cask in Homebrew is: (1) I use the cask as my main Racket installation on my development machine; (2) I sometimes update the cask when a new version of Racket is released (other times other people do it before me); and (3) a few months ago the Homebrew team wanted to remove duplicates, so they removed the Racket cask, only giving the Minimal Racket version—I asked them to bring back the Racket cask.
In summary, I’m far from being a maintainer :stuck_out_tongue:
That said, if there’s anything I can do to help, I’m here :slightly_smiling_face:

@leafac: That’s already more maintenance than the non-cask version gets.

Thanks for your help!

@stamourv: My pleasure :slightly_smiling_face:

@mflatt can you look at the “Last,First parsing” PR when you have time: https://github.com/racket/scribble/pull/92

I have a complex situation where I’m stashing an identifier somewhere and then pulling it out somewhere else, and I’m getting an unbound identifier error, but there are too many moving parts for me to figure out what is going on :/

I’ve been trying to use @georges-duperon’s debug-scopes
package, but I’m not totally sure how to read its output

@ben That’s @jeapostrophe’s code, so he may have an opinion; I have no objections

ok thank you

@lexi.lambda what does the output look like?

@samth I ended up managing to fix it, but tbh I’m not sure why it works

typeclasses are real complicated :no_mouth:

@lexi.lambda You have to use (displayln (+scopes id))
, and it indicates the scopes with sub/superscript numbers. Each Racket scope (which normally has a large 7-digit numeric identifier) is given a short and readable number starting with 0
. Ranges are indicated with ³˙˙⁹
(3 till 9). When you are done printing the scopes of one or more ids and stx objects, you’ll want to call (print-full-scopes)
, which prints a table associating short numbers with their long counterpart as well as other info (if it is a macro, use-site or module scope, and the module name for module scopes, i.e. the info that you get in DrRacket’s macro stepper).

I’m not automatically running (print-full-scopes)
, because it would clutter the output. Also, after executing (print-full-scopes)
the scope counter is reset (and +scopes
therefore starts numbering scopes starting from 0
again), so if you want to compare two ids, you have to call (displayln (+scopes id1)) (displayln (+scopes id2)) (print-full-scopes)
, possibly across several macro invocations (I should probably add a parameter to print-full-scopes
to ask it to not reset the counter).