Checks for invalid parameter names and duplicate parameters were
being performed on parameter lists, but these checks were not
considering any rest parameters. This means that
((lambda (x . x) x) 'foo 'bar) => foo
((lambda (x . 0) x) 'foo 'bar) => foo
((lambda (x . #t) x) 'foo 'bar) => foo
((lambda 0 'foo)) => foo
((lambda #t 'foo)) => foo
and so on. Now these all produce errors.
a wrong result to things like (numeric (- (* 36 36 36) 1) 36).
Fixed a bug in numeric that caused comma-sep and dec-sep to get
initialized wrongly.
Fixed maybe-trim-zeros to leave behind at least a ".0" on
inexact numbers that otherwise would have been output without
the decimal point. This is for consistency with number->string
which is used when the radix is 10.
In gen-general, fixed a bug in the digit-generating loop for the
whole part of the number. Previously, an integer that should
have looked like 5003 would be emitted as 5300.
Switched the order of application of maybe-round and
maybe-trim-zeros so that a number that should round to
.0000000000000001 doesn't get emitted as 0.1.
In gen-positive-real, fixed the ratio case to not call
number->string with a radix that might not be in {2,8,10,16}.
Also in gen-positive-real, fixed the call to number->string to
include the radix which was missing previously.
Fixed wrap-sign to correctly handle the case of -0.0.
In numeric/si, always emit the supplied separator even if the
number is too small for an SI-suffix to be emitted. The
examples in the SRFI document depend on this.
sexp_double_to_ratio_2, which converts without introducing
round-off errors the way sexp_double_to_ratio does when it
multiplies by 10.
Changed sexp_inexact_to_exact to use this new function when
a non-zero fractional part of the input exists.
determined the string will not exceed the column width. But
output is the caller environment's output state variable. A
better choice is output-default.
In two places (length+ form) is replaced with (or (length+ form) +inf.0)
so that arithmetic can be performed on the result.
To support cyclic structures in pretty-simply (wrapped with
trimmed/lazy), the call-with-output form in pp-with-indent needs to be
wrapped with an appropriate trimmed/lazy.
In pp-pair, call (pp (car ls)) instead of (pretty (car ls)).
In pretty-simply, don't use call-with-output, that prevents
(trimmed/lazy n (pretty-simply ...)) from working at all on cyclic
input.
on the left rather than the right as specified.
Fixed trivial bug in padded/left where a string longer than the provided
width would result in a call to make-string with a negative length.
Fixed trivial bug in trimmed/lazy around an fn-binding for the output
state variable.