如何使用 SBCL 正确保存 Common Lisp 图像?

2024-03-11

如果我想创建我的程序的 Lisp 映像,我该如何正确地做到这一点?有什么先决条件吗?它与 QUICKLISP 配合得很好吗?

现在,如果我启动 SBCL(仅预加载 QUICKLISP)并保存图像:

(save-lisp-and-die "core")

然后尝试使用此图像再次启动 SBCL

sbcl --core core

然后尝试做:

(ql:quickload :cl-yaclyaml)

我得到以下信息:

To load "cl-yaclyaml":
  Load 1 ASDF system:
    cl-yaclyaml
; Loading "cl-yaclyaml"
.......
debugger invoked on a SB-INT:EXTENSION-FAILURE in thread
#<THREAD "main thread" RUNNING {100322C613}>:
  Don't know how to REQUIRE sb-sprof.
See also:
  The SBCL Manual, Variable *MODULE-PROVIDER-FUNCTIONS*
  The SBCL Manual, Function REQUIRE

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY                        ] Retry completing load for #<REQUIRE-SYSTEM "sb-sprof">.
  1: [ACCEPT                       ] Continue, treating completing load for #<REQUIRE-SYSTEM "sb-sprof"> as having been successful.
  2:                                 Retry ASDF operation.
  3: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration.
  4: [ABORT                        ] Give up on "cl-yaclyaml"
  5:                                 Exit debugger, returning to top level.

(SB-IMPL::REQUIRE-ERROR "Don't know how to ~S ~A." REQUIRE "sb-sprof")
0] 

或者,如果我尝试:

(require 'sb-sprof)

当使用保存的核心启动 sbcl 时,我收到相同的错误。如果 sbcl 启动如下sbcl没有报告错误。

事实上,预加载 QUICKLISP 不是问题:如果最初使用 sbcl 调用,也会发生同样的问题sbcl --no-userinit --no-sysinit.

我做错了吗?

附言。如果我用罗斯韦尔,ros -L sbcl-bin -m core run不知何故没有拾取图像(通过声明变量进行测试*A*保存之前并且重新启动后看不到它)。

PS2。到目前为止,sbcl 不提供扩展模块(SB-SPROF, SB-POSIX等)除非在保存图像之前明确要求它们。


感谢@jkiiski 的帮助,这里是完整的解释和解决方案:

  1. SBCL 使用额外的模块(SB-SPROF, SB-POSIX和其他)并不总是加载到图像中。这些模块驻留在contrib目录位于任一位置SBCL_HOME环境变量指向(如果已设置)或图像所在的位置(例如,在/usr/local/lib/sbcl/).

  2. 当图像保存在另一个位置时,如果SBCL_HOME未设置,SBCL 将无法找到contrib,因此我看到了错误。

  3. 设置 SBCL_HOME 指向contrib位置(或复制contrib到图像位置或新图像contrib位置)解决问题。

  4. 最后,关于roswell:roswell参数-m搜索特定位置的图像。对于 SBCL (sbcl-bin)会是这样的~/.roswell/impls/x86-64/linux/sbcl-bin/1.3.7/dump/。其次,SBCL 的图像名称必须采用以下形式<name>.core。要启动它,请使用:ros -m <name> -L sbcl-bin run。 (快速编辑:更好地使用ros dump正如有人向我指出的那样,使用 roswell 保存图像)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 SBCL 正确保存 Common Lisp 图像? 的相关文章

  • 在lisp中,如何使用floor函数返回的第二个值?

    当我这样做时 4楼3 我得到了 1 1 3 但我该如何使用这 1 3 呢 例如 您可以使用将其绑定到变量multiple value bind multiple value bind quot rem floor 4 3 format t
  • 如何使用 Common Lisp 获得列表的所有可能排列?

    我正在尝试编写一个 Common Lisp 函数 该函数将给出列表的所有可能排列 每个元素仅使用一次 例如 列表 1 2 3 将给出输出 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 我已经写过一些有用的东西 但它
  • Common Lisp 重新启动到条件绑定

    我在空闲时间学习 Common Lisp 并对条件系统有疑问 当我们在 common lisp 中处理错误时 我们在处理程序中指定错误类型来确定要处理哪个错误 在引发和处理错误之间 我可以进行一些重新启动 例如使用 restart case
  • Common Lisp 中的 LET 与 LET*

    我理解 LET 和 LET 并行绑定与顺序绑定 之间的区别 并且作为理论上的问题 它非常有意义 但有没有什么情况你曾经真正需要过 LET 在我最近查看的所有 Lisp 代码中 您可以将每个 LET 替换为 LET 而无需进行任何更改 编辑
  • Common Lisp 类型声明未按预期工作

    当我在 Common Lisp 中定义一个函数时 如下所示 defun foo n declare type fixnum n n 42 我期待一个像这样的电话 foo a 立即失败 但在调用时失败 是个declareform 不保证静态类
  • 将某些对象从一个数据库迁移到另一个数据库

    我如何从一个数据库 开发 sqlite 转储一个用户及其所有关联 评论 帖子等 以将其插入另一个数据库 生产 mysql 我应该将其转储到 yaml 或 sql 或其他东西中 Ok God Save the YAML 我已经使用 YAML
  • 任意类型说明符上的 Defmethod?

    我想做的是 defgeneric fn x defmethod fn x integer 1 Positive integer defmethod fn x integer 1 Negative integer 我想要一个可以与任意类型说明
  • 使用包阴影符号

    例如 我有这个包定义 它遮蔽了 COMMON LISP LISTEN defpackage shadows use common lisp shadow listen export listen 然后我想使用另一个包中的这个包 比如说 de
  • 转储中的维基百科类别层次结构

    我想使用维基百科的转储为其类别构建一个层次结构 我已经下载了主转储 enwiki latest pages articles 和类别 SQL 转储 enwiki latest category 但我找不到层次结构信息 例如 SQL 类别的转
  • 破译vtable转储

    我正在 玩 C 中的虚拟继承 我想知道类对象是如何布局的 我有这三个课程 class A private int a public A this gt a 47 virtual void setInt int x this gt a x v
  • 制作 SQL Server 转储并将该转储导入另一个 SQL Server 的最佳(最简单)方法

    我想从一台服务器在 SQL Server 中实现数据库导出 转储 并将该转储导入到另一台 SQL Server 中 并且不一定使用相同的架构名称 例如 如果我准备了一个数据库 其中包含用于为新客户实施新数据库的所有数据集 则该数据库名为 D
  • 从 CCL 检索(加载)源代码?

    我打了电话 load code lisp 用CCL 然后不小心删除了code lisp 有什么办法可以找回源代码吗 CCL 在内存中是否有它 这是一个非常特殊的功能 这里只为克洛祖尔CL 该代码在其他地方不起作用 这在 CCL IDE 中对
  • setf中的f代表什么?

    LISP 有setf函数给变量赋值 现在我一直想知道该函数的名称 Theset部分是显而易见的 但是什么是f后缀代表 F的实际含义经常被忘记 根据一些消息来源 f 后缀可以代表 字段 例如参见这个answer https stackover
  • 如何从 SBCL 解释器将特定函数写入文件?

    假设我在没有 SLIME 的情况下玩过 SBCL 没有任何简单的解释器 现在我想将几个函数保存在一个文件中 不是核心图像 只是文本形式的一些代码 我该怎么做呢 有两种方法可以做到这一点 使用DRIBBLE and or FUNCTION L
  • Common Lisp 反引号/反引号:如何使用?

    我在使用 Lisp 的反引号读取宏时遇到问题 每当我尝试编写一个似乎需要使用嵌入式反引号的宏时 例如 w x y 来自保罗 格雷厄姆的ANSI 通用 Lisp 第 399 页 我不知道如何以编译的方式编写代码 通常 我的代码会收到一整串错误
  • Lisp:CHAR 既未声明也未绑定

    几天前我决定学习 通用 Lisp 我意识到这是一个相当新手的问题 对于至少有一点经验的人来说可能非常微不足道 所以基本上发生的事情是我加载 Emacs Slime 通过 Lisp in a Box 并编写我的程序 包括在下面 defun l
  • Linux:如何调试 SIGSEGV?如何追踪错误源?

    我的火狐浏览器从今天开始崩溃了 我没有更改系统或 Firefox 配置上的任何内容 I use strace ff o dumpfile txt firefox来追踪问题 这没什么大帮助 我在两个生成的进程转储中看到了段错误 但我怎样才能t
  • 将屏幕(程序)输出保存到文件

    我需要保存整个输出Screen https en wikipedia org wiki GNU Screen到一个文件以便稍后检查所有内容 原因是我通过串行端口转储闪存 使用 Screen 与其交互 我想将其保存到文件中以检查内存结构 我试
  • 我如何访问 Common lisp 中 Defclass 插槽的 :Documentation 字符串

    好的 这是我如何实例化 Defclass 以及相关的 Defmethod 和 Defparameter defvar account numbers 0 defclass bank account customer name initarg
  • Nodejs 进程挂起,我该如何调试它或收集转储?

    我的nodejs进程在Linux上运行 现在挂起并且CPU为100 无论如何我可以调试它并找到原因吗 我需要收集转储吗 如何收集 谢谢 有一个 npm 模块叫做节点为何运行 https www npmjs com package why i

随机推荐

  • 如何使用 IEnumerable<> 类型创建 CodeFunction2?

    我确实需要创建如下所示的内容 我正在构建 2 个类 第一个类是名称为 tableNameAsSingular 即 AddressEntity 的类 在我的第二个工作类中 我需要具有如下所示的内容 public IEnumerable
  • 计时器和 JFrame 错误

    我正在制作一个带有计时器和 JFrame 的游戏 以及许多其他东西 但只有这两个会引起问题 在运行下面的片段后 我收到了一个奇怪的错误 至少对于之前从未使用过这些类的我来说是这样 开始执行这个 private static GameView
  • Java 使用 Math.ceil 向上舍入为 int

    int total int Math ceil 157 32 为什么它仍然返回4 157 32 4 90625 我需要四舍五入 我环顾四周 这似乎是正确的方法 I tried total as double输入 但得到 4 0 我究竟做错了
  • 查找一组字符串中 K 个最长的公共后缀

    我想在一组字符串中找到最长的常见后缀 以检测我的自然语言处理项目中的一些潜在的重要语素 给定频率K gt 2 在字符串列表中找到K个最常见的最长后缀S1 S2 S3 SN 为了简化问题 这里举一些例子 Input1 K 2 S firema
  • 确定按下“Backspace”按钮

    How to determine in GWT that user pressed Backspace button I tried this but it does not work Override public void onKeyP
  • zip mime 类型,何时选择哪一种

    到目前为止 对于 Zip 文件的 Mime 类型 我已经看到 应用程序 八位字节流 多部分 x zip 应用程序 zip 应用程序 zip压缩 应用程序 x zip 压缩 我想我的问题是哪个是 最好的 为什么 为什么有这么多选择 我使用 w
  • System.Timers.Timer Elapsed 事件在调用timer.Stop()后执行

    背景 我有一个计时器 用于跟踪自串行端口数据接收事件被触发以来已经过去了多长时间 我正在为此创建自己的解决方案 而不是使用内置的超时事件 因为我正在获取连续的数据流 而不是发送查询并获取一个响应 问题 在 DataReceived 处理程序
  • HTML - 给定一个表格,如何在不破坏布局的情况下允许一列流动

    我有以下内容 div style width 100 table tr td style width 30px hi td td style width 40px hi td td style width 1 LOTS Of text in
  • whitespaceAndNewlineCharacterSet() 中有哪些字符?

    我正在解析一些讨厌的文件 你知道 在一个文件中混合逗号 空格和制表符分隔符单线 然后通过文本编辑器运行它 该编辑器会在第 65 列用 CRLF 换行 啊 作为我在 Cocoa 中解析此内容的努力的一部分 我使用 Apple 的whitesp
  • 验证传递给 Mock 的参数是否按预期设置的正确方法

    如果您稍后验证调用了这些方法 是否可以在回调中进行断言 这是确保我的模拟获得传递给它的预期参数的首选方法 还是应该在回调中设置局部变量并在该实例上执行断言 我遇到的情况是 Presenter 类中有一些逻辑 它根据输入派生值并将它们传递给
  • 在 R 中使用 persp3D 函数时,如何向轴标签添加下标?

    I am trying to define my z axis label as R0 in plot3D below are my code I am using expression for my zlab but I get the
  • 错误:文件已加密或不是数据库

    我使用 PHP 创建了一个带有表的数据库 我通过以下方式做到了 从命令行执行 PHP 文件 php test php 后 我在目录中得到一个名为 test db 的新文件 这就是我想要的 然后 在命令行中 我输入 sqlite3 test
  • em 与 px...针对移动浏览器

    对于桌面浏览器 所有现代浏览器都使用缩放功能 因此我们可以使用 PX 但如果可以在移动设备上看到相同的站点 那么 px 不适合在移动浏览器中缩放 或者使用 px 对于移动浏览器也很好 即使我们不关心 IE 6 如果我们不为移动设备制作不同的
  • 如何在cassandra中构建范围查询?

    CREATE TABLE users userID uuid firstname text lastname text state text zip int age int PRIMARY KEY userID 我想构造以下查询 selec
  • 独立 Java SE 应用程序的项目目录结构是什么?

    独立 Java SE 基于命令行 应用程序的标准项目目录结构是什么 src文件夹将包含我的所有 java正确组织的包中的文件 除此之外我还有bin文件夹将包含我的 class files 我的项目中有属性文件和 XML 配置文件 我应该将它
  • 使用 .htaccess 通过 index.php 重新路由除一组特定请求之外的所有请求

    所以我只是继承了一个网站 我想做的第一件事是构建一个漂亮的小标准 简单易用的 CMS 允许使用任何 URL 创建页面 例如 whatever html 因此 如果用户点击 example com whatever html 它应该获取wha
  • Android Webview - 当用户滚动时检测标题名称

    我有这种模式的 html 文件 a a h2 First Heading h2 a Some Text goes here a br br a a h2 Second Heading h2 Some Text goes here br br
  • 如何在 C++ 中将成员变量指针转换为泛型类型

    我的应用程序中有与此类似的代码 class A public int b class C public int d void DoThings void arg1 MYSTERYTYPE arg2 A obj a C obj c DoThi
  • 如何从 R 调用 Fortran 程序

    我对 Fortran 完全陌生 但对 R 很熟悉 我得到了一个巨大的 Fortran 程序 其中包含大约 30 个子例程和大约 15 个函数以及许多其他代码行 有人告诉我需要从R中调用Fortran程序 我一直在网上寻找方法 在 R 和 F
  • 如何使用 SBCL 正确保存 Common Lisp 图像?

    如果我想创建我的程序的 Lisp 映像 我该如何正确地做到这一点 有什么先决条件吗 它与 QUICKLISP 配合得很好吗 现在 如果我启动 SBCL 仅预加载 QUICKLISP 并保存图像 save lisp and die core