Rust тілінде қайта жазылған GNU Coreutils жаңартуы

uutils coreutils 0.0.12 құралдар жинағының шығарылымы ұсынылған, оның аясында Rust тілінде қайта жазылған GNU Coreutils пакетінің аналогы әзірленуде. Coreutils сұрыптау, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln және ls сияқты жүзден астам утилиталармен келеді. Сонымен бірге, uutils findutils 0.3.0 бумасы GNU Findutils жинағынан (табу, табу, updatedb және xargs) утилиталарының Rust бағдарламасында іске асырылуымен шығарылды.

Жобаны құрудың және Rust тілін пайдаланудың себебі Windows, Redox және Fuchsia платформаларында және басқаларында жұмыс істей алатын Coreutils және Findutils-тің кросс-платформалық альтернативті іске асыруын жасауға ұмтылу болып табылады. Uutils арасындағы тағы бір маңызды айырмашылық, ол GPL copyleft лицензиясының орнына MIT рұқсат беру лицензиясы бойынша таратылады.

Қазіргі уақытта 88 қызметтік бағдарламаны енгізу GNU Coreutils-пен толықтай теңестірілді. Жеке кемшіліктер 18 утилитада атап өтілген, оның ішінде cp, dd, date, df, install, ls, more, сұрыптау, бөлу, tail және test. Тек stty утилитасы орындалмай қалады. GNU Coreutils жобасынан сынақ жиынтығын тапсыру кезінде 214 сынақ сәтті орындалды, бірақ Rust аналогы әлі 313 сынақтан өтпейді. Бұл ретте жобаны әзірлеу қарқындылығы айтарлықтай өсті – бір жыл бұрынғы 400-470 әзірлеушіден 20-50 орнына 30-60 әзірлеушіден айына 3-8 патч қосылады.

Rust тілінде қайта жазылған GNU Coreutils жаңартуы

Соңғы жетістіктердің арасында өнімділікті оңтайландыру атап өтілді - қазіргі күйде бас және кесу сияқты көптеген утилиталар өнімділік бойынша GNU Coreutils опцияларынан айтарлықтай жоғары. Сынақ жиынтығының қамтуы барлық кодтың 55%-дан 75%-ға дейін кеңейтілді (80% жеткілікті мақсат). Техникалық қызмет көрсетуді жеңілдету үшін код қайта өңделді, мысалы, қателерді өңдеу әртүрлі бағдарламаларда біріктірілді және кіру құқығымен жұмыс істеу коды chgrp және chown болып біріктірілді. GNU Coreutils үйлесімділігін жақсарту үшін көптеген өзгертулер қосылды.

Болашаққа арналған жоспарларға stty утилитасын енгізу, GNU Coreutils-пен үйлесімділікті жақсарту бойынша жұмысты жалғастыру, орындалатын файлдардың көлемін азайту үшін оңтайландыруларды қосу, сондай-ақ GNU Coreutils және GNU орнына Debian және Ubuntu-да uutils утилиталарын пайдалану бойынша тәжірибелерді жалғастыру кіреді. Findutils (uutils негізгі әзірлеушілерінің бірі бұрын Clang компиляторы арқылы Debian GNU/Linux құру жобасында жұмыс істеген). Сонымен қатар, macOS үшін uutils-coreutils пакетін дайындау, NixOS жүйесінде GNU Coreutils uutils coreutils ауыстыру эксперименттері, Apertis дистрибутивінде әдепкі бойынша uutils coreutils пайдалану ниеті және Redox ОЖ үшін uutils жиынтығының бейімделуі атап өтілген.

Ақпарат көзі: opennet.ru

пікір қалдыру