Denys Vlasenko [Tue, 8 Jan 2019 18:29:35 +0000 (19:29 +0100)]
bc: zbc_parse_expr_empty_ok() is unused except by zbc_parse_expr(), fold it in
function old new delta
zbc_parse_expr 1865 1848 -17
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 8 Jan 2019 17:08:48 +0000 (18:08 +0100)]
bc: disallow invalid syntax like "{ print 1 print 2 }"
statement parsing must NOT eat the terminator: caller needs to know
what it was, to correctly decide whether it is a valid one.
function old new delta
zxc_program_read - 234 +234
zdc_program_printStream - 144 +144
zbc_parse_stmt_possibly_auto 1413 1460 +47
zxc_vm_process 869 859 -10
zxc_program_exec 4116 4101 -15
zdc_program_asciify 368 - -368
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 1/2 up/down: 425/-393) Total: 32 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Einar Jón [Tue, 8 Jan 2019 15:31:37 +0000 (16:31 +0100)]
passwd: initialize pointers correctly
Fix for running passwd as root (or sudo passwd $USER).
Crashed on call to free(orig) during cleanup.
Fix regression from commit
17058a06c4333fc0c492c168c8a971ebd0fd5a5a
Root user never changes the orig pointer, so when cleaning up, passwd tried to
free orig=(char*)""
Example: sudo passwd $USER
Changing password for xxx
New password:
Bad password: too short
Retype password:
Passwords don't match
free(): invalid pointer
Aborted
function old new delta
passwd_main 958 961 +3
Signed-off-by: Einar Jón <tolvupostur@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 8 Jan 2019 15:09:41 +0000 (16:09 +0100)]
tls: add comment about dl.fedoraproject.org needing secp256r1 ECC curve
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 7 Jan 2019 14:33:42 +0000 (15:33 +0100)]
udhcpc: when decoding DHCP_SUBNET, ensure it is 4 bytes long
function old new delta
udhcp_run_script 795 801 +6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 7 Jan 2019 14:23:18 +0000 (15:23 +0100)]
udhcp: code shrink
function old new delta
attach_option 406 349 -57
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 7 Jan 2019 14:20:56 +0000 (15:20 +0100)]
sleep: support "inf"
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 6 Jan 2019 19:12:16 +0000 (20:12 +0100)]
build system: fix compiler warnings
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 6 Jan 2019 18:58:18 +0000 (19:58 +0100)]
find: handle leading -- argument
function old new delta
find_main 464 478 +14
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Danijel Tasov [Sun, 6 Jan 2019 18:20:05 +0000 (19:20 +0100)]
telnet: provide feedback after successful connect
The real telnet provides some feedback:
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
We should do this to, because people are sitting there and think
a firewall is dropping packets.
function old new delta
telnet_main 1270 1279 +9
Signed-off-by: Danijel Tasov <m@rbfh.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 6 Jan 2019 18:06:01 +0000 (19:06 +0100)]
telnetd: fix bad interaction with vhangup() from login
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 6 Jan 2019 17:45:38 +0000 (18:45 +0100)]
telnet: code shrink
function old new delta
put_iac3_IAC_x_y_merged - 21 +21
put_iac4_msb_lsb - 19 +19
put_iac2_msb_lsb - 19 +19
put_iac 20 34 +14
iac_flush 32 36 +4
put_iac2_merged 46 - -46
telnet_main 1492 1270 -222
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 2/1 up/down: 77/-268) Total: -191 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 6 Jan 2019 17:41:11 +0000 (18:41 +0100)]
telnet: speed up processing of network input
function old new delta
telnet_main 1482 1492 +10
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Kaarle Ritvanen [Mon, 31 Dec 2018 17:52:32 +0000 (19:52 +0200)]
ip: print dadfailed flag
Signed-off-by: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Martijn Dekker [Fri, 4 Jan 2019 17:54:52 +0000 (18:54 +0100)]
ls: make -i compatible with coreutils: don't follow symlink by default
Signed-off-by: Martijn Dekker <martijn@inlv.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Martin Lewis [Fri, 4 Jan 2019 17:26:04 +0000 (18:26 +0100)]
wget: notify on download begin and end
When using -o to file the progress meter is not displayed, so write that
we started the download and that we finished it.
function old new delta
retrieve_file_data 465 561 +96
wget_main 2412 2432 +20
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 116/0) Total: 116 bytes
text data bss dec hex filename
979022 485 7296 986803 f0eb3 busybox_old
979224 485 7296 987005 f0f7d busybox_unstripped
Signed-off-by: Martin Lewis <martin.lewis.x84@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Martin Lewis [Wed, 26 Dec 2018 15:28:45 +0000 (16:28 +0100)]
wget: add -o flag
function old new delta
wget_main 2348 2412 +64
packed_usage 33062 33093 +31
static.wget_longopts 252 266 +14
progress_meter 158 159 +1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/0 up/down: 110/0) Total: 110 bytes
Signed-off-by: Martin Lewis <martin.lewis.x84@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Denys Vlasenko [Thu, 27 Dec 2018 17:03:20 +0000 (18:03 +0100)]
randomconfig fixes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>