Vsevolod
на самом деле с соцкетами-то все хорошо с libev/libevent
Vsevolod
а вот с async io - полная жопа
Vsevolod
и опять же из-за линукса и его лифтов
V.
Есть libev VS libevent https://stackoverflow.com/questions/9433864/whats-the-difference-between-libev-and-libevent
Vsevolod
для новых проектов и для c++ - однозначно libev
Vsevolod
libevent тащит много legacy
Vsevolod
проблема в том, что автор libev немного психический, с ним трудно
V.
О как, полезненько.
V.
проблема в том, что автор libev немного психический, с ним трудно
Еще вопрос, есть ли что то полезное по графике и про графику под линь?
Vsevolod
ну и тут отцы могут сказать за boost::asio. когда я его смотрел несколько лет назад, он сосал, причмокивая. что сейчас - не знаю
Vsevolod
если производительность - не самый критичный момент, то asio будет самым идиоматическим как минимму
Viacheslav
для новых проектов и для c++ - однозначно libev
А вот это зашибись портабельное. IOCP до сих пор не поддерживает?
V.
если производительность - не самый критичный момент, то asio будет самым идиоматическим как минимму
У меня на даньій момент нужно иметь возможность просто не повиснуть, проверка по таймеру с возможностью хлопнуть сокет. А сама функция отдельньім потоком на класическом вьізове на вебсокете.
Vsevolod
за iocp не скажу, с виндой я вообще давно завязал. как я говорил выше, автор психический, так что, возможно, что бэкэнд есть, но он отключен
Vsevolod
как я "фиксил" libev под фрю, потому что Марк Лехман сказал, что во фре сломанный kqueue...
Viacheslav
за iocp не скажу, с виндой я вообще давно завязал. как я говорил выше, автор психический, так что, возможно, что бэкэнд есть, но он отключен
Там для IOCP вообще ничего нет, судя по документации, select я в расчёт не беру. Как сейчас у boost asio с производительностью я не знаю, но года 4 назад там были внутри какие-то мьютексы, блокировки на которых при куче мелких пакетов меня добили.
Viacheslav
libuv вроде бы выглядит как libev, но ещё и винду оборачивает.
Vsevolod
ну, я слишком стар для хипсторской ноды, хотя libuv действительно выглядит неплохо
Viacheslav
Не, я именно про этот их low-level event loop и прочую обвязку говорил. Что там в node.js я вообще не знаю.
Berkus
Это через какой?
PRIuPTR видимо http://en.cppreference.com/w/cpp/types/integer
Anonymous
Ребят, давайте уже что-нибудь человеческое юзають, а не эти трудночитаемые макросы?
Anonymous
Есть же fmtlib тот же, там что-то плохо с этим?
Anonymous
Ну, строки бывает полезно форматировать.
Egor
stringstream
Berkus
ну и если прямо нужны голые си, то C99 а в нем %zu
Berkus
Ну, строки бывает полезно форматировать.
для этого есть всяческий fmt и boost::format и еще гора всякого
Berkus
printf тут точно не поможет
Александр
А я вот не люблю интерфейс форматирования в потоке. Намного приятнее типобезопасный принтф, как в fmtlib
Дмитрий ⬡
Тогда boost::format)
Anatoly
Тогда boost::format)
+1 тоже использую
Berkus
А я вот не люблю интерфейс форматирования в потоке. Намного приятнее типобезопасный принтф, как в fmtlib
ключевое слово типобезопасный, сишный принтф по этому показателю идёт лесом
Александр
ключевое слово типобезопасный, сишный принтф по этому показателю идёт лесом
Я подразумевал форматирование через флаги в строке вместо манипуляторов
Александр
Сишный конечно лесом
Vsevolod
сишный printf типобезопасный
Vsevolod
просто типов там, типа, не очень много
Anonymous
сишный printf типобезопасный
Сильное заявление.
Vsevolod
-Wformat-string
Vsevolod
или как его там
Berkus
ну выдача ворнингов не делает его типобезопасным
Vsevolod
/me shrugs
Vsevolod
ну сделайте ваш любимый -Werror
Vsevolod
дело-то не в этом
Vsevolod
потому что поддержки *произвольного* типа так и нет
Berkus
ну сделайте ваш любимый -Werror
все равно не станет типобезопасным
Pavel
@AlexFails
Pavel
Все вопросы к нему
🦥Alex Fails
мне в личку, я потом в @ProCxxJobs закину. Только надо оформить по образцу\
Дмитрий ⬡
в чем прикол
Да ни в чём, хороший действительно, просто только под Linux, не более.
Vsevolod
@berkus да почему не станет? ты про %n или что?
Vsevolod
%n - это ужасный костыль, который вообще непонятно как попал в стандарт
Vsevolod
у printf
🦥Alex Fails
это же фигня, чтобы узнать, сколько символов уже прочиталось?
Vsevolod
потому что s(n)printf возвращает не число записанных символов, а число записанных, если бы буфер был бы резиновым
Vsevolod
я в своем printf перво-наперво выкинул эту идиотскую семантику
Vsevolod
в во-вторых сделал плагин для clang, который эту форматную строку проверяет
Vsevolod
но я тут согласен с @berkus в том плане, что если сделать my_printf(var, v1, v2, v3), где var определяется в рантайме, то наступает жопа
Vsevolod
впрочем, никакого варианта сделать такую конструкцию типобезопасной (кроме RTTI) нет
Vsevolod
%n у printf
🦥Alex Fails
ну, для обычного printf бывает полезно. Для спринтфа надо аккуратнее с границами. ох, бесят они так, эти функции, честно говоря
Vsevolod
ну, я свои сделал такими, что они пишут в динамические строки
Vsevolod
со всякими SSO и прочими
Vsevolod
он не работает инкрементально
Vsevolod
а это часто нужно
Vsevolod
ну и мы все знаем про "проклятие strcat"
Vsevolod
мне индус на прошлом gsoc такого понаписал, да
🦥Alex Fails
🦥Alex Fails
Vsevolod
ой, там была феерия идиотизма, это долгая история, но того дятла я провалил на midterm
Vsevolod
хотя чувак на меня пытался воздействовать от мольб до угроз
Alexander "SonnySlave"
вон там в бусте тоже индусы подтянулись