Denys Vlasenko 19eee8ed7cf bc: fix for() to not leave data on stack function old new delta
zbc_parse_stmt_possibly_auto 1665 1697 +32
zbc_vm_process 672 701 +29
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 61/0) Total: 61 bytes
text data ... 21 Dec 2018 Denys Vlasenko 5d57bc442df bc: fix infinite state growth for "yes 1 | bc" case function old new delta
zbc_vm_process 585 672 +87
bc_func_init 50 86 +36
zbc_program_num 990 1022 +32
bc_program_str 17 47 +30
bc_program_current_func ... 21 Dec 2018 Denys Vlasenko 447dc02c275 bc: fix comment Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 21 Dec 2018 Denys Vlasenko 52caa007e3f bc: for(;;) fix from upstream Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 21 Dec 2018 Denys Vlasenko 047154472ac bc: shrink bc_program_add_fn() Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 21 Dec 2018 Denys Vlasenko 44a99ca6171 bc: "dc only" config does not need G.prog.fn_map function old new delta
bc_program_add_fn - 43 +43
bc_vm_init 655 675 +20
bc_program_addFunc 138 118 -20
zdc_parse_expr 658 635 -23
zdc_program_asciify ... 20 Dec 2018 Denys Vlasenko 5acd14ba5b9 bc: fix keyword matching to not think "ifz" is the "if" keyword function old new delta
zbc_lex_next 2224 2225 +1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 20 Dec 2018 Denys Vlasenko 503faf9d533 bc: shrink "dc only" code by dropping unused structure members function old new delta
zbc_program_num 979 981 +2
zbc_program_pushArray 147 145 -2
bc_program_pushVar 198 196 -2
bc_program_func 17 15 -2
dc_num_printChar ... 20 Dec 2018 Denys Vlasenko eaa3b00002e bc: shorten bc_program_addFunc() function old new delta
bc_func_init - 50 +50
bc_program_addFunc 201 138 -63
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 50/-63) Total: -13 bytes
Signed-off-by: Deny... 19 Dec 2018 Denys Vlasenko 408b7d45f63 bc: fix "dc only" and "bc only" configs Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 19 Dec 2018 Denys Vlasenko fa210791838 bc: rename dc-specific functions, simplify zdc_program_execStr() a bit function old new delta
zbc_program_execStr 496 - -496
zdc_program_execStr - 491 +491
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 19 Dec 2018 Denys Vlasenko 44dbe675ddb bc: rename zbc_parse_string->bc_parse_pushSTR, do not emit next opcode in it function old new delta
bc_parse_pushSTR - 73 +73
zbc_parse_stmt_possibly_auto 1638 1640 +2
zbc_parse_string 89 - -89
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shri... 19 Dec 2018 Denys Vlasenko ea5cad2a0dc bc: avoid bc_vec_item() calls in bc_vm_run() function old new delta
bc_vm_run 124 112 -12
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 19 Dec 2018 Denys Vlasenko eac0de55d69 bc: avoid bc_vec_item() calls in bc_array_copy() function old new delta
zbc_program_copyToVar 311 300 -11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 19 Dec 2018 Denys Vlasenko 87888ce4d82 bc: avoid successive bc_vec_item(&func->autos, i) function old new delta
zbc_func_insert 97 100 +3
zbc_program_call 353 354 +1
zbc_program_exec 4085 4078 -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shri... 19 Dec 2018 Denys Vlasenko f36a0adf8b1 bc: remove unnecessary union use Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 19 Dec 2018 Denys Vlasenko dfe1dd20318 bc: "unsigned_n > 0" is shorter code than "unsigned_n >= 1" function old new delta
zbc_program_print 680 677 -3
zbc_program_exec 4089 4085 -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-7) Total: -7 bytes
text data ... 19 Dec 2018 Denys Vlasenko 65e1046abf2 bc: open-code bc_parse_updateFunc() macro This clearly shows one place which would need changing
for nested funcdefs to work.
function old new delta
bc_parse_reset 106 110 +4
zbc_vm_process 586 585 -1
------------------------------------------------------------------------------
(add/remove: 0... 19 Dec 2018 Denys Vlasenko 684d441f5c8 bc: make bc_program_addFunc() return new idx, untangle &p->fidx interaction In:
bc_program_addFunc(name, idx);
p->func = bc_program_func(p->fidx);
in some cases p->fidx was updated by _first_ statement - because passed idx
was pointing at it. This was very obscure.
function old new delta
zdc_parse_expr 653 658 +5
bc_program_addFunc ... 19 Dec 2018 Denys Vlasenko 085b4202209 bc: "reload stack only after insts" change missed a few places Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 19 Dec 2018 Denys Vlasenko 5aa54830bf3 bc: rename a few functions function old new delta
bc_map_find_ge - 71 +71
bc_map_find_exact - 50 +50
bc_map_index 50 - -50
bc_map_find 71 - -71
--------------------------------... 19 Dec 2018 Denys Vlasenko e3d3d2067dd bc: remove redundant strdup+free in zbc_parse_call() function old new delta
zbc_parse_name 527 482 -45
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-45) Total: -45 bytes
text data bss dec hex filename
981541 485 7296 989322 f188a busy... 19 Dec 2018 Denys Vlasenko 4796a1d5375 bc: delete G.prog.strmb for real Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 19 Dec 2018 Denys Vlasenko b80d7aad1b0 bc: in execution loop, reload stack only after insts which can change it Only these functions affect G.prog.exestack:
zbc_program_read
zbc_program_call
zbc_program_return
zbc_program_nquit
zbc_program_execStr
function old new delta
zbc_program_exec 3995 4093 +98
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 u... 19 Dec 2018 Denys Vlasenko d6e24bd795d bc: simplify bc_array_expand() Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko 30a8e0c2f90 bc: code shrink function old new delta
zbc_program_print 684 680 -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-4) Total: -4 bytes
text data bss dec hex filename
981368 485 7296 989149 f17dd busy... 18 Dec 2018 Denys Vlasenko 694d2982e5c bc: code shrink function old new delta
bc_program_name 67 63 -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-4) Total: -4 bytes
text data bss dec hex filename
981372 485 7296 989153 f17e1 busy... 18 Dec 2018 Denys Vlasenko 7b30bc0222f bc: shrink bc_program_pushVar() function old new delta
bc_program_pushVar 203 198 -5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko d340143247f bc: get rid of G.prog.ob, G.prog.strmb function old new delta
zbc_num_printNum 489 540 +51
zbc_program_asciify 426 473 +47
zbc_program_print 686 684 -2
zbc_program_exec 4008 3995 -13
zbc_program_assign ... 18 Dec 2018 Denys Vlasenko 09fe0aaefac bc: do not show -i in --help, it's a NOP (for now) Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko 7f2d59c38dc bc: style edit, no code changes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko 3f940c9c707 bc: shrink bc_program_index() function old new delta
bc_program_index 66 47 -19
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-19) Total: -19 bytes
text data bss dec hex filename
981418 485 7296 989199 f180f busy... 18 Dec 2018 Denys Vlasenko 55f3cab7e9f bc: fix "echo -n '#foo' | bc" not eating last 'o' function old new delta
zdc_parse_expr 656 653 -3
bc_lex_lineComment 39 36 -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-6) Total: -6 bytes
text data ... 18 Dec 2018 Denys Vlasenko a199cc95b72 bc: shrink zdc_parse_expr() function old new delta
zdc_parse_expr 656 653 -3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko 07597cd35df bc: optimize zbc_lex_string() function old new delta
zbc_lex_next 2359 2353 -6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko ef271da33f1 bc: shrink zdc_lex_string() This actually fixes a rather obscure bug. This was failing to find
end of the string:
$ echo -n '[foo]' | dc
dc: string end could not be found
function old new delta
zbc_lex_next 2230 2141 -89
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shr... 18 Dec 2018 Denys Vlasenko d4258dd321d bc: another for() loop simplified function old new delta
zbc_program_print 688 686 -2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko 5c0c5abba09 bc: simplify another for() loop function old new delta
zbc_num_d 563 557 -6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko 6b0fbd14fc0 bc: rewrite more for() loops function old new delta
bc_program_name 75 67 -8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko 71c82d1d8ca bc: rewrite another for() loop function old new delta
zbc_num_d 570 563 -7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko e2e6ffd3c5e bc: replace signed division / 10 by unsigned function old new delta
zbc_num_a 443 441 -2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko 4113e1f2cd2 bc: rewrite bc_num_compare() to be readable function old new delta
bc_num_compare 59 51 -8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko 57734c926bb bc: fold zbc_num_stream() into its single caller Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 17 Dec 2018 Denys Vlasenko f6e3f8511e3 bc: get rid of BcNum BcProgram::ib,hexb function old new delta
zbc_program_num 907 943 +36
zbc_program_assign 485 474 -11
bc_vm_init 757 739 -18
bc_num_ten 30 - -30
--------------------------------... 17 Dec 2018 Denys Vlasenko 0f31a5c79e8 bc: fixes to bugs found while testing 64-bit build Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko f4f10720fe4 bc: fixed from 64-bit compile Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> 18 Dec 2018 Denys Vlasenko 6d3b4bb24da udhcpc: check that 4-byte options are indeed 4-byte, closes 11506 function old new delta
udhcp_get_option32 - 27 +27
udhcp_get_option 231 248 +17
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 44/0) Total: 44 bytes
Signed-off-by: Deny... 17 Dec 2018 Denys Vlasenko 4b72aebe80a bc: remove "error after expression parsing" check It is misplaced: caller knows better what can or cannot follow the expression.
Sometimes even caller's caller: "if (1) return a+b else..." -
parser of "return" does not know that "else" after it is valid,
parser of stmt does not know it either, - only parser of
"if" knows it!
The removed code balked on e.g. "{ print 1 }" statement.
This does not break any valid programs, but starts accepting ... 17 Dec 2018 Denys Vlasenko b44a7f1d664 bc: tighten up input NUL handling function old new delta
static.dc_lex_tokens - 90 +90
bc_error_bad_character 17 31 +14
static.dc_lex_regs - 13 +13
bc_read_line 406 410 +4
bc_program_index ... 17 Dec 2018 Denys Vlasenko e42cc19b51f bc: simplify zdc_parse_string() function old new delta
bc_program_index 64 66 +2
zdc_parse_expr 671 656 -15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 2/-15) Total: -13 bytes
text data ... 17 Dec 2018