问题标签 [clozure-cl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
203 浏览

common-lisp - 如何在纯 IPv6 网络上使用 Clozure CL?

在仅 IPv6 的网络中工作时,我尝试用 Clozure CL 替换 SBCL,但遇到了这样的错误:

问题是许多库在使用CCL:MAKE-TCP-SOCKET时没有指定地址族或指定:internet.

有没有办法ccl:make-socket在运行时修补以覆盖此设置?

0 投票
1 回答
250 浏览

sockets - 通用 lisp 上的 usocket 超时错误

cl-smtp:send-email在调用时遇到了问题,这似乎源于超时错误usocket:socket-connect

这是我正在尝试做的事情:

这似乎是发生故障的调用(根据回溯):

这是错误:

错误:错误#<USOCKET:TIMEOUT-ERROR #x302001E5FDED>

执行时:USOCKET::RAISE-ERROR-FROM-ID,在进程监听器 (475)。

奇怪的是,相同的函数调用在其他机器上也有效,但在我当前的 mac 笔记本电脑或我一直在使用的基于云的 mac 上却没有。

我在 OS 10.13.3 的 MacBook Pro 上运行 Clozure Common Lisp 1.11.1

以下是回溯仅供参考的快照:https ://imgur.com/a/e2xcf

有任何想法吗?任何帮助将不胜感激。

0 投票
1 回答
407 浏览

user-interface - 如何使用 Common Lisp (Clozure CL) 库?

我正在 Mac 上学习 Common Lisp (Clozure CL),并想创建一个简单的 GUI。我已经从 CLiki 下载了“ltk”库并将其放入根级别的项目目录中(我假设我必须这样做,因为我找不到初学者的说明)。

“LTK - a Lisp binding to the Tk toolkit”文档的第 4 页说,在(compile-file "ltk")使用(load "ltk"). 但是,我收到此错误消息:

错误:找不到文件#P“/Users/myName/Desktop/lisp_experiments/GUI_EXAMPLE/ltk” 执行时:CCL::FCOMP-FIND-FILE,在进程监听器(4)中。键入 cmd-。要中止,cmd-\ 以获取可用重新启动的列表。类型 :?其他选项。

我还使用了完整的文件路径名并得到了同样的错误。

我究竟做错了什么?

谢谢你的帮助。

马克

ps - 几乎没有关于这种事情的新手教程在线引导用户逐步完成该过程。

0 投票
2 回答
224 浏览

user-interface - 未找到 Common Lisp ltk 'button' 类

我正在 Mac 上学习 Common Lisp (Clozure CL) 并安装了 quicklisp,在这里有一位慷慨的贡献者的帮助。'ltk' 库在运行 (ltk::ltk-eyes) 或 (ltk:ltktest) 时工作​​。

运行 (ql:quickload "ltk") 似乎可以工作,因为它返回以下内容:

加载 1 个 ASDF 系统:
ltk
;加载“ltk”

我在运行从“ltk”文档中获取的以下代码时遇到问题。这是脚本:

但是,当我运行 (hello-1) 时,我得到了这个:

错误:找不到名为 BUTTON 的类。执行时:FIND-CLASS,在进程 Listener(4) 中。键入 cmd-/ 继续,cmd-。要中止,cmd-\ 以获取可用重新启动的列表。如果继续:尝试再次查找课程类型:?其他选项。

我的猜测是函数定义中没有正确访问“ltk”库?我试图通过使用 ltk:with-ltk 来解决这个问题,因为它似乎是一个 ltk 函数。

但这产生了以下错误。看来我越来越接近修复它了,因为 2D 画布也出现了,GUI 提醒我错误。

在此处输入图像描述

谢谢你的帮助。

0 投票
2 回答
55 浏览

arrays - 在 Common Lisp (ClozureCL) 中,什么表达式产生类型为 `(SIMPLE-ARRAY ARRAY (5 3 *))` 的值?

我正在尝试使用 ClozureCL 学习 CL,并且正在使用Google 的 Lisp koans

剧透警告:我正在给出一个答案来构建我的问题,因为如果我不这样做,提交的答案可能不会有针对性。


此处的代码显示了x通过的值。

尽管超出了类型符号中使用的模式,但我觉得我学到的东西不多。我想看看我是否可以使用x表单中的值通过测试,(type-of ...)以便我可以通过示例将实际值与类型联系起来。

也就是说,这是我目前未受过教育的猜测。我标记的断言; <!>对于我的第一个选择值失败x

我的问题是:如果被限制使用解决公案的(type-of <val>)<val>方法?

迄今为止的观察:

  • 这里,(type-of x)is (SIMPLE-ARRAY T (5 3 33)),这显然不是我想要的。我想要(SIMPLE-ARRAY ARRAY (5 3 *))矢量元素。
  • 看来我只能使用fixnum值指定维度,并且设置:adjustable t使数组“明确可调”,这显然意味着数组不再是SIMPLE-ARRAY.
0 投票
1 回答
53 浏览

data-structures - 为什么交联的 defstructs 会导致堆栈溢出?

在玩图表时,我遇到了一个我不太理解的奇怪错误。下面的代码重现了该问题。

我使用 SBCL 和 Clozure 得到了相同的结果。设置*print-length*为可管理的值不起作用。

所以我的问题是:为什么这段代码不创建与循环列表相同的无限打印循环(即,没有堆栈溢出并且可以使用 Ctrl-C 停止)。任何输入表示赞赏。

谢谢,保罗

0 投票
2 回答
181 浏览

performance - 如何加快 Common Lisp `IF` 语句的编译速度?

我有一个系统可以生成决策树并将它们转换为嵌套的 Common Lispif语句,其中包含检查变量值是>=<=给定整数的谓词,例如

然后我用它eval来编译 Lisp 代码,生成运行速度比解释原始决策树快得多的函数。然而,这个编译步骤花费了惊人的时间:一个包含 5000 个嵌套 if 的函数需要花费一分钟来编译(在 Powerbook 上的 Clozure Common Lisp 中),尽管生成 if 语句需要大约 100 毫秒。为什么这么简单的结构要花这么长时间?我可以做些什么来大大加快速度,也许是一些声明?我非常感谢您提供的任何指示。

0 投票
0 回答
92 浏览

common-lisp - 如何修复clozure common lisp上的hunchentoot ssl接受器错误?

我试图在运行 OS 10.13.6 的 MacBook Pro 上运行 clozure common lisp 1.11.1 上运行 hunchentoot 的 SSL 版本

我首先在 /tmp 目录中创建证书,如下所示:

这是我的lisp代码:

当我尝试https://localhost:7777/secure从浏览器访问时,浏览器上没有显示任何内容,并且 hunchentoot 向日志窗口抛出以下错误:

在此处输入图像描述

未处理的 execption 11执行外部代码时发生异常

有关如何解决此问题的任何建议?

0 投票
1 回答
252 浏览

common-lisp - 发生错误时如何让 Clozure 退出

我正在尝试在 CCL 下运行程序,因此当程序因任何原因完成运行时,它应该退出回操作系统。当前使用此命令行(在 Windows 上):

当程序成功运行到正常完成时退出,但如果出现错误,例如内存不足,它会在调试器中结束。当出现错误时,你如何告诉 Clozure 也退出?

0 投票
1 回答
141 浏览

lisp - Emacs 中的 SLIME 和 CCL minibuffer 文档

在使用 Emacs、SLIME 和 Clozure CL 时,我有一个小小的抱怨:(aref我还没有看到任何其他实例)的函数签名仅显示为(aref a).

当我去源代码时,有问题的代码以(defun aref (a &lexpr subs). 据我所知,&lexpr不是有效的 CL lambda 列表关键字。因此,这表明 SLIME 由于“weird”关键字而没有显示正确的函数签名。

但是,当我对 做同样的事情时svref,没有什么(至少对我而言)可以证实上述假设。所以也许 SLIME 也能做点什么。

任何人都可以指出相关文档(我在 SLIME 手册和 CCL 手册中没有找到任何相关的内容)或者有人有解决方法/解决方案吗?