这似乎可能是ECL实施中的一个错误 - 或者由于标准中的一些细节:
> (probe-file #P"/usr")
#P"/usr/"
> (probe-file #P"/usr/")
#P"/usr/"
> (probe-file #P"/")
NIL
> (probe-file #P"//")
NIL
还有一个案例:
> (probe-file #P"/.")
#P"/"
更新,FWIW,SBCL做我期望的事情:
* (probe-file #P"/")
#P"/"
答案 0 :(得分:1)
这是我现在正在测试的修复提交消息(希望这回答了问题 - 这确实是一个错误):
unixfsys:删除coerce_to_posix_filename
这是针对cygwin和mingw中的错误的解决方法 已修复),当目录名以' /'结尾时。这个修复 介绍了在根目录中调用的probe-file的额外错误(它 在所有平台上返回nil。)
原始评论:
这会将路径名指示符转换为一个名称字符串 特殊情况,目录不以斜杠结束' /',因为 所有POSIX平台(最值得注意的是Windows)都不支持此功能。
错误参考:
https://sourceforge.net/p/mingw-w64/patches/34/
修正#351。