FYI: No JIT on Windows 8 for ARM

From: Mike Pall <mike-1205@xxxxxxxxxx>

To: luajit@xxxxxxxxxxxxx

Date: Thu, 10 May 2012 10:43:06 +0200

Since the media will be all over that Windows 8/ARM vs. Mozilla thing this weekend, I wanted to chime in with an actual technical analysis: Windows 8/ARM only allows sandboxed apps from independent developers. These only have access to the WinRT API, but not the full WIN32 API. Yes, the WIN32 API _does_ exist on W8ARM, but only Internet Explorer and system processes get access to it. The WinRT API does not offer the equivalent of VirtualAlloc() or VirtualProtect() with the ability to make code executable at runtime. But JIT compilers absolutely require this functionality, which means there'll be NO INDEPENDENT JIT COMPILERS for W8ARM! The Internet Explorer process on W8ARM has special privileges and is the only one allowed to run a JIT compiler to speed up JavaScript. No other browser will be able to compete on performance with IE on W8ARM. That sure simplifies keeping up with the competition ... ;-) Actually, fully-functional browsers need access to a couple more APIs that is denied to them, too. But the inability to run a JIT compiler has consequences for a much wider range of software: !*!*! For W8ARM there'll be no LuaJIT (in JIT mode), no PyPy, no Java, no v8, just to name a few. Ditto for any software that relies on them (Scala, Clojure, JRuby) or embeds them. !*!*! [ Note that Windows 8 for x86/x64 has similar restrictions for applications distributed via their Windows Store. But you can still install independent software directly. And Windows 8 is of course backwards compatible to Windows 7 software on x86/x64. But you can see where this is heading ... ] --Mike

Other related posts: