Emacs implementa un intérprete para elisp en C que sirve como implementación de referencia de facto . ¿Hay otras implementaciones de elisp en otros idiomas (particularmente Javascript)? ¿Qué es un conjunto mínimo de primitivas necesarias para reimplementar completamente elisp? ¿Cuáles son las dificultades esenciales para hacerlo (por ejemplo, alcance dinámico)?
12
Respuestas:
Guile Emacs es una implementación de Emacs donde el intérprete original de Emacs Lisp fue reemplazado por libguile recientemente. Todavía hay problemas de interoperación (Guile y Emacs tienen ideas diferentes sobre las cadenas, por ejemplo), pero el código existente de Emacs Lisp ya puede usarse (aunque con regresiones de rendimiento bastante intimidantes).
Alternativamente, está el Ejit de nicferrier . Su README describe las dificultades involucradas, como ciertas cosas que solo hacen contexto en Emacs y cómo se elige un conjunto mínimo de primitivas antes de compilar Emacs Lisp a Javascript. Por lo tanto, no es realmente una reimplementación, pero podría ayudar a responder sus últimas preguntas.
fuente