A few years ago the same question came up, has Apple updated the submission rules to allow JITters in submitted applications yet? The opensmalltalk-vm is about ten times faster than the non-JITting version, and even the apple watch has enough ram to easily run it.
Apple's policy has not changed. Apps that need a PROT_WRITE | PROT_EXEC
page are not approved for the store, which would be needed for the JIT.
I see two ways around this:
Use AOT, not JIT: Modify Cog so it can store the jitted code to a file. Do so on the dev machine while running a coverage test for your app. That should jit all the code. Put the code file into the App bundle. At runtime, load the file into a
PROT_READ | PROT_EXEC
page and execute all methods found there. All others need to be interpreted.There is a way to run a JIT in your app: Apple's JavaScript JIT. It's the fastest on all mobile platforms currently. You can help making the code generator of SqueakJS produce more efficient JS code. This would allow running all Smalltalk code on the JIT, even new methods.
You could look at Pharo-JS which allows you to develop in Smalltalk and deploy to Javascript; this can then run as an iOS (or Android) app via Cordova or PhoneGap.
The Pharo-JS presentation at the recent ESUG 2016 conference provided a demonstration of the latter (around 25 minutes in).
© 2022 - 2024 — McMap. All rights reserved.