我有一个用 Lisp 编写的运行状态机的系统。我想从目录动态加载状态机的定义和任何所需的 Assets (图像等),只给出目录的名称。会有多个不同的状态机。这类似于 Apache 加载和运行 WAR 文件,但不完全相同。
我担心的是,简单地编译和加载一个文件几乎可以运行任何东西。理想情况下,我只想获取状态机定义,使用 Assets 路径对其进行配置,并使其可用于执行。现在我正在尝试加载一个实现特定基类的类,但这并不简单。有这方面的标准技术吗?
谢谢。
最佳答案
您是说您担心通过读取文件执行任意代码的可能性吗?我所以你应该考虑重新定义读取表以排除不需要的符号。
例如结帐this ,查找“SAFE-READ-FROM-STRING”。
它不完整,但您可以使用 #'read 获取数据结构,进行一些健全性检查并在需要时进行编译。
如果这不是您要查找的内容,那么我很抱歉,您能否进一步解释您要查找的内容?
关于lisp - Common Lisp 中 WAR 文件的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28400890/