3 ms·
iOS allows JITs. This is exactly what I'm talking about. You're using bad or outdated second or third-hand info with no regard for the game of telephone involv
by throwawaycert 7y ago
iOS allows JITs.
This is exactly what I'm talking about. You're using bad or outdated second or third-hand info with no regard for the game of telephone involved in getting it to you, nor the anti-Apple zealots obfuscating the truth on its way.
- Wowfunhappy 7y agoAre you sure? I admittedly can't find a definitive source on this now, so perhaps the restriction is more nuanced than I realized. What I do know is: if you try to use more intensive emulators like PPSSPP on a non-Jailbroken iOS device (via a developer account, enterprise cert, or similar), you will not get acceptable performance, because the emulator is forced to fall back into an interpreter mode. Even on Jailbroken devices, the hacks required to make JIT work cause weird issues: https://github.com/hrydgard/ppsspp/issues/9186 https://github.com/hrydgard/ppsspp/issues/9186
- throwawaycert 7y agoThe only JIT “restriction” is App Store policy. No downloaded code is allowed unless it’s JavaScript (and runs, as it happens, on one of the JITs iOS has built in). This is policy, not technical limits. You can even install a Python environment and code in it. And, as it happens, write code that downloads other code to be evaluated. Because you did it on your device with full knowledge. Not the developer who put it in the App Store. I’m not even going to try and address whatever weird issues a console emulator might have, those always have problems being ported to non-x86 platforms, especially when they include a JIT. As it happens, dynamic recompilation of machine code not designed for that purpose can be pretty damn hard. Take a look at the posts the Dolphin emulator team make about the fun they encounter.
- Wowfunhappy 7y ago> I’m not even going to try and address whatever weird issues a console emulator might have, those always have problems being ported to non-x86 platforms, especially when they include a JIT. As it happens, dynamic recompilation of machine code not designed for that purpose can be pretty damn hard. Take a look at the posts the Dolphin emulator team make about the fun they encounter. This isn't that! The JIT works when you remove iOS's sandbox (by Jaibreaking). And this applies to every iOS console emulator.
- throwawaycert 7y agoOh, that's right, it's because iOS normally doesn't allow dynamic code modification in memory. That's not an iOS specific thing at all, Apple is just one of the few companies willing to make that nod to security.