问题标签 [ccl]
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.
windows - 让 Clozure Common Lisp 识别我在 Windows 上的自定义 HOME
我正在 Emacs 中的 WinXP 上编写 Common Lisp(下载了 CCL 1.11 附带的 Lispbox 的一个分支,并将默认设置更改.emacs.d
为 Spacemacs)
我有一个 .bat 文件,它启动 emacs 并将 HOME 设置为我的自定义主目录(我希望这个设置是可移植的)
我的文件按以下方式组织:
它适用于 elisp((file-truename "~")
返回d:/Program Files/Lispbox/lispbox/home
),并且 CL(getenv "HOME")
返回我的自定义目录
但是当我尝试~
在 quickproject 或路径名之类的东西中引用它时,它返回默认值C:\Documents and Settings\USER
(quickproject 创建了我的项目C:\Documents and Settings\USER\src\myproj
)
有没有办法让 CCL 在我引用时使用我的主目录~
(最好不影响我的 lisp 目录之外的文件,我不想将我的主目录符号链接到系统主目录或其他东西)?
macos - CCL Cocoa 桥“hello world”不工作?
我正在尝试运行 Clozure 为 CCL-Cocoa 桥提供的“hello world”脚本:
https://trac.clozure.com/ccl/wiki/CocoaBridge
加载包含这些表单的文件,评估 (show-red-window),您将看到一个红色窗口。
red-window.ccl
但是当我跑步ccl64
并输入
我只是在终端上得到这个输出:
并且似乎没有其他任何事情发生。
我错过了什么吗?我是 CL 和 Cocoa 的新手。
common-lisp - 为什么在编译函数定义(Clozure Common Lisp)时要评估宏?
我有:
当我编译操作码调用时,REPL 输出:
为什么在编译时评估分配?
lisp - 如何获取 Lisp 进程中可用的所有环境变量的列表?
我想枚举我的 Lisp 进程中可用的所有环境变量的列表。我想要 C 变量返回的相同列表environ
。
SBCL 和 Clozure CL 似乎都没有提供开箱即用的功能。我可以使用 CFFI 吗?
io - 未读字符行为偏离规范?
在 Common Lisp HyperSpec 页面上unread-char
- 请参见
此处- 它说明了以下两件事:
“unread-char 旨在成为一种有效的机制,允许 Lisp 阅读器和其他解析器在输入流中执行单字符前瞻。”
“在同一流上连续两次调用 unread-char 而不在该流上调用 read-char (或其他一些隐式读取字符的输入操作)是错误的。”
我正在研究如何为我打算编写的解析器添加对 CL 流的多字符前瞻的支持,为了确认上述内容,我运行了以下代码:
它不会引发错误(在 SBCL 或 CCL 上,我尚未在其他实现上对其进行测试)但我看不出如何在流之间发生任何读取操作(隐式或显式)连续调用unread-char
.
这种行为对于多字符前瞻来说是个好消息,只要它是一致的,但为什么不抛出错误呢?
ubuntu - ubuntu 上的 ccl lisp:当我离开 ccl 时,它会终止 shell
我在数字海洋 Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-124-generic x86_64) 服务器上使用 ccl (Clozure CL) 1.11.5。工作正常,但是每当我通过 ^d 或(退出)退出 lisp 时,linux shell 也会终止,我必须重新 ssh 到服务器!我已经在打开和关闭 bash ignoreeof 的情况下进行了尝试——同样的事情发生了。有什么线索吗?
谢谢!
mysql - Windows 平台上的 clsql-mysql (Clozure CL)
我正在尝试clsql-mysql
在 Windows 平台上使用。我正在使用 32 位 Clozure CL 和 32 位 MySQL 连接器库(来自 Oracle)来提供外部库。
我将连接器的路径添加到 %path% 以便 clsql 可以找到连接器库,并使用
顺利进行并返回一个<MYSQL_DATABASE>
对象。
但是,当我尝试执行简单的 SQL 查询时,出现以下错误:
这可能与 mysql 连接器的编译方式有关吗?从 MySQL 连接器提供的 INFO_BIN 文件中:
在搜索此错误时,我能找到的唯一结果是与 Ubuntu 上的类似问题相关的结果。
如何开始调试此错误,或者如何修复此错误以使 SQL 查询完成而不会出现错误?
compilation - Common Lisp 将代码编译并加载到图像中的机制
最近我一直在阅读现代操作系统如何加载可执行程序并为它们分配内存。不幸的是,我只有一本俄语的计算机科学书籍作为参考,所以,如果我错了,请纠正我,但现代操作系统似乎在可执行程序中有不同的部分用于数据和实际的处理器命令。此外,不可能将控制权交给数据部分,即不能将命令存储在那里。也无法更改可执行 ( text
) 部分中的处理器命令。
因此,问题是:现代编译的 CL(SBCL,Clozure-CL)是如何做到的?据我所知,它会创建已编译的 FASL 文件,然后加载它们。但是在编译文件时会创建可见的 FASL 文件。评估函数形式时会发生什么?其次,CL 如何加载它们(在机器/操作系统命令级别)以便为它们分配正确的内存?此外,必须以某种方式卸载旧代码。
PS。当然,这对于解释型语言来说不是问题。对于 JIT 编译器来说,事情变得更加复杂。
lisp - Common Lisp - CCL,为什么在将全局函数传递给局部函数时会出现警告?
我正在使用 CCL 学习 Common Lisp。当我在本地使用全局变量时收到警告。为什么 CCL 提供此功能?这样做的目的是什么?