Логотип

Uutils Coreutils 0.10 на базе Rust достигает 93,5% совместимости с GNU

Uutils Coreutils 0.10 на базе Rust достигает 93,5% совместимости с GNU

Разработчики проект Uutils только что выпустили Coreutils 0.10, одно из самых значительных на сегодняшний день улучшений совместимости для этого набора инструментов командной строки на основе Rust, который продолжает свою цель стать заменой GNU Coreutils.

Последние результаты испытаний в рамках проекта показывают, что uutils Coreutils уже прошел 645 из 690 тестов в тестовом наборе GNU, что увеличивает его процент прохождения с 90,58 процента в версии 0.9 до 93,48 процента. Более того, количество неудачных тестов сократилось с 56 до 29.

Это обновление включает многочисленные изменения в поведении широко используемых утилит, в том числе dateduheadtailinstalllsnprocnumfmtodprstatsum, и truncate. Во многих случаях также были улучшены отчеты об ошибках: теперь сообщения более последовательно включают имя затронутого файла вместе с исходной ошибкой операционной системы, а не предоставляют общее описание.

В версии 0.10 разработчики также продолжили работу по устранению условий гонки «время проверки — время использования» (TOCTOU). Изменения затрагивают такие коммунальные услуги, как touchmkfifoheadsplit, и chcon, и рекурсивные операции, выполняемые chmod и chown также стали более устойчивыми к циклам символических ссылок и попыткам обхода --preserve-root.

Более того, cp утилита больше не будет спускаться в подкаталог назначения, указанный символической ссылкой, и mv внедрит дополнительные меры безопасности при выполнении операций между файловыми системами и во время процедур резервного копирования. Плюс, метки SELinux, созданные mkdirmkfifo, и mknod назначаются при создании объекта файловой системы, а не на последующем этапе.

Читать  Основатель QEMU и FFmpeg представил JavaScript-движок Micro QuickJS

Другой набор исправлений решает такие проблемы, как сбои вывода, возникающие при записи на такие устройства, как /dev/full, целочисленные переполнения, возникающие из-за экстремальных аргументов, недопустимых границ символов при многобайтовом вводе и чрезмерного выделения памяти; expr Парсер также был изменен для использования итеративного подхода, чтобы избежать переполнения стека, вызванного глубоко вложенными выражениями.

Одной из новых функций, доступных пользователям, является mv --exchange, что позволяет производить атомарную замену двух путей файловой системы. Утилита установки теперь включает в себя --reflink, чтобы клоны копирования при записи можно было создавать в совместимых файловых системах, и install -C может использоваться вместе с --preserve-timestamps.

Это обновление также включает в себя rm --one-file-system, что предотвращает рекурсивное удаление при пересечении файловых систем, и -O был добавлен как сокращение от cut --output-delimiter. Более того, утилиты контрольной суммы могут использовать серверную часть OpenSSL для достижения лучшей производительности.

Повышение производительности касается ряда известных инструментов: tee теперь есть быстрая опция нулевого копирования, cat были оптимизированы пропускные способности и копии, которые не были повторно связаны cp тоже должно быть быстрее. Копирование между устройствами также может осуществляться с использованием улучшенного пути копирования.

Поддержка нескольких платформ все еще расширяется. Версия uutils Coreutils 0.10 теперь включает поддержку wasm32-wasip2 цель, а в Windows пользователи получают функциональную команду тайм-аута, а также рабочие возможности отслеживания файлов через tail -f и tail -F. Поддержка разреженных копий в cp также было добавлено для Windows вместе с исправлением контрольной суммы, связанным с преобразованием окончаний строк CRLF.

Для получения дополнительной информации, см. журнал изменений.

Редактор: AndreyEx

Рейтинг: 5 (1 голос)

Важно: Данная статья носит информационный характер. Автор не несёт ответственности за возможные сбои или ошибки, возникшие при использовании описанного программного обеспечения.

Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

3 × 3 =

Это может быть вам интересно


Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала