4 ms·
I completely agree with this article. I was surprised how fast I was able to implement the guts of pixie (http://github.com/pixie-lang/pixie http://github.com/p
by _halgari 12y ago
I completely agree with this article. I was surprised how fast I was able to implement the guts of pixie (http://github.com/pixie-lang/pixie http://github.com/pixie-lang/pixie) using RPython
I had a repl, with a JIT and a GC done in about 40 hours of work (this is a pet project and I'm a father, so I only hacked on it for about 3 hours a day for a month). At one point I commented to my wife how shocked I was that I started implementing the JIT one morning and about 2 hours later it was done. From there it's just been an hour or two here and there tuning it. That's something that would have taken me months to implement by hand. Making polymorphic functions transparent (completely removable by the jit) was about 4 lines of python code.
In addition, all the stuff in rlib is simple to implement. Want FFI in your language? Pull in the rlib/jit_libffi.py module and crank out a hundred lines of python code to interface. Want strings that are implemented via ropes? Just one more module to import.
RPython (and the PyPy toolchain) are amazing, I wish more people would spend time playing with them. And on top of all that the pypy mailing list is very active. Most of my questions were answered within a day, sometimes within an hour.
Oh, and when I found a bug in PyPy, my patch was accepted and merged within 48 hours.
I can't say enough good things about this project.
- 616c 12y agoI have briefly followed your work on pixie and read the [R]Python code a few times when I had down time after it was published on HN the first time. Very inspiring stuff. Out of curiosity, how long had you been coding Python or programming in general prior? Your comment is so motivating, but as a father with a 1.5 year and no free time I dream of being even half as productive as you.
- mamcx 12y agoI'm debating between do this or use luajit (ie: export lua code). But can't get how have a REPL + debugger is simply output code.
- pjmlp 12y agoThe best thing with modern approaches is that language authors are discovering there are more productive approaches to design VMs, while achieving quite good performance than just going to C. Besides PyPy, there is the Graal/Truffle project at Oracle, and the many meta-circular implementations of Smalltalk, Lisp, Java and so on.
- marktangotango 12y agoIs it possible to customize tbe garbage collection? Ie no gc or reference counting or a custom implementation? What kind of gc does it give you out of the box?