Привет. Испытываю потребность в сабже. Сначала подумал, что это что-то нереальное, так как с внутренностми sbcl не знаком полностью.
Потом решил попробовать, и за 1 вечер сделал работающий (почти) порт, отчасти делая по аналогии с FreeBSD, отчасти читая маны. Потом нашел, что ещё по крайней мере 1 человек озаботился этим ещё в 2006 году и сделал патч (который сейчас уже не работает).
Перед тем как сделать репу у сбя на гитхабе, решил спросить (на lisper.ru спросил, но толку было мало) о существенных вещах:
1. Какие features отвечают в sbcl за многопоточность? Помимо :sb-thread есть ещё и какой-то :sb-futex и прочее. Что это и зачем может понадобиться? (гугль молчит)
2. Более специфический вопрос. При сборке порта для freebsd и больше нигде используется :gcc-tls (что расшифровывается как thread local storage, как я понимаю). Зачем?
3. sbcl собрался вроде работающим (но пока без нитей), но с отсутствующими ловушками для исключений при работе с floating-point. Пока я читаю IEEE 754, скажите, кто знает, как в sbcl ставятся обработчики на эти исключения, и что такое os_restore_fp_control в runtime sbcl. В freebsd есть заголовочный файл fpu.h, а в dragonfly - нет, поэтому я ничего не трогал в том коде пока.
P.S. Самое забавное, что эта работа не пролила свет на устройство sbcl ну совсем никак. Прошу это учесть и не кидаться заумными словами направо и налево)
P.P.S Надеюсь, что пишу по адресу.