URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 64709
[ Назад ]

Исходное сообщение
"Компания Google открыла исходные тексты библиотеки регулярны..."

Отправлено opennews , 12-Мрт-10 00:09 
Компания Google открыла (http://google-opensource.blogspot.com/2010/03/re2-principled...) под лицензией BSD исходные тексты RE2 (http://code.google.com/p/re2/), написанной на языке C++ библиотеки для организации выполнения PCRE-совместимых регулярных выражений. Библиотека отличается высокой скоростью работы, хорошей безопасностью, поддержкой использования в многопоточных программах. RE2 позиционируется в качестве альтернативы реализаций регулярных выражений в PCRE, Perl и Python, особенно эффективной при обработке больших объемов данных.


Для обработки регулярных выражений в RE2 применен метод автомата (http://swtch.com/~rsc/regexp/regexp1.html), отличающийся линейной (http://pdos.csail.mit.edu/~rsc/regexp-img/grep4p.png) зависимостью между временем выполнения регулярного выражения и размером текста для которого оно применяется. В реализации регулярных выражений в Perl/PCRE подобная зависимость имеет близкий к экспоненциальному (http://pdos.csail.mit.edu/~rsc/r...

URL: http://google-opensource.blogspot.com/2010/03/re2-principled...
Новость: http://www.opennet.me/opennews/art.shtml?num=25765


Содержание

Сообщения в этом обсуждении
"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Аноним , 12-Мрт-10 00:09 
лучше чем буст?

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено zhus , 12-Мрт-10 00:33 
да :)

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено pavlinux , 12-Мрт-10 01:53 
>да :)

sed !? Не?


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено LolzN00b , 12-Мрт-10 00:22 
У Google пока ничего хорошего не было, кроме, быть может, поиска.

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено ASM , 12-Мрт-10 00:34 
Поиск построенный на плохих регекспах... Вероятно всё скоро измениться...

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Онаним , 12-Мрт-10 03:59 
В поиске Google уже можно использовать regexp-ы?? Я опять проспал обед?

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено ПринцЧорнойТьмы , 12-Мрт-10 08:53 
http://www.google.com/codesearch -- тут можно.

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Ноним , 12-Мрт-10 00:41 
google search, google mail и самое главное google adwords и adsense (на них они сделали весь свой капитал) это о популярных продуктах.
А так их продукты все хороши

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено аноним , 12-Мрт-10 04:41 
Поиск да. codesearch очень да. web-почта, да еще и прямо у большого брата, хорошей не может быть по определению. ad* это поганая реклама, ее хорошей может разве что больной назвать. Хорошо в ней то, что она элементарно банится adblock'ом.
Я бы лучше вспомнил нормальные опенсорсные не-web проекты, как-то protocol buffers, google perftools. Почти все остальное откровенный мусор - браузер-троян, попытки изменений в DNS для шпионства за пользователями, недоось бесполезная без сети и продажи души гуглу, откровенно провальная невнятность wave, куча тормозных java и javascript нашлепок.
Ну еще можно дать картонную медаль за первопроходчество - например, maps первые сделали они, и поиск маршрута по ним тоже. Потом в яндексе это сделали лучше и с пробками, а в OSM вообще замечательно, гибко и свободно.

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Ноним , 12-Мрт-10 06:07 
"ad* это поганая реклама, ее хорошей может разве что больной назвать."

Если бы ты на ней деньги умел зарабатывать, ты бы так не говорил.

"не-web проекты, как-то protocol buffers, google perftools."
Кстати да, MapReduce etc

"Почти все остальное откровенный мусор - браузер-троян"
Ложь, вы слышали звон каких-то фанатиков и толком не стали разбираться в чем дело, советую вам еще раз пойти по интернетам и собрать информации о Chrome. Клон Iron был создан только ради PR.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено pavlinux , 12-Мрт-10 01:46 
Некоторые люди, сталкиваясь с проблемой, думают,
"- Я знаю, я буду использовать регулярные выражения",
Теперь у них есть две проблемы. :)

                               (c) Джэйм Завински


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено pavlinux , 12-Мрт-10 01:32 
> $ perl -e '("a" x 100000) =~ /^(ab?)*$/;'
> Segmentation fault (core dumped)
>$

pavel@suse64:/tmp> perl -e '("a" x 100000) =~ /^(ab?)*$/;'
pavel@suse64:/tmp> echo $?
0

Просто в гугле юзают х...вый Perl :)


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено iZEN , 12-Мрт-10 02:45 
Почему под BSDL? (Риторический вопрос)

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено аноним , 12-Мрт-10 04:42 
>Почему под BSDL? (Риторический вопрос)

А под чем еще?


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено СуперАноним , 12-Мрт-10 07:08 
Библиотеку логично под LGPL

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено www2 , 12-Мрт-10 09:27 
Логично для кого?

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Аноним , 12-Мрт-10 07:25 
потому что своя свобода дороже свободы какого-то там кода

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Michael Shigorin , 12-Мрт-10 09:20 
>Почему под BSDL? (Риторический вопрос)

Видимо, потому что PD не по всем юрисдикциям признаётся, а смысл выпуска -- стандартизировать реализацию де-факто.  Гругря им сиренево в крапинку, потому как ни возврата кодом, ни тем более денег от этого напрямую не ожидают.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено ACCA , 12-Мрт-10 05:43 
>Для обработки регулярных выражений в RE2 применен метод автомата (http://swtch.com/~rsc/regexp/regexp1.html), отличающийся линейной

Походу беспонтовый гон, либо в 2007 году был баг в Perl 5.8.7.


$ perl -e '$n = 100; $x="a?"x $n . "a" x $n; $t = "a" x 100000; if ($t =~ /$x/){ print "match\n"; }'

match

Perl 5.10.0 отработал мгновенно, а обещали 10**15 лет.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Дмитрий Телегин , 12-Мрт-10 09:36 
>С точки зрения потребления памяти, размер стека в RE2 имеет фиксированную величину

Это очень здорово, так как поиск в гигабайтных файлах не имеющих символов конца строки у меня когда-то сжирал всю оперативку.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Карбофос , 12-Мрт-10 10:14 
поиск результатов скана снифера? если бы я часто такое использовал, то написал бы программку с доступом к файлу блоками. максимальный размер памяти - размер блока * 2, чтобы не было особых потерь в скорости скана и учитывать то, что строка может быть в двух блоках. для такой задачи не нужна вся оперативка :)
чем искал-то?

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Unixoid_потому_что_кривые_руки_писали_этот_модуль , 12-Мрт-10 12:46 
В boost кстати блочные регэкспы есть, я даже юзал когда-то вроде, уже не помню.

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Карбофос , 12-Мрт-10 13:39 
спасибо за инфу, надо будет посмотреть...

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Дмитрий Телегин , 12-Мрт-10 14:07 
>чем искал-то?

Написал свою маленькую шуструю программку, позволяющую искать в разных кодировках и использующую фиксированный буфер памяти, но без регулярных выражений :)
http://sourceforge.net/projects/findstr/


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Карбофос , 12-Мрт-10 16:18 
а вот за открытый проект - плюсик

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Аноним , 12-Мрт-10 18:21 
Ну разве что за это :)

Потому что аффтар явно не осилил в дупель стандартную, требуемую POSIX'ом опцию -F (grep -F) ... Я так ищу в *.iso и *.gho и *.tib - пожирание быстро доходит до 500KiB и больше не растёт. Deban Lenny, размер имиджей - один DVD (4.3GB).


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Карбофос , 12-Мрт-10 20:14 
ну может он делал мультиплатформенную прогу? в виндах с такими фишками, как grep, вообще полный абзац. кстати, я про опцию -F не знал (стыдно!). просто сканировать как-то большие файлы не приходилось...

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Xaionaro , 13-Мрт-10 14:21 
Под винду ж вроде существует пакет GNU утилит.

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Mna , 13-Мрт-10 16:24 
>ну может он делал мультиплатформенную прогу? в виндах с такими фишками, как
>grep, вообще полный абзац. кстати, я про опцию -F не знал
>(стыдно!). просто сканировать как-то большие файлы не приходилось...

Cygwin существует и давно стабильно работает (http://cygwin.com)

Недавно доделали работу с UTF-8 в консоли (bash), что не может не радовать.

Там так же хорошо работают man и info.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Карбофос , 13-Мрт-10 17:12 
хех. да знаю я про это, народ. только далеко не все вантузятники это знают.

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Дмитрий Телегин , 15-Мрт-10 08:58 
> ну может он делал мультиплатформенную прогу? в виндах с такими фишками, как grep, вообще полный абзац. кстати, я про опцию -F не знал (стыдно!). просто сканировать как-то большие файлы не приходилось...

Не кросплатформенную, я на Debian давно. Кстати если бы опция -F работала, то наверное не писал бы своего :)


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Дмитрий Телегин , 15-Мрт-10 08:51 
> аффтар явно не осилил в дупель стандартную, требуемую POSIX'ом опцию -F

Осилил и к сожалению проку от неё было немного. Если она сейчас работает как положено, то только рад :) да и моя программка актуальности не потеряла: и буфер можно задать и кодировки.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Дмитрий Телегин , 15-Мрт-10 09:52 
> Если она сейчас работает как положено, то только рад

Только что потестил опцию F и ничего радостного...

dd if=/dev/zero of=test bs=1M count=2000
grep -F qwer test

У меня на ноутбуке всего 1 Гб и через несколько секунд я получил:
grep: test: Невозможно выделить память

Для моей программки такие поиски для оперативки ничего не стоят, как собственно и поиски на /dev/sda :)


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено svn , 12-Мрт-10 10:26 
Не пойму ажиотажа.

backreference NOT SUPPORTED. Вот и весь секрет трудоёмкость линейной.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено DeadLoco , 12-Мрт-10 12:59 
Да там не только бекреференсы пострадали, а вообще все тяжелые операции, включая lookahead/lookbehind. Фигня, короче.

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Аноним , 12-Мрт-10 18:32 
>Фигня, короче.

Ну чего же сразу фигня то?
А если не нужны баки, а скорость и небольшое предсказуемое потребление рамы - нужны?

PS: man grep, "Known Bugs" section:

Large repetition counts in the {n,m} construct may cause grep to use lots of  memory. In addition, certain other obscure regular expressions require exponential time and space, and may cause grep to run out of memory.

Back-references are very slow, and may require exponential time.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено DeadLoco , 13-Мрт-10 19:05 
>>Фигня, короче.
>
>Ну чего же сразу фигня то?
>А если не нужны баки, а скорость и небольшое предсказуемое потребление рамы - нужны?

Тогда не нужно сравнивать с PCRE.

"Наш велосипед значительно выигрывает по массо-габаритным характеристикам у Бугатти Вейрон..."


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Аноним , 12-Мрт-10 11:48 
"В RE2 полностью поддерживается синтаксис регулярных выражений Perl и PCRE."
НАГЛАЯ ЛОЖЬ!
http://code.google.com/p/re2/wiki/Syntax
"Grayed out expressions are not supported by RE2."
А таких там много.

"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Дмитрий Телегин , 12-Мрт-10 14:25 
>"Grayed out expressions are not supported by RE2."
>А таких там много.

Согласен, что не мало, но там большая часть серого от VIM. Убрав его синтаксис картина становится лучше.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено DeadLoco , 12-Мрт-10 17:22 
>>"Grayed out expressions are not supported by RE2."
>>А таких там много.
>
>Согласен, что не мало, но там большая часть серого от VIM. Убрав
>его синтаксис картина становится лучше.

Лучше чего?

RE2 несравнима с PCRE по функционалу. Фактически, RE2 - куцое подмножество регулярных выражений вообще. Да, в этом подмножестве она может работать оптимальнее PCRE, что не удивительно. Но RE2 - это RE2, а PCRE - это PCRE.

Лично я уважаю PCRE за богатство функционала при конечности FSA :) и за возможность хранить прекомпилированные FSA для массового повторного использования.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Дмитрий Телегин , 15-Мрт-10 09:09 
>>Согласен, что не мало, но там большая часть серого от VIM. Убрав
>>его синтаксис картина становится лучше.
>
>Лучше чего?

Лучше чем с особенностями VIM нереализованными в ни RE2 ни в PCRE :)


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено ACCA , 13-Мрт-10 15:41 
>>"Grayed out expressions are not supported by RE2."
>>А таких там много.
>
>Согласен, что не мало, но там большая часть серого от VIM. Убрав
>его синтаксис картина становится лучше.

Угу. Ещё убрав синтаксис Perl и половину PCRE.


"Компания Google открыла исходные тексты библиотеки регулярны..."
Отправлено Дмитрий Телегин , 15-Мрт-10 09:02 
>>Согласен, что не мало, но там большая часть серого от VIM. Убрав
>>его синтаксис картина становится лучше.
>Угу. Ещё убрав синтаксис Perl и половину PCRE.

Какой смысл здесь утрировать? Посмотрите сколько в % останется серого если убрать особенности vim. Или список даже просмотреть внимательно не удосужились?