I think I now managed to shave off the speed hit of those special
casing tables quite well,
and all tests still pass (brute force removal of the tables made some
tests of op/lc, op/pat,
and all of uni/* to fall flat on their face), now UTF-8 casing
operations are "only" half
the speed of non-. What basically happened is that every casing
operation created a scalar
and then sprintfed into that scalar and then fetched using that scalar
as a key - and all this
was done even when there was no chance of any of the special casing
rules kicking in.
Duh. I'll test the patch a bit more before sending it to p5p.
--
Jarkko Hietaniemi <jhi(_at_)iki(_dot_)fi> http://www.iki.fi/jhi/ "There is this
special
biologist word we use for 'stable'. It is 'dead'." -- Jack Cohen