interrogate2swig.py

This is all good stuff. I think the ten-million-dollar question, still to be answered, is whether the swig-generated code runs faster or slower than the interrogate-generated code, especially the new version of interrogate that we have in-house and will make available soon.

Build time is important for developers, and the prospect of a much faster build time is exciting. Although I think the currently very large runtime for interrogate is indicative of some bug: it didn’t used to take so long, or so much memory; and surely that bug can be fixed.

I think the most important thing to be gained from a switch to swig would be the adoption of a well-maintained tool (well-maintained by someone else :slight_smile:). But that does cut both ways, too, because that means someone needs to maintain the interface to swig, as both swig and Panda continue to grow.

There are still a few stumbling blocks to overcome before we can even consider wholeheartedly embracing swig. The biggest is the large body of code that is already written using the interrogate-generated interface; we would probably need to find a way to finesse the swig interface into being mostly compatible with the interrogate interface. The first 90% of this is renaming the methods the same way we do, which is trivial; but the rest of it may be trickier (automatic reference count maintenance?).

David