* Hangup in regexp-matching
@ 2010-12-19 0:47 Marek Kubica
2010-12-20 19:03 ` Linas Vepstas
0 siblings, 1 reply; 3+ messages in thread
From: Marek Kubica @ 2010-12-19 0:47 UTC (permalink / raw)
To: guile-user
[-- Attachment #1: Type: text/plain, Size: 900 bytes --]
Hi,
I do a bit regexp-matching in my log analyzer but found out that the
Regexp engine chokes on some input (see attached file). It just takes
100% CPU time and never returns.
I thought that I might have hit some obscure O(2^n) problem of FAs, I
tried the same thing in Python and it worked immediately:
>>> s = "20:15 < foobar> \"Bei den Programmiersprachen rechnet er für
die nächsten zehn Jahre mit keinen neuen Entwicklungen, da es mit
zu viel Aufwand verbunden sei, neue Sprachen in den Markt zu
drücken. So wird die Programmierwelt auch in zehn Jahren noch aus
Java und C++ bestehen. Den funktionalen Sprachen erteilt er eine
Absage: \"Ihr Problem ist, dass sich damit zwar komplizierte
Abläufe einfach darstellen lassen, dass aber leider einfache Dinge
zu"
>>> import re
>>> re.findall("[A-~]{1,16}\\+\\+", s)
['C++']
Any ideas what is happening?
regards,
Marek
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: regexhang.scm --]
[-- Type: text/x-scheme, Size: 567 bytes --]
(use-modules (ice-9 regex))
(define s "20:15 < foobar> \"Bei den Programmiersprachen rechnet er für die nächsten zehn Jahre mit keinen neuen Entwicklungen, da es mit zu viel Aufwand verbunden sei, neue Sprachen in den Markt zu drücken. So wird die Programmierwelt auch in zehn Jahren noch aus Java und C++ bestehen. Den funktionalen Sprachen erteilt er eine Absage: \"Ihr Problem ist, dass sich damit zwar komplizierte Abläufe einfach darstellen lassen, dass aber leider einfache Dinge zu")
(define add (make-regexp "[A-~]{1,16}\\+\\+"))
(list-matches add s)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Hangup in regexp-matching
2010-12-19 0:47 Hangup in regexp-matching Marek Kubica
@ 2010-12-20 19:03 ` Linas Vepstas
2010-12-21 8:13 ` Andy Wingo
0 siblings, 1 reply; 3+ messages in thread
From: Linas Vepstas @ 2010-12-20 19:03 UTC (permalink / raw)
To: Marek Kubica; +Cc: guile-user
Wild guess: a unicode/utf-8 problem?
Which version of guile is this?
--linas
2010/12/18 Marek Kubica <marek@xivilization.net>:
> Hi,
>
> I do a bit regexp-matching in my log analyzer but found out that the
> Regexp engine chokes on some input (see attached file). It just takes
> 100% CPU time and never returns.
>
> I thought that I might have hit some obscure O(2^n) problem of FAs, I
> tried the same thing in Python and it worked immediately:
>
>>>> s = "20:15 < foobar> \"Bei den Programmiersprachen rechnet er für
> die nächsten zehn Jahre mit keinen neuen Entwicklungen, da es mit
> zu viel Aufwand verbunden sei, neue Sprachen in den Markt zu
> drücken. So wird die Programmierwelt auch in zehn Jahren noch aus
> Java und C++ bestehen. Den funktionalen Sprachen erteilt er eine
> Absage: \"Ihr Problem ist, dass sich damit zwar komplizierte
> Abläufe einfach darstellen lassen, dass aber leider einfache Dinge
> zu"
>>>> import re
>>>> re.findall("[A-~]{1,16}\\+\\+", s)
> ['C++']
>
> Any ideas what is happening?
>
> regards,
> Marek
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Hangup in regexp-matching
2010-12-20 19:03 ` Linas Vepstas
@ 2010-12-21 8:13 ` Andy Wingo
0 siblings, 0 replies; 3+ messages in thread
From: Andy Wingo @ 2010-12-21 8:13 UTC (permalink / raw)
To: linasvepstas; +Cc: guile-user
On Mon 20 Dec 2010 20:03, Linas Vepstas <linasvepstas@gmail.com> writes:
> Wild guess: a unicode/utf-8 problem?
I think this is the case, as the regexp completes immediately for me
without problems in 1.9.14 / git.
> Which version of guile is this?
This problem should be present only in the 1.9 series, and only up to
1.9.13. 1.9.14 has it fixed i think.
Andy
--
http://wingolog.org/
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-12-21 8:13 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-19 0:47 Hangup in regexp-matching Marek Kubica
2010-12-20 19:03 ` Linas Vepstas
2010-12-21 8:13 ` Andy Wingo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).