oweals/busybox.git
5 years agobc: shorten "limits" output
Denys Vlasenko [Fri, 4 Jan 2019 15:26:19 +0000 (16:26 +0100)]
bc: shorten "limits" output

   text    data     bss     dec     hex filename
 979016     485    7296  986797   f0ead busybox_old
 978959     485    7296  986740   f0e74 busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: formatting changes, added a FIXME comment, no logic changes
Denys Vlasenko [Fri, 4 Jan 2019 14:54:40 +0000 (15:54 +0100)]
bc: formatting changes, added a FIXME comment, no logic changes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: support void functions (GNU compat)
Denys Vlasenko [Fri, 4 Jan 2019 12:58:46 +0000 (13:58 +0100)]
bc: support void functions (GNU compat)

function                                             old     new   delta
xc_program_print                                       -     689    +689
zxc_vm_process                                       814     869     +55
zxc_program_exec                                    4098    4116     +18
zxc_program_assign                                   385     392      +7
bc_result_free                                        43      46      +3
zxc_program_binOpPrep                                243     245      +2
zdc_program_execStr                                  518     520      +2
zxc_program_print                                    683       -    -683
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 6/0 up/down: 776/-683)           Total: 93 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agodc: fit returning of string
Denys Vlasenko [Fri, 4 Jan 2019 05:18:00 +0000 (06:18 +0100)]
dc: fit returning of string

function                                             old     new   delta
zxc_program_exec                                    4087    4098     +11

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agodc: fix '?'
Denys Vlasenko [Fri, 4 Jan 2019 04:41:47 +0000 (05:41 +0100)]
dc: fix '?'

function                                             old     new   delta
zdc_parse_expr                                       470     479      +9
zxc_vm_process                                       839     814     -25
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 9/-25)             Total: -16 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: eliminate struct BcInstPtr::results_len_before_call, it is redundant
Denys Vlasenko [Thu, 3 Jan 2019 23:34:52 +0000 (00:34 +0100)]
bc: eliminate struct BcInstPtr::results_len_before_call, it is redundant

function                                             old     new   delta
zbc_program_call                                     332     318     -14
zxc_program_exec                                    4147    4087     -60
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-74)             Total: -74 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: add a palceholder comment for "void" return
Denys Vlasenko [Thu, 3 Jan 2019 23:21:29 +0000 (00:21 +0100)]
bc: add a palceholder comment for "void" return

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: remove extra div/0 test, remove test for string function parameter
Denys Vlasenko [Thu, 3 Jan 2019 23:05:07 +0000 (00:05 +0100)]
bc: remove extra div/0 test, remove test for string function parameter

function                                             old     new   delta
zbc_program_call                                     354     332     -22
zxc_program_assign                                   426     385     -41
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-63)             Total: -63 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fix "...; return}" to work, disallow "return ()"
Denys Vlasenko [Thu, 3 Jan 2019 22:34:36 +0000 (23:34 +0100)]
bc: fix "...; return}" to work, disallow "return ()"

function                                             old     new   delta
zbc_parse_expr                                        24    1865   +1841
zbc_parse_stmt_possibly_auto                        1425    1413     -12
bc_parse_expr_empty_ok                              1843       -   -1843
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 1841/-1855)        Total: -14 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: make error line number also size_t, like everything else
Denys Vlasenko [Wed, 2 Jan 2019 15:30:24 +0000 (16:30 +0100)]
bc: make error line number also size_t, like everything else

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: generate large bc tests on the fly, -5 mbytes in the git tree
Denys Vlasenko [Wed, 2 Jan 2019 13:00:20 +0000 (14:00 +0100)]
bc: generate large bc tests on the fly, -5 mbytes in the git tree

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: speed up string printing, fix print ""
Denys Vlasenko [Wed, 2 Jan 2019 04:03:53 +0000 (05:03 +0100)]
bc: speed up string printing, fix print ""

function                                             old     new   delta
static.esc                                             -       9      +9
zxc_program_print                                    681     683      +2
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 11/0)               Total: 11 bytes
   text    data     bss     dec     hex filename
 979144     485    7296  986925   f0f2d busybox_old
 979062     485    7296  986843   f0edb busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: upstream fixes
Denys Vlasenko [Tue, 1 Jan 2019 20:50:14 +0000 (21:50 +0100)]
bc: upstream fixes

function                                             old     new   delta
bc_parse_expr_empty_ok                              1764    1843     +79
bc_error_at                                            -      62     +62
bc_parse_inst_isLeaf                                   -      30     +30
zbc_func_insert                                      100     120     +20
bc_error_bad_function_definition                       -      10     +10
bc_error_bad_assignment                                -      10     +10
zxc_lex_next                                        1608    1614      +6
ok_in_expr                                            30       -     -30
zxc_vm_process                                       874     839     -35
------------------------------------------------------------------------------
(add/remove: 4/1 grow/shrink: 3/1 up/down: 217/-65)           Total: 152 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agosingle-applet build --help had extra \n, remove
Denys Vlasenko [Tue, 1 Jan 2019 15:54:30 +0000 (16:54 +0100)]
single-applet build --help had extra \n, remove

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agotls: pstm code shrink
Denys Vlasenko [Tue, 1 Jan 2019 14:40:43 +0000 (15:40 +0100)]
tls: pstm code shrink

Optimize ABI calling convention and "dead code" cases where return value
is known to be always "success".

function                                             old     new   delta
pstm_mod                                             113    1227   +1114
pstm_exptmod                                        1463    1532     +69
pstm_montgomery_reduce                               381     393     +12
pstm_sqr_comba                                       478     487      +9
pstm_mul_comba                                       447     452      +5
der_binary_to_pstm                                    42      45      +3
pstm_count_bits                                       48      46      -2
pstm_clear                                            72      70      -2
pstm_clamp                                            57      55      -2
pstm_zero                                             38      34      -4
pstm_init_size                                        46      42      -4
pstm_init_for_read_unsigned_bin                       24      20      -4
pstm_grow                                             72      68      -4
pstm_unsigned_bin_size                                37      32      -5
pstm_cmp_mag                                          78      72      -6
pstm_copy                                             92      84      -8
pstm_mul_d                                           224     215      -9
pstm_rshd                                            104      94     -10
pstm_mul_2                                           156     146     -10
tls_handshake                                       2085    2072     -13
psRsaEncryptPub                                      421     408     -13
pstm_lshd                                            109      95     -14
pstm_cmp                                              54      39     -15
s_pstm_sub                                           228     212     -16
pstm_init_copy                                        72      52     -20
pstm_read_unsigned_bin                               109      88     -21
pstm_mulmod                                          120      99     -21
s_pstm_add                                           337     314     -23
pstm_add                                             108      84     -24
pstm_mul_2d                                          186     161     -25
pstm_sub                                             102      74     -28
pstm_to_unsigned_bin                                 151     120     -31
pstm_set                                              34       -     -34
pstm_div_2d                                          409     373     -36
pstm_init                                             42       -     -42
pstm_exch                                             50       -     -50
pstm_montgomery_setup                                 89       -     -89
pstm_2expt                                            96       -     -96
pstm_montgomery_calc_normalization                   140       -    -140
pstm_div                                            1522       -   -1522
------------------------------------------------------------------------------
(add/remove: 0/7 grow/shrink: 6/27 up/down: 1212/-2343)     Total: -1131 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: in xc_read_line(), check ^C on NUL input bytes too
Denys Vlasenko [Tue, 1 Jan 2019 01:19:02 +0000 (02:19 +0100)]
bc: in xc_read_line(), check ^C on NUL input bytes too

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: remove superfluous assigment
Denys Vlasenko [Mon, 31 Dec 2018 18:50:06 +0000 (19:50 +0100)]
bc: remove superfluous assigment

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: support ibase up to 36 (GNU compat)
Denys Vlasenko [Mon, 31 Dec 2018 18:42:13 +0000 (19:42 +0100)]
bc: support ibase up to 36 (GNU compat)

function                                             old     new   delta
zxc_program_num                                      995    1018     +23

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fold xc_lex_more_input() into peek_inbuf()
Denys Vlasenko [Mon, 31 Dec 2018 17:48:10 +0000 (18:48 +0100)]
bc: fold xc_lex_more_input() into peek_inbuf()

function                                             old     new   delta
peek_inbuf                                            69      56     -13

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agopmap: make 32-bit version work better on 64-bit kernels
Denys Vlasenko [Sun, 30 Dec 2018 19:24:59 +0000 (20:24 +0100)]
pmap: make 32-bit version work better on 64-bit kernels

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agomake_single_applets.sh: fix for BSS trick
Denys Vlasenko [Sun, 30 Dec 2018 19:07:54 +0000 (20:07 +0100)]
make_single_applets.sh: fix for BSS trick

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agoStart 1.31.0 development cycle
Denys Vlasenko [Sun, 30 Dec 2018 15:32:00 +0000 (16:32 +0100)]
Start 1.31.0 development cycle

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agoBump version to 1.30.0 1_30_0
Denys Vlasenko [Sun, 30 Dec 2018 15:15:57 +0000 (16:15 +0100)]
Bump version to 1.30.0

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: tidying up, no logic changes
Denys Vlasenko [Sun, 30 Dec 2018 14:56:36 +0000 (15:56 +0100)]
bc: tidying up, no logic changes

function                                             old     new   delta
bc_ops_prec_and_assoc                                  -      25     +25
xc_vm_init                                           665     663      -2
bc_parse_ops                                          25       -     -25
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/1 up/down: 25/-27)             Total: -2 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: simplify representation of 0.5 in sqrt()
Denys Vlasenko [Sat, 29 Dec 2018 15:23:34 +0000 (16:23 +0100)]
bc: simplify representation of 0.5 in sqrt()

function                                             old     new   delta
zxc_program_exec                                    4012    4149    +137
zdc_program_printStream                              144       -    -144
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/0 up/down: 137/-144)           Total: -7 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: remove special-cased assignment to ibase, it works correctly with general rules
Denys Vlasenko [Sat, 29 Dec 2018 13:52:30 +0000 (14:52 +0100)]
bc: remove special-cased assignment to ibase, it works correctly with general rules

function                                             old     new   delta
zxc_program_print                                    683     681      -2
zxc_program_prep                                      91      89      -2
zxc_program_copyToVar                                300     298      -2
zdc_program_printStream                              146     144      -2
zdc_program_execStr                                  520     518      -2
zdc_program_asciify                                  370     368      -2
zxc_program_exec                                    4016    4012      -4
zdc_program_modexp                                   694     688      -6
zxc_program_num                                     1020     995     -25
zxc_program_binOpPrep                                306     243     -63
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/10 up/down: 0/-110)          Total: -110 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: more fixes for unusual input bases
Denys Vlasenko [Sat, 29 Dec 2018 01:40:03 +0000 (02:40 +0100)]
bc: more fixes for unusual input bases

function                                             old     new   delta
zxc_program_num                                      990    1020     +30
zxc_lex_number                                       172     202     +30
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 60/0)               Total: 60 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fix handling of "digits" above 9
Denys Vlasenko [Sat, 29 Dec 2018 01:24:19 +0000 (02:24 +0100)]
bc: fix handling of "digits" above 9

function                                             old     new   delta
zxc_lex_next                                        1573    1608     +35
xc_parse_pushIndex                                    58      56      -2
xc_program_index                                      71      63      -8
zxc_program_num                                     1022     990     -32
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 35/-42)             Total: -7 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agoconfig: dpkg_deb should be dpkg-deb
Denys Vlasenko [Fri, 28 Dec 2018 17:24:45 +0000 (18:24 +0100)]
config: dpkg_deb should be dpkg-deb

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agoconfig: more tweaks
Denys Vlasenko [Fri, 28 Dec 2018 16:45:35 +0000 (17:45 +0100)]
config: more tweaks

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: bc enables FEATURE_DC_BIG, for correct dc testsuite operation
Denys Vlasenko [Fri, 28 Dec 2018 14:13:23 +0000 (15:13 +0100)]
bc: bc enables FEATURE_DC_BIG, for correct dc testsuite operation

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agoconfig: add size information for three more applets
Denys Vlasenko [Fri, 28 Dec 2018 12:37:44 +0000 (13:37 +0100)]
config: add size information for three more applets

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: rename config options
Denys Vlasenko [Thu, 27 Dec 2018 21:52:13 +0000 (22:52 +0100)]
bc: rename config options

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agoconfig: add size information for udhcpc
Denys Vlasenko [Fri, 28 Dec 2018 12:03:48 +0000 (13:03 +0100)]
config: add size information for udhcpc

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agoconfig: update size information
Denys Vlasenko [Fri, 28 Dec 2018 02:20:17 +0000 (03:20 +0100)]
config: update size information

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: rename functions common to bc and dc as xc_FOO()
Denys Vlasenko [Thu, 27 Dec 2018 17:23:58 +0000 (18:23 +0100)]
bc: rename functions common to bc and dc as xc_FOO()

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: G.prog.zero does not need initializing num[] vector
Denys Vlasenko [Thu, 27 Dec 2018 17:08:30 +0000 (18:08 +0100)]
bc: G.prog.zero does not need initializing num[] vector

function                                             old     new   delta
bc_vm_init                                           676     665     -11

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agorandomconfig fixes
Denys Vlasenko [Thu, 27 Dec 2018 17:03:20 +0000 (18:03 +0100)]
randomconfig fixes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: use ALIGN1 where appropriate
Denys Vlasenko [Wed, 26 Dec 2018 20:17:12 +0000 (21:17 +0100)]
bc: use ALIGN1 where appropriate

   text    data     bss     dec     hex filename
 980138     485    7296  987919   f130f busybox_old
 980128     485    7296  987909   f1305 busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: undo debugging change, add a small optimization
Denys Vlasenko [Wed, 26 Dec 2018 20:01:41 +0000 (21:01 +0100)]
bc: undo debugging change, add a small optimization

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: simple speedups
Denys Vlasenko [Wed, 26 Dec 2018 19:30:47 +0000 (20:30 +0100)]
bc: simple speedups

function                                             old     new   delta
bc_parse_pushName                                     20      56     +36
bc_program_index                                      47      71     +24
bc_parse_pushIndex                                    52      58      +6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 66/0)               Total: 66 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: use '\0' insteads of 0xff (BC_PARSE_STREND) as name terminator
Denys Vlasenko [Wed, 26 Dec 2018 19:02:09 +0000 (20:02 +0100)]
bc: use '\0' insteads of 0xff (BC_PARSE_STREND) as name terminator

function                                             old     new   delta
zdc_program_printStream                                -     146    +146
zbc_program_exec                                    4003    4016     +13
zdc_parse_expr                                       473     470      -3
bc_parse_pushName                                     31      20     -11
bc_program_name                                       63      34     -29
zbc_program_pushArray                                147       -    -147
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/3 up/down: 159/-190)          Total: -31 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: reduce indentation, no code changes
Denys Vlasenko [Wed, 26 Dec 2018 18:24:15 +0000 (19:24 +0100)]
bc: reduce indentation, no code changes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fix "bc only" build
Denys Vlasenko [Wed, 26 Dec 2018 18:09:23 +0000 (19:09 +0100)]
bc: fix "bc only" build

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fix "dc only" build
Denys Vlasenko [Wed, 26 Dec 2018 18:06:05 +0000 (19:06 +0100)]
bc: fix "dc only" build

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: comment out code which appears to be never reached
Denys Vlasenko [Wed, 26 Dec 2018 17:59:42 +0000 (18:59 +0100)]
bc: comment out code which appears to be never reached

function                                             old     new   delta
zbc_lex_next                                        1587    1568     -19

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: remove all logic for multi-line buffering
Denys Vlasenko [Wed, 26 Dec 2018 17:46:03 +0000 (18:46 +0100)]
bc: remove all logic for multi-line buffering

function                                             old     new   delta
zbc_vm_process                                       865     874      +9
zbc_parse_text_init                                   51      38     -13
bc_read_line                                         394     345     -49
peek_inbuf                                           292      69    -223
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 9/-285)           Total: -276 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: prepare for char-by-char input handling
Denys Vlasenko [Wed, 26 Dec 2018 17:32:43 +0000 (18:32 +0100)]
bc: prepare for char-by-char input handling

function                                             old     new   delta
peek_inbuf                                             -     292    +292
parse_lex_by_checking_eq_sign                          -      26     +26
eat_inbuf                                              -      22     +22
zbc_vm_execute_FILE                                   52      61      +9
bc_lex_lineComment                                    29      30      +1
zbc_lex_number                                       174     172      -2
bc_vm_run                                            104      99      -5
zbc_num_divmod                                       156     150      -6
bc_lex_file                                           24       -     -24
bc_lex_assign                                         26       -     -26
zbc_lex_next                                        1982    1587    -395
------------------------------------------------------------------------------
(add/remove: 3/2 grow/shrink: 2/4 up/down: 350/-458)         Total: -108 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fix handling of comment/string interactions while buffering input
Denys Vlasenko [Wed, 26 Dec 2018 11:23:05 +0000 (12:23 +0100)]
bc: fix handling of comment/string interactions while buffering input

function                                             old     new   delta
zbc_lex_next                                        1965    1982     +17
zbc_num_divmod                                       150     156      +6
bc_read_line                                         411     394     -17
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 23/-17)              Total: 6 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fix interactive handling of comments in strings and quotes in comments
Denys Vlasenko [Tue, 25 Dec 2018 22:45:57 +0000 (23:45 +0100)]
bc: fix interactive handling of comments in strings and quotes in comments

function                                             old     new   delta
zbc_lex_next                                        1965    1979     +14

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: simplify input pointer manipulation while lexing
Denys Vlasenko [Tue, 25 Dec 2018 22:15:59 +0000 (23:15 +0100)]
bc: simplify input pointer manipulation while lexing

function                                             old     new   delta
bc_lex_name                                           70      68      -2
zbc_lex_number                                       177     174      -3
bc_vm_init                                           679     676      -3
bc_lex_whitespace                                     42      39      -3
zbc_parse_text_init                                   55      51      -4
bc_lex_lineComment                                    37      29      -8
bc_lex_assign                                         34      26      -8
zbc_lex_next                                        2039    1965     -74
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/8 up/down: 0/-105)           Total: -105 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fold struct BcLex into BcParse
Denys Vlasenko [Tue, 25 Dec 2018 21:32:41 +0000 (22:32 +0100)]
bc: fold struct BcLex into BcParse

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: move BcLex::lex member to be the first in struct globals
Denys Vlasenko [Tue, 25 Dec 2018 21:20:14 +0000 (22:20 +0100)]
bc: move BcLex::lex member to be the first in struct globals

function                                             old     new   delta
zbc_program_exec                                    3967    4003     +36
zdc_program_execStr                                  501     520     +19
zbc_posix_error_fmt                                   58      62      +4
bc_vm_init                                           675     679      +4
bc_read_line                                         407     411      +4
bc_error_fmt                                          36      40      +4
zdc_parse_register                                    45      44      -1
zdc_parse_exprs_until_eof                             28      27      -1
zbc_parse_text_init                                   56      55      -1
zbc_parse_stmt_allow_NLINE_before                     55      54      -1
zbc_lex_skip_if_at_NLINE                              19      18      -1
zbc_lex_number                                       178     177      -1
bc_parse_create                                       97      96      -1
bc_lex_whitespace                                     43      42      -1
bc_lex_name                                           71      70      -1
bc_lex_lineComment                                    38      37      -1
bc_lex_assign                                         35      34      -1
zdc_parse_expr                                       476     473      -3
bc_verror_msg                                         93      90      -3
bc_lex_file                                           27      24      -3
zbc_parse_name                                       453     448      -5
bc_parse_expr_empty_ok                              1776    1764     -12
zbc_vm_process                                       878     865     -13
zbc_parse_stmt_possibly_auto                        1451    1425     -26
zbc_lex_next                                        2075    2039     -36
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 6/19 up/down: 71/-112)          Total: -41 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: rename some members and macros, no code changes
Denys Vlasenko [Tue, 25 Dec 2018 20:44:10 +0000 (21:44 +0100)]
bc: rename some members and macros, no code changes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: shorten error messages
Denys Vlasenko [Tue, 25 Dec 2018 20:28:25 +0000 (21:28 +0100)]
bc: shorten error messages

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: make it clear that the code is adapted
Gavin Howard [Tue, 18 Dec 2018 17:03:14 +0000 (10:03 -0700)]
bc: make it clear that the code is adapted

Signed-off-by: Gavin Howard <yzena.tech@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agodc: add two tests
Denys Vlasenko [Tue, 25 Dec 2018 19:50:41 +0000 (20:50 +0100)]
dc: add two tests

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: stop passing a pointer to G.prs down the call chain
Denys Vlasenko [Tue, 25 Dec 2018 19:40:55 +0000 (20:40 +0100)]
bc: stop passing a pointer to G.prs down the call chain

function                                             old     new   delta
rewrite_label_to_current                              19      26      +7
bc_lex_assign                                         28      35      +7
zbc_lex_skip_if_at_NLINE                              14      19      +5
bc_parse_push                                         11      16      +5
bc_parse_operator                                    147     152      +5
bc_parse_create                                       92      97      +5
bc_lex_whitespace                                     38      43      +5
bc_lex_name                                           66      71      +5
bc_lex_lineComment                                    33      38      +5
zbc_lex_number                                       174     178      +4
zbc_parse_text_init                                   53      56      +3
zdc_parse_register                                    43      45      +2
zdc_parse_exprs_until_eof                             26      28      +2
bc_parse_free                                         38      40      +2
bc_lex_file                                           28      27      -1
zbc_parse_pushSTR                                     65      63      -2
bc_parse_expr_empty_ok                              1778    1776      -2
zbc_vm_execute_FILE                                   55      52      -3
bc_vm_init                                           678     675      -3
zbc_parse_stmt_allow_NLINE_before                     59      55      -4
bc_parse_pushNUM                                      80      74      -6
bc_parse_pushJUMP_ZERO                                27      21      -6
bc_parse_pushJUMP                                     27      21      -6
bc_vm_run                                            112     104      -8
bc_parse_pushName                                     39      31      -8
bc_parse_pushIndex                                    60      52      -8
zbc_parse_name                                       468     453     -15
zdc_program_execStr                                  524     501     -23
zdc_parse_mem                                         93      70     -23
zbc_program_exec                                    4003    3967     -36
zdc_parse_expr                                       518     476     -42
zbc_vm_process                                       923     878     -45
zbc_lex_next                                        2158    2070     -88
zbc_parse_stmt_possibly_auto                        1560    1451    -109
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 14/20 up/down: 62/-438)        Total: -376 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: make zbc_program_read() and zdc_program_execStr() use G.prs
Denys Vlasenko [Tue, 25 Dec 2018 18:38:13 +0000 (19:38 +0100)]
bc: make zbc_program_read() and zdc_program_execStr() use G.prs

function                                             old     new   delta
zbc_program_print                                    656     683     +27
zbc_program_exec                                    3976    4003     +27
zdc_program_execStr                                  512     524     +12
bc_num_printNewline                                   45      54      +9
bc_num_printHex                                       61      67      +6
bc_num_printDigits                                   131     137      +6
dc_num_printChar                                      21      24      +3
bc_vm_init                                           675     678      +3
zbc_program_assign                                   424     426      +2
bc_read_line                                         410     407      -3
bc_verror_msg                                         99      93      -6
zbc_lex_next                                        2167    2158      -9
zbc_vm_execute_FILE                                   67      55     -12
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 9/4 up/down: 95/-30)             Total: 65 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fix interactive read()
Denys Vlasenko [Tue, 25 Dec 2018 18:37:23 +0000 (19:37 +0100)]
bc: fix interactive read()

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: add code to detect errors like "print 1 print 2"
Denys Vlasenko [Tue, 25 Dec 2018 17:37:52 +0000 (18:37 +0100)]
bc: add code to detect errors like "print 1 print 2"

function                                             old     new   delta
zbc_vm_process                                       831     925     +94
zbc_program_exec                                    3964    3976     +12
zdc_program_execStr                                  506     512      +6
zbc_lex_next                                        2161    2167      +6
zbc_program_assign                                   419     424      +5
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/0 up/down: 123/0)             Total: 123 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: allow {break} and {continue} (allow RBRACE to terminate them)
Denys Vlasenko [Tue, 25 Dec 2018 16:07:51 +0000 (17:07 +0100)]
bc: allow {break} and {continue} (allow RBRACE to terminate them)

function                                             old     new   delta
zbc_parse_stmt_possibly_auto                        1599    1560     -39

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: shrink parsing code a bit more, disallow "auto a b c" (without commas)
Denys Vlasenko [Tue, 25 Dec 2018 15:39:01 +0000 (16:39 +0100)]
bc: shrink parsing code a bit more, disallow "auto a b c" (without commas)

function                                             old     new   delta
bc_parse_expr_empty_ok                              1791    1785      -6
zbc_parse_stmt_possibly_auto                        1675    1599     -76
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-82)             Total: -82 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: simplify bc_parse_expr_empty_ok()
Denys Vlasenko [Tue, 25 Dec 2018 00:43:52 +0000 (01:43 +0100)]
bc: simplify bc_parse_expr_empty_ok()

function                                             old     new   delta
bc_parse_expr_empty_ok                              1810    1791     -19

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: simplify bc_parse_expr_empty_ok()
Denys Vlasenko [Tue, 25 Dec 2018 00:21:16 +0000 (01:21 +0100)]
bc: simplify bc_parse_expr_empty_ok()

function                                             old     new   delta
bc_parse_expr_empty_ok                              1819    1810      -9

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: simplify bc_parse_expr_empty_ok()
Denys Vlasenko [Tue, 25 Dec 2018 00:16:37 +0000 (01:16 +0100)]
bc: simplify bc_parse_expr_empty_ok()

function                                             old     new   delta
bc_parse_expr_empty_ok                              1846    1819     -27

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: BC_RESULT_ONE is bc-specific
Denys Vlasenko [Mon, 24 Dec 2018 22:41:31 +0000 (23:41 +0100)]
bc: BC_RESULT_ONE is bc-specific

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: partially deinline BC_PARSE_LEAF() macro
Denys Vlasenko [Mon, 24 Dec 2018 22:22:40 +0000 (23:22 +0100)]
bc: partially deinline BC_PARSE_LEAF() macro

function                                             old     new   delta
ok_in_expr                                             -      30     +30
bc_parse_expr_empty_ok                              1972    1846    -126
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 30/-126)           Total: -96 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: rename lexer variables, use smallints where appropriate
Denys Vlasenko [Mon, 24 Dec 2018 21:55:54 +0000 (22:55 +0100)]
bc: rename lexer variables, use smallints where appropriate

function                                             old     new   delta
bc_parse_expr_empty_ok                              1966    1972      +6
zdc_parse_expr                                       514     518      +4
zbc_lex_number                                       177     174      -3
dc_num_printChar                                      24      21      -3
bc_lex_whitespace                                     41      38      -3
bc_lex_name                                           69      66      -3
bc_lex_lineComment                                    36      33      -3
bc_lex_assign                                         31      28      -3
zbc_parse_name                                       472     468      -4
zbc_vm_process                                       836     831      -5
zdc_program_execStr                                  512     506      -6
zbc_parse_text_init                                   59      53      -6
bc_num_printNewline                                   51      45      -6
bc_num_printHex                                       67      61      -6
bc_num_printDigits                                   137     131      -6
zbc_program_assign                                   426     419      -7
zbc_parse_stmt_possibly_auto                        1682    1675      -7
zbc_program_exec                                    3977    3964     -13
zbc_program_print                                    683     656     -27
zbc_lex_next                                        2233    2161     -72
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/18 up/down: 10/-183)         Total: -173 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fix "bc -s" only warning on "define f()<newline>", not exiting
Denys Vlasenko [Mon, 24 Dec 2018 17:28:56 +0000 (18:28 +0100)]
bc: fix "bc -s" only warning on "define f()<newline>", not exiting

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: POSIX error/warn functions can be 'z' functions too
Denys Vlasenko [Mon, 24 Dec 2018 17:11:41 +0000 (18:11 +0100)]
bc: POSIX error/warn functions can be 'z' functions too

In non-interactive config, they either return 'success', or do not return.

function                                             old     new   delta
zbc_posix_error_fmt                                   41      39      -2
bc_parse_expr_empty_ok                              1751    1744      -7
zbc_parse_stmt_possibly_auto                        1322    1314      -8
------------------------------------------------------------------------------
(add/remove: 5/5 grow/shrink: 0/2 up/down: 118/-135)          Total: -17 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: remove unnecessary NULL initializers
Denys Vlasenko [Mon, 24 Dec 2018 16:15:34 +0000 (17:15 +0100)]
bc: remove unnecessary NULL initializers

function                                             old     new   delta
zbc_program_assign                                   442     426     -16
zbc_program_exec                                    4043    3977     -66
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-82)             Total: -82 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: move relational LEXs before math LEXs - shorten dc_LEX_to_INST[]
Denys Vlasenko [Mon, 24 Dec 2018 16:06:37 +0000 (17:06 +0100)]
bc: move relational LEXs before math LEXs - shorten dc_LEX_to_INST[]

function                                             old     new   delta
dc_LEX_to_INST                                        48      42      -6
zdc_parse_expr                                       523     514      -9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-15)             Total: -15 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: offset dc_LEX_to_INST[] start
Denys Vlasenko [Mon, 24 Dec 2018 14:29:08 +0000 (15:29 +0100)]
bc: offset dc_LEX_to_INST[] start

function                                             old     new   delta
zdc_parse_expr                                       516     523      +7
dc_LEX_to_INST                                        56      48      -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 7/-8)               Total: -1 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: rename BC_LEX_NLINE/WHITESPACE/STR/NAME/NUMBER to XC_LEX_
Denys Vlasenko [Mon, 24 Dec 2018 14:05:49 +0000 (15:05 +0100)]
bc: rename  BC_LEX_NLINE/WHITESPACE/STR/NAME/NUMBER to XC_LEX_

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: separate many bc and dc LEX constants
Denys Vlasenko [Mon, 24 Dec 2018 14:00:56 +0000 (15:00 +0100)]
bc: separate many bc and dc LEX constants

function                                             old     new   delta
zdc_parse_expr                                       510     516      +6
bc_parse_expr_empty_ok                              1963    1966      +3
dc_LEX_to_INST                                        83      56     -27
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 9/-27)             Total: -18 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: rename several BC_LEX_OPs to XC_LEX_OPs.
Denys Vlasenko [Mon, 24 Dec 2018 13:14:23 +0000 (14:14 +0100)]
bc: rename several BC_LEX_OPs to XC_LEX_OPs.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: move BC_LEX_OP_INC/DEC to the end of operation LEX constants
Denys Vlasenko [Mon, 24 Dec 2018 12:20:57 +0000 (13:20 +0100)]
bc: move BC_LEX_OP_INC/DEC to the end of operation LEX constants

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: rename BC_LEXs to XC_LEXs for common constants, and to DC_LEXs for dc-specific
Denys Vlasenko [Mon, 24 Dec 2018 11:25:20 +0000 (12:25 +0100)]
bc: rename BC_LEXs to XC_LEXs for common constants, and to DC_LEXs for dc-specific

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: move functions/macros around, no code changes
Denys Vlasenko [Mon, 24 Dec 2018 04:00:36 +0000 (05:00 +0100)]
bc: move functions/macros around, no code changes

Order now is:
enums/structures/defines,
utility/common functions,
parsing,
execution,
main loop,
main()

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: rename common INST constants to XC_, dc-specific ones to DC_
Denys Vlasenko [Mon, 24 Dec 2018 03:26:07 +0000 (04:26 +0100)]
bc: rename common INST constants to XC_, dc-specific ones to DC_

This will assist in disentangling dc and bc LEX constants

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agodc: without -x, do not parse extended regs: 's p' means: store to ' ' reg, print
Denys Vlasenko [Mon, 24 Dec 2018 00:53:55 +0000 (01:53 +0100)]
dc: without -x, do not parse extended regs: 's p' means: store to ' ' reg, print

function                                             old     new   delta
zbc_lex_next                                        2240    2233      -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-7)               Total: -7 bytes
   text    data     bss     dec     hex filename
 981437     485    7296  989218   f1822 busybox_old
 981412     485    7296  989193   f1809 busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fix incorrect bit in BC_PARSE_EXPRS_BITS: 'limits' is not allowed
Denys Vlasenko [Mon, 24 Dec 2018 00:02:59 +0000 (01:02 +0100)]
bc: fix incorrect bit in BC_PARSE_EXPRS_BITS: 'limits' is not allowed

Alsl, move and rename dc_lex_tokens[] to dc_char_to_LEX[]

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: for "dc only" remove handling of LAST, move OBASE enums up to IBASE
Denys Vlasenko [Sun, 23 Dec 2018 23:50:32 +0000 (00:50 +0100)]
bc: for "dc only" remove handling of LAST, move OBASE enums up to IBASE

function                                             old     new   delta
dc_LEX_to_INST                                         -      82     +82
bc_parse_pushNUM                                       -      62     +62
zbc_program_num                                      981     978      -3
bc_result_free                                        46      43      -3
zbc_program_binOpPrep                                305     300      -5
static.msg                                            24      12     -12
zbc_program_exec                                    4013    3994     -19
zdc_parse_expr                                       583     507     -76
dc_parse_insts                                        83       -     -83
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 0/6 up/down: 144/-201)          Total: -57 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fix empty lines in dc generating "bad token" message
Denys Vlasenko [Sat, 22 Dec 2018 23:13:15 +0000 (00:13 +0100)]
bc: fix empty lines in dc generating "bad token" message

function                                             old     new   delta
zdc_program_asciify                                    -     370    +370
zbc_program_pushArray                                  -     147    +147
zbc_vm_process                                       824     828      +4
zbc_program_exec                                    4182    4046    -136
zdc_program_printStream                              146       -    -146
zbc_program_read                                     268       -    -268
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 1/1 up/down: 521/-550)          Total: -29 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: shrink modular exponentiation code
Denys Vlasenko [Sat, 22 Dec 2018 22:59:21 +0000 (23:59 +0100)]
bc: shrink modular exponentiation code

function                                             old     new   delta
zdc_program_modexp                                   721     694     -27

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: do not yet allow 2^2.1
Denys Vlasenko [Sat, 22 Dec 2018 22:14:48 +0000 (23:14 +0100)]
bc: do not yet allow 2^2.1

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: avoid having to twiddle b->neg in zbc_num_p()
Denys Vlasenko [Sat, 22 Dec 2018 20:52:30 +0000 (21:52 +0100)]
bc: avoid having to twiddle b->neg in zbc_num_p()

function                                             old     new   delta
zbc_num_ulong_abs                                      -      70     +70
zbc_num_p                                            424     413     -11
zbc_num_ulong                                         81      21     -60
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 70/-71)             Total: -1 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: do not disallow powers to N.0000 degree - it's even shorter code
Denys Vlasenko [Sat, 22 Dec 2018 20:45:18 +0000 (21:45 +0100)]
bc: do not disallow powers to N.0000 degree - it's even shorter code

function                                             old     new   delta
zbc_num_p                                            440     424     -16

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: shrink zbc_num_ulong()
Denys Vlasenko [Sat, 22 Dec 2018 20:37:46 +0000 (21:37 +0100)]
bc: shrink zbc_num_ulong()

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: make long-running dc drop data it does not need (when it can)
Denys Vlasenko [Sat, 22 Dec 2018 18:23:46 +0000 (19:23 +0100)]
bc: make long-running dc drop data it does not need (when it can)

function                                             old     new   delta
zbc_vm_process                                       765     824     +59

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: unbreak "z function" macro machinery
Denys Vlasenko [Sat, 22 Dec 2018 17:24:19 +0000 (18:24 +0100)]
bc: unbreak "z function" macro machinery

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agodc: unbreak interactive mode - was trying to get next tokens instead of executing
Denys Vlasenko [Sat, 22 Dec 2018 17:04:08 +0000 (18:04 +0100)]
dc: unbreak interactive mode - was trying to get next tokens instead of executing

function                                             old     new   delta
zbc_program_read                                       -     268    +268
zdc_program_printStream                                -     146    +146
zbc_program_exec                                    4046    4182    +136
zdc_program_execStr                                  472     512     +40
zdc_parse_exprs_until_eof                              -      26     +26
zbc_vm_process                                       740     765     +25
zbc_lex_next                                        2225    2240     +15
zdc_parse_expr                                       569     535     -34
zbc_program_pushArray                                147       -    -147
zdc_program_asciify                                  370       -    -370
------------------------------------------------------------------------------
(add/remove: 3/2 grow/shrink: 4/1 up/down: 656/-551)          Total: 105 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: move zbc_lex_next() out of zdc_parse_string() and zdc_parse_mem()
Denys Vlasenko [Sat, 22 Dec 2018 15:40:38 +0000 (16:40 +0100)]
bc: move zbc_lex_next() out of zdc_parse_string() and zdc_parse_mem()

function                                             old     new   delta
zdc_parse_mem                                         99      93      -6
zdc_parse_expr                                       586     569     -17
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-23)             Total: -23 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: shorten sanity-check code
Denys Vlasenko [Sat, 22 Dec 2018 13:18:47 +0000 (14:18 +0100)]
bc: shorten sanity-check code

function                                             old     new   delta
zbc_vm_process                                       745     740      -5

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: fold single-callsite functions into callers, commonalize code
Denys Vlasenko [Sat, 22 Dec 2018 05:00:25 +0000 (06:00 +0100)]
bc: fold single-callsite functions into callers, commonalize code

function                                             old     new   delta
zbc_vm_process                                       699     745     +46
zbc_parse_stmt_possibly_auto                        1689    1682      -7
bc_parse_reset                                       113       -    -113
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 46/-120)           Total: -74 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: zcommon_parse_expr() has only one user, fold it in
Denys Vlasenko [Sat, 22 Dec 2018 02:38:52 +0000 (03:38 +0100)]
bc: zcommon_parse_expr() has only one user, fold it in

function                                             old     new   delta
zbc_program_exec                                    4021    4046     +25
zdc_parse_expr                                       589     586      -3
zcommon_parse_expr                                    28       -     -28
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 25/-31)             Total: -6 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: zcommon_parse_expr() lost its flags argument
Denys Vlasenko [Sat, 22 Dec 2018 01:30:18 +0000 (02:30 +0100)]
bc: zcommon_parse_expr() lost its flags argument

function                                             old     new   delta
zcommon_parse_expr                                     -      28     +28
zdc_program_execStr                                  474     472      -2
zbc_program_exec                                    4023    4021      -2
common_parse_expr                                     29       -     -29
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/2 up/down: 28/-33)             Total: -5 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: stop using BC_PARSE_NOCALL in dc code
Denys Vlasenko [Sat, 22 Dec 2018 01:23:08 +0000 (02:23 +0100)]
bc: stop using BC_PARSE_NOCALL in dc code

function                                             old     new   delta
zdc_program_execStr                                  465     474      +9
zbc_vm_process                                       701     699      -2
common_parse_expr                                     32      29      -3
zdc_parse_expr                                       615     586     -29
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 9/-34)             Total: -25 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
5 years agobc: unbreak read(), remove checks for nested read()
Denys Vlasenko [Sat, 22 Dec 2018 00:34:10 +0000 (01:34 +0100)]
bc: unbreak read(), remove checks for nested read()

function                                             old     new   delta
zbc_parse_pushSTR                                      -      65     +65
common_parse_expr                                      -      32     +32
bc_error_nested_read_call                             10       -     -10
bc_parse_expr_empty_ok                              1977    1963     -14
zdc_parse_expr                                       635     615     -20
zcommon_parse_expr                                    32       -     -32
zbc_program_exec                                    4064    4023     -41
bc_parse_pushSTR                                      65       -     -65
------------------------------------------------------------------------------
(add/remove: 2/3 grow/shrink: 0/3 up/down: 97/-182)           Total: -85 bytes
   text    data     bss     dec     hex filename
 981661     485    7296  989442   f1902 busybox_old
 981540     485    7296  989321   f1889 busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>