11 нояб. 2009 г.

Ликбез по Boost.Preprocessor

Часто приходится слышать вздыхания коллег и вопросы "Почему так и зачем?" при виде например такого:
#define BOOST_FUSION_ADAPT_STRUCT(name, bseq)                       \
    BOOST_FUSION_ADAPT_STRUCT_I(                                    \
        name, BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_X bseq, 0))    \
    /***/

#define BOOST_FUSION_ADAPT_STRUCT_X(x, y)    \
    ((x, y)) BOOST_FUSION_ADAPT_STRUCT_Y
#define BOOST_FUSION_ADAPT_STRUCT_Y(x, y)    \
    ((x, y)) BOOST_FUSION_ADAPT_STRUCT_X
#define BOOST_FUSION_ADAPT_STRUCT_X0
#define BOOST_FUSION_ADAPT_STRUCT_Y0
Я же начинаю грустить с мыслями "ипать-колотить, ну тут же всё просто!"...

Поэтому, дабы разбавить свой залежавшийся блог свежачком, я решил написать более-менее подробный ликбез о простом, а именно о Boost.Preprocessor.
Приведённый пример (boost/fusion/adapted/struct/adapt_struct.hpp) я разберу в конце статьи.

15 авг. 2009 г.

Lisp и real-time

Как-то раз коллега мне сказал: "на Лиспе ты реал-тайм систему не напишешь". Ответить было нечего, да. Но Гугель указал мне на Real-time programming in Common Lisp. Качебельная копия была обнаружена в ed2k.

О чём там, собственно-то...

Nouveau на FreeBSD

В /usr/ports/UPDATING заметил следующее:
20090801:
AFFECTS: users of x11-drivers/xf86-video-nouveau
AUTHOR: rnoland@FreeBSD.org

An updated libdrm and xf86-video-nouveau have been committed.  These
update the API version to 0.0.14 and if you are using DRM you will need
to update your kernel patch.  See pkg-message in xf86-video-nouveau for
details.

Будучи пользователем amd64, nv и GeForce 9600GT скорость прокрутки в терминале просто убивает, и поэтому я, сломя голову, понёсся ставить nouveau.