Издание на Rust Coreutils 0.6.0 увеличи съвместимостта с GNU Coreutils от 87% до 96%

Публикувана версия 0.6.0 на проекта uutils coreutils (Rust Coreutils), който разработва аналог на пакета GNU Coreutils, написан на езика Rust. Съдържа повече от сто утилити, включително sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln и ls. Целта на проекта е да създаде кросплатформена алтернативна реализация на Coreutils, способна да работи на платформи Windows, Redox и Fuchsia.

Rust Coreutils е активиран по подразбиране в версия 25.10 на Ubuntu и се използва в дистрибутивите AerynOS (Serpent OS) и Apertis (развиван от компания Collabora). За разлика от GNU Coreutils, реализацията на Rust е лицензирана под пермисивна лицензия MIT, вместо копилефт лиценза GPL. Допълнително, същият екип разработва аналози на наборите утилити util-linux, diffutils, findutils, procps и acl, както и програмите sed и login на Rust.

В новата версия на Rust Coreutils:

  • Достигнато е ниво на съвместимост с еталонния тестов набор на GNU Coreutils — 96.28% (беше 87.75%). Успешно са изпълнени 622 теста, което е с 56 повече в сравнение с предишната версия (566). 16 (бяха 55) теста са завършили с неуспех, а 7 (бяха 23) теста са били пропуснати. Най-значителното увеличение на съвместимостта е наблюдавано при утилитите sort, ls, date, cksum и tail.
  • От date, sort, locale.rs и други утилити е премахнат кодът, в който е използвано ключовото слово "unsafe".
  • Обаждането към стандартната библиотека libc е заменено с еквивалентни защитени повиквания, предоставяни от пакета nix.
  • Подобрено е обработването на грешки, изключени са аварийните завършвания при запис в /dev/full.
  • В утилитата date е реализирана локализация на имената на месеците и дните, като се взема предвид ICU. Обезпечено е форматирането на часа и календара във връзка с локализацията.
  • В утилитата sort е осигурена сортировка на числа с разделители хиляди и е реализирана обработка на параметри +POS/-POS.
  • В утилитата join е добавена поддръжка на свойства на локализация «collation», позволяващи извършване на съпоставки с оглед на смисъла на символите (например, при сравнение знака на ударенията може да не се взима предвид).
  • Извършена е оптимизация на производителността на утилитите base32, base64, basenc и df.
  • В утилитата uniq е намалено потреблението на памет при работа без водене на сметка за регистра.
  • В утилитата shuf е оптимизиран числовият изход и е добавена опция «—random-seed».
  • В tsort е изключено зареждането на всички входни данни в паметта.
  • В утилитата tail е добавен флаг «—debug».
  • В утилитата chmod са решени проблемите с рекурсивното изпълнение на операции и е добавена опция «—preserve-root».
  • На Unix-подобни системи е засилена безопасността при обход на съдържанието на директории.
  • В утилитите ls, id, mkdir, mkfifo и mknod е добавена поддръжка за механизма за мандатен контрол на достъпа SMACK.
  • В системата за непрекъсната интеграция е добавена проверка на компилацията за 64-битови системи RISC-V с библиотеката musl.
  • Подобрена е работата в Windows с използване на Cygwin.
  • Разширени са възможностите, устранени проблеми и добавени липсващи опции за утилитите arch, base64, basename, cat, chgrp, chmod, chroot, cksum, comm, cp, csplit, date, dd, df, dir, dirname, du, echo, env, expand, expr, fmt, fold, groups, hashsum, head, hostid, id, install, join, kill, ln, logname, ls, mkdir, mkfifo, mknod, mktemp, more, mv, nice, nl, nohup, nproc, numfmt, pr, printenv, printf, ptx, readlink, rm, rmdir, runcon, seq, shred, shuf, sort, split, stat, stdbuf, stty, sync, tac, tail, tee, test, timeout, touch, truncate, tsort, uname, unexpand, uniq, uptime, users, wc, yes, ucore, uucore, uudoc.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster