[Xapian-devel] Gsoc help.
Olly Betts
olly at survex.com
Sat Mar 23 00:31:09 GMT 2013
On Fri, Mar 22, 2013 at 08:51:15AM -0700, James Aylett wrote:
> Speed and memory improvements matter of profiling and then working to
> improve the worst common cases. There may be semi-leaks ie state that
> is ultimately cleaned up but kept around longer than is needed. Or
> inefficient wrapping code. Or something else -- a strong application
> on this would probably involve doing some profiling up front to
> suggest avenues of attack.
SWIG also have some settings which control exactly how the Python
wrappers it generates work, and some of these can make quite a
difference to speed and memory usage. Some impose limitations
on what you can do, so may not be suitable for us. Investigating
these settings would be another useful thing to look at.
Currently we use: -shadow -modern -O
Options to think about include: -builtin -dirvtable -modernargs
-outputtuple
> I'd consider pairing python and PHP alone if you have no experience of
> ruby. However it may be that the PHP project on its own is a big
> enough challenge -- I haven't thought about it in a while but it
> involves a fair amount of work on SWIG so feels more like a full
> project already.
I think so - it doesn't seem feasible to work on the PHP bindings and
something else if that includes taking on the overhaul of SWIG's PHP
backend to create the objects using the Zend API. This would really
need pushing through to the point where it can be made the default PHP
backend in SWIG so that we can switch upstream SWIG to using it, but
that means it needs to support all the features which the current
backend does, not just those which Xapian uses.
Someone could potentially work on just improving the wrapped API we
provide in PHP (along with work on a different language's bindings), but
I'm not sure it's good to try to slice up the PHP project idea like
that - it seems a sensible size as-is with a good mixture of things to
work on.
Cheers,
Olly
More information about the Xapian-devel
mailing list