2015-07-20 4 views
1

Поскольку Clojure построен поверх JVM, я бы предположил, что могу использовать GCJ, чтобы скомпилировать его непосредственно в машинный код, но я не могу найти никакой информации об этом.Как сделать/Могу ли я скомпилировать Clojure с GCJ

Когда это возможно, как я мог тогда «разделить» его на простые предметы, поэтому время запуска и объем памяти как можно меньше.

Я бы очень хотел писать небольшие терминальные программы следующих принципов UNIX с Clojure

+0

У вас нет, и вы не можете. ** Однако **, вы можете использовать другую реализацию LISP, которая может скомпилировать собственный код. –

+0

В случае, если это полезно: SBCL компилируется в собственный код (часто очень быстро), и я считаю, что ECL компилируется в C. – Mars

+0

[Это обсуждение] (https://groups.google.com/forum/#!topic/clojure/ f_zn0v0wr3s). – Mars

ответ

3

Теоретически вы можете AOT-компилировать исходный код Clojure для байт-кода Java, а затем использовать gcj для компиляции этого байтового кода в собственный машинный код. На практике я бы не ожидал, что это сработает; gcj имеет severe limitations, что предотвращает его использование для большинства современных приложений Java. В частности, его поддержка языковых возможностей останавливается на Java 1.2 (Clojure требует Java 1.6) и имеет неполные реализации библиотек стандартных классов, требуемых средой выполнения Clojure. В дикой природе я видел, как приложения Clojure сбой и сжигание при случайном запуске с использованием среды выполнения gcj вместо OpenJDK или Oracle JRE.

1

Clojure Компилятор в источнике «выражение», как правило, из файла, и производит JVM байткод. Этот байт-код затем скомпилирован JIT-стиль для машинного кода JVM. компилятор clojure и GCJ являются компиляторами, хотя и для разных языков, поэтому не имеет смысла говорить о цепочке один за другим. Компилятор clojure не создает исходный код Java, он напрямую создает байт-код.

+0

[Согласно странице проекта] (https://gcc.gnu.org/java/) GCJ может скомпилировать байт-код для машинного кода. Вот почему я смущен – Quanttek

 Смежные вопросы

  • Нет связанных вопросов^_^