tetrimer
Под фрей сборка ругается на отсутствие gexpr - он ставится из портов и не факт, что будет в системе по-умолчанию.
tetrimer
В результате - всегда будет "-std=c++17"
tetrimer
Т.е. собраться-то оно соберется с опцией -std=c++17, но в чем тогда смысл в случае "# clang 16 - 19" выбирать опцию "-std=c++20" - я так и не понял.
tetrimer
С опцией "-std=c++20" на clang 17.0.6 - собирается, размер чуть меньше, но делает вид, что работает.
Vort
tetrimer: сборки под винду на clang тоже бывают, это надо учитывать
acetone_
На днях пришла идея приложения на SAM, но оказалось, что на этом поприще все сложно. Взялся написать либу. Выложу позже, когда в рамках своего проекта обкатаю, но в целом работает и уже написал доку: paste.i2pd.xyz/?3d704337050c44bc#FHPdNZvC54FCcENhLQXwxvdvCMhv8Kd97ne5ahjkM3Ag
acetone_
*** The gang's back in town ***
Vort
tetrimer: посмотрел код, понял, что речь исключительно об Makefile.bsd и винда тут не при чём
Vort
acetone_: проект тоже выкладывать будешь?
acetone_
Vort: да, все публичное :) либу выложу раньше, когда пойму, что все на месте))
Vort
иногда вместо чтения документации на либу проще накопипастить кода из какого-то проекта, её использующего :)
Vort
ну и проект - это явное доказательство пригодности либы
acetone_
несомненно)) это не столько дока, сколько ридмишка для репозитория, но с понятнейшими примерами использования
onon
acetone, Приветствую!
acetone_
onon: приветы
orignal
tetrimer ну а как ты предлагаешь починить?
orignal
я сделал как умел по аналогии с лиунксом
orignal
смысл c++20 в использовании фич из 20
orignal
это задел на будушее
flumental
сколько нод i2p безопасно в плане банов иметь на одной машине?
tetrimer
"else ifeq (${CXXVER}, ${filter ${CXXVER},16 17 18 19}) # clang 16 - 19
tetrimer
NEEDED_CXXFLAGS = -std=c++17"
orignal
tetrimer спс
tetrimer
Если я правильно понимаю логику.
orignal
неправильо
tetrimer
Стоп, там еще строчка будет
orignal
CXXVER же 17.0.6 грубо говоря
orignal
а надо только первые два
tetrimer
CXXVER := $(shell $(CXX) -dumpversion|cut -c 1-2)
tetrimer
Вот там мы получаем первые две цифры
orignal
вот теперь понял
orignal
ты проверял?
tetrimer
Да, только что собрал.
orignal
flumental если не пубиловать IP то сколько угодно
orignal
покажи весь кусок
flumental
ну они все будут активно работать, не знаю публикуют они при этом айпи или как
orignal
надо все что выше 16 чтобы 20 а все остальные 17
orignal
flumental статус Firewalled если то не будут
tetrimer
Вот, этого то я и не понял.
tetrimer
Значит назначение флагов действительно надо вернуть обратно.
orignal
да
orignal
для новых 20
orignal
для старых 17
orignal
для совсем старых облом
tetrimer
Тогда вот так получается:
tetrimer
" ## custom FLAGS to work at build-time.
tetrimer
-CXXVER := $(shell $(CXX) -dumpversion)
tetrimer
+CXXVER := $(shell $(CXX) -dumpversion|cut -c 1-2)
tetrimer
ifeq (${CXXVER}, "4.2.1") # older clang always returned 4.2.1
tetrimer
$(error Compiler too old)
tetrimer
-else ifeq ($(shell gexpr match ${CXXVER} "1[6-9]"),2) # clang 16 - 19
tetrimer
+else ifeq (${CXXVER}, ${filter ${CXXVER},16 17 18 19}) # clang 16 - 19
tetrimer
NEEDED_CXXFLAGS = -std=c++20"
orignal
вот тут не будет провреки
orignal
<tetrimer> ifeq (${CXXVER}, "4.2.1") # older clang always returned 4.2.1
orignal
счас починю
orignal
поправил
tetrimer
Спасибо!
tetrimer
Работает!
tetrimer
clang++ -dumpversion
tetrimer
14.0.5
tetrimer
Выбрано: -std=c++17
orignal
ну так и должно быть
orignal
я не уврене что там 20 нормальный
orignal
может и можно
tetrimer
Проверить сборку с 20? Или это где-то очень глубоко может быть закопано?
orignal
нет не надо
orignal
я потом сам проверю
orignal
у поляков там 18-ый
flumental
можно ведь собирать не на сервере и потом закидывать на сервер
tetrimer
Можно, только очень желательно, чтобы линкуемые библиотеки совпадали.
tetrimer
Проверяется "ldd /where/live/i2pd"
tetrimer
Или собирать статиком.
acetone_
Vort: залил либу notabug.org/acetone/samty
Vort
acetone_: меня копирайт часто в ступор вводит. допустим, у меня куча кода надёргана из разных источников
Vort
поставлю все лицензии из всех источников - кто-то скажет, что они несовместимы - нельзя
Vort
поставлю PD/WTFPL - скажут, что нельзя - так как не весь код мой
Vort
а переписывать всё с нуля... не пошли бы копирасты куда подальше...
acetone_
Vort: я отношусь к этому очень просто) как говорят у меня в деревне: вообще похуй
Vort
ну просто могут прийти в issue умники и начать морочить голову
Vort
а так то да
acetone_
не коммерцию же для гугла кто-то на I2P писать будет) так что тут разгуляй полнейший. что касается коммерческой белой разработки, то это другая история)
Vort
для того чтобы придираться, код вообще писать не надо. вполне можно ходить по рандомным проектам и морочить голову
tetrimer
А потом придет Майкрософт и потребует отчислений, т.к. у него i2p технология уже давно запатентована.
flumental
ну драсьте
flumental
будем новый миропорядок писать
flumental
ща прилинкую i2pd к чатику и на весь мир растиражирую
flumental
я таки сделал себе через sing-box его встроенными средствами прозрачный прокси к i2p, так что это возможно если вдруг кому интересно
flumental
в секции dns включаете independent_cache и reverse_mapping, после чего спокойно роутите dns в fakeip, а не-днс запросы по domain_suffix i2p в i2pd http proxy
onon
И что, дед предлагает сделать максимальное окно 320?
orignal
так спроси его сам
orignal
ты же понимаешь лучше
onon
Я не шарю в вашей криптографии
orignal
ты ответь по размер окна
onon
А что за вопрос был
orignal
что вычисляется тагов всего 320
orignal
а потреяться может больще
orignal
и если перепосылка придет 321 ым то не сможет расшфровать
onon
Ну да. Может потеряться всё окно
orignal
он говорит что окна в 500 быть не должно
onon
А вот про ретрансмит 500 пакетов я не совсем понял
orignal
дескать "вы там все дураки"
onon
Ну так логично, изначально всё проектировалось под 128 пакетов
orignal
вот я хочу чтобы ты объяснил что окно в 500 это нормально для тяжелого трафика
onon
Но так не будет работать быстро
orignal
ну вот я думаю поменять 320
onon
Так он сам всё понимает bw = window / rtt = (128 * 1812) / 1 = 232 KBps = 1.8 Mbit/s
orignal
я пытался у него понять откуда такое число взялось
onon
Просто сделали с запасом я думаю
onon
Если я получил 1000 пакетов, а потом получаю 1321-й, то я его что, не смогу расшифровать?
onon
Может я что-то путаю, но у меня в тестах гэпы и побольше были и он справлялся
orignal
именно так
orignal
если 320 подряд потерялось то все
orignal
потому что расчет новых тагов делается при получении
onon
А можно как-то в заголовках пакетов передавать текущий размер окна
onon
Или при старте договариваться
onon
Сколько тагов генерить
onon
Тогда выпиливай эту херню в SSU, которая дропает пакеты большими пачками
onon
Понятно что это не единственная причина, но всё же
orignal
так надо бы
orignal
чтобы стрим сообщал сессии размер окна
onon
Пока можно поставить 320 макс окно
orignal
но проблема то на другой стороне
onon
Это скажется только на длинных туннелях
orignal
ну давай поставим
onon
Пока не найдём решение
orignal
а при перепосылке не станет больше?
onon
Что имеется в виду?
orignal
320 размер окна
orignal
а если перепосылка может откпрваляться без подверждаения больше чем 320