LINUX.ORG.RU

GNU Grep 2.15

 ,


0

2

26 октября вышла новая версия программы GNU Grep — 2.15. Выпуск связан главным образом с исправлением ошибок. Прошло 62 недели, за это время 9 человек сделали 57 коммитов.

Были исправлены следующие ошибки:

  • \s и \S неправильно работали с пробельными символами длиной в несколько байт. Например, выражение \s неправильно работало с неразрывным пробелом. Например, вот: printf '\xc2\xa0' | LC_ALL=ru_RU.UTF-8 grep '\s'. Ошибка появилась в версии 2.6;
  • grep -i могла вызывать ошибку сегментирования в системах, использующих wchar_t, основанный на кодировке UTF-16 (например, Cygwin). Ошибка возникала, когда нужно было перевести в нижний регистр входную строку, содержащую определенную 4-байтовую последовательность (ошибка присутствовала с версии 2.6, но проявляться в виде ошибки сегментирования начала только в версии 2.13;
  • grep -E могла завершиться с ошибкой сегментирования при обработе регулярных выражений вида '([^.]*[M]){1,2}', где M — многобайтовый символ. Ошибка появилась в версии 2.6, пропала в версиях 2.7 и 2.8. Все версии, начиная с 2.9, работают с ошибкой;
  • grep -F могла попадать в бесконечный цикл, когда искомая строка содержит некорректную в текущей локали последовательность байтов:
  • grep -P могла работать неправильно с многобайтовыми символами.

Новые улучшения:

  • grep -P теперь использует jit-компиляцию, что значительно ускоряет работу. Это реализовано совершенно прозрачно для пользователя, не нужно устанавливать никаких флагов и т.п. Эта возможность включается на этапе компиляции, если обнаружена подходящая версия библиотеки pcre.

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

★★★★★

Проверено: Shaman007 ()
Последнее исправление: unfo (всего исправлений: 1)

# rpm -qa | grep grep
grep-2.6.3-3.el6.x86_64

Никаких ошибок не замечал.

dada ★★★★★
()

вышла новая версия программы GNU Grep 2.15

Все, ушел бухать.

Extraterrestrial ★★★★★
()

Отлично.

Вендекапец уже близок.

anonymous
()

Ключ -x по-прежнему работает от случая к случаю?

FRCTLL
()

Подождем стабильную версию.

AVL2 ★★★★★
()

Не перестаю удивляться, как можно вообще допускать ошибки в таких простых программах. Вроде не студенты же пишут, а профессиональные программисты.

D_Lans
()

Кто там мейнтенер-то теперь? Бонзизи таки отошёл от дел? По ссылке, разумеется, не ходил.

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

простых

grep таки не самая простая программа. Достаточно почитать посты того же Бонзини об оптимизационных наворотах, которые он туда включал в последние годы.

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

Не перестаю удивляться, как можно вообще допускать ошибки в таких простых программах

Прими разупорину, родной. Грепу скоро 30ик стукнет, причём, очевидно, в первых версиях никаким уникодом ещё не пахло, это дописывали и переписывали совсем другие люди в совсем другое время, так что немудрено, что остались редконаходимые артефакты 'char=byte' кода.

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

Уже начал. И прекрасно понимаю как легко новичку сишнику допустить сегфолт даже в хелоуворде.

Но тут речь идёт о популярнейшей программе с открытыми кодами, к которой приковано внимание тысяч программистов, среди которых должны встречаться и очень опытные. Тем более в наше время, когда существуют качественные статические анализаторы кода.

Как можно в таких условиях не то что допустить ошибку, а допустить и не исправлять её в течение нескольких выпусков...

Или это проблемы языка?

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

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

Deleted
()

62 недели

57 коммитов

Странно, что на ЛОРе еще не закопали

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

качественные статические анализаторы кода

Поделил на ноль в каком-то смысле

buddhist ★★★★★
()

«Ошибка появилась в версии 2.6, пропала в версиях 2.7 и 2.8. Все версии, начиная с 2.9, работают с ошибкой»

Круто.

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

Зовите меня лучше «Владимир», меня так Прокудин называет.

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

Ведь это ж, вы поймите, иностранцы! А вы, прошу прощенья, кто такие?

Oleaster ★★★
()

Годная новость, но плохо оформлена.

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

в этом и состоит проблема опенсорса....взгляни хотя бы на ЛОР..тут есть несколько петушков, которые, при выходе какой нибудь новой игры, начинают кукарекать про лицензии и открытые сорцы, какбэ намекая на то, что прям вот сразу возьмут и изучат их на предмет бэкдоров, закладок и прочих шалостей...а в реальности мы имеем то, что действительно способных разобраться даже в грепе - человек 10-20..таки дела

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

Теперь это тред ценных советов и пожеланий разработчикам grep.

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

У него не ошибки, а фичи. Новые фичи.

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

Программа поиска подстроки в строке по-вашему сложная?

Сравните, например, с графическим редактором (gimp) или видеопроигрывателем (vlc).

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

Похоже так и есть...

Видимо качественное существование опенсорса возможно только при коммунизме. Опенсорс и капитализм плохо совместимы.

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

Сели бы и юнит-тестов написали бы. А то развели ромашку, работает-неработает.

Для grep я готов это сделать (из уважения). А ты оплатишь мое время?

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

Видимо качественное существование опенсорса возможно только при коммунизме. Опенсорс и капитализм плохо совместимы.

Дело не капитализме а в школьном понимании жизни. Вот к примеру у тебя сейчас.

anonymous
()
Ответ на: Для Ъ от redgremlin

Карина - вроде женское имя?

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

Программа поиска подстроки в строке по-вашему сложная?

Ну, если бы мне сказали: «Напиши программу для поиска подстроки в строке, но только с поддержкой четырёх видов регулярных выражений, и чтобы она работала быстро и как можно более корректно, потому что её будут применять для критически важных задач, чтобы компилировалась любым компилятором C (поддерживающим стандарты такого-то года), чтобы работала на Винде, Маке, Линуксе, BSD, Солярке, DOS, Amiga и вообще желательно на любой системе, с которой она в теории должна быть совместима, и на любой архитектуре процессора, чтобы она умела рекурсивно искать строку во всех файлах в указанном каталоге на любой файловой системе» - тут бы я задумался, что проще, это или медиаплеер на уже готовых кодеках.

Мне кажется, делать что-либо очень аккуратно обычно намного сложнее, чем делать что-либо как получится.

Или это проблемы языка?

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

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 3)
Ответ на: комментарий от anonymous

из уважения

оплатишь?

поделил на ноль

leave ★★★★★
()

Так чего, Мейеринг теперь мейнтейнер или кто?

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

ошибки в таких простых программах

Чак Норрис детектед

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

Программа поиска подстроки в строке по-вашему сложная?

Сложная. Иди почитай описание юникода. Когда требуется работать со строками произвольного языка в utf8 всё становится сразу очень сложно в любой программе. Даже в wc.

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

Или это проблемы языка?

Языка, кодировок, людей.

Тем более в наше время, когда существуют качественные статические анализаторы кода.

Да-да.

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

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

Кнут.

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

Надо срочно портировать Qt и GTK на grep!

Лишь бы не наоборот.

pv4 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.