URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 125969
[ Назад ]

Исходное сообщение
"Проект elfshaker развивает систему контроля версий для ELF-файлов"

Отправлено opennews , 26-Ноя-21 11:05 
Опубликован первый выпуск проекта elfshaker, развивающего систему управления версий для двоичных файлов, оптимизированную для отслеживания изменений в  исполняемых файлах в формате ELF. Система хранит бинарные патчи между файлами, позволяет извлекать нужную версию по ключу, что значительно ускоряет выполнение операции "git bisect" и сильно сокращает размер используемого дискового пространства. Код проекта распространяется под лицензией Apache-2.0...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=56234


Содержание

Сообщения в этом обсуждении
"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 11:10 
Отличный проект, жаль только написан на расте. Ждем аналога на православном C/C++.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 11:49 
заминусовали, наверное, обладатели терабайт оперативки, которые могут себе позволить запускать исполинские бинарники раста

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 11:57 
Даже не пытайся, рациональные аргументы растоманам не интересны. Это же сектанты.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 12:16 
А минусовали-то как раз "жаль" без аргументов, аргументы после появились.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено виндотролль , 26-Ноя-21 12:49 
Рациональный аргумент: Исполинские бинарники
Рациональный аргумент: Терабайт оперативки

Господи иисусе, когда же ты спустишься с небес и высушишь всех анонимов опеннета.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:21 
> Рациональный аргумент: Исполинские бинарники

Не угадал. От 2МБ до и от 110КБ после стрипа. И это с учётом ВСЕГО растаманского рантайма, прилинкованного к бинарю. Гоповские бинари у меня тоже были от 2.2МБ(1.1 после стрипа). Статический С-бинарь - около полутора.

> Рациональный аргумент: Терабайт оперативки

Где-то столько же, сколько и для соответствующей сишной проги. Если у тебя занимает терабайт ОЗУ, то лечи руки и голову, проблема где-то там.

> Господи иисусе, когда же ты спустишься с небес и высушишь всех анонимов опеннета.

Религиозный рационализм?


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено keydon , 26-Ноя-21 15:50 
Ну я не буду создавать коней в ваккуме и возьму пример из практики что сейчас у меня на машине с +/- похожим функционалом (не одинаковый).
Rust'овский ripgrep (других нормальных программ на расте не существует) и обычный grep. Разница в 26 раз (совсем не 2МБ vs 1,5МБ).
$ stat -c "%s %n" /usr/bin/rg
5234448 /usr/bin/rg
$ stat -c "%s %n" /bin/grep
199136 /bin/grep

Зависимости тоже не в пользу раста в 1.37 раза
$ ldd /usr/bin/rg | awk '{print $3}' | xargs readlink -f | xargs stat -c "%s %n" | awk '{ SUM += $1 } END {print SUM}'
3679600
$ ldd /bin/grep | awk '{print $3}' | xargs readlink -f | xargs stat -c "%s %n" | awk '{ SUM += $1 } END {print SUM}'
2670272
$ ldd /usr/bin/rg | awk '{print $3}' | xargs readlink -f | xargs stat -c "%s %n"
18816 /lib/x86_64-linux-gnu/libdl-2.31.so
157224 /lib/x86_64-linux-gnu/libpthread-2.31.so
104984 /lib/x86_64-linux-gnu/libgcc_s.so.1
2029224 /lib/x86_64-linux-gnu/libc-2.31.so
1369352 /lib/x86_64-linux-gnu/libm-2.31.so
$ ldd /bin/grep | awk '{print $3}' | xargs readlink -f | xargs stat -c "%s %n"
465008 /lib/x86_64-linux-gnu/libpcre.so.3.13.3
18816 /lib/x86_64-linux-gnu/libdl-2.31.so
2029224 /lib/x86_64-linux-gnu/libc-2.31.so
157224 /lib/x86_64-linux-gnu/libpthread-2.31.so

Выбор за вами, но на мой взгляд, учитывая увеличение бинарей в 26 раз, что раст медленнее, хуже читается, несвободный, целиком зависит от rust foundation (фактически прикрытие для микрософт, гугл, амазон, фейсбук), и ооочень спорный касательно безопаснсти, rust нужно всеми силами избегать, а его адептов закидывать гнилыми помидорами.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено morphe , 26-Ноя-21 22:26 
Не совсем корректно сравнивать ripgrep с grep, ripgrep нужно сравнивать с the silver searcher (ag) и подобными
Он как минимум намного быстрее и фичастее:

https://blog.burntsushi.net/ripgrep/
https://beyondgrep.com/feature-comparison/


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено keydon , 27-Ноя-21 03:05 
Дальше видимо должно идти выбор более подходящего греп клона, уравнение опций, параметров компилятора, версий либ, кейсов для тестирования, патчей для схожести алгоритмов и прочие действия которые для меня сделают сравнение ещё менее практичным.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено morphe , 27-Ноя-21 04:51 
Т.е сравнивать поисковые программы по их размеру на диске - практично?

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 27-Ноя-21 15:27 
Иногда — да. Я переписал dirname потому что мне не нравилось то, как она сделана (и описана в POSIX) в libgen.h, придав ей вид realpath. Заодно решил собрать в бинарь, повторяющий функционал POSIX и так же жрущий кучу аргументов подряд, как GNU версия. В итоге мой бинарь весит 16 кб просто с флагами -Ofast, а GNU версия аж 40 кб, и по скорости получилось одинаково.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 27-Ноя-21 15:29 
А, и вся функция dirname из зависимостей имеет только memcpy, ни одной другой функции не использовал.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 27-Ноя-21 19:13 
А по стабильности и безопасности как получилось у Неуловимого Джо? Сколько времени занимает сопровождение форка? (Намек, что подходит для индивида, не обязательно подходит для сообщества.)

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено keydon , 27-Ноя-21 19:01 
Нет, не практично, но не я затеял эту сравнение. Это лишь лишний раз подчеркивает что к одному, далеко не главному, аргументу анонима касательно небольшого веса программ на расте следует относится с долей сомнения.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено morphe , 27-Ноя-21 19:27 
> Нет, не практично, но не я затеял эту сравнение. Это лишь лишний
> раз подчеркивает что к одному, далеко не главному, аргументу анонима касательно
> небольшого веса программ на расте следует относится с долей сомнения.

Ну допустим возьмём чот более сравнимое, есть язык шаблонизации - jsonnet

Под него есть 4 известных реализации (Рассматриваю статически слинкованные x86_64 бинари):
C++ (10.7мб после распаковки): https://github.com/google/jsonnet/releases/tag/v0.17.0
Scala (8.8мб, но тут ещё нужно jvm считать): https://github.com/databricks/sjsonnet/releases/tag/0.4.1
Go (4.6мб после распаковки): https://github.com/google/go-jsonnet/releases/tag/v0.17.0
Rust (1.7мб): https://github.com/CertainLach/jrsonnet/releases/tag/v0.5.0-...

Как же так получилось что Rust самый компактный?


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено keydon , 28-Ноя-21 05:01 
Могу сказать только что это хороший пример.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 13:50 
for the record, 12:

% uname -op ; ldd `which grep` | awk '{print $3}' | xargs readlink -f | xargs stat -f "%z %N"
FreeBSD amd64
1897288 /lib/libc.so.7

и всё.
Да, параметр формата stat отличается.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 20:04 
for the record
тогда уж актуальный гнутый греп:
/usr/local/bin/grep -V                                                          
grep (GNU grep) 3.6

uname -op ; ldd /usr/local/bin/grep | awk '{print $3}' | xargs readlink -f | xargs stat -f "%z %N"      
FreeBSD amd64
59832 /usr/local/lib/libintl.so.8.2.0
653480 /usr/local/lib/libpcre.so.1.2.13
1880856 /lib/libc.so.7
126464 /lib/libthr.so.3

uname -op ; ldd /usr/local/bin/grep | awk '{print $3}' | xargs readlink -f | xargs stat -f "%z %N"|awk '{ SUM += $1 } END {print SUM}'
FreeBSD amd64
2720632

uname -op ; ldd /usr/local/bin/rg | awk '{print $3}' | xargs readlink -f | xargs stat -f "%z %N"|awk '{ SUM += $1 } END {print SUM}'
FreeBSD amd64
2838152


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 18:49 
Оргументы про 2мб вообще непонятны, более гигабайта непонятнозачемстолько исходников которые делают неизвестное. Я понимаю что дело в вере, но несектантов напрягает.
Вот нафига мне скрипта, которую надо компилить на суперкомпе с тоннами памяти ? На выбор куча намного легковеснее и приятнее на синтаксис альтернатив.
Насильное заражение старых проектов "этим" сильно портит имидж которого и так нет. Напрочь отбитые фанатики и отсутствие документации (тот сайт не работающий без жабаскрипта - не документация).
Генерация нового синтаксиса идет в минус любому езыку, посчитай сколько минусов набрал хруст.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 27-Ноя-21 09:30 
> Религиозный рационализм?

w> Почему именно наша компания ?
i> Было написано про адекватное руководство.

w> Ну ладно, что не так в этом куске кода ?
i> Он написан на rust.

w> Когда вы сможете выйти на работу ?
i> Когда уволите того кто написал эту гадость.

w> Пойдем, покажу твой кабинет.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено виндотролль , 28-Ноя-21 02:39 
Я тут как бы стебусь с дурачковатых расто-хейтеров, которые "исполинский бинарник" считают рациональным аргументом...

Что ж, дурачки есть как среди расто-хейтеров, так и расто-филов


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:28 
https://ru.wikipedia.org/wiki/Гипербола_(риторика)

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 17:20 
Если вы гиперболизируете, то не претендуйте на рациональность.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Ordu , 27-Ноя-21 06:54 
"риторика" -- читай "демагогия".

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено burjui , 03-Дек-21 21:01 
"Ordu" - читай "durO"

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:56 
Не, он их всех размножаемым хлебом ещё накормит.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 27-Ноя-21 07:17 
Кормит непереставая. "Размножаемый хлеб" наших дней - это свободное копирование - то, с чем борются копирасты.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 15:03 
Этот проект в сущности тонкая обертка над стандартными C библиотеками. Не очень понятно, зачем тут вообще понадобился раст.

$ ldd /bin/elfshaker
linux-vdso.so.1 (0x00007ffe18ea6000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f94a466f000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f94a464e000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f94a450a000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f94a4503000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f94a4337000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f94a4946000)


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 15:46 
> Этот проект в сущности тонкая обертка над стандартными C библиотеками.

Все гораздо хуже:


ldd /usr/bin/perl
linux_vdso.so.1 =>  (0x00007ffffffff000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000000801800000)
libm.so.6 => /lib64/libm.so.6 (0x0000000801c00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000000802000000)
libc.so.6 => /lib64/libc.so.6 (0x0000000802400000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000000802800000)
/lib64/ld-linux-x86-64.so.2 (0x0000000001021000)
libfreebl3.so => /lib64/libfreebl3.so (0x0000000802c00000)

Однозначно - заговор неосиляторов Великого Си!
> Не очень понятно, зачем тут вообще понадобился раст.
> $ ldd /bin/elfshaker
> linux-vdso.so.1 (0x00007ffe18ea6000)
> libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f94a466f000)
> libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f94a464e000)
> libm.so.6 => /usr/lib/libm.so.6 (0x00007f94a450a000)
> libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f94a4503000)
> libc.so.6 => /usr/lib/libc.so.6 (0x00007f94a4337000)
> /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f94a4946000)

Действительно, зачем использовать системное API и библиотеки, когда можно притащить кучу своих?


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 17:07 
Действительно хуже, если язык якобы системного программирования приходится сравнивать со скриптовым языком для обработки текстов.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 17:14 
>> Этот проект в сущности тонкая обертка над стандартными C библиотеками.
>> в качестве "подтверждения" приводятся якобы зависимости, при этом скромно игнорируется вариант с полностью стат. сборкой
> Действительно хуже, если язык якобы системного программирования приходится сравнивать со скриптовым языком для обработки текстов.

Хуже очередного опеннетного Ыксперта, переобувающегося в прыжке? Вряд ли.



"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 17:19 
Действительно, судя по ldd любой сишной программы, язык якобы системного программирования С ничем не отличается от скриптового языка обработки текстов Perl.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Анонн , 26-Ноя-21 17:24 
Хехе, вот возьми и перепиши! А то только на опеньке языком трепать можешь...

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 27-Ноя-21 18:10 
Рассматриваю и такой вариант.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 11:15 
Забавно видеть, как растохейтеры в комментариях к другим новостям уверяли, что на расте нет ни одного полезного проекта, а значит раст плохой и не нужен. Здесь же пишут, что проект хороший, но плохо, что на расте. Circular reasoning, не иначе.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено AHOHuM , 26-Ноя-21 11:20 
Да по большому счету всем же наверняка пофигу что за ЯП - вызывает раздражение только мания все переписать также как есть, но только на другом ЯП...
И ладно бы переписывали прототип на что-то по серьезнее, а то с одного нормального на другой нормальный...

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 11:36 
> вызывает раздражение только мания все переписать также как есть

Это уже сто лет с нами - BSDшники (особенно OpenBSD) очень любят все переписывать, попутно урезая функциональность (якобы "ради безопасности", по факту "лень пилить, мне еще 100500 проектов переписать надо").


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:00 
Они не лезут в чужие проекты с предложениями переписать все на другоя языке. Берут и сами делают то что им нужно.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 17:23 
И чем это делает их лучше?

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено бугага , 26-Ноя-21 22:32 
Как минимум тем что не лезут ко всем со своим навязыванием. Не лезут с рекламой что они лутше всего и всех и хосподь жги.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 19:50 
> Не лезут с рекламой что они лутше всего и всех и хосподь жги.

Наверное, вы живёте в альтернативной вселенной, где нет Тео де Раадта и Ко, задолбавших всех своим самопиаром "у вас проги дырявые, а у нас БЕЗОПАСНОСТЬ!".


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 01:20 
Всем.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 19:50 
Или всё-таки ничем?

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:36 
>> вызывает раздражение только мания все переписать также как есть
> Это уже сто лет с нами - BSDшники (особенно OpenBSD) очень любят все переписывать

Угу-угу, переписали исконно-перепончатое sudo в doas и до кучи весь корутильс ...

> попутно урезая функциональность (якобы "ради безопасности", по факту
> "лень пилить, мне еще 100500 проектов переписать надо").

И то ли дело  "приближение прогресса и светлого будущего" а ля
HAL => DeviceKit => disks => udisks => udisks2 => storaged => udisks2,


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:44 
doass

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:48 
> doass

Ваганович, ты?



"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 21:41 
> исконно-перепончатое sudo

ты уверен? загугли, что ли, неуч, кто начинал его писать...


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 22:22 
>> исконно-перепончатое sudo
> ты уверен? загугли, что ли, неуч, кто начинал его писать...

Загугли "сарказм" и "читать предложения целиком", уч ты очередной анонимный.
Или ты опустил "и до кучи весь корутильс ..." потому что считаешь, что утилиты там - "изобрели" пингвинята-гнутики?



"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 19:51 
А потом пришёл Тео и изобрёл их сам, лично. Раньше гнутиков, конечно. Но уже потом.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 20:19 
> А потом пришёл Тео и изобрёл их сам, лично. Раньше гнутиков, конечно.
> Но уже потом.

Казалось бы, причем тут Тео?

https://github.com/dank101/4.2BSD/blob/master/bin/dd.c
> static char *sccsid = "@(#)dd.c    4.3 (Berkeley) 4/29/83";


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 11:38 
> Забавно видеть, как растохейтеры в комментариях к другим новостям уверяли, что на расте нет ни одного полезного проекта, а значит раст плохой и не нужен.

Ну, почти все полезные проекты на сях ведут свою историю из дремучих годов.
В последние лет 10 _новых_ полезных проектов на сях действительно мало.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 11:52 
Полезность раста хорошо демонстрируется тем фактом, что в качестве примера для сжатия бинарника выбран gcc.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 12:26 
Точнее clang, суть не меняет.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 12:46 
А ещё точнее — LLVM. Действительно, причём тут rust?

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:19 
>LLVM is written in C++

Не пугай так больше, а то решил было что его уже переписали на расте.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 19:55 
>LLVM is written in C++
> на расте

Sort of.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:47 
> Точнее clang, суть не меняет.

Не меняет, но уровень очередного "эксперта" тем не менее - палит.



"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 14:55 
И не говори, сам в ужасе от своей безграмотности.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:41 
> Полезность раста хорошо демонстрируется тем фактом, что в качестве примера для сжатия бинарника выбран gcc.

Сам что-то придумал, сам что-то оспорил, сам гордо надул щечки - настоящий опеннетный Анти-Расто-Воен!



"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:50 
Пока ты вымучивал свой пафосный комментарий, выше пояснили, что Раст написан на C++. Nuf said.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 15:05 
> Пока ты вымучивал свой пафосный комментарий, выше пояснили, что Раст написан на C++. Nuf said.
> Раст написан на C++.

Действительно, nuff said.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 15:43 
Разве Rust можно собрать чисто из исходников без С++ зависимостей?
Растаманам сначала нужно самим переписать свой язык на Rust, прежде чем требовать этого от других.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 15:56 
> Разве Rust можно собрать чисто из исходников без С++ зависимостей?

Можно, разрешаю!
https://github.com/rust-lang/rust
> Rust 97.9%  Python 0.4%  JavaScript 0.3%

--
> Растаманам сначала нужно самим переписать свой язык на Rust, прежде чем требовать этого от других.

"Сам что-то придумал, сам что-то оспорил, сам гордо надул щечки - настоящий опеннетный Анти-Расто-Воен!" (c)


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 17:00 
Про внешние зависимости ты конечно же забыл. llvm на расте уже переписал, Анти-Анти-Расто-Воен, или ты силен только в навыке спамить проекты issues "Rewrite in Rust"?

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 17:08 
> Про внешние зависимости ты конечно же забыл. llvm на расте уже переписал,

Эксперды опеннета в своей естесвенной среде обитания ...
https://rustc-dev-guide.rust-lang.org/backend/codegen.html
> rustc uses LLVM for code generation; there is also support for Cranelift

https://github.com/bjorn3/rustc_codegen_cranelift
>  features = ["std", "read_core", "write", "coff", "elf", "macho", "pe"]
> Rust 95.8%  Shell 4.2%
> или ты силен только в навыке спамить проекты issues "Rewrite in Rust"?

И опять
"Сам что-то придумал, сам что-то оспорил, сам гордо надул щечки - настоящий опеннетный Анти-Расто-Воен!" (c)
Впрочем, ничего иного от местных "Экспердов" и не ожидалось.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 30-Янв-22 03:22 
Мда, точно сам что-то придумал, сам что-то оспорил, сам гордо надул щечки - настоящий опеннетный Расто-Воен!

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Иваня , 26-Ноя-21 11:17 
Видел ранее в трендах гитхаба, но не придал этому проекту значения, думал очередная мало кому нужная поделка на расте, но оказывается полезная тулза. Добавил в закладки.🤥

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 11:50 
пиши мемуары, с удовольствием прочитаем

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 12:09 
держи в курсе

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 12:18 
Шокер для эльфов?

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 12:32 
Шейкер. Чтобы лучше засыпали.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 16:40 
Шейкером эльфа не пронять. Только хороший разряд!

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено burjui , 03-Дек-21 21:03 
Эльфотряс

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено axhack , 26-Ноя-21 12:40 
Вот же будет весело и не скучно однажды поддерживать rust-legacy код.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:47 
Znext поколение будет переписывать его на том новом, модном для них, ЯП.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 19:53 
> Вот же будет весело и не скучно однажды поддерживать rust-legacy код.

Вряд ли это будет чем-то хуже, чем legacy c++.
Синтаксис у них одинаково марсианский.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено BratishkaErik , 26-Ноя-21 12:45 
> В частности, результаты двух тысяч пересборок компилятора Clang (каждая пересборка отражает изменение после каждого коммита) могут быть сохранены в одном pack-файле, размером 100 МБ, что в 4000 раз меньше, чем потребовалось бы при раздельном хранении.

Для Gentoo будет круто


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:41 
Интересно, зачем тебе доступ к пре-предыдущим emerge'ам? Ну к предыдущему ещё можно понять, чтоб откатить систему, если обновление сломало.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Ordu , 26-Ноя-21 14:50 
Это больше для разработки полезно. Тебе баг-репорт влетает, ты пишешь тест на баг, и тебе надо найти коммит, который этот баг привнёс, и тут ты запускаешь git bisect, и оставляешь его работать на часы или даже сутки. Но, внезапно у тебя появляется сия тулза, и bisect выполняется на порядки быстрее.

В дженте не очень понятно как это использовать. Ядро не умеет запускать из такого формата, ему подавай именно elf. Значит, чтобы запустить нужную версию компилятора, её надо будет извлечь сначала и распаковать в реальный файл. И всё это ради пары-тройки версий бинаря? Причём существенно отличающихся версий, потому что они отличаются второй, а может даже и первой цифрой версии, а значит и не сильно упаковывающихся. Проще чутка пожертвовать жёстким диском, и хранить в распакованном виде, дополнительные сложности просто не стоят того.


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено InuYasha , 26-Ноя-21 13:04 
были б в ELF-файлах хотя бы подобные MZ-записям...

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:31 
"This program cannot be run in DOS mode"?

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено InuYasha , 26-Ноя-21 19:38 
зачёт )
Но я больше про версии, ресурсы, подписи, манифесты.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 19:57 
В общем, всё, что пришлось запихивать в бинарники из-за отсутствия в винде FHS и пакетных менеджеров.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:25 
Зачем миру open source контроль версий бинарников? Исходники рулят.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:35 
А, ну да, растаманы сами себе в помощь делают. А то же Rust нцать часов собирается.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:45 
> Зачем миру open source контроль версий бинарников? Исходники рулят.

Местным теоретикам-WSL-щикам и домохозякам с бубунтой - наверное действительно незачем.



"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 13:51 
Я не WеSеLщик, я практически собираю из исходников.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Хру , 26-Ноя-21 15:51 
WeSelьчак-У :)

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Crazy Alex , 26-Ноя-21 18:48 
Основная идея вполне внятно описана в новости. Чтобы быстро через bisect найти версию софта, в которой появился баг. В приличной разработке, где каждый коммит идёт через CI и, собственно, единственная проблема - хранение промежуточных бинарей, это будет адски полезной и почти ничего не стоящей фиче.

Второе - это собственно прои разработке скачки между версиями без необходимости всё пересобирать.

Но, конечно, язык разработки и лицензия не радуют совершенно


"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Анонус , 26-Ноя-21 16:06 
Оно только для хранения пригодно? А в рантайме нельзя использовать? Ну типа для мультиплатформенных или мультиверсионных бинарей? Например x86 и x64 варианты в один файл упихать.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 17:24 
https://www.opennet.me/opennews/art.shtml?num=23948

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Crazy Alex , 26-Ноя-21 18:49 
упаковать, навреное, получится, но смысла нет - сжатия, считай, не будет, так как код совершенно разный

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 26-Ноя-21 20:17 
Для других бинарных форматов и вообще генерик бинарников (через xdelta там) было бы неплохо что-то подобное

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 27-Ноя-21 18:37 
что только не придумают, чтобы svn не использовать

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 27-Ноя-21 20:11 
А кстати анонче прав. Эта гадость переваривала любые помойки.

"Проект elfshaker развивает систему контроля версий для ELF-ф..."
Отправлено Аноним , 28-Ноя-21 05:36 
Расходимся посоны. Растаманы нас жестоко на#бали, впрочем как обычно. Эта хрень заточена под один узкоспециальный кейс, представленный их единственным примером применения manyclangs.

Бинарный патчи? Ха! Якобы бинарник clang хранится в pack-файле в виде множества .o-файлов и дедупликация происходит на уровне отдельных .o-файлов путем сортировки по размеру файла! После извлечения из архива множества объектных файлов бинарник еще нужно слинковать. И за 2-4 секунды этого не сделаешь, речь идет только об извлечении файлов из архива, и то на хорошем железе.

Компилировать проект в объектники для этой утилиты нужно со специальным, не меняющимся набором флагов, чтобы было как можно меньше меняющихся между сборками файлов. Без этого весь этот рекорд сжатия идет прахом. Кстати, pack-файл за последний месяц имеет размер не 100 Мб, а 205 Мб.

Для произвольно взятого множеста бинарных релизов эта хреновина практически бесполезна. Вместо нее можно взять обычный архиватор с хорошим сжатием.

Аналог данного проект можно написать на баше. Для измененных файлов использовать xdelta, а остальное сжать обычным zstd, который она к слову и использует. Или поискать готовую утилиту дедупликации мелких файлов. Или вообще использовать обычную VCS с поддержкой сжатия бинарников, с несравнимо большими возможностями!

Вердикт: не нужно. Только если вы тестер clang или нужно версионировать папку с множеством редко меняющихся файлов, да и то можно сделать это другими, более привычными способами.