Hacker News new | past | comments | ask | show | jobs | submit login

I like tinkering with interpreters, and I do it a lot, but this is chump change compared to even a baseline compiler, especially one that makes use of type profiles. There is a pretty big investment in introducing a compiler tier, but I'm not convinced that it's less engineering effort than squeezing more out of an interpreter that fundamentally has dispatch and dynamic typing overhead. There aren't that many bytecode kinds in CPython, so it seems worth doing.



That's what we did in Skybison before it got wound down: https://github.com/facebookexperimental/skybison


What's the difference between that and cynder? I know they both come from Meta/IG but I wonder if cynder is an evolution from skybison or is it more of a different approach?


Cinder and Skybison are different approaches. Skybison was a ground-up rebuild of the object model and interpreter, whereas Cinder is a JIT that lives on top of CPython.


Are there publicly-available performance results?


Kind of! In my fork I run microbenchmarks on each PR. So you can see on, for example, https://github.com/tekknolagi/skybison/pull/456, that the change had a 3.6% improvement on the compilation benchmark. If you expand further, you can see a comparison with CPython 3.8. Unfortunately Skybison is still on 3.8.


Small improvements to cpython are multiplied out to the millions of machines cpython is installed on by default.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: