4 ms·
As a somewhat different data point, we've been developing pycket, an implementation of Racket on top of rpython, for the past 3 years, and while it faces many o
by samth 10y ago
As a somewhat different data point, we've been developing pycket, an implementation of Racket on top of rpython, for the past 3 years, and while it faces many of the same challenges, we've been very happy with the results. The JIT can remove almost all of the intermediate data structures caused by the functional nature of the language, and we support tail calls and first class continuations. Overall, pycket is almost as fast as chez scheme on average, and faster than every other scheme system we've compared with.
- throwaway7645 10y agoIs that just a JIT for Racket or a different language?
- sabauma 10y agoYes. It is for the Racket language.
- _halgari 10y agoYes! Pycket is a great language, I used your paper as a reference more than once while working on Pixie.
- shakna 10y agoInterested in the speed you're seeing. I use Gambit-C scheme for most of my scheme needs because of the speed, but it seriously lacks in libraries, that Racket has in abundance.
- baldfat 10y agohttps://github.com/pycket/pycket-bench https://github.com/pycket/pycket-bench
- sabauma 10y agoMuch of the data in that repo is old/outdated. This (https://github.com/pycket/pycket-bench/blob/master/output/20150610_fbc4c2d_CrossBenchmarks-norm.pdf https://github.com/pycket/pycket-bench/blob/master/output/20...) figure was the one used in the paper, which includes Gambit.
- sabauma 10y agoPycket has different performance characteristics from many of the AOT systems we compared against. On average Pycket is ~2x faster than the Racket VM, ranging from ~3x slower to ~300x faster depending on the benchmark. Last I checked, Pycket's mean performance was about 10% slower than Chez Scheme. The cost you pay for this performance is a rather significant warmup time for many benchmarks. As for libraries, the only major feature that Pycket does not support is Racket's FFI, most built in functions can be implemented pretty easily if missing.
- baldfat 10y agoI hope this continues to be developed. I love coding in Racket. I remember when I first started coding in Python years ago and then I ran into Racket (Wanting to learn Functional programming) and I even liked Racket coding even more.