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.a...@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+unsubscr...@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/CAEkBMfGWrxEd9GXALFwfbDsh5UVoi0r35NZ4%2BmC1fOtR9GdruQ%40mail.gmail.com.

Reply via email to