19 showed that Automa's reliance on Set and Dict made FSM generation undeterministic.
This sucks, because it means that precompiling dependents of Automa may change the order of its nodes, which again changes the code layout and error messages. No big deal, but can be confusing when debugging. Automa solved it by re-implementing Set and Dict to be deterministic which is an absolutely incredible feat, but not a very nice solution.
19 showed that Automa's reliance on
Set
andDict
made FSM generation undeterministic.This sucks, because it means that precompiling dependents of Automa may change the order of its nodes, which again changes the code layout and error messages. No big deal, but can be confusing when debugging. Automa solved it by re-implementing
Set
andDict
to be deterministic which is an absolutely incredible feat, but not a very nice solution.It turns out that it is possible to minimize DFAs to obtain a unique minimized DFA, with only the node labels being arbitrary. See https://en.wikipedia.org/wiki/DFA_minimization
I don't know if Automa does this yet, but I propose:
Machine
generation, rename nodes by some arbitrary stable criterion so it will become deterministic no matter the original labeling