3 ms·
This article is awesome. I had read it before but lost track of it. It was nice reading it again. Mike's code is a bliss to read, I don't know how to explain, i
by reginaldo 14y ago
This article is awesome. I had read it before but lost track of it. It was nice reading it again. Mike's code is a bliss to read, I don't know how to explain, it shows such a clear way of thinking... I believe one of the best ways to learn about dynamic language implementation this days is by reading his code and the things he writes when participating in discussion forums. He is the real deal.
For an example see: http://lambda-the-ultimate.org/node/3851 http://lambda-the-ultimate.org/node/3851 (he goes by MikePall - without spaces)
- gruseom 14y agoHis writing is exceedingly lucid as well. Thanks for that link – there is a lot of good stuff in that thread. I found it interesting, for example, that Mike said that there's no intrinsic reason a JS JIT couldn't compete with LuaJIT.
- mraleph 14y agoYou might be surprised but V8 these days is pretty close to LJ2 performance. LJ2 does amazingly good job on loopy code but is easily outperformed by V8 on OOPy polymorphic one: e.g. DeltaBlue benchmark ported to Lua was something like 5-10 times slower on LJ2 than on V8 last time I checked. [here is my port of DeltaBlue: https://github.com/mraleph/deltablue.lua https://github.com/mraleph/deltablue.lua, I admit that I might have screwed up porting it, but internal benchmark verification checks did not catch anything]
- gruseom 14y agoSo the difference between V8 and LJ2 is more in what kinds of optimization they prioritize, than in overall superior performance by LJ2? Yes, I am surprised to hear that, in a good way. The interesting thing about LJ2 (as distinct from Lua the language) is that it broke such impressive new ground for what is possible in optimizing dynamic languages.