wiki:GSoC2011/SupportLua/Journal

Community Bonding Week 1: April 25-May 1

Report

looking at xapian source code

Community Bonding Week 2: May 2-May 8

Report

try to understand xapian classes

Community Bonding Week 3: May 9-May 15

Report

learn to use github and fork my own xapian branch https://github.com/sabrina-xapian/xapian

Community Bonding Week 4: May 16-May 22

Report

learn some knowledge about autoconf http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.68/html_node/

Coding Week 1: May 23-May 29

Report

Support Query. In Lua, we could pass tables to Xapian which contain various types, including string or userdata to construct the Query object.

Coding Week 2: May 30-June 5

Report

Hearing from Lua developer feedback about the configure setting of binding Lua to Xapian, and improve the configure.ac file and Make.am file.

Coding Week 3: June 6-June 12

Report

Hearing from Lua developer feedback about the Lua interface to Xapian.
Merged Lua into Xapian trunk (Thanks Olly)

Coding Week 4: June 13-June 19

Report

improve Lua smoketest, include:
Test the version number
Test document and database
Add code comments
Test MultiValueKeyMaker?
Feature test for ValueSetMatchDecider?
Feature tests for Query "term" constructor optional arguments
Test access to matchspy values

Coding Week 5: June 20-June 26

Report

support MatchAll? and MatchNothing? These are wrapped for Lua as xapian.Query_MatchAll and xapian.Query_MatchNothing.

Coding Week 6: June 27-July 3

Report

learn perl oo feature http://www.tutorialspoint.com/perl/perl_oo_perl.htm
learn pers xs code http://perldoc.perl.org/perlxs.html
learn Xapian.xs file about MatchDecider? https://trac.xapian.org/browser/branches/1.2/search-xapian/Xapian.xs
learn Call Lua function in C http://www.lua.org/pil/25.2.html
support MatchDecider? for lua and add simplematchdecider.lua
improve MatchDecider? support (function and MatchDecider? both could be transfered when there need a MatchDecider? argument)
Add MatchDecider? documentation

Coding Week 7: July 4-July 10

Add MatchDecider? testsuite
learn ruby and python iterator wrapping
Add xapian.Iterator function
Improve Iterator wrapper

Coding Week 8: July 11-July 17 (Midterm)

Coding Week 9: July 18-July 24

Report

Using macro to improve xapian iterator in lua-binding, include: TermIterator?,ESetIterator,MSetIterator,ValueIterator?,PostingIterator? and Xapian::PositionIterator?.
learn generate-perl-exceptions and generate-python-exceptions
write generate-lua-exceptions file, and change Makefile.am to make this file to generate except.i file when compiling.
Change lua.i to include except.i, so that lua can deal with Xapian Error well.
For instance, db=xapian.Database("not_exit"), will give the users the following error: stdin:1: DatabaseOpeningError?: Couldn't stat 'not_exit' stack traceback:

[C]: in function 'Database'
stdin:1: in main chunk
[C]: ?

Coding Week 10: July 25-July 31

Report

wrap ExpandDecider?, Stopper,StemImplementation?, KeyMaker?, MatchSpy?, ValueRangeProcessor? functor classes.

improving wrapping the Query constructor which takes a mixed list of Query objects and strings, using XapianSWIGQueryItor class which wraps the languages C API for looping over an array, and pass a pair of these iterators to Xapian's C++ API.

Coding Week 11: August 1-August 7

Report

using lua##CLASS to take place of DEREF_CLASS
convert std::string in C++ to be lua string in the ExpandDeicer? and Stopper class
Add ExpandDecider? test-suite

Coding Week 12: August 8-August 14

Report

use $descriptor(Xapian::CLASS *) to generate "SWIG_p_Xapian_CLASS", in order to simple the macro
use lua_pushlstring instead of lua_pushstring so that strings with embedded zero bytes in don't get truncated.
wrap std::string as lua string instead of user data, so that users can input strings for the lua sub-class(StemImplementation?,ValueRangeProcessor?)
Add stoplist method for QueryParser? class
Test preservation of stopper set on query parser
Test preservation of stopper set on term generator
Define a function called expect, to compare two tables/values, to take place of assert in the testsuit file so that it is easy to test whether the results are we expected.
Add matchspy testsuite

Coding Week 13: August 15-August 22 (Final evaluation)

Last modified 4 years ago Last modified on 26/01/16 10:10:43