如果我想创建一个Lisp程序的镜像,应该如何正确操作?有哪些前提条件?它是否与QUICKLISP兼容?
现在,如果我启动SBCL(只预加载了QUICKLISP),并保存镜像:
我收到了以下信息:
当��用已保存的核心来启动sbcl时,我会遇到相同的错误。如果只是启动
事实上,预加载QUICKLISP不是问题:如果初始调用
我做错了吗?
附注:如果我使用roswell,
附注2:到目前为止,似乎sbcl不提供扩展模块(
现在,如果我启动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
,则不会报错。事实上,预加载QUICKLISP不是问题:如果初始调用
sbcl --no-userinit --no-sysinit
,同样会出现这个问题。我做错了吗?
附注:如果我使用roswell,
ros -L sbcl-bin -m core run
无法获取图像(通过在保存前声明变量*A*
并在重新启动后未看到它进行测试)。附注2:到目前为止,似乎sbcl不提供扩展模块(
SB-SPROF
、SB-POSIX
等),除非在保存图像之前明确要求。
SB-SPROF
,SB-POSIX
等)的contrib
目录与核心文件在同一目录中。如果它们在保存图像时没有预加载,SBCL就不会将它们放入图像中。我想知道这是特定SBCL版本的行为还是所有版本都是如此? - mobiusengSBCL_HOME
环境变量? - jkiiskiSBCL_HOME
或图像所在的位置中寻找contrib
。谢谢! - mobiuseng