相关疑难解决方法(0)

Quicklisp QUICKLOAD应该放在哪里?无处?

假设我在net.aserve和之上构建了一个应用程序bordeaux-threads.我的包声明可能如下所示:

(defpackage :my-package
  (:use :cl :net.aserve :bordeaux-threads)
  (:export …))
Run Code Online (Sandbox Code Playgroud)

我使用Quicklisp,所以(ql:quickload "aserve") (ql:quickload "bordeaux-threads")在编译我的包之前我在SLIME中运行,一切都很好.

当然,明天我再次启动SLIME,我必须记得QUICKLOAD在编译之前发出s,否则我就麻烦了.

可以把类似的东西

(eval-when (:compile-toplevel)
  (ql:quickload "aserve")
  (ql:quickload "bordeaux-threads"))
Run Code Online (Sandbox Code Playgroud)

在我的软件包的顶部 - 这是我为开发所做的 - 但我觉得强制一个包管理器对用户来说不是一个好主意.

还有更好的选择吗?

lisp common-lisp allegro-cl quicklisp

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

ltk(常见的lisp)的问题

我使用asdf-install将ltk安装到Steel Bank Common Lisp,但我甚至无法开始使用它V_V.下面的代码是文档中最简单的示例,几乎是逐字复制的.


(asdf:operate 'asdf:load-op :ltk)

(defun hello-1()
  (with-ltk ()
   (let ((b (make-instance 'button
                           :master nil
                           :text "Press Me"
                           :command (lambda ()
                                      (format t "Hello World!~&")))))
     (pack b))))
(hello-1)
Run Code Online (Sandbox Code Playgroud)

这是我从sbcl得到的错误消息:


> ; in: LAMBDA NIL
;     (PACK B)
; 
; caught STYLE-WARNING:
;   undefined function: PACK

;     (WITH-LTK NIL
;      (LET ((B (MAKE-INSTANCE 'BUTTON :MASTER NIL :TEXT "Press Me" :COMMAND #)))
;        (PACK B)))
; 
; caught STYLE-WARNING:
;   undefined function: WITH-LTK
; 
; compilation unit finished
;   Undefined …
Run Code Online (Sandbox Code Playgroud)

lisp ltk common-lisp asdf

7
推荐指数
1
解决办法
1373
查看次数

标签 统计

common-lisp ×2

lisp ×2

allegro-cl ×1

asdf ×1

ltk ×1

quicklisp ×1