Shifting subgraphs
Adds dynamic subgraphing! This is the biggest thing to hit wags since, well, ever. It allows for subgraphs to be dynamic, which drastically reduces the type-level overhead in most circumstances and has a nominal performance penalty. Changes to subgraphs take O(nlogn)
instead of O(n)
, but as subgraph changes and creation tend to be small (on the order of 2-10 at a time) this difference is nominal.
In future versions, the internal representation may change to be even faster, ie instead of a map something with faster hashing. For now, though, the map seems fine.