Common Lisp 中的条件 Windows 注释

Conditional Windows comments in Common Lisp

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)

如何以可移植(跨实现)的方式在平台上进行调度?某处有标准注释标志的参考吗?

#+#- 测试符号在 *features* 列表中的存在。尝试检查它在您目标 implementations/platforms 的 repl 上的价值,看看您是否能找到一些共同点。

您也可以使用 #+(or windows win32) 来测试它们中的任何一个。

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

我使用:

#+(OR WIN32 WINDOWS MSWINDOWS) ...

还有

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

然后

#+windows ...