Posixutils-rs 0.2.1 жобасының шығарылымы жарияланды, ол Rust тілінде POSIX стандартында айтылған және оның талаптарына (cp, mv, awk, make, vi, find, сұрыптау, wc, xargs, sh, m4, sed және т.б.). Әзірлеу кезінде, мүмкіндігінше, бар жәшік пакеттері пайдаланылады. posixutils-rs коды MIT лицензиясы бойынша таратылады.
Жоба ең алдымен POSIX.2024 спецификациясының талаптарына сәйкестікке қол жеткізуге бағытталған және функционалдығын авторлар негізсіз ұлғайтылған деп қабылдайтын GNU утилиталарымен үйлесімділікті қамтамасыз етуді жоспарламайды. Дегенмен, posixutils-rs бар сценарийлерде табылған ең танымал кеңейтілген GNU утилитасының опцияларын енгізуді жоспарлап отыр.
Rust-та GNU Coreutils енгізуін дамытатын uutils жобасынан айырмашылықтар утилиталардың кең ауқымын қамтиды, соның ішінде vi, awk, bc, m4, cron және c99 компиляторы сияқты POSIX жүйесінің құрамдастарын жасау, сондай-ақ POSIX спецификациясында анықталған немесе онсыз орындау қиын болатын опциялардың ең аз талап етілетін жиынын ғана қамтамасыз етуді білдіретін минималистік тәсіл. posixutils-rs жиынтығындағы бағдарламалар бастапқыда басқа жобаларда пайдалануға болатын дербес код ретінде жеткізіледі.
Қазіргі уақытта жобамен әзірленген 55 утилита POSIX стандартына сәйкес келеді және тестілік қамту сатысында, 22 утилита қажетті функционалдылықты қамтамасыз етеді (бірақ тесттік қамту әлі енгізілмеген), 20-сы жобалық сатыда, 44 утилитада жұмыс жүргізілмеді. әлі басталған. Функционалды мүмкіндіктері бар утилиталардың ішінде: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. Жұмысы басталмаған утилиталардың ішінде: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .
Жаңа шығарылымдағы өзгерістер awk, m4, ps, realpath, join, time, термобекіткіш және gencat утилиталарының іске асырылуын, сондай-ақ musl C кітапханасына негізделген орталарда жұмыс істеуге бастапқы қолдауды және ftw қамтамасыз етуді қамтиды. мемлекет қорғауындағы анықтамалық ағаштан өту жарысына арналған кітапхана.
Сонымен қатар, Rust тілінде жазылған AV1 бейне кодтау пішімі үшін жоғары өнімді декодерді әзірлейтін rav1d жобасының хабарландыруын атап өтуге болады. Әзірлеу жоғары өнімділігімен сипатталатын dav1d кітапханасының декодер кодын Rust-қа тасымалдау арқылы жүзеге асырылады. Дайындалған порт dav1d кітапханасының API интерфейсімен толық үйлесімді. Өз нұсқамызды жазудың орнына бар кітапхананы порттауды таңдау мүмкін болатын үйлесімділік мәселелерін болдырмау және AV1 пішімімен жұмыс істеудің барлық қыр-сырын ескеру үшін дәлелденген және тексерілген декодерді негіз ретінде пайдалану ниетімен түсіндіріледі.
Қазіргі түрінде rav1d-тің дайындалған орындалуы өнімділік бойынша dav6d-тен 1% артта қалды, бірақ болашақта кодты оңтайландырудан кейін өнімділікте паритетке жету жоспарлануда. Жоғары өнімділікке қол жеткізу үшін қарапайым мәндерді декодтау үшін негізгі функциялар ассемблерде қауіпті блоктар түрінде жүзеге асырылатын тәсіл қолданылды (dav1d құрастыру коды пайдаланылады), деректер ағынды талдау арқылы тексерілгеннен кейін алынады. Rust тілінде жазылған функциялар (бейне декодерлеріндегі осалдықтарды анықтаудың бұрынғы тәжірибесі проблемалардың негізінен төмен деңгейлі деректер операцияларында емес, жоғары деңгейлі пішімді талдау кодында туындайтынын көрсетеді).
Ақпарат көзі: opennet.ru
