Scala на iOS с использованием Avian

Существует относительно новый легкий JVM под названием Avian, который может создавать исполняемые файлы для целей iOS.

На сайте не так много документации (и не так много можно найти в Google). Мне было интересно, знает ли кто-нибудь о пошаговом руководстве о том, как получить базовую программу Scala, запущенную на iOS, используя Avian.

Ответ 1

Другой альтернативный JVM-компилятор iOS - RoboVM. Хотя это на ранней стадии, это выглядит довольно многообещающим, с примерами о том, как скомпилировать Scala для iOS.

EDIT Это был старый ответ, действительный в то время, но, как отмечает @JamesMoore, RoboVM больше нет. Теперь выглядит очень многообещающим и вполне может быть способ запустить код Scala в iOS в ближайшем будущем Scala Родной

Ответ 2

Скомпилированные источники Scala являются полностью стандартными файлами класса. Вы должны уметь следовать инструкциям (ищите "Встраивание" ) на веб-сайт без больших изменений, просто рассматривайте scala-library.jar как зависимость от ваш код.

Мне удалось загрузить исходный компилятор и стандартную библиотеку, запущенную на Avian несколько дней назад.

Некоторые части могут быть немного грубыми по краям, например. г. существует одно обязательное исправление, которое будет частью следующей версии Scala (2.10.1), но не находится в 2.10.0. Если вы хотите играть с ним прямо сейчас, вам нужно использовать ночную сборку, пока не будет выпущено 2.10.1.

Если у вас возникнут дополнительные проблемы, сообщите об этом!

Ответ 4

Запуск Java-байтового кода на iOS (не корневой) не только работает с этим, но и с JVM. Насколько я понимаю, управление памятью iOS не позволяет записывать исполняемые страницы памяти в пользовательском режиме. Это в основном запрещает компиляцию JIT. Поэтому, даже если можно запустить некоторые скомпилированные классы (с Java или Scala) на определенной виртуальной машине Java, я бы тщательно проверил, как эта виртуальная машина поддерживает компиляцию Ahead-Of-Time, чтобы быть запущенной в iOS. Как я видел, Avian AOT хорошо работает на рабочем столе. Для iOS вам придется проверить это самостоятельно, хотя проект выглядит многообещающим в области AOT.