LINUX.ORG.RU

Вышел Boost 1.66

 ,


1

8

Boost — кроссплатформенный набор библиотек C++ для разных задач.

Новые библиотеки:

  • Beast — реализация протоколов HTTP/1 и WebSocket поверх Asio;
  • CallableTraits — интроспекция и модификация callable types, наследник Boost.FunctionTypes;
  • Mp11 — библиотека метапрограммирования на основе C++11.

Из прочих изменений можно отметить:

  • Asio — API изменен в соответствии с Networking TS;
  • Atomic — новые экспериментальные операции fetch_negate, <op>_and_test, bit_test_and_set и другие;
  • Stacktrace — улучшена поддержка MinGW;
  • Thread — новые экспериментальные методы promise: set_value_deferred/set_exception_deferred.

>>> Подробности

А разве 80% всех вкусных возможностей буста не перетащили в стандартную библиотеку?

Meyer ★★★ ()

быстрый ответ ресурсам инета. ЛОр уже не тот.

kaban_lyalya ()
Ответ на: комментарий от mittorn

это точно

это точно, не нужно. 2018 год уже почти на дворе, а они добавили поддержку HTTP/1 :D :D :D очнулись :)))))))))

anonymous ()
Ответ на: это точно от anonymous

Они ещё и слоупоки...
А я думал они только блевотварь некомпилируемую разводят

mittorn ★★★★★ ()

Beast — реализация протоколов HTTP/1 и WebSocket поверх Asio;

Ну вот, а мы свой хттп-сервак на бусте пилили… Благо, тот хоть 1.1 был.

evilface ★★ ()
Ответ на: комментарий от evilface

Уже HTTP 2.0 во всю шагает по планете, а разговоры только о 1.1

menangen ★★★★★ ()

Такие библиотеки как boost хорошо обновлять раз в год. Не чаще. Потому, что следом приходится пересобирать весь софт, который использует эту библиотеку. Никакой обратной совместимости в именах *.so файлов библиотеки.

saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 3)
Ответ на: комментарий от evilface

Так и этот 1.1 поддерживает, это же версия HTTP/1. Поддержка исключительно 1.0 была бы записана как HTTP/1.0.

А вообще эта реализация не для приложений, а для библиотек. Beast позиционируется как минимальная библиотека для построения более фичастых, хотя и нужды каких-то простых приложений тоже может удовлетворить.

xaizek ★★★★★ ()

Stacktrace годная библиотека. С её помощью можно делать няшные исключения почти как в C#.

ox55ff ★★ ()
Ответ на: комментарий от saahriktu

Поехавшие подтянулись. Кто-то заставляет накатывать?

anonymous ()
Ответ на: комментарий от saahriktu

Никакой обратной совместимости в именах *.so файлов библиотеки.

А она разве не header-only?

EternalNewbie ()
Ответ на: это точно от anonymous

Видимо это под вебсокеты запилили, а не просто так «шоб было».

mono ★★★★★ ()

Отличная библиотека. Есть почти всё чего не хватает в stdlibs. Минус - довольно монструозная и тяжелая, поэтому если есть возможность обойтись - стараюсь не пользоваться.

KorWIN ()
Ответ на: комментарий от KorWIN

Минус - довольно монструозная и тяжелая

Всегда интересно что в это вкладывают. Бинарники получаются тяжелее? Или apt-get долго работает?

если есть возможность обойтись - стараюсь не пользоваться

Возможность-то всегда есть, но зачем

anonymous ()

как-то сложилось так, что, в основном, приходится выпиливать boost отовсюду.

dinama ()
Ответ на: комментарий от anonymous

Всегда интересно что в это вкладывают. Бинарники получаются тяжелее? Или apt-get долго работает?

- монстроузная семантика
- медленно компилируется
- тяжело отлаживается
- невнятная документация
- медленно работает

dinama ()
Ответ на: комментарий от Lifun

Я давно не состою в Gentoo C++ Project, поэтому - хз.

Учитывая мою нехватку времени сейчас, всё что я могу сделать - подписаться на соответствующий баг :'-(

Pinkbyte ★★★★★ ()
Ответ на: комментарий от dinama

Монстроузная семантика - не совсем понял, о чём Вы.

Тяжело отлаживается - а зачем дебажить буст? Дебажить stl тоже тяжко

Медленно работает - можно пример? И пример быстрого аналога.

Медленно компилируется - прям весь буст? Или только спириты всякие?

Невнятная документация - не ко всем либам, но соглашусь, пожалуй.

zamazan4ik ★★ ()
Последнее исправление: zamazan4ik (всего исправлений: 1)
Ответ на: комментарий от dinama

невнятная документация

Это фича :D Нельзя пользоваться не приходя в сознание, как поощряют некоторые другие фреймворки.

Пару недель назад напоролся на сюрприз в Asio - программа вдруг стала падать. Долго искал, нашел свою ошибку и хотел зарепортить насчет «невнятной документации», а потом понял что поведение вполне укладывается в то что описано. Просто нет модной вставки «be aware that 1+1=2».

anonymous ()
Ответ на: комментарий от dinama

Ну как бы на всё это подписываешься когда выбираешь C++. Кроме «медленно работает», конечно, здесь хочется уточнений о чем речь. Ведь именно скорость покрывает остальное.

anonymous ()
Ответ на: комментарий от Lifun

Проще всего посмотреть на мой профиль на wiki.

Сейчас у всех проектов есть wiki-страница, куда привязаны участники проекта. Это работает и в обратную сторону - на странице участника видны проекты, в которых он участвует :-)

Pinkbyte ★★★★★ ()
Ответ на: комментарий от anonymous

"Монструозная" это говно типа культей, которое пытается быть лучшим C++ чем сам C++ и тащит с собой всё своё что можно, включая весь скопипащенный stdlib, веб-енжин, раковину и газилион багов сверху, на которые коммерческим вендором традиционно будет хер положен.

d_a ★★★★★ ()
Ответ на: комментарий от d_a

Так а буст-то что, монструозный? Интересно кто как его видит. По мне - нормально.

anonymous ()

Beast — реализация протоколов HTTP/1 и WebSocket поверх Asio;

Boost потихоньку превращается в ACE. Я что-то не уверен, что это хорошо.

gns ★★★★ ()

Beast — реализация протоколов HTTP/1 и WebSocket поверх Asio

Джва года ждал. Осталось только запилить HTTP/2 и перенести это дело в std

Unicode4all ★★★ ()
Ответ на: комментарий от maxis11

Да я знаю. Такое происходило на вполне собираемом одним компилятором при сборке на других компиляторах. Я не знаю мой это лог или нет (но я такое выкладывал), но у меня было аналогично и я бросил попытки собрать этот код.

mittorn ★★★★★ ()
Ответ на: комментарий от saahriktu

Зачем его пересобирать? Положи рядом еще один буст.

Reset ★★★★★ ()
Ответ на: комментарий от Chaser_Andrey

Вот пока что наоборот, своим C++2x поломали совместимость в бусте!

А как разрабатывали этот networking TS - отдельная песня, что стоном разрабов зовется.

anonymous ()

Beast — реализация протоколов HTTP/1 и WebSocket поверх Asio;

Редкостная параша, нирикаминдую.

Mp11 — библиотека метапрограммирования на основе C++11.

Только just for fun. За использование в реальных проектах гнать из профессии ссаными тряпками.

Asio — API изменен в соответствии с Networking TS;

Феерическое ненужно для любителей колбечной лапши. Нормальные люди давным-давно обернули $favorite_io_event_library в корутины и живут себе синхронно и беззаботно.

Thread — новые экспериментальные методы promise: set_value_deferred/set_exception_deferred.

Лучше бы наконец научились задавать размер стека потока при создании да сделали человеческую поддержку деструкторов thread-local объектов. И да, «человеческая» — это не «деструктор позовется, если вы создали поток с помощью нашего boost::thread, не совместимого ни с чем другим».

kawaii_neko ★★★ ()
Ответ на: комментарий от Unicode4all

Зачем http2?

Объсните, зачем пихать http2 в сам сервис а не отдать это на откуп инфраструктуре ( реверспрокси, балансеры ) ? Или просто очень нравится дибажить бинарные протоколы?

peacelove ()
Ответ на: Зачем http2? от peacelove

А зачем вообще вставлять http-сервер в C++приложение, а не отдать это на откуп инфраструктуре?

Да, вопрос риторический, но вы же первый начали.

eao197 ★★★★★ ()
Ответ на: комментарий от zamazan4ik

Монстроузная семантика - не совсем понял, о чём Вы.

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


Тяжело отлаживается - а зачем дебажить буст? Дебажить stl тоже тяжко

шаблоны потому-что. stl - намного легче.

Медленно работает - можно пример? И пример быстрого аналога.

все библиотеки, при наличии аналогов на c - работают медленнее.

Медленно компилируется - прям весь буст? Или только спириты всякие?

использование буста замедляет компиляцию в десятки раз. даже boost-test и тот пришлось выпилить, потому-что дико раздражало.

Невнятная документация - не ко всем либам, но соглашусь, пожалуй.

ну вот помножьте это на медитирование на многоэтажными шаблонами. даже с умным автокомплитом и то гиморой.

dinama ()
Ответ на: комментарий от kawaii_neko

Редкостная параша, нирикаминдую

Видимо, есть печальный опыт внедрения.

Нормальные люди давным-давно обернули $favorite_io_event_library в корутины и живут себе синхронно и беззаботно

Что им помешало пользовать asio с корутинами?

anonymous ()
Ответ на: комментарий от eao197

лолшто?

А с инфраструктурой приложение как будет связываться? По http? Oh.. wait..

peacelove ()
Ответ на: лолшто? от peacelove

Re: лолшто?

А с инфраструктурой приложение как будет связываться?

pipe

anonymous ()
Ответ на: лолшто? от peacelove

А с инфраструктурой приложение как будет связываться?

Да как угодно: shared_memory, pipes, unix domain sockets, ... Причем все это может быть упрятано под капот какого-нибудь высокоуровневого IPC-механизма (вроде RPC).

Ну так ответ будет?

eao197 ★★★★★ ()

Beast — реализация протоколов HTTP/1 и WebSocket поверх Asio;

Для обладателей обычного скутера и обычных сигарет, кого nodejs не вштырила, но подход понравился.

ncrmnt ★★★★★ ()
Ответ на: комментарий от eao197

А поверх клепать обёртку, которая эти данные будет уже преобразовывать в HTML или JSON и отдавать nginx? Зачем, если можно сразу писать бэкэнд?

Chaser_Andrey ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.