SWIG 3.0.3 was released today (30 Dec 2014) < http://www.swig.org/ >,
and I maintain this port in MacPorts. So, I naturally was curious to see
if it works with GNU Radio. Sadly, GNU Radio fails because some of the
SWIG-generated Python scripts have errors in them. For example, in SWIG
3.0.2 the vector_source_b::make is defined in blocks_swig1.py as:
{{{
def make(*args, **kwargs):
“”"
make(std::vector< unsigned char,std::allocator< unsigned char >
> const & data, bool repeat=False,
int vlen=1, tags_vector_t tags=std::vector< gr::tag_t >())
→ vector_source_b_sptr
}}}
while in 3.0.3 this code is:
{{{
def make(data, repeat=False, vlen=1, tags):
“”"
make(std::vector< unsigned char,std::allocator< unsigned char >
> const & data, bool repeat=False, int vlen=1, tags_vector_t
tags) → vector_source_b_sptr
}}}
The above are both generated using the current GIT HEAD (c67281b6), just
changing which version of SWIG is used.
For now, I won’t upgrade SWIG to 3.0.3 since this is a pretty critical
issue. I’ll also report it to the SWIG devs to see what they think – it
might be that there were changes to how SWIG %-things are used; it also
might be that there’s an actual error in the SWIG Python generator code.
- MLD