Общий LISP на iPhone / iOS - PullRequest
       3

Общий LISP на iPhone / iOS

13 голосов
/ 30 октября 2010

Можно ли вызвать функцию Common Lisp в iOS?

Если это так, возможно ли создать ее в динамической библиотеке?

Ответы [ 5 ]

8 голосов
/ 01 ноября 2010

Это зависит от того, что вы подразумеваете под вызовом функции CL, но, скорее всего, ECL будет вашим кратчайшим путем. Начните здесь, так как есть патч для ECL, чтобы лучше приспособить iOS: http://funcall.posterous.com/tag/iphone

ECL генерирует код C, поэтому вы должны находиться на безопасной территории с меняющимися политиками Apple.

4 голосов
/ 09 августа 2013

Вы пробовали MOCL ?

Согласно веб-сайту, "mocl - это высокооптимизирующая реализация CL, предоставляющая жесткий нативный код через LLVM / Clang".

Возможно, вы можете создать динамическую библиотеку, хотя она предназначена для использования наоборот.

3 голосов
/ 19 сентября 2015

Clozure Common Lisp (CCL) работает в Linux на ARM, и Гэри Байерс давно создал экспериментальную версию для iPhone, но он будет работать только на сломанном iPhone. Проблема в том, что компилятор CCL пишет исполняемый код, но iOS из коробки не позволяет сделать доступной для записи страницу исполняемой, поэтому вы никогда не сможете запустить этот код.

Мы обсуждали, как поместить код, который поставляется с приложением iOS, в раздел кода, доступный только для чтения, и добавить компилятор байт-кода, чтобы код, созданный во время выполнения, можно было довольно быстро интерпретировать, но никто не предлагал финансировать этот проект, поэтому он так и не был завершен.

Вы можете подумать, что мы могли бы просто интерпретировать код, созданный во время выполнения, но текущий «интерпретатор» CCL компилирует нетривиальный код перед его выполнением.

MOCL, вероятно, является лучшим вариантом для написания кода, вызываемого из других приложений, но это только предположение, поскольку я его не использовал.

1 голос
/ 31 октября 2010

Вы можете использовать Gambit Scheme или Clozure Common Lisp, оба способны взаимодействовать с Какао, первый, потому что он генерирует C, а второй, потому что существует мост от Clozure к Какао. Сделайте поиск в Google, и вы найдете несколько вещей.

0 голосов
/ 13 августа 2013

Также существует Mobile Common Lisp 1

...