https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61601

Eric Gallager <egallager at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |egallager at gcc dot gnu.org,
                   |                            |fweimer at redhat dot com,
                   |                            |max at cert dot cx,
                   |                            |rasraizen at gmail dot com,
                   |                            |timshen at gcc dot gnu.org
             Status|ASSIGNED                    |NEW
           Assignee|timshen at gcc dot gnu.org         |unassigned at gcc dot 
gnu.org

--- Comment #11 from Eric Gallager <egallager at gcc dot gnu.org> ---
(In reply to Tim Shen from comment #10)
> (In reply to Eric Gallager from comment #9)
> > (In reply to Tim Shen from comment #7)
> > > (In reply to Maksymilian Arciemowicz from comment #6)
> > > > > Do you have any other testcases?
> > > > 
> > > > for trunk? maybe you have to use ::regex_match
> > > 
> > > std::regex_match("findme", std::regex("(.*{100}{200}findme)"));
> > > 
> > > there's no memory problem, it just takes exponentially long time to run
> > > (which is expected when using backtracking).
> > > 
> > > To avoid it, you can use Thompson NFA:
> > > 
> > > #define _GLIBCXX_REGEX_USE_THOMPSON_NFA
> > > #include <regex>
> > > 
> > > int main (int argc, char *argv[])
> > > {
> > >   std::regex_match("findme", std::regex("(.*{100}{200}findme)",
> > > std::regex_constants::extended));
> > > 
> > >   return 0;
> > > 
> > > }
> > > 
> > > Notice that for now Thompson NFA doesn't support ECMAScript.
> > 
> > Are you still working on this?
> 
> No, I'm not actively working on this.

moving from assignee to cc list, then (and redoing a few other lost ccs while
I'm at it)

Reply via email to