~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest29533
HackerMan
Most2
Nausicaa
Ruskoye_911
Vort
`
acetone_
anon3
b3t4f4c3
fidoid
flumental
nemiga
not_bob_afk
plap
profetikla
segfault
soos
teeth
un
weko_
whothefuckami
R4SAS
слишком много мелочи утекает
R4SAS
по 32 байта
R4SAS
в каком то sdt::pair
R4SAS
но я пока что не могу глянуть конкретно
orignal
так std::pair это просто обертка
orignal
оно никакой ресурс не жрет
weko
Подозрительно, туннели повысились, количество ssu2 транспортов повысилось
weko
Как и в прошлый раз при спаме туннелями, но в этот раз не так много
relaybot
13trus: разминочка?
Vort
R4SAS: нашёл багу в cmake сборке: github.com/Vort/i2pd/tree/fix_arch
Vort
сборка в GHA прошла без ошибок, сделал PR: github.com/PurpleI2P/i2pd/pull/1890
R4SAS
Vort: +
R4SAS
orignal: такой вопрос
R4SAS
под виндой есть софитна для поиска утечек
R4SAS
разраб предоставляет бесплатную лицензию для опенсорса, но в замен просит в README добавить словечко о том что используется программа для поиска утечек
Vort
избавился от нескольких предупреждений компилятора. можете проверить эквивалентность нового варианта старому? github.com/Vort/i2pd/commit/f6d8c1ed361077098e9f805416d83070b9e36fb4
orignal
R4SAS обойдется
orignal
да и нету у нас утечек поверь мне
R4SAS
orignal: хех
R4SAS
Vort: ща гляну
orignal
я тебе точно могу сказать где "утечка"
orignal
на концах тоннелей
R4SAS
опять скажешь про unordered_map?
orignal
фрагменты сообщений
R4SAS
который постоянно добавляется, но нельзя ресайзнуть
R4SAS
ну, фрагменты фрагментами
orignal
там он быстро стаблизируется
orignal
вот фрагменты все и дают
R4SAS
тогда почему не уеньшается объем после запрета транзита?
R4SAS
когда всё минимизируется и по трафику, и по нагрузке
R4SAS
живой пример практически вчера - транзит выше 6МБ/с, 140 Мб ОЗУ
orignal
у меня без транзита стабильно
R4SAS
остановка для пересборки, но приложение работает не 10 минут, а 4 часа (ушел по делам, и потом только перезапустил)
orignal
не уменьшается потому что так работает менеджер памяти
R4SAS
перед выходом было 110 МБ, при нулевом транзите
orignal
если память в системе есть то он держит освобожденную за процессом
orignal
запусти на машине где мало памяти и сам увидишь
orignal
запустил ygg-only c O так за полчаса 125 тразитов прилетело
weko
Нормально так
weko
Раньше же меньше было
weko
3.6 процента (на ядро) в среднем занимает NetDB за двое суток аптайма
orignal
так я удвился че так много
weko
Раньше я так не считал, так что сравнить не выйдет :(
orignal
похоже дело в изменениях с публикацией
weko
Хотя могу поставить коммит до dht и проверить
R4SAS
Vort: github.com/Vort/i2pd/commit/f6d8c1ed361077098e9f805416d83070b9e36fb4#diff-4a6f5ad4145591e2e063c6834049602b7b6f318475917e5045dced0f7f9ccd1eR535
R4SAS
добавь пробел
R4SAS
на 207 тоже
R4SAS
насчет USEROBJECTFLAGS uof = {} --- не знаю
weko
4b421d3f вот на этом коммите смотрел если что
weko
Посмотрю теперь что было до DHT....
R4SAS
orignal: github.com/Vort/i2pd/commit/f6d8c1ed361077098e9f805416d83070b9e36fb4#diff-fc3c8675cb15729571c0ac8cfd9aec1b18e5437fb401b6701b7940a79cfd6871L24-R24
R4SAS
разница между явным указанием нуля и его отсутствием есть?
orignal
не уверен
orignal
0 гарантирует что будет инициализированно нулем
orignal
а без него x3
orignal
уже 300
orignal
через 50 минут
R4SAS
Vort: там по идее можно сделать { 0, 0, 0 };
orignal
{ 0 } это то же самое
R4SAS
там компилятор просто орет что не указано ничего в инициализаторе для других переменных
R4SAS
Win32Service.cpp:24:29: warning: missing field 'fReserved' initializer [-Wmissing-field-initializers]
orignal
а USEROBJECTFLAGS это что?
R4SAS
виндовое крч коворя
orignal
так еще бы
R4SAS
структура куда пишутся данные
R4SAS
чего?
orignal
{0 } можно только для массивов
orignal
а это структора
R4SAS
знаешь, гнусовские плюсы и мелкомягкие - разные вещи
R4SAS
так что не удивительно
orignal
вот тебе пример
orignal
да нет
orignal
это неправильное использование {0}
orignal
и да надо {0,0,0} по числу полейц
orignal
точнее {false, false, 0 }
R4SAS
я к тому что msvc может по другому интерпретировать
orignal
не может
orignal
это стандарт яызка
orignal
так что шарп а не плюсы
R4SAS
в .NET тоже нули в полях
R4SAS
referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/NativeMethods.cs,153446c150de8a2e,references
R4SAS
я к тому что не false,false,0
R4SAS
да и разве false !== 0?
orignal
одно и то же
R4SAS
разницы нету
orignal
но false логически верно
orignal
есть
orignal
читаемость кода
R4SAS
хе, автор deleaker оказывается русский
weko
Сборка с WITH_GIT_VERSION не учитывает git checkout
R4SAS
weko: притензии к git
R4SAS
там вызывается git describe --tags
R4SAS
и соответственно там не должно писать что ты на левом бранче
R4SAS
пишется количество коммитов от тегв
weko
Число коммитов верное, но вот хэш вообще как будто из жопы
weko
Странно
weko
А
weko
Понял суть
weko
Всё верно, короче
weko
Меня смутила буква g перед хэшем, я подумал что это часть хэша
weko
Потом посмотрел на хэши, увидел что они все записаны в шестнадцетирчных числах
weko
А цифры g нету
R4SAS
ну да, g подставляется всегда
R4SAS
цифры g
R4SAS
ЖВ
orignal
жопа ))
Vort
перед тем, как убирать 0, я хорошенько погуглил этот вопрос. результат что с нулём, что без него в _данном_ случае - одинаков
Vort
компилятор, по сути, предполагает, что программист мог хотеть сделать в остальных полях не-ноль
Vort
"<~R4SAS> добавь пробел" там половина кода так, половина - эдак. может, тогда, везде в этом файле пробелов перед скобками наставить?
Vort
R4SAS: подобавлял по аналогии: github.com/Vort/i2pd/commit/a1f19971bf1db75823408b3f95fe54487370e4d3
Vort
там можно много чего ещё в отношении стиля менять. но это же можно и про весь код сказать :) в общем, это надо отдельно заниматься. пока что предпочитаю приспосабливать свой стиль к окружающему коду
Vort
"<~orignal> 0 гарантирует что будет инициализированно нулем" будет инициализация первого поля нулём, остального стандартными значениями (в данном случае тоже нули). это если нет конструктора, с конструктором там как-то иначе
orignal
Vort только в C++ нет "стандратных значений"
orignal
для элементарных типов
orignal
это не гоу
Vort
для этого есть специальные термины, я не очень точно выразился. но суть в том, что туда идут именно нули
orignal
я спорить не стану
Vort
стандартные значения есть, просто они используются не всегда. я сейчас ради интереса вспомню пример
orignal
возможно у них у той структуры есть констркутор по умолчанию
orignal
но в C++ четко сказано что значений по умолчанию нет и даже если они есть для конкртеной реализации в целом на них полагаться нельзя
Vort
orignal: вот я, к примеру, приниудительно вызвал конструктор для int`а: int x = 5; new(&x) int(); std::cout << x << std::endl;
orignal
ну это то да
weko
[17:10:42] <R4SAS> цифры g
weko
Ну в шестнадцатиричной системе abcdef - цифры :)
weko
Не буквы же )))
R4SAS
weko: в шестнадцатеричной нету g
weko
R4SAS: ну это как раз то, что я изначально и написал :)
Vort
R4SAS: так что по поводу стиля в файле util.cpp - достаточно тех пробелов, что я подобавлял в последнем коммите, или ещё что-то переделать?
R4SAS
ладно, забей
R4SAS
но { 0, 0, 0 } лучше сделать
R4SAS
или как orignal говорит false, false, 0
R4SAS
я уже насмотрелся на "непредвиденные значения"
R4SAS
как это было с булем в парсере HTTP
orignal
в плюсах всегда лучше инициализировать явно
Vort
тут вопрос в понимании программистом написанного и в реакции компилятора на код. по сути что { 0 }, что {} дают в данном случае одинаковый эффект
Vort
но мне не жалко и явно прописать
Vort
кстати, там в структуре не bool, а BOOL или WINBOOL. которые определены как int
Vort
поэтому вместо false там нужен FALSE
R4SAS
mingw это обрабатывает на ходу
R4SAS
там дефайны на этот случай
Vort
я считаю, что правильно вот так:
Vort
USEROBJECTFLAGS uof = { FALSE, FALSE, 0 };
Vort
пойдёт?
R4SAS
пойдет
orignal
пойдет
Vort
оформил таким же образом: один коммит убирает предупреждения, второй правит стиль (добавляет пробелы)
Vort
понадеюсь, что новых багов не добавил :)
R4SAS
да там и не где добавлять их
Vort
вот и хорошо :)
Vort
починка warning`ов - это опасное занятие, поэтому перестраховываюсь
Vort
по поводу слияния кода - коммиты из других репозиториев можно и без PR вливать - насколько я понимаю, это эквивалентно изменению указателя
Vort
но если удобнее, могу PR делать
R4SAS
удобнее pr
R4SAS
иначе придется в сонсольке ковыряться сидеть
R4SAS
github.com/PurpleI2P/i2pd/compare/openssl...Vort:i2pd:silence_warnings --- я все равно так смотрю
R4SAS
тут и кнопочка рядом
Vort
ещё один вопрос. может, пора уже открепить github.com/PurpleI2P/i2pd/issues/1871 ?
R4SAS
ага, открепил
R4SAS
залил pr
Vort
вижу слияние без мердж коммита. это через интерфейс GitHub так можно?
R4SAS
да. rebase
R4SAS
через консоль тоже можно
R4SAS
как раз то что ты предложил
Vort
окей, понял. оно меняет хеши
Vort
решил порассматривать код с помощью Clang Static Analyzer. пока что явных багов не вижу. но некрасивое место одно уже нашёл
Vort
github.com/PurpleI2P/i2pd/blob/34617bcb442f2b0c246fd94a73ecae0ce29a491d/libi2pd/Streaming.cpp#L53-L55
Vort
видимо, в строчках 54 и 55 автор хотел написать вместо "rem" вместо "len - offset"
orignal
думаю что да
orignal
видимо начал не дописал ))
Vort
результат, судя по всему, тот же, но такой код смущает анализатор )
orignal
правильно смущает
Vort
ещё одна некрасивость есть в Gzip.cpp: github.com/PurpleI2P/i2pd/blob/34617bcb442f2b0c246fd94a73ecae0ce29a491d/libi2pd/Gzip.cpp#L142
Vort
я проверил, что bufs не бывает пустым. но если бы был, то err оказался бы без инициализации
Vort
насчёт этого случая не знаю, стоит ли что-то менять
orignal
логично
orignal
надо иниициализировать нулем