GSoC/GCI Archive
Google Summer of Code 2009

SWIG

Web Page: http://code.google.com/p/swig-gsoc/wiki/ProjectIdeas

Mailing List: swig-user mailing list, see http://www.swig.org/mail.html

[IMAGE http://www.swig.org/images/swig17.png]

SWIG is a tool for making it easy to expose C/C++ code for use from a variety of high level programming languages. The number of supported languages now stands at 20 and includes most mainstream languages such as Python, Java, C#, Ruby, PHP and Perl. Please visit SWIG's home page at http://www.swig.org.

Projects

  • Add support for Scilab language This project adds the support for the Scilab language into SWIG. We will add a "-scilab" option to SWIG's current backend, which indicates SWIG to generate wrapper for Scilab. As the C++ language has not been fully supported by Scilab,we would implement the module with the C features. The project would make the function of SWIG more complete and the scilab language better flexibility. We will build the Scilab module based on the octave module which SWIG has supported already.
  • C++0x support for Swig I will add initial support for C++0x so Swig can parse the header files written in new version of C++. This includes new syntax additions and usage of new types and classes in the standard C++ library.
  • Director support for PHP SWIG's directors allow "callback" functionality to be wrapped. Essentially this enables a user to inherit a target language class from a C++ class enabling cross language polymorphism. SWIG currently only supports directors for Python, Ruby, Java, C#, and Ocaml. In particular, PHP support is lacking, but it's certainly possible to implement - and this summer I would like to work on this.
  • Implement Perl binding for Xapian using SWIG This project implements Perl binding for Xapian using SWIG. At present Xapian's Perl binding is hand-written using XS. However, updating XS code for API changes is more work than SWIG-based one.
  • Objective C Wrapper Generator over C++ using SWIG This proposal discusses the idea of supporting a new target language with SWIG i.e. Objective C to allow the generation of Objective C wrappers over C++ libraries.