samth
2019-6-1 15:19:43

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


samth
2019-6-1 15:20:47

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


lexi.lambda
2019-6-1 15:36:35

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


samth
2019-6-1 15:43:01

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


samth
2019-6-1 15:43:22

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


lexi.lambda
2019-6-1 17:05:17

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


leif
2019-6-1 20:24:44

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


leif
2019-6-1 20:28:12

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


leif
2019-6-1 20:28:24

(The people who run openhub)


tomas.s.e.raposo
2019-6-1 22:48:23

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


sorawee
2019-6-2 05:47:49

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?