Actualización a GNU Coreutils, reescrita en Rust

Preséntase a versión do kit de ferramentas uutils coreutils 0.0.12, dentro do cal se está a desenvolver un análogo do paquete GNU Coreutils, reescrito na linguaxe Rust. Coreutils inclúe máis de cen utilidades, incluíndo sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln e ls. Ao mesmo tempo, lanzouse o paquete uutils findutils 0.3.0 cunha implementación en Rust das utilidades do conxunto GNU Findutils (find, locate, updatedb e xargs).

O motivo para crear o proxecto e empregar a linguaxe Rust é o desexo de crear unha implementación alternativa multiplataforma de Coreutils e Findutils, capaz de funcionar en plataformas Windows, Redox e Fuchsia, entre outras. Outra diferenza importante entre uutils é que se distribúe baixo a licenza MIT Permissive License, en lugar da licenza copyleft GPL.

Actualmente, a implementación de 88 utilidades foi totalmente igualada con GNU Coreutils. Obsérvanse fallos individuais en 18 utilidades, incluíndo cp, dd, date, df, install, ls, more, sort, split, tail e test. Só a utilidade stty permanece sen implementar. Ao pasar o conxunto de probas do proxecto GNU Coreutils, execútanse con éxito 214 probas, pero o análogo de Rust aínda non pasa 313 probas. Ao mesmo tempo, a intensidade do desenvolvemento do proxecto aumentou notablemente: engádense 400-470 parches ao mes de 20-50 desenvolvedores en lugar de 30-60 de 3-8 desenvolvedores hai un ano.

Actualización a GNU Coreutils, reescrita en Rust

Entre os últimos logros, destaca a optimización do rendemento: no estado actual, moitas utilidades, como head and cut, son significativamente superiores en rendemento ás opcións de GNU Coreutils. A cobertura do conxunto de probas ampliouse do 55% ao 75% de todo o código (o 80% é un obxectivo suficiente). O código foi refactorizado para simplificar o mantemento, por exemplo, unificouse o manexo de erros en diferentes programas e combinouse o código para traballar con dereitos de acceso en chgrp e chown. Engadíronse numerosos cambios para mellorar a compatibilidade con GNU Coreutils.

Os plans para o futuro inclúen a implementación da utilidade stty, o traballo continuo para mellorar a compatibilidade con GNU Coreutils, a adición de optimizacións para reducir o tamaño dos ficheiros executables, así como os experimentos continuos sobre o uso das utilidades uutils en Debian e Ubuntu en lugar de GNU Coreutils e GNU. Findutils (un dos principais desenvolvedores de uutils traballou anteriormente nun proxecto para construír Debian GNU/Linux usando o compilador Clang). Ademais, nótase a preparación do paquete uutils-coreutils para macOS, experimentos coa substitución de GNU Coreutils por uutils coreutils en NixOS, a intención de usar uutils coreutils por defecto na distribución Apertis e a adaptación do conxunto de uutils para o sistema operativo Redox.

Fonte: opennet.ru

Engadir un comentario