Новости

Значительные события: релизы, анонсы компаний, RFC, инженерные события вокруг Rust.

02.05.2024Вышел Rust 1.78.0: пространство атрибутов #[diagnostic]blog.rust-lang.org

В Rust 1.78.0 появилось пространство атрибутов #[diagnostic] для влияния на сообщения компилятора. Это подсказки: компилятор не обязан их использовать, а незнакомый атрибут не считается ошибкой. Первый поддерживаемый атрибут — #[diagnostic::on_unimplemented] для трейтов.

30.04.2024Redox: улучшения futex — абсолютные таймауты и исправленияredox-os.org

4lDO2 улучшил реализацию futex в ядре и relibc: таймауты стали абсолютными, а не относительными, и исправлена ошибка, когда copy-on-write целевой памяти не давал futex пробудиться. Также устранена паника ядра, вызывавшая цикл страничных ошибок и перезапуск системы.

30.04.2024Redox: заработали USB-клавиатура и мышьredox-os.org

Jeremy переработал драйвер USB HID, и USB-устройства ввода (клавиатура и мышь) заработали. Драйвер хост-контроллера пока опрашивает устройства (небольшие накладные расходы), работа над прерываниями продолжается; USB-хабы поддерживаются слабо.

07.04.2024Принят RFC: блоки gen — генераторы, итерируемые через forgithub.com

Принят RFC, который резервирует в редакции 2024 ключевое слово gen и добавляет в язык блоки gen { .. }. Они производят значения, которые можно перебирать через for — как async-блоки производят значения, доступные через .await.

30.03.2024Redox: аллокатор кадров O(1) снизил накладные расходы памяти с 35% до 0.9%redox-os.org

4lDO2 заменил buddy-аллокатор менеджера памяти на аллокатор кадров на связном списке со сложностью O(1). Глобальные накладные расходы на выделение памяти упали с 35% до 0.9%, а накладные расходы при загрузке — на 95%.

30.03.2024Redox: портирован Apache HTTP Serverredox-os.org

Chocimier портировал Apache HTTP Server настолько, что он способен отдавать страницы через localhost. Работа ещё не завершена, но это важный первый шаг.

30.03.2024Redox: завершена миграция системных компонентов на libredoxredox-os.org

Библиотека libredox — часть стратегии стабильного ABI Redox: она снижает влияние ломающих изменений и позволяет быстрее развивать ядро. 4lDO2 завершил перенос всех системных компонентов с менее стабильного крейта redox_syscall на libredox.

21.03.2024Вышел Rust 1.77.0: C-строковые литералы и срезание отладочной информацииblog.rust-lang.org

В Rust 1.77.0 появились C-строковые литералы c"abc": они разворачиваются в строку с завершающим нулевым байтом типа &'static CStr, что упрощает взаимодействие с внешними интерфейсами — проверки (например, отсутствие нулевого байта внутри) выполняются на этапе компиляции. Также Cargo по умолчанию начал срезать отладочную информацию в release-сборках.

29.02.2024Redox: записи в RedoxFS заметно ускорили файловые операцииredox-os.org

Jeremy Soller реализовал записи (records) в RedoxFS, что сильно ускорило чтение и запись файлов. Замеры dd с ростом размера блока показали кратный выигрыш как для RAM-схемы, так и для диска через файловую систему RedoxFS.