Emacs implementuje interpreter dla elisp w C, który służy jako de facto implementacja referencyjna. Czy są jakieś inne implementacje elisp w innych językach (szczególnie Javascript)? Jaki jest minimalny zestaw prymitywów niezbędnych do pełnego ponownego wdrożenia elisp? Jakie są w tym podstawowe trudności (np. Dynamiczne określanie zakresu)?
12
Odpowiedzi:
Guile Emacs to implementacja Emacsa, w której oryginalny interpreter Emacs Lisp został niedawno zastąpiony przez libguile. Nadal występują problemy ze współpracą (na przykład Guile i Emacs mają różne poglądy na temat ciągów znaków), ale istniejący kod Emacs Lisp może już zostać użyty (choć z zastraszającymi regresjami wydajności).
Alternatywnie istnieje nicferrier „s Ejit . W pliku README opisano trudności, takie jak niektóre elementy tworzące kontekst tylko w Emacsie oraz sposób wyboru minimalnego zestawu prymitywów przed skompilowaniem Emacsa Lisp do Javascript. Dlatego nie jest to tak naprawdę ponowna realizacja, ale może pomóc w udzieleniu odpowiedzi na ostatnie pytania.
źródło