
@lexi.lambda for phase 1 vs 0, I would deal with that using different requires

If you want to redirect things that are part of the regular racket implementation, then you’d probably need to do something more like what the actual bootstrapping code does

@samth I want running the program in DrRacket to still work (unless it used truly JS-specific features).

then I think you do need to do more like the bootstrapping stuff

ie, the expander and thread system implementations work in regular racket

@samth Thanks, I think I’m starting to see how things fit together by looking at the thread system implementation.

@pocmatos Hmmph….Despite updating the sources, open hub still hasn’t bothered to update.

I also don’t see any way to get openhub to update itself. We probably will need to contact them.

(The people who run openhub)

@tomas.s.e.raposo has joined the channel

Are there any libraries that provide a form similar to this p-let
?
(define (foo)
(p-let x 1)
(println x)
(p-let x (add1 x))
x)
transforms to
(define (foo)
(let ([x 1])
(println x)
(let ([x (add1 x)])
x)))
This magic should only work in the internal definition context.
If not, does anyone have an easy way to implement this? My initial idea is to override #%module-begin
to local-expand
with stop list containing core forms that allow internal definitions. Then, local-expand
children with stop list containing p-let
, and then transform p-let
away. But this seems really complicated. Is there a better solution?