Навсозӣ ба GNU Coreutils, ки дар Rust аз нав навишта шудааст

Нашри асбобҳои uutils coreutils 0.0.12 пешниҳод карда мешавад, ки дар доираи он аналоги бастаи GNU Coreutils, ки бо забони Rust аз нав навишта шудааст, таҳия карда мешавад. Coreutils бо зиёда аз сад утилитаҳо меояд, аз ҷумла sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln ва ls. Ҳамзамон, бастаи uutils findutils 0.3.0 бо татбиқи барномаи Rust аз маҷмӯи GNU Findutils (пайдо, ҷойгир, updatedb ва xargs) бароварда шуд.

Сабаби эҷоди лоиҳа ва истифодаи забони Rust ин хоҳиши эҷоди татбиқи алтернативии кросс-платформаи Coreutils ва Findutils мебошад, ки қодиранд дар платформаҳои Windows, Redox ва Fuchsia ва ғайра кор кунанд. Фарқи дигари муҳими байни uutils дар он аст, ки он ба ҷои литсензияи нусхабардории GPL, тибқи литсензияи иҷозатдиҳандаи MIT паҳн карда мешавад.

Дар айни замон, татбиқи 88 утилитаҳо пурра бо GNU Coreutils баробар карда шудааст. Камбудиҳои инфиродӣ дар 18 утилитаҳо, аз ҷумла cp, dd, date, df, install, ls, more, навъ, тақсим, дум ва санҷиш қайд карда шудаанд. Фақат утилитаи stty иҷронашуда боқӣ мемонад. Ҳангоми супоридани пакети санҷишӣ аз лоиҳаи GNU Coreutils, 214 санҷиш бомуваффақият иҷро карда мешавад, аммо аналоги Rust то ҳол аз 313 санҷиш намегузарад. Дар баробари ин, шиддатнокии таҳияи лоиҳа ба таври назаррас афзоиш ёфт - дар як моҳ аз 400-470 таҳиякунанда ба ҷои 20-50 аз 30-60 таҳиягари як сол пеш 3-8 патч илова карда мешавад.

Навсозӣ ба GNU Coreutils, ки дар Rust аз нав навишта шудааст

Дар байни дастовардҳои охирин, оптимизатсияи иҷроиш қайд карда шудааст - дар ҳолати кунунӣ, бисёре аз утилитҳо, ба монанди сар ва буриш, аз имконоти GNU Coreutils ба таври назаррас бартарӣ доранд. Фарогирии маҷмӯи тестӣ аз 55% то 75% тамоми кодҳо васеъ карда шуд (80% ҳадафи кофӣ аст). Рамз барои содда кардани нигоҳдорӣ аз нав ислоҳ карда шудааст, масалан, коркарди хатоҳо дар барномаҳои гуногун муттаҳид карда шудааст ва рамзи кор бо ҳуқуқҳои дастрасӣ ба chgrp ва chown якҷоя карда шудааст. Барои беҳтар кардани мутобиқат бо GNU Coreutils тағйироти зиёде илова карда шуданд.

Нақшаҳо барои оянда татбиқи утилитаи stty, идомаи кор оид ба беҳтар кардани мутобиқат бо GNU Coreutils, илова кардани оптимизатсияҳо барои кам кардани андозаи файлҳои иҷрошаванда, инчунин таҷрибаҳои давомдор оид ба истифодаи utilities utils дар Debian ва Ubuntu ба ҷои GNU Coreutils ва GNU иборатанд. Findutils (яке аз таҳиягарони асосии uutils қаблан дар лоиҳаи сохтани Debian GNU/Linux бо истифода аз компилятори Clang кор мекард). Илова бар ин, омодасозии бастаи uutils-coreutils барои macOS, таҷрибаҳо бо иваз кардани GNU Coreutils бо uutils coreutils дар NixOS, нияти истифодаи uutils coreutils ба таври нобаёнӣ дар тақсимоти Apertis ва мутобиқсозии uutils барои Redox OS муқаррар карда шудаанд.

Манбаъ: opennet.ru

Илова Эзоҳ