On Wed, 14 May 2025 at 23:25, 'Brian Candler' via golang-nuts < golang-nuts@googlegroups.com> wrote:
> Have you seen this? > https://groups.google.com/g/golang-nuts/c/QTML5XM9I-g > That thread was posted by OP, so yes, I assume they have seen it ;) > https://go.dev/blog/synctest > > I don't think it addresses random seeds, but it might help with > deterministic, lock-step execution for tests. > > On Tuesday, 13 May 2025 at 20:54:37 UTC+1 Axel Wagner wrote: > >> It used to be possible to do this using NaCl. In fact, the playground >> used to be implemented using that and was fully deterministic. >> These days, the playground uses gVisor, AFAIK, and is no longer >> deterministic. I don't know how well the NaCl port is still maintained. >> Come to think of it, you might also try wasm. It's single-threaded and I >> believe you can pretty much entirely control its interaction with the >> outside world. >> >> On Tue, 13 May 2025 at 20:53, Jason E. Aten <j.e....@gmail.com> wrote: >> >>> I'd like to run variations of my Raft test code on a fully >>> deterministic runtime (meaning only one thread, all >>> randomness from a pseudo RNG controlled with a repeatable seed). >>> I was looking at the standard (big) Go runtime, and I don't >>> see where there are any options to control the random number >>> generator there used for choosing a select, for instance, >>> but maybe I've missed some already available option? >>> Setting GOMAXPROC=1 apparently does not prevent other background threads >>> for GC, OS calls, etc... do I understand that right? >>> >>> Trying to figure out if it would a smaller lift to hack some support >>> into TinyGo, >>> whose typically microcontroller targets are single threaded, as >>> that would give me a big head start, or if the big Go runtime >>> places that would need pseudo RNGs replaced >>> are isolated enough for it do be doable (in a hacked up, non-supported >>> version, of course)... big Go would have better compatibility with >>> production code of course, but TinyGo is already more conceptually >>> aligned, and might be easier to maintain if the experiment is >>> successful... >>> >>> Thoughts? >>> >>> -- >>> >> You received this message because you are subscribed to the Google Groups >>> "golang-nuts" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to golang-nuts...@googlegroups.com. >>> To view this discussion visit >>> https://groups.google.com/d/msgid/golang-nuts/da4416ab-9710-4743-9dfd-67a89675af73n%40googlegroups.com >>> <https://groups.google.com/d/msgid/golang-nuts/da4416ab-9710-4743-9dfd-67a89675af73n%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion visit > https://groups.google.com/d/msgid/golang-nuts/b15a8985-be11-46fa-863a-a71141c59b4bn%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/b15a8985-be11-46fa-863a-a71141c59b4bn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CAEkBMfHndms4yuUqi_eeW0VzAa341HRNAc%2BC70CEc5OkviXeqA%40mail.gmail.com.