Comments Wolfgang Corcoran-Mathe (01 Dec 2020 17:52 UTC)
Re: Comments Vladimir Nikishkin (02 Dec 2020 04:55 UTC)
Re: Comments Wolfgang Corcoran-Mathe (04 Dec 2020 03:38 UTC)
(missing)
(missing)
Re: Comments Vladimir Nikishkin (04 Dec 2020 04:22 UTC)
Re: Comments Wolfgang Corcoran-Mathe (06 Dec 2020 18:31 UTC)

Comments Wolfgang Corcoran-Mathe 01 Dec 2020 17:51 UTC

Thanks to Vladimir for putting this SRFI together.  Combing through
all of SICP's forms for the primitive, unspecified ones must have
been a lot of work, and this SRFI seems to have determined the
essentials.  I have a few short comments.

(1) The comments in the examples for `runtime' and `random' suggest
that these procedures print values, which doesn't seem to be intended.
The `runtime' example also shows the procedure returning a
floating-point value, whereas it is specified to return an integer.

(2) Does `runtime' need to return the "system uptime"?  If it
provides a different integer seed on successive calls, isn't that
enough for this SRFI's purposes?

(3) In the example for parallel-execute, read "May assign to x any
of the following" for "May assign x to any of the following".

(4) Is there a rationale for recommending that stream-null? and
the-empty-stream be defined as null? and (), respectively?

(5) Since the stream implementation is contrasted with that of
SRFI 41, it might be worth mentioning that 41's (even) stream-cons
will *not* work as an implementation of cons-stream.

(6) (very minor) The formatting of the streams section is cramped
and probably could be improved with some paragraph tags.

(7) Whether this test passes is non-deterministic based on the
specification of `runtime':

    (check (> (- (runtime) (runtime)) 0) => #t)

It failed during my CHICKEN test run, which is unsurprising, given
that the sample implementation uses current-second.  The comparison
here is made even more questionable if `runtime' returns an inexact
integer (as does the sample implementation).

(8) The sample implementation needs to import (scheme time) for
current-second.

(9) The (scheme small) subset imported by the sample implementation
seems to chibi-scheme specific.  Perhaps it should be replaced with
(scheme base) for portability.

With the exception of the non-deterministic `runtime' test mentioned
above, all the included tests pass on CHICKEN+r7rs.

Best regards,

--
Wolfgang Corcoran-Mathe  <xxxxxx@sigwinch.xyz>

"It from bit." --John Wheeler