aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAvi Halachmi (:avih) <avihpit@yahoo.com>2026-04-13 01:09:11 +0300
committerRon Yorston <rmy@pobox.com>2026-04-16 10:42:13 +0100
commit9f1aec537dafda10c3f297b802eca348616bf288 (patch)
treeb2ee8e0a4f2a7669b743067aa60184f19b9b2c35 /scripts
parent7c49824cb6137c05583a3ed343975114d12ff0a4 (diff)
downloadbusybox-w32-9f1aec537dafda10c3f297b802eca348616bf288.tar.gz
busybox-w32-9f1aec537dafda10c3f297b802eca348616bf288.tar.bz2
busybox-w32-9f1aec537dafda10c3f297b802eca348616bf288.zip
win32: actype: code shrink
Unify actype/actail into a single function, and make actype a wrapper macro which invokes actail(str, NULL) (to avoid calling a function actype which then trampolines to actail with NULL). This concludes the integration of actype/isactype. Overall: - Unified/standard-ish char-class handling in fnmatch/regcomp/tr. - Saved about 1400 bytes at the binary as x64. - regcomp.c is negligibly faster (actype/isactype are O(1)). - tr.c now also supports [:graph:] and [:print:], and not slower. fnmatch.c (tested using scripts/patbench.sh): Before actype was integrated, alnum was fastest and xdigit slowest due to their order in the names strings list and in the switch/case: [35] 1305 ms OK (M:12-45) '*[0-9A-Za-z]*[0-9A-Za-z]' [36] 1928 ms OK (M:12-45) '*[[:alnum:]]*[[:alnum:]]' [38] 1446 ms OK (M:12-45) '*[a-bc-de-z]*[a-bc-de-z]' [39] 3192 ms OK (M:12-45) '*[[:lower:]]*[[:lower:]]' [40] 1586 ms OK (M:---4-) '*[0-9A-Fa-ef]*[0-9A-Fa-ef]' [41] 4601 ms OK (M:---4-) '*[[:xdigit:]]*[[:xdigit:]]' Now all classes are similar relative to an equivalent range, and just barely slower than "alnum" before actype was added (still slower than range due to additional temp name buffer): [35] 1402 ms OK (M:12-45) '*[0-9A-Za-z]*[0-9A-Za-z]' [36] 1962 ms OK (M:12-45) '*[[:alnum:]]*[[:alnum:]]' [38] 1453 ms OK (M:12-45) '*[a-bc-de-z]*[a-bc-de-z]' [39] 1965 ms OK (M:12-45) '*[[:lower:]]*[[:lower:]]' [40] 1683 ms OK (M:---4-) '*[0-9A-Fa-ef]*[0-9A-Fa-ef]' [41] 2117 ms OK (M:---4-) '*[[:xdigit:]]*[[:xdigit:]]'
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions