Projekt GNU opublikował wydanie pakietu gzip 1.14, który zawiera narzędzia gzip, gunzip, zmore i zcat do kompresji i dekompresji danych przy użyciu algorytmu LZ77. W nowej wersji znacznie przyspieszono operacje dekompresji. Na systemach x86_64, które obsługują instrukcje procesora PCLMUL, wzrost wydajności osiąga 40%, a na systemach bez wsparcia PCLMUL — do 20%.
Przyspieszenie zostało osiągnięte dzięki optymalizacji operacji związanych z sumami kontrolnymi (CRC), na obliczenie których było wykorzystywane około połowy czasu procesora. Zoptymalizowana wersja CRC została już dodana do biblioteki gnulib, co przyczyni się do przyspieszenia również innych projektów GNU, które korzystają z funkcji obliczania sum kontrolnych.
Wprowadzono zmiany, które naruszają zgodność: zaprzestano instalacji narzędzia zmore na platformach, które nie używają narzędzia „more”; zaprzestano przetwarzania zmiennej środowiskowej GZIP (ustawiającej opcje domyślne) w sytuacjach, gdy wyraźnie nie są określone opcje „-1” (—fast), „-2”,… „-9” (—best), „—rsyncable” lub „—synchronous”.
Dodatkowo można zauważyć:
- Wydanie narzędzia do organizacji wyszukiwania danych w plikach tekstowych — GNU Grep 3.12. W nowej wersji rozwiązano problem z wyszukiwaniem w katalogach zawierających ponad 100 tysięcy plików. Zakończono wsparcie dla opcji „—unix-byte-offsets” („-u”). Na platformach Windows i AIX w trybie 32-bitowym wprowadzono wsparcie dla znaków Unicode wykraczających poza podstawową wielojęzyczną płaszczyznę Unicode (kody od 0000 do FFFF).
- Wydanie zestawu GNU Diffutils 3.12, które obejmuje narzędzia do oceny różnic w plikach, takie jak diff, diff3, sdiff i cmp. W nowej wersji naprawiono dwa błędy: awarię przy użyciu „diff -y” oraz problemy z „diff -r” przy porównywaniu plików niepustych i pustych.
- Wydanie zestawu podstawowych systemowych narzędzi GNU Coreutils 9.7, które zawiera takie programy jak sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln i ls. W nowej wersji do narzędzia logname dodano wsparcie dla systemów bazujących na bibliotekach C musl i uclibc. W pozostałych kwestiach odnotowano jedynie poprawę błędów dotyczących narzędzi cat, cksum, dd, ls, timeout, sleep, tail i who.
Źródło: opennet.ru
