Hacker News new | ask | show | jobs
by samth 3437 days 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.
4 comments

Yes! Pycket is a great language, I used your paper as a reference more than once while working on Pixie.
I 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.
Interested 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.

Pycket 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.

Much of the data in that repo is old/outdated. This (https://github.com/pycket/pycket-bench/blob/master/output/20...) figure was the one used in the paper, which includes Gambit.
Is that just a JIT for Racket or a different language?
Yes. It is for the Racket language.