Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I now use a JIT for an iOS application that is to be distributed through the store?

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.

like image 636
Stephan Eggermont Avatar asked Aug 27 '16 15:08

Stephan Eggermont


People also ask

Does iOS allow JIT?

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.

How do I distribute my iOS app without App Store?

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.

How do I distribute an enterprise iOS app at home without MDM?

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.


2 Answers

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:

  1. 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.

  2. 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.

like image 176
Vanessa Freudenberg Avatar answered Oct 07 '22 01:10

Vanessa Freudenberg


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).

like image 40
John Aspinall Avatar answered Oct 07 '22 00:10

John Aspinall