"inferior-lisp" 有何不足之处?

14

我开始学习lisp、emacs和ess(Emacs Speaks Statistics),遇到了“inferior-this-or-that”的概念。例如,有inferior-ess-modeinferior-lispInferior Emacs Lisp Mode

在所有这些情况下,似乎某些解释性语言正在emacs中运行,并且您可以在缓冲区内与其交互。但是它们为什么被称为“inferior”,以及它们比什么更“inferior”?


6
“inferior”在这里的意思是相对于你的上级而言,你处于下级位置。这并不是一个定性词汇,它指的是下级流程由上级流程管理,“向上级流程汇报”,并且“接受上级流程的任务分配”。 - Joshua Taylor
2个回答

13

劣质模式是指作为emacs子进程运行的模式。

举个例子,当我启动emacs时,这是我的进程树:

$ pstree 62238
--= 62238 smt /usr/local/Cellar/emacs/HEAD/Emacs.app/Contents/MacOS/Emacs

在我运行下级tcl shell之后,我的进程树看起来是这样的:

$ pstree 62238
-+= 62238 smt /usr/local/Cellar/emacs/HEAD/Emacs.app/Contents/MacOS/Emacs
 \-+= 62359 smt /bin/sh /usr/bin/wish
   \--- 62361 smt /usr/bin/../../System/Library/Frameworks/Tk.framework/Version

换句话说,在这个语境中,“inferior”与前缀“sub-”是同义词。


8
我认为“Inferior Emacs Lisp Mode”(ielm)是一个错误的名称。它应该被命名为“Interactive Emacs Lisp Mode”。使用ielm时,Emacs Lisp并不是以较差的Lisp运行。它是内置的Emacs Lisp的“读取评估打印循环”。GNU Emacs确实将其命名为“Inferior Emacs Lisp Mode”,但如果你查看源代码,它直接使用内置的Emacs Lisp eval来评估表达式。它只是重用了一些基础设施(如comint)来处理“较差的解释器”(如Lisps、shells等)。
通常,“Inferior Lisp”意味着它是一个(通常是外部的)由Emacs控制的Lisp系统。它也不需要是Emacs Lisp。通常它是其他Lisp方言,比如Common Lisp。Common Lisp对Emacs和Common Lisp进行了几个扩展,使其作为较差的Lisp运行,并具有许多Lisp开发环境的功能(调试器、检查器、源代码定位器等)。
  • ILISP劣等Lisp),已过时
  • ELIEmacs-Lisp接口),由Franz,Inc.为Allegro CL提供
  • SLIME超级Lisp交互模式
  • SLYSylvester the Cat的Common Lisp IDE

Emacs还有一个简单的内置功能,可以运行一个劣等Lisp外部Lisp

  • inferior-ess-mode:控制R子进程
  • inferior-lisp:一个Lisp子进程
  • inferior-emacs-lisp-mode:内置的Emacs Lisp作为读取求值打印循环

已经有lisp-interaction-mode了,它被用于*Scratch*。在IELM的情况下,“Inferior”是指通过Comint Mode运行,这也是所有“Inferior”模式(即Inferior Haskell Mode)所做的,因此这是IELM的真正特色。Lisp交互模式提供了一种非常不同的解释Emacs Lisp的方式。 - user355252
lunaryorn: lisp-interaction-mode 也使用内置的 Emacs Lisp。它和 ielm 都没有使用 较差的 Lisp - Rainer Joswig
基于Comint构建,IELM看起来像一个“次等”的解释器,对于所有目的和意图而言。与Lisp交互模式相比,“交互”并不足以描述IELM的独特特点。最终,M-:也是“交互”的。整个Emacs本质上是一个交互式的Emacs Lisp环境。 - user355252
lunaryorn:它看起来像是一种次等的 Lisp,但实际上并不是。例如,如果执行 Emacs Lisp 代码,则 Emacs 将完全无响应。更改会对本地 Emacs 产生影响,这意味着重新定义 Emacs Lisp 函数可能会使编辑器崩溃,设置变量可能会对编辑器产生影响... - Rainer Joswig
作为SLIME的替代品,Sly是必须提及的选择。 - Colin Woodbury

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接