commit -m "better"
3.76K subscribers
1.29K photos
176 videos
3 files
2.75K links
just random thoughts
Download Telegram
#llvmweekly

https://github.com/llvm/llvm-project/commit/d68c732473a1

"flang/lib/Parser/Fortran-parsers.cpp:
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:47.31 -> 0:41.68
Maximum resident set size (kbytes): 2062140 -> 1745584

flang/lib/Lower/Bridge.cpp:
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:19.16 -> 0:45.86
Maximum resident set size (kbytes): 3849144 -> 2443476

flang/lib/Lower/PFTBuilder.cpp
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:29.24 -> 1:00.99
Maximum resident set size (kbytes): 4218368 -> 2923128

flang/lib/Lower/Allocatable.cpp
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:53.03 -> 0:22.50
Maximum resident set size (kbytes): 3092840 -> 2116908

flang/lib/Semantics/Semantics.cpp
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:18.75 -> 1:00.20
Maximum resident set size (kbytes): 3527744 -> 2545308"

TL;DR - прямо ооочень значимое сокращение времен сборки flang, с использованием precompiled headers, даже неожиданно. Правда, это тщательно выбранные файлы, не общее время, но, тем не менее.
👍8🆒3🔥21
#llvmweekly (Остапа понесло, ага)

https://github.com/llvm/llvm-project/commit/d1fd97737e90

А вот если кому-то интересно, как запилить поддержку санитайзера под пока неподдерживаемую OS.

В целом, копируешь куски реализации из Linux, + немного #protaskivanie по обертке релеватных системных вызовов, + код для определения раскладки замапленых участков памяти процессом.

Муторно, но не очень сложно.

И взгляд с другой стороны - https://keithp.com/blogs/sanitizer-fun/, как поддержать неизвестную libc в санитайзерах, и с чем пришлось столкнуться.
👍84👌2🆒1
commit -m "better"
Никогда #stal/#IX не был так свеж!
"Я отыграл ваше седло, потом вашу лошадь, потом свое седло, потом свою лошадь, потом опять проиграл. Короче говоря, я снова поймал ваше седло, потом свое. Вот как обстоит дело. Это был великолепный ход, и я остановился на нем"

Все, что выше - репозитории не проверяют собираемость своих пакетов относительно самых свежих версий своих же пакетов, поэтому в этой гонке можно остановиться.
🔥387🆒4👎1
Меня тут спрашивают, чего я не пишу, что guix переехал на codeberg - https://guix.gnu.org/blog/2025/migrating-to-codeberg/

Вот, пишу, как только словил проблему с этим codeberg.org (обнаружил я это тем, что у меня встал процесс обновления gumbo-parser, https://t.me/itpgchannel/1349).

Не надо, не надо, пользоваться васянской #infra, не будь как guix, будь, хотя бы, как mozilla (https://t.me/itpgchannel/3005).

(Хотя, если сравнить с savannah http://savannah.gnu.org/, то codeberg вполне себе ничего)
🤡17👍93😁1
https://www.opennet.ru/opennews/art.shtml?num=63232

"Выпуск дистрибутива Альт Рабочая станция К 11.0

Свободно использовать загруженную версию могут только физические лица, в том числе – индивидуальные предприниматели. Коммерческие и государственные организации могут скачивать и тестировать дистрибутив, но для постоянной работы в корпоративной инфраструктуре юридическим лицам необходимо приобретать лицензии или заключать лицензионные договоры в письменной форме"
😁27🍌7👍4🤣4💩3🐳2🙈1💅1
Создатель Doom: мы могли бы прекрасно работать на старом «железе», если бы не ленивые программисты

Известный разработчик игр Джон Кармак считает, что мы не так уж сильно нуждаемся в продвинутых чипах, как принято думать — просто это экономически выгоднее. Так он прокомментировал мысленный эксперимент про «CPU-апокалипсис» в Х.

Основатель студии id Software и экс-CTO Oculus утверждает, что дело не в ограниченности аппаратного обеспечения, а в неэффективности программного.

«Если бы приоритет отдавался оптимизации ПО, то работать на устаревшем оборудовании могло бы больше пользователей, чем многим может показаться», — написал Кармак. И добавил, что если бы на рынок перестали поступать новые чипы, то под влиянием действующих на нём сил произошло бы колоссальное повышение эффективности софта.

В качестве решения он предлагает кардинально поменять архитектуру современных программ: «Переписать все продукты на базе интерпретируемых микросервисов в монолитные приложения на нативном коде». По сути, это означает переход от современных подходов в разработке к более эффективным практикам прошлых эпох вычислительной техники. Программист признал, что у подобных изменений есть свои минусы, и значительные: «Новые инновационные продукты станут гораздо более редкими без сверхдешёвых и масштабируемых вычислительных мощностей», — полагает он.
👍378🤡6🤔1💯1
😁81👍6🤣5👀4🫡32🆒1
⚡️Компания Nebius, основанная израильским миллиардером Аркадием Воложем, сооснователем «Яндекса», получила от Управления инноваций Израиля грант в размере полмиллиарда шекелей ($135 млн) на создание израильского суперкомпьютера.
________
🎙Будь в курсе событий
🇮🇱
Подпишись на «Голос Израиля»
😁27😱20👍16🔥10💩32🥰1🐳1
commit -m "better"
В общем, после нескольких лет попыток придумать что-то не столь всратое, я плюнул, и переписал runsvdir - это часть runit, которая отвечает именно за управление деревом процессов.
#herobora #pid1

В итоге, мой #runsvdir у меня прижился, и, как понятное следствие, я окончательно отказался от ошметков #runit:

* https://github.com/pg83/ix/blob/main/pkgs/bin/ix/init/ewontfix/main.c - свой элементарный init.

* https://github.com/pg83/ix/blob/main/pkgs/bin/ix/init/rc/ix.sh#L9-L11 - клей между моим init, и схемой загрузки "как в runit", чтобы можно было заменять туда-сюда.

* https://github.com/pg83/ix/blob/main/pkgs/bin/ix/init/halt/main.c https://github.com/pg83/ix/blob/main/pkgs/bin/ix/init/reboot/main.c - реализации halt/reboot, они, как ни странно, тоже часть init. Если такой способ (без graceful shutdown) кажется странным - читаем мои заметки про #reboot, https://t.me/itpgchannel/1572.

* https://github.com/pg83/ix/blob/main/pkgs/bin/ix/pid1/m.cpp#L157-L175 - пришлось перенести в runsvdir код, который убивает orphane процессы, в runit у меня это был cron job на shell (https://github.com/pg83/ix/blob/main/pkgs/bin/sched/stale/procs/scripts/staleprocs.sh), но в новой схеме так не получается, потому что сервисы сразу начинают наследоваться от pid 1, а не от pid > 1, поэтому инвариант "все, что подвисло к pid 1, но не runsvdir - мусор" перестал работать.

Так что теперь у меня официально полностью велосипедный in house init!

С точки зрения скриптов инициализации ничего не поменялось, ага.
👍11🔥74🆒3
Так как сабж запретил uBlock, то я подумываю съехать на какой-нибудь другой (chromium-based) browser.

Пока мне больше всех нравится https://brave.com/, но, возможно, я что-то упускаю?
💩236👍4🤔2🆒2💊1
commit -m "better"
Поэтому получается так, что дистростроители прямо очень сильно не любят Rust:
Продолжаем тему "почему дистростроители не любят Rust"

https://gitlab.archlinux.org/archlinux/packaging/packages/mesa/-/blob/main/PKGBUILD?ref_type=heads#L103-144

Вот так, например, приходится приседать в Arch, чтобы доставить до сраной #meson сборки #mesa (которая, сама по себе, сошла с ума, и решила запилить сборку Rust без cargo, и его механизмов вендоринга) зависимости для компилятора шейдеров #NVK (драйвер для Nvidia vulkan).

Особенно автору всего этого добра доставляет копипастить версии руками, ага.

Мне еще это только предстоит, а я уже ненавижу этот процесс тихой ненавистью.
😁9🤡8🐳5😭4👍3💯2👀1🦄1
Forwarded from javawatch
ChatGPT достигла уровня человека! Я попросил ее написать пример использования модулей в C++23 через cmake, и у нее не получилось. У меня тоже не получилось. Каких высот мы достигли!
😁98🐳10💯8👍7🤣4🆒21
👍16😁12🤡10🤔3🆒1
Forwarded from /g/'s Tech Memes (damr)
😁63🔥5🆒3👍2🤡1🤣1
🤔105💩3🐳3🆒1
👍22💯8😁43🔥2🆒1