View Issue Details

IDProjectCategoryView StatusLast Update
0003969unrealircdpublic2015-05-30 15:23
ReporternenotopiaAssigned Tosyzop  
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionno change required 
Summary0003969: please replace TRE with Oniguruma regex engine
DescriptionHello,

TRE is extremely slow. Oniguruma ( http://www.geocities.jp/kosako3/oniguruma/ ) is an extremely fast regexp engine, roughly twice as fast as perl regexp. (In benchmark tests, TRE is about half as fast as Perl's regexp engine.)

Replacing TRE with Oniguruma should yield massive performance gains and it should be relatively easy to do since Unreal is using the POSIX regex.h compatibility layer of TRE anyway, and Oniguruma implements such a layer as well.
3rd party modules

Activities

warg

2010-11-24 06:28

reporter   ~0016444

+1

Humanoid

2011-01-05 01:47

reporter   ~0016580

As long as lookarounds can be supported in spamfilters, I'm all for an upgrade.

katsklaw

2011-01-05 02:47

reporter   ~0016581

+1

syzop

2012-02-27 15:30

administrator   ~0016929

If I understand correctly Oniguruma is used by PHP5? And ruby?
I ask, because last thing I want is using some obscure regex engine which is very fast but has various crash bugs and other issues and is no longer maintained.. ;)
TRE was very fast compared to any other POSIX regex library at that time (10-1000x faster), but I've never been so happy with the quality: previous releases crashed sometimes and some bugs took several years to be fixed.
At first glance a geocities page isn't that assuring, added to that it starts with updated at: 2010/01/09. But, if PHP and Ruby use it then it must be quite ok?

nenolod

2012-02-28 06:22

reporter   ~0016933

Oniguruma is actually more resilient against bad input than TRE is in my experience.

Audacious (at least until 3.x) used it as regexp engine wherein it was tortured with corrupt binary data (bad tags) by approximately 1.5 million users. TRE was slower and had bugs with random junk data.

Issue History

Date Modified Username Field Change
2010-11-18 20:23 nenotopia New Issue
2010-11-24 06:28 warg Note Added: 0016444
2011-01-05 01:47 Humanoid Note Added: 0016580
2011-01-05 02:47 katsklaw Note Added: 0016581
2012-02-27 15:30 syzop Note Added: 0016929
2012-02-28 06:22 nenolod Note Added: 0016933
2015-05-30 15:22 syzop Status new => closed
2015-05-30 15:23 syzop Assigned To => syzop
2015-05-30 15:23 syzop Resolution open => no change required