|
SRFI 196 ready for finalization?
John Cowan
(27 Jul 2020 22:57 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Wolfgang Corcoran-Mathe
(28 Jul 2020 00:24 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Marc Nieper-Wißkirchen
(29 Jul 2020 06:59 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
John Cowan
(29 Jul 2020 14:32 UTC)
|
||
|
Re: SRFI 196 ready for finalization? Wolfgang Corcoran-Mathe (29 Jul 2020 17:52 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Wolfgang Corcoran-Mathe
(29 Jul 2020 18:56 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Arthur A. Gleckler
(30 Jul 2020 05:50 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Wolfgang Corcoran-Mathe
(30 Jul 2020 17:03 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Marc Nieper-Wißkirchen
(30 Jul 2020 18:34 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Arthur A. Gleckler
(30 Jul 2020 20:17 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
John Cowan
(30 Jul 2020 23:44 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Marc Nieper-Wißkirchen
(31 Jul 2020 06:14 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Wolfgang Corcoran-Mathe
(31 Jul 2020 17:33 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Marc Nieper-Wißkirchen
(31 Jul 2020 18:01 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Wolfgang Corcoran-Mathe
(31 Jul 2020 18:49 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Marc Nieper-Wißkirchen
(01 Aug 2020 06:55 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
John Cowan
(01 Aug 2020 17:20 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Marc Nieper-Wißkirchen
(01 Aug 2020 19:14 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Wolfgang Corcoran-Mathe
(04 Aug 2020 22:35 UTC)
|
||
|
(missing)
|
||
|
Fwd: SRFI 196 ready for finalization?
Marc Nieper-Wißkirchen
(26 Aug 2020 19:12 UTC)
|
||
|
Re: Fwd: SRFI 196 ready for finalization?
Wolfgang Corcoran-Mathe
(26 Aug 2020 21:03 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
John Cowan
(05 Aug 2020 02:02 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
John Cowan
(05 Aug 2020 02:28 UTC)
|
||
|
Re: SRFI 196 ready for finalization?
Wolfgang Corcoran-Mathe
(05 Aug 2020 02:35 UTC)
|
||
Thanks very much for the review, Marc!
On 2020-07-29 10:32 -0400, John Cowan wrote:
> On Wed, Jul 29, 2020 at 2:59 AM Marc Nieper-Wißkirchen <
> xxxxxx@nieper-wisskirchen.de> wrote:
> > - The implementation of "numeric-range" does seem to assume that
> > rounding errors cannot happen when computing the length. I think a
> > test has to be added whether "start + calculated-len * step < end" but
> > "start + (calculated-len - 1) * step >= end".
>
> Wolfgang, what do you think?
We should have
end = (+ start (* calculated-len step))
since the last valid index is (- length 1). If we replace
calculated-len with its definition, this is
end = (+ start (* (/ (- end start) step) step)),
which is just reversing the computation and checking if we get
the same `end' that we were given. This seems a little redundant,
but the overhead (at range creation time) is minimal; if it catches
some bad ranges, all the better.
The second constraint needs to be a little more complex, I think.
Since numeric ranges may be decreasing, or may be empty (start =
end), we need something like
(assume
(or (= start end)
(if (< start end)
(< (+ start (* (- calculated-len 1) step)) end)
(> (+ start (* (- calculated-len 1) step)) end))))
In some quick tests, this is sufficient to catch problem ranges like
(numeric-range 1 (expt 1000.0 10)).
There may be additional subtleties here. Please correct me if I've
missed some.
I'll add both checks.
--
Wolfgang Corcoran-Mathe <xxxxxx@sigwinch.xyz>
"Industry has surrounded people with artifacts whose inner workings
only specialists are allowed to understand." --Ivan Illich