Common lisp 如何在CLisp REPL中卸载lisp文件?

Common lisp 如何在CLisp REPL中卸载lisp文件?,common-lisp,clisp,Common Lisp,Clisp,我能够加载和调用函数,但我想 更正后重新加载文件 找不到卸载或重新加载功能?只需再次使用load。卸载实际上是不可能的。例如,可以删除包,从而删除其定义。但对该包符号的其他引用可能仍然存在 正如Vijay Mathew提到的,处理这个问题的典型方法是再次创建一个文件 加载的文件以可以重新加载的方式写入可能会有所帮助 关于重新加载的几点意见: 函数/宏将替换为新定义 由于内联/宏扩展,现有代码中的函数/宏可能无法替换 CLOS类将被更新,其实例将被延迟更新 将更新结构定义,而不会更新现有结构实例

我能够加载和调用函数,但我想 更正后重新加载文件


找不到卸载或重新加载功能?

只需再次使用
load

卸载实际上是不可能的。例如,可以删除包,从而删除其定义。但对该包符号的其他引用可能仍然存在

正如Vijay Mathew提到的,处理这个问题的典型方法是再次创建一个文件

加载的文件以可以重新加载的方式写入可能会有所帮助

关于重新加载的几点意见:

  • 函数/宏将替换为新定义

  • 由于内联/宏扩展,现有代码中的函数/宏可能无法替换

  • CLOS类将被更新,其实例将被延迟更新

  • 将更新结构定义,而不会更新现有结构实例

  • 如果一个值不存在,DEFVAR将替换该值。DEFPARAMETER始终替换一个值


我意识到这是一个老生常谈的答案,但我们开始吧。值得一提的是,您可能从文件中删除的任何函数/宏/等仍将挂起,污染图像,并可能导致在完全干净的构建中无法看到的行为。