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)

Re: more comments Wolfgang Corcoran-Mathe 18 May 2026 18:03 UTC

On 2026-05-18 07:20 -1000, Shiro Kawai wrote:
> Suppose I'm bisecting commits to find the cause of a particular test
> failure that uses a randomized sequence.  When should the test code save
> this persistent "seed"?

This is a tricky problem which we should try to solve, since it's an
important use case for seedable random ports.

At the moment I see two possibilities:

1. Prior to all of your test runs you create a dummy port, extract
its state, and write it to a file in a safe location.  Every random port
you create when testing reads its initial state from this file.  When
the test runs are finished, the file can be removed or saved for later
use (i.e. if that particular state revealed new bugs).  (This is John's
suggestion, if I've understood his response correctly.)

2. Initialize all of your random ports with an infinite binary port
that produces a constant sequence.  "All zeros" is of course bad, but
you could probably get away with "all fours".  This is a lot more
fragile than (1).

I'm not entirely happy with either of these options.

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