5 ms·
LispWorks has a native compiler and supports Android and iOS: http://www.lispworks.com/products/lw4mr.html http://www.lispworks.com/products/lw4mr.html The iOS
by lispm 8y ago
LispWorks has a native compiler and supports Android and iOS: http://www.lispworks.com/products/lw4mr.html http://www.lispworks.com/products/lw4mr.html
The iOS situation is difficult, because Apple does not allow runtime compiled/loaded code in general. LispWorks pre-compiles Lisp code and one creates an App with the help of Apple's Xcode. LispWorks has still an Interpreter at runtime. Generally it is a very complete implementation of Common Lisp (minus the runtime compilation), but without a Lisp-based GUI library. They also had to write a special Garbage Collector for the 64bit ARM iOS. Seems like it was not possible to have their usually more advanced GC, which for example is available with their 64bit ARM Linux port of LispWorks.
- ppseafield 8y agoThat's not exactly Apple's policy - there are React Native apps in the iOS store, and that runs on nodejs. Apple specifically forbids applications that download and run code or allow for other code outside of the application's code to be run. I.e. any and all code that your application will execute has to be submitted with your app. https://developer.apple.com/app-store/review/guidelines/ https://developer.apple.com/app-store/review/guidelines/ specifically 2.5.2
- lispm 8y agohttps://code.janeasystems.com/nodejs-mobile https://code.janeasystems.com/nodejs-mobile > On iOS, V8 cannot run because the operating system forbids just-in-time compilation; so instead of V8, we use our own port of the ChakraCore engine, on top of the integration with Node that Microsoft created in Node.js on ChakraCore. ChakraCore has a well-optimized, pure interpreter mode which complies with iOS’ restrictions. http://www.janeasystems.com/blog/node-js-meets-ios/ http://www.janeasystems.com/blog/node-js-meets-ios/ > Apple does not allow Just-In-Time compilation on iOS (except for its own JavaScriptCore engine). So the claim is that Apple will not allow a third-party Javascript engine which provides a JIT - even though interpreted code engines are allowed and this is what their node.js version did. My impression is also that this is a technical restriction. Has that changed?
- ppseafield 8y agoAh, you're right. I should have read your comment more carefully. > ChakraCore has a well-optimized, pure interpreter mode which complies with iOS’ restrictions. (Which does not include runtime-compilation.)