LINUX.ORG.RU

GNU sed 4.3

 ,


0

1

После 5 лет разработки состоялся релиз реализации потокового редактора sed от проекта GNU — 4.3.

Основные изменения:

  • Ускорена в 10 раз работа регулярных выражений.
  • Появилась новая опция --sandbox, запрещающая выполнение программ при использовании команд r/w/e.
  • Теперь используется unlocked-io в случае доступности на системе, что позволит ускорить операции ввода-вывода.
  • Удалена устаревшая команда L,
  • Исправлено множество ошибок.

>>> Подробности

★★★★★

Проверено: jollheef ()
Ответ на: комментарий от AlarinPerfect

По ссылке ходим. Там и ссылка на просмотр разницы со старым кодом.

** Improvements

sed's regular expression matching is now typically 10x faster

sed now uses unlocked-io where available, resulting in faster I/O operations.

Bfgeshka ★★★★★ ()
Последнее исправление: Bfgeshka (всего исправлений: 1)
Ответ на: комментарий от evilface

Что за L? Кто-то ей хоть раз пользовался?

The «L» command (format a paragraph like the fmt(1) command would)
has been listed in the documentation as a failed experiment for at
least 10 years. That command is now removed.


Всё равно не понял, зачем оно надо. Ну и ладно с ним, про неё даже в мане нет ничего.

И не нашёл в оригинале упомянутой выше ссылки на различия в коде, дающие выигрыш в 10 раз, был бы благодарен, если бы кто-то дал.

evilface ★★ ()
Ответ на: комментарий от evilface
`L N'
     This GNU `sed' extension fills and joins lines in pattern space to
     produce output lines of (at most) N characters, like `fmt' does;
     if N is omitted, the default as specified on the command line is
     used.  This command is considered a failed experiment and unless
     there is enough request (which seems unlikely) will be removed in
     future versions.

maloi ★★★★★ ()
Ответ на: комментарий от saahriktu

Всё что касается y/// в оригинале:


  The 'y' (transliterate) operator once again works with a NUL byte
  on the RHS.  E.g., sed 'y/b/\x00/' now works like tr b '\0'.  GNU sed
  has never before recognized \x00 in this context. 


Так-то в исходнике строка
y/pqkinrPQKINR12345678abcd/♟♛♚♝♞♜♙♕♔♗♘♖987654323579/
,
которая и раньше по идее работать не должна, ибо юникод и символы разной длины. Но sed, насколько я помню, поддерживает юникод, а значит должна, как и сейчас. На 4.2.2 точно работает, сейчас проверил.
Вывод: либо раньше «случайно» поддерживался юникод, либо он сейчас сломался, либо я чего-то не так понимаю.

evilface ★★ ()
Ответ на: комментарий от evilface

Да, игра играет. saahriktu, ты что-то сделал не так.

% ../sed-4.3/sed/sed --version 
../sed-4.3/sed/sed (GNU sed) 4.3
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jay Fenlason, Tom Lord, Ken Pizzini,
and Paolo Bonzini.
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
E-mail bug reports to: <bug-sed@gnu.org>.

evilface ★★ ()
Ответ на: комментарий от saahriktu
% export LANG="ru_RU.KOI8-R"

% ../sed-4.3/sed/sed -f ./chess.sed 
../sed-4.3/sed/sed: file ./chess.sed line 312: strings for `y' command are different lengths

% sed -f ./chess.sed                                                              
sed: file ./chess.sed line 312: strings for `y' command are different lengths


В общем, чуть выше написали раньше, чем я успел проверить. При koi8 юникод и в старом седе не работает.

evilface ★★ ()
Ответ на: комментарий от saahriktu

Ага, работает. В юнироде сломалось совсем, но когда ставлю локаль как раньше, шахматы отображаются буквами, поле усеяно знаками вопроса (какой-то неотображаемый символ, видимо), снизу надпись такая же. Возможно, причины в моей изначальной кодировке.

evilface ★★ ()
Ответ на: комментарий от NextGenenration

Одно дело юзать юникодные символы для сообщений. Тогда «iconv -c» никакую логику не ломает. И совсем другое дело пихать юникодные символы в сам код или логику.

saahriktu ★★★ ()
Ответ на: комментарий от NextGenenration

Это же какая должна быть логика чтобы юникод что-то в ней облегчал?!... Для большинства случаев ASCII выше крыши. При этом бинарные массивы никто не отменял. Совсем не обязательно работать с бинарными массивами через юникод.

saahriktu ★★★ ()
Ответ на: комментарий от NextGenenration

Усложнение это или нет - зависит от точки зрения. С точки зрения Unixway'я максимально простым является тот код, от которого отделены данные. В отдельные файлы данных. Чтобы в коде был только код.

saahriktu ★★★ ()
Ответ на: комментарий от saahriktu

С точки зрения Unixway'я максимально простым является тот код, от которого отделены данные. В отдельные файлы данных

hello world уже два файла? вот так слепое следование усложняет простые вещи

NextGenenration ()
Ответ на: комментарий от NextGenenration

hello world уже два файла?

Да.

усложняет

Но, код-то упрощает. Unixway заточен именно на архитектурную простоту кода несмотря на остальные сложности. Зато без него архитектура резко усложняется несмотря на остальную простоту.

saahriktu ★★★ ()
Ответ на: комментарий от saahriktu

Но, код-то упрощает

Где? в коде нужно прописать какой файл открывать и что из него читать. неоправданное усложнение.

Зато без него архитектура резко усложняется несмотря на остальную простоту

в каком месте усложняется?

NextGenenration ()