Bug fixes:
. "1/" returns #F instead of signalling divide by zero.
. "1.2345e-306" and "1e-400" with FLONUM-PARSER-FAST? true no longer
signal arithmetic errors.
. STRING->NUMBER and SUBSTRING->NUMBER now check their arguments
Other changes: FINISH-REAL now exploits the fact that some integers
have exact floating point representations and so flonum arithmetic can
be used to compute the correct result. Note that to maintain
correctness, i*10^-e must be calculated as i/10^e. The results are a
modest improvement on free-formatted random flonums (typically 16
digit) in the range 1e-7 to 1e35:
Times for 10000 flonums generated by (random range)
range 1e-100 1e-10 1e-5 1. 1e5 1e10 1e35 1e40
old 10180 8200 8210 7490 5610 3970 3990 4030
new 10280 8350 4690 4390 3930 3230 3180 4170
With FLONUM-PARSER-FAST? true, using the division trick gives better
error rates over a larger range. Number of errors in 10000 random
flonums
range 1e-20 1e-10 1e-6 1. 1e10 1e20 1e35 1e40
old 3573 2400 3309 2798 3025 685 722 2730
new 2594 2778 1907 1010 761 685 772 2730