20

我正在学习 Emacs Lisp,我遇到了这篇十年前的帖子,说在某个时候 Guile (Scheme) 将取代 Emacs Lisp,或者 Emacs 将被 Guile 重写。

https://web.archive.org/web/20081201143448/http://sanpietro.red-bean.com/guile/guile/old/3114.html

我想知道这是否仍有可能,开发人员是否应该考虑到这一点来尝试编写 Elisp?Guile 最初的目标是向后兼容 Elisp,但似乎开发 Scheme 是更好的选择。

4

6 回答 6

9

Guile 2.0 发布后应该可以将 Guile 与 Emacs 一起使用。当前的预发布版本支持 ecmascript 和 scheme,显然也有一个 elisp 分支,但我还没有研究过。一旦 Guile 完全支持 elisp,用 Guile 替换当前的 elisp 解释器应该不会太难。真正的问题是人们是否会在方案中重写他们的自定义和附加组件,或者只是继续使用 elisp。无论如何,Guile 2.0 应该使 Guile Emacs 的可能性比过去 10 年中的任何其他开发更接近现实。

于 2009-11-11T15:12:06.870 回答
9

Guile 2.0.0(2011-02-06 发布)支持 Emacs Lisp。

您可以像这样在 repl 处切换:

 scheme@(guile-user)> ,language elisp
 Happy hacking with Emacs Lisp!  To switch back, type `,L scheme'.
 elisp@(guile-user)> (eq 1 2)
 $1 = #nil

至于是否/何时有人要在 Emacs 上进行一些手术以提取 elisp 并在 Guile-in-elisp-mode 中下降:Guile 2.0.2 参考手册表明这是计划,但尚未准备好:

我们希望 Guile 的 Elisp 实现最终足以取代 Emacs 自己的 Elisp 实现。

于 2011-07-06T11:53:28.747 回答
8

guile 和 emacs,再次更新 Emacs src,使用未破解的 Guile,2009 年 8 月 23 日

PS:我最近注意到我第一次提交与这个项目相关的 Emacs 源代码树是在 1999 年 8 月 28 日,就在十年前。我不确定我应该在星期五庆祝还是沮丧。

http://lists.gnu.org/archive/html/guile-devel/2009-08/msg00163.html

于 2009-11-03T08:50:50.817 回答
4

最近有一些关于这个话题的有趣讨论:

于 2010-07-24T13:39:09.490 回答
2

我不会太担心它。有几个项目可以在 Emacs 中使用 Guile,但我感觉它们不受主线支持。正如其中一个项目的开发人员所观察到的,除非他们现有的所有 elisp 在新引擎中完美运行,否则没有人会切换,这是一项艰巨的任务。

并不是说它永远不会发生,它只是“在云端”存在了几年。

于 2009-11-02T21:10:43.313 回答
2

在未来,使用像parrot这样的 VM似乎比 Guile 更有趣,因为 Parrot VM 可以处理许多不同的动态语言,并且每种语言都可以重用用另一种语言开发的内容。

剩下要做的工作是:

  • 向 Parrot VM 添加 emacs 低级概念和功能(基本的 elisp 类型,如缓冲区类型、窗口、框架......)
  • 为 Parrot VM 创建一个 elisp 语言端口。

借助这些功能,您可以在 Parrot VM 上运行所有遗留的 elisp 代码,而不会出现任何移植问题,并且可以通过 Parrot VM 支持的任何语言开发和重用新代码。

于 2010-07-23T13:38:05.580 回答