Running Racket CS on iOS
defn.io
defn.io
Out of curiosity, what other (popular) languages have similar support? Can someone coding an iOS app call snazzy ML/algorithms written in Python/Julia/C/Cpp? Would any language whose compiler is written on top of LLVM be a good candidate?
So you could build iOS apps using Racket on a host computer, then load those binaries onto an iOS device.
https://developer.apple.com/app-store/review/guidelines/
> 2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user.
Racket code bundled with the app will be fine.
The gray area is if the app allows the user to create new Racket code.
Yup! There’s an example of just that at the very end.
Assuming that JIT is still not possible on iOS.
All previous versions of iOS do not permit execution from writable memory.
Via https://9to5mac.com/2020/11/06/ios-14-2-brings-jit-compilati...
Yes, there's an example of this in the section "Cross-compile Racket modules for iOS".
> Assuming that JIT is still not possible on iOS.
JIT on iOS is not possible for non-side-loaded apps, like you mentioned downthread. That's part of the caveats[1] I mention at the top of the article and the more complex part of the change: when compiling new code (eg. via `eval`), we flip the protection bits between W and X for the minimum set of memory segments necessary based on certain heuristics.
[1]: https://github.com/racket/racket/blob/351c0047d6371e36cf422b...