Emacs реализует интерпретатор для elisp в C, который фактически является эталонной реализацией. Существуют ли другие реализации elisp на других языках (особенно на Javascript)? Какой минимальный набор примитивов необходим для полного переопределения elisp? Каковы основные трудности при этом (например, динамическое определение объема)?
12
Ответы:
Guile Emacs - это реализация Emacs, где оригинальный интерпретатор Emacs Lisp недавно был заменен libguile. По-прежнему существуют проблемы взаимодействия (например, Guile и Emacs имеют разные представления о строках), но существующий код Emacs Lisp уже может использоваться (хотя и с довольно пугающими регрессиями производительности).
С другой стороны , есть nicferrier «s Ejit . Его README описывает описанные трудности, такие как определенные вещи, создающие контекст только в Emacs, и то, как выбирается минимальный набор примитивов перед компиляцией Emacs Lisp в Javascript. Поэтому это не совсем повторная реализация, но может помочь ответить на ваши последние вопросы.
источник