TypeError: no python-side overrides supported (failed to compile the dispatcher code)

I noticed the warning concerning no virtual destructor (RDataFrame has no virtual destructor) but I did not know what it means (I have never observed a problem in practice).

The problem is the same as in pure C++: the Python instance has state, thus if the destructor is not virtual and the instance is deleted C++ side through the base class pointer (the only type known to C++), then the Python side state will not be cleaned up. If Python owns and deletes the instances in all cases, you’d be good. Otherwise, there’s a memory leak.

(There’s also a more esoteric problem in that auto-casting can’t work w/o virtual destructor b/c the object will not have the expected layout to find RTTI. This is only an issue if you send the instance from Python into C++ and back to Python, as identity will be lost, which in turn could lead to memory access problems.)