Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						18c6b54f82 
					 
					
						
						
							
							bc: use more compact parsing data structures  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
dc_lex_token                                         697     701      +4
bc_parse_next_rel                                     20       -     -20
bc_parse_next_read                                    20       -     -20
bc_parse_next_print                                   20       -     -20
bc_parse_next_param                                   20       -     -20
bc_parse_next_for                                     20       -     -20
bc_parse_next_expr                                    20       -     -20
bc_parse_next_elem                                    20       -     -20
common_parse_expr                                     62      40     -22
bc_parse_expr                                         49      24     -25
dc_lex_regs                                           52      13     -39
bc_parse_name                                        581     539     -42
bc_parse_expr_empty_ok                              2157    2108     -49
dc_parse_insts                                       332      83    -249
dc_lex_tokens                                        364      91    -273
bc_parse_stmt                                       2261    1868    -393
------------------------------------------------------------------------------
(add/remove: 0/7 grow/shrink: 1/8 up/down: 4/-1232)         Total: -1228 bytes
   text	   data	    bss	    dec	    hex	filename
 987037	    485	   7296	 994818	  f2e02	busybox_old
 985814	    485	   7296	 993595	  f293b	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-07 12:57:32 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						b9c321d6d9 
					 
					
						
						
							
							bc: use only G_interrupt as interrupt flag  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-07 12:41:42 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						c7a7ce06b8 
					 
					
						
						
							
							bc: fix exit codes for FEATURE_CLEAN_UP=y  
						
						 
						
						... 
						
						
						
						$ echo 0/0 | ./busybox bc; echo $?
bc: divide by zero
1
$ echo halt | ./busybox bc; echo $?
0   <------- was 1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 23:06:57 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						a133137174 
					 
					
						
						
							
							dc: fix testsuite  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 18:46:42 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						6d0be10aae 
					 
					
						
						
							
							bc: correctly parse dc options  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_vm_init                                             -     821    +821
bc_vm_file                                             -     226    +226
dc_main                                               41     187    +146
bc_main                                               41      73     +32
packed_usage                                       33076   33059     -17
bc_vm_run                                           1903     701   -1202
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 2/2 up/down: 1225/-1219)          Total: 6 bytes
   text	   data	    bss	    dec	    hex	filename
 987046	    485	   7296	 994827	  f2e0b	busybox_old
 987037	    485	   7296	 994818	  f2e02	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 18:41:59 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						4c9455f967 
					 
					
						
						
							
							dc: fix "dc does_not_exist" SEGVing  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 15:21:39 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						b23ac51d0c 
					 
					
						
						
							
							bc: code shrink - convert two macros to functions  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_program_printStream                                 -     185    +185
bc_program_pushArray                                   -     147    +147
bc_program_exec                                     4132    4219     +87
bc_vec_pop                                             -      27     +27
bc_vec_top                                             -      13     +13
bc_num_ulong                                          92     103     +11
bc_vm_run                                           1905    1903      -2
bc_vm_process                                         94      92      -2
bc_program_reset                                      72      70      -2
bc_program_prep                                       93      91      -2
bc_program_call                                      366     364      -2
bc_parse_startBody                                    47      45      -2
bc_parse_parse                                       464     462      -2
bc_parse_else                                        137     135      -2
bc_parse_body                                        118     116      -2
bc_program_num                                      1129    1125      -4
bc_parse_text                                        147     143      -4
bc_program_retire                                     40      35      -5
bc_program_print                                     778     773      -5
bc_program_modexp                                    746     741      -5
bc_program_pushVar                                   215     208      -7
bc_program_copyToVar                                 323     316      -7
bc_parse_operator                                    184     177      -7
bc_parse_noElse                                       65      56      -9
bc_program_binOpRetire                                56      46     -10
bc_parse_stmt                                       2271    2261     -10
bc_program_execStr                                   543     528     -15
bc_program_assignStr                                 161     146     -15
bc_parse_expr_empty_ok                              2178    2157     -21
bc_parse_endBody                                     420     375     -45
bc_program_asciify                                   464       -    -464
------------------------------------------------------------------------------
(add/remove: 4/1 grow/shrink: 2/24 up/down: 470/-651)        Total: -181 bytes
   text	   data	    bss	    dec	    hex	filename
 987227	    485	   7296	 995008	  f2ec0	busybox_old
 987046	    485	   7296	 994827	  f2e0b	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 13:10:56 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						d00d2f9603 
					 
					
						
						
							
							bc: make keyword POSIXness check more readable  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 12:59:40 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						b6f60863cb 
					 
					
						
						
							
							bc: move a function to reduce forward declarations  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 12:54:26 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						e55a572600 
					 
					
						
						
							
							bc: small simplification in dc_lex_token()  
						
						 
						
						... 
						
						
						
						Pulling array element into a temporary, taking address of this temporary
and copying it? That's much unnecessary work.
function                                             old     new   delta
dc_lex_token                                         701     697      -4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 12:47:17 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						2fa11b6d35 
					 
					
						
						
							
							bc: add comment about BC_NUM_DEF_SIZE  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 12:34:39 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						1ff8862149 
					 
					
						
						
							
							bc: fix for prev commit  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 12:06:16 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						4c30406df6 
					 
					
						
						
							
							bc: do not needlessly use strcat  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 12:01:17 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						23c2e9fcf9 
					 
					
						
						
							
							bc: unbreak "BC only" and "DC only" configs  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 11:43:17 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						9ca9ef2d5b 
					 
					
						
						
							
							dc: re-enable "tiny dc" implementation  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 11:31:14 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						a6f84e1a35 
					 
					
						
						
							
							bc: reuse common string  
						
						 
						
						... 
						
						
						
						text	   data	    bss	    dec	    hex	filename
 987232	    485	   7296	 995013	  f2ec5	busybox_old
 987205	    485	   7296	 994986	  f2eaa	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 11:10:11 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						95f93bdc28 
					 
					
						
						
							
							bc: hook up line editing with history buffer  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
push_input_byte                                        -      65     +65
bc_vm_run                                           1875    1905     +30
bc_read_line                                         303     305      +2
bc_num_binary                                        148     150      +2
bc_num_ulong                                         103      92     -11
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/1 up/down: 99/-11)             Total: 88 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 10:29:12 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						ed849351d1 
					 
					
						
						
							
							bc: add preparatory indent block, no code changes  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 10:26:13 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						1a6a482d19 
					 
					
						
						
							
							bc: if ^C handling is not selected, there is no interactive mode  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
packed_usage                                       33023   33076     +53
bc_num_s                                             252     246      -6
bc_vm_run                                           1859    1850      -9
bc_error_fmt                                          36      20     -16
bc_posix_error_fmt                                    58      41     -17
bc_read_line                                         202     168     -34
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/5 up/down: 53/-82)            Total: -29 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 09:20:32 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						54214c38db 
					 
					
						
						
							
							bc: fix "bc -v" printing version info twice, and not exiting  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_args                                              123     130      +7
bc_num_binary                                        150     148      -2
static.nullptr                                         4       -      -4
bc_vm_run                                           1883    1874      -9
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/2 up/down: 7/-15)              Total: -8 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 09:07:06 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						1ff1c70944 
					 
					
						
						
							
							bc: make bc_vm_envArgs() NULL-terminate its argv, simplify bc_vm_envLen()  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_num_ulong                                          92     103     +11
static.nullptr                                         -       4      +4
bc_args                                              120     123      +3
static.bc_args_env_name                                4       -      -4
dc_main                                               49      41      -8
bc_main                                               49      41      -8
bc_vm_run                                           1917    1883     -34
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 2/3 up/down: 18/-54)            Total: -36 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 00:54:12 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						e873ff9660 
					 
					
						
						
							
							bc: if FEATURE_CLEAN_UP, clean up allocations on exits  
						
						 
						
						... 
						
						
						
						Will have exitcode 1 even on "quit" and "halt", is it a problem?
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-06 00:29:22 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						050b0fe9a7 
					 
					
						
						
							
							bc: do not allow "()" as a valid expression  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_parse_expr_empty_ok                                 -    2178   +2178
bc_parse_expr                                       2178      49   -2129
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 2178/-2129)         Total: 49 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 22:40:44 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						cca79a0064 
					 
					
						
						
							
							bc: reorder functions, delete forward declarations, no code changes - part 2  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 21:15:46 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						b0e3761410 
					 
					
						
						
							
							bc: reorder functions, delete forward declarations, no code changes  
						
						 
						
						... 
						
						
						
						Pure block moves of text
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 21:03:16 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						aad652a69a 
					 
					
						
						
							
							bc: remove unused strings  
						
						 
						
						... 
						
						
						
						text	   data	    bss	    dec	    hex	filename
 987088	    485	   7296	 994869	  f2e35	busybox_old
 987079	    485	   7296	 994860	  f2e2c	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 20:33:23 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						452df923f7 
					 
					
						
						
							
							bc: trivial simplification in bc_parse_return()  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_parse_stmt                                       2276    2271      -5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 20:28:26 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						657d6bb262 
					 
					
						
						
							
							bc: fix "warning: 's' may be used uninitialized in this function"  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 20:25:03 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						bcb62a7f11 
					 
					
						
						
							
							bc: code shrink  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_parse_expr                                       2151    2178     +27
bc_parse_exprs                                        60       -     -60
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 2/0 up/down: 27/-60)            Total: -33 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 20:17:48 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						6543758b13 
					 
					
						
						
							
							bc: code shrink  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_parse_operator                                    181     184      +3
bc_parse_ops                                          50      25     -25
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 3/-25)             Total: -22 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 19:37:19 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						f381a88234 
					 
					
						
						
							
							bc: make division operation interruptible  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_num_d                                             564     584     +20
bc_num_r                                             230     245     +15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 35/0)               Total: 35 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 19:21:34 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						b3cb90124b 
					 
					
						
						
							
							bc: use unsigned division by 10 instead of signed  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_num_k                                             990     988      -2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 19:05:32 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						06fa65bd95 
					 
					
						
						
							
							bc: move ^C check fro power calculation to multiplication  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_num_k                                             971     990     +19
bc_num_p                                             507     478     -29
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 19/-29)            Total: -10 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 19:00:58 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						b692c2faf1 
					 
					
						
						
							
							bc: bc_num_k(): move carry,i,j,len to inner scope  
						
						 
						
						... 
						
						
						
						This might help compiler
function                                             old     new   delta
bc_num_k                                             957     971     +14
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 18:56:14 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						0d7e46b1de 
					 
					
						
						
							
							bc: tweak error messages  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_lex_token                                        1285    1299     +14
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 18:31:19 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						0064679915 
					 
					
						
						
							
							bc: fix inverted POSIXness test, improve messages, commonalize message strings  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_lex_token                                        1251    1285     +34
bc_POSIX_does_not_allow_bool_ops_this_is_bad           -      25     +25
bc_POSIX_does_not_allow_empty_X_expression_in_for      -      20     +20
bc_POSIX_does_not_allow                                -      20     +20
bc_parse_expr                                       2146    2151      +5
bc_num_ulong                                         103      92     -11
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 2/1 up/down: 104/-11)            Total: 93 bytes
   text	   data	    bss	    dec	    hex	filename
 987210	    485	   7296	 994991	  f2eaf	busybox_old
 987084	    485	   7296	 994865	  f2e31	busybox_unstripped
^^^^^^^
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 18:12:27 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						5318f81fbe 
					 
					
						
						
							
							bc: print error line numbers  
						
						 
						
						... 
						
						
						
						FILE:
	print 1
	print "
$ busybox bc -q FILE
bc: FILE:2: string end could not be found
ready for more input
>>> _
function                                             old     new   delta
bc_verror_msg                                          -      99     +99
bc_lex_file                                           12      28     +16
bc_lex_next                                           77      92     +15
dc_lex_token                                         687     701     +14
bc_lex_token                                        1237    1251     +14
bc_posix_error_fmt                                    90      58     -32
bc_error_fmt                                          70      36     -34
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 4/2 up/down: 158/-66)            Total: 92 bytes
   text	   data	    bss	    dec	    hex	filename
 987108	    485	   7296	 994889	  f2e49	busybox_old
 987210	    485	   7296	 994991	  f2eaf	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 17:48:01 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						08c033c406 
					 
					
						
						
							
							bc: optimize pushing zero bytes to vectors  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_vec_pushZeroByte                                    -      10     +10
bc_vm_run                                           1919    1917      -2
bc_vec_string                                         61      59      -2
bc_vec_concat                                         68      66      -2
bc_parse_create                                      170     168      -2
bc_lex_number                                        298     296      -2
dc_lex_token                                         691     687      -4
bc_read_line                                         314     303     -11
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/7 up/down: 10/-25)            Total: -15 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 16:55:08 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						0409ad36a1 
					 
					
						
						
							
							bc: restore printing of script name on errors  
						
						 
						
						... 
						
						
						
						Examples:
On stdin, no file name is available:
	$ echo 'print "' | busybox bc
	bc: string end could not be found
When the same error is in file:
	$ busybox bc FILE
	bc 1.30.0.git
	Copyright (c) 2018 Gavin D. Howard and contributors
	Report bugs at: https://github.com/gavinhoward/bc 
	This is free software with ABSOLUTELY NO WARRANTY
	FILE: string end could not be found
	ready for more input
	>>>
Line number printing to be added later...
function                                             old     new   delta
bc_error_fmt                                          38      70     +32
bc_posix_error_fmt                                    60      90     +30
bc_vm_run                                           1900    1919     +19
bc_program_read                                      338     355     +17
bc_lex_file                                           15      12      -3
bc_program_stdin_name                                  8       -      -8
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 4/1 up/down: 98/-11)             Total: 87 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 16:39:22 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						0ad36c46c7 
					 
					
						
						
							
							bc: do not check for errors when parsing/running internal library  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_lib_name                                            4       -      -4
bc_vm_run                                           1921    1900     -21
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/1 up/down: 0/-25)             Total: -25 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 16:21:43 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						24fb2cd62f 
					 
					
						
						
							
							bc: shrink error handling code by enabling tail-call optimization  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_posix_error_fmt                                     -      60     +60
bc_error_fmt                                           -      38     +38
bc_error_bad_character                                 -      17     +17
bc_parse_auto                                        302     313     +11
bc_num_ulong                                          93     103     +10
bc_error_variable_is_wrong_type                        -      10     +10
bc_error_stack_has_too_few_elements                    -      10     +10
bc_error_nested_read_call                              -      10     +10
bc_error_bad_token                                     -      10     +10
bc_error_bad_expression                                -      10     +10
bc_num_d                                             561     564      +3
bc_program_assign                                    484     486      +2
dc_parse_parse                                        60      59      -1
bc_program_num                                      1130    1129      -1
bc_program_call                                      367     366      -1
bc_parse_stmt                                       2277    2276      -1
bc_lex_number                                        299     298      -1
bc_lex_name                                           91      90      -1
bc_func_insert                                        98      97      -1
bc_num_shift                                          74      72      -2
bc_vm_run                                           1924    1921      -3
bc_parse_endBody                                     424     420      -4
bc_lex_next                                           81      77      -4
bc_program_read                                      343     338      -5
bc_program_asciify                                   469     464      -5
bc_program_pushVar                                   221     215      -6
bc_program_print                                     784     778      -6
bc_program_prep                                       99      93      -6
bc_program_assignStr                                 167     161      -6
bc_parse_else                                        143     137      -6
bc_parse_body                                        124     118      -6
dc_parse_register                                     61      53      -8
dc_lex_token                                         699     691      -8
bc_program_modexp                                    756     746     -10
bc_parse_name                                        593     581     -12
dc_parse_expr                                        775     762     -13
bc_program_copyToVar                                 336     323     -13
bc_program_binOpPrep                                 324     311     -13
bc_program_execStr                                   561     543     -18
bc_program_exec                                     4150    4132     -18
bc_parse_parse                                       483     464     -19
bc_error                                              38      14     -24
bc_lex_token                                        1266    1237     -29
bc_posix_error                                        60      14     -46
bc_parse_expr                                       2194    2146     -48
------------------------------------------------------------------------------
(add/remove: 8/0 grow/shrink: 4/33 up/down: 191/-345)        Total: -154 bytes
   text	   data	    bss	    dec	    hex	filename
 987226	    485	   7296	 995007	  f2ebf	busybox_old
 987072	    485	   7296	 994853	  f2e25	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 16:03:46 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						f359e004b0 
					 
					
						
						
							
							bc: make 2^1000000 interruptible faster  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 15:43:35 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						68cc0a676e 
					 
					
						
						
							
							bc: remove tabs from internal library  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_lib                                              1877    1674    -203
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 15:43:35 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						51fb8aa5c1 
					 
					
						
						
							
							bc: store library in ASCII, shrink keyword parsing code  
						
						 
						
						... 
						
						
						
						Also, use ARRAY_SIZE() where appropriate
function                                             old     new   delta
bc_lib                                              1878    1877      -1
bc_program_index                                      66      64      -2
bc_lex_token                                        1282    1266     -16
bc_lex_kws                                           220     160     -60
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-79)             Total: -79 bytes
   text	   data	    bss	    dec	    hex	filename
 987518	    485	   7296	 995299	  f2fe3	busybox_old
 987440	    485	   7296	 995221	  f2f95	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 15:43:35 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						cb9a99f3bb 
					 
					
						
						
							
							bc: drop bc_map_init() macro  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 15:43:35 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						7d62801db9 
					 
					
						
						
							
							bc: create a few common functions  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_char_vec_init                                       -      12     +12
bc_vec_pop_all                                         -       8      +8
bc_program_index                                      64      66      +2
bc_vec_string                                         64      61      -3
bc_vec_free                                           27      24      -3
bc_read_line                                         317     314      -3
bc_program_execStr                                   564     561      -3
bc_program_exec                                     4153    4150      -3
bc_program_copyToVar                                 340     336      -4
bc_parse_create                                      175     170      -5
dc_lex_token                                         705     699      -6
bc_program_reset                                      78      72      -6
bc_lex_number                                        305     299      -6
bc_program_read                                      353     343     -10
bc_program_addFunc                                   225     209     -16
bc_vm_run                                           1942    1924     -18
bc_parse_reset                                       181     163     -18
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 1/14 up/down: 22/-104)          Total: -82 bytes
   text	   data	    bss	    dec	    hex	filename
 987600	    485	   7296	 995381	  f3035	busybox_old
 987518	    485	   7296	 995299	  f2fe3	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 15:43:35 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						d5f7703abb 
					 
					
						
						
							
							bc: rewrite "BOOL * EXPR" idiom as if() statement  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_program_index                                      66      64      -2
bc_program_num                                      1147    1130     -17
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-19)             Total: -19 bytes
   text	   data	    bss	    dec	    hex	filename
 987619	    485	   7296	 995400	  f3048	busybox_old
 987600	    485	   7296	 995381	  f3035	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 15:43:35 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						17c5472c5a 
					 
					
						
						
							
							bc: switch to SA_RESTART signal handling  
						
						 
						
						... 
						
						
						
						Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 15:43:35 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						d70d4a0235 
					 
					
						
						
							
							bc: get rid of G.tty and G.flags  
						
						 
						
						... 
						
						
						
						G.flags == option_mask32
function                                             old     new   delta
bc_args                                               97     120     +23
dc_main                                               48      49      +1
bc_main                                               48      49      +1
bc_error                                              42      38      -4
bc_posix_error                                        65      60      -5
bc_read_line                                         325     317      -8
dc_lex_token                                         714     705      -9
bc_vm_run                                           2039    1942     -97
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/5 up/down: 25/-123)           Total: -98 bytes
   text	   data	    bss	    dec	    hex	filename
 987717	    485	   7296	 995498	  f30aa	busybox_old
 987619	    485	   7296	 995400	  f3048	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 15:43:35 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Denys Vlasenko 
							
						 
					 
					
						
						
							
						
						9b70f197b4 
					 
					
						
						
							
							bc: convert all status codes, remove bc_err_msgs[], bc_vm_error(), bc_vm_posixError()  
						
						 
						
						... 
						
						
						
						function                                             old     new   delta
bc_posix_error                                         -      65     +65
bc_vm_run                                           1995    2039     +44
bc_err_line                                            7       -      -7
bc_num_ulong                                         103      93     -10
bc_parse_parse                                       495     483     -12
bc_err_fmt                                            12       -     -12
bc_warn_fmt                                           14       -     -14
bc_parse_expr                                       2210    2194     -16
bc_program_reset                                     105      78     -27
bc_vm_process                                        130      94     -36
bc_parse_stmt                                       2313    2277     -36
bc_err_msgs                                           60       -     -60
bc_lex_token                                        1367    1282     -85
bc_vm_error                                          143       -    -143
bc_vm_posixError                                     189       -    -189
------------------------------------------------------------------------------
(add/remove: 1/6 grow/shrink: 1/7 up/down: 109/-647)         Total: -538 bytes
   text	   data	    bss	    dec	    hex	filename
 988258	    485	   7296	 996039	  f32c7	busybox_old
 987717	    485	   7296	 995498	  f30aa	busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com > 
						
						
					 
					
						2018-12-05 15:43:35 +01:00