С/С++ Portal | Программирование


Kanal geosi va tili: Rossiya, Ruscha


Присоединяйтесь к нашему каналу и погрузитесь в мир для C/C++-разработчика
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3Foc4d

Зарегистрирован в РКН
Связанные каналы  |  Похожие каналы

Kanal geosi va tili
Rossiya, Ruscha
Statistika
Postlar filtri


«Compiling to Assembly from Scratch» Владимира Келешева.

https://keleshev.com/compiling-to-assembly-from-scratch/

«Эта книга даст вам достаточно знаний по теории компиляторов и программированию на ассемблере, чтобы начать работать самостоятельно.

В ней используется подмножество TypeScript, которое читается почти как псевдокод, а целевой архитектурой выступает 32-битный набор инструкций ARM.»

👉 @Cpportal


Линус Торвальдс исправил баг в ядре Linux, который ИИ несколько раз называл невозможным для решения.

Сам Торвальдс сейчас довольно редко пишет патчи для ядра вручную. Но в этот раз написал.

Проблема была в графическом драйвере Intel Xe. На определённом железе из-за неё дисплейный менеджер бесконечно перезапускался снова и снова.

Для поиска причины Торвальдс подключил ИИ.

По его словам

> «Это была отладочная сессия из ада, и ИИ очень сильно помог, взяв на себя большую часть рутинной работы».

Но дальше стало интереснее.

> «ИИ несколько раз прямо заявлял, что это невозможно и нерешаемо и что нам стоит просто написать отчёт об этом».

Торвальдс этот ответ не принял.

> «Подозреваю, что эти штуки обучали люди, которые, возможно, не настолько упрямы, как я».

Он продолжил давить дальше. ИИ при этом продолжал работать, добавлял отладочный код и каждый раз анализировал новые данные, когда Торвальдс не соглашался с выводом.

В итоге понадобилось 24 патча и 18 загрузок ядра.

А само исправление, когда причину наконец нашли, оказалось одной строкой. round_up() нужно было заменить на round_down().

Торвальдс отдельно отметил вклад ИИ и даже позволил ему самому написать финальное сообщение к коммиту. 🚬

https://www.phoronix.com/news/Linus-Torvalds-Debug-AI

👉 @Cpportal


Как купить Gemini Pro на 1.5 года за 4.99$??

Топовая нейронка для создания видео, картинок, написания кода и работы. Сейчас цена 4.99$ вместо 360$ на 1.5 года (схема рабочая, всё легально оформляется)

✅Nano Banana 2 PRO (картинки для ТТ и YT)
✅Видео генерация (видео, нарезки, мувики)
✅Gemini AI Pro (для кодеров)
✅Доступ к AntiGravity
✅ 5 ТБ облака в Google One
✅Deep Research (для курсачей за 5 минут)

Продаётся в Тайнике, схему скоро прикроют — у кого куплено, всё останется работать. У шопа 3000+ покупок и 300+ отзывов, кстати бекают деньги и делают замены.


Тайник Store
Тайник Store
Тайник Store


Canonical финансирует проект по автоматическому переводу C-кода на Rust для Ubuntu Linux.

Это трёхлетняя совместная работа с Бристольским университетом и UK Research and Innovation.

И это не эксперимент в духе «вот мой C-код, перепиши его на Rust и ничего не сломай».

Процесс состоит из четырёх этапов — кодовую базу разбивают на части с учётом зависимостей, затем переводят с помощью моделей, обученных на реальных примерах миграции C → Rust, после чего проверяют через фаззинг и формальную эквивалентность, а найденные расхождения пытаются автоматически исправлять с помощью символьного восстановления программ.

В качестве первых целей выбрали AppArmor и snap-confine — критически важные для безопасности компоненты, которые входят в каждую установку Ubuntu.

Выбор интересный. Автоматически переписать какую-нибудь вспомогательную библиотеку — одно. Начать сразу с критичных компонентов — совсем другое.

Пока это всё ещё исследовательский проект. Три года — большой срок, а диссертация сама по себе ещё не означает готовый продукт.

Но если их система проверки действительно окажется надёжной, такой подход вполне может стать способом массово переносить Linux-проекты с C на Rust. По крайней мере внутри Ubuntu.

👉 @Cpportal


HyperLogLog позволяет оценивать количество уникальных элементов среди миллиардов записей, используя всего несколько килобайт памяти.

Он хеширует каждый элемент, отслеживает самые длинные последовательности ведущих нулей и по этим наблюдениям оценивает общее число уникальных значений.

Минимальный расход памяти при удивительно высокой точности.

👉 @Cpportal


Вот другой лучший сайт, чтобы изучить Linux с нуля 😏

https://labex.io/courses/linux-for-noobs

👉 @Cpportal


Shell Gym – интерактивный тренажёр командной строки Linux, созданный на основе многолетнего опыта преподавания. По сути, автор выделил ядро iximiuz Labs и превратил его в отдельный демон.

https://github.com/iximiuz/shellgym

👉 @Cpportal


Linux может заменять собственные машинные инструкции на версии, оптимизированные под конкретный процессор, без необходимости собирать отдельное ядро.

Он хранит исходную инструкцию, её замену и информацию о том, какая возможность процессора для неё требуется.

Затем уже во время работы Linux изменяет код самого ядра.

А макрос, который делает всё это возможным, выглядит совершенно безумно.

👉 @Cpportal


Эта функция каким-то образом вызывает сама себя, ни разу не обращаясь к собственному имени.

Это реализация идеи Y-комбинатора на C с помощью указателей на функции и структуры, которая ссылается сама на себя.

Функция вызывает s->fn(s, n - 1) вместо прямого вызова fact().

Это пример того, как рекурсия может существовать без прямого упоминания имени функции внутри её собственного тела.

👉 @Cpportal


Я разбирался с настройкой SQLite у клиента и наткнулся на вещь, которой не ожидал.

База работала сразу на нескольких машинах, но у SQLite всё равно оставался только один процесс записи.

Потом я нашёл LiteFS.

Он не пытается убрать модель SQLite с одним писателем. Вместо этого одна машина выбирается основной через распределённую аренду, а все остальные становятся репликами.

По сути, решение оказалось таким: просто гарантировать, что запись всегда идёт только с одной машины.

И каким-то образом это делает всю архитектуру намного проще.

Сам код продления аренды выглядит примерно так:


Парни с нуля реализовали microgpt Карпати на чистом C.

https://github.com/vixhal-baraiya/microgpt-c

Скорость:

> 6,9 млн токенов/с на Ryzen 5 5600H
> 10,1 млн токенов/с на Apple M5 Pro

Для ускорения использовали вручную написанные ядра AVX2 и NEON, хранение весов по столбцам, которое избавляет от горизонтальных редукций, заранее вычисленную таблицу префиксов для пар (token, pos) и быструю аппроксимацию экспоненты Шраудольфа.

👉 @Cpportal


Возможно, это самый безумный компилятор C, который я вообще когда-либо видел.

https://github.com/xoreaxeaxeax/movfuscator

Он превращает C-код в тьюринг-полный ассемблер, состоящий только из одной инструкции — MOV.

Разбирать вредоносное ПО, скомпилированное этой штукой, было бы настоящим кошмаром.

👉 @Cpportal


Algorithms for Modern Hardware — тот самый материал, который стоит всегда держать под рукой.

https://en.algorithmica.org/hpc/

👉 @Cpportal


Кен Перлин хотел, чтобы компьютерная графика выглядела менее искусственно, когда работал над «Троном».

Поэтому он создал шум Перлина — алгоритм, который добавляет CGI естественно выглядящие неровности и несовершенства.

Позже он сам улучшил алгоритм, а эталонная реализация до сих пор доступна на его странице преподавателя Нью-Йоркского университета.

👉 @Cpportal


Я сравнил два способа собрать строку размером 1 МБ.

Первый — вызывать strcat() в цикле.
Второй — сразу записывать данные в заранее выделенный буфер.

На первый взгляд оба варианта делают одно и то же — просто дописывают строку.

Но у первого сложность O(n²).

👉 @Cpportal


Competitive Programmer’s Handbook — руководство по спортивному программированию.

Книга рассчитана на студентов, которые хотят изучить алгоритмы и, возможно, готовиться к Международной олимпиаде по информатике IOI или Международному студенческому чемпионату по программированию ICPC.

PDF доступен бесплатно.

https://cses.fi/book/book.pdf

👉 @Cpportal


Каждый Ethernet-коммутатор использует протокол, который Радия Перлман разработала в 1985 году.

Самое необычное — её работа о Spanning Tree Protocol начинается не с обычной аннотации, а со стихотворения.

Она написала её, работая в DEC, и само стихотворение фактически описывает принцип работы алгоритма.

👉 @Cpportal


Мой основной инструмент для визуализации регулярных выражений: https://regex-vis.com

👉 @Cpportal


Самый распространённый способ, которым разработчики случайно убивают пропускную способность, — попытка слишком хитро использовать безветвленное программирование.

Если ветвление предсказывается правильно в 99% случаев, процессор выполняет его практически бесплатно.

А когда вы принудительно заменяете ветвление на cmov, чтобы его избежать, исполнительным блокам приходится вычислять обе стороны и ждать разрешения зависимостей по данным.

Вы ничего не оптимизировали. Вы просто вручную добавили аппаратную задержку.

👉 @Cpportal


Каждый традиционный BIOS на x86 загружает загрузочный сектор по одному и тому же адресу: 0x7C00.

Бесплатная книга 539kernel начинается именно с этой маленькой детали и шаг за шагом строит вокруг неё целую операционную систему.

Глава за главой ты проходишь путь от самой первой инструкции до полноценного работающего ядра.

Весь проект открыт на GitHub.

http://539kernel.com/

👉 @Cpportal

20 ta oxirgi post ko‘rsatilgan.