Az uutils Coreutils 0.11 megjelent, és jelentős frissítést hoz a többplatformos, Rust-alapú, GNU Coreutils-újramegvalósításhoz.
Az egyik legszembetűnőbb változás az Ariadne-ra épülő új diagnosztikai motor. A hagyományos parancssori hibaüzenet helyett az érintett programok már meg tudják jeleníteni a megadott argumentumot, és egy pontos jellel közvetlenül a problémás karakter alá mutatnak, hasonlóan a modern fordítók diagnosztikájához.
Az új diagnosztika már sok programban elérhető, többek között a chmod, mkdir, install, tr, sort, cut, head, tail, split, dd, stat, join, ls, df és du esetében. A hibaüzenetek rövid magyarázatot is adhatnak a várt szintaxisról, miközben továbbra is együttműködnek a lokalizált kimenettel.
Teljesítmény szempontjából a hivatalos Linux-, macOS- és Windows-buildek mostantól Profile-Guided Optimizationt használnak, ami a fejlesztők szerint akár 31%-os teljesítményjavulást is hozhat.
Több program a PGO-n túl is kapott további optimalizálást. Kiemelten a cp, amely bizonyos műveleteknél már csak egyszer nyitja meg a fájlokat, így 32,93%-os teljesítményjavulást értek el. Emellett újra tudja használni a már megnyitott célfájl-fájlleírót, ha egy reflink művelet visszaesik egy hagyományos másolásra.
A join is komoly gyorsulást kapott. A projekt saját mérései szerint párosított bemenet feldolgozásakor most 1,37-szer gyorsabb, és ebben a feladatban akár 2,5-szer gyorsabb is lehet, mint a GNU join.
További teljesítményjavítások kerültek a dd, tac, od, ptx, nl, tail, expand, unexpand, numfmt és sort programokba is, csökkentve a felesleges memóriafoglalásokat, rendszerhívásokat és adatmásolásokat. Érdekesség, hogy az uutils fejlesztői új irányelvet vezettek be: ha valamelyik programjuk érezhetően lassabb a GNU megfelelőjénél, azt hibának tekintik, és érdemes jelenteni.
A GNU Coreutils-szel való kompatibilitás is tovább javult. Az uutils Coreutils 0.11 már 653 teszten megy át a GNU tesztcsomagjából, a 0.10-es verzió 645 tesztjéhez képest. A sikertelen tesztek száma 28-ról 22-re csökkent, a tesztcsomag-hibák száma pedig először esett nullára. Összességében a projekt mért GNU-kompatibilitása 94,44%-ról 95,33%-ra nőtt.
Több, GNU-val kompatibilis parancssori kapcsolót is hozzáadtak. Ilyen például az uname -A/--all-labeled, a cut -F és --whitespace-delimited, valamint további pr kapcsolók és aliasok.
Az új opciókon túl számos viselkedésbeli eltérést is kijavítottak több parancsban, köztük a pr, numfmt, uniq, truncate, paste, join, id, mkdir, more, fold, sort, stat, od és date esetében. Több program hibajelentése mostantól, ahol indokolt, a tényleges operációs rendszerbeli hibaüzeneteket használja a saját vagy rövidített változatok helyett.
A biztonságra és a fájlrendszer-kezelésre is odafigyeltek. A cp és az mv mostantól file-descriptor-alapú műveleteket használ, hogy kezelje a kiterjesztett attribútumokkal kapcsolatos TOCTOU-problémákat, az rm pedig rekurzív törlés közben már nem követi az operandus helyére cserélt szimbolikus linket.
A chmod parancsot megerősítették a rekurzív műveletek és a szimbolikus linkek körül, a cp pedig elkerüli a jogosultságok módosítását egy célként megadott szimbolikus linken keresztül.
A nemzetköziesítés támogatása is fejlődött. Az ls mostantól a locale-beállításoknak megfelelően rendezi a fájlneveket, a comm a locale szabályai szerint hasonlítja össze a sorokat, a cut pedig pontosabban kezeli a többbyteos mezőket, bájtokat és elválasztókat.
További részletekért nézd meg a változásnaplót.

