The patch in 170981c changes Hazard set merging, which I got wrong in the past. It removes the requirement to find when a command was speculated (which means doing it in O(log n) is way easier). I think it subtly changes the nature of a hazard, but in ways that improve it. Would be good for @spall to carefully review it.
On the plus side, after reworking that code, I completely understand the hazards/speculation stuff @spall was talking about in #13.
The patch in 170981c changes Hazard set merging, which I got wrong in the past. It removes the requirement to find when a command was speculated (which means doing it in O(log n) is way easier). I think it subtly changes the nature of a hazard, but in ways that improve it. Would be good for @spall to carefully review it.
On the plus side, after reworking that code, I completely understand the hazards/speculation stuff @spall was talking about in #13.