Shipyard 0.10
Scheduling algorithm rewrite
The parallel execution logic has grown with each new ordering features to a point where it was very difficult to reason about.
This release starts over with a well established algorithm: Kahn's algorithm.
It is close to how before_all/after_all systems used to be scheduled but cleaner by collapsing all ordering constraints to a single one.
before_all, after_all, barrier, implicit ordering, they are all translated to an after relationship.
Systems are then inserted when all systems before them have been placed.
Visualizer
To go with the scheduling rewrite, the visualizer has been improved. It now displays the system and storage that shaped the ordering.
Here, move_player and move_square both borrow Player. One is exclusive so the two systems have to be placed in different batches.
You can check out the visualizer without importing your own workloads by clicking on "Example", on this page. To access the page shown above, click on "Editor" at the top left of the page.