我有一个我编写的系统,它尽可能使用 lparallel,否则可以解决它。问题是,我现在正试图在 ECL 上对其进行测试,仅在加载 lparallel 时就会出错。
有没有办法(除了#-ecl
)来指定由实现类型参数化的系统依赖关系?我查看了 Madiera Port,但它似乎仅适用于子组件,而不适用于系统依赖项。我希望将我的 .asd 文件保留为简单的机器可读形式,没有阅读器条件等。
(旁白:当前 ECL 上的 lparallel 负载正常。我的刚刚过时了。)
我有一个我编写的系统,它尽可能使用 lparallel,否则可以解决它。问题是,我现在正试图在 ECL 上对其进行测试,仅在加载 lparallel 时就会出错。
有没有办法(除了#-ecl
)来指定由实现类型参数化的系统依赖关系?我查看了 Madiera Port,但它似乎仅适用于子组件,而不适用于系统依赖项。我希望将我的 .asd 文件保留为简单的机器可读形式,没有阅读器条件等。
(旁白:当前 ECL 上的 lparallel 负载正常。我的刚刚过时了。)
据我所知,除了读者条件之外,在 ASDF 中没有直接的方法可以做到这一点。您可以改用 XCVB,或者编写一个defsystem*
添加新语法的宏,或者(也许)defsystem
像 madeira 那样挂钩到现有的。
在不知道您的动机的情况下,我想知道为什么#-ecl
要避免使用简单的解决方案。您是否希望存储将 ECL 链接到不存在 lparallel 的元数据?注意#-lparallel
并且#+lparallel
可以在 lisp 文件中使用。
顺便说一下,lparallel 在 ECL 中对我来说很好。您正在运行最新的 ECL 吗?ECL 中有一个已知错误会导致 lparallel 测试最终挂起,但这可能不会影响所有平台。