4 ms·
> a JVM disassembler Note that Dalvik bytecode is very very different from the Java bytecode read by JVMs. For one, Dalvik is a register machine (like LuaJIT'
by KMag 10y ago
> a JVM disassembler
Note that Dalvik bytecode is very very different from the Java bytecode read by JVMs. For one, Dalvik is a register machine (like LuaJIT's internal bytecode) and the JVM is a stack machine (like Python bytecode).
- i336_ 10y agoOooh, that might be one of the reasons why LuaJIT is so fast. I did some reading about Forth some time ago, and learned that modern CPUs have minor struggles with stack-based interpreters. I understand it's almost negligible but has a small impact. (Forth is stack-based.)
- masklinn 10y agoThere are many reasons why LuaJIT is false, Mike Pall has talked pretty extensively about it (e.g. http://lambda-the-ultimate.org/node/3851 http://lambda-the-ultimate.org/node/3851). I don't recall being register-based coming up as a first-order reason, though it may have allowed optimisations which a stack-based machine would not allow (e.g. the JIT doing register hinting and renaming).
- i336_ 10y agoWhat do you mean by "LuaJIT is false"? Thanks heaps for that link though, reading through that thread has been really interesting.
- masklinn 10y ago> What do you mean by "LuaJIT is false"? Meant to write "LuaJIT is fast", but was probably thinking about something else and the fingers went haywire, sorry about that. > Thanks heaps for that link though, reading through that thread has been really interesting. Pall has written in other venues (mostly LuaJIT mailing lists but I think I remember comments of his on reddit or HN, though I might be mistaken), comments of his are always interesting reads.
- i336_ 10y agoAh, I've had the same kinds of finger-"autocorrect" issues myself. Thanks! I've been trying to find more info about Mike, he seems to be a really private/mysterious type. What he writes about is definitely interesting though.