Anonymous
Учитывая что знаю java
Alexey
лучше сразу плюсы тогда
Anonymous
Если хочешь выучить си - учи си, если с++ - учи с++
Thorn
rm -rf /usr/src/linux
Anonymous
может утрудиться , скинуть ссылки на современные версии книги, видео итд? буду благодарен
Igor
A.cpp static X global_codecs = { ... }; size_t codecs_num() { return _COUNT_OF(codecs); } // + declaration in header B.cpp static Y var(codecs_num(), ...); да, я всё ещё на гцц4.4, std::array у меня нет (но возможно есть boost::array, хм...), про вред и ужос глобальных переменных я знаю, и вообще этот код уже некоторое время напрашивается на рефактор здесь мне оторвёт ноги неопределенным порядком инициализации, или всё-таки оно будет работать как дОлжно?
Pavel
синглтон — прекрасная штука для управления порядком инициализации глобальных статических переменных
Igor
оторвет
ок, спасибо, рефакторим 😊
Berkus
немного приятного и красивого // getchar is defined as a macro in uClibc. Use parenthesis to fix // gcc bug 58952 for gcc <= 4.8.2. (std::getchar)();
Berkus
это буст.тест да
Sergey
народ, привет всем, собираю so. Как в cmake указать, что собираемая либа использует другую либу?
Pavel
target_link_libraries
еще add_dependencies - для правильного порядка сборки если несоклько таргетов
Anatoly
еще add_dependencies - для правильного порядка сборки если несоклько таргетов
он не уточнил target это или external library, да и походу в add_dependencies уже нет необходимости - target_link_libraries различает target от external library
Stanislav
еще забыли сказать что для гцц нужно в определенном порядке указывать либы)
Ignat
казалось бы, при чём тут гцц
Anton
sendto() thread safe?
Pavel
sendto() thread safe?
да. но зачем?
Pavel
слать он всёравно будет последовательно
Pavel
и если он пошлет меньше, чем попросили?
Berkus
add_dependencies нужен в очень редких случаях
Berkus
Stanislav
казалось бы, при чём тут гцц
а то я смотрю под vc++ и винду разнообразие .so файлов
Dumitru
Dumitru
Два потока могут писать в один и тот же fd
Berkus
а то я смотрю под vc++ и винду разнообразие .so файлов
на макоси неважно, и емнип даже гцц под маком линкует нормально (т.к это фича именно линуксового ld)
Pavel
Два потока могут писать в один и тот же fd
ну, могут. и ничего не сломается на уровне дескрипторов. это не thread safe?
Pavel
другое дело что они не обязаны писать столько, сколько попросили, и всё сломается на уровне логики приложения
Dumitru
ну, могут. и ничего не сломается на уровне дескрипторов. это не thread safe?
Ну если я запишу две стринги, они могут частями отправится
Dumitru
А это уже не thread safe
Dumitru
То же самое что писать в stdout с двух потоках
Pavel
однако.
Ignat
интересное определение thread safety, конечно
Дмитрий ⬡
Ну если я запишу две стринги, они могут частями отправится
Не сорян, на этом уровне thread-safe значит "Мы не порвём твои дескрипторы, мы тебе правильно вернём, сколько мы записали, а вот в каком мы порядке действуем — навешивай сам"
Дмитрий ⬡
Тут не threadsafe значит "Вызовешь из двух потоков и готовься к повреждениям памяти", к сожалению.
Ignat
см. putchar/putchar_unlocked
Dumitru
А ну если так, то да
pavel
TLSF аллокатор в современной либе C++ юзается? Если нет, чем он плох на роль дефолтного.
Alexander "SonnySlave"
а ещё лучше скорее всего спросить у glibc всяких
Anton
TLSF аллокатор в современной либе C++ юзается? Если нет, чем он плох на роль дефолтного.
В тех libc что я когда-либо видел - нет. Потому что в дженерал перпос системах нет тех проблем что есть в реал тайм системах
Pavel
TLSF аллокатор в современной либе C++ юзается? Если нет, чем он плох на роль дефолтного.
майбе стабильностью, в линуксе вроде узается по дефолту dmalloc
Berkus
а ld.gold тоже этим страдает?
он вроде семантику ld эмулирует, по крайней мере на андроиде с gold точно такая же херня при линковке
pavel
майбе стабильностью, в линуксе вроде узается по дефолту dmalloc
Стабильностью времени отклика? TLSF пишут на упаковке, что у них всё O(1)...
Berkus
dlmalloc/jemalloc в качестве general purpose используются
pavel
только в RTOS
А на большой машине это типа слишком роскошно или слишком бестолково?
Berkus
Caveats Not designed to be thread safe; the user must provide this
pavel
Caveats Not designed to be thread safe; the user must provide this
Я думал это деталь конкретной реализации. И реализация может быть на атомиках например ...
Berkus
https://code.google.com/archive/p/compcache/wikis/AllocatorsComparison.wiki
pavel
атомики тебе как-то вдруг дадут thread-safety?
Ну типа lock-free даст. Если его можно построить как lock-free этот TLSF
Berkus
lock-free это будет уже медленно
Berkus
Ну типа lock-free даст. Если его можно построить как lock-free этот TLSF
а что тебе помешало пойти на сайт TLSF и прочитать все-все пейперы что там выложены?
Berkus
со сравнениями, описаниями, анализом, выводами
pavel
а что тебе помешало пойти на сайт TLSF и прочитать все-все пейперы что там выложены?
Ацуцтвие времени на индексацию всех пейперов через собственные глаза. Я решил читануть и в чужие индексы через этот чатик сходить.
pavel
а, ну у меня нет времени тебе это все рассказывать тогда
Ну и ладно, один сервер из распределённой системы ответ не вернул, подумаешь)
pavel
Ленивая скотина, что я могу сказать.
Трудно сказать, может быть оно и так.
Berkus
могу забанить, пойдешь тогда читать?
pavel
могу забанить, пойдешь тогда читать?
А я и так уже начал читать, открыл один pdf про TLSF, но пока отвлекают прочие дела, процесс идёт параллельно и медленно
Berkus
ну это нормально, у меня 6 пдфок ща открыто
Berkus
стр 19 из 229 и всё такое
Andrey
Пишу юниттесты с помощью Catch. Есть cmake проект А в котором один файл с catch_main дефайном, больше ничего. Есть cmake проект Б в котором срр файл с тестами. Проект Б - статическая библиотека. Но если слинклвать Б в А, то тесты не работают. No test runs. Кто нибудь сталкивался? Как-то можно через библиотеки организовать тесты или только напрямую исходники использовать можно?
Berkus
и фиксить его яебал
Andrey
Можешь пример что не работает?
Berkus
любой код с фикстурами, TEST_CASE(Fixture, "blabla") в статик либе ломается
Berkus
яхз как они это смогли, в бусте все работает
Andrey
А без фикстуры работает?