Common Lisp中的条件Windows注释

时间:2015-02-18 18:47:50

标签: common-lisp compatibility

Common Lisp中规范的Windows / Not-windows条件注释是什么?

#-win32 (non-windows-stuff) #+win32 (usually-some-horrific-hack)

似乎在SBCL和LispWorks上正常工作(底层平台是32位还是64位),但CCL似乎只能理解

#-windows (non-windows-stuff) #+windows (usually-some-horrific-hack)

如何以便携式(跨实施)方式在平台上发送?在某处有标准评论标志的参考吗?

3 个答案:

答案 0 :(得分:7)

*features*的规范元素没有适用于所有实现。 trivial-features project规范了跨平台和实现的功能,因此,在加载普通功能后,您可以在任何地方使用#+windows来表示Windows。

答案 1 :(得分:3)

#+#-测试*features*列表中是否存在符号。尝试检查它在您要定位的实施/平台的repl上的价值,看看您是否能找到共同点。

您还可以使用#+(or windows win32)来测试其中任何一个。

答案 2 :(得分:2)

我用:

#+(OR WIN32 WINDOWS MSWINDOWS) ...

另外

#+(and (not windows) (or win32 mswindows))(pushnew :windows *features*)

然后

#+windows ...
相关问题