I plan for this to eventually speculate after a hazard is encountered, but this changed seemed like a good thing to get your opinion on. I am classifying ReadWrite hazards as recoverable or non-recoverable by checking the cmds previously listed order. This should let Rattle avoid unnecessarily re-running without speculation and I believe this also fixed a bug where some ReadWrite hazards weren't detected in the case that the write happened to run before the read.
I plan for this to eventually speculate after a hazard is encountered, but this changed seemed like a good thing to get your opinion on. I am classifying ReadWrite hazards as recoverable or non-recoverable by checking the cmds previously listed order. This should let Rattle avoid unnecessarily re-running without speculation and I believe this also fixed a bug where some ReadWrite hazards weren't detected in the case that the write happened to run before the read.