3 ms·
Very impressive that PyPy's JIT with Pycket out-performed Racket's language-specific JIT, and that it supports tail calls and continuations, both of which are i
by kbd 11y ago
Very impressive that PyPy's JIT with Pycket out-performed Racket's language-specific JIT, and that it supports tail calls and continuations, both of which are impractical to implement on say, the JVM (see Clojure).
- sanxiyn 11y agoIf you read the paper, not only Pycket supports continuations, but it optimizes continuations better than Racket. To quote: "Since first-class continuations are difficult to implement in a mostly-C environment, two benchmarks which focus on this feature (ctak and fibc) perform very poorly on Racket and Bigloo, both of which implement continuations by copying the C stack." Racket actually isn't optimized for continuations-heavy codes, simply because such codes are rare in practice. Neither is Pycket, but design of Pycket is such that continuations optimize as well as normal calls without any special effort. The result is that for ctak and fibc, Pycket is more than 100 times(!) faster than Racket.
- btdollar 11y agoHow does the optimisation of closures translate down to the machine level in Pycket?