Update auf GNU Coreutils, neu geschrieben in Rust

Es wird die Veröffentlichung des Toolkits uutils coreutils 0.0.12 vorgestellt, in dem ein in der Sprache Rust neu geschriebenes Analogon des GNU Coreutils-Pakets entwickelt wird. Coreutils enthält über hundert Dienstprogramme, darunter sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln und ls. Gleichzeitig wurde das Paket uutils findutils 0.3.0 mit einer Implementierung der Dienstprogramme aus dem GNU Findutils-Set (find,locate,aktualisierteb und xargs) in Rust veröffentlicht.

Der Grund für die Erstellung des Projekts und die Verwendung der Rust-Sprache ist der Wunsch, eine plattformübergreifende alternative Implementierung von Coreutils und Findutils zu erstellen, die unter anderem auf Windows-, Redox- und Fuchsia-Plattformen ausgeführt werden kann. Ein weiterer wichtiger Unterschied zwischen uutils besteht darin, dass es unter der MIT Permissive License und nicht unter der GPL-Copyleft-Lizenz vertrieben wird.

Derzeit ist die Implementierung von 88 Dienstprogrammen vollständig mit GNU Coreutils gleichgesetzt. Einzelne Fehler werden in 18 Dienstprogrammen festgestellt, darunter cp, dd, date, df, install, ls, more, sort, split, tail und test. Lediglich das Dienstprogramm stty bleibt nicht implementiert. Beim Bestehen der Testsuite aus dem GNU Coreutils-Projekt werden 214 Tests erfolgreich ausgeführt, das Rust-Analogon besteht jedoch noch nicht 313 Tests. Gleichzeitig hat die Intensität der Projektentwicklung spürbar zugenommen – monatlich kommen 400–470 Patches von 20–50 Entwicklern hinzu, statt 30–60 von 3–8 Entwicklern vor einem Jahr.

Update auf GNU Coreutils, neu geschrieben in Rust

Zu den neuesten Errungenschaften zählt die Leistungsoptimierung – im aktuellen Zustand sind viele Dienstprogramme wie Head und Cut den Optionen von GNU Coreutils leistungsmäßig deutlich überlegen. Die Testsuite-Abdeckung wurde von 55 % auf 75 % des gesamten Codes erweitert (80 % ist ein ausreichendes Ziel). Der Code wurde überarbeitet, um die Wartung zu vereinfachen. So wurde beispielsweise die Fehlerbehandlung in verschiedenen Programmen vereinheitlicht und Code für die Arbeit mit Zugriffsrechten in chgrp und chown zusammengefasst. Zahlreiche Änderungen wurden hinzugefügt, um die Kompatibilität mit GNU Coreutils zu verbessern.

Zu den Plänen für die Zukunft gehören die Implementierung des Dienstprogramms stty, weitere Arbeiten zur Verbesserung der Kompatibilität mit GNU Coreutils, das Hinzufügen von Optimierungen zur Reduzierung der Größe ausführbarer Dateien sowie weitere Experimente zur Verwendung der Dienstprogramme uutils in Debian und Ubuntu anstelle von GNU Coreutils und GNU Findutils (einer der Hauptentwickler von uutils arbeitete zuvor an einem Projekt zur Erstellung von Debian GNU/Linux unter Verwendung des Clang-Compilers). Darüber hinaus werden die Vorbereitung des uutils-coreutils-Pakets für macOS, Experimente mit dem Ersetzen von GNU Coreutils durch uutils coreutils in NixOS, die Absicht, uutils coreutils standardmäßig in der Apertis-Distribution zu verwenden, und die Anpassung des uutils-Sets für Redox OS erwähnt.

Source: opennet.ru

Kommentar hinzufügen