GCC-бэкенд достиг возможности полной раскрутки компилятора Rustc. Выпуск Rust Coreutils 0.1.0

Бэкенд rustc_codegen_gcc достиг возможности полной раскрутки (bootstrapping) компилятора rustc. Под раскруткой компилятора понимается возможность использования в rustc генератора кода на основе GCC для сборки самого компилятора rustc. Бэкенд позволяет использовать библиотеку libgccjit от проекта GCC в качестве генератора кода в компиляторе rustc, что позволяет собирать rust-программы для всех архитектур, доступных в GCC, и использовать специфичные для GCC оптимизации.

Дополнительно можно отметить релиз проекта Rust Coreutils 0.1.0 (uutils), развивающего аналог пакета GNU Coreutils, написанный на языке Rust. В состав coreutils входит более ста утилит, включая sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, способной работать в том числе на платформах Windows, Redox и Fuchsia. Rust Coreutils решено использовать по умолчанию в Ubuntu, начиная с выпуска 25.10. В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL. Дополнительно той же командой разработчиков развиваются написанные на Rust аналоги наборов утилит util-linux, diffutils, findutils и bsdutils.

В новой версии:

  • Реализована поддержка SELinux, интегрированная в утилиты cp, ls, mkdir, mknod, mkfifo, install и stat.
  • Внесены оптимизации производительности, особо заметные при работе утилит cat, ls, wc, tail, seq и more. Многие утилиты uutils теперь соответствуют или обгоняют по производительности аналогичные утилиты GNU.
  • Улучшена совместимость с эталонным тестовым набором GNU Coreutils, при прохождении которого успешно выполнено 522 теста (в прошлой версии 507), 65 (69) тестов завершилось неудачей, а 31 (41) тест был пропущен.
  • Расширены возможности, улучшена совместимость и добавлены недостающие опции для утилит basenc, cat, chmod, chroot, cksum, cp, csplit, date, dd, df, du, echo, env, expr, false, fmt, head, hostid, hostname, id, install, ls, mkdir, mkfifo, mknod, mktemp, more, mv, numfmt, od, pr, printf, ptx, rm, seq, shred, shuf, sleep, sort, split, stat, sum, sync, tail, tee, test, timeout, touch, tsort, uptime, uucore, wc, whoami, yes.
Release. Ссылка here.