Explore alternatives to our current inheritance based way of supporting forks
What is wrong?
I'm not sure if there's anything wrong per se but I was thinking about how we build up an ever growing inheritance chain with every new fork.
class MuirGlacierVM(IstanbulVM):
...
These cause quite a bunch of extra function calls in various places where these objects are created and also where overwritten methods are called.
We are probably still far away from that being an actual performance problem but I wonder if it is maintainable long term.
How can it be fixed
-
Explore approach that does not rely on inheritance
-
At some fork, instead of inheriting from the previous fork, inherit from the top level base class and provide the needed function/property implementations so that they are replicated on the latest fork. Then continue inheriting as usual. In other words, every
nforks break the inheritance chain on the technical level but keep the inheritance practice as the development methodology. -
Other ideas...