Hello, I am Anish Kanchan (IRC nick: openSourcer), a student pursuing Computer Engineering from the Sardar Patel Institute of Technology, University of Mumbai. I wish to participate in the Google Summer of Code program. I good at Java, PHP and C++. I went through all the projects and I feel that the skills required for Bindings Improvement project closely match mine. I would like to solve any existing bugs in this project if they exist. Also, could you please tell me which other areas I'll have to do research on in order to be fit to implement this project. This would then enable me to write an effective proposal as well. Thanks and Regards, Anish Kanchan Student, University of Mumbai -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.xapian.org/pipermail/xapian-devel/attachments/20140222/4f6e0417/attachment-0002.html>
Hi Anish, On Sat, Feb 22, 2014 at 05:47:44PM +0530, Anish Kanchan wrote:> I wish to participate in the Google Summer of Code program. I good at Java, > PHP and C++. I went through all the projects and I feel that the skills > required for Bindings Improvement project closely match mine. > > I would like to solve any existing bugs in this project if they exist.This is an issue with the java bindings (on trunk) which shouldn't be complex to solve: http://trac.xapian.org/ticket/616 If you've not used SWIG before, that would be a relatively gentle introduction to it.> Also, could you please tell me which other areas I'll have to do research > on in order to be fit to implement this project. This would then enable me > to write an effective proposal as well.Do you have an idea which language(s) you'd want to work on? There's not a huge number of things to do for Java, so that alone is probably too lightweight a project, and you'd probably want to combine it with something else (which doesn't have to be related). The PHP project idea is a lot more substantial, since it involves updating how SWIG wraps PHP code. A good way to learn more about that would probably be to try wrapping a Xapian class or two by hand using the PHP API we want to change SWIG to use: http://devzone.zend.com/1435/wrapping-c-classes-in-a-php-extension/ Once you have a hand-written wrapper, you can work towards making SWIG generate the same code. Cheers, Olly
Quoting from IRC:> I am using SWIG for the first time. The interface file that we create > must have only the declaration statements with proper syntax, right?The interface file can contain SWIG directives, and also C/C++ declarations (classes, function prototypes, etc) - generally what you'd put in the C/C++ header file (and in fact you can often get SWIG to parse your header files for those, which is what we try to do for Xapian, as it means we don't have to maintain two parallel pieces of code which describe the C++ API). You generally wouldn't show SWIG the function definitions (i.e. the bodies of the functions), except for inline functions. There are also a few limitations to SWIG's parsing of C and C++ code, but they are generally fairly obscure things.> I mean the conditional statements in the code are not to be included. > isn't it?Do you mean preprocessor conditionals (#if, etc) or C/C++ conditonals (if (a) { /*code*/ } else { /*code*/ })? SWIG understands preprocessor conditionals, though you may need to tell it what macros to define to get the behaviour you want (as it won't predefine all the macros your compiler does). It should just ignore C/C++ conditionals in a function body. Cheers, Olly
Hello Olly, I read about Xapian and SWIG and the bindings that Xapian has with other languages. According to what I've read, I understand that Xapian is a search engine library written in C/C++. It can be integrated with web applications which handle large amount of data. But since the web applications may be written in a variety of languages a binding is required for the web app to be able to connect to the xapian software. And SWIG plays a role in generating intermediate code for the web app to link with the bindings. I'd like to know if what I've understood is correct. Thanks and Regards, Anish Kanchan Student, University of Mumbai On Sun, Feb 23, 2014 at 11:50 AM, Olly Betts <olly at survex.com> wrote:> Hi Anish, > > On Sat, Feb 22, 2014 at 05:47:44PM +0530, Anish Kanchan wrote: > > I wish to participate in the Google Summer of Code program. I good at > Java, > > PHP and C++. I went through all the projects and I feel that the skills > > required for Bindings Improvement project closely match mine. > > > > I would like to solve any existing bugs in this project if they exist. > > This is an issue with the java bindings (on trunk) which shouldn't be > complex to solve: > > http://trac.xapian.org/ticket/616 > > If you've not used SWIG before, that would be a relatively gentle > introduction to it. > > > Also, could you please tell me which other areas I'll have to do research > > on in order to be fit to implement this project. This would then enable > me > > to write an effective proposal as well. > > Do you have an idea which language(s) you'd want to work on? > > There's not a huge number of things to do for Java, so that alone is > probably too lightweight a project, and you'd probably want to combine > it with something else (which doesn't have to be related). > > The PHP project idea is a lot more substantial, since it involves > updating how SWIG wraps PHP code. A good way to learn more about > that would probably be to try wrapping a Xapian class or two by hand > using the PHP API we want to change SWIG to use: > > http://devzone.zend.com/1435/wrapping-c-classes-in-a-php-extension/ > > Once you have a hand-written wrapper, you can work towards making SWIG > generate the same code. > > Cheers, > Olly >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.xapian.org/pipermail/xapian-devel/attachments/20140225/40ccc46f/attachment-0002.html>