* Derek Chesterfield (groups / dezuk.com) wrote: > On 13 Jan 2008, at 02:15, Marcin Miel??y??ski wrote: > >> Ruby 1.9 uses Oniguruma which is an encoding agnostic engine. > > So Ruby 1.9.0's Regexp is slower than 1.8's? In some cases, probably; it does quite a bit more, not just in encoding support, but more regexp features. e.g, from a quick glance through http://www.geocities.jp/kosako3/oniguruma/doc/RE.txt : Zero-width lookbehind assertions (/(?<=foo)bar/ =~ 'foobar' # $& => "bar") Named captures (/(?<foo>bar))/ =~ 'foobar' # $~[:foo] => "bar") Fancier backreferences (/(?<foo>foo|bar)\k<foo>/ =~ "foobar" # => nil, .. =~ 'foofoo' # $& => "foofoo") The ability to call subexpressions (/(?<foo>foo|bar)\g<foo>/ =~ "foobar" # $& => "foobar", $2 => bar) You might consider installing a separate Ruby 1.8 with Oniguruma patched in, or installing the Oniguruma gem, so you can test the performance without bringing YARV into the equation. > Damn - All my Ruby scripts make extensive use of Regexp. Will this > always be the case, or might 1.9.1 be worth me upgrading to? Oniguruma's pretty mature by now, I wouldn't expect the general performance profile to change that significantly, although the recent port to Java might trigger some changes. I wouldn't be too worried; I've used it for well over a year and not really noticed any significant performance issues. In the worst case, alternative engines could always be supported through extensions. -- Thomas 'Freaky' Hurst http://hur.st/