Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Invert dependency graph for backends #209
This change has several benefits:
The downside is there are more trait objects instead of static types. My suspicion is that the performance hit of using virtual methods here is dwarfed by the other work being done, but I have not attempted to measure this at all.
The reason we initially chose the other model was mostly that it was easier, and we didn't expect other backends. But the dummy backend is turning out to be pretty important, so it's probably good to have it supported better.
I doubt the trait object costs are major here.