aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-12-15bc: rewrite "block flag stack" using simple realloc'ed byte arrayDenys Vlasenko
Each access to current top flag took a function call + fetch of three data items + multiplication and some additions + and then following the resulting pointer. After the change, it is: fetch pointer value + one byte access via this pointer. function old new delta bc_parse_startBody 45 49 +4 bc_parse_free 46 47 +1 zbc_parse_auto 188 185 -3 bc_parse_push 14 11 -3 bc_vm_run 398 394 -4 zbc_vm_process 63 58 -5 zdc_parse_expr 638 632 -6 zbc_parse_body 101 95 -6 bc_parse_addFunc 31 25 -6 bc_parse_noElse 56 48 -8 zcommon_parse 341 331 -10 zbc_parse_else 134 123 -11 bc_parse_create 124 108 -16 zbc_parse_text_init 123 104 -19 zbc_parse_endBody 292 252 -40 zbc_parse_stmt 1479 1420 -59 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/14 up/down: 5/-196) Total: -191 bytes text data bss dec hex filename 979880 485 7296 987661 f120d busybox_old 979689 485 7296 987470 f114e busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: drop zbc_parse_endBody() bool parameter, move its code to caller which ↵Denys Vlasenko
uses it function old new delta zbc_parse_stmt 1456 1479 +23 zbc_parse_body 103 101 -2 zbc_parse_endBody 326 292 -34 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 23/-36) Total: -13 bytes text data bss dec hex filename 979893 485 7296 987674 f121a busybox_old 979880 485 7296 987661 f120d busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: shorten one message, make defines more readableDenys Vlasenko
text data bss dec hex filename 979916 485 7296 987697 f1231 busybox_old 979893 485 7296 987674 f121a busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: pull zbc_lex_next() call out of zbc_parse_operator() into one caller ↵Denys Vlasenko
that uses it function old new delta bc_parse_operator - 144 +144 bc_parse_expr_empty_ok 1788 1792 +4 zbc_parse_operator 170 - -170 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 1/0 up/down: 148/-170) Total: -22 bytes text data bss dec hex filename 979938 485 7296 987719 f1247 busybox_old 979916 485 7296 987697 f1231 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bx: add more debug scaffoldingDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: convert macro bc_parse_push() to function, add debug infrastructureDenys Vlasenko
function old new delta bc_parse_push - 14 +14 zbc_parse_else 132 134 +2 bc_parse_pushName 63 61 -2 zbc_parse_operator 174 170 -4 bc_parse_number 87 83 -4 zbc_parse_string 97 89 -8 bc_parse_pushIndex 68 60 -8 zbc_parse_endBody 339 326 -13 zbc_parse_name 401 387 -14 zdc_parse_mem 107 91 -16 zdc_parse_expr 680 638 -42 zbc_parse_stmt 1502 1456 -46 bc_parse_expr_empty_ok 1838 1788 -50 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/11 up/down: 16/-207) Total: -191 bytes text data bss dec hex filename 980129 485 7296 987910 f1306 busybox_old 979938 485 7296 987719 f1247 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: rename zbc_parse_text() to ..._init(), reuse existing code for library ↵Denys Vlasenko
parsing function old new delta zbc_parse_text_init - 123 +123 bc_vm_run 423 398 -25 zbc_parse_text 123 - -123 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 0/1 up/down: 123/-148) Total: -25 bytes text data bss dec hex filename 980154 485 7296 987935 f131f busybox_old 980129 485 7296 987910 f1306 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: compress two constant arguments of bc_lex_assign() to oneDenys Vlasenko
function old new delta zbc_program_num 836 835 -1 bc_lex_assign 34 31 -3 zbc_lex_next 1930 1880 -50 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-54) Total: -54 bytes text data bss dec hex filename 980208 485 7296 987989 f1355 busybox_old 980154 485 7296 987935 f131f busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: remove stale comment, empty lines, regularize comment styleDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: tweak bc_num_parseDecimal() for readability, logic is not changedDenys Vlasenko
function old new delta zbc_program_num 836 835 -1 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: shrink s() in library againDenys Vlasenko
function old new delta bc_lib 1596 1586 -10 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-10) Total: -10 bytes text data bss dec hex filename 980152 485 7296 987933 f131d busybox_old 980142 485 7296 987923 f1313 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: yet another library shrinkDenys Vlasenko
function old new delta bc_lib 1604 1596 -8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-8) Total: -8 bytes text data bss dec hex filename 980160 485 7296 987941 f1325 busybox_old 980152 485 7296 987933 f131d busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: shrink internal library yet moreDenys Vlasenko
function old new delta bc_lib 1609 1604 -5 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-5) Total: -5 bytes text data bss dec hex filename 980165 485 7296 987946 f132a busybox_old 980160 485 7296 987941 f1325 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: shrink internal library moreDenys Vlasenko
function old new delta bc_lib 1618 1609 -9 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: shrink internal libraryDenys Vlasenko
function old new delta bc_lib 1674 1618 -56 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-14bc: group ENABLE_BC code a bit better, no logic changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: fix "dc only" bugDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: unbreak "only bc" and "only dc" configsDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: simplify bc_lex_whitespace()Denys Vlasenko
function old new delta bc_lex_whitespace 52 41 -11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: G.sbgn and G.send are unused, remove themDenys Vlasenko
function old new delta bc_program_index 66 64 -2 bc_parse_expr_empty_ok 1840 1838 -2 dc_main 176 168 -8 bc_main 73 65 -8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-20) Total: -20 bytes text data bss dec hex filename 980327 485 7296 988108 f13cc busybox_old 980307 485 7296 988088 f13b8 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: simplify filename saving in zbc_vm_file()Denys Vlasenko
function old new delta bc_vm_run 433 423 -10 zbc_vm_file 187 174 -13 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-23) Total: -23 bytes text data bss dec hex filename 980350 485 7296 988131 f13e3 busybox_old 980327 485 7296 988108 f13cc busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: do not append duplicate NUL, reduce indentation in bc_read_line()Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: change bc_read_line() and zbc_vm_stdin() to avoid double buffersDenys Vlasenko
function old new delta bc_read_line 129 124 -5 bc_vm_run 523 433 -90 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-95) Total: -95 bytes text data bss dec hex filename 980445 485 7296 988226 f1442 busybox_old 980350 485 7296 988131 f13e3 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: further simplification in zbc_vm_stdin()Denys Vlasenko
function old new delta bc_vm_run 500 523 +23 bc_vec_concat 66 - -66 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 1/0 up/down: 23/-66) Total: -43 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: fix another thinkoDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: fix a thinko: dc uses [] string delimiters, bot bc!Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: fix comment handlingDenys Vlasenko
function old new delta bc_vm_run 514 513 -1 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: further zbc_vm_stdin() optimizationsDenys Vlasenko
function old new delta bc_vm_run 534 514 -20 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: shrink zbc_vm_stdin()Denys Vlasenko
function old new delta bc_vm_run 592 534 -58 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-13bc: trim config help text, add a few comments, no code changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: unbreak CONFIG_FEATURE_BC_SIGNALS=y configDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: remove lexer function pointerDenys Vlasenko
function old new delta zbc_lex_next 81 1930 +1849 bc_parse_create 131 124 -7 common_parse_init 31 - -31 zdc_lex_token 672 - -672 zbc_lex_token 1193 - -1193 ------------------------------------------------------------------------------ (add/remove: 0/3 grow/shrink: 1/1 up/down: 1849/-1903) Total: -54 bytes text data bss dec hex filename 980634 485 7296 988415 f14ff busybox_old 980580 485 7296 988361 f14c9 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: remove parse function pointerDenys Vlasenko
function old new delta zbc_program_asciify - 372 +372 zcommon_parse - 341 +341 zbc_program_printStream - 141 +141 zbc_program_pushArray - 111 +111 zbc_program_nquit - 92 +92 zbc_vm_process 61 63 +2 zbc_parse_text 122 123 +1 bc_vm_run 591 592 +1 zdc_parse_mem 108 107 -1 zbc_parse_operator 175 174 -1 zbc_parse_else 133 132 -1 zbc_parse_body 104 103 -1 zbc_program_read 261 259 -2 zdc_parse_register 40 37 -3 zbc_parse_string 100 97 -3 zbc_parse_endBody 343 339 -4 zdc_parse_expr 688 680 -8 zbc_parse_auto 198 188 -10 zbc_parse_name 414 401 -13 common_parse_init 45 31 -14 zdc_parse_parse 23 - -23 bc_parse_create 158 131 -27 zbc_parse_stmt 1540 1502 -38 bc_parse_expr_empty_ok 1882 1840 -42 zbc_program_exec 3963 3837 -126 zbc_parse_parse 311 - -311 zbc_program_modexp 556 - -556 ------------------------------------------------------------------------------ (add/remove: 5/3 grow/shrink: 3/16 up/down: 1061/-1184) Total: -123 bytes text data bss dec hex filename 980757 485 7296 988538 f157a busybox_old 980634 485 7296 988415 f14ff busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: convert two more functions to "z" logicDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: remove BC_STATUS_EOF (again), the condition is detectable as len==0Denys Vlasenko
function old new delta bc_read_line 147 129 -18 bc_vm_run 618 591 -27 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-45) Total: -45 bytes text data bss dec hex filename 980802 485 7296 988583 f15a7 busybox_old 980757 485 7296 988538 f157a busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12dc: fix EOF handling in case of last line being incompleteDenys Vlasenko
This wasn't working correctly: $ echo -ne '10 20+p' | dc 30 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12testsuite: add bc and dc testsDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: further conversions to "z" logicDenys Vlasenko
function old new delta bc_program_exec 3876 - -3876 zbc_program_exec - 3963 +3963 bc_program_execStr 429 - -429 zbc_program_execStr - 427 +427 bc_vm_file 197 - -197 zbc_vm_file - 187 +187 bc_vm_process 74 - -74 zbc_vm_process - 61 +61 bc_parse_pushIndex 66 68 +2 bc_vm_run 624 618 -6 dc_main 187 176 -11 bc_program_reset 64 - -64 zbc_program_pushArray 111 - -111 ------------------------------------------------------------------------------ (add/remove: 4/6 grow/shrink: 1/2 up/down: 4640/-4768) Total: -128 bytes text data bss dec hex filename 980922 485 7296 988703 f161f busybox_old 980794 485 7296 988575 f159f busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: optimize bc_parse_pushIndex()Denys Vlasenko
function old new delta bc_parse_pushIndex 80 68 -12 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: convert even more of lexer functions to "z" conventionDenys Vlasenko
function old new delta bc_parse_name 416 - -416 zbc_parse_name - 414 +414 bc_parse_parse 305 - -305 zbc_parse_parse - 311 +311 bc_program_read 271 - -271 zbc_program_read - 261 +261 bc_parse_text 129 - -129 zbc_parse_text - 122 +122 dc_parse_parse 26 - -26 zdc_parse_parse - 23 +23 bc_program_index 66 64 -2 bc_vm_process 92 74 -18 bc_program_execStr 460 429 -31 bc_parse_expr_empty_ok 1939 1882 -57 ------------------------------------------------------------------------------ (add/remove: 5/5 grow/shrink: 0/4 up/down: 1131/-1255) Total: -124 bytes text data bss dec hex filename 981058 485 7296 988839 f16a7 busybox_old 980934 485 7296 988715 f162b busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: convert even more of lexer functions to "z" conventionDenys Vlasenko
function old new delta bc_parse_stmt 1594 - -1594 zbc_parse_stmt - 1540 +1540 common_parse_expr 43 - -43 zcommon_parse_expr - 40 +40 bc_parse_expr 24 - -24 zbc_parse_expr - 24 +24 zbc_parse_body 108 104 -4 bc_program_read 277 271 -6 bc_program_execStr 468 460 -8 bc_parse_expr_empty_ok 1955 1939 -16 bc_parse_name 451 416 -35 bc_parse_parse 476 305 -171 ------------------------------------------------------------------------------ (add/remove: 3/3 grow/shrink: 0/6 up/down: 1604/-1901) Total: -297 bytes text data bss dec hex filename 981355 485 7296 989136 f17d0 busybox_old 981058 485 7296 988839 f16a7 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: convert more of lexer functions to "z" conventionDenys Vlasenko
function old new delta dc_parse_expr 748 - -748 zdc_parse_expr - 688 +688 bc_parse_endBody 338 - -338 zbc_parse_endBody - 343 +343 bc_parse_auto 201 - -201 zbc_parse_auto - 198 +198 dc_parse_mem 115 - -115 zdc_parse_mem - 108 +108 bc_parse_body 116 - -116 zbc_parse_body - 108 +108 bc_parse_string 102 - -102 zbc_parse_string - 100 +100 dc_parse_register 43 - -43 zdc_parse_register - 40 +40 common_parse_expr 40 43 +3 bc_parse_parse 321 476 +155 bc_parse_stmt 1598 1594 -4 dc_parse_parse 44 26 -18 bc_parse_reset 153 - -153 ------------------------------------------------------------------------------ (add/remove: 7/8 grow/shrink: 2/2 up/down: 1743/-1838) Total: -95 bytes text data bss dec hex filename 981450 485 7296 989231 f182f busybox_old 981355 485 7296 989136 f17d0 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: partially convert lexer functions to "z" conventionDenys Vlasenko
function old new delta bc_lex_token 1228 - -1228 zbc_lex_token - 1193 +1193 dc_lex_token 674 - -674 zdc_lex_token - 672 +672 bc_parse_operator 177 - -177 zbc_parse_operator - 175 +175 bc_parse_else 133 - -133 zbc_parse_else - 133 +133 bc_lex_next 91 - -91 zbc_lex_next - 81 +81 dc_parse_expr 744 748 +4 bc_parse_string 100 102 +2 bc_parse_body 114 116 +2 dc_parse_mem 116 115 -1 bc_parse_text 130 129 -1 dc_parse_register 51 43 -8 bc_parse_endBody 358 338 -20 bc_parse_name 513 451 -62 bc_parse_auto 265 201 -64 bc_parse_expr_empty_ok 2032 1955 -77 bc_parse_parse 417 321 -96 bc_parse_stmt 1753 1598 -155 ------------------------------------------------------------------------------ (add/remove: 5/5 grow/shrink: 3/9 up/down: 2262/-2787) Total: -525 bytes text data bss dec hex filename 981975 485 7296 989756 f1a3c busybox_old 981450 485 7296 989231 f182f busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: code shrink in bc_num_cmp()Denys Vlasenko
function old new delta bc_num_cmp 275 231 -44 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: simplify zbc_program_logical()Denys Vlasenko
function old new delta bc_program_exec 3918 3876 -42 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-42) Total: -42 bytes text data bss dec hex filename 982061 485 7296 989842 f1a92 busybox_old 982019 485 7296 989800 f1a68 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-12bc: simplify nested read() checkDenys Vlasenko
function old new delta bc_vm_run 622 624 +2 dc_main 186 187 +1 bc_main 72 73 +1 bc_program_read 312 277 -35 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/1 up/down: 4/-35) Total: -31 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-11bc: in non-interactive config, POSIX error functions never return nonzeroDenys Vlasenko
function old new delta bc_parse_expr_empty_ok 2036 2032 -4 bc_parse_stmt 1767 1753 -14 bc_lex_token 1259 1228 -31 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-49) Total: -49 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-11bc: use common_parse_init() in bc_vm_init()Denys Vlasenko
function old new delta common_parse_init 26 45 +19 dc_parse_init 17 - -17 bc_parse_init 17 - -17 bc_vm_init 744 725 -19 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 1/1 up/down: 19/-53) Total: -34 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-11bc: fix EOF handling in bc_program_read()Denys Vlasenko
$ bc -q read() 2^D^D2 ^ prints the result of read()'ed expression function old new delta zbc_program_print 629 642 +13 bc_program_read 322 312 -10 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 13/-10) Total: 3 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-11bc: tweak commentDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>