29 ms·
https://github.com/pycket/pycket https://github.com/pycket/pycket - development is active. > There are currently two different modes of evaluation that we refe
by mncharity 8y ago
https://github.com/pycket/pycket https://github.com/pycket/pycket - development is active.
> There are currently two different modes of evaluation that we refer as OLD and NEW. The NEW Pycket uses linklets and bootstraps the Racket using the expander linklet exported by Racket (version 7+). The OLD Pycket, on the other hand, uses Racket's binary to fully expand the program and generates json asts and evaluates them.
More on linklets: https://docs.racket-lang.org/reference/linklets.html https://docs.racket-lang.org/reference/linklets.html Status of Racket-on-Chez (2018-Jan): http://blog.racket-lang.org/2018/01/racket-on-chez-status.html http://blog.racket-lang.org/2018/01/racket-on-chez-status.ht...
Back in 2015, a previous thread[2] mentioned a Pixie issue[1], which was closed with "I worked a ton on this, but ran into time issues before the Strangloop conference. At Strangeloop I got talking to one of the authors of Pycket. Unfortunately it sounds like their implementation isn't much better than mine. The amount of load that is put on the JIT due to this sort of interpreter is quite large. In short, I'd rather have a mutable fast interpreter than a immutable mostly fast interpreter. Shelving this work for now. The PR will still exist, but I'm not convinced the features are worth the cost." Pixie's most-recent commit seems a year ago.
My brief unsuccessful search for current Pycket benchmarks did turn up this[3] 2017 thread/paper on the Nash (Guile) tracing JIT.
[1] https://github.com/pixie-lang/pixie/issues/312 https://github.com/pixie-lang/pixie/issues/312
[2] https://news.ycombinator.com/item?id=9545628 https://news.ycombinator.com/item?id=9545628
[3] https://news.ycombinator.com/item?id=13773796 https://news.ycombinator.com/item?id=13773796
- sabauma 8y agoI haven't checked in on the development of Pycket in a bit, but much of the recent work has gone into supporting linklets. Last I checked, the performance story for the Scheme and Shootout benchmarks used in the paper haven't changed much. There are some benchmarks which evaluate Pycket's performance when applied to gradual typing [1]. Pycket does a pretty good job of optimizing the overheads of gradual typing (or at least Racket's implementation strategy), though it by no means eliminates the performance costs. [1] https://dl.acm.org/citation.cfm?id=3133878 https://dl.acm.org/citation.cfm?id=3133878