标签: slime

Lisp In A Box - 为什么要启动服务器?

我已经决定回到LISP(自我的AI类以来没有使用过它)以便更好地使用函数式编程,所以我下载了Lisp In A Box(我们实际上在以前的类中使用过) CLISP和Emacs.

当我运行它时,它说:

在1617号港口连接.拿这个REPL,兄弟,也许它可以为你服务.

什么?所以我更仔细地查看了Lisp In A Box网页,发现了这个:

SLIME是Emacs的集成开发环境,它通过网络套接字与Common Lisp实现接口.有关SLIME的大量信息可以在CLiki上的SLIME节点上找到.SLIME手册在线提供PDF格式.

我有点理解SLIME是什么(对emacs的某种扩展,对吗?)但是为什么世界上是一个文本编辑器启动自己的服务器并连接到它?

lisp emacs slime lisp-in-a-box

9
推荐指数
2
解决办法
2403
查看次数

Clojure emacs史莱姆+ swank目录问题

我正在使用带有clojure-swank和slime的emacs并尝试设置我的开发环境.我遇到了一个问题.当我开始一个repl时,我被困在一个未知的目录中,阻止我加载我的命名空间.因为clojure repl找不到合适的文件.

有谁知道如何更改当前目录?

PS:我刚刚开始使用emacs和粘液,所以我是菜鸟.

clojure slime swank read-eval-print-loop

9
推荐指数
2
解决办法
2739
查看次数

lisp作为shebang脚本vs在SLIME中运行的lisp

我刚开始使用common-lisp,它来自C++和Python.我正在尝试运行一个简单的SDL程序,除了在屏幕上显示图像之外什么都不做.我可以在SLIME中使用它.问题是,从shell作为脚本运行时它将无法工作.

我的程序看起来像这样:

#!/usr/bin/sbcl --script

(asdf:operate 'asdf:load-op :lispbuilder-sdl)

(defun main ()
  (sdl:with-init ()
    (sdl:window 320 240)
    (sdl:draw-surface (sdl:load-image "image.png"))
    (sdl:update-display)
    (sdl:with-events ()
      (:quit-event () t)
      (:video-expose-event () (sdl:update-display)))))

(main)
Run Code Online (Sandbox Code Playgroud)

当我将其作为脚本运行时,我收到以下错误:

mkg@chisel:~/projects/common-lisp/sandbox$ ./hello-world.lisp 
unhandled ASDF:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "initial thread" RUNNING {AA5E849}>:
  component "lispbuilder-sdl" not found

0: (SB-DEBUG::MAP-BACKTRACE #<CLOSURE (LAMBDA #) {AAF1EF5}>)[:EXTERNAL]
Run Code Online (Sandbox Code Playgroud)

(...长回溯省略)

奇怪的是,如果我执行以下操作,此程序可以正常工作.我在Emacs中打开程序,在另一个窗口中启动SLIME,在SLIME窗口中,我输入程序的第一行:

(asdf:operate 'asdf:load-op :lispbuilder-sdl)
Run Code Online (Sandbox Code Playgroud)

然后,在编辑器窗口中,我点击了Cc Ck(编译/加载文件).这会弹出一个显示image.png的窗口,如预期的那样.

为什么在作为shebang脚本运行时不起作用?我该如何解决?

lisp sdl sbcl slime shebang

9
推荐指数
1
解决办法
1399
查看次数

SLIM对python最接近的是什么?/使用EMACS的python的最佳方法是什么?

我正在尝试编写一些python,我习惯了lispy的做事方式,EMACS中的REPL以及向REPL发送任意代码片段的能力.我喜欢这种开发代码的方式,而python的内置IDLE似乎做得非常好.但我确实喜欢EMACS作为编辑.

什么是类似于SLIME for Python的最好的东西?


至今:

似乎诀窍是打开一个python文件,然后使用Python菜单中的"Start Interpreter",之后你会得到一个Inferior Python缓冲区.然后,您可以使用Cc Cc将正在编辑的整个缓冲区加载到"REPL"中,并使用普通的复制和粘贴将片段放入REPL.

这项工作尽可能地发挥作用.有没有办法说'重新评估光标在现在的重要事项并显示答案',或者'重新评估光标刚刚结束的东西并显示答案',如SLIME中的MCx和Cxe?

如果你使用Bozhidar的答案中的python-mode.el,这一切似乎都会更好

python emacs slime

9
推荐指数
2
解决办法
3686
查看次数

我怎样才能取消合格方法?

在开发过程中,我定义了一个'initialize-instance:after'方法,该方法不再需要一段时间了,实际上是在我的方式中,因为在它内部调用的代码不再有效.由于unintern函数没有限定符的参数,有什么方法可以"unintern"方法的符号限定符组合,这样我就不必再使用slime-restart-inferior-lisp并从中再次加载项目开始?

lisp common-lisp slime

9
推荐指数
2
解决办法
1015
查看次数

请推荐一个好的史莱姆教程或截屏视频

我在Java中的冒险经历让我看到Clojure,然后引导我(重新)发现Emacs并引导我进入SLIME.

我对Emacs本身有一个相当不错的处理,我有emacs-starter-kit以及clojure-mode/slime/swank以及一些其他不相关的模式和调整设置和运行.

但是建立一个程序并理解它的功能并不相同.所以现在在我回到Clojure实验之前,我想先了解一下Slime IDE本身以及它能做些什么.

任何人都可以推荐一个教程/截屏,它会教我一些基本的Slime用法吗?我已经熟悉与Slime以交互方式执行Clojure,但肯定不能成为Slime的唯一功能.

本教程不需要涉及Clojure,但如果确实如此,那将是一个加分,但我感兴趣的主要焦点是Slime,所以请不要发布Clojure教程,除非他们突出显示Slime的用法,而不仅仅是交互式地执行Clojure代码.

java emacs clojure slime

8
推荐指数
1
解决办法
2096
查看次数

clojure-jack-in究竟做了什么?以及如何使用粘贴配置设置?

clojure-jack-in究竟做了什么?以及如何使用粘贴配置设置?我需要添加什么来添加到.emacs中?

emacs clojure slime

8
推荐指数
1
解决办法
1534
查看次数

用Clojure编写的Clojure编辑器

注意:我不是在寻找LightTable.我真的在寻找在Clojure中实现的Clojure编辑器.

最近,我一直在研究slime/swank/elisp.虽然这是一个了不起的系统,但我实际上并不理解(除了历史文物的原因)为什么我应该:

(*)在Clojure中编写我的代码的一部分,然后在elisp中编写编辑器插件

似乎除了emacs/swank/elisp已经存在的事实之外,没有理由更喜欢elisp而不是clojure.

因此,我的问题是:是否有任何可用的项目在clojure中实现clojure编辑器/ ide?如果它不像emacs/slime/swank那么开发也没关系 - 我不介意写更多的clojure代码.

谢谢!

emacs editor clojure slime swank

8
推荐指数
1
解决办法
2408
查看次数

使用不同的lambda列表重新定义泛型函数

我犯了一个错误,忘记在defgeneric我第一次编译它时指定关键字参数.现在我真的不想重新启动SLIME来重新定义这个defgeneric以包含更多参数.有没有办法以某种方式"取消定义"它?

哦,对不起,没关系,在删除为该通用定义的所有方法之后,SBCL重新定义了它,所以它现在都很好:

(remove-method #'some-generic 
  (find-method #'some-generic '() (list of method types)))
Run Code Online (Sandbox Code Playgroud)

对于后代.

sbcl common-lisp slime

8
推荐指数
2
解决办法
618
查看次数

在MacOS上SLIME下的cl-opengl崩溃了SBCL ...... bug?

我想在Emacs和SLIME下的Common Lisp中做一些O​​penGL编程.我没有参与其中,但我目前正在尝试使用SBCL.如果我从一开始就打开emacs,只用这一行创建一个新文件:

(ql:quickload :cl-opengl)
Run Code Online (Sandbox Code Playgroud)

然后我做M-x slime(并等待加载),然后C-c C-c编译并运行该行,SBCL每次都崩溃,每次都会提示一个对话框说sbcl quit unexpectedly:

错误对话框:sbcl意外退出

我通过点击"报告..."按钮保存了可访问的输出; 如果那是有用的,我可以在这里添加(或将它放在pastebin或其他东西上)......简短的版本是它得到了SIGTRAP.

每次我尝试在SLIME下运行时都会发生这种情况......但是,有趣的是,如果我从命令行运行SBCL,则不会发生这种情况.

所以,问题是:这是SBCL中的错误吗?在cl-opengl?我错误配置的东西?其他?任何见解将不胜感激.


注意:

我做了一些谷歌搜索,我找到了一个页面,提供了将以下内容放入的解决方法~/.swank.lisp:

(setf swank:*communication-style* :fd-handler)
Run Code Online (Sandbox Code Playgroud)

事实上,这让我超越了直接的崩溃,让我能够做一些工作.如果这只是答案,有人请将其作为答案发布,并解释为什么要这样做,以便其他人可以找到它.否则,我想象这是一个错误,但是,这可能是固定的,而不是解决...和/或至少我可以帮助更好地理解的东西; 我仍然没有响应的REPL与我当前的代码(基本上在brian的大脑,作为测试用例)运行(通过run),这可能是也可能不是一个单独的问题?改变swank配置改变了我的情况吗?


平台细节:

操作系统:MacOS 10.6.8

SBCL:来自MacPorts的sbcl@1.1.10_0+fancy ; launch header 这是SBCL 1.1.10,ANSI Common Lisp的一个实现.

Emacs:macports安装的Emacs 版本24.3(9.0)(根据窗口的GUI,或者2013-04-07每个的GNU Emacs 24.3.1(x86_64-apple-darwin10.8.0,NS apple-appkit-1038.36)M-x version,或者emacs-app@24.3_1端口)

史莱姆:来自MacPorts的史莱姆@ 20130630

opengl sbcl common-lisp slime

8
推荐指数
1
解决办法
451
查看次数