I’ve now expanded my first macro using the Racket expander running on Chez!
woo!
do you have a sense for why the change to not generate let-values
made such a difference, even though chez expands let-values
in almost exactly the same way?
My guess is that something is wrong with the let-values
expansion in Chez – accidental quadratic behavior, maybe – but I haven’t investigated
I can now (with the contents of my latest PR) run #lang racket
programs
ah darn, still not quite
@mflatt the strategy for literal regexps in convert.rkt
doesn’t work for '(a b c #rx"")
and a repair is not obvious
if you have a suggestion for how to do it, I’ll take a stab at implementing
You understand that “convert.rkt” is a stop-gap that’s intended for just the expander and layers that live below it, right?
I’m ok with experiments running other Racket modules via “convert.rkt”, but I don’t think we want to invest too much there
The longer-term strategy is to directly use read
as extracted, right?
as well as expand
Right – everything will be loaded and run by the implementation in “expand.sls”
If you want to keep playing with uses of “convert.rkt”, though, I’m fine with that – and I don’t plan to reorganize things again for a few hours, if you’d like to resync the PR
@mflatt my pull request is now re-synced, and also contains some useful fixes (demoed in <http://expander-demo.ss\|expander-demo.ss>
)
it relies on a small bug fix in the linklet
branch, which you can find in a PR there
Merged, but I’d like to revert “Enable print-graph”, since the intent is to not use the Chez printer
Sure, that makes sense
@samth When I try to build the with the linlket commits, the math package fails with a TR error; is that because the expansion of in-...
changed, or something else?
that’s probably why, I’ll investigate
@mflatt the TR/math issue is fixed by the combination of https://github.com/mflatt/racket/pull/13 and https://github.com/racket/typed-racket/pull/501
I’ll merge the TR one once the CI finishes there
now merged
I wrote a repl, but somehow it doesn’t work when I define identifiers