Показаны сообщения с ярлыком boost. Показать все сообщения
Показаны сообщения с ярлыком boost. Показать все сообщения

2012-08-01

boost.log

Поверхностные впечатления о boost.log.

Недостатки:
  1. Библиотека сложная (внутри большое количество независимых компонент, громоздкий синтаксис).
  2. Изучать код библиотеки сложно, т.к. он представляет из себя ядрёную смесь шаблонов и макросов.
  3. Документация:
    1. недостаточная 
    2. по крайней мере в первых страницах содержит небольшие огрехи (и предположительно давно не вычитывалась).
  4. boost.log имеет высокий порог вхождения. Т.е. взять и сразу начать использовать библиотеку едва ли получится.
  5. Долгое время компиляции.
Достоинства:
  1. Живая разработка.
  2. Мелочь, но понравилось. Готовые инструменты для работы (под Windows) с QueryPerformanceCounter - это возможность из коробки грамотными логами профилировать приложение.


Выводы:
  1. Для коммерческой разработки применять преждевременно.
  2. В ближайшее время едва ли будет принято решение о включении в состав буста. Даже если это решение будет принято, имеет смысл обождать пару рилизов до надёжной обкатки, снижения порога вхождения и обрастания библиотеки вспомогательными инструментами.
Буду ли использовать для себя - пока не решил.

2012-07-24

[c++, boost] Сборка boost.log

Продолжая ковыряться с бустом...
Одна из первых библиотек, с которой начинается жизнь проекта - это библиотека логов. Возможно, раньше неё имеет смысл выбирать библиотеку юнит-тестов, но тут я свой выбор уже давно сделал, boost.test - аккуратная, проработанная, надёжная библиотека, поэтому искать что-то другое необходимости нет.
Собственно, в своё время, при выборе библиотеки для журналирования я остановил выбор на boost.logging v2 от John Torjo, однако развитие библиотеки остановилось в 2008 году. Сейчас в буст старается попасть свеженькая библиотека от Андрея Семашева - boost.log, поэтому было логичным посмотреть первым делом на неё.
При сборке ждал небольшой сюрприз - библиотека отказалась компиляться. Свежая версия взятая из транка тоже не собралась.
Кстати, эксперименты по сборке осуществляются довольно просто:
bjam --with-log --toolset=msvc-9.0
причём, на то, чтобы разобраться как запустить сборку ушло несколько минут - бустоводы явно стараются делать кривую обучения для новичков более пологой. Несколько лет назад сборка буста была _существенно_ сложнее и довольно плохо документирована. Ещё один жирный плюс разработчикам буста.
Разобраться в причинах ошибки удалось достаточно быстро (не во всех cpp были прописаны подключения требуемых библиотек), чуть больше времени заняли эксперименты по лечению проблемы.

По окончании сборки решил сообщить об ошибке автору boost.log, благо sf.net позволяет отправлять персональные сообщения. Тут ждали некоторые сюрпризы.
1. Несмотря на то, что sf.net поддерживает логин с google, open id, blogger и пачки других сайтов, отправлять сообщения при этом не позволяет - требует родной, сорсфоржный аккаунт.
2. Пришлось пойти искать старый, ещё начала двухтысячных, логин на sf.net. Оказалось, что аккаунт протух и залогиниться под ним нельзя.
3. Поплевался, но создал новый аккаунт.
В течении описываемых злоключений, пришлось трижды выставлять язык (sf.net постоянно терял его) и дважды указывать часовой пояс.
Мдямс... Видимо странные косяки в мелочах свойственны не крупным корпоративным продуктам, а крупным продуктам вообще - корпоративность тут второстепенна.

Завтра буду пристально смотреть на бустовые логи образца 2012 года.

Update. 24 июля 2012. Ответ Андрея Семашева:
Boost.Log не использует Boost.Chrono, и потому не должен включать заголовки этой библиотеки. Проблема в Boost.Thread, рекомендую создать тикет в http://svn.boost.org/trac/boost/ если проблема все еще не исправлена в релизном бранче boost.

Со своей стороны могу порекомендовать попробовать собрать библиотеку с макросом BOOST_THREAD_DONT_USE_CHRONO=1.
Update 2. 24 июля 2012. boost.log ревизия 694 на sf.net  :)

2012-07-23

[c++, boost] Сборка свежего буста

После нескольких  лет "непрограммирования" дошли руки вернуться к своим неоконченным проектам, искренне надеюсь, что всерьёз и надолго.
Одной из первых задач стала сборка свежего буста (под винду, msvc 2008 express).
Поверхностные впечатления:
  • boost вырос до версии 1.5;
  • дистрибутивы переехали с собственного хостинга на sourceforge;
  • размер дистрибутива в 7z без малого занимает 50 мб (и под 100 в zip);
  • сборка под винду усохла до двух простых команд (!);
  • невероятно, но библиотеки сразу собрались!!!

Безумно рад последнему пункту, ибо раньше (пару-тройку лет назад) ни одной лёгкой сборки, на моей памяти не было.
Растут мужики, растут. Если дальше будет так же хорошо, придётся переосмысливать своё отношение бусту.
Завтра буду заглядывать под капот - что же там нового и интересного появилось.

2007-12-04

const char* filename

На днях Александр Авраменко постил на рсдн список новых библиотек, которые войдут в свежую версию буста 1.35. Прочитав его, был сильно удивлен, т.к. не ожидал, что бустоводы (в большинстве своем) когда-нибудь повернутся лицом к ... хм... всяким реальным проблемам: планировались библиотеки для работы с изображениями, сетью, межпроцессного взаимодействия. Меня помимо вышеназванных, привлекла property_tree library.
property_tree - рекурсивное дерево с поддержкой загрузки/сохранения в форматах XML, INI, JSON и в реестр Windows.

Именно такая штука сейчас бы очень пригодилась для хранения опций в Spy - особенно порадовала возможность сохранять дерево в JSON.
Сегодня решил собрать пример. Первое, что бросилось в глаза
void read_json(const std::string &filename, ...)
void write_json(const std::string &filename, ...)

Тоска зеленая, 256 символов на все прихоти планеты - фарева.

Автор, очевидно, в курсе проблемы, т.к. в том же файле предусмотрены интерфейсы:
void read_json(std::basic_istream &stream, ...)
void write_json(std::basic_ostream &stream, ...)

Вместе с (очевидно MSVC-specific) конструктором basic_ofstream(const wchar_t *_Filename, ... ) становится возможным малой кровью обойти проблему.

Пост ни в коем случае не пинок автора property_tree, а скорее усталость от мелких проблем, которые почему-то не получается решить на уровне стандарта уже много лет.

2007-10-08

Ссылочка

http://www.boostcookbook.com/
Совсем молодой сайт. Думаю название делает ненужными комментарии.
todo Посмотреть, что там будет через месяц.