James Byrne
253c4e787a
Optionally re-introduce bb_info_msg()
...
Between Busybox 1.24.2 and 1.25.0 the bb_info_msg() function was
eliminated and calls to it changed to be bb_error_msg(). The downside of
this is that daemons now log all messages to syslog at the LOG_ERR level
which makes it hard to filter errors from informational messages.
This change optionally re-introduces bb_info_msg(), controlled by a new
option FEATURE_SYSLOG_INFO, restores all the calls to bb_info_msg() that
were removed (only in applets that set logmode to LOGMODE_SYSLOG or
LOGMODE_BOTH), and also changes informational messages in ifplugd and
ntpd.
The code size change of this is as follows (using 'defconfig' on x86_64
with gcc 7.3.0-27ubuntu1~18.04)
function old new delta
bb_info_msg - 182 +182
bb_vinfo_msg - 27 +27
static.log7 194 198 +4
log8 190 191 +1
log5 190 191 +1
crondlog 45 - -45
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 3/0 up/down: 215/-45) Total: 170 bytes
If you don't care about everything being logged at LOG_ERR level
then when FEATURE_SYSLOG_INFO is disabled Busybox actually gets smaller:
function old new delta
static.log7 194 200 +6
log8 190 193 +3
log5 190 193 +3
syslog_level 1 - -1
bb_verror_msg 583 581 -2
crondlog 45 - -45
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 3/1 up/down: 12/-48) Total: -36 bytes
Signed-off-by: James Byrne <james.byrne@origamienergy.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-04-30 10:51:27 +02:00
Denys Vlasenko
0f5a7f3520
man: add "/usr/share/man" as another default MANPATH, fix col override
...
function old new delta
static.mpl - 12 +12
packed_usage 33307 33316 +9
man_main 857 851 -6
add_MANPATH 148 138 -10
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/2 up/down: 21/-16) Total: 5 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-03-30 17:27:09 +01:00
Ron Yorston
3c6f3336e1
man: don't skip default path which appears in config file
...
If the MANPATH environment variable isn't set a provisional default
path of /usr/man is placed in man_path_list. This is only used if a
configuration file doesn't contain an alternative path.
If a configuration file lists the default path first:
MANPATH /usr/man:/usr/share/man
add_MANPATH() sees that the default entry is already present and skips
it. As a result man_path_list only contains the second and subsequent
components of the configured MANPATH.
In such cases the path should not be skipped.
function old new delta
add_MANPATH 170 183 +13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 13/0) Total: 13 bytes
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-03-26 17:46:21 +01:00
Denys Vlasenko
fe78c9a8b7
ts: do call localtime() when neither -s nor -i specified
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-03-26 11:51:21 +01:00
Denys Vlasenko
973698d7b1
ts: use gettimeofday - we don't use nanoseconds here
...
function old new delta
ts_main 398 376 -22
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-03-26 11:44:48 +01:00
Denys Vlasenko
3395e2a8ef
ts: replace overlapping strcpy with shorter code
...
function old new delta
ts_main 401 398 -3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-03-26 11:41:35 +01:00
Denys Vlasenko
f370a66b26
ts: fix incorrect (copy-pasted) copyright attribution
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-03-26 11:12:53 +01:00
Denys Vlasenko
16df5e8e6d
ts: new applet
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-03-26 11:02:31 +01:00
Denys Vlasenko
5059653882
do not duplicate CONFIG_PID_FILE_PATH and ".pid" strings
...
text data bss dec hex filename
981737 485 7296 989518 f194e busybox_old
981704 485 7296 989485 f192d busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-03-17 19:48:39 +01:00
Nikolaus Voss
f81e0120f4
i2c_tools.c: i2ctransfer
...
Call i2c_set_slave_addr() unconditionally as busy checking
is skipped depending on force argument.
Clarify usage texts for -f and -a flags.
Signed-off-by: Nikolaus Voss <nv@vosn.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-11 12:34:13 +01:00
Nikolaus Voss
dac8f5ea38
i2ctransfer: new applet
...
i2ctransfer sends and receives user defined i2c messages
v2: apply Xabier's comments: add -a option, don't decrement argc,
use bb_show_usage() and xzalloc()
v3: fix possible out of bound access to msgs[nmsgs]
Reviewed-by: Xabier Oneca -- xOneca <xoneca@gmail.com>
Signed-off-by: Nikolaus Voss <nikolaus.voss@loewensteinmedical.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-10 19:59:07 +01:00
Denys Vlasenko
53799506ac
bc: implement pass-by-reference code from upstream
...
function old new delta
zxc_program_popResultAndCopyToVar 298 493 +195
bc_vec_pushIndex - 75 +75
zxc_vm_process 859 928 +69
xc_program_dereference - 66 +66
bc_vec_npush - 65 +65
zbc_num_s 239 249 +10
zxc_program_num 1024 1032 +8
zbc_num_divmod 150 156 +6
xc_program_search 143 146 +3
zxc_program_assign 392 389 -3
zdc_program_execStr 520 517 -3
xc_program_pushVar 198 195 -3
zxc_program_exec 4101 4092 -9
zbc_program_call 318 308 -10
zbc_func_insert 120 104 -16
zbc_parse_stmt_possibly_auto 1460 1439 -21
bc_vec_push 53 12 -41
xc_parse_pushIndex 61 18 -43
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 6/9 up/down: 497/-149) Total: 348 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-25 16:22:15 +01:00
Denys Vlasenko
cfc2546ea4
bc: code shrink
...
function old new delta
xc_parse_pushInst_and_Index - 16 +16
zbc_parse_expr 1818 1816 -2
xc_parse_pushIndex 65 61 -4
zbc_parse_pushSTR 63 58 -5
zbc_parse_name 448 442 -6
xc_parse_pushNUM 74 67 -7
zdc_parse_expr 479 470 -9
bc_parse_pushJUMP_ZERO 21 12 -9
bc_parse_pushJUMP 21 12 -9
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/8 up/down: 16/-51) Total: -35 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-09 11:17:19 +01:00
Denys Vlasenko
a1698a15dc
bc: remove "empty expression" check/message, parsing fails in these cases anyway
...
function old new delta
zbc_parse_expr 1848 1818 -30
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-08 19:32:38 +01:00
Denys Vlasenko
132d7c098b
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>
2019-01-08 19:29:35 +01:00
Denys Vlasenko
fc7aa7a296
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>
2019-01-08 18:10:00 +01:00
Denys Vlasenko
edca770d11
sleep: support "inf"
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-07 15:20:56 +01:00
Denys Vlasenko
e05ec6ed3e
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>
2019-01-04 16:26:19 +01:00
Denys Vlasenko
f11b5b9864
bc: formatting changes, added a FIXME comment, no logic changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-04 15:54:40 +01:00
Denys Vlasenko
54f5c1d600
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>
2019-01-04 13:58:46 +01:00
Denys Vlasenko
1db367a8e6
dc: fit returning of string
...
function old new delta
zxc_program_exec 4087 4098 +11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-04 06:18:00 +01:00
Denys Vlasenko
6842c6062a
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>
2019-01-04 05:41:47 +01:00
Denys Vlasenko
377cc97b19
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>
2019-01-04 00:35:31 +01:00
Denys Vlasenko
02c3d7a1c9
bc: add a palceholder comment for "void" return
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-04 00:21:29 +01:00
Denys Vlasenko
19c3eb0b04
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>
2019-01-04 00:05:07 +01:00
Denys Vlasenko
96b5ec10fb
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>
2019-01-03 23:34:36 +01:00
Denys Vlasenko
ae6c44ea15
bc: make error line number also size_t, like everything else
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-02 16:30:24 +01:00
Denys Vlasenko
266bec8ba7
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>
2019-01-02 05:03:53 +01:00
Denys Vlasenko
2231468a2f
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>
2019-01-01 21:50:14 +01:00
Denys Vlasenko
51b510a480
bc: in xc_read_line(), check ^C on NUL input bytes too
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-01 02:19:02 +01:00
Denys Vlasenko
8797adc1c6
bc: remove superfluous assigment
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-31 19:50:06 +01:00
Denys Vlasenko
680ccd3573
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>
2018-12-31 19:42:13 +01:00
Denys Vlasenko
2747f6195b
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>
2018-12-31 18:48:59 +01:00
Denys Vlasenko
2cd8c04632
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>
2018-12-30 15:56:36 +01:00
Denys Vlasenko
8ab209f00e
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>
2018-12-29 16:23:34 +01:00
Denys Vlasenko
374d2c47ec
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>
2018-12-29 14:52:30 +01:00
Denys Vlasenko
d5b0fa6abf
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>
2018-12-29 03:08:12 +01:00
Denys Vlasenko
e16a5223d2
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>
2018-12-29 02:24:19 +01:00
Denys Vlasenko
b86b39bfda
config: more tweaks
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-28 17:52:43 +01:00
Denys Vlasenko
cdadad58a1
bc: bc enables FEATURE_DC_BIG, for correct dc testsuite operation
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-28 15:13:23 +01:00
Denys Vlasenko
1476760600
bc: rename config options
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-28 13:32:04 +01:00
Denys Vlasenko
b097a84d62
config: update size information
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-28 03:20:17 +01:00
Denys Vlasenko
10bde14292
bc: rename functions common to bc and dc as xc_FOO()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-27 18:23:58 +01:00
Denys Vlasenko
db8d607514
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>
2018-12-27 18:08:49 +01:00
Denys Vlasenko
3d27d435db
randomconfig fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-27 18:03:20 +01:00
Denys Vlasenko
2beb1f6faf
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>
2018-12-26 21:17:12 +01:00
Denys Vlasenko
8af11087b2
bc: undo debugging change, add a small optimization
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-26 21:01:41 +01:00
Denys Vlasenko
ab9a98602f
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>
2018-12-26 20:30:47 +01:00
Denys Vlasenko
f706a18f33
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>
2018-12-26 20:02:27 +01:00
Denys Vlasenko
1c69ec1597
bc: reduce indentation, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-26 19:24:15 +01:00
Denys Vlasenko
8a56e3643f
bc: fix "bc only" build
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-26 19:09:23 +01:00
Denys Vlasenko
1e87b97da6
bc: fix "dc only" build
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-26 19:06:05 +01:00
Denys Vlasenko
2f7352b4f5
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>
2018-12-26 18:59:42 +01:00
Denys Vlasenko
b1b7996a2a
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>
2018-12-26 18:46:03 +01:00
Denys Vlasenko
7d32e25bf3
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>
2018-12-26 18:32:43 +01:00
Denys Vlasenko
63ad799384
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>
2018-12-26 12:23:05 +01:00
Denys Vlasenko
94576d2b97
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>
2018-12-25 23:45:57 +01:00
Denys Vlasenko
c192b0442b
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>
2018-12-25 23:15:59 +01:00
Denys Vlasenko
ecb62edd47
bc: fold struct BcLex into BcParse
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-25 22:32:41 +01:00
Denys Vlasenko
6e6182342e
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>
2018-12-25 22:20:14 +01:00
Denys Vlasenko
0b0e8d0509
bc: rename some members and macros, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-25 21:44:10 +01:00
Denys Vlasenko
3f8752c33f
bc: shorten error messages
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-25 21:28:25 +01:00
Gavin Howard
fa495ce498
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>
2018-12-25 20:53:15 +01:00
Denys Vlasenko
a2e62e3e50
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>
2018-12-25 20:40:55 +01:00
Denys Vlasenko
1fbe35a7d8
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>
2018-12-25 19:38:13 +01:00
Denys Vlasenko
53e569c06b
bc: fix interactive read()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-25 19:37:23 +01:00
Denys Vlasenko
2638454464
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>
2018-12-25 18:37:52 +01:00
Denys Vlasenko
5fa74b9efc
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>
2018-12-25 17:07:51 +01:00
Denys Vlasenko
d4b721cc8b
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>
2018-12-25 16:39:01 +01:00
Denys Vlasenko
73b3ebc0e1
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>
2018-12-25 01:43:52 +01:00
Denys Vlasenko
d0238d83f0
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>
2018-12-25 01:21:16 +01:00
Denys Vlasenko
bb116031a0
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>
2018-12-25 01:16:37 +01:00
Denys Vlasenko
d897c9aca6
bc: BC_RESULT_ONE is bc-specific
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-24 23:41:31 +01:00
Denys Vlasenko
0c45bb22a0
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>
2018-12-24 23:22:40 +01:00
Denys Vlasenko
a17d95d0d0
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>
2018-12-24 22:55:54 +01:00
Denys Vlasenko
d279d809ac
bc: fix "bc -s" only warning on "define f()<newline>", not exiting
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-24 18:28:56 +01:00
Denys Vlasenko
79587cb442
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>
2018-12-24 18:11:41 +01:00
Denys Vlasenko
65b6fe09c4
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>
2018-12-24 17:21:31 +01:00
Denys Vlasenko
a5bf53e4bb
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>
2018-12-24 17:07:20 +01:00
Denys Vlasenko
4accb6bba8
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>
2018-12-24 15:29:33 +01:00
Denys Vlasenko
23ea0734e1
bc: rename BC_LEX_NLINE/WHITESPACE/STR/NAME/NUMBER to XC_LEX_
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-24 15:05:49 +01:00
Denys Vlasenko
9d9c97efbd
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>
2018-12-24 15:00:56 +01:00
Denys Vlasenko
69560f42da
bc: rename several BC_LEX_OPs to XC_LEX_OPs.
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-24 14:14:23 +01:00
Denys Vlasenko
abf6cf6765
bc: move BC_LEX_OP_INC/DEC to the end of operation LEX constants
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-24 13:20:57 +01:00
Denys Vlasenko
7d9be0bc6d
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>
2018-12-24 12:25:20 +01:00
Denys Vlasenko
2097ac8d9e
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>
2018-12-24 05:00:36 +01:00
Denys Vlasenko
a7732d1120
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>
2018-12-24 04:26:07 +01:00
Denys Vlasenko
81293c8af0
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>
2018-12-24 02:01:32 +01:00
Denys Vlasenko
73b2c60825
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>
2018-12-24 01:04:21 +01:00
Denys Vlasenko
ad0bd381e9
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>
2018-12-24 00:50:32 +01:00
Denys Vlasenko
9471bd4660
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>
2018-12-23 00:13:15 +01:00
Denys Vlasenko
01eb5e9da1
bc: shrink modular exponentiation code
...
function old new delta
zdc_program_modexp 721 694 -27
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-22 23:59:21 +01:00
Denys Vlasenko
1acac7f9c5
bc: do not yet allow 2^2.1
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-22 23:14:48 +01:00
Denys Vlasenko
a9f59db809
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>
2018-12-22 21:52:30 +01:00
Denys Vlasenko
2ea8ddf8c2
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>
2018-12-22 21:45:18 +01:00
Denys Vlasenko
1557b76edd
bc: shrink zbc_num_ulong()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-22 21:37:46 +01:00
Denys Vlasenko
ec74a9c145
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>
2018-12-22 19:23:46 +01:00
Denys Vlasenko
5cf0b2d466
bc: unbreak "z function" macro machinery
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-12-22 18:24:19 +01:00
Denys Vlasenko
badf683b0a
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>
2018-12-22 18:10:50 +01:00
Denys Vlasenko
5daa1a0adf
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>
2018-12-22 16:41:23 +01:00