Вот захотелось мне тут, чтобы мой CL-код работал не только на GNU, но ещё и на windows. Очень желательна как можно близкая совместимость, поэтому начал с любимого SBCL. И с этой самой SBCL хуже всего пошло: попробовал разные версии, а результат один: тупо завершение с кодом 5 у 64-битных бинарников, код 57 у 32-битных (винда 64-битная). Больше никаких данных. Не важно: командуешь ему swank поднять или просто запуститься. И, честно, это немного удивило - ведь уже прошли времена когда строка windows пустовала в таблице:
http://sbcl.org/platform-table.html
Удивила и Clozure CL 1.13, хоть и не припомнить когда CCL была замечена в неприязни к оффтопику. Оказалась более разговорчивой:
(progn (load "c:/Users/bc64/AppData/Roaming/.emacs.d/site-lisp/slime-2.31/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init") :from-emacs t) (funcall (read-from-string "swank:start-server") "c:/Users/bc64/AppData/Local/Temp/slime.1068"))
Exception on foreign stack
Exception occurred while executing foreign code
? for help
[3964] Clozure CL kernel debugger: [3964] Clozure CL kernel debugger: [3964] Clozure CL kernel debugger: %rax = 0x000000000038fda0 %r8 = 0x0000000000000080
%rcx = 0xffffffffffffffff %r9 = 0x000000000038fda0
%rdx = 0x000000000038fcf0 %r10 = 0x000000000038fc60
%rbx = 0x00000000006a88b0 %r11 = 0x00000001300b0000
%rsp = 0x000000000038fc68 %r12 = 0x000000210000bb5d
%rbp = 0x000000000038fcc0 %r13 = 0x000000010009f11f
%rsi = 0x000000000001300b %r14 = 0x0000000000000058
%rdi = 0x000000014002845e %r15 = 0x0000000000000000
%rip = 0x00000001300b0000 %rflags = 0x00010202
[3964] Clozure CL kernel debugger: [3964] Clozure CL kernel debugger:
register number :
register number :
register number :
register number :
register number :
register number :
register number :
register number :
register number :
register number :
register number :
register number :
value for GPR 6 :
value for GPR 6 :
Уже чуть успокоило когда без задоринок запустился игрушечный clisp 2.49 и выполнил игрушечный-же код. А потом, чуть разобравшись в настройках slime, удалось запустить и 32-битную ccl со swank-ом. У 64-битной ccl результат остаётся, как описано выше.
Как традиционно заведено на винде все запускаемые бинарники, просто скачаны из интернета.
Остаётся вопрос к опытным лисперам: есть ли жизнь с SBCL на винде?