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.
The news is that Apple finally allows JIT compilation in iOS 14.2. JavaScript apps, among others, should be able to run at full speed now.
Apple offer two solutions for this: Apple Developer Enterprise Program, This allows you to distribute your app as a URL via your internal site or web server. Volume Purchase Program for enterprises, This allows you to distribute apps via a URL to managed devices within your organisation.
You can distribute your Enterprise app without MDM. The way it works is basically you upload the . ipa file and a manifest . plist file to a website somewhere.
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).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With