2015-02-18 3 views
1

Что такое канонический условный комментарий Windows/Not-windows в Common Lisp?Условные комментарии Windows в Common Lisp

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

, кажется, правильно работать на SBCL и LispWorks (основная платформа является ли 32 или 64 бит), но CCL только кажется, чтобы понять

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

Как послать на платформе в портативный (через реализации)? Есть ли ссылка на стандартные флаги комментариев где-то?

ответ

7

Не существует канонического элемента *features*, который работает во всех реализациях. trivial-features project нормализует функции на всех платформах и реализациях, поэтому после загрузки тривиальных функций вы можете использовать #+windows в любом месте для Windows.

3

#+ и #- проверяет наличие символа в списке *features*. Попробуйте проверить его значение на замену реализаций/платформ, на которые вы нацеливаете, чтобы увидеть, можете ли вы найти что-то общее.

Вы также можете использовать #+(or windows win32) для тестирования любого из них.

2

Я использую:

#+(OR WIN32 WINDOWS MSWINDOWS) ... 

Также

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

, а затем

#+windows ...