Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
3019 - Telegram Web
Telegram Web
https://www.tomshardware.com/pc-components/gpus/u-s-inks-bill-to-force-geo-tracking-tech-for-gpus-and-servers-high-end-gaming-gpus-also-subject-to-tracking

U.S. inks bill to force geo-tracking tech for high-end gaming and AI GPUs

Senator Tom Cotton's legislation seeks to "prevent advanced American chips from falling into the hands of adversaries like Communist China"

Мне вот интересно, оно без интернета (то есть, без регулярного получения от сервера разрешения на продолжение работы) будет работать? Если да - то кто мне мешает положить карточку в клетку Фарадея, или в коробочку из фольги?

(предложка)
🤡18👍4🆒3🐳2💅1
#llvmweekly

https://discourse.llvm.org/t/rfc-intra-procedural-lifetime-analysis-in-clang/86291

"This analysis draws inspiration from Rust’s Polonius borrow checker. While adapted for C++'s semantics (e.g., handling opaque calls, no enforced exclusivity, configurable strictness), its internal model still uses concepts like Loans and Origins which are analogous to formulation of lifetime in Rust’s Polonius.

This notion of a Origin/Loans serves a role closely related to the lifewww.tgoop.com/origin tracking in Polonius, providing a conceptual bridge. This proposal develops the necessary CFG-based dataflow infrastructure that could also support more explicit, Rust-style lifetime systems if they were introduced to Clang"

TL;DR - в clang уже есть [[clang::lifetimebound]], его предлагается расширять так, чтобы он мог работать между вызовами функций, используя идеи из Rust borrow checker.

КМК, это хороший путь для С++ - постепенно учиться проверять время жизни объектов все в большем и большем числе случаев, с разметкой времен жизни там, где это необходимо (а может, потом, и всегда).

Это вам не сраные профили безопастности от Страуструпа (https://www.tgoop.com/itpgchannel/2763), ага.
👍174🔥3🌭1
commit -m "better"
Из-за боязни проблем с ABI почти весь современный код С++(и его стандартная библиотека) живет в header-only режиме. Это отдельная, очень больная, тема, потому что скорость разработки складывается из отдельных кирпичиков, и скорость компиляции кода один из них.
#llvmweekly #cplpl_doomed

https://discourse.llvm.org/t/factoid-each-class-template-instantiation-costs-1kib/86189

TL;DR - каждый раз, когда вы инстанциируете шаблон, в мире умирает котик, вы тратите 1K памяти, и это очень много, потому что header only библиотеки:

"Maybe what this all points to is that header-only library evolution is a dead end when it comes to compile time, and that if you want to have fast compiles, the old ways, i.e. forward declarations, pimpl patterns, and other forms of implementation hiding, are still relevant if you care about compile time, even in a modular world"

Очень пересекается с цитатой из https://www.tgoop.com/itpgchannel/22, 100500 раз писал, и буду продолжать писать, что избыточная мономорфизация/inline - зло, не надо бояться virtual method call, pimpl, и вот это вот все.

И это коллега пишет только про время и потребление ресурсов компилятором, и не упоминает того, что избыточно встроенный код еще и медленнее может быть, потому что плохо использует кеши процессора (например, https://www.tgoop.com/itpgchannel/1547).

UPD: про pimpl вот еще ссылка - https://github.com/llvm/llvm-project/commit/bb1765179e1f, пример того, как сам LLVM у себя выпиливает излишнюю мономорфизацию.
👍14🤔5🔥31
(сорян, у меня много #llvmweekly, я их с месяц не читал, там много накопилось интересного)

https://discourse.llvm.org/t/improving-the-reproducibility-of-linker-benchmarking/86057

"The idea is to use the Nix project to build the projects with a custom linker wrapper that collects the reproducers. Nix builds are (at least theoretically) reproducible and all projects are built in a fairly uniform way which makes it fairly easy to inject the linker wrapper into any project without knowing project-specific details. Nix also supports cross compilation so the same machine can be used to build reproducers for all architectures (but there are some bugs which mean that at the moment not all projects can be cross compiled and not all projects end up using the linker wrapper). And we can upgrade project versions by using a new version of Nixpkgs (Nix’s “ports tree”)"

TL;DR - давайте возьмем reproducible Nix + наш враппер над LLD, чтобы уметь собирать статистику по временам работы LLD при сборке произвольно большого набора OSS проектов.

Очень, очень, хорошая и плодотворная идея.
👍11🔥7🆒52🤔1
#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, даже неожиданно. Правда, это тщательно выбранные файлы, не общее время, но, тем не менее.
👍9🆒2🔥1
#llvmweekly (Остапа понесло, ага)

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

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

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

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

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

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

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

Не надо, не надо, пользоваться васянской #infra, не будь как guix, будь, хотя бы, как mozilla (https://www.tgoop.com/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
Forwarded from ITc | новости
Создатель 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

В итоге, мой #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://www.tgoop.com/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😁11🤡10🤔3🆒1
2025/07/14 12:34:21
Back to Top
HTML Embed Code: