Mise à jour vers GNU Coreutils, réécrit en Rust

La version de la boîte à outils uutils coreutils 0.0.12 est présentée, dans laquelle un analogue du package GNU Coreutils, réécrit dans le langage Rust, est en cours de développement. Coreutils est livré avec plus d'une centaine d'utilitaires, dont sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln et ls. Dans le même temps, le package uutils findutils 0.3.0 a été publié avec une implémentation dans Rust des utilitaires de l'ensemble GNU Findutils (find, Locate, Updateb et xargs).

La raison de la création du projet et de l'utilisation du langage Rust est le désir de créer une implémentation alternative multiplateforme de Coreutils et Findutils, capable de fonctionner sur les plateformes Windows, Redox et Fuchsia, entre autres. Une autre différence importante entre uutils est qu'il est distribué sous la licence permissive MIT, au lieu de la licence copyleft GPL.

Actuellement, la mise en œuvre de 88 utilitaires a été entièrement mise à parité avec GNU Coreutils. Des failles individuelles sont notées dans 18 utilitaires, notamment cp, dd, date, df, install, ls, more, sort, split, tail et test. Seul l'utilitaire stty n'est pas implémenté. Lors de la réussite de la suite de tests du projet GNU Coreutils, 214 tests sont exécutés avec succès, mais l'analogue de Rust ne réussit pas encore 313 tests. Dans le même temps, l'intensité du développement des projets a sensiblement augmenté : 400 à 470 correctifs sont ajoutés par mois par 20 à 50 développeurs au lieu de 30 à 60 par 3 à 8 développeurs il y a un an.

Mise à jour vers GNU Coreutils, réécrit en Rust

Parmi les dernières réalisations, on note l'optimisation des performances - dans l'état actuel, de nombreux utilitaires, tels que head et cut, ont des performances nettement supérieures aux options de GNU Coreutils. La couverture de la suite de tests a été étendue de 55 % à 75 % de tout le code (80 % est un objectif suffisant). Le code a été remanié pour simplifier la maintenance, par exemple, la gestion des erreurs a été unifiée dans différents programmes et le code permettant de travailler avec les droits d'accès a été combiné en chgrp et chown. De nombreux changements ont été ajoutés pour améliorer la compatibilité avec GNU Coreutils.

Les projets pour l'avenir incluent la mise en œuvre de l'utilitaire stty, la poursuite des travaux pour améliorer la compatibilité avec GNU Coreutils, l'ajout d'optimisations pour réduire la taille des fichiers exécutables, ainsi que la poursuite des expériences sur l'utilisation des utilitaires uutils dans Debian et Ubuntu au lieu de GNU Coreutils et GNU. Findutils (l'un des principaux développeurs d'uutils a déjà travaillé sur un projet visant à construire Debian GNU/Linux à l'aide du compilateur Clang). De plus, la préparation du package uutils-coreutils pour macOS, les expériences de remplacement de GNU Coreutils par uutils coreutils dans NixOS, l'intention d'utiliser uutils coreutils par défaut dans la distribution Apertis et l'adaptation de l'ensemble uutils pour Redox OS sont notées.

Source: opennet.ru

Ajouter un commentaire