Came accross this post by David Beazley, the author of Swig, on why and how Swig is so complex — primarily since it has a nearly complete C++ preprocessor that understands the type system. Interesting read. However, it reminded me of when I’d compiled a java program to a native .so using gcj, and then wrapped the result using Swig. Talk about complexity. Scary, now that I think about it.