Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Summer of Code 2012

GSoC 2012 was SWIG's third Summer of Code, and this year we
received five slots for projects related to SWIG. Out of five,
four students completed the program successfully with valuable
additions to SWIG.

Dmitry Kabak, mentored by Marko Klopcic, worked on SWIG
internals to parse the source code documentation comments within
the C/C++ header files and use them to document the target
language wrapper classes/functions. Dmitry's efforts
complemented the existing support added in GSoC 2008. In
summary, all previously known bugs have been fixed and the
original source code for comment translation was re-factored to
improve performance and maintainability. Parsing of C/C++ source
code has been improved, so that every declaration/definition can
now be commented. Translation of Doxygen tags to Javadoc and
Python docstrings has been improved and corresponding regression
tests have been implemented. The project mentor, Marko Klopcic
has some great ideas for the future GSoC. The work can be tried
out on the branch gsoc2012-doxygen.

Leif Middelschulte, mentored by Vadim Zeitlin, worked on the C
target language module for SWIG. Leif has improved the module
to a working level. He also rationalized and documented the use
of C typemaps and more generally improved documentation and
testing. Finally, the generated C bindings were made more
type-safe to disallow passing of objects of different types.
Unfortunately, a lot of work still remains to be done. In
particular, many problems remain with template support. Leif's
GSoC work can be accessed in the subversion branch gsoc2012-c.

Neha Narang, mentored by Oliver Buchtala, has worked on a
JavaScript module for SWIG, particularly addressing the
JavaScript Core engine. The work is based on prototype work
from Ashish Sharma (JSC) and Oliver Buchtala (V8, design for
unified module). Neha implemented basic features: global
functions and variables, classes, single inheritance, constants,
enums and exception handling. Taking her programming skills in
consideration, some tasks needed more support where Oliver
complemented her work: overloaded functions, using unified
typemap library, namespaces. She added 12 common examples and
started the test-suite writing 32 tests. Additionally, she
created detailed documentation describing design rationale and
module usage. The module is in a good shape considering it is a
new module, but some tasks are left. The next tasks will enhance
the test-suite, and add director support and bring the generator
addressing the V8 engine into a similar state. Neha's work in
GSoC is available in the branch gsoc2012-javascript.

Swati Sharma, mentored by Ashish Sharma, spent her summer
working on the Objective C module for SWIG. SWIG had initial
support for generating Objective C wrappers over C++ which was
added in GSoC 2009. These wrappers will be used to make C/C++
objects available to MacOS X, iphone and ipad applications. The
goal for the summer was to have a cleaner implementation and get
the code in a good shape for merging into trunk. Swati finished
close to meeting the goal with an almost completely re- written,
clean implementation fixing many rough edges. We now have a
more comprehensive set of typemaps for Objective-C and C++ type
conversions. Almost 90% of the test-suite works and a number of
new runtime tests have been added. Makefiles have been
reorganized, and the structure of the generated code redesigned
to equally support Apple's cocoa framework on MacOS X and
GNUStep on Linux/Windows. Swati is very keen to add more
features in the coming months, especially, the director support,
support for clang, and updated module documentation. Swati's
work can be accessed in the branch gsoc2012-objc.

We would like to thank Google for sponsoring the Summer of Code.
A special thanks to all the mentors for their hard work and
William Fulton, the co-administrator, for his guidance and
support.

By: Ashish Sharma, GSoC 2012 administrator for SWIG

Posted by William Fulton 2012-11-07