philip.mcgrath
2019-4-22 20:14:02

I meant to post this on #general:


lexi.lambda
2019-4-22 22:13:03

@mflatt Why does evaluation of the RHS of a define-syntax / let-syntax disable the JIT in the expander here? https://github.com/racket/racket/blob/55dcdf553878f475fc4c59ba83556482d11499c9/racket/src/expander/expand/main.rkt#L682


mflatt
2019-4-22 22:15:12

There’s always a compilation–interpretation trade-off. On average (based on measuring expansion times), it seems to be better to interpret a RHS during a module’s compilation, but JIT-compile RHSs that are used across module boundaries.


lexi.lambda
2019-4-22 22:17:38

Makes sense, thanks.