[Xapian-discuss] Status of the Guile and C# bindings?

Olly Betts olly at survex.com
Mon Dec 19 17:19:14 GMT 2005


What is the current status of the Guile and C# bindings?  Is anyone
successfully using either of them?

Ralf Mattes was working on the guile bindings, but I believe he
unfortunately lost the code when his laptop disk crashed.

All the changes in the last 2 years seem to be for changes in the build
system and have been applied blindly.  There's no "smoketest" for guile
(all the other bindings have one) so I can't tell if it's actually
working even slightly!  There's also no documentation or examples, and I
don't know guile at all so I don't know where to start with adding a
smoketest.

I think it's high time we stopped claiming guile "is being worked on"
and to retire it to "some work has been done on".

Looking at the SWIG bindings code, extra.i is empty and util.i only has
3 typemaps for std::string which recent versions of SWIG should supply
already (one misspells "guile" as "guilde" so will be ignored by SWIG
anyway).  There're currently 5 conditionals depending on SWIGGUILE in
xapian.i, but none of these are anything special, and some could be
wrong.  So I wouldn't be suprised if someone working on guile would be
best off starting from scratch anyway!

And moving on to C#...

This is currently failing to compile for me when generated with SWIG
1.3.27 because SWIG_exception isn't defined (though it seems to be
in exceptions.i.  That looks like a SWIG bug.  Anyway, hacking around
that I can compile the code but can't test it right now as ixion lacks
the C# tools and my normal dev box is currently disconnected.

C# does at least have a smoketest (though I couldn't get it to pass
last time I tried it) but has no documentation or examples.

It's currently a bit of a stretch to say C# "is being worked on", though
less so than for guile I think.

On a related point, if anyone is interested in working on bindings for
other languages, I'm happy to offer help with the Xapian and SWIG side
of things (but it really requires somebody who knows the language fairly
well to work on that side of things).  I've compiled a summary of what
SWIG supports here:

http://svn.xapian.org/trunk/xapian-bindings/README?view=markup

You don't have to use SWIG, but it will probably reduce the amount of
dull mechanical code writing required to produce bindings and keep them
up to date as the API evolves.  Of those listed, the one which I've
actually seen evidence of demand for is Ruby (but don't take that to
mean that there's no point working on others).

Cheers,
    Olly



More information about the Xapian-discuss mailing list