more comments Peter McGoron (17 May 2026 04:39 UTC)
Re: more comments Wolfgang Corcoran-Mathe (17 May 2026 20:33 UTC)
Re: more comments Peter McGoron (17 May 2026 21:21 UTC)
Re: more comments Wolfgang Corcoran-Mathe (18 May 2026 00:54 UTC)
Re: more comments Shiro Kawai (18 May 2026 11:52 UTC)
Re: more comments John Cowan (18 May 2026 13:46 UTC)
Re: more comments Shiro Kawai (18 May 2026 17:21 UTC)
Re: more comments Wolfgang Corcoran-Mathe (18 May 2026 18:03 UTC)
Re: more comments Peter McGoron (18 May 2026 15:33 UTC)
Re: more comments Vincent Manis (he/him) (18 May 2026 16:41 UTC)
Re: more comments Shiro Kawai (18 May 2026 17:13 UTC)
Re: more comments Peter McGoron (18 May 2026 18:28 UTC)
Re: more comments Shiro Kawai (18 May 2026 18:42 UTC)
Re: more comments Peter McGoron (19 May 2026 02:12 UTC)
Re: more comments Shiro Kawai (19 May 2026 03:16 UTC)
Re: more comments Wolfgang Corcoran-Mathe (18 May 2026 16:59 UTC)
Re: more comments Shiro Kawai (18 May 2026 17:08 UTC)
Re: more comments John Cowan (18 May 2026 06:17 UTC)
Re: more comments Peter McGoron (18 May 2026 11:30 UTC)
Re: more comments John Cowan (18 May 2026 13:21 UTC)
Re: more comments Wolfgang Corcoran-Mathe (18 May 2026 17:19 UTC)

more comments Peter McGoron 17 May 2026 04:37 UTC

1. Is there a reason to require bytevectors as the input/output state
representation? There is no guarantee that any bytevector would be a
valid input (it may not be structured properly or may not be of the
correct length). The state should be a datum like in SRFI 27. Ports
should also export some predicate to check that initializing the port
with a datum value is OK (won't result in an exception being raised).
(This will also obviate some issues during serialization, like endianness.)

2. > There is no requirement that the data contained in or read from an
initializer be a state representation extracted with random-port-state:
make-random-port must support initializing a port from arbitrary data.

    I don't understand this sentence.

3. >  What if the state representation for a given library changes
slightly between versions

    If the same equal? argument had defined behavior in a previous
version, and fails to have that in a future version, that is a major API
breakage. I don't that's something that can be treated at the standard
API level. Ideally, an implementation would add another library, or
treat the previous data in a special way, which will depend on specifics.

-- Peter McGoron