Forwarded from Раньше всех. Ну почти.
Илон Маск выдвинул сотрудникам Twitter ультиматум: усердно работать или уволиться — Washington Post
🤔8🤡5👍3🐳2🍌1
Раньше всех. Ну почти.
Илон Маск выдвинул сотрудникам Twitter ультиматум: усердно работать или уволиться — Washington Post
У меня, на самом деле, довольно неоднозначное отношение к этому заявлению.
С одной стороны, кто платит, тот и заказывает музыку.
С другой:
* Судя по тому, что он хочет, чтобы все его сотрудники работали исключительно из офиса, мерилом труда он считает усталость, что так себе.
* КМК, его действия идут вразрез с моими личными интересами, а потому он негодяй, редиска, и ходить к нему на работу - не надо. Возможность full femote - это благо, доставшееся от периода короновируса, с хера он хочет это отменить?
* Автоматизация растет, люди будут нужны все меньше и меньше, поэтому чем меньше работает каждый человек, тем большему количеству людей в итоге будет, чем заниматься. Я считаю, что безусловный доход мы не минем, и к этому надо готовиться, в том числе, уменьшая рабочую неделю.
На мой взгляд, это заявление не очень вяжется с тем образом, который он хочет себе создать.
С одной стороны, кто платит, тот и заказывает музыку.
С другой:
* Судя по тому, что он хочет, чтобы все его сотрудники работали исключительно из офиса, мерилом труда он считает усталость, что так себе.
* КМК, его действия идут вразрез с моими личными интересами, а потому он негодяй, редиска, и ходить к нему на работу - не надо. Возможность full femote - это благо, доставшееся от периода короновируса, с хера он хочет это отменить?
* Автоматизация растет, люди будут нужны все меньше и меньше, поэтому чем меньше работает каждый человек, тем большему количеству людей в итоге будет, чем заниматься. Я считаю, что безусловный доход мы не минем, и к этому надо готовиться, в том числе, уменьшая рабочую неделю.
На мой взгляд, это заявление не очень вяжется с тем образом, который он хочет себе создать.
👍9❤2🔥1🤔1
https://daniel.haxx.se/blog/2022/11/17/considering-c99-for-curl/
Тут вот Даня написал ужасный старперский текст, почему curl не будет использовать c99, и останется на c89.
Весь тект можно не читать, достаточно одного абзаца этой воды:
"So sure, there are lots of cool things we could use. But do we need them?
For several of the features above, we already have decent and functional replacements. Several of the features don’t matter. The rest risk becoming distractions"
Классический "X не нужен". Ну так-то и с89 тебе не нужен, строго говоря, пиши на K&R, или на ассемблере.
Я бы, на его месте, написал бы: "Идите в жопу, мне60 51, на чем хочу, на том и пишу, а чего добился ты, аноним?"
Тут вот Даня написал ужасный старперский текст, почему curl не будет использовать c99, и останется на c89.
Весь тект можно не читать, достаточно одного абзаца этой воды:
"So sure, there are lots of cool things we could use. But do we need them?
For several of the features above, we already have decent and functional replacements. Several of the features don’t matter. The rest risk becoming distractions"
Классический "X не нужен". Ну так-то и с89 тебе не нужен, строго говоря, пиши на K&R, или на ассемблере.
Я бы, на его месте, написал бы: "Идите в жопу, мне
😁14🤣4🔥2
Борцов с large IT прибыло: #money
https://github.com/ReimuNotMoe/ydotool#more-talks
"Independent software developers in China, like us, have 10 times more life pressure than Marak, the author of faker.js. Since ydotool has the opportunity to benefit large IT companies who won't pay a penny to us, we've changed the license to AGPLv3. These large IT companies are the main cause of life pressure here, such as the "996" working hours.
Marak's fate will repeat on all open source developers eventually (of course we aren't talking about those who were born in billionare families) if we just keep fighting with each other and do nothing to improve the situation. If you make open source software as well, don't hesitate to ask for donations if you actually want them.
Also make sure you understand all the terms of AGPLv3 before using this software"
Я не понимаю, что происходит в головах у этих людей.
"У меня есть хобби, мне оно нравится, а еще чтобы деньги за него платили"
Ну, в жизни так редко бывает.
https://github.com/ReimuNotMoe/ydotool#more-talks
"Independent software developers in China, like us, have 10 times more life pressure than Marak, the author of faker.js. Since ydotool has the opportunity to benefit large IT companies who won't pay a penny to us, we've changed the license to AGPLv3. These large IT companies are the main cause of life pressure here, such as the "996" working hours.
Marak's fate will repeat on all open source developers eventually (of course we aren't talking about those who were born in billionare families) if we just keep fighting with each other and do nothing to improve the situation. If you make open source software as well, don't hesitate to ask for donations if you actually want them.
Also make sure you understand all the terms of AGPLv3 before using this software"
Я не понимаю, что происходит в головах у этих людей.
"У меня есть хобби, мне оно нравится, а еще чтобы деньги за него платили"
Ну, в жизни так редко бывает.
GitHub
GitHub - ReimuNotMoe/ydotool: Generic command-line automation tool
Generic command-line automation tool. Contribute to ReimuNotMoe/ydotool development by creating an account on GitHub.
👍3
https://maskray.me/blog/2022-11-13-odr-violation-detection
Текст от #maskray, про то, как разные фреймворки реализуют поиск ODR violation.
Сухо, скучно, без огонька, как будто коллега пишет не зажигательный текст про линкер, а зарплату отрабатывает!
Но я вот не знал, как это делает asan runtime, красивое.
Текст от #maskray, про то, как разные фреймворки реализуют поиск ODR violation.
Сухо, скучно, без огонька, как будто коллега пишет не зажигательный текст про линкер, а зарплату отрабатывает!
Но я вот не знал, как это делает asan runtime, красивое.
MaskRay
ODR violation detection
This article describes how to detect C++ One Definition Rule (ODR) violations. There are many good resources on the Internet about how ODR violations can introduce subtle bugs, so I will not repeat th
👍4🤔2
https://www.phoronix.com/news/GNU-Binutils-SFrame #dwarf
Тут вот пишут, что gnu binutils теперь умеют строить специальную секцию со слепком небольшого объема данных из dwarf, нужной исключительно для раскрутки стека.
Бинари получаются меньше, стек раскручивается быстрее.
Круто?
https://www.google.com/search?q=compact+unwind
Apple уже давно имеет формат для "compact unwind", он особо нигде не афишируется, но clang его умеет для mach-o. Я регулярно совершал набеги, чтобы он завелся и под elf, там делов-то - сгенерить нужную секцию, а libc++abi/llvm unwind уже давно в это умеют. Безуспешно(не потому что сложно, а потому что лень).
"Не договорились", а как же иначе.
(кстати, именно из-за этого у меня по всем замерам пару лет назад получалось, что в MacOS исключения летят раз в 5 быстрее)
Тут вот пишут, что gnu binutils теперь умеют строить специальную секцию со слепком небольшого объема данных из dwarf, нужной исключительно для раскрутки стека.
Бинари получаются меньше, стек раскручивается быстрее.
Круто?
https://www.google.com/search?q=compact+unwind
Apple уже давно имеет формат для "compact unwind", он особо нигде не афишируется, но clang его умеет для mach-o. Я регулярно совершал набеги, чтобы он завелся и под elf, там делов-то - сгенерить нужную секцию, а libc++abi/llvm unwind уже давно в это умеют. Безуспешно(не потому что сложно, а потому что лень).
"Не договорились", а как же иначе.
(кстати, именно из-за этого у меня по всем замерам пару лет назад получалось, что в MacOS исключения летят раз в 5 быстрее)
Phoronix
GNU Binutils Lands New "SFrame" Format Support For Simple Stack Unwinding
Being merged this week to GNU Binutils is initial support for reading and writing to new 'SFrame' sections of binaries.
👍8🔥5🤡1
commit -m "better"
https://bluewhalesystems.blogspot.com/2022/11/mold-linker-may-not-switch-to-source.html Подоспел ответ от Rui. IANAL, но, КМК, он еще меньше lawyer, чем я, судя по придуманной им схеме. "That is, we claim that the output from the linker is a derivative…
Мужик сказал - мужик сделал! #mold #money
https://github.com/bluewhalesystems/sold
Пожалуйста, новый линкер от Rui - #sold!
Ну и, теперь, когда вы отправляете патч в mold, под MIT-совместимой лицензией, знайте, что, тем самым, помогаете хорошему человеку продать ваш труд!
И я, на самом-то деле, не то чтобы сильно ерничаю. Есть разница между "отправить патч в свободный проект", и "отправить патч в проект, который его упакует и продаст за деньги".
В жизни не отправлю патч в mongodb/elastic, а вы?
https://github.com/bluewhalesystems/sold
Пожалуйста, новый линкер от Rui - #sold!
Ну и, теперь, когда вы отправляете патч в mold, под MIT-совместимой лицензией, знайте, что, тем самым, помогаете хорошему человеку продать ваш труд!
И я, на самом-то деле, не то чтобы сильно ерничаю. Есть разница между "отправить патч в свободный проект", и "отправить патч в проект, который его упакует и продаст за деньги".
В жизни не отправлю патч в mongodb/elastic, а вы?
GitHub
GitHub - bluewhalesystems/sold: The sold linker
The sold linker. Contribute to bluewhalesystems/sold development by creating an account on GitHub.
🤡8🔥3😁2👍1🥴1
https://3dnews.ru/1077583/pokupatelyami-pervih-kvantovih-telefonov-za-40-mln-rubley-stanut-rgd-i-gazprom
"Покупателями первых телефонов с квантовой связью, выпускаемых компанией «ИнфоТеКС» и оценённых ориентировочно в 40 млн рублей, могут стать РЖД и «Газпром». Внедрение таких устройств связи может состояться уже в следующем году и позволит существенно повысить конфиденциальность переговоров"
#analo_govnet
"Покупателями первых телефонов с квантовой связью, выпускаемых компанией «ИнфоТеКС» и оценённых ориентировочно в 40 млн рублей, могут стать РЖД и «Газпром». Внедрение таких устройств связи может состояться уже в следующем году и позволит существенно повысить конфиденциальность переговоров"
#analo_govnet
3DNews - Daily Digital Digest
Все самое интересное из мира IT-индустрии
Самые интересные и оперативные новости из мира высоких технологий. На нашем портале - все о компьютерном железе, гаджетах, ноутбуках и других цифровых устройствах. А также обзоры новых игр, достижения современной науки и самые любопытные онлайн-проекты.
😁5💩4🤔3🐳3
Решил я разобраться с падением альтернативы git от openbsd - #got http://gameoftrees.org/.
(мы его как-то обсуждали в комментариях, он у меня тогда падал, несмотря на openbsd происхождение)
Gdb, конечно, показал красивое - https://git.gameoftrees.org/gitweb/?p=got-portable.git;a=blob;f=got/got.c;h=15f993971c3f1fa3771c09ad092f2f5c3d8e6c13;hb=HEAD#l284
Падало оно вот в этой строчке кода, причем getprogname() возвращал корректный указатель на строку, а вот в fprintf() приходило уже нечто, обрезанное по 4 байтам.
На самом деле, в этот момент уже все было понятно, но, для проформы, я перезапустил сборку проекта, и грепнул его на предмет предупреждений компилятора в этом месте:
Почему так произошло?
Если честно, я не разобрался на 100%. Я только понял, что это где-то проблема на стыке libbsd, кода из папочки openbsd-compat, которой нет в их репозитории, и которую, видимо, они подмешивают в момент построения релизного tgz, и моей обертки над компилятором.
Там все весьма нетривиально - libbsd пытается "досыпать" в системные заголовки дополнительных функцию с помощью include_next, и хитрой манипуляцией с путями компилятора(определенный порядок -Ixx, -isystemxxx, и так далее) - https://cgit.freedesktop.org/libbsd/tree/include/bsd/stdio.h#n32
А потом, сверху, дополнительно, делает еще и openbsd-compat из поставки got.
Малейшая неточность - и мы в клиентском коде включаем "не тот" заголовок, в котором нет getprogname(), и прочих проблемных функций.
С на это похер(нет манглинга в именах символов), линкеру тоже - он линкует, что ему дали.
Я за 20 минут не разобрался, что же там сломано в порядке включения заголовков, и сделал по рабоче-крестьянски:
* сделал файл со всеми нужными прототипами - https://github.com/pg83/ix/blob/main/pkgs/bin/got/stock/ix.sh#L30
* добавил его в каждый вызов компилятора - https://github.com/pg83/ix/blob/main/pkgs/bin/got/stock/ix.sh#L57, через вызов "-include xxx.h" (есть и такое в clang/gcc)
Это, конечно, костыль, но не очень кривой, потому что все эти прототипы определены в стандарте, и просто не могут быть другими.
В общем, падения я починил, но got у меня так и не заработал, и об этом в другой раз!
(мы его как-то обсуждали в комментариях, он у меня тогда падал, несмотря на openbsd происхождение)
Gdb, конечно, показал красивое - https://git.gameoftrees.org/gitweb/?p=got-portable.git;a=blob;f=got/got.c;h=15f993971c3f1fa3771c09ad092f2f5c3d8e6c13;hb=HEAD#l284
Падало оно вот в этой строчке кода, причем getprogname() возвращал корректный указатель на строку, а вот в fprintf() приходило уже нечто, обрезанное по 4 байтам.
На самом деле, в этот момент уже все было понятно, но, для проформы, я перезапустил сборку проекта, и грепнул его на предмет предупреждений компилятора в этом месте:
got.c:9260:54: warning: call to undeclaredКороче, компилятор не видел объявления const char* getprogname();, и посчитал что оно int getprogname(). С такой С.
function 'getprogname'; ISO C99 and later
do not support implicit function declarations
[-Wimplicit-function-declaration]
fprintf(stderr, "usage: %s
cherrypick commit-id\n", getprogname());
Почему так произошло?
Если честно, я не разобрался на 100%. Я только понял, что это где-то проблема на стыке libbsd, кода из папочки openbsd-compat, которой нет в их репозитории, и которую, видимо, они подмешивают в момент построения релизного tgz, и моей обертки над компилятором.
Там все весьма нетривиально - libbsd пытается "досыпать" в системные заголовки дополнительных функцию с помощью include_next, и хитрой манипуляцией с путями компилятора(определенный порядок -Ixx, -isystemxxx, и так далее) - https://cgit.freedesktop.org/libbsd/tree/include/bsd/stdio.h#n32
А потом, сверху, дополнительно, делает еще и openbsd-compat из поставки got.
Малейшая неточность - и мы в клиентском коде включаем "не тот" заголовок, в котором нет getprogname(), и прочих проблемных функций.
С на это похер(нет манглинга в именах символов), линкеру тоже - он линкует, что ему дали.
Я за 20 минут не разобрался, что же там сломано в порядке включения заголовков, и сделал по рабоче-крестьянски:
* сделал файл со всеми нужными прототипами - https://github.com/pg83/ix/blob/main/pkgs/bin/got/stock/ix.sh#L30
* добавил его в каждый вызов компилятора - https://github.com/pg83/ix/blob/main/pkgs/bin/got/stock/ix.sh#L57, через вызов "-include xxx.h" (есть и такое в clang/gcc)
Это, конечно, костыль, но не очень кривой, потому что все эти прототипы определены в стандарте, и просто не могут быть другими.
В общем, падения я починил, но got у меня так и не заработал, и об этом в другой раз!
www.gameoftrees.org
Game of Trees
the main Game of Trees page
👍10🔥3🐳3😱1🤨1
Forwarded from Двач
Илон Маск поделился фотографией текущей команды твиттера. На втором фото — старые работники, большинство из которых уволились, потому что «не хотели много работать».
😶 😶 😶 😶
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22🔥7💩1🤡1
commit -m "better"
Решил я разобраться с падением альтернативы git от openbsd - #got http://gameoftrees.org/. (мы его как-то обсуждали в комментариях, он у меня тогда падал, несмотря на openbsd происхождение) Gdb, конечно, показал красивое - https://git.gameoftrees.org/gitweb/?p=got…
Продолжение истории про #got.
Он у меня пока так и не заработал, потому что:
* Разработчики - большие фанаты "театра безопасности", и потому анально огородили все места, куда может залезть программа, через landlock/unveil/etc. Причем, судя по README, это "очень важная" фича, вокруг которой был сдизайнен остальной код - https://gameoftrees.org/goals.html, а, судя по changelog, примерно половина разработки - это добавление того, что забыли добавить в доступные файлы для корректной работы программы.
* Путь к ssh захардкожен - https://git.gameoftrees.org/gitweb/?p=got.git;a=blob;f=lib/dial.c;h=3325c8994f55721d8588155cdc72b95d11fd2248;hb=4cad5be9f88baeb0583b4b63a546f5815929a270#l49 в "/usr/bin/ssh", а, как вы понимаете, у разумных людей ssh там не лежит. Ну и, помимо того, что не лежит, просто позвать ssh не получится, потому что unveil.
Почему это "театр безопасности"? А много кого хакали на основе парсера ссылочного графа в git?
У людей от безделья уже крышу сносит, но на безопасные языки они свой код переписывать не хотят, а поклонникам же как-то надо каждый раз рассказывать, что там еще стало "безопаснее" и лучше!
Он у меня пока так и не заработал, потому что:
* Разработчики - большие фанаты "театра безопасности", и потому анально огородили все места, куда может залезть программа, через landlock/unveil/etc. Причем, судя по README, это "очень важная" фича, вокруг которой был сдизайнен остальной код - https://gameoftrees.org/goals.html, а, судя по changelog, примерно половина разработки - это добавление того, что забыли добавить в доступные файлы для корректной работы программы.
* Путь к ssh захардкожен - https://git.gameoftrees.org/gitweb/?p=got.git;a=blob;f=lib/dial.c;h=3325c8994f55721d8588155cdc72b95d11fd2248;hb=4cad5be9f88baeb0583b4b63a546f5815929a270#l49 в "/usr/bin/ssh", а, как вы понимаете, у разумных людей ssh там не лежит. Ну и, помимо того, что не лежит, просто позвать ssh не получится, потому что unveil.
Почему это "театр безопасности"? А много кого хакали на основе парсера ссылочного графа в git?
У людей от безделья уже крышу сносит, но на безопасные языки они свой код переписывать не хотят, а поклонникам же как-то надо каждый раз рассказывать, что там еще стало "безопаснее" и лучше!
gameoftrees.org
Game of Trees (Got): Goals
Game of Trees (Got) Goals
👍7😁5🔥2👎1
commit -m "better"
У меня для вас сегодня парочка анекдотов. Про сборку, конечно. * https://github.com/pg83/mix/blob/main/pkgs/bin/net/tools/mix.sh#L18 Авторы net-tools настолько упоролись, что решили, что их сборка может быть запущена только руками, и ответы на вопросы надо…
Сегодня у меня для вас анекдот про мое чувство прекрасного.
Меня лично бесят программы, которые хотят создавать временные файлы. Вообще, "временный файл" - это какой-то нонсенс, потому что захера писать эфемерные данные в персистентный файл?
Данные можно или буферизовать в памяти, или писать через pipe на вход в другую программу, или что-то такое же разумное.
Обычно программы пишут что-то во временные файлы или в виде хака, когда у тебя какой-то блок кода уже принимает int fd, а переписать это на нормальный интерфейс - лень, или когда какая-то программа в цепочке не умеет в pipe.
В первом случае, кстати, в современном linux можно использовать memfd_create(), довольно полезная вещь, в плане "замести мусор под кровать".
Другая проблема с временными файлами - всякие странные программы не уважают настройку TMPDIR, и пытаются напрямую писать в /tmp, причем, придумывая какие-то дикие способы разграничения доступов и "непересечения" с другими экземплярами.
Вот вам содержимое моего сессионного tmp:
Сколько вы тут насчитали разных способов "уникализации"?
Повторю, меня это дико бесит, и я себе поставил цель - все программы, которые я использую, должны уметь в TMPDIR.
Кстати, немного в сторону, #TMPDIR, конечно, должна быть "сложным" путем, включающем в себя id пользователя, и session id(например, чтобы уметь эффективно очищать это барахло по окончанию сессии):
Поэтому у меня в #stal/ix нет корневой папки /tmp.
Почему?
Потому что, по странному стечению обстоятельств, все программы, которые имеют свое сильное мнение про именование папки с временными файлами, пытаются писать в /tmp.
А у меня ее нет, зато есть /var/tmp, с разделением по сессиям.
Поэтому все такие программы ломаются, и я их все исправляю.
Чтобы этот процесс не был мучительным, я запилил небольшую библиотечку для этого - https://github.com/pg83/ix/tree/main/pkgs/lib/shim/ix
Ее применение почти автоматизировано - https://github.com/pg83/ix/blob/main/pkgs/bin/got/ix/ix.sh#L10
Меня лично бесят программы, которые хотят создавать временные файлы. Вообще, "временный файл" - это какой-то нонсенс, потому что захера писать эфемерные данные в персистентный файл?
Данные можно или буферизовать в памяти, или писать через pipe на вход в другую программу, или что-то такое же разумное.
Обычно программы пишут что-то во временные файлы или в виде хака, когда у тебя какой-то блок кода уже принимает int fd, а переписать это на нормальный интерфейс - лень, или когда какая-то программа в цепочке не умеет в pipe.
В первом случае, кстати, в современном linux можно использовать memfd_create(), довольно полезная вещь, в плане "замести мусор под кровать".
Другая проблема с временными файлами - всякие странные программы не уважают настройку TMPDIR, и пытаются напрямую писать в /tmp, причем, придумывая какие-то дикие способы разграничения доступов и "непересечения" с другими экземплярами.
Вот вам содержимое моего сессионного tmp:
./epiphany-pg-aaNPpb
./d9ca075b14fe84b587843f702e0d2466-
{87A94AB0-E370-4cde-98D3-ACC110C5967D}
./6b047d326310867001cb39f5218a36ba-
{87A94AB0-E370-4cde-98D3-ACC110C5967D}
./mc-pg
./mc-pg/mc-pg
./sway-ipc.10000.9709.sock
./wayland-1
./wayland-1.lock
./dbus.sock
./dbus-1
./dbus-1/services
./dbus.cfg
./ssh-XXXXXXJIAMlN
./ssh-XXXXXXJIAMlN/agent.9704
Сколько вы тут насчитали разных способов "уникализации"?
Повторю, меня это дико бесит, и я себе поставил цель - все программы, которые я использую, должны уметь в TMPDIR.
Кстати, немного в сторону, #TMPDIR, конечно, должна быть "сложным" путем, включающем в себя id пользователя, и session id(например, чтобы уметь эффективно очищать это барахло по окончанию сессии):
pg-> echo ${TMPDIR}
/var/tmp/10000/10953
Поэтому у меня в #stal/ix нет корневой папки /tmp.
Почему?
Потому что, по странному стечению обстоятельств, все программы, которые имеют свое сильное мнение про именование папки с временными файлами, пытаются писать в /tmp.
А у меня ее нет, зато есть /var/tmp, с разделением по сессиям.
Поэтому все такие программы ломаются, и я их все исправляю.
Чтобы этот процесс не был мучительным, я запилил небольшую библиотечку для этого - https://github.com/pg83/ix/tree/main/pkgs/lib/shim/ix
Ее применение почти автоматизировано - https://github.com/pg83/ix/blob/main/pkgs/bin/got/ix/ix.sh#L10
GitHub
ix/pkgs/lib/shim/ix at main · pg83/ix
ix package manager. Contribute to pg83/ix development by creating an account on GitHub.
👍20🔥9🤔2💩1
commit -m "better"
Вышел релиз wayland-protocols, за номером 1.29. 1.28 была, буквально, на днях, я писал про новые ошибки линковки, с ней связанные. #wayland Меня удивило, быстро очень, они же там протоколы по 2 года мусолят. https://lists.freedesktop.org/archives/wayland…
Прошло буквально несколько дней, и, вот, следующая версия:
https://www.phoronix.com/news/Wayland-Tearing-Control-Proto
"In the early days of Wayland one of the main philosophical driving points for this alternative to the X.Org Server was that "every frame is perfect" and would forego screen tearing among other rendering impurities. Introduced now with Wayland Protocols 1.30 though is a new staging protocol to allow screen tearing"
Ебени они там объелись, вот что.
https://www.phoronix.com/news/Wayland-Tearing-Control-Proto
"In the early days of Wayland one of the main philosophical driving points for this alternative to the X.Org Server was that "every frame is perfect" and would forego screen tearing among other rendering impurities. Introduced now with Wayland Protocols 1.30 though is a new staging protocol to allow screen tearing"
Ебени они там объелись, вот что.
Phoronix
Wayland Protocols 1.30 Introduces New Protocol To Allow Screen Tearing
In the early days of Wayland one of the main philosophical driving points for this alternative to the X.Org Server was that 'every frame is perfect' and would forego screen tearing among other rendering impurities
😁9🤡7🤔2🍌1
https://maskray.me/blog/2022-11-21-relocatable-linking
Знаменитый блоггер #maskray продолжает серию постов про линкер.
На этот раз про опцию линкера "-r", которая, по сути, умеет сливать два .o файла в один, делая частичную линковку в процессе.
Не спрашивайте, зачем, если вам не нужно - то не нужно, а если нужно - то вы уже знаете.
Я-то надеялся из этой статьи узнать, что делает мутная опция gnu ld "-Ur":
"-Ur
For anything other than C++ programs, this option is equivalent to -r: it generates relocatable output--i.e., an output file that can in turn serve as input to ld. When linking C++ programs, -Ur does resolve references to constructors, unlike -r. It does not work to use -Ur on files that were themselves linked with -Ur; once the constructor table has been built, it cannot be added to. Use -Ur only for the last partial link, and -r for the others"
Вот вы понимаете, что она actually do? Я - не очень.
Мое лучшее предположение - что она включает генерацию секций .ctor(и подобных), что никто больше делать не умеет, потому что зачем???
Я так понимаю, что релевантный кусок текста от #maskray - это вот это вот:
"The linker does not create synthesized sections (.interp, .gnu.hash, .got, .plt, .comment, etc)"
Собственно, мне было бы на это пофиг, но у меня есть ровно одна программа в репозитории, которая хочет от линкера такую опцию - это https://github.com/pg83/ix/blob/main/pkgs/bin/nix/ix.sh (да, да, Nix package manager, тот самый)
В итоге, я решил, что имею полное право заменить -Ur на просто -r, https://github.com/pg83/ix/blob/main/pkgs/bld/scripts/wrapcc/kuroko/wrapcc.krk#L32, потому что какого хрена? Ну сгенерят таблицу конструкторов чуть позже, ну и ладно.
Знаменитый блоггер #maskray продолжает серию постов про линкер.
На этот раз про опцию линкера "-r", которая, по сути, умеет сливать два .o файла в один, делая частичную линковку в процессе.
Не спрашивайте, зачем, если вам не нужно - то не нужно, а если нужно - то вы уже знаете.
Я-то надеялся из этой статьи узнать, что делает мутная опция gnu ld "-Ur":
"-Ur
For anything other than C++ programs, this option is equivalent to -r: it generates relocatable output--i.e., an output file that can in turn serve as input to ld. When linking C++ programs, -Ur does resolve references to constructors, unlike -r. It does not work to use -Ur on files that were themselves linked with -Ur; once the constructor table has been built, it cannot be added to. Use -Ur only for the last partial link, and -r for the others"
Вот вы понимаете, что она actually do? Я - не очень.
Мое лучшее предположение - что она включает генерацию секций .ctor(и подобных), что никто больше делать не умеет, потому что зачем???
Я так понимаю, что релевантный кусок текста от #maskray - это вот это вот:
"The linker does not create synthesized sections (.interp, .gnu.hash, .got, .plt, .comment, etc)"
Собственно, мне было бы на это пофиг, но у меня есть ровно одна программа в репозитории, которая хочет от линкера такую опцию - это https://github.com/pg83/ix/blob/main/pkgs/bin/nix/ix.sh (да, да, Nix package manager, тот самый)
В итоге, я решил, что имею полное право заменить -Ur на просто -r, https://github.com/pg83/ix/blob/main/pkgs/bld/scripts/wrapcc/kuroko/wrapcc.krk#L32, потому что какого хрена? Ну сгенерят таблицу конструкторов чуть позже, ну и ладно.
MaskRay
Relocatable linking
Updated in 2025-02. In GNU ld, -r produces a relocatable object file. This is known as relocatable linking or partial linking. This mode suppresses many passes done for an executable or shared object
😐4👍2🤔2
https://www.opennet.ru/opennews/art.shtml?num=58177
Какая-то совершенно феерическая тема, проект https://urho3d.io/ разделился на 2 части, https://u3d.io/
Один из разработчиков решил, что англоязычные пользователи черезчур токсичны, и решил переориентироваться на русскоязычное community - https://discourse.urho3d.io/t/the-last-english-release/7362/2
В комментария пишут, что все началось с https://github.com/urho3d/Urho3D/issues/2940 - там массово заменяли unsigned типы на signed. https://discourse.urho3d.io/t/the-last-english-release/7362/7
Я, конечно, всей душой на стороне форка, потому что "курица - не птица, а int - не тип". #unsigned
Начнем с того, что ты - пиздоглазое мудило "By the way, you are a bad programmer" - https://discourse.urho3d.io/t/the-last-english-release/7362/9
Почитайте, со ссылочками, там вкусно.
Какая-то совершенно феерическая тема, проект https://urho3d.io/ разделился на 2 части, https://u3d.io/
Один из разработчиков решил, что англоязычные пользователи черезчур токсичны, и решил переориентироваться на русскоязычное community - https://discourse.urho3d.io/t/the-last-english-release/7362/2
В комментария пишут, что все началось с https://github.com/urho3d/Urho3D/issues/2940 - там массово заменяли unsigned типы на signed. https://discourse.urho3d.io/t/the-last-english-release/7362/7
Я, конечно, всей душой на стороне форка, потому что "курица - не птица, а int - не тип". #unsigned
Почитайте, со ссылочками, там вкусно.
www.opennet.ru
Раскол в сообществе свободного игрового движка Urho3D привёл к созданию форка
В результате противоречий в сообществе разработчиков игрового движка Urho3D (со взаимными обвинениями в "токсичности"), разработчик 1vanK, имеющий административный доступ к репозиторию и форуму проекта, в одностороннем порядке заявил о смене курса разработки…
😐8😁6👍4🔥1🐳1