如何在 Common Lisp 中获取当前文件名

Cam*_*ron 1 common-lisp

长话短说

__file__在 CL 中是否有与Python 提供的特殊变量等效的东西?如果没有,是否有其他方法可以从 lisp 文件中获取此信息?

动机

我尝试从文件中访问当前文件名的原因是因为我正在尝试在主源文件中编写测试。在我陷入困境之前,这是一个非常小的 kata 项目,我允许自己灵活地尝试可能愚蠢/糟糕的设计等的东西,但实验很有趣,并且给了我学习更多的机会关于CL。

问题

也就是说,我正在开发一个简单的宏,用于设置 Fiveam 测试套件等,我想根据当前文件的名称来命名测试套件。显然,传递文件的“基本名称”非常容易,但我将无法找出是否还有其他方法。

当然,在 Python 中,CL 宏不存在,但如果我想对正在执行代码的文件执行某些操作,我可以使用特殊__file__变量来获取该文件名。我想看看 CL 中是否有等效的功能(只要我可以看到源代码以了解它在做什么,库就可以)?如果没有,假设可能的话,如何提供这一功能?

最后的注释

如果您想告诉我这是愚蠢的并且我不应该这样做,请随意,但请至少简要说明原因以及更好的选择可能是什么。谢谢。

Xac*_*ach 9

*load-truename**compile-file-truename*对于分别获取当前正在加载或编译的文件的路径名很有用。并且您可以在读取时获得有用的值#.(or *compile-file-truename* *load-truename*)