plural rule evaluator rewrite for dcngettext
authorSzabolcs Nagy <nsz@port70.net>
Wed, 30 Jul 2014 17:02:08 +0000 (19:02 +0200)
committerSzabolcs Nagy <nsz@port70.net>
Wed, 30 Jul 2014 19:57:30 +0000 (21:57 +0200)
commit6527b03dcc029cf9edb7bf7dbaeab420092e04c9
tree1ea251e9e61a496b9d33aaf2ebf5e391fee5c61e
parent08e4052c43692a9306c5c638d70fba7f7ba08c52
plural rule evaluator rewrite for dcngettext

using an operator precedence parser the code size
became smaller and it is only slower by about %10

size of old vs new pleval.o on different archs:
(with inlined isspace added to pleval.c for now)

old:
   text    data     bss     dec     hex filename
    828       0       0     828     33c pl.i386.o
   1152       0       0    1152     480 pl.arm.o
   1704       0       0    1704     6a8 pl.mips.o
   1328       0       0    1328     530 pl.ppc.o
    992       0       0     992     3e0 pl.x64.o
new:
   text    data     bss     dec     hex filename
    693       0       0     693     2b5 pl.i386.o
    972       0       0     972     3cc pl.arm.o
   1276       0       0    1276     4fc pl.mips.o
   1087       0       0    1087     43f pl.ppc.o
    846       0       0     846     34e pl.x64.o
src/locale/pleval.c