Tue Oct 30 04:52:53 GMT 2007 Olly Betts * NEWS,configure.ac: Update for 1.0.4. Tue Oct 30 04:10:32 GMT 2007 Olly Betts * queryparser/queryparser.lemony: Code tweak. Tue Oct 30 03:04:04 GMT 2007 Olly Betts * tests/queryparsertest.cc: Add two more test cases to improve coverage. Tue Oct 30 00:13:42 GMT 2007 Olly Betts * tests/harness/testsuite.cc: abi::__cxa_demangle() requires GCC 3.1 it seems. Mon Oct 29 23:14:41 GMT 2007 Olly Betts * docs/scalability.html: Update size of gmane. Mon Oct 29 23:13:00 GMT 2007 Olly Betts * docs/quartzdesign.html: Note that Quartz is now deprecated. Mon Oct 29 21:09:12 GMT 2007 Olly Betts * configure.ac,tests/harness/testsuite.cc: Demangle the name of the std::exception subclass for GCC, and handle compilation with -fno-rtti. Mon Oct 29 19:50:05 GMT 2007 Olly Betts * tests/harness/testsuite.cc: Catch std::exception subclasses explicitly and report e.what() (which gives the method name which threw, at least under GCC). Mon Oct 29 18:46:57 GMT 2007 Olly Betts * NEWS: Updated. Mon Oct 29 18:36:12 GMT 2007 Olly Betts * matcher/multimatch.cc: Pull out old_item.wt into a variable. Mon Oct 29 18:24:46 GMT 2007 Richard Boulton * queryparser/queryparser.lemony: Fix problem with spelling correction of hyphenated terms (or other terms joined with phrase generators): the position of the start of the term wasn't being reset for the second term in the generated phrase, resulting in out of bounds errors when substituting the new value in the corrected query string. * tests/queryparsertest.cc: Test the fix. Mon Oct 29 17:34:17 GMT 2007 Olly Betts * docs/deprecation.rst: Move "Stem::stem_word(word)" in the bindings to the right section (it was done in 1.0.0, as already indicated). Deprecate the non-pythonic iterators in favour of the pythonic ones. Mon Oct 29 02:54:09 GMT 2007 Olly Betts * NEWS,api/Makefile.mk,docs/Makefile.am,include/Makefile.mk, include/xapian.h,tests/api_db.cc,tests/api_nodb.cc, tests/api_wrdb.cc: Back out match spy changes in preparation for creating a branch for them. Mon Oct 29 02:37:31 GMT 2007 Olly Betts * matcher/valuerangepostlist.cc: Fix ValueRangeProcessor::get_termfreq_est() and get_termfreq_max() to work when at_end() when paranoid assertions are enabled. Mon Oct 29 01:51:07 GMT 2007 Olly Betts * common/omenquireinternal.h: Add ESetItem::swap() and MSetItem::swap(). Sun Oct 28 16:33:34 GMT 2007 Olly Betts * PLATFORMS: Update from tinderbox and buildbot. Sun Oct 28 06:00:23 GMT 2007 Olly Betts * matcher/queryoptimiser.cc: Remove unused variable. Sun Oct 28 05:46:28 GMT 2007 Olly Betts * docs/remote.html: xapian-tcpsrv can handle concurrent read access so update the out-of-date information here. Also, some new features aren't supported by the remote backend yet. Sun Oct 28 05:20:02 GMT 2007 Olly Betts * include/xapian/queryparser.h: Update documentation comment for QueryParser::set_stemming_strategy(). Sun Oct 28 05:03:03 GMT 2007 Olly Betts * queryparser/queryparser.lemony: Fix handling of STEM_ALL. * tests/queryparsertest.cc: Update tests. Move tables of queries to before the test functions which use them. Sat Oct 27 20:50:57 BST 2007 Olly Betts * api/omqueryinternal.cc,include/xapian/query.h, matcher/queryoptimiser.cc: Eliminate Query::Internal::dbl_parameter to avoid any risk of ABI breakage. Sat Oct 27 17:08:46 BST 2007 Olly Betts * include/xapian/query.h: Pull in explicitly. Add @deprecated note to Query::Query(Query::op, Query) explaining why it is deprecated. * include/xapian/queryparser.h: Wrap comment better. Sat Oct 27 05:37:33 BST 2007 Olly Betts * NEWS: Merge two "testsuite" sections in draft 1.0.4 entry. Sat Oct 27 02:34:10 BST 2007 Olly Betts * HACKING: Note specifically that std::list::size() is O(n) for GCC. Update the debian packaging checklist. Sat Oct 27 02:33:14 BST 2007 Olly Betts * docs/intro_ir.html: Add link to the forthcoming book "Introduction to Information Retrieval", which can be read online. Sat Oct 27 02:22:36 BST 2007 Olly Betts * docs/Makefile.am: We no longer build sourcedoc.pdf so remove it from MAINTAINERCLEANFILES. Sat Oct 27 02:20:31 BST 2007 Olly Betts * NEWS: Mostly updated for 1.0.4. Fri Oct 26 04:57:31 BST 2007 Olly Betts * api/omqueryinternal.cc: OP_SCALE_WEIGHT applied to MatchNothing is now handled by the Query ctor, so replace the code to handle OP_SCALE_WEIGHT in Query::Internal::simplify_matchnothing() by an assertion that the subquery isn't MatchNothing. Fri Oct 26 04:50:37 BST 2007 Olly Betts * include/xapian/query.h: Deprecate the essentially useless constructor Query(Query::op, Query). * docs/deprecation.rst: Note this deprecation, and since the feature doesn't actually have a use, schedule it for 1.1.0. Also schedule Enquire::register_match_decider() for 1.1.0 for the same reason. Fri Oct 26 01:00:08 BST 2007 Olly Betts * api/omquery.cc,include/xapian/query.h: OP_SCALE_WEIGHT applied to OP_VALUE_RANGE can have no effect so ignore it. * tests/queryparsertest.cc: Update expected query descriptions. Fri Oct 26 00:23:55 BST 2007 Olly Betts * matcher/multimatch.cc: When checkatleast is set, and we're sorting by relevance with forward ordering by docid, and the query is pure boolean, we were exiting before the checkatleast requirement was satisfied. Then the adjustments made to the estimated and max statistics based on checkatleast meant we claimed there were exactly msize results. Thu Oct 25 00:34:14 BST 2007 Olly Betts * matcher/localmatch.cc,matcher/multiandpostlist.cc, matcher/queryoptimiser.cc,queryparser/queryparser.cc: Fix build with --enable-assertions and --enable-log. Wed Oct 24 06:29:03 BST 2007 Olly Betts * queryparser/queryparser.lemony: Drop out of IN_GROUP mode when we generate a BOOLEAN_FILTER token. * tests/queryparsertest.cc: Add regression test. Wed Oct 24 06:08:29 BST 2007 Olly Betts * queryparser/queryparser.lemony: Drop special treatment for unmatched ')' at the start of the query, as it seems rather arbitrary and not particularly useful. Reparsing seems a better approach here. * tests/queryparsertest.cc: Add regression test case for bug which dropping this special case fixes. Wed Oct 24 05:25:40 BST 2007 Olly Betts * AUTHORS: Add Ron Kass for several bug reports. Wed Oct 24 05:13:01 BST 2007 Olly Betts * queryparser/queryparser.lemony: Fix parsing of queries which consist only of boolean filter terms and HATE-d terms. * tests/queryparsertest.cc: Add regression tests, and a few more cases which passed before too. Fix descriptions of queries which now give different (but equivalent) Xapian::Query object hierarchies. Wed Oct 24 04:51:56 BST 2007 Olly Betts * queryparser/queryparser.lt: Fix warning in debug log build. Wed Oct 24 04:41:08 BST 2007 Olly Betts * backends/flint/flint_table.cc,backends/flint/flint_table.h: Don't use class member function pointers to implement FlintTable::next() and FlintTable::prev() as we can just call the methods directly based on the sequential flag. Profiling suggests this speeds up searches a little, the two pointers take up 16 bytes each (on x86_64) so it reduces the class size by up to 32 bytes, and the code is simpler because we no longer need to update prev_ptr and next_ptr. Wed Oct 24 00:16:06 BST 2007 Olly Betts * api/omqueryinternal.cc: Tweak Query::get_description() to describe OP_SCALE_WEIGHT queries as ' * ' rather than ' * ' as the former results in more readable descriptions. * queryparser/queryparser.lemony: Use OP_SCALE_WEIGHT with factor 0.0 for queries which should be purely boolean which resolves a FIXME comment in the code. * tests/queryparsertest.cc: Fix expected results for this change. Tue Oct 23 19:13:08 BST 2007 Olly Betts * queryparser/queryparser.lemony: Some as_XXX() methods delete the object they are called on, while others don't, so rename the ones which don't to get_XXX() to make the code clearer, and make them all return Query rather than Query *. Eliminate Term::as_query() completely - when we actually want a new object we can just call new in the caller. op_window_query() now takes the difference between the number of terms and the total window size, and we now use a std::vector to store the generated Query objects rather than a std::list, since we know how many there will be and can reserve the required size in advance. Tue Oct 23 18:33:49 BST 2007 Olly Betts * queryparser/queryparser.lemony: Improve comment. Mon Oct 22 21:00:05 BST 2007 Olly Betts * queryparser/queryparser.lemony: Fix handling of LOVE and HATE following a quoted phrase. * tests/queryparsertest.cc: Add regression test. Mon Oct 22 05:23:23 BST 2007 Olly Betts * queryparser/queryparser.lemony: Refactor so Term::as_query() calls Term::as_query_object() instead of vice versa, as this avoids calling 'new Query' quite a bit and makes a measurable difference to the speed of the QueryParser. Fix a call to as_query() which can be as_query_object(). Mon Oct 22 04:10:17 BST 2007 Olly Betts * queryparser/queryparser.lemony: FLAG_PARTIAL with multi-prefixes would result in inflated wqf for the "normal" version of the term treated as partial. * tests/queryparsertest.cc: Add regression test. Mon Oct 22 02:34:58 BST 2007 Olly Betts * queryparser/queryparser.lemony,queryparser/queryparser_internal.h: Rename QueryParser::Internal::prefixes to prefixmap to avoid confusion with all the other variables which are now called "prefixes" in queryparser.lemony. Eliminate have_prefix and instead just set prefixinfo to NULL by default. Sun Oct 21 23:56:57 BST 2007 Olly Betts * common/omenquireinternal.h,include/xapian/enquire.h, include/xapian/query.h,matcher/: Implement a new QueryOptimiser class which can hoist the positional filters of OP_PHRASE and OP_NEAR higher up the tree and merge the "AND" inside them into any neighbouring OP_AND or OP_FILTER (bug#23). This shaves 10% of the execution time of real world queries on real world data. On particularly slow cases, the saving can be more dramatic - it saves 50% when tested on a log of slow cases. OP_SCALE_WEIGHT scaling factors are now pushed down to the leaves and any leaf we a factor other than 0.0 (boolean) or 1.0 (unscaled) has its weights scaled using a ScaleWeight wrapper around the normal weighting object (bug#203). Sun Oct 21 23:46:11 BST 2007 Olly Betts * include/xapian/query.h: Fix documentation of OP_SCALE_WEIGHT. Negative scaling factors aren't now clipped to 0, instead we throw Xapian::InvalidArgumentError. Remove the explicit setting of OP_ELITE_SET to 10 which is no longer required. Wrap a long comment line. Sun Oct 21 23:20:23 BST 2007 Olly Betts * tests/api_anydb.cc: Tweak code and wrap comment. Sun Oct 21 04:53:40 BST 2007 Olly Betts * matcher/extraweightpostlist.h: Add missing '#include "multimatch.h"' which is pulled in implicitly by some other header which always happens to be included before this one. Fri Oct 19 03:52:17 BST 2007 Olly Betts * docs/deprecation.rst: Remove deprecation of QueryParser::add_prefix() and QueryParser::add_boolean_prefix(). Reformat the tables to use the "simple table" style, and to all be 126 columns wide, since that fits in a maximised terminal window without wrapping (at least on my machine!) Fri Oct 19 03:44:33 BST 2007 Olly Betts * include/xapian/queryparser.h,queryparser/queryparser.cc, queryparser/queryparser.lemony,queryparser/queryparser_internal.h, tests/queryparsertest.cc: Since calling QueryParser::add_prefix() or QueryParser::add_boolean_prefix() a second time with the same field name was ignored before (rather than overriding as we had thought) it seems reasonable to change this behaviour. This also avoids the need to deprecate these methods which will force all users to update their code. Change the semantics of default_prefix - it's more useful if this overrides any default prefixes set with add_prefix(), since this allows the same QueryParser object to parse both a "general" search input which searches several fields and also a "title" search input. Trying to set the same field as probabilistic and boolean now throws InvalidOperationError rather than UnimplementedError. Fri Oct 19 03:29:53 BST 2007 Olly Betts * queryparser/queryparser.lt: Fix compilation. Fri Oct 19 03:28:37 BST 2007 Olly Betts * docs/Makefile.am: We're still getting "info" messages in the generated HTML. It seems to be impossible to get rst2html to report "info" messages to stdout without adding them to the generated document, so just drop "--verbose" to disable them completely. Thu Oct 18 18:27:28 BST 2007 Olly Betts * queryparser/queryparser.lt: Use std::vector<> for the stack in the lemon-generated parser. This means that the stack is no longer a fixed size, so we needn't worry about overflow, and that in typical use it'll actually use less memory (lemon defaults to a 100 entry stack). Thu Oct 18 17:23:45 BST 2007 Olly Betts * languages/turkish.sbl: Minimise differences with Snowball SVN HEAD by stripping trailing whitespace. Mon Oct 15 15:39:26 BST 2007 Olly Betts * backends/quartz/btree_util.h: Need "safeunistd.h" for close(). Fixes build errors on mingw and with SGI's CC on IRIX. Mon Oct 15 05:30:23 BST 2007 Olly Betts * matcher/localmatch.cc: Fix typo in comment. Mon Oct 15 05:26:35 BST 2007 Olly Betts * common/omassert.h: Rewritten from scratch. The new version only includes headers if assertions are enabled, which should help to speed up non-assertion builds by reducing unnecessary header inclusion. Also, float.h and math.h are never now pulled in - instead we use the new within_DBL_EPSILON() function. AssertNe() and AssertNeParanoid() are never actually used, so replace them with AssertRel() and AssertRelParanoid which allow the user to assert any binary relation, not just inequality. Also, we now use rare() to give branch prediction hints for assertion tests (since the failure branch should never be taken). * common/omdebug.h,common/stringutils.h,tests/harness/testsuite.h: Replace several definitions of the STRINGIZE macro with a single version in common/stringutils.h. * backends/flint/,backends/inmemory/inmemory_database.cc, backends/multi/multi_postlist.cc,backends/quartz/, backends/remote/remote-database.cc,bin/quartzcheck.cc, bin/xapian-compact.cc,common/stringutils.h,expand/expandweight.cc, expand/ortermlist.cc,matcher/phrasepostlist.cc, matcher/scaleweightpostlist.cc,net/remoteconnection.cc, net/tcpserver.cc: Explicitly include headers which were previously being pulled in implicitly by omassert.h. * HACKING: Update the documentation for assertion calls, and document CompileTimeAssert() (which previously wasn't documented here). Mon Oct 15 05:09:15 BST 2007 Olly Betts * common/utils.cc,common/utils.h: Add within_DBL_EPSILON() function which returns true if its two double arguments differ by less than DBL_EPSILON (currently not used anywhere). Mon Oct 15 05:03:50 BST 2007 Olly Betts * matcher/multiandpostlist.cc: If check sets valid to true, we can't be at_end(), so check valid first as at_end() is a rare event. Mon Oct 15 05:00:18 BST 2007 Olly Betts * matcher/: Remove code for FilterPostList, which has been unused for ages. Sun Oct 14 02:13:57 BST 2007 Olly Betts * matcher/andpostlist.cc: AndPostList now ensures that its left is less frequent than its right (it can still be produced as an operator decay product, and sometimes left is more frequent when this happens). Sun Oct 14 00:58:20 BST 2007 Olly Betts * matcher/multimatch.cc: Use rare() to mark rarely taken branches. Sun Oct 14 00:30:46 BST 2007 Olly Betts * configure.ac: Add rare() and usual() macros to config.h which allow branch prediction hints to be given for compilers which support this (currently GCC and Intel C++). * HACKING: Document rare() and usual(). Sat Oct 13 22:37:32 BST 2007 Olly Betts * HACKING: Improve wording. Sat Oct 13 16:42:26 BST 2007 Olly Betts * api/postlist.cc,common/postlist.h,matcher/: Implement a variant of PostList::skip_to() called PostList::check() which isn't required to leave the PostList on a particular docid. This allows queries filtered by a ValueRangePostList to run around 3.5 times faster. Fixes buf#164, though there's probably scope for at least some further improvement. Sat Oct 13 16:08:07 BST 2007 Olly Betts * matcher/multiandpostlist.cc: Fix typo bug (get_termfreq_min should be get_termfreq_max!) Sat Oct 13 15:53:52 BST 2007 Olly Betts * matcher/multiandpostlist.cc: Fix assertion (should be <= not <). Fri Oct 12 01:20:05 BST 2007 Olly Betts * HACKING: Note that rst2html may be installed as rst2html.py. Fri Oct 12 01:10:11 BST 2007 Olly Betts * matcher/localmatch.cc: Tweak formatting. Thu Oct 11 22:58:36 BST 2007 Olly Betts * tests/: svn:ignore: Add termgentest and termgentest.exe. Thu Oct 11 16:18:03 BST 2007 Olly Betts * configure.ac: If rst2html isn't found, also look for rst2html.py, which archlinux reportedly installs it as. Thu Oct 11 16:09:20 BST 2007 Olly Betts * matcher/: Round the result of all get_termfreq_est() calculations to the nearest integer instead of rounding down. Thu Oct 11 15:40:48 BST 2007 Olly Betts * matcher/: Add new PostList subclass MultiAndPostList which handles a multi-way AND operation in a single class. This allows us to optimise some cases of 3 or more way AND operations much better and gives a 16-17% performance improvement in tests using real-world query logs. * tests/api_anydb.cc: MultiAndPostList rounds get_termfreq_est() calculations to the nearest integer (rather than always rounding down) so adjust the expected answers in test_matches. Thu Oct 11 15:14:27 BST 2007 Olly Betts * matcher/selectpostlist.cc: Explicitly qualify next() as SelectPostList::next(). Thu Oct 11 13:04:40 BST 2007 Olly Betts * README: Remove the ancient history lesson - this material is better left to the history page on the website. Thu Oct 11 00:33:34 BST 2007 Olly Betts * matcher/branchpostlist.h: Fix comment typo. Thu Oct 11 00:28:29 BST 2007 Olly Betts * api/postlist.cc,backends/flint/flint_alldocspostlist.cc, backends/flint/flint_alldocspostlist.h,common/postlist.h,matcher/: Eliminate several implementations of open_position_list and read_position_list in favour of default ones in the PostList base class which throw InvalidOperationError. Change the default get_wdf implementation to also throw InvalidOperationError. Wed Oct 10 22:27:44 BST 2007 Olly Betts * docs/install.html: Improve the remainder. This documents now just gives a brief overview of building, suitable for most common cases, and defers to the INSTALL document in each tarball for more details. Wed Oct 10 21:51:39 BST 2007 Olly Betts * common/leafpostlist.h: Rewrite header. * api/Makefile.mk,api/leafpostlist.cc: Add new source file for virtual, and non-trivial, non-virtual, methods of LeafPostList. * api/omdatabase.cc,backends/inmemory/inmemory_database.h, backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h, backends/remote/net_postlist.h,common/emptypostlist.h: Add missing '#include "omassert.h"' which was previously pulled in implicitly via '#include "leafpostlist.h"'. * backends/inmemory/inmemory_database.h: Remove unused '#include '. * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h: MultiPostList::set_termweight() is never used, so eliminate it. * backends/remote/net_postlist.cc: Rename parameter "weight" to "min_weight" to avoid clash with new member variable of LeafPostList. * matcher/emptysubmatch.cc,matcher/localmatch.cc: Don't call LeafPostList::set_termweight() with a BoolWeight object - the default behaviour is now equivalent. Wed Oct 10 18:18:09 BST 2007 Olly Betts * docs/install.html: Improve the first half. Wed Oct 10 16:32:57 BST 2007 Olly Betts * common/postlist.h: Rewrite header. * api/Makefile.mk,api/postlist.cc: Add new source file for virtual methods of Xapian::PostingIterator::Internal. * api/omdatabase.cc,backends/flint/flint_postlist.h, backends/quartz/quartz_alldocspostlist.cc, backends/quartz/quartz_postlist.h,matcher/valuerangepostlist.cc: Add missing '#include "autoptr.h"' which was previously pulled in implicitly via '#include "postlist.h"'. Wed Oct 10 16:25:08 BST 2007 Olly Betts * tests/quartztest.cc: Remove quartztest's test_postlist1 and test_postlist2. * tests/api_db.cc: Enhance test_termstats to cover part of the removed tests. Enhance test_postlist1 to check more long terms. Eliminate the helper function from test_postlist3. * tests/api_wrdb.cc: Add test_postlist7 to cover the rest of what the removed tests checked which isn't already checked elsewhere. Wed Oct 10 02:29:44 BST 2007 Olly Betts * HACKING: Update the release checklist. Wed Oct 10 02:01:03 BST 2007 Olly Betts * matcher/scaleweightpostlist.cc,matcher/scaleweightpostlist.h: Move virtual dtor definition out of header. Wed Oct 10 01:41:05 BST 2007 Olly Betts * matcher/msetpostlist.cc: Avoid virtual method overhead in MSetPostList::recalc_maxweight(). Wed Oct 10 00:16:00 BST 2007 Olly Betts * common/expandweight.h,expand/expand.cc,expand/expandweight.cc: We never actually use ExpandWeight::get_maxweight(), so remove it. Tue Oct 09 16:27:54 BST 2007 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_version.cc, backends/flint/flint_version.h: Don't try to upgrade a flint database if we're only reading it, or it's already the latest version. Mon Oct 08 10:14:57 BST 2007 Richard Boulton * tests/api_nodb.cc: Rename test_scaleweightmatchnothing1 to test_scaleweight3 so all the scaleweight tests can be run together more easily. Add test_scaleweight4 to test that scaling by a weight close to 1 is optimised away. Sun Oct 07 12:20:14 BST 2007 Olly Betts * include/xapian/database.h: Add explicit note that Database::get_metadata() returns an empty string when the backend doesn't support user-specified metadata, and that WritableDatabase::set_metadata() throws UnimplementedError in this case. Add note about current behaviour with multidatabases. Sun Oct 07 10:58:24 BST 2007 Olly Betts * api/omqueryinternal.cc: No need to use AutoPtr<> here now. Sun Oct 07 10:54:05 BST 2007 Richard Boulton * common/remoteprotocol.h: Bump the network protocol minor revision, since we've added a query operator (OP_SCALE_WEIGHT) and the server will need to be updated to understand serialised queries containing it. Sun Oct 07 01:54:43 BST 2007 Richard Boulton * api/omqueryinternal.cc,include/xapian/query.h,matcher/, tests/api_anydb.cc,tests/api_nodb.cc,tests/internaltest.cc: Rename OP_MULT_WEIGHT to OP_SCALE_WEIGHT and MultWeight to ScaleWeight, and move it to before OP_MULT_WEIGHT (to remove the gap in the enum). Don't do an epsilon test to compare the weight to zero (when checking if it's effectively a boolean query) - do an exact comparison instead. Raise an exception if the parameter for OP_SCALE_WEIGHT is < 0 (instead of clipping it to 0). Adjust weights accordingly. Add test_scaleweight2() to test a query with some weights multiplied by 0, and some by a different factor. Wed Oct 03 17:23:02 BST 2007 Richard Boulton * api/omqueryinternal.cc,tests/api_nodb.cc: Fix (and test) for a double delete if OP_MULT_WEIGHT was applied to an empty query. Mon Oct 01 13:20:39 BST 2007 Richard Boulton * NEWS: Update * net/remoteconnection.cc: Back out previous change - I was confused, the code was previously fine, and the change broke it. Mon Oct 01 13:13:48 BST 2007 Richard Boulton * api/omqueryinternal.cc: Fix access of uninitialised member when unserialising a mult-weight query. * tests/internaltest.cc: Add a regression test for unserialisationg of mult-weight queries. Mon Oct 01 13:11:24 BST 2007 Richard Boulton * net/remoteconnection.cc: After calling read(), check for received == 0 after checking for errors, so that if an EINTR occurs in read, we don't report EOF instead of retrying. Sun Sep 30 23:20:34 BST 2007 Richard Boulton * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h: Add OP_MULT_WEIGHT operator, and a new Query constructor which takes a single subquery and a "double" parameter - currently only useful for OP_MULT_WEIGHT. Add dbl_parameter to Query::Internal, to hold this parameter. Add serialisation of OP_MULT_WEIGHT using "." to represent the operator. Drop OP_MULT_WEIGHT operators which have a parameter of 1 (or very close) when simplifying, since these have no effect. * matcher/multweightpostlist.cc,matcher/multweightpostlist.h: New files, implementing a postlist which multiplies the weights from its single sub-postlist by a parameter. * matcher/Makefile.mk: Add new files. * matcher/localmatch.cc: Add support for the OP_MULT_WEIGHT query operator, which produces a MultWeightPostList if the associated parameter is greater than DBL_EPSILON, and produces a boolean query otherwise. * tests/api_anydb.cc: Add tests for OP_MULT_WEIGHT operator with various queries, and various multipliers. * NEWS: Update Sun Sep 30 23:13:29 BST 2007 Richard Boulton * tests/harness/testsuite.h: Add TEST_NOT_EQUAL_DOUBLE() macro. * tests/harness/testsuite.cc: Add special case to TEST_EQUAL_DOUBLE_() for exact equality of the supplied arguments. This is tidier in general, because it avoids "inf" being produces by the calculation, but is only actually necessary in the case where the arguments are both exactly 0; it all works out nicely for other values of the arguments. Sun Sep 30 21:12:40 BST 2007 Richard Boulton * tests/queryparsertest.cc: #define XAPIAN_DEPRECATED to disable compiler warnings about the deprecated forms of add_prefix() and add_boolean_prefix(). Sun Sep 30 21:07:25 BST 2007 Richard Boulton * api/Makefile.mk,docs/Makefile.am,docs/deprecation.rst, include/Makefile.mk,include/xapian.h,include/xapian/queryparser.h, queryparser/queryparser.cc,queryparser/queryparser.lemony, queryparser/queryparser_internal.h,tests/: Re-apply changes which needed more thought or more work before being included in a release. * NEWS: Update with current descriptions of these changes. Sun Sep 30 20:22:25 BST 2007 Richard Boulton * tests/valgrind.supp: Add further suppressions needed for the version of zlib on ubuntu gutsy. Fri Sep 28 15:38:18 BST 2007 Olly Betts * NEWS: Final (?) update for 1.0.3. Fri Sep 28 15:37:22 BST 2007 Olly Betts * PLATFORMS: Another small update. Fri Sep 28 15:30:17 BST 2007 Olly Betts * HACKING: Add link to the 1.0.N tracker bug. Fri Sep 28 14:04:06 BST 2007 Olly Betts * PLATFORMS: More updates. Fri Sep 28 13:45:51 BST 2007 Richard Boulton * include/xapian/database.h: Document that empty metadata keys will cause an exception from get_metadata() and set_metadata(). * api/omdatabase.cc: Cause empty metadata keys to raise an InvalidArgumentError if they're passed to set_metadata() or get_metadata(). * tests/api_wrdb.cc: Add test_metadata3, to check behaviour with an empty metadata key. Fri Sep 28 13:30:49 BST 2007 Olly Betts * PLATFORMS: Updates from tinderbox. Fri Sep 28 13:22:16 BST 2007 Olly Betts * include/xapian/database.h: Clarify support for empty metadata keys. Fri Sep 28 11:00:08 BST 2007 Richard Boulton * tests/valgrind.supp: Add second version of the zlib end condition check which works for the version of zlib in Ubuntu gutsy; ie, version 1.2.3.3, where the error occurs in the function called directly by deflate, rather than two levels below it. Fri Sep 28 03:11:11 BST 2007 Olly Betts * configure.ac: Update for 1.0.3. Fri Sep 28 03:05:10 BST 2007 Olly Betts * api/Makefile.mk,docs/Makefile.am,docs/deprecation.rst, include/Makefile.mk,include/xapian.h,include/xapian/queryparser.h, queryparser/queryparser.cc,queryparser/queryparser.lemony, queryparser/queryparser_internal.h,tests/: Back out changes which need more thought or more work in the interests of getting 1.0.3 out this month. Fri Sep 28 03:04:19 BST 2007 Olly Betts * NEWS: Update with recent changes. Fri Sep 28 01:55:42 BST 2007 Olly Betts * docs/deprecation.rst: Revert to the previous deprecation policy. Fri Sep 28 01:20:34 BST 2007 Olly Betts * include/xapian/enquire.h: Rephrase since "should be in the MSet" might be misunderstood. Fri Sep 28 01:12:47 BST 2007 Olly Betts * AUTHORS,docs/Makefile.am,docs/glossary.rst,docs/index.html: Add glossary put together by Jenny Black, also incorporating entries from Deron Meranda's glossary on the wiki. Thu Sep 27 23:06:30 BST 2007 Olly Betts * docs/stemming.html: Reorder the initial paragraphs so we actually answer the question "What is a stemming algorithm?" up front. Thu Sep 27 22:15:36 BST 2007 Olly Betts * matcher/valuerangepostlist.cc: Call ValueRangePostList::next() explicitly to avoid the overhead of virtual method dispatch. Thu Sep 27 14:43:25 BST 2007 Olly Betts * common/termlist.h: Don't need to forward declare Xapian::Internal::ExpandWeight here. Thu Sep 27 14:36:00 BST 2007 Olly Betts * common/termlist.h: Add missing (but indirectly included) '#include '. Fri Sep 21 18:00:34 BST 2007 Richard Boulton * docs/deprecation.rst: Add deprecation for Database::positionlist_begin() throwing DocNotFoundError , for same reason as deprecating it throwing RangeError. Also, add deprecation for QueryParser::add_prefix(f, p) and add_boolean_prefix() - replaced by three argument form of add_prefix. Also, add a policy that we don't add XAPIAN_DEPRECATED when there's no replacement for the deprecated feature in the last x.x.0 release. * include/xapian/queryparser.h: Add @deprecated to documentation comments for add_prefix(f, p) and add_boolean_prefix() (but don't add XAPIAN_DEPRECATED() macro for now). Fri Sep 21 16:13:25 BST 2007 Richard Boulton * include/xapian/queryparser.h: Fix copy and paste errors in documentation comment, and hopefully clarify it somewhat. Fri Sep 21 15:50:40 BST 2007 Richard Boulton * tests/queryparsertest.cc: Initialise the default prefix from prefixes.find(""), allowing multiple default prefixes to be set by calling add_prefix() with an empty field name. * queryparser/queryparser.lemony: Several more tests; mainly for the new default_prefix functionality, but also a bit more coverage for multiple prefixes in general. Fri Sep 21 15:04:02 BST 2007 Richard Boulton * include/xapian/queryparser.h,queryparser/queryparser.cc: API addition: Revert previous change to behaviour of QueryParser::add_prefix and QueryParser::add_boolean_prefix methods, to avoid API change within a release series. Add new QueryParser::add_prefix() form which takes three parameters; the third parameter is a value from a new "prefix_type" enum. * queryparser/queryparser.lemony,queryparser/queryparser_internal.h: Internal changes to allow multiple filters to be set for a single field: - Remove the PrefixInfoList object again - instead add a list of prefixes to PrefixInfo. We only aim to support one type of prefix for a given field, so the extra flexibility given by PrefixInfoList is a districation. - Change filter_group_id to be based on a list of prefixes, instead of a single prefix. - Change Term objects to store a list of prefixes instead of a single prefix. make_term() now takes a prefix argument and makes a single term. Term::as_... methods iterate through the prefix list and OR together the resulting terms. - Change TermList object to store a list of Terms instead of Queries, and also to keep track of whether the prefix lists for those Terms are all the same. When they are the same, generate separate phrases for each prefix, and OR them togeher, instead of generating phrases of "OR" groups of terms. Remove the unused "TermList::add_term()" method. * tests/queryparsertest.cc: Add simple tests of repeated inline fields, phrases with multiple prefixed fields, tests of backwards compatible behaviour of add_prefix(field, prefix), and add_boolean_prefix(), and of the new add_prefix() form with incompatible types. Thu Sep 20 02:13:36 BST 2007 Olly Betts * NEWS: Update with changes since 1.0.2. Wed Sep 19 20:00:43 BST 2007 Olly Betts * backends/flint/flint_table.cc: Fix "Key_" in exception message to say "Key" (the result of overzealous search-and-replace). Wed Sep 19 17:08:16 BST 2007 Richard Boulton * include/xapian/queryparser.h,queryparser/queryparser.cc, queryparser/queryparser.lemony,queryparser/queryparser_internal.h: Handle repeated calls to QueryParser::add_boolean_prefix() with the same field - this will generate multiple terms for each occurrence of the field in the query. Involves reorganising the internal representation of prefixes, to hold a list of PrefixInfo objects for each field, instead of a single object. This also paves the way towards handling for multiple calls to QueryParser:add_prefix() with the same field, and allowing add_{boolean_}prefix() with an empty field to set the default prefix handling, but the behaviour of this are currently unchanged. Technically, this could be considered an API change, but the previous behaviour (of using only the most recent value set by add_boolean_prefix) was unintentional and undocumented, and seems unlikely to have been deliberately used. * tests/queryparsertest.cc: Add a very simple test for repeated boolean_prefix fields; several more are needed. Also, a commented out test of repeated non-boolean prefix fields. Tue Sep 18 23:28:48 BST 2007 Richard Boulton * queryparser/queryparser.lemony: Remove unused variable "term_group". Tue Sep 18 16:56:37 BST 2007 Olly Betts * api/matchspy.cc,include/xapian/matchspy.h: Use a set rather than a map to store the "multivalues" flags. Mon Sep 17 14:10:47 BST 2007 Olly Betts * include/xapian/matchspy.h: Fix documentation comment typo. Sun Sep 16 04:13:20 BST 2007 Olly Betts * net/remoteconnection.cc: Fix compiler warning in mingw build. Sun Sep 16 02:59:54 BST 2007 Olly Betts * backends/flint/flint_database.cc,tests/api_wrdb.cc: Check length of new terms is at most 245 bytes for flint in add_document() and replace_document() so that the API user gets an error there rather than when flush() is called (explicitly or implicitly). Fixes bug#44. Sat Sep 15 20:11:36 BST 2007 Olly Betts * backends/flint/flint_version.cc: Add missing include of msvc_posix_wrapper.h. Sat Sep 15 17:58:35 BST 2007 Olly Betts * api/omdatabase.cc,backends/database.cc, backends/flint/flint_database.cc,backends/flint/flint_database.h, backends/flint/flint_version.cc, backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h,common/database.h, include/xapian/database.h,tests/api_wrdb.cc: Add support for user specified metadata (bug#143). Sat Sep 15 02:26:40 BST 2007 Olly Betts * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Implement FlintCursor::find_entry_ge() a little more efficiently (we could do better still by modifying FlintTable too). Sat Sep 15 00:56:54 BST 2007 Olly Betts * backends/flint/flint_cursor.cc: If we found the exact key, just copy it to current_key. Fri Sep 14 21:52:45 BST 2007 Olly Betts * backends/flint/: Overhaul FlintAllDocsPostList. Fri Sep 14 19:20:56 BST 2007 Olly Betts * backends/flint/flint_alltermslist.cc: Rework FlintAllTermsList::skip_to() to use FlintCursor::find_entry_ge(). Fri Sep 14 17:45:06 BST 2007 Olly Betts * backends/flint/flint_cursor.h: Improve documentation comment. Fri Sep 14 17:28:17 BST 2007 Olly Betts * backends/flint/flint_spellingwordslist.cc, backends/flint/flint_synonym.cc: Use FlintCursor::find_entry_ge(). * backends/flint/flint_synonym.h: Use FlintCursor::find_entry_lt(). * backends/flint/flint_alltermslist.h: Use FlintCursor::find_entry_lt() and skip any keys before "\x00\xff" to allow for extra metadata keys. Fri Sep 14 15:26:04 BST 2007 Olly Betts * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: The reason why a deleted key is still visible to the cursor is that it is running over the previous revision of the tree. So we don't need to call find_entry() at all - we can just call next(). Also extend FlintCursor::del() to return whether the cursor is positioned (like FlintCursor::next() does). * backends/flint/flint_postlist.cc: Use the return value of FlintCursor::del(). Fri Sep 14 15:10:39 BST 2007 Olly Betts * tests/Makefile.am: Reorder the testdata/flint-x.y.z files consistently. Fri Sep 14 12:48:04 BST 2007 Richard Boulton * configure.ac: Add "tar-ustar" option to AM_INIT_AUTOMAKE. This is needed to avoid a failure of make dist due to filepaths of more than 99 characters (in the generated documentation: the relevant filepaths are for the NumberValueRangeProcessor class, and extend to 103 characters). Automake documentation implies that tar-v7 is the default format, which doesn't support filepaths longer than 99 characters portably; ustar allows 256 characters. The automake documentation says that the ustar format "is believed to be old enough to be portable"; if we come across problems due to the format change we could consider renaming files to reduce the filepath length. * tests/Makefile.am: Remove testdata/flint-1.0.2/{value,position}.{baseA,DB} from distribution, since they don't actually exist. Fixes make dist. Fri Sep 14 10:45:35 BST 2007 Richard Boulton * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Add FlintCursor::find_entry_gt(), and use it instead of flint_entry_ge() in FlintCuror::del(). This fixes failure of deldoc4 test. I'm not sure why find_entry() can return true immediately after the key it's searching for was deleted with B->del(), though: that merits further investigation. Fri Sep 14 04:57:14 BST 2007 Olly Betts * bin/xapian-inspect.cc: Avoid comparing char with 0 - on platforms where char is unsigned by default this can give a compiler warning. Fri Sep 14 03:40:18 BST 2007 Olly Betts * bin/xapian-compact.cc: Removed unused variable. Fri Sep 14 01:56:36 BST 2007 Olly Betts * backends/flint/flint_alltermslist.cc: Fix comment typo. Fri Sep 14 01:51:52 BST 2007 Olly Betts * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Add FlintCursor::find_entry_lt() and FlintCursor::find_entry_ge() which we can implement more efficiently (in the future) than user code calling FlintCursor::find_entry() and then having to adjust the cursor position in some cases. Thu Sep 13 14:52:34 BST 2007 Olly Betts * backends/flint/flint_alltermslist.cc: FlintCursor::after_end() is never true after FlintCursor::find_entry() so remove check for this case! Thu Sep 13 03:11:19 BST 2007 Olly Betts * backends/flint/flint_alltermslist.h,backends/flint/flint_database.cc, backends/flint/flint_database.h: Don't pass FlintPostListTable pointer to FlintAllTermsList - it can find this via the database if we make it FlintDatabase instead of Database::Internal. Thu Sep 13 02:07:19 BST 2007 Olly Betts * backends/flint/: Read/write the metainfo key from FlintDatabase to avoid having to pass a huge long list of values across once we start to store more statistics. Thu Sep 13 02:03:46 BST 2007 Olly Betts * backends/database.cc,common/database.h: Move definitions of virtual methods out of the header file. Thu Sep 13 01:33:49 BST 2007 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_database.h: Store the total_length and lastdocid values in FlintDatabase object. Wed Sep 12 20:27:49 BST 2007 Olly Betts * matcher/multimatch.cc: Eliminate a block which used to scope some variables which have now moved. Unify debug output from different cases after the match. Remove half-finished comment which doesn't seem to be trying to say anything useful. Wed Sep 12 20:20:18 BST 2007 Olly Betts * tests/api_anydb.cc: In checkatleast2, the total number of matching documents in the database is 5, so use TEST_EQUAL instead of TEST_GREATER_OR_EQUAL to compare get_matches_lower_bound() with 5. Wed Sep 12 17:55:00 BST 2007 Olly Betts * backends/flint/flint_database.h: Fix some comment typos and outdated information. Remove some superfluous uses of "virtual". Wed Sep 12 17:15:58 BST 2007 Olly Betts * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc: Failing to create a flint or quartz database because we couldn't create the directory for it now throws DatabaseCreateError not DatabaseOpeningError. * tests/api_db.cc: Update test cases. Wed Sep 12 15:40:16 BST 2007 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_database.h: If we reach the flush threshold during a transaction, flush the postlist changes, but don't actually commit them. Wed Sep 12 14:12:52 BST 2007 Olly Betts * common/msvc_posix_wrapper.cc,common/msvc_posix_wrapper.h: Add msvc_posix_rename() which can rename a file on top of another file. * common/stringutils.h: Add common_prefix_length() function. * backends/flint/: Clean up FlintWritableDatabase - it now just inherits from FlintDatabase which allows several virtual methods which just forwarded to FlintDatabase to be dropped. Also, we now no longer need to pass FlintTable objects to other classes - they can just find the tables they want via the database pointer. The never-used "store_termfreqs" flag has been dropped from the termlist table entries - existing 1.0.x flint databases will be automatically upgraded to the new version. Opening a database now calls stat() less, so should be slightly more efficient. And TermIterator::positionlist_count() now works for the flint backend. * tests/Makefile.am,tests/api_db.cc,tests/testdata/flint-1.0.2/: New test flintbackwardcompat2 which tests that we can open a flint database from 1.0.2. * tests/api_wrdb.cc: New test adddoc4 which checks that termlists handle an initial term of any valid length correctly. * tests/testdata/flint-1.0.1/postlist.DB: Mark as a binary file in SVN. Tue Sep 11 23:02:56 BST 2007 Olly Betts * backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h: Implement TermIterator::positionlist_count() for the inmemory backend. * tests/api_posdb.cc: Add feature test for TermIterator::positionlist_count() (which currently skips for all backends except inmemory). Tue Sep 11 03:43:30 BST 2007 Olly Betts * backends/flint/flint_database.cc: Make sure flush_threshold gets initialised. * backends/flint/flint_database.h: Change type of flush_threshold from `size_t' to `Xapian::doccount' for consistency with the type of changes_made. Tue Sep 11 03:19:37 BST 2007 Richard Boulton * backends/flint/flint_database.cc,backends/flint/flint_database.h: Change flush_threshold from static to non-static, and set it for each FlintWritableDatabase based on the value of the XAPIAN_FLUSH_THRESHOLD environment variable at the time the database was opened, instead of caching the value for each future database which is opened. Tue Sep 11 02:59:45 BST 2007 Olly Betts * docs/Makefile.am: When running rst2html, use "--exit-status=warning" rather than "--strict". The former actually gives a non-zero exit status for a warning or worse, while the former doesn't, but does include any "info" messages in the output HTML. Tue Sep 11 02:38:30 BST 2007 Olly Betts * docs/deprecation.rst: Add "Database::positionlist_begin() throwing RangeError". Tue Sep 11 00:52:27 BST 2007 Olly Betts * HACKING: Document a few more "coding standards". Mon Sep 10 21:34:23 BST 2007 Olly Betts * examples/delve.cc,examples/simpleexpand.cc,net/tcpserver.cc, queryparser/queryparser.cc,queryparser/queryparser.lemony: Add more missing "#include " instances. Mon Sep 10 20:24:25 BST 2007 Olly Betts * net/serialise.cc: Add missing "#include ". Sun Sep 09 15:38:11 BST 2007 Olly Betts * backends/flint/flint_spelling.h,backends/flint/flint_synonym.h, backends/flint/flint_table.h: Fix typo (Z_DEFAULT_COMPRESSION where it should be Z_DEFAULT_STRATEGY) which meant that zlib compression wasn't enabled for the spelling or synonym tables. Fri Sep 07 19:31:44 BST 2007 Olly Betts * docs/spelling.rst: Fix typo. Thu Sep 06 15:02:43 BST 2007 Richard Boulton * api/editdistance.cc: Fix off-by-one error in loop bounds when setting up fkp array initially. Fixes bug #194. * tests/api_wrdb.cc: Add regression test for #194, spell5. Thu Sep 06 14:31:15 BST 2007 Olly Betts * tests/harness/testsuite.cc: More localised fix for preserving the start of the valgrind report when in verbose mode. Rework the code which pulls out the start of the report to summarise why the test failed. Thu Sep 06 14:17:44 BST 2007 Richard Boulton * tests/harness/testsuite.cc: When displaying valgrind output, seek back to the start of the valgrind output for the current test before dumping it to stdout: previously, the earlier check for the valgrind error message to display (when not using -v) caused the first 1024 bytes of the valgrind output to get dropped. Tue Sep 04 20:13:29 BST 2007 Richard Boulton * matcher/multimatch.cc: For remote submatches, keep a count of matches which we know exist, but we don't get passed from the submatch. These can be detected by checking for the lowerbound on the matches in the submatch being greater than the index of the last item in the returned submset. When the match is over, use this count, together with docs_matched, to adjust the lower bound and estimate (and upper bound, if we've not seen as many documents as we were asked to check for). Fixes checkatleast2 and checkatleast3 in the remote database case. * tests/harness/testsuite.h: Add TEST_GREATER_OR_EQUAL, TEST_GREATER, TEST_LESSER_OR_EQUAL and TEST_LESSER macros, which display the values of the arguments if they fail. * tests/api_anydb.cc: Use TEST_GREATER_OR_EQUAL and TEST_EQUAL in checkatleast2 and checkatleast3, to make failures easier to debug. Tue Sep 04 18:16:49 BST 2007 Olly Betts * matcher/multimatch.cc: Restructure to make the control flow clearer. Rewrap some comments which got wrapped to ~82 columns somehow. Tue Sep 04 17:21:49 BST 2007 Olly Betts * docs/overview.html: Restore the HTML header I accidentally deleted in November 2006. Tue Sep 04 17:15:30 BST 2007 Olly Betts * docs/overview.html: Fix typo. Tue Sep 04 13:47:27 BST 2007 Richard Boulton * tests/api_anydb.cc: Tighten test_checkatleast3 to check for previous bug (now fixed). Tue Sep 04 13:37:01 BST 2007 Richard Boulton * matcher/multimatch.cc: If check_at_least is greater than maxitems, but there are fewer results than check_at_least, the lower and upper bounds reported should be equal (and exact). Fix a bug which caused this not to be the case, by checking if docs_matched < check_at_least, and forcing the bounds (and estimate) to be docs_matched in this case. Also, fix a bug when sorting by anything other than relevance, which was causing potential matches which are too low in the ranking to make the mset not to be added to the count of docs_matched, even when docs_matched < check_at_least. Also, add a few extra explanatory comments and debug log messages in get_mset(). Tue Sep 04 12:43:03 BST 2007 Olly Betts * PLATFORMS: Update from debian buildd logs. Tue Sep 04 09:57:25 BST 2007 Richard Boulton * Makefile.am,configure.ac,msvc/genversion.pl,msvc/version.h.in: Move msvc/genversion.pl and msvc/version.h.in to win32msvc in xapian-maintainer-tools. Remove generation of msvc/version.h from configure.in, and AC_SUBST() of MAJOR_VERSION, MINOR_VERSION and REVISION, which were only in place for this generation. Remove msvc/version.h from distribution tarballs. Tue Sep 04 02:56:00 BST 2007 Olly Betts * matcher/andpostlist.cc: If the database has > 2G documents then the sum of termfreq_min can overflow, so handle this case correctly. Tue Sep 04 00:05:47 BST 2007 Olly Betts * xapian-config.in: We always need to include dependency_libs in the output of `xapian-config --libs` if shared libraries are disabled. Mon Sep 03 16:28:33 BST 2007 Olly Betts * bin/xapian-check.cc: Allow "xapian-check db/record." and "xapian-check db/record.DB". Mon Sep 03 02:16:43 BST 2007 Olly Betts * docs/deprecation.rst,include/xapian/enquire.h: Deprecate Enquire::register_match_decider(). * api/omenquire.cc,common/omenquireinternal.h: Remove mdecider_map since the set values are never used anywhere. Sun Sep 02 20:54:33 BST 2007 Olly Betts * HACKING: Add "update the 1.0.N tracker bug" to the release checklist. Fri Aug 31 10:44:19 BST 2007 Richard Boulton * tests/api_db.cc,tests/api_wrdb.cc: Fix compilation of apitest, which was broken on 64 bit platforms due to size_t instead of doccount bug. Fri Aug 24 11:56:18 BST 2007 Richard Boulton * api/matchspy.cc,include/xapian/matchspy.h: Fix uses of size_t which should have been Xapian::doccount. Was causing compile errors on platforms where size_t and Xapian::doccount were different sizes. Fri Aug 03 20:10:15 BST 2007 Richard Boulton * tests/api_nodb.cc: Add test_stringlistserialise1() to test the StringListSerialiser and StringListUnserialiser. Change the list of testcases to use the TESTCASE and END_OF_TESTCASES macros. Fri Aug 03 19:53:26 BST 2007 Richard Boulton * api/matchspy.cc,include/xapian/matchspy.h: Add StringListSerialiser and StringListUnserialiser classes which can be used to serialise a list of strings into a single string. Add flag to ValueCountMatchSpy to use this to unserialise the values read from the database into multiple strings, allowing several values to be stored for a particular slot in a database: this allows multiple values of a particular facet to be stored. Thu Jul 26 16:55:18 BST 2007 Richard Boulton * backends/flint/flint_table.cc: Change STRINGIZE to om_tostring() in error message about a key which is too long; STRINGIZE doesn't work since FLINT_BTREE_MAX_KEY_LEN is no longer a preprocessor constant - it's a C++ constant; before this change, the error message contained the literal text "FLINT_BTREE_MAX_KEY_LEN". Tue Jul 17 12:20:55 BST 2007 Richard Boulton * api/matchspy.cc,include/xapian/matchspy.h: Add a MultipleMatchDecider, which calls a list of deciders in order, until one returns false. * include/xapian/enquire.h: Expand comment to say which way round the return values of the MatchDecider operator are. * tests/api_db.cc: Add test_matchfunctor3() to test the MultipleMatchDecider - also tests the ValueCountMatchSpy, incidentally. Tue Jul 17 11:10:42 BST 2007 Richard Boulton * api/matchspy.cc,include/xapian/matchspy.h: Make get_most_frequent_items() private, since I'm not convinced it's useful to make it available externally. We can always make it public again if it's useful to do so. * test/api_wrdb.cc: Update tests accordingly. Sat Jul 14 00:17:06 BST 2007 Richard Boulton * api/matchspy.cc,include/xapian/matchspy.h: Get rid of the TopValueMatchSpy in favour of a new function "get_most_frequent_items", which processes the output of a ValueCountMatchSpy. Add a TermCountMatchSpy which counts the occurrences of terms with a given prefix, and gives output in the same form as ValueCountMatchSpy. Add convenience methods ValueCountMatchSpy::get_top_values() and TermCountMatchSpy::get_top_terms() which use this to return the most frequent items seen by the matchspy. * tests/api_wrdb.cc: Test the ValueCountMatchSpy, and the get_most_frequent_items() function. Fri Jul 13 18:57:30 BST 2007 Richard Boulton * matcher/andpostlist.cc,tests/api_anydb.cc: Improve the lower bound on the number of matching documents for an AND query - if the sum of the lower bounds for the two sides is greater than the number of documents in the database, then some of them must have both terms. This greatly improves the lower bound for queries of the form " FILTER foo" (since FILTER is a subclass of AND, and uses the same method), but is probably a useful improvement elsewhere. Fri Jul 13 17:53:46 BST 2007 Richard Boulton * docs/valueranges.rst: Correct out-of-date reference to float_to_string, spotted by Enrico Zini. Wed Jul 11 22:54:43 BST 2007 Richard Boulton * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc: Move ValueAndFrequency out of the TopValueMatchSpy class - it doesn't seem to be possible to wrap it with swig without doing this, and it doesn't seem much less tidy. Wed Jul 11 18:03:18 BST 2007 Richard Boulton * api/matchspy.cc,include/xapian/matchspy.h: Split MatchSpy into a base class (ValueCountMatchSpy), which just counts the values in the documents it sees, and a subclass (CategorySelectMatchSpy) which does the grouping into categories, and scores the categories. Add another subclass (TopValueMatchSpy) which calculates a sorted vector holding the most frequent values. * tests/api_wrdb.cc: Update matchspy1 and matchspy2 to use CategorySelectMatchSpy instead of MatchSpy, and corresponding changes to the methods. Add matchspy3 to test the TopValueMatchSpy. Mon Jul 09 15:40:58 BST 2007 Richard Boulton * tests/termgentest.cc: Fix copyright: everything I've done in 2007 has been for Lemur. Mon Jul 09 15:40:38 BST 2007 Richard Boulton * include/xapian/version_h.cc: Fix type in comment. Fri Jul 06 12:14:48 BST 2007 Richard Boulton * include/xapian/enquire.h: Add note to register_match_decider() documentation comment of what this function is for, and also that it doesn't currently do anything (other than store the values passed to it in the enquire internals). Thu Jul 05 20:52:52 BST 2007 Richard Boulton * docs/categorisation.rst: Fix typo. Thu Jul 05 20:41:49 BST 2007 Richard Boulton * tests/api_wrdb.cc: Rework matchspy2 to use approximate values to avoid failing on some platform due to differing precision. Thu Jul 05 12:21:48 BST 2007 Olly Betts * docs/categorisation.rst: Complete half sentence. Thu Jul 05 12:17:20 BST 2007 Olly Betts * docs/categorisation.rst: Add section on restricting by category values. Thu Jul 05 04:47:18 BST 2007 Olly Betts * docs/Makefile.am,docs/categorisation.rst: Add topic document discussing use of Xapian::MatchSpy. Thu Jul 05 02:08:13 BST 2007 Olly Betts * include/xapian.h,tests/api_wrdb.cc: Restore MatchSpy stuff. Thu Jul 05 01:38:38 BST 2007 Olly Betts * HACKING: Note that RoadMap on the wiki needs updating for each release. Thu Jul 05 01:03:05 BST 2007 Olly Betts * AUTHORS: Update. Thu Jul 05 00:31:00 BST 2007 Olly Betts * NEWS: Minor tweaks and clarifications. Thu Jul 05 00:29:53 BST 2007 Olly Betts * include/xapian.h,tests/api_wrdb.cc: Disable MatchSpy class for 1.0.2 as it's not ready for release yet. Wed Jul 04 21:20:59 BST 2007 Richard Boulton * NEWS: Update with release date for release 1.0.2 Wed Jul 04 21:09:18 BST 2007 Richard Boulton * AUTHORS: Add Tomek Jackowiak, for reporting bug #166 (missing Xapian::Query documentation). Wed Jul 04 20:45:56 BST 2007 Olly Betts * configure.ac: Updated version and library version for 1.0.2. Wed Jul 04 20:36:07 BST 2007 Olly Betts * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc: Tidy up API for MatchSpy::build_numeric_ranges() and add tests. Wed Jul 04 19:40:31 BST 2007 Richard Boulton * NEWS: Fully updated. Wed Jul 04 18:33:59 BST 2007 Richard Boulton * NEWS: Move some of the changelog entries into news-style comments. Wed Jul 04 17:50:19 BST 2007 Richard Boulton * tests/api_wrdb.cc: SKIP_TEST() spell3 on windows - it doesn't work there due to trying to delete (and then overwrite) an open database. We shouldn't be doing this, so add a long FIXME explaining what we should be doing instead. Wed Jul 04 17:27:22 BST 2007 Olly Betts * NEWS: Partly update. Wed Jul 04 17:19:51 BST 2007 Olly Betts * AUTHORS: Add Simon Tatham for spotting the -INFINITY issue, and for a lot of useful advice during the CVS to SVN transition. Wed Jul 04 17:16:59 BST 2007 Olly Betts * api/,include/xapian/queryparser.h,tests/queryparsertest.cc: Rename Xapian::NumberValueRangeProcessor::float_to_string() to Xapian::sortable_serialise() and Xapian::NumberValueRangeProcessor::string_to_float() to Xapian::sortable_unserialise(). Wed Jul 04 17:16:16 BST 2007 Olly Betts * HACKING: Add rationale for 2 space indents for "public", etc. Wed Jul 04 14:09:57 BST 2007 Olly Betts * tests/queryparsertest.cc: Loops on integers and scale to doubles rather than looping on doubles and scaling to get integers. Wed Jul 04 13:01:11 BST 2007 Olly Betts * tests/queryparsertest.cc: If the NumberValueRangeProcessor string encodings don't sort the same way, there's no need to report the string encodings in the error message as they are written to "tout" just before, along with the respective numbers they came from. The string encodings can contain control characters, so are liable to corrupt the test failure message. Wed Jul 04 12:25:15 BST 2007 Richard Boulton * api/valuerangeproc.cc: Fix encoding of extremely large, negative, non-IEEE representation to be -INFINITY, not +INFINITY. Thanks to Simon Tatham for pointing this out. * include/xapian/queryparser.h: Add a documentation comment note that zero and -zero will be transformed to the same value. Wed Jul 04 10:09:33 BST 2007 Richard Boulton * api/valuerangeproc.cc: Change encoding used for doubles to a much more compact scheme, and add support for +-INFINITY. Also, some other tweaks to avoid unneccessary computation. * tests/queryparsertest.cc: Update test cases to expect new encoding of doubles, and add values for INFINITY and DBL_MAX and some other special numbers to the list of numbers that are specifically checked. Wed Jul 04 03:29:10 BST 2007 Olly Betts * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc: Category score now explicitly weights for having nearer the requested number of categories. Category score is now normalised so values should be roughly comparable between different sized collections. Add untested code to build ranges. Wed Jul 04 00:48:07 BST 2007 Olly Betts * bin/xapian-compact.cc: Add new "--no-renumber" option to preserve document ids from source databases. Fix bug in change to add support for spelling and synonym tables which was preventing any renumbering from happening! Wed Jul 04 00:25:52 BST 2007 Olly Betts * backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h,tests/api_wrdb.cc: Fix bug in inmemory backend - using replace_document() to add a document with a specific document id above the highest currently used would create empty documents for all document ids in between. Tue Jul 03 09:27:36 BST 2007 Richard Boulton * HACKING: Add note that protection level declarations in classes and structs should only be indented by 2 spaces. Tue Jul 03 03:53:11 BST 2007 Olly Betts * api/Makefile.mk,api/matchspy.cc,include/xapian/matchspy.h, tests/api_wrdb.cc: Add MatchSpy method to score how good a categorisation is. Tue Jul 03 01:24:19 BST 2007 Olly Betts * include/xapian/queryparser.h: Replace `#include ' with forward declaration of Stem. Tue Jul 03 01:14:12 BST 2007 Olly Betts * include/xapian/errorhandler.h: Replace `#include ' with forward declaration of Error. * api/errorhandler.cc: Now needs to explicitly `#include '. Tue Jul 03 01:08:30 BST 2007 Olly Betts * include/xapian/dbfactory.h: Replace `#include ' with forward declarations of Database and WritableDatabase. Tue Jul 03 00:59:57 BST 2007 Olly Betts * include/xapian/enquire.h: Remove `#include '. Mon Jul 02 23:25:55 BST 2007 Olly Betts * include/Makefile.mk,include/xapian.h,include/xapian/matchspy.h, tests/api_wrdb.cc: Implement "MatchSpy" class to tally values in matching documents. Mon Jul 02 18:15:18 BST 2007 Olly Betts * api/omenquire.cc,include/xapian/enquire.h: Fix last change to preserve ABI compatibility. Mon Jul 02 17:52:10 BST 2007 Olly Betts * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h, include/xapian/enquire.h,matcher/multimatch.cc,net/remoteserver.cc, tests/api_db.cc: Add support for a "matchspy" - a MatchDecider which is documented to be tested on ever candidate document. We plan to optimise the current matchdecider to be used as little as possible. Mon Jul 02 17:35:12 BST 2007 Olly Betts * tests/api_db.cc: Enhance matchfunctor1 to test that the functor returns ALL matching documents, not just that all documents returned match. Mon Jul 02 16:36:57 BST 2007 Richard Boulton * common/omassert.h: Fix to avoid warning in gcc-snapshot; use do{}while(0) to protect assertions, and remove the old "if (a) {} else {fail}" constructions which tried to do the same job. Mon Jul 02 14:56:58 BST 2007 Richard Boulton * bin/xapian-inspect.cc: Add missing #include of - fixes gcc-2.95 compilation. Mon Jul 02 14:54:50 BST 2007 Richard Boulton * queryparser/termgenerator_internal.h: Fix for gcc-2.95 compilation. Mon Jul 02 14:09:22 BST 2007 Olly Betts * api/Makefile.mk,api/valuerangeproccompat.cc, include/xapian/queryparser.h: Put the new NumberValueRangeProcessor in a sub-namespace which we then import it from. Restore the old NumberValueRangeProcessor implementation inside the library so that it is available to code linked against 1.0.0 or 1.0.1 to keep ABI compatibility. Sun Jul 01 15:32:30 BST 2007 Olly Betts * include/xapian/queryparser.h: Clearer description of NumberValueRangeProcessor. Don't document the number format in terms of strtod() - that's a bug, not a feature we want to be tied to. * include/xapian/query.h,include/xapian/queryparser.h: Use "@a" not "\a" for consistency with existing usage. Sun Jul 01 10:09:42 BST 2007 Richard Boulton * matcher/localmatch.cc: When registering a term, check if it's empty, and if so use the document count as the term frequency, rather than calling the database to get the term frequency of an empty term (most database backends have an assertion that the term is not empty, and an empty term isn't a valid parameter to pass to get_termfreq() anyway). * matcher/multimatch.cc: For MatchAll queries, the "" term will not be found in the termlist of the top document, so check if a "" term is present in the query, and use it to increase the percent_scale if so. This fixes an Assertion which checked that percent_scale was not 0. * tests/api_db.cc: Add test_matchall1() which tests running a query with a MatchAll query. * tests/api_nodb.cc: Rename test_emptyquery1 and test_emptyquery2 to test_emptyquery2 and test_emptyquery3, respectively. There was already a (different) test_emptyquery1 in api_anydb.cc. Sat Jun 30 18:04:06 BST 2007 Olly Betts * tests/queryparsertest.cc: Write `2.0' rather than `(double)2'. Sat Jun 30 16:12:49 BST 2007 Olly Betts * docs/valueranges.rst: Fix typo. Fix ".. note:" to ".. note::" so it appears visibly in the HTML output rather than in an HTML comment! Sat Jun 30 15:14:33 BST 2007 Olly Betts * api/omdocument.cc,common/document.h,include/xapian/document.h: Add Xapian::Document::get_docid() method. Sat Jun 30 04:00:57 BST 2007 Olly Betts * matcher/multimatch.cc: If there's only one term in the query (a pretty common case) we don't need to look at the top document's termlist to determine that it matches all the query terms. Sat Jun 30 00:37:09 BST 2007 Olly Betts * INSTALL: Add note that zlib must be installed before you can build Xapian. Fri Jun 29 22:40:58 BST 2007 Olly Betts * backends/flint/: If doccount == lastdocid, all document ids up to lastdocid are used, so we provide a special really efficient version implementation of iterating all documents for this common case for flint. Fri Jun 29 00:39:04 BST 2007 Olly Betts * common/stringutils.h: Add startswith() and endswith() overloads which take a single character. * backends/flint/flint_spellingwordslist.cc,bin/xapian-inspect.cc: Use new forms. * backends/flint/flint_spellingwordslist.cc: Fix comment typo. Thu Jun 28 21:43:49 BST 2007 Olly Betts * backends/flint/flint_spellingwordslist.cc: Another begins_with() which I somehow missed. Thu Jun 28 19:51:03 BST 2007 Olly Betts * api/valuerangeproc.cc,backends/flint/flint_alltermslist.cc, backends/flint/flint_synonym.cc, backends/inmemory/inmemory_alltermslist.cc, backends/quartz/quartz_alltermslist.cc, backends/quartz/quartz_metafile.cc,bin/xapian-inspect.cc, common/stringutils.h,tests/harness/testsuite.cc: Rename begins_with() to startswith() and ends_with() to endswith() for consistency with Python string operations. Thu Jun 28 18:49:50 BST 2007 Olly Betts * queryparser/queryparser.lemony: Don't put a Z prefix on terms if the stemmer is "none", which matches what TermGenerator generates. Thu Jun 28 02:22:04 BST 2007 Olly Betts * api/omqueryinternal.cc: Don't SEGV when Query::MatchNothing is used with OP_AND_NOT (fixes bug#176). * tests/api_nodb.cc: Add regression test emptyquery2. * AUTHORS: Thank bug reporter (Krzysztof Klemm). Wed Jun 27 13:05:55 BST 2007 Richard Boulton * NEWS: Updated. Wed Jun 27 13:04:19 BST 2007 Richard Boulton * examples/copydatabase.cc: Add support for copying the spelling data. Wed Jun 27 12:46:54 BST 2007 Richard Boulton * NEWS: Updated. Wed Jun 27 12:13:50 BST 2007 Olly Betts * bin/xapian-check.cc: Check spelling and synonym Btrees. Wed Jun 27 12:10:47 BST 2007 Olly Betts * bin/xapian-compact.cc: Add merging for spelling and synonym tables. Wed Jun 27 12:09:34 BST 2007 Olly Betts * backends/flint/flint_spelling.cc: Fix PrefixCompressedStringItor to not ignore the last entry. * tests/api_wrdb.cc: Regression test (spell4). Wed Jun 27 11:51:10 BST 2007 Olly Betts * tests/api_wrdb.cc: Remove bogus comment. Wed Jun 27 04:12:56 BST 2007 Olly Betts * backends/flint/flint_cursor.h: Make FlintCursor::after_end() const. Tue Jun 26 22:31:24 BST 2007 Richard Boulton * tests/api_wrdb.cc: Add test_spell3(), which tests spelling correction with multi databases, and the results of the iterator from Database::spellings_begin() with single and multi databases. Tue Jun 26 20:51:13 BST 2007 Richard Boulton * api/omtermlistiterator.cc: Handle pruning, so that multi-database spelling word iterators work. Pruning should arguably always have been handled, but it's never been possible for the TermList passed to TermIterator to prune before, so it's not been an issue. Tue Jun 26 20:50:06 BST 2007 Richard Boulton * backends/flint/flint_spellingwordslist.h: Don't bother testing whether we found an entry which was exactly "W" - if we do, the database is corrupt, but the best recovery strategy would just be to continue at the next matching entry. Tue Jun 26 20:26:03 BST 2007 Richard Boulton * api/omdatabase.cc: Remove mistaken skip_to("W") - should be done by open_spelling_wordlist() rather than here. * backends/flint/flint_spellingwordslist.h: Only call cursor->prev() if find_entry("W") finds an entry. Tue Jun 26 17:46:27 BST 2007 Richard Boulton * backends/flint/flint_alltermslist.cc, backends/flint/flint_spellingwordslist.cc, backends/flint/flint_synonym.cc: Remove calls to abort() which are followed immediately by an Assert() which checks the same condition. Tue Jun 26 17:26:02 BST 2007 Richard Boulton * include/xapian/database.h: Add spellings_begin() and spellings_end(), to iterate through the spelling correction target words. * api/omdatabase.cc: Implement spellings_begin(), using the newly added FreqAdderOrTermList to join the spellings lists. * common/database.h,backends/database.cc: Add open_spelling_wordlist() to get iterator of spelling targets, if any, with default implementation which returns NULL. * backends/flint/flint_database.h,backends/flint/flint_database.cc: Implement open_spelling_wordlist() for flint. * backends/flint/flint_spelling.h: Make merge_changes() public, so it can be called when a writable database needs to open a spelling wordlist. * backends/flint/flint_spellingwordslist.h, backends/flint/flint_spellingwordslist.cc: New files, implementing an iterator over the spelling targets. Tue Jun 26 17:25:09 BST 2007 Richard Boulton * common/ortermlist.h,expand/ortermlist.cc: Add a "FreqAdderOrTermList", which adds the term frequencies of the sublists, rather than requiring that they're equal for terms which are in both. Tue Jun 26 17:22:03 BST 2007 Olly Betts * docs/admin_notes.rst: Update to mention spelling and synonym tables, and to document optional tables more clearly. Tue Jun 26 16:23:25 BST 2007 Olly Betts * tests/termgentest.cc: Add feature test for TermGenerator spelling integration. Tue Jun 26 16:14:56 BST 2007 Olly Betts * tests/termgentest.cc: Fix comment paste-o. Tue Jun 26 16:11:11 BST 2007 Olly Betts * include/xapian/termgenerator.h,queryparser/termgenerator.cc, queryparser/termgenerator_internal.cc, queryparser/termgenerator_internal.h: Add support for generating spelling data to TermGenerator class. Tue Jun 26 15:22:12 BST 2007 Olly Betts * bin/xapian-compact.cc: Don't skip "empty" source databases, as they may have spelling and/or synonym data. Warn if more than one source database has spelling data and ignore all but the first. Similarly warn and ignore for synonym data. Tue Jun 26 13:52:15 BST 2007 Olly Betts * examples/copydatabase.cc: Fix code which extracts the leafname to handle a trailing directory separator. * examples/copydatabase.cc: Copy synonym data across. Print warning that spelling data isn't copied (as there's no API to access it currently). Tue Jun 26 13:21:13 BST 2007 Olly Betts * bin/xapian-compact.cc: Fix to compact spelling and synonym tables. Tue Jun 26 02:20:50 BST 2007 Olly Betts * tests/api_wrdb.cc: Fix randomly indented line. Tue Jun 26 02:20:01 BST 2007 Olly Betts * include/xapian/document.h: Change parameter name for Document::get_value() to match other parameter names in the class. Tue Jun 26 02:19:16 BST 2007 Olly Betts * include/xapian/queryparser.h: FLAG_AUTO_MULTIWORD_SYNONYMS now implies FLAG_AUTO_SYNONYMS. Tue Jun 26 02:18:02 BST 2007 Olly Betts * tests/queryparsertest.cc: Add test for a single word synonym in multi-synonym mode. Tue Jun 26 02:08:47 BST 2007 Olly Betts * common/ortermlist.h,queryparser/termgenerator_internal.h: Fix warnings from Intel's C++ compiler. Tue Jun 26 01:45:09 BST 2007 Olly Betts * HACKING: Snapshots and releases are now bootstrapped with libtool 1.5.24, which includes all the patches we were applying on top of 1.5.22. * HACKING: Expand note about preferring pre-increment to post-increment to mention preferring it to adding one, and to cover decrementing too. Tue Jun 26 01:34:41 BST 2007 Olly Betts * backends/flint/flint_spelling.cc: Fix bug appending spelling data to an existing trigram. Tue Jun 26 01:34:07 BST 2007 Olly Betts * backends/flint/flint_database.cc: Fix handling of exceptions during commit. Mon Jun 25 17:01:40 BST 2007 Olly Betts * docs/spelling.rst: Update for Unicode spelling correction. Mon Jun 25 15:41:43 BST 2007 Olly Betts * api/editdistance.cc,api/editdistance.h,api/omdatabase.cc: Convert to UTF-32 before calculating edit distances. * tests/api_wrdb.cc: Add test coverage for Unicode spelling correction. Mon Jun 25 14:03:34 BST 2007 Olly Betts * tests/quartztest.cc: Remove tests for removed method QuartzPostList::get_collection_freq(). Mon Jun 25 12:32:07 BST 2007 Olly Betts * backends/flint/flint_spelling.cc: Replace abort() with exception throwing. Mon Jun 25 03:01:20 BST 2007 Olly Betts * tests/harness/backendmanager.cc: Track the fd used to communicate with a xapian-tcpsrv child process so we can close it when we reap the child pid. Mon Jun 25 02:44:04 BST 2007 Olly Betts * docs/valueranges.rst: Fix bad RST markup. Sun Jun 24 23:24:26 BST 2007 Olly Betts * tests/harness/backendmanager.cc: Fix memory leak in test harness launching of xapian-tcpsrv so that "apitest -b remotetcp" now passes under valgrind. Sun Jun 24 19:39:59 BST 2007 Richard Boulton * docs/valueranges.rst: Add documentation for the NumberValueRangeProcessor, now that it is fixed. Sun Jun 24 14:29:06 BST 2007 Olly Betts * backends/remote/net_postlist.cc,backends/remote/net_postlist.h: Move NetworkPostList virtual methods out of the header. Move the constructor into the header, since that can be inlined. Sun Jun 24 14:15:43 BST 2007 Olly Betts * backends/flint/,backends/multi/multi_postlist.cc, backends/multi/multi_postlist.h,backends/quartz/, backends/remote/net_postlist.cc,backends/remote/net_postlist.h, backends/remote/remote-database.cc,common/emptypostlist.h, common/postlist.h,common/remote-database.h: For Flint and Quartz, refactor so we no longer create a postlist just to find the termfreq or collection frequency. These were the only places which used PostList::get_collection_freq(), so eliminate it (bug#124). Sun Jun 24 09:40:51 BST 2007 Richard Boulton * msvc/genversion.pl: Add a script to generate the version.h file for MSVC builds by parsing configure.ac to extract the version number, and then performing the appropriate substitutions on msvc/version.h.in. Shouldn't be used for tarball builds (because version.h already exists) or for builds which use configure. Sun Jun 24 02:25:38 BST 2007 Olly Betts * matcher/multimatch.cc: The check_at_least parameter to Enquire::get_mset() is now handled in a more efficient way - no extra memory is now required, and CPU overhead should be reduced (bug#174). Sun Jun 24 02:00:07 BST 2007 Olly Betts * docs/synonyms.rst,docs/Makefile.am: New "topic" document describing synonym support. * docs/Makefile.am: HTML documentation generated from RST files wasn't being installed. Sun Jun 24 00:45:46 BST 2007 Olly Betts * backends/remote/remote-database.cc,common/remote-database.h, common/remoteprotocol.h,common/submatch.h,docs/remote_protocol.html, matcher/,net/remoteserver.cc: Pass check_at_least to the remote server to reduce the amount of work required to produce the match on the remote server, and also reduce the serialised size of the returned MSet. Sun Jun 24 00:17:18 BST 2007 Olly Betts * tests/api_anydb.cc: More check_at_least tests. Sat Jun 23 20:02:48 BST 2007 Olly Betts * api/omdatabase.cc,tests/api_wrdb.cc: Add multi-database support for synonyms. Sat Jun 23 18:50:59 BST 2007 Richard Boulton * include/xapian/database.h: Tiny fix to a documentation comment. Sat Jun 23 17:35:37 BST 2007 Olly Betts * common/ortermlist.h,expand/ortermlist.cc: Comment out unused method OrTermList::get_collection_freq(). The same dummy implementation is provided by the parent class (TermList). Sat Jun 23 17:07:40 BST 2007 Olly Betts * api/omdatabase.cc,backends/database.cc,backends/flint/, common/database.h,include/xapian/database.h,tests/api_wrdb.cc: Implement Database::synonym_keys_begin() to allow iteration over all the terms for which synonyms have been added. Sat Jun 23 04:19:54 BST 2007 Olly Betts * matcher/multimatch.cc: Fix handling of check_at_least parameter - we weren't discarding matches above the requested MSet size correctly. * tests/api_anydb.cc: Add regression test checkatleast2. Sat Jun 23 03:00:45 BST 2007 Olly Betts * docs/queryparser.html: Document synonyms. Sat Jun 23 02:50:55 BST 2007 Olly Betts * queryparser/queryparser.lemony: Unapply commented out fragments towards supporting '~' on phrases, which I didn't mean to apply. Sat Jun 23 02:25:32 BST 2007 Olly Betts * include/xapian/queryparser.h,queryparser/queryparser.lemony, tests/queryparsertest.cc: Add support for synonym operator ('~') to the QueryParser. Sat Jun 23 01:52:51 BST 2007 Olly Betts * queryparser/queryparser.lemony: Fix two bugs in the query parser - now '+' and '-' work on bracketed subexpressions as documented. * tests/queryparsertest.cc: Add regression tests. Sat Jun 23 01:47:30 BST 2007 Olly Betts * queryparser/queryparser.cc: Use "using namespace std;". Fri Jun 22 18:48:21 BST 2007 Olly Betts * backends/flint/flint_synonym.cc: Fix iteration of unflushed synonyms. Fri Jun 22 18:21:39 BST 2007 Richard Boulton * docs/deprecation.rst: Fix typo. Fri Jun 22 18:02:21 BST 2007 Olly Betts * api/omdatabase.cc,backends/database.cc,backends/flint/, common/database.h,include/xapian/database.h, include/xapian/queryparser.h,queryparser/queryparser.lemony: Add support for storing synonyms for terms in a new optional Btree table in flint databases, and using them in the QueryParser. * tests/queryparsertest.cc: Feature tests for synonyms. Fri Jun 22 17:58:37 BST 2007 Olly Betts * queryparser/queryparser.lemony: Removed superfluous "private:" in class State. Make State::get_database() const. Fri Jun 22 17:58:15 BST 2007 Olly Betts * tests/queryparsertest.cc: Make sure .flint subdirectory exists. Fri Jun 22 17:52:53 BST 2007 Olly Betts * bin/xapian-inspect.cc: Don't die with an error if the user tries to move forward twice from the end. Also, make "prev" from the end work. Fri Jun 22 17:47:36 BST 2007 Olly Betts * queryparser/queryparser.lt: If an input token has a yyminor, report its name in the debug output. Fri Jun 22 14:47:17 BST 2007 Olly Betts * NEWS: Updated with changes since 1.0.1. Thu Jun 21 21:12:49 BST 2007 Olly Betts * backends/remote/remote-database.cc,common/remoteprotocol.h, common/remoteserver.h,net/remoteserver.cc: Protocol version increased to 30.2. This difference from 30.1 is that MSG_DELETEDOCUMENT now send REPLY_DONE to allow DocNotFoundError to be propagated. MSG_DELETEDOCUMENT now has a new number and the old number for MSG_DELETEDOCUMENT is now MSG_DELETEDOCUMENT_PRE_30_2 which is handled by the server so that older clients will continue to work. * docs/remote_protocol.html: Update. * tests/api_wrdb.cc: Add regression test for DocNotFoundError bug. Thu Jun 21 17:22:53 BST 2007 Olly Betts * api/omdatabase.cc,tests/queryparsertest.cc,docs/spelling.rst: Add support for spelling correction when using multiple databases. Thu Jun 21 16:15:22 BST 2007 Olly Betts * tests/queryparsertest.cc: Add feature tests for correcting spelling errors in the QueryParser. Thu Jun 21 15:01:00 BST 2007 Olly Betts * tests/api_wrdb.cc: Check the edit distance 3 words are found if asked for. Thu Jun 21 14:59:15 BST 2007 Olly Betts * api/omdatabase.cc,common/omdebug.h: Add some debug tracing for the spelling correction. Thu Jun 21 13:45:12 BST 2007 Olly Betts * backends/flint/flint_spelling.cc,docs/spelling.rst: Generate "bookends" for four character words too, so that we suggest "fuor" -> "four". * tests/api_wrdb.cc: More testcases. Thu Jun 21 13:08:07 BST 2007 Olly Betts * docs/spelling.rst: Assorted minor improvements. Add note about not detecting single character substitutions in two character words. Thu Jun 21 13:02:57 BST 2007 Olly Betts * tests/api_wrdb.cc: Check cases for single edits to a two character word work as expected. Thu Jun 21 04:13:46 BST 2007 Olly Betts * tests/api_wrdb.cc: Add test cases to check we find all single edit errors for a three letter word. Thu Jun 21 04:08:11 BST 2007 Olly Betts * backends/flint/flint_spelling.h: Now that FlintSpellingTable::merge_changes() is only called from within the class, make it a private method. discard_changes() is only used once, and from within the class, so just inline it as that's clearer. Make the comment about the overridden methods a doxygen grouping comment, Thu Jun 21 04:02:51 BST 2007 Olly Betts * docs/spelling.rst: Update to mention "bookend" bigrams. Thu Jun 21 03:56:52 BST 2007 Olly Betts * backends/flint/flint_spelling.cc: Generate "bookend" spelling entries for two and three letter terms, consisting of the prefix 'B' followed by the first and last letters. This allows us to handle substitution or deletion of the middle character of a three letter word, or insertion in the middle of a two letter word. Thu Jun 21 03:18:28 BST 2007 Olly Betts * tests/queryparsertest.cc: Some doubles in the list which value_range_serialise1 tests have the same values on some platforms, so test that adjacent numbers and their string counterparts compare the same way rather than that both are "<". Thu Jun 21 02:46:01 BST 2007 Olly Betts * tests/api_wrdb.cc: Add "spell1" - a simple feature test for spelling based on Richard's python test. Use TESTCASE() and END_OF_TESTCASES macros. Wed Jun 20 21:57:01 BST 2007 Olly Betts * backends/flint/flint_database.cc: WritableDatabase::delete_document() no longer cancels pending changes if the document doesn't exist. * backends/quartz/quartz_database.cc: Same fix. Wed Jun 20 20:53:52 BST 2007 Olly Betts * backends/flint/flint_database.cc: We may now need to flush even if there have been no documents added/replaced/deleted, as there may be changes to the spelling table. Wed Jun 20 20:46:30 BST 2007 Olly Betts * backends/flint/flint_table.cc: Fix a function name in the debug loggging. Wed Jun 20 20:39:43 BST 2007 Olly Betts * backends/flint/flint_spelling.cc: Fix FlintSpellingTermList not to report at_end() one entry too early. Wed Jun 20 19:21:45 BST 2007 Olly Betts * tests/harness/backendmanager.cc: Don't touch /log for flint as flint doesn't create a log like quartz does. Wed Jun 20 17:10:29 BST 2007 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_spelling.h: Push special handling for spelling_table into the FlintSpellingTable class. This fixes "is_modified()" to take into account unflushed changes held in memory. Wed Jun 20 13:59:01 BST 2007 Olly Betts * api/omdatabase.cc: Don't use RETURN() in methods which return void. Wed Jun 20 11:56:30 BST 2007 Richard Boulton * api/editdistance.cc: Change an Assert in is_transposed() (which fails in some cases) to a test, since it seems legitimate that a value of pos2 <= 0 might be supplied to the function (though the answer will always be "false" in that case). Wed Jun 20 02:38:51 BST 2007 Olly Betts * api/omdatabase.cc: Fix two incorrect return types in debug logging. Wed Jun 20 02:14:40 BST 2007 Olly Betts * api/omdatabase.cc: Add missing implementations of WritableDatabase::add_spelling() and WritableDatabase::remove_spelling(). Wed Jun 20 00:58:46 BST 2007 Olly Betts * backends/flint/flint_spelling.h: Make the maps private. Wed Jun 20 00:05:15 BST 2007 Olly Betts * HACKING: Snapshots now bootstrapped with automake 1.10. Wed Jun 20 00:03:42 BST 2007 Olly Betts * backends/flint/flint_spelling.cc,common/Makefile.mk, expand/Makefile.mk,expand/ortermlist.h: Move ortermlist.h from "expand/" to "common/" so we can included it from flint_spelling.cc without a relative path. Tue Jun 19 22:41:08 BST 2007 Olly Betts * api/,backends/database.cc,backends/flint/,common/database.h, docs/Makefile.am,docs/spelling.rst,include/xapian/database.h, include/xapian/queryparser.h,queryparser/queryparser.cc, queryparser/queryparser.lemony,queryparser/queryparser_internal.h: Add support for spelling correction. Tue Jun 19 19:18:40 BST 2007 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_table.cc, backends/flint/flint_table.h: Add new method FlintTable::key_exists() so we don't need to create a cursor to check if a key exists in FlintDatabase::term_exists() (the other alternative previously was to read the key and tag and ignore the tag, but that could involve reading more blocks if the tag is long, and it could involve uncompressing the tag too). Tue Jun 19 17:49:09 BST 2007 Richard Boulton * tests/queryparsertest.cc: Cast the input to pow() to a double, to fix a problem on windows (which has several versions of pow(), and the version taking a float was being used by default, resulting in some of the tests overflowing the range of float). Tue Jun 19 17:48:42 BST 2007 Richard Boulton * api/valuerangeproc.cc: Fix assertions, so that the code works with assertions turned on. Tue Jun 19 12:35:46 BST 2007 Olly Betts * matcher/branchpostlist.cc: Add missing #include . * matcher/branchpostlist.cc,matcher/branchpostlist.h: Move other virtual method definitions out of the header. Mon Jun 18 21:41:15 BST 2007 Richard Boulton * matcher/branchpostlist.h: Add missed copyright statement. Mon Jun 18 21:36:31 BST 2007 Richard Boulton * matcher/branchpostlist.cc,matcher/branchpostlist.h: Add get_wdf() method to BranchPostList (which just sums the wdf, which is useful for a synonym postlist, which is the only situation in which this will be called). Add the method definition in a separate file, as per the comment I just added to HACKING. * matcher/Makefile.mk: Add branchpostlist.cc Mon Jun 18 21:33:56 BST 2007 Richard Boulton * HACKING: Add note about virtual methods (saying that the shouldn't be defined in header files). Mon Jun 18 20:15:18 BST 2007 Richard Boulton * matcher/phrasepostlist.cc,matcher/phrasepostlist.h, matcher/exactphrasepostlist.cc,matcher/exactphrasepostlist.cc: Add get_wdf() methods to NearPostList, PhrasePostList and ExactPhrasePostList - these use a very rough approximation (but there's a big long comment justifying it). Mon Jun 18 18:38:43 BST 2007 Richard Boulton * matcher/mergepostlist.cc,matcher/mergepostlist.h: Add copyright statements for previous commit (and update license while I'm at it). Mon Jun 18 18:24:43 BST 2007 Richard Boulton * matcher/mergepostlist.cc,matcher/mergepostlist.h: Add get_wdf() method to MergePostList (just passes through the value from the current postlist). Not currently needed, but the expected behaviour is obvious, and this will be needed if there's a synonym postlist higher in the query tree (when synonym postlists are implemented). Also, correct a documentation comment typo. Mon Jun 18 13:09:36 BST 2007 Richard Boulton * api/valuerangeproc.cc: Cast the first parameter to ldexp() to double to fix compilation on some platforms, and add a few more explanatory code comments to NumberValueRangeProcessor::string_to_float() Mon Jun 18 11:33:49 BST 2007 Richard Boulton * api/valuerangeproc.cc: Add static methods to NumberValueRangeProcessor to serialise and unserialise doubles. Change the code which tests a term for being a number to use strtod, and accept any string which strtod thinks is a number. If NumberValueRangeProcessor accepts a range, it now converts the begin and end values to strings using the serialise method. Also, expand some of the code comments. * include/xapian/queryparser.h: Add documentation comments to NumberValueRangeProcessor. * tests/queryparsertest.cc: Update value_range2_queries to expect new serialised forms in its output. Update test_qp_value_range3 to test a wider range of values (including negative, fractional, and more-than-single-digit). Mon Jun 18 03:36:38 BST 2007 Olly Betts * queryparser/queryparser.lemony: Fix comment typo, and add brackets to make intended precedence clearer. Mon Jun 18 03:36:04 BST 2007 Olly Betts * include/xapian/queryparser.h: Tweak wording of a couple of documentation comments. Mon Jun 18 02:00:31 BST 2007 Olly Betts * docs/queryparser.html: Mention "AND NOT" as an alternative way to write "NOT". Mon Jun 18 01:43:00 BST 2007 Olly Betts * queryparser/queryparser.lemony: Adjust precedence of boolean operators to match those in maths and programming languages. "NOT" now binds as tightly as "AND" (previously "AND NOT" would bind like "AND", but just "NOT" would bind like "OR"!) Also "XOR" now binds more tightly than "OR", but less tightly than "AND" (previously it bound just like "OR"). * tests/queryparsertest.cc: Add testcases for the new behaviour. Mon Jun 18 01:16:18 BST 2007 Olly Betts * tests/queryparsertest.cc: Better test coverage of handling of random double quotes in queries. Sun Jun 17 16:17:34 BST 2007 Olly Betts * include/xapian/unicode.h: Don't call operator++(0) from operator() as it does more work than we need. Sun Jun 17 14:14:16 BST 2007 Olly Betts * bin/xapian-inspect.cc: Fix so that Ctrl+D doesn't cause an infinite loop! Sat Jun 16 22:19:11 BST 2007 Olly Betts * bin/Makefile.mk,bin/xapian-inspect.cc,xapian-core.spec.in: New utility 'xapian-inspect' allowing interactive inspection of key/tag pairs in a flint Btree. Useful for developement and debugging, and an approximate replacement for quartzdump. Sat Jun 16 17:03:57 BST 2007 Olly Betts * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Update for doxygen 1.5.2 (using "doxygen -u"). Sat Jun 16 10:17:32 BST 2007 Richard Boulton * tests/Makefile.am: The "check-none" target should run all the tests which don't need a database, not just those in apitest: add internaltest, stemtest, queryparsertest and termgentest to the list of tests it runs. Sat Jun 16 09:36:10 BST 2007 Richard Boulton * Makefile.am,bin/Makefile.mk,examples/Makefile.mk: Work around an apparent bug in automake which causes the entries in .libs subdirectories generated for targets of bin_PROGRAMS not to be removed on make clean. (This was causing make distcheck to fail.) Sat Jun 16 04:42:16 BST 2007 Olly Betts * HACKING,Makefile.am,tests/Makefile.am,tests/apitest.cc, tests/harness/backendmanager.cc,tests/harness/backendmanager.h: In the testsuite, rename the "void" pseudo-backend to "none" to more clearly reflect what it is. And rename the "remote" backend to "remoteprog", to better differentiate it from "remotetcp". * HACKING: Fix error - "apitest -b=flint" doesn't work - it must be "apitest -bflint". Sat Jun 16 04:40:28 BST 2007 Olly Betts * HACKING: Now using doxygen 1.5.2. Sat Jun 16 02:08:20 BST 2007 Olly Betts * backends/flint/flint_table.cc: Fix to build with older zlib. Not hugely important as zlib security fixes mean any well maintained box will be running a recent zlib, but the fix is trivial. Fri Jun 15 19:39:03 BST 2007 Richard Boulton * HACKING: Document the new check-void, check-inmemory, check-remoteprog and check-remotetcp targets. Fri Jun 15 19:34:13 BST 2007 Richard Boulton * Makefile.am,tests/Makefile.am: Add check-void, check-inmemory, check-remoteprog and check-remotetcp targets, to allow the tests for any of the backends to be performed in isolation. Fri Jun 15 19:29:19 BST 2007 Olly Betts * Makefile.am,configure.ac,xapian-core.spec.in,xapian.spec.in: Rename xapian.spec to xapian-core.spec to match tarball name. Append the user name to BuildRoot. Fri Jun 15 14:51:13 BST 2007 Richard Boulton * net/progclient.cc: Open the file handle pointing to /dev/null as O_WRONLY instead of O_RDONLY: doesn't affect whether the test passes (since nothing gets written to stderr in theory anyway), but makes more sense. Fri Jun 15 13:21:56 BST 2007 Richard Boulton * net/progclient.cc: Better fix - rather than leaving stderr open, we close it, and then reopen it pointing to /dev/null. Fri Jun 15 12:55:07 BST 2007 Richard Boulton * net/progclient.cc: Don't close stderr in the child before we call execve() - with this change, apitest passes under valgrind with the remote database backend: before it, the child seemed to be exiting without writing anything to the socket, causing the test to fail with a NetworkError (due to an unexpected EOF). Thu Jun 14 23:47:52 BST 2007 Olly Betts * backends/flint/flint_database.cc: Replace duplicated code with calls to existing method set_revision_number(new_revision). Thu Jun 14 18:51:03 BST 2007 Olly Betts * backends/flint/flint_database.cc: Stop including which we don't use here. Thu Jun 14 18:22:24 BST 2007 Olly Betts * tests/Makefile.am: Fix typo from copy&paste. Thu Jun 14 16:46:45 BST 2007 Olly Betts * docs/admin_notes.rst: Update for the "lazy table" changes. Correct the description of xapian-compact --multipass (only the postlist tables are merged in multiple passes), correct description of how to use xapian-check on a single table (no trailing '.' should be specified). Change the "how to upgrade 0.9.x flint databases" to talk about 1.0.y rather than 1.0.0. Thu Jun 14 16:25:55 BST 2007 Olly Betts * backends/flint/: The value and position tables are now only created if there is anything to add to them. So if you never use document values, there's no value_DB, value.baseA, or value.baseB. This means the table doesn't need to be opened for searching (saving a file handle) and when flushing changes, we don't need to update baseA/baseB just to keep the revisions in step. The flint database version has been increased, but the new code will happily open and read/update flint databases from Xapian 1.0.0 and 1.0.1. * bin/xapian-check.cc,bin/xapian-compact.cc: Update to handle databases without value and/or position tables. * tests/testdata/flint-1.0.1/: Empty example of a flint 1.0.1 format database. * tests/Makefile.am,tests/api_db.cc: Add check that a flint 1.0.1 format database can be opened. Wed Jun 13 22:40:15 BST 2007 Richard Boulton * include/xapian/queryparser.h: Document set_stemmer() and set_stemming_strategy() better - in particular, make it clear that the default value for the stemming strategy is STEM_NONE. Wed Jun 13 17:16:52 BST 2007 Olly Betts * HACKING: Wrap overlong line. Wed Jun 13 16:47:07 BST 2007 Olly Betts * msvc/version.h.in: Remote backend is now supported in the MSVC build. Wed Jun 13 04:18:51 BST 2007 Olly Betts * backends/flint/flint_table.cc,backends/flint/flint_table.h: Eliminate dont_close_handle as it's always false. Wed Jun 13 02:53:28 BST 2007 Olly Betts * backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h: Remove unused FlintTable_base constructor. Tue Jun 12 18:27:54 BST 2007 Olly Betts * backends/flint/flint_table.cc: Add fix to allow compilation on OpenBSD, which uses off_t instead of uLong for total_out in zlib.h. Remove Assert() which is followed by a better check of the same condition. * AUTHORS: Add Julien Touche for help with this fix. Tue Jun 12 13:34:59 BST 2007 Richard Boulton * tests/harness/unixcmds.cc: On unix builds, set access permissions on copied directories to allow writes. This fixes make distcheck, which was failing on tests because the copied directory was set to read-only, causing the later "rm -rf" command to fail. Mon Jun 11 20:10:26 BST 2007 Olly Betts * docs/overview.html: Fix typo. Mon Jun 11 20:08:42 BST 2007 Olly Betts * docs/Makefile.am: Ship and install internals.html. Mon Jun 11 17:46:04 BST 2007 Olly Betts * docs/Makefile.am,docs/doxygen_full_conf.in: Disable generation of PDF version of doxygen-collated documentation of internals. It keeps overflowing TeX limits and it seems likely that most people would prefer the HTML version of this anyway. Mon Jun 11 17:45:12 BST 2007 Olly Betts * tests/internaltest.cc: Remove duplicated code. Mon Jun 11 03:55:53 BST 2007 Olly Betts * NEWS: Probably the final update for 1.0.1. Mon Jun 11 03:47:37 BST 2007 Olly Betts * examples/simpleindex.cc: Tweak the logic to be clearer. Sun Jun 10 21:59:21 BST 2007 Olly Betts * HACKING,configure.ac: Drop automake requirement to 1.8.3 to allow RPM spec file to work on SLES 9. Sun Jun 10 21:48:51 BST 2007 Olly Betts * configure.ac: Bump version to 1.0.1 and LIBRARY_VERSION_INFO to 15:0:0. Sun Jun 10 21:46:57 BST 2007 Olly Betts * xapian.spec.in: Add "# norootforbuild" comment which SuSE's build scripts look for. Rename "Source0:" to "Source:" as there's only one tarball now. Add gcc-c++ and zlib-devel to "Build-Requires:". Sun Jun 10 21:43:45 BST 2007 Olly Betts * PLATFORMS: More updates. Sun Jun 10 18:01:19 BST 2007 Olly Betts * api/error.cc,generate-exceptions.in: Make Error::error_string member std::string rather than char * to avoid problems with double free() with copied Error objects. Also, Error::get_description() now converts my_errno to error_string if it hasn't been already. * tests/internaltest.cc: Add regression tests for both bugs. Sun Jun 10 13:33:21 BST 2007 Olly Betts * tests/api_db.cc: New testcase in allterms6. Sun Jun 10 13:20:37 BST 2007 Olly Betts * xapian-config.in: Add special case check for host_os matching linux* or k*bsd-gnu since vanilla libtool doesn't identify them as needing link_all_deplibs_CXX=no. Sun Jun 10 03:32:54 BST 2007 Olly Betts * PLATFORMS: Updated from tinderbox. Sun Jun 10 02:14:58 BST 2007 Olly Betts * NEWS: Updated. Sat Jun 09 17:28:32 BST 2007 Olly Betts * queryparser/queryparser.lemony: Add the unstem entry for boolean prefixed terms in Term::make_term() as we do for other terms. Sat Jun 09 17:27:55 BST 2007 Olly Betts * tests/queryparsertest.cc: Replace reference to Xapian "1.0" with "1.0.0". Sat Jun 09 17:12:44 BST 2007 Olly Betts * queryparser/queryparser.lemony,queryparser/queryparser_internal.h: Factor out the code which actually parses a term into a separate method. Fri Jun 08 23:31:23 BST 2007 Olly Betts * tests/Makefile.am: Distribute tests/testdata/flint-0.9.9/. Fri Jun 08 19:20:36 BST 2007 Olly Betts * NEWS: Updated. Fri Jun 08 18:55:43 BST 2007 Olly Betts * examples/simplesearch.cc: Report "Matches 1-:". Fri Jun 08 18:46:02 BST 2007 Richard Boulton * api/omenquire.cc: Fix issue brought to my attention by Enrico Zini: if an uninitialised database is supplied to Enquire, performing a search will cause a segfualt. It isn't completely clear whether using an uninitialised database should cause an error, or whether the search should return an empty result list, but for ease of implementation, and to avoid application errors going unnoticed, I've made Enquire's constructor report an InvalidArgumentError if the supplied database is uninitialised. * include/xapian/enquire.h: Document new exception case, and workaround if you want a search in this situation to return an empty result set, instead of getting an error. * tests/api_nodb.cc: Regression test for this fix. * AUTHORS: Mention Enrico Zini. Fri Jun 08 18:33:19 BST 2007 Olly Betts * NEWS: Updated. Fri Jun 08 17:09:22 BST 2007 Olly Betts * common/Makefile.mk: Distribute common/stringutils.h. Thu Jun 07 20:44:36 BST 2007 Olly Betts * tests/harness/unixcmds.cc: It appears we need to create the target directory for xcopy to behave as we want. Thu Jun 07 19:34:18 BST 2007 Olly Betts * tests/harness/unixcmds.cc: Fix typo to unbreak testsuite on Windows NT derivatives. Thu Jun 07 19:02:36 BST 2007 Olly Betts * backends/inmemory/inmemory_alltermslist.cc: Another tweak - don't call map::lower_bound() in the ctor at all. Also, prevent skip_to() from moving backwards, since that behaviour is user-visible. Thu Jun 07 18:36:49 BST 2007 Olly Betts * common/stringutils.h: New header, providing inline functions begins_with() and ends_with() to check if a std::string has a given prefix or suffix. * api/valuerangeproc.cc,backends/flint/flint_alltermslist.cc, backends/inmemory/inmemory_alltermslist.cc, backends/quartz/quartz_alltermslist.cc, backends/quartz/quartz_metafile.cc,tests/harness/testsuite.cc: Make use of begins_with() and ends_with(). * tests/harness/testsuite.cc: Tidy up guessing of srcdir. In particular, fix comments to reflect that libtool won't create a wrapper script for the test programs on most platforms (because we now use --no-install when linking). * backends/inmemory/inmemory_alltermslist.cc: In the ctor, use std::map::lower_bound() to find the first term matching the given prefix, rather than iterating through from the start of the map. Also, don't skip deleted terms here, but instead do that in next() - this avoids duplicating code, and the first operation might be skip_to() in which case we can avoid wasting effort. Thu Jun 07 17:16:12 BST 2007 Olly Betts * queryparser/queryparser.lemony: Eliminate the QpQuery class and simplify various bits of the code. Thu Jun 07 14:32:22 BST 2007 Olly Betts * tests/queryparsertest.cc: Enhance qp_value_customrange1. Thu Jun 07 14:31:40 BST 2007 Olly Betts * docs/Makefile.am,docs/index.html,docs/valueranges.rst: Add document describing how to use Xapian::ValueRangeProcessor. Thu Jun 07 14:16:01 BST 2007 Olly Betts * tests/queryparsertest.cc: Add test of custom ValueRangeProcessor subclass (qp_value_customrange1). Thu Jun 07 10:01:46 BST 2007 Olly Betts * common/serialise.h,tests/harness/testsuite.h: Use XAPIAN_NORETURN() to mark functions which never return. Thu Jun 07 01:28:00 BST 2007 Olly Betts * NEWS: Update. Thu Jun 07 01:02:22 BST 2007 Olly Betts * examples/simpleexpand.cc: Fix off-by-one error when creating the fake RSet (picked up to 4 documents, not up to 5). Wed Jun 06 17:17:05 BST 2007 Olly Betts * include/xapian/queryparser.h: Add documentation comments for ValueRangeProcessor and subclasses (mostly fixes bug#155, but I'd like to add an overview document too). Wed Jun 06 16:04:08 BST 2007 Olly Betts * tests/testdata/flint-0.9.9/: Minimal example of a Flint database from Xapian 0.9.9. * tests/api_db.cc: Use a real 0.9.9 flint database instead of faking it by fudging with the "iamflint" file in a current one. flintdatabaseformaterror1 now also checks for opening with the Database ctor as well as with Flint::open(). The writing test from flintdatabaseformaterror1 is now flintdatabaseformaterror2 which additionally tests opening with the WritableDatabase ctor as well as with Flint::open(). The old flintdatabaseformaterror2 is now flintdatabaseformaterror3. Wed Jun 06 15:44:08 BST 2007 Olly Betts * backends/flint/flint_database.cc: Don't check for pre-0.6 databases here (since they'll be quartz format anyway - the check is just an overenthusiastic cut-and-paste from quartz). Wed Jun 06 12:35:16 BST 2007 Richard Boulton * matcher/valuerangepostlist.cc: Avoid calling db->get_lastdocid() repeatedly in ValueRangePostList::next() - was taking 25% of the time for a particular test case. Wed Jun 06 12:17:51 BST 2007 Olly Betts * tests/harness/unixcmds.cc,tests/harness/unixcmds.h: Add "cp_R()" which does much the same as "cp -R" on Unix. Wed Jun 06 12:12:50 BST 2007 Olly Betts * include/xapian/Makefile: New stub makefile for include/xapian. * bin/Makefile.mk,examples/Makefile.mk,include/Makefile.mk: Distribute missing stub Makefile and dir_contents files. Tue Jun 05 16:44:51 BST 2007 Olly Betts * tests/harness/index_utils.cc: Back out linger line from r7758. Fix undefined behaviour in cases where a paragraph has <= 2 characters. Mon Jun 04 15:31:08 BST 2007 Richard Boulton * tests/harness/backendmanager.cc,tests/harness/index_utils.cc: Revert the recent changes to the indexing code, and also the change from revision r7758 which was intended to fix a problem with eof handling on windows (which is what broke the indexing of etext.txt). Then, change backendmanager.cc to test "!from.eof()" instead of "from" to check for eof - hopefully this will work on windows - if not, we can investigate further. Mon Jun 04 13:13:29 BST 2007 Richard Boulton * tests/harness/backendmanager.cc: Undo previous patch - only the patch to index_utils.cc was necessary; I mistakenly committed both files I'd been modifying. Mon Jun 04 09:06:24 BST 2007 Richard Boulton * tests/api_db.cc: Add a check to consistency1 that the full mset size is as big as it should be, to make sure that we notice in future if the indexing goes wrong again. Mon Jun 04 08:59:22 BST 2007 Richard Boulton * tests/harness/backendmanager.cc,tests/harness/index_utils.cc: Fix the indexing of the testdata, so that the "etext" example is properly indexed (previously, only the first line was being indexed, due to faulty end-of-file handling). This only affects the "consistency1" test, which now runs a lot slower (but still passes, fortunately). Fri Jun 01 23:47:42 BST 2007 Olly Betts * examples/simpleexpand.cc: Rewrite based on new simplesearch.cc. Fri Jun 01 00:50:00 BST 2007 Olly Betts * examples/simpleindex.cc: Replacement "simpleindex" example which uses the TermGenerator class, which makes for a much smaller and simpler example. It's also much more typical of what most users will want to do. Thu May 31 23:01:47 BST 2007 Olly Betts * examples/simplesearch.cc: Replacement "simplesearch" example which uses the QueryParser. That makes for a simpler example, and it's much more typical of what most users will want to do. Thu May 31 19:31:40 BST 2007 Olly Betts * NEWS: Update. Thu May 31 19:18:41 BST 2007 Olly Betts * HACKING,configure.ac: Relax automake requirement to 1.9.2 to allow RPM building on RHEL 4. * HACKING: automake 1.10 seems to work fine with Xapian. Thu May 31 03:04:42 BST 2007 Olly Betts * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc: Check if the docid counter wraps and if it does throw DatabaseError (fixes bug#152). * tests/api_wrdb.cc: Add regression test (nomoredocids1). Thu May 31 02:01:31 BST 2007 Olly Betts * backends/dbfactory_remote.cc,backends/remote/remote-database.cc, common/progclient.h,common/remote-database.h,common/tcpclient.h, net/progclient.cc: Stop a non-writable remote database from calling dtor_called() when it is destroyed, since that causes MSG_FLUSH to be sent to the server (fixes bug#149). Wed May 30 19:47:43 BST 2007 Richard Boulton * include/xapian/query.h: New accessor method Xapian::Query::Internal::get_parameter(). * queryparser/queryparser.lemony: Multiple boolean prefixed terms with the same term prefix are now combined with OR before such groups are combined with AND. Similarly for multiple value ranges on the same value (fixes bug#157). * include/xapian/queryparser.h: Document new handling of multiple boolean prefixed terms. * tests/queryparsertest.cc: Testcases for new handling of multiple boolean prefixed terms and value ranges. Wed May 30 14:45:19 BST 2007 Richard Boulton * docs/deprecation.rst: Update comment about QueryParserError to point out that you'll need to compile conditionally to work with 0.9.x Wed May 30 14:33:29 BST 2007 Olly Betts * NEWS: Update. Put all the subheadings in the standard order used for previous releases. Wed May 30 12:58:01 BST 2007 Richard Boulton * include/xapian/database.h,api/omdatabase.cc,backends/flint/, backends/inmemory/,backends/quartz/, backends/remote/remote-database.cc, common/database.h,common/remote-database.h,common/remoteprotocol.h, net/remoteserver.cc: Add a prefixed form of allterms_begin() and allterms_end(), which allows efficient iteration over only those terms which begin with the given prefix. Requires bumping the remote protocol minor version number, but doesn't change any database formats. * queryparser/queryparser.lemony: Update the wildcard and partial query routines to use the prefixed form of allterms_begin(). This fixes the performance problems noted in bug #153. * tests/api_db.cc: Add test_allterms6() to test the prefixed form of allterms iterators. Wed May 30 12:23:25 BST 2007 Richard Boulton * backends/remote/remote-database.cc,common/remoteprotocol.h, docs/remote_protocol.html,net/remoteserver.cc: Apply patch from Olly (from bug #153) which implements minor version numbers for the remove protocol. This will allow us to add new features to the protocol in future without forcing all clients to upgrade to exactly the same version as the servers. Bump the major version to 30, since this is an incompatible change itself, though. Wed May 30 12:12:14 BST 2007 Richard Boulton * include/xapian/query.h: Expand documentation of value range query constructor. Wed May 30 10:28:39 BST 2007 Olly Betts * docs/deprecation.rst: Improve entry for QueryParserError. Wed May 30 01:30:35 BST 2007 Olly Betts * backends/flint/,bin/xapian-compact.cc: Don't uncompress and recompress tags when compacting a database. This speeds up xapian-compact rather a lot (by more than 50% in my quick test). Tue May 29 20:58:13 BST 2007 Richard Boulton * queryparser/Makefile.mk: Fix multiple target rule for generating the queryparser source files in parallel builds, as described in HACKING, and as done for the SWIG rules in xapian-bindings. * queryparser/: Add queryparser_internal.lock and queryparser_internal.stamp to SVN ignores. Tue May 29 18:30:25 BST 2007 Richard Boulton * tests/queryparsertest.cc: Use TEST_STRINGS_EQUAL when comparing queries against their expected output, since this makes it much easier to see the differences. Tue May 29 18:13:26 BST 2007 Richard Boulton * NEWS: Bring up-to-date. Mon May 28 09:27:43 BST 2007 Olly Betts * examples/copydatabase.cc: Fix to compile with GCC 2.95. Mon May 28 01:28:23 BST 2007 Olly Betts * examples/copydatabase.cc: Rewrite to take advantage of being able to iterate over all the documents in a database. Sun May 27 12:20:03 BST 2007 Olly Betts * include/xapian/termgenerator.h: Improve documentation comments for TermGenerator class. Sun May 27 12:15:02 BST 2007 Olly Betts * backends/quartz/quartz_database.cc,bin/,examples/,net/tcpserver.cc, tests/api_db.cc,tests/harness/testsuite.cc,tests/harness/testutils.h, tests/queryparsertest.cc,tests/termgentest.cc: Make use of Xapian::Error::get_description(), which improves error reporting in a number of places. * tests/harness/testsuite.cc: If we get an exception with a long message in verbose mode, just report the whole message rather than reporting the truncated message followed by the whole message. * tests/queryparsertest.cc: Handle Xapian::QueryParserError specially (as we previously handled all Xapian::Error exceptions). Other Xapian::Error exceptions now report the description not just the message. Sun May 27 11:33:11 BST 2007 Olly Betts * api/error.cc,generate-exceptions.in: Add new API method Xapian::Error::get_description() to allow removal of essentially duplicated code in many places. Also useful for users for the same reason. Sun May 27 09:56:21 BST 2007 Olly Betts * generate-exceptions.in: Add vim modeline to force perl syntax highlighting. Sat May 26 22:53:52 BST 2007 Richard Boulton * NEWS: Bring up-to-date. Sat May 26 22:49:20 BST 2007 Richard Boulton * docs/deprecation.rst: Fix typo in deprecation list for the bindings pointed out by Thomas Waldmann. Sat May 26 09:39:36 BST 2007 Olly Betts * HACKING: Add note about reasons for avoiding std::pair<> with an STL class as one or both members. Thu May 24 17:28:20 BST 2007 Richard Boulton * queryparser/Makefile.mk: $(top_builddir)/queryparser is only required in include path for maintainer mode, so make it so for neatness. Tue May 22 11:04:04 BST 2007 Richard Boulton * queryparser/Makefile.mk: Add $(top_builddir)/queryparser to include path for VPATH builds, to fix a problem with depcomp (triggered when compiling with gcc-2.95). * NEWS: Keep up to date. Mon May 21 13:38:58 BST 2007 Richard Boulton * tests/queryparsertest.cc: Reduce the range of the test, so that it passes again, to let the autobuilders work and unbreak HEAD. Mon May 21 10:26:01 BST 2007 Richard Boulton * tests/queryparsertest.cc: Remove FIXME from test_qp_flag_partial1: I've checked that the results look correct. New test test_qp_value_range3, to test the NumberValueRangeProcessors - currently fails because "10" is considered to be between "1" and "2". * include/xapian/query.h: Fix typo in documentation comment. Mon May 21 10:09:34 BST 2007 Olly Betts * tests/harness/testsuite.h: Put quotes around strings when reporting a failure in TEST_STRINGS_EQUAL(). Mon May 21 10:08:18 BST 2007 Olly Betts * tests/internaltest.cc: New tests serialiseerror1 which checks that the handling of errno/error_string. * common/serialise.h: Make unserialise_error externally visible for new test. Mon May 21 08:40:06 BST 2007 Olly Betts * HACKING: Update release checklist. Fri May 18 02:10:39 BST 2007 Olly Betts * generate-exceptions.in: Fix grammatical errors in Error::get_errno() deprecation explanation. Thu May 17 23:51:17 BST 2007 Olly Betts * api/error.cc: Need for free() to build with GCC 4.3 snapshot. Thu May 17 23:11:53 BST 2007 Olly Betts * NEWS: Fix line wrapping (ok, isn't wasn't final!) Thu May 17 22:28:44 BST 2007 Olly Betts * NEWS: Final update before release. Thu May 17 19:10:27 BST 2007 Olly Betts * configure.ac: Bump version to 1.0.0 and update LIBRARY_VERSION_INFO. Thu May 17 19:10:11 BST 2007 Olly Betts * NEWS: Minor wording tweak. Thu May 17 19:06:34 BST 2007 Olly Betts * docs/Makefile.am: Run rst2html with --strict --verbose options to reject .rst files with problems. * docs/deprecation.rst: Add more entries gleaned from the NEWS file. Thu May 17 18:30:01 BST 2007 Olly Betts * NEWS: Update with fixes from Jenny's proof-reading and a few other tweaks. Thu May 17 18:27:53 BST 2007 Olly Betts * AUTHORS: Update. Thu May 17 18:25:39 BST 2007 Olly Betts * PLATFORMS: Updates from the tinderbox. Thu May 17 18:08:13 BST 2007 Olly Betts * common/safesysstat.h: Need the 2 argument mkdir() wrapper for Mingw too. Define S_ISDIR() and S_ISREG() if they aren't already defined rather than conditional on _MSC_VER. Thu May 17 17:58:43 BST 2007 Olly Betts * docs/admin_notes.rst: "flint-check" -> "xapian-check". Thu May 17 17:46:36 BST 2007 Olly Betts * NEWS: Update for Xapian 1.0.0. Thu May 17 17:41:15 BST 2007 Olly Betts * docs/: Update documentation for 1.0.0; add new document describing new term generation strategy as implemented by TermGenerator class; link in "lost" documents to the index page. Thu May 17 03:54:36 BST 2007 Olly Betts * exception_data.pm: Fix to work with Perl 5.6. Thu May 17 01:20:16 BST 2007 Richard Boulton * backends/multi/multi_alltermslist.cc: Check that iterators are not at_end() before calling skip_to() on them. Thu May 17 00:49:03 BST 2007 Olly Betts * backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc, backends/quartz/btree.cc,common/Makefile.mk, common/msvc_posix_wrapper.cc,common/msvc_posix_wrapper.h: Use msvc_posix_wrapper.h functions for all __WIN32__ builds, not just for MSVC. Wed May 16 23:55:46 BST 2007 Richard Boulton * api/omdatabase.cc: Fix return type in debug macro in replace_document(). Wed May 16 23:45:20 BST 2007 Richard Boulton * tests/apitest.cc: Add collfreq and allterms tests to the tests for the remote and remotetcp backends. They all pass. Wed May 16 15:11:00 BST 2007 Olly Betts * configure.ac: Need to try -zdll for mingw as well. Wed May 16 14:45:23 BST 2007 Olly Betts * tests/queryparsertest.cc: Add two more testcases. Wed May 16 14:32:46 BST 2007 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix double-free on invalid range query. Wed May 16 10:08:02 BST 2007 Richard Boulton * tests/queryparsertest.cc: Add some more test cases to the value range processor. These currently fail with a SIGSEGV message. Wed May 16 02:22:17 BST 2007 Olly Betts * queryparser/termgenerator_internal.cc: Fix handling of stemming of prefixed terms. * tests/termgentest.cc: Fix testcases. Wed May 16 01:54:25 BST 2007 Richard Boulton * tests/termgentest.cc: Add a test for parsing of capitalised words with a prefix, which currently fails. Wed May 16 01:09:39 BST 2007 Richard Boulton * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add a method to get the current document from the term generator. Helps avoid users having to pass around a structure encapsulating the generator and the document assigned to it. Wed May 16 00:50:07 BST 2007 Olly Betts * docs/deprecation.rst: Add . Tue May 15 22:46:39 BST 2007 Richard Boulton * tests/termgentest.cc: Use resize(0) instead of clear(), for g++2.95 Tue May 15 20:25:07 BST 2007 Richard Boulton * net/remoteconnection.cc: Add a comment noting why we test __STDC_SECURE_LIB__ even though its an undocumented macro. Tue May 15 20:14:51 BST 2007 Richard Boulton * tests/termgentest.cc: Add several more tests - some converted from the query tests, some more initial tests, and some number tests. Tue May 15 18:31:21 BST 2007 Olly Betts * queryparser/termgenerator_internal.cc: Revert previous change - we need to generate Zibm and Zpc from text `I.B.M. P.C.' or else a search for `ibm pc' won't match. Tue May 15 18:22:44 BST 2007 Olly Betts * queryparser/termgenerator_internal.cc: Sort out stemming of initials. Tue May 15 18:04:17 BST 2007 Richard Boulton * tests/termgentest.cc: Add some more tests, and rework the array of tests so that there's just a single string holding any options we want to set for the following tests. Tue May 15 16:49:17 BST 2007 Richard Boulton * tests/Makefile.am,tests/termgentest.cc: Add new test file, for testing the term generator. Only has a single test so far. Tue May 15 16:20:20 BST 2007 Olly Betts * include/xapian/unicode.h: Make single parameter ctor explicit. Tue May 15 16:00:24 BST 2007 Olly Betts * queryparser/termgenerator_internal.cc: Add special handling for acronyms/initialisms, so I.B.M -> term ibm, etc. Tue May 15 14:07:27 BST 2007 Richard Boulton * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add a set_termpos() method, too. Tue May 15 13:54:34 BST 2007 Olly Betts * include/xapian/database.h: Document the issue of the monotonic docid counter wrapping around. Tue May 15 10:58:37 BST 2007 Richard Boulton * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add get_termpos() method to get the current value of the termpos. Makes it easier to integrate with different term generators. Tue May 15 03:44:50 BST 2007 Olly Betts * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc: Include '.', ',', and a few other characters in terms if they are between two decimal digits. * queryparser/termgenerator_internal.cc: Don't stem terms which start with a number. * tests/queryparsertest.cc: Update results for real world queries to match new results (better in every case but one!) Tue May 15 01:24:08 BST 2007 Olly Betts * HACKING: Fix a few typos. Add "feisty" to the list of debs to build. Tue May 15 00:51:35 BST 2007 Richard Boulton * HACKING: Document that the bootstrap script should be run from srcdir, and that the generated configure can be run from a different builddir. Tidy up a few other lines. Mon May 14 23:52:33 BST 2007 Olly Betts * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc: Expand check_infix to include some of characters Unicode does. * tests/queryparsertest.cc: Update the single test query which now parses differently. Mon May 14 23:42:53 BST 2007 Olly Betts * tests/harness/testsuite.h: New macro TEST_STRINGS_EQUAL() which displays the strings on separate lines so the differences can be clearly seen. * tests/queryparsertest.cc: Use TEST_STRINGS_EQUAL(). Mon May 14 20:14:17 BST 2007 Olly Betts * include/xapian/enquire.h: Make the "uses string sort" warning in the documentation for the methods which enable sorting by value more prominent, and fix several miscellaneous typos. Mon May 14 19:28:21 BST 2007 Olly Betts * queryparser/dir_contents: Update to mention TermGenerator. Mon May 14 19:12:12 BST 2007 Olly Betts * queryparser/queryparser.lemony: Fix handling of WILDCARD_TERM and PARTIAL_TERM for prefixed terms. * tests/queryparsertest.cc: Add test coverage for this. Mon May 14 18:02:22 BST 2007 Olly Betts * tests/queryparsertest.cc: Add more testcases for wildcarded queries. Mon May 14 17:39:30 BST 2007 Olly Betts * queryparser/queryparser.lemony: Fix handling of partial queries. Mon May 14 16:49:46 BST 2007 Olly Betts * net/remoteconnection.cc: closesocket() seems to work equally as well as CloseHandle() but it's what we use elsewhere and Charlie thinks it's a better choice here too so use that instead. Rename the wrapper call from close_fd_or_handle() to close_fd_or_socket(). And mark close_fd_or_socket() as "inline" under UNIX, since it should always be inlined. Mon May 14 15:30:13 BST 2007 Olly Betts * tests/api_anydb.cc: Add FIXME about moving wildquery1. Mon May 14 15:21:59 BST 2007 Olly Betts * bin/xapian-progsrv.cc: Improve comments. Mon May 14 11:29:14 BST 2007 Richard Boulton * net/remoteconnection.cc: Deal with invalid parameter exceptions on windows when closing file descriptors or handles. Mon May 14 05:04:16 BST 2007 Olly Betts * tests/api_anydb.cc: Fix wildquery1 to work with the new term stemming scheme. Sun May 13 19:15:17 BST 2007 Olly Betts * include/xapian/unicode.h: Count control characters as whitespace (which is certainly what we want for TAB, CR, LF, and FF). Sun May 13 17:50:19 BST 2007 Olly Betts * include/xapian/unicode.h: Add CONNECTOR_PUNCTUATION to is_wordchar() - this category includes '_' and characters which fulfil similar roles. * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc: No longer need to special case '_'. * queryparser/queryparser.lemony: Test for Unicode "whitespace" rather than just ASCII. Sun May 13 04:43:37 BST 2007 Olly Betts * queryparser/queryparser.lemony: Normalise Unicode characters used for apostrophe to ASCII apostrophe. Sun May 13 03:56:17 BST 2007 Olly Betts * include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode routines to use Unicode 5.0.0 and support characters outside the BMP (so we now support all Unicode characters in the latest version of the standard). * tests/api_unicode.cc: Add test unicode1 which performs some simple tests of the categorisation function, include one which tests for a character added in Unicode 5.0.0. Sat May 12 06:01:50 BST 2007 Olly Betts * queryparser/queryparser.lemony: Update comment. Sat May 12 04:23:01 BST 2007 Olly Betts * queryparser/queryparser.lemony: Improve description of Term class. Sat May 12 04:16:47 BST 2007 Olly Betts * queryparser/queryparser.lemony: Update to implement the new stemming scheme. * tests/queryparsertest.cc: Update testcases, and check that the new parses are all reasonable. Sat May 12 04:03:55 BST 2007 Olly Betts * include/xapian/unicode.h: Xapian::Unicode::get_category() now checks for characters outside the BMP, and assumes they're of category OTHER_LETTER. Remove BMP check from all functions which use Xapian::Unicode::get_category(). Sat May 12 04:02:52 BST 2007 Olly Betts * include/xapian/queryparser.h: Fix typo in comment. Fri May 11 05:45:38 BST 2007 Olly Betts * net/remoteserver.cc: Make "Server is read-only" be of type InvalidOperationError not NetworkError. This is arguably more appropriate anyway, but in particular it avoids a worrying looking (but harmless) warning when a read-only connection is closed, due dtor_called() calling flush() on a read-only database. Fri May 11 01:35:31 BST 2007 Olly Betts * docs/Makefile.am: Disable more documentation rules if MAINTAINER_NO_DOCS is true. Thu May 10 23:01:13 BST 2007 Richard Boulton * net/remoteconnection.cc: Remove definition of unused macro XAPIAN_MSVC_INVALID_PARAMETER_HANDLER. Thu May 10 19:24:23 BST 2007 Olly Betts * include/xapian/enquire.h: Try quoting qualified identifiers in #pragma deprecated. Thu May 10 15:58:37 BST 2007 Olly Betts * include/xapian/enquire.h: Give full scope in '#pragma deprecated' to try to avoid false positives. Thu May 10 14:53:08 BST 2007 Olly Betts * include/xapian/enquire.h: Use '#pragma deprecated' to work around MSVC stupidity (you get a warning for deprecating a declaration). Thu May 10 13:42:49 BST 2007 Olly Betts * configure.ac: Some GCC 3.x versions produce bogus warnings, so only automatically enable -Werror on --enable-maintainer-mode under GCC if we're using GCC >= 4.0. Most developers will be using GCC 4.x soon if they aren't already anyway. * HACKING: Update documentation in line with the above. Mention that we also enable -Werror for Intel's C++ compiler. Thu May 10 05:06:22 BST 2007 Olly Betts * configure.ac: Detect __WIN32__ by running the preprocessor so we don't get confused by building mingw in a cygwin environment. Thu May 10 04:52:21 BST 2007 Olly Betts * net/tcpserver.cc: Exit with EX_UNAVAILABLE if the mutex tells us xapian-tcpsrv is already running on this port. Thu May 10 04:44:10 BST 2007 Olly Betts * common/Makefile.mk,common/safe.cc,common/safeunistd.h: Pulling in safewindows.h from safeunistd.h causes clashes with NEAR in the QueryParser, so use a helper function to call Sleep and just call that from the header. Thu May 10 04:36:19 BST 2007 Olly Betts * net/tcpserver.cc: Fix compilation error. Thu May 10 04:26:31 BST 2007 Olly Betts * common/tcpserver.h,net/tcpserver.cc: Just pass the mutex to get_listening_socket() by reference to avoid MSVC warnings. Thu May 10 04:19:13 BST 2007 Olly Betts * common/safeunistd.h: Use Sleep() instead of _sleep() as the latter gives deprecation warnings. Sadly that means that safeunistd.h now has to pull in safewindows.h. Thu May 10 04:07:53 BST 2007 Olly Betts * common/tcpserver.h,net/tcpserver.cc: Keep track of the mutex so we can release it right after we close the listening socket. Throw an error if we fail to get the mutex to avoid a possible race condition (we might end up with the socket listening but without the mutex locked). Always call closesocket() on the listening socket under __WIN32__ to ensure resources are released. Thu May 10 02:48:31 BST 2007 Olly Betts * net/tcpserver.cc: Use a mutex under Cygwin and WIN32 to allow use to use Microsoft's broken SO_REUSEADDR on our listening socket, but avoid being able to run two copies of xapian-tcpsrv on the same port at once (tweaked patch from MarkH). * net/tcpserver.cc: Don't try to set SO_EXCLUSIVEADDRUSE if a previous setsockopt() call failed as we might stomp on the error code. Thu May 10 02:15:20 BST 2007 Olly Betts * Makefile.am,bin/Makefile.mk,configure.ac,docs/Makefile.am, examples/Makefile.mk: Add new Automake conditional "MAINTAINER_NO_DOCS" to allow use to disable references to built documentation in maintainer builds if --disable-documentation is specified. This allows Mark's buildbot to work without installing so many tools, some of which aren't packaged for Cygwin. Thu May 10 02:03:44 BST 2007 Olly Betts * Makefile.am: Build rules for running generate-exceptions should be controlled by MAINTAINER_MODE not DOCUMENTATION_RULES, part II. Thu May 10 01:49:42 BST 2007 Olly Betts * docs/deprecation.rst: Add Error::get_type(). Thu May 10 01:25:37 BST 2007 Olly Betts * api/error.cc,generate-exceptions.in: Add new constructors which allow error_string to be set directly, for use by the Xapian::Error unserialising code. * generate-exceptions.in: Xapian::Error::get_type() now returns const char * not std::string. * backends/quartz/quartz_database.cc: Fix code to handle changed return type of Xapian::Error::get_type(). * net/serialise.cc: Include error_string in the serialisation. * common/remoteprotocol.h,docs/remote_protocol.html: Bump protocol version to 29 because of change in Xapian::Error serialisation. Wed May 09 14:42:33 BST 2007 Olly Betts * queryparser/queryparser.lemony: Renaming match_nothing_ member of QpQuery to match_nothing. Comment out unused QpQuery::get_description(). Add FIXME comment about apparently redundant logic (now's not really the time to be fiddling with such things). Wed May 09 14:27:02 BST 2007 Olly Betts * queryparser/queryparser.lemony: Update to match new TermGenerator class. '_' is now a term character, not a phrase generator. We only keep a suffix which has 3 or fewer characters, and we no longer count '-' as a suffix character. * tests/queryparsertest.cc: Update test cases to match new behaviour. In almost every case the new rules give a better result. Wed May 09 14:15:38 BST 2007 Olly Betts * languages/compiler/space.c: Add sanity check to b_to_s(), highlighted by MSVC warning. Wed May 09 14:06:24 BST 2007 Olly Betts * tests/btreetest.cc: Return filesize as off_t to avoid MSVC warning about truncating from 64 to 32 bits (the filesize will never be more than a few K here, so this is essentially a cosmetic issue). Wed May 09 04:04:03 BST 2007 Olly Betts * common/tcpserver.h,net/tcpserver.cc: Always starting the server in a new thread in "one-shot" mode is trickier than it looked, so revert that change for now. Always call closesocket() on our sockets under __WIN32__. Wed May 09 01:53:43 BST 2007 Olly Betts * common/tcpserver.h,net/tcpserver.cc: Make UNIX signal handling functions and WIN32 CrtlHandler static. TcpServer::run() is now generic, calling an OS-specific TcpServer::run_once(). Now we always run the server in a new thread in "one-shot" mode, which gives better code coverage in apitest as it runs more like a normal xapian-tcpsrv would. CtrlHandler now lets the OS handle the event if it doesn't have a socket to close, or if closesocket() fails. Wed May 09 01:42:33 BST 2007 Olly Betts * net/remoteconnection.cc: DWORD is unsigned, so received can't be negative - tidy up the ReadFile() loop taking this into account. Wed May 09 01:28:48 BST 2007 Olly Betts * net/remoteconnection.cc: ReadFile() doesn't set errno, so remove test for EINTR which is just a hangover from the UNIX code. Tue May 08 23:50:33 BST 2007 Olly Betts * queryparser/termgenerator_internal.cc: Treat '_' as a word character which seems to be the correct thing to do in general. Generate unstemmed terms with positional information for all words without a prefix, and stemmed terms without positional information for non-stopwords with a 'Z' prefix. This means we can implement exact phrase search, and prefixing stemmed forms (rather than unstemmed as Omega < 1.0 does) means fewer terms with the prefix. Only stemming non-stopwords cuts a significant amount of the database size in my tests. Tue May 08 18:22:30 BST 2007 Olly Betts * net/tcpserver.cc: Fix remaining use of handle_one_request in __WIN32__-specific code. Tue May 08 18:10:12 BST 2007 Olly Betts * api/error.cc: Really fix it... Tue May 08 17:38:04 BST 2007 Olly Betts * api/error.cc: Fix another paste-o! Tue May 08 17:28:29 BST 2007 Olly Betts * api/error.cc: Remove bogus statement in __WIN32__ case left over from cut-and-paste. Tue May 08 17:10:53 BST 2007 Olly Betts * common/tcpserver.h,net/tcpserver.cc: Rename TcpServer::handle_one_request() to TcpServer::handle_one_connection() (to make it clearer that it handles a connection rather than a single MSG/REPLY exchange), and use it in UNIX builds too to avoid duplicating its code. Catch NetworkTimeoutError here and report it if we're in verbose mode. * net/remoteserver.cc: If we catch NetworkTimeoutError then try to propagate it only if we can send it right away, then rethrow it to close the connection and let the caller log it. If we catch any other NetworkError then just rethrow it. Tue May 08 16:52:50 BST 2007 Olly Betts * common/noreturn.h: Add missing '#endif'. Tue May 08 16:19:05 BST 2007 Olly Betts * common/Makefile.mk,common/noreturn.h: New header which defines XAPIAN_NORETURN() to allow functions which don't return to be marked as such so the compiler can take this into account when generating code. * api/error.cc,tests/harness/backendmanager.cc: Remove any trailing "\r\n" from the output of FormatMessage(). Tue May 08 16:16:55 BST 2007 Olly Betts * include/xapian/deprecated.h: Use `__attribute__((__deprecated__))' instead of `__attribute__((deprecated))' so we're even robust against some clown doing `#define deprecated foo'. Tue May 08 16:15:30 BST 2007 Olly Betts * bin/quartzcheck.cc,tests/harness/backendmanager.cc: In these files we have to disable XAPIAN_DEPRECATED() since we need to be able to use Quartz::open() - move this to the start of the #include block to avoid problems with any intermediate header implicitly including . Tue May 08 14:51:37 BST 2007 Olly Betts * HACKING: Move section on "Configure Options" to a more logical spot just before "Makefile Portability". Add section on how to use XAPIAN_DEPRECATED() noting the issue with GCC 3.3.5 not allowing it to be used on an inline method definition. * include/xapian/deprecated.h: Add pointers to HACKING and docs/deprecated.rst. Tue May 08 13:57:17 BST 2007 Olly Betts * generate-exceptions.in: We can't use XAPIAN_DEPRECATED() on a function definition with GCC 3.3.5, so use it on a declaration and then define inline but out of the class. Tue May 08 13:45:48 BST 2007 Olly Betts * net/tcpserver.cc: We must call closesocket() (instead of just close()) under __WIN32__ or else the socket remains in the CLOSE_WAIT state. Tue May 08 12:17:19 BST 2007 Richard Boulton * docs/deprecation.rst: Add Error::get_errno() to the deprecation list for the bindings, too. Tue May 08 10:09:27 BST 2007 Richard Boulton * docs/deprecation.rst: Change the xapian_version functions to be marked for removal in 1.1.0, and also note them in the bindings section. Tue May 08 04:27:37 BST 2007 Olly Betts * backends/remote/remote-database.cc,common/remote-database.h: The timeout parameter to RemoteDatabase wasn't being used, instead the client would wait indefinitely for the server to respond. Tue May 08 04:16:45 BST 2007 Olly Betts * generate-exceptions.in: Initialise error_string in Xapian::Error ctor. Tue May 08 03:48:47 BST 2007 Olly Betts * api/error.cc: Fix compilation when HAVE_HSTRERROR isn't defined. Tue May 08 02:35:04 BST 2007 Olly Betts * api/error.cc,bin/xapian-tcpsrv.cc,examples/delve.cc, generate-exceptions.in,tests/harness/testsuite.cc: Error subclasses now store the error_string in the class, converting it from the error code in my_errno lazily. Also, get_error_string() now returns const char *. Tue May 08 01:34:56 BST 2007 Olly Betts * Makefile.am: Build rules for running generate-exceptions should be controlled by MAINTAINER_MODE not DOCUMENTATION_RULES. Tue May 08 01:23:22 BST 2007 Olly Betts * bin/xapian-tcpsrv.cc,docs/deprecation.rst,generate-exceptions.in, net/tcpserver.cc,tests/harness/testsuite.cc: Deprecate Error::get_errno() in favour of Error::get_error_string(). We can't pass errno values from remote server to client as they aren't portable and the server and client may be running on entirely different platforms! * generate-exceptions.in: Mark as generated with @configure_input@. Tue May 08 01:20:43 BST 2007 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_lock.h: Make FlintLock's dtor release the lock (if held) which avoids the need for any special handling in FlintDatabase. Mon May 07 21:15:33 BST 2007 Olly Betts * tests/harness/unixcmds.cc: Use O_BINARY when opening a file to "touch" it. Mon May 07 17:28:43 BST 2007 Richard Boulton * backends/flint/flint_database.cc: Add try{}catch(...){} block to ensure that lock is released if an exception occurs in the FlintDatabase() constructor. * tests/api_db.cc: Add regression test for releasing lock on error in constructor. Mon May 07 11:10:33 BST 2007 Richard Boulton * HACKING: Update section on multiple output rules to detail the workaround described in the automake manual. Mon May 07 10:03:50 BST 2007 Richard Boulton * backends/flint/flint_database.cc,backends/flint/flint_database.h, backends/flint/flint_version.cc,backends/quartz/,exception_data.pm, include/xapian/database.h,tests/api_db.cc: Throw DatabaseVersionError instead of DatabaseOpeningError when database version is unsupported. This is a new error class, which is a subclass of DatabaseOpeningError, so most existing scripts shouldn't need changing, but makes it easy for application writers to determine whether a database needs upgrading or whether the problem is something else. Should fix #144. Mon May 07 09:22:01 BST 2007 Olly Betts * net/progclient.cc: Under __WIN32__, use byte mode on pipes because message mode fails for message > 256 bytes, and use "overlapped" mode so we don't block waiting for a reply so that timeouts work. (Patch from Mark Hammond). Mon May 07 03:03:10 BST 2007 Olly Betts * tests/api_anydb.cc,tests/apitest.cc,tests/harness/: Now TEST_EQUAL_DOUBLE() should work everywhere. Move the helper function out of the header. Use TEST_EQUAL_DOUBLE() instead of doubles_are_equal_enough() and weights_are_equal_enough() which do much the same job. Mon May 07 01:13:29 BST 2007 Olly Betts * tests/harness/testsuite.h: Report extra info to try to work out why MSVC build is failing expandweights1. Mon May 07 00:26:59 BST 2007 Olly Betts * tests/harness/testsuite.h: Another tweak to TEST_EQUAL_DOUBLE(). Sun May 06 22:30:26 BST 2007 Olly Betts * docs/quickstart.html: Remove reference to DA databases since the muscat36 backend has been removed. Update to recommend GCC 3.3 or later, as we do elsewhere. Change references to "quartz" to say "flint", or remove them. Sun May 06 16:02:28 BST 2007 Olly Betts * configure.ac: Set version to mythical 0.9.99. Sun May 06 15:06:01 BST 2007 Richard Boulton * tests/api_db.cc: Add test_flintdatabaseformaterror1() which checks what happens when an old-format flint database is opened. It generates the old-format database by making a fake "iamflint" file containing an old version number. Sun May 06 04:00:39 BST 2007 Olly Betts * expand/ortermlist.cc: Remove incorrect assertion check in OrTermList::next(), replacing it with anexplanatory comment. Sun May 06 02:42:30 BST 2007 Olly Betts * net/remoteconnection.cc: Fix typo. Sun May 06 02:39:23 BST 2007 Olly Betts * net/remoteconnection.cc: Aha! Richard's patch failed to compile because stdlib.h was in "#ifndef __WIN32__" not "#ifdef __WIN32__". Sun May 06 02:27:18 BST 2007 Olly Betts * net/remoteconnection.cc: Protect _set_invalid_parameter_handler, etc by _MSC_VER >= 1400 (MSVC 2005) and __STDC_SECURE_LIB__ (undocumented but cribbed from the Python sources). Refactor into a handy class (MSVCIgnoreInvalidParameter) which just needs to be instantiated in the scope where you want to allow invalid parameters to be passed. Sun May 06 01:42:06 BST 2007 Olly Betts * net/remoteconnection.cc: Rework use of _invalid_parameter_handler to only apply when _MSC_VER is defined, to fix the mingw build. Sat May 05 22:30:01 BST 2007 Richard Boulton * net/remoteconnection.cc: Under __WIN32__, add an invalid parameter handler which ignores the error and use it for the calls to _get_osfhandle() which are sometimes expected to fail. Requires stdlib.h according to msdn, so also #include that. Sat May 05 20:43:29 BST 2007 Olly Betts * bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc,common/remoteconnection.h, common/remoteserver.h,common/tcpserver.h,net/remoteserver.cc, net/tcpserver.cc: Open a fresh copy of the database(s) on each connection to a xapian-tcpsrv rather than relying on being able to share a database across fork() or between threads (which we don't promise will work). Largely based on patch from Mark Hammond. Fixes some of bug#141 and all of bug#142. Sat May 05 02:19:39 BST 2007 Olly Betts * api/omdatabase.cc: Use RETURN() not return in methods with debug logging. Sat May 05 02:19:11 BST 2007 Olly Betts * bin/xapian-compact.cc: Fix typo in comment. Fri May 04 23:59:54 BST 2007 Olly Betts * backends/flint/flint_version.cc: Remove the "u" suffix from FLINT_VERSION as it's confusing in the "wrong format version" error message and doesn't seem needed in the code. Fri May 04 23:56:32 BST 2007 Richard Boulton * backends/flint/: Revert patch from revision 8426 (except for the bit which removed the unused prototypes), to avoid the possibility that it introduces bugs into the code just before 1.0.0. The patch is attached to bug #143 for later reference. Fri May 04 23:50:39 BST 2007 Olly Betts * examples/delve.cc: Report the error string if we catch Xapian::Error while trying to open a database. Fri May 04 22:50:54 BST 2007 Olly Betts * docs/intro_ir.html: Fix a few typos; elaborate on a few points. Fri May 04 20:07:44 BST 2007 Richard Boulton * queryparser/termgenerator_internal.cc: Fix bug in termgenerator - arguments to add_posting were the wrong way round. Fri May 04 20:00:40 BST 2007 Olly Betts * queryparser/termgenerator_internal.cc: Limit term length, handle infix and suffix characters, and convert apostrophes to ASCII representation. Fri May 04 19:47:43 BST 2007 Olly Betts * include/xapian/unicode.h: Fill in remaining missing documentation comments. Fri May 04 19:30:56 BST 2007 Olly Betts * include/xapian/termgenerator.h: Add convenience version of index_text() and index_text_without_positions() which take a std::string instead of a Utf8Iterator. Fri May 04 17:11:11 BST 2007 Richard Boulton * unicode/utf8itor.cc: Fix segfault bug in Utf8Iterator::operator*(). If this was called when the iterator had reached end, invalid memory was accessed because p was compared to end, p will always be set to NULL when the iterator reaches the end. No regression test, but the smoketest tests I'm implementing in the bindings will excercise this code. Fri May 04 16:29:51 BST 2007 Richard Boulton * include/xapian/unicode.h: Add documentation comments to Utf8Iterator, so I don't have to work out how it works again. Fri May 04 14:55:32 BST 2007 Richard Boulton * include/xapian/unicode.h: Add assign() function which takes a string, for symmetry with the constructors. Also makes implementing the bindings easier. Fri May 04 13:04:52 BST 2007 Richard Boulton * include/Makefile.mk: Add termgenerator.h to distribution tarballs. Fri May 04 03:41:56 BST 2007 Olly Betts * tests/harness/testsuite.h: Test against pow(10, -DBL_DIG) rather than DBL_EPSILON. DBL_EPSILON is a little bit smaller, but we use DBL_DIG for displaying the numbers and it looks stupid to say two numbers which are displayed identically should be nearly the same! Fri May 04 03:33:51 BST 2007 Olly Betts * HACKING: Fix reference to --enable-maitainer-mode and documentation rebuilding. Fri May 04 03:32:57 BST 2007 Olly Betts * configure.ac: Fix now erroneous references to tools "required in maintainer mode" to "required to build documentation". Fri May 04 01:49:05 BST 2007 Olly Betts * HACKING: Document --enable-documentation. Fri May 04 01:38:44 BST 2007 Olly Betts * Makefile.am,bin/Makefile.mk,configure.ac,docs/Makefile.am, examples/Makefile.mk: Add new configure option "--enable-documentation" which enables the make rules to rebuild the documentation. By default this follows the setting of "--enable-maintainer-mode" (so giving much the same behaviour as currently), but the documentation rules can now be controlled independently. Also, if documentation isn't being built, the configure probes for tools required to rebuild it are no longer run which should shorten configure time a bit for end-users building releases. Thu May 03 22:07:39 BST 2007 Olly Betts * common/remoteserver.h: Remove unused default values for active_timeout_ and idle_timeout_ parameters. Fix repeated typo in documentation comments ('millisrconds' -> 'milliseconds'). Thu May 03 15:05:24 BST 2007 Olly Betts * include/xapian.h,include/xapian/termgenerator.h,queryparser/: Initial cut of TermGenerator class. Thu May 03 15:04:09 BST 2007 Olly Betts * generate-exceptions.in: Hide the internal constructors of generated error classes in the doxygen-generated API docs. Thu May 03 04:37:51 BST 2007 Olly Betts * expand/ortermlist.cc,expand/ortermlist.h: Fix compilation error when --enable-assertions is used. Thu May 03 03:57:42 BST 2007 Olly Betts * common/safeunistd.h: Provide a POSIX-compatible sleep() function. * common/utils.h: Remove inferior POSIX-compatible sleep() function. Thu May 03 03:17:02 BST 2007 Olly Betts * include/xapian/: Mark all @internal member variables and functions which aren't private with @private so doxygen doesn't document them. Thu May 03 02:33:09 BST 2007 Olly Betts * include/xapian/: Mark DocIDWrapper, RefCntBase, RefCntPtr, TermNameWrapper, and TermPosWrapper as "@internal" so that they don't show up in the doxygen-generated API documentation. In particular, this makes the class collaboration diagrams much more useful. * include/xapian/errorhandler.h: Declare the class in namespace Xapian rather than with namespace Xapian:: since the latter seems to confuse doxygen. Thu May 03 02:31:33 BST 2007 Olly Betts * include/xapian/unicode.h: Fix wrapping of comment. Thu May 03 00:05:23 BST 2007 Richard Boulton * backends/flint/: Remove unused (and unimplemented) declarations of begin_transaction_(), commit_transaction_() and cancel_transaction_() from FlintWritableDatabase class. Tidy up handling of metainfo (total_length and lastdocid) to avoid repeatedly parsing the special record, and make it easier to store additional metainfo in future. Also, remove code which ensures that there is always a special record - this was added in revision 5459 when the special record was stored in the record table, so that the number of documents in the database could always be calculated by subtracting 1 from the number of entries in the record table. Now that the special record is stored in the postlist table, this is no longer necessary. Wed May 02 17:56:39 BST 2007 Olly Betts * backends/dbfactory_remote.cc,include/xapian/dbfactory.h: Remote::open_writable() now defaults to no (active) timeout. The connection timeouts for Remote::open() and Remote::open_writable() now default to 10 seconds rather than defaulting to the same as the active timeout (which defaults to 10 seconds). Wed May 02 16:00:22 BST 2007 Richard Boulton * common/safeunistd.h,tests/harness/backendmanager.cc: Fix compilation on windows - safeunistd.h was undefining ssize_t and thus overriding the definition in config.h, and include safewindows.h for backendmanager.cc Wed May 02 15:34:33 BST 2007 Olly Betts * common/safeunistd.h: Don't define ssize_t here for MSVC - do it in config.h instead. This avoids pulling in which will hopefully fix another macro redefinition warning under MSVC. Wed May 02 15:20:56 BST 2007 Olly Betts * common/safewindows.h: Define NOGDI before including windows.h to prevent it from defining a macro called "ERROR" which collides with the generated queryparser sources, causing a warning in the MSVC build. Wed May 02 14:38:33 BST 2007 Olly Betts * common/termlist.h: Forward declare ExpandStats as "class" not "struct" for consistency with the actual declaration. Wed May 02 14:30:41 BST 2007 Olly Betts * configure.ac: Try '-lzlib' for zlib, which mingw reportedly needs. Wed May 02 14:21:40 BST 2007 Olly Betts * common/remoteconnection.h,include/xapian/dbfactory.h, net/remoteserver.cc: A timeout of `0' in the remote backend now means "no timeout" (code patch from Mark Hammond). Wed May 02 04:17:28 BST 2007 Olly Betts * Makefile.am,api/,backends/alltermslist.cc,backends/flint/, backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h, backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h, backends/quartz/,backends/remote/net_termlist.cc, backends/remote/net_termlist.h,backends/remote/remote-database.cc, common/,expand/,matcher/: Split expand functionality out of "matcher" subdirectory into new "expand" subdirectory since it's not really connected to query matching and the matcher subdirectory is one of the largest. Rewrite OrTermList, eliminating BranchTermList entirely. Alter expand to pass in an object (of class Xapian::Internal::ExpandWeight) which accumulates statistics instead of returning OmExpandBits objects which we then have to merge (and eliminating the need for LeafTermList entirely). Query expansion for multiple databases should now give results more like that for a single database with the same documents (if USE_EXACT_TERMFREQ is used, the results should be the same). Debug logging from expand is now all of type EXPAND (some was of types MATCHER and WTCALC before). Wed May 02 03:35:17 BST 2007 Olly Betts * docs/deprecation.rst: Add deprecation info for Omega too. Wed May 02 00:24:13 BST 2007 Olly Betts * tests/api_anydb.cc: Add test expandweights1 as a regression test for the previous commit. * tests/harness/testsuite.h: Set the precision for TEST_EQUAL_DOUBLE so we don't claim two numbers to be different yet display them the same! Tue May 01 23:27:10 BST 2007 Olly Betts * backends/remote/net_termlist.cc,backends/remote/remote-database.cc, common/remoteprotocol.h,docs/remote_protocol.html, net/remoteserver.cc: Fix handling of the document length in the termlist for the remote backend. Tue May 01 23:17:28 BST 2007 Olly Betts * tests/api_db.cc: Several tests were marked as "local db only" for historical reasons. Enable them for remote backends too. * backends/remote/net_postlist.cc,tests/api_db.cc: Fix a bug in NetworkPostList::skip_to() which apitest's postlist4 reveals. Tue May 01 21:00:26 BST 2007 Olly Betts * api/omtermlistiterator.cc,api/omvalueiterator.cc, backends/multi/multi_alltermslist.cc: Add explicit `#include "omassert.h"'. * backends/multi/multi_alltermslist.cc: Remove all explicit std:: qualifiers and add `using namespace std;'. Tue May 01 20:56:10 BST 2007 Olly Betts * common/multialltermslist.h: Add explicit std:: qualifiers for string, for consistency with std::vector in this header. Tue May 01 15:19:53 BST 2007 Olly Betts * matcher/branchpostlist.h: Don't check for NULL pointer before calling delete. Tue May 01 02:29:10 BST 2007 Olly Betts * common/document.h,common/documentterm.h,common/multialltermslist.h, matcher/rset.cc,queryparser/queryparser.cc: Add some explicit includes for headers which were previously only implicitly included (in preparation for a forthcoming change which removes some of the implicit inclusions). Tue May 01 01:20:53 BST 2007 Olly Betts * backends/database.cc,bin/quartzcheck.cc,docs/deprecation.rst, include/xapian/dbfactory.h,tests/api_db.cc, tests/harness/backendmanager.cc,tests/quartztest.cc: Deprecate the Quartz backend and related functions and utilities. Fri Apr 27 12:56:13 BST 2007 Olly Betts * tests/Makefile.am: Pass '-no-install' when linking test programs, since we don't ever install them. This means libtool doesn't need to generate shell script wrappers on most platforms. Also prefer '$(ldflags)' to '@ldflags' as the former allows the user to override when they run 'make' which is sometimes useful. Fri Apr 27 03:44:15 BST 2007 Olly Betts * docs/intro_ir.html: Add links for the various researchers mentioned by name. Thu Apr 26 17:57:10 BST 2007 Olly Betts * docs/bm25.html,docs/intro_ir.html: Assorted documentation improvements. Thu Apr 26 15:43:24 BST 2007 Richard Boulton * docs/deprecation.rst: Update with changes to Python bindings. Thu Apr 26 06:01:45 BST 2007 Olly Betts * common/expandweight.h,matcher/expandweight.cc: Better handling of expand with multiple databases. Wed Apr 25 18:35:13 BST 2007 Olly Betts * api/omenquire.cc: Delete nonsensical comment. Wed Apr 25 17:41:58 BST 2007 Olly Betts * docs/deprecation.rst: Use the collective term "features" rather than overloading the term "functions". Casual readers may miss the definition altogether, and even dedicated readers will probably already have a strong mental image of what a "function" is in the context of an API. Wed Apr 25 14:52:11 BST 2007 Olly Betts * docs/intro_ir.html: Improve the look of the formulae. Wed Apr 25 03:56:18 BST 2007 Olly Betts * common/omqueryinternal.h,languages/generate-allsnowballheaders.in, matcher/msetcmp.h,queryparser/queryparser_internal.h: Add missing multiple inclusion guards. Wed Apr 25 03:12:50 BST 2007 Olly Betts * queryparser/queryparser_internal.h: Don't include in a header file. Wed Apr 25 03:05:09 BST 2007 Olly Betts * queryparser/queryparser.cc: Initialise `internal' member inline for consistency with other classes. Tue Apr 24 04:55:45 BST 2007 Olly Betts * configure.ac: Add missing ')' to the error messages when zlib stuff isn't found. Tue Apr 24 02:56:57 BST 2007 Olly Betts * backends/flint/flint_database.h, backends/inmemory/inmemory_database.h, backends/quartz/quartz_database.h: MSVC doesn't handle using properly. Tue Apr 24 01:25:34 BST 2007 Olly Betts * matcher/bm25weight.cc,matcher/expandweight.cc: Fix typo in comments: 'releveant' -> 'relevant'. Mon Apr 23 23:00:23 BST 2007 Olly Betts * api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h, tests/api_anydb.cc,tests/api_db.cc: Deprecate Enquire::include_query_terms and Enquire::use_exact_termfreq in favour of capitalised versions Enquire::INCLUDE_QUERY_TERMS and Enquire::USE_EXACT_TERMFREQ (for consistency with our other manifest constants, and general C/C++ conventions). Mon Apr 23 18:14:20 BST 2007 Olly Betts * backends/flint/flint_table.cc,backends/quartz/btree.cc: Support for VLAs in C++ is a GCC extension, so eliminate the need for them. Mon Apr 23 16:32:07 BST 2007 Olly Betts * docs/: svn:ignore deprecation.html. svn:ignore apidoc.pdf and sourcedoc.pdf rather than *.pdf. Mon Apr 23 16:08:53 BST 2007 Olly Betts * tests/quartztest.cc: Resolve FIXME about MapTermList. Mon Apr 23 16:06:38 BST 2007 Olly Betts * api/valuerangeproc.cc,backends/flint/flint_check.cc, backends/flint/flint_table.cc,backends/quartz/btree.cc, backends/quartz/btreecheck.cc,bin/xapian-tcpsrv.cc,examples/, languages/steminternal.h,tests/harness/testsuite.cc, tests/harness/testsuite.h,tests/stemtest.cc: Fix compilation with GCC 4.3 snapshot. Mon Apr 23 15:20:55 BST 2007 Olly Betts * common/safeunistd.h: Comment tweaks. Mon Apr 23 11:54:14 BST 2007 Richard Boulton * common/safeunistd.h: Include on windows to get getpid() instead of using a #define. Mon Apr 23 11:30:56 BST 2007 Richard Boulton * api/maptermlist.h: Fix typo in error message. Mon Apr 23 11:08:01 BST 2007 Richard Boulton * api/maptermlist.h: Throw an InvalidOperationError() if MapTermList::get_termfreq() is called, instead of simply having Assert(false): this gets called if a term iterator is accessed for a freshly created Document, and the get_termfreq() method is called on it. The error message is specific to this situation, since this is the only place in which MapTermList is used. Mon Apr 23 03:22:54 BST 2007 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_lock.cc, backends/flint/flint_lock.h: Report why we failed to get a write lock on a flint database. Mon Apr 23 01:44:13 BST 2007 Olly Betts * backends/flint/flint_version.cc: Update the flint format version since older flint versions can't read compressed tags. Mon Apr 23 01:25:25 BST 2007 Olly Betts * configure.ac: Probe for zlib.h and -lz. * backends/flint/,bin/xapian-compact.cc: Use zlib to compress tags in the record and termlist tables. * tests/Makefile.am,tests/runtest.in,tests/valgrind.supp: Add a valgrind suppression for zlib (a known issue - for speed zlib deliberately reads past the end of the buffer in some cases). Sun Apr 22 04:24:06 BST 2007 Olly Betts * backends/flint/: Remove documentation for blocksize_ parameters which were removed some time ago. Sun Apr 22 00:02:13 BST 2007 Olly Betts * matcher/multimatch.cc: Track the minimum weight required to be considered for the MSet separately from the minimum item which could be considered. Trying to combine the two is causing subtle bugs (fixed bug#86). Sun Apr 22 00:00:39 BST 2007 Olly Betts * HACKING: Add notes about the files Omega uses from xapian-core. Sat Apr 21 23:49:58 BST 2007 Olly Betts * queryparser/queryparser.cc: Clear the stoplist when we parse a new query. * tests/queryparsertest.cc: Add regression test. Sat Apr 21 23:27:33 BST 2007 Olly Betts * Makefile.am,common/Makefile.mk,getopt/: Move getopt.cc from getopt/ to common/. Having a whole directory for a single source file is a bit extravagent, and putting it in common/ allows us to share a copy with omega easily. Sat Apr 21 21:38:20 BST 2007 Olly Betts * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc, backends/quartz/quartz_log.cc,common/omdebug.h,common/safeunistd.h, tests/harness/testsuite.cc: safeunistd.h now defines getpid() to GetCurrentProcessId() for MSVC, and we now include this where we want to use getpid() rather than conditionally defining getpid(). Sat Apr 21 04:13:12 BST 2007 Olly Betts * configure.ac: Explicitly set AM_CXXFLAGS to an empty value to start with to avoid issues if it's set in the environment. Cache the results of the test to see if the C++ compiler actually works, and in the XAPIAN_TEST_LINKER_FLAG macro. * configure.ac, include/xapian/visibility.h: Add --disable-visibility option to configure to completely disable use of -fvisibility. * INSTALL: Document all --enable-backend-* options explicitly. Document how to disable use of -fvisibility and -Bsymbolic-functions should you want/need to. Improve wording in a few places. Fri Apr 20 19:20:23 BST 2007 Olly Betts * HACKING,configure.ac: Revert to requiring autoconf 2.59 so that the .spec file for building RPMs can run `autoreconf' to work around a libtool bug. Fri Apr 20 18:12:51 BST 2007 Olly Betts * docs/deprecation.rst: Document return type of ExpandDecider::Apply() and MatchDecider::Apply() in C# is now bool instead of int. Fri Apr 20 18:01:18 BST 2007 Olly Betts * xapian.spec.in: Package xapian-check and its man page. Fri Apr 20 14:38:00 BST 2007 Olly Betts * docs/deprecation.rst: Note changed return type of ExpandDecider::operator() and MatchDecider::operator(). Fri Apr 20 14:28:39 BST 2007 Olly Betts * include/xapian/enquire.h: MatchDecider::operator() now returns `bool' not `int'. Remove declaraction of ExpandDecider. * include/xapian/expanddecider.h: Move declaration of ExpandDecider to here. ExpandDecider::operator() now returns `bool' not `int'. ExpandDeciderAnd now names parameters `first' and `second' and documents the order in which they are applied (useful if you have an expensive and a cheap test). ExpandDeciderAnd can now take parameters by reference instead of pointer. * api/Makefile.mk,include/xapian/enquire.h,api/omenquire.cc, api/expanddecider.cc: New home for definitions of virtual methods of ExpandDecider and subclasses. * api/omenquire.cc,common/expand.h,matcher/expand.cc: Eliminate internal class ExpandDeciderAlways - just test pointer against NULL instead. * tests/api_anydb.cc,tests/api_db.cc: Update for change in return type from MatchDecider::operator() and ExpandDecider::operator(). Fri Apr 20 10:35:09 BST 2007 Richard Boulton * HACKING: Add note on rules with multiple targets. Thu Apr 19 19:02:42 BST 2007 Olly Betts * PLATFORMS: Remove reports for 0.7.* and demote reports for 0.8.* to "older reports" status. All SF compilefarm machines are now "no longer available", so update the symbols and key to reflect this. Thu Apr 19 13:27:59 BST 2007 Olly Betts * HACKING: Fix vim magic comment. Add space after URL to stop '::' getting glued to it. Thu Apr 19 11:36:19 BST 2007 Richard Boulton * HACKING: Turn syntax highlighting off, since it's broken for the restructured text in this file anyway. Thu Apr 19 03:26:28 BST 2007 Olly Betts * backends/flint/flint_database.h, backends/inmemory/inmemory_database.h, backends/quartz/quartz_database.h: The trick of importing base class methods with 'using' breaks compilation with GCC 2.95 which doesn't issue the warning we're trying to avoid, so add a preprocessor check, Thu Apr 19 03:20:31 BST 2007 Olly Betts * common/progclient.h,net/progclient.cc: Always use pid_t not int for holding a process id. Thu Apr 19 01:08:57 BST 2007 Olly Betts * docs/deprecation.rst: Update '#callable' footnote. Thu Apr 19 00:07:02 BST 2007 Olly Betts * backends/flint/flint_database.h, backends/inmemory/inmemory_database.h, backends/quartz/quartz_database.h: Add using declarations to subclasses of Xapian::Database::Internal which don't override the term forms of delete_document() and replace_document() to prevent compiler warnings about these methods being hidden. Wed Apr 18 23:22:29 BST 2007 Olly Betts * net/remoteconnection.cc: Remove code which can't actually be reached, which fixes a warning in the mingw build. Wed Apr 18 23:07:45 BST 2007 Olly Betts * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h, include/xapian/enquire.h,matcher/Makefile.mk, matcher/biaspostlist.h,matcher/multimatch.cc,net/remoteserver.cc: Remove Enquire::set_bias(). * docs/deprecation.rst: Update wrt Enquire::set_bias(). Fix typo. Wed Apr 18 18:51:42 BST 2007 Olly Betts * configure.ac: Require autoconf 2.60 or newer. Drop docdir compatibility hack which is no longer required. * HACKING: Document requirement. Fix typo (or out-of-date info) for automake requirement (we require 1.9.5 not 1.8.5). Wed Apr 18 18:27:35 BST 2007 Richard Boulton * docs/deprecation.rst: Note the deprecation of get_description() methods for Python. Wed Apr 18 14:57:03 BST 2007 Richard Boulton * HACKING: Minimal changes to make this into valid restructured text. Wed Apr 18 11:27:57 BST 2007 Richard Boulton * configure.ac: Require autoconf version 2.59c or later: AC_TYPE_SSIZE_T isn't present in earlier versions. Wed Apr 18 11:08:13 BST 2007 Richard Boulton * docs/deprecation.rst: Fix table formatting error Wed Apr 18 01:32:48 BST 2007 Richard Boulton * docs/deprecation.rst: Update with methods which have been removed from the bindings. Wed Apr 18 00:24:00 BST 2007 Richard Boulton * docs/deprecation.rst: Move methods which have just been removed from the list of deprecated methods to the list of removed methods. Tue Apr 17 23:58:53 BST 2007 Olly Betts * api/omdocument.cc,api/omenquire.cc,api/omquery.cc,include/xapian/, languages/stem.cc,tests/api_db.cc: Remove methods we're deprecating for 1.0. Tue Apr 17 23:50:06 BST 2007 Richard Boulton * docs/deprecation.rst: Note that is_empty() is not deprecated for PHP after all! Tue Apr 17 22:17:41 BST 2007 Olly Betts * queryparser/queryparser.lemony: GCC 2.95 doesn't support std::string::clear(), so use resize(0) instead. * HACKING: Document the above issue in a reworked section on C++ STL features. Update the section on safeXXX.h headers. Tue Apr 17 22:07:39 BST 2007 Olly Betts * common/safesysselect.h: Correct typo in #error message. Tue Apr 17 19:18:00 BST 2007 Olly Betts * configure.ac: Factor out code to test for a linker flag into macro XAPIAN_TEST_LINKER_FLAG. With g++, use XAPIAN_TEST_LINKER_FLAG to see if -Bsymbolic-functions is supported (it requires a very recent version of ld currently). This option reduces the size and load time of the shared library by resolving references within the library when it's created. Currently untested on a box which supports -Bsymbolic-functions. Tue Apr 17 12:01:46 BST 2007 Olly Betts * unicode/utf8itor.cc: Tidy up code layout. Tue Apr 17 02:06:39 BST 2007 Olly Betts * include/xapian/unicode.h,unicode/utf8itor.cc: Make nonascii_to_utf8 a public method. Make get_case_type(), get_category(), and get_delta() internal, but provide a public get_category() function which takes a Unicode character value. Tue Apr 17 02:05:32 BST 2007 Olly Betts * backends/flint/Makefile.mk: Distribute flint_check.h. Tue Apr 17 01:47:05 BST 2007 Olly Betts * tests/api_posdb.cc: The remote backend now supports all database operations, so merge localpositionaldb_tests into positionaldb_tests. * tests/: Remove the trivial separate api_XXXdb.h headers, some of which were out-of-step with their respective .cc sources. Instead just keep the array external declarations in apitest.h. * tests/apitest.h,tests/api_transdb.cc: Move TESTCASE and END_OF_TESTCASES macros into header. * tests/api_db.cc: Remove test collapsekey2 - it's only relevant for the Muscat 3.6 backend, so it's unused now that has been removed. * tests/: Add unicode tests, adapted from Omega's utftest. Tue Apr 17 00:14:16 BST 2007 Olly Betts * Makefile.am,include/Makefile.mk,include/xapian.h, include/xapian/unicode.h,queryparser/,unicode/: Expose Unicode and UTF-8 related classes and functions as a public API. Mon Apr 16 16:06:22 BST 2007 Richard Boulton * docs/deprecation.rst: Bring document fully up-to-date, listing all the planned deprecations for the bindings. Also, include the full upgrade notes in the listings, so they can be preserved accessibly for posterity. I even retrieved the notes for the already-removed QueryParser::set_stemming_options from 0.9.10. Mon Apr 16 11:36:18 BST 2007 Olly Betts * net/tcpclient.cc: Call WSAGetLastError() instead of socket_errno() when we want to compare the result against WSAEWOULDBLOCK. Mon Apr 16 11:19:21 BST 2007 Olly Betts * common/remoteconnection.h,common/safewinsock2.h: Need to negate the POSIX error codes we define in terms of winsock ones. Fri Apr 13 16:24:29 BST 2007 Richard Boulton * docs/doxygen_api_conf.in: Turn on XML output, so that we can use it to populate docstrings for the python bindings. Fri Apr 13 11:38:39 BST 2007 Olly Betts * backends/Makefile.mk,backends/alltermslist.cc,common/alltermslist.h: Split AllTermsList into header and code. AllTermsList::get_wdf() now throws InvalidOperationError() rather than asserting in a debug build and returning 0 in a non-debug build. * backends/Makefile.mk: Correct list for "how to add a new backend". Fri Apr 13 10:17:46 BST 2007 Olly Betts * api/version.cc: Simpler and cleaner fix - the prototypes for the version functions had moved from xapian/version.h to xapian.h so we were including the wrong header and not seeing the prototypes with visibility markup! Fri Apr 13 09:29:17 BST 2007 Richard Boulton * api/version.cc: Add visibility annotations to definitions of version functions: the annotation apparently needs to be applied to the definition as well as the declaration or it is ignored: possibly the annotation on the declaration is ignored anyway, but it should be kept there for documentation purposes in any case. Fixes link error with bindings under gcc 4.1. Fri Apr 13 01:39:57 BST 2007 Olly Betts * common/remoteconnection.h,net/progclient.cc,net/remoteconnection.cc: GetLastError() has an unsigned return type, so need to cast to int before negating. Fri Apr 13 01:39:20 BST 2007 Olly Betts * docs/deprecation.rst: Add xapian_version_string() and friends. Fri Apr 13 01:24:53 BST 2007 Olly Betts * tests/api_nodb.cc: More 'tout' output. Fri Apr 13 01:19:20 BST 2007 Olly Betts * api/Makefile.mk,api/error.cc,bin/xapian-tcpsrv.cc, common/remoteconnection.h,common/safeerrno.h,configure.ac, generate-exceptions.in,net/,tests/harness/testsuite.cc: On MS Windows, if Xapian::Error::my_errno is the result of GetLastError() or WSAGetLastError(), negate it (the error codes can overlap with errno codes). On UNIX, put h_errno negated in my_errno if a call to gethostbyname() fails. Add Xapian::Error::get_error_string() method which decodes my_errno in the appropriate way to give a string, and use this instead of strerror(error.get_errno()). Fri Apr 13 01:17:08 BST 2007 Olly Betts * languages/generate-allsnowballheaders.in: win32 makefiles don't keep the snowball header list in sorted order like we do, so fix that here. Also allow for '\' as path separator. Fri Apr 13 00:58:09 BST 2007 Olly Betts * tests/api_nodb.cc: Add "tout" debug output to stemlangs1. Thu Apr 12 21:37:04 BST 2007 Olly Betts * tests/Makefile.am: Add support for QUIET= and QUIET=y arguments to "make". Thu Apr 12 21:35:50 BST 2007 Olly Betts * docs/Makefile.am: Use a substitution for RSTHTML (like we do for the snowball generated sources). Thu Apr 12 20:41:18 BST 2007 Olly Betts * api/omqueryinternal.cc: Add validate_query() calls to the "term" and "value range" constructors. Thu Apr 12 20:00:14 BST 2007 Olly Betts * api/omqueryinternal.cc,include/xapian/query.h: Only validate a Query object when it's either constructed or changed to avoid O(n^2) behaviour in some cases. Thu Apr 12 19:59:13 BST 2007 Olly Betts * queryparser/lemon.c: Fix nasty function casting for argument to qsort - it's (at least technically) not portable. Thu Apr 12 17:47:47 BST 2007 Olly Betts * configure.ac: Fix GCC version test to only turn on -fvisibility=hidden for GCC >= 4. Thu Apr 12 16:47:56 BST 2007 Olly Betts * backends/flint/flint_btreebase.h,backends/flint/flint_cursor.h, backends/flint/flint_table.h,backends/quartz/,common/,configure.ac, generate-exceptions.in,include/Makefile.mk,include/xapian.h, include/xapian/: Add visibility annotations to the library, which when using GCC >= 4 reduces the size and load time of the library and increase the runtime speed a little. Under x86_64, the stripped library is 6.4% smaller (1.5% smaller with debug information). Thu Apr 12 16:45:57 BST 2007 Olly Betts * api/version.cc: Add missing "#include ". Thu Apr 12 13:41:52 BST 2007 Richard Boulton * tests/quartztest.cc: Put removedir() function back for now to fix build. Thu Apr 12 13:02:30 BST 2007 Richard Boulton * net/progclient.cc: Some (but not all) versions of MSVC need "#include " to get the _open_osfhandle identifier. Add it. Thu Apr 12 12:00:34 BST 2007 Richard Boulton * backends/remote/net_postlist.cc: Include config.h Thu Apr 12 11:54:50 BST 2007 Richard Boulton * backends/multi/multi_termlist.cc: Include config.h to get system specific defines. * common/safesysstat.h: Change signature of mkdir to take mode_t instead of int, to match unixy definition. Thu Apr 12 10:19:49 BST 2007 Olly Betts * configure.ac: Probe for mode_t. Thu Apr 12 01:10:18 BST 2007 Olly Betts * backends/flint/flint_positionlist.cc: Move BitReader class inside Xapian namespace to avoid namespace pollution. * bin/xapian-check.cc: Include BitReader::decode_interpolative() - previously we were relying on using the copy from the library. Thu Apr 12 01:02:53 BST 2007 Olly Betts * common/safesysstat.h: Under __WIN32__, provide a POSIX-like mkdir() wrapper which takes 2 arguments, but ignores the file mode, so we can just call mkdir with a mode argument everywhere. * common/utils.h: Remove special case handling of mkdir. * bin/xapian-compact.cc: Replace uses of om_tostring() with a call to sprintf. No longer need to `#include "utils.h"'. Thu Apr 12 00:44:18 BST 2007 Olly Betts * api/,backends/inmemory/inmemory_positionlist.cc,common/,matcher/, net/remoteconnection.cc,net/serialise.cc: omdebug.h only includes omassert.h for the trivial "STRINGIZE" macro, so just duplicate that rather than pulling in an extra header everywhere. Then fix up the two dozen files which were relying on this implicit inclusion! Thu Apr 12 00:10:48 BST 2007 Olly Betts * tests/harness/testsuite.cc: Tweak #ifdef XAPIAN_DEBUG_VERBOSE to include DEBUGLINE() for clarity (no change in behaviour). Wed Apr 11 23:36:10 BST 2007 Olly Betts * queryparser/queryparser.lemony: Fix regression introduced by Richard's change, and restructure to make the handling for each case more obvious. * tests/queryparsertest.cc: Add a couple of testcases for the regression. * queryparser/queryparser_internal.h: Remove reference to "bool" in comment which no longer applies. Wed Apr 11 21:25:36 BST 2007 Richard Boulton * queryparser/queryparser_internal.h: Refactor boolean "flag" member in BoolAndString class into an enum of possible prefix types. Rename "flag" to "type". Rename BoolAndString to PrefixInfo. * queryparser/queryparser.cc: Change add_prefix() and add_boolean_prefix() to match changes to queryparser_internal.h * queryparser/queryparser.lemony: Refactor handling of prefixed terms to match queryparser_internal, and to use a switch() structure: no functional changes, but code is considerably more readable (I hope). Wed Apr 11 21:13:31 BST 2007 Olly Betts * tests/api_db.cc,tests/quartztest.cc: Rework quartztest's "open1" into API level tests for quartz and flint in apitest. Wed Apr 11 14:01:31 BST 2007 Richard Boulton * docs/deprecation.rst: Remove documentation of the "#define XAPIAN_DEPRECATED(D) D" hack, and clarify documentation on how long we support deprecated functions. Wed Apr 11 09:25:55 BST 2007 Richard Boulton * docs/Makefile.am,docs/deprecation.rst: Add initial draft of deprecation policy document, with list of all API items currently marked for deprecation. * HACKING: Add note about keeping deprecation.rst up-to-date when making a release. Tue Apr 10 19:07:24 BST 2007 Olly Betts * configure.ac: --enable-quiet now uses AS_HELP_STRING. Tue Apr 10 18:53:32 BST 2007 Olly Betts * tests/harness/index_utils.cc: Return the empty document we already have rather than constructing another. Tue Apr 10 17:45:11 BST 2007 Olly Betts * net/remoteconnection.cc: Fix typo in comment. Tue Apr 10 17:35:57 BST 2007 Olly Betts * tests/harness/backendmanager.cc: Fix "if" to "is" typo in 3 comments. Tue Apr 10 16:46:09 BST 2007 Olly Betts * tests/harness/backendmanager.cc: Define XAPIAN_TCPSRV and XAPIAN_PROGSRV under UNIX too, and use them everywhere. Tue Apr 10 16:33:48 BST 2007 Olly Betts * tests/harness/backendmanager.h: Remove "BackendManager::" from method declaration. Tue Apr 10 15:35:50 BST 2007 Olly Betts * configure.ac: Define HAVE_SOCKETPAIR if we have socketpair(). Tue Apr 10 15:29:49 BST 2007 Olly Betts * net/progclient.cc: Fix #endif placement so it compiles on UNIX. Tue Apr 10 14:18:06 BST 2007 Olly Betts * net/remoteconnection.cc: Remove debugging code. Tue Apr 10 12:57:51 BST 2007 Olly Betts * backends/dbfactory_remote.cc,common/progclient.h,net/progclient.cc, net/remoteconnection.cc,tests/api_db.cc,tests/apitest.cc, tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Add support for the "prog" variant of the remote backend (patch started by me, finished by Mark Hammond). Tue Apr 10 12:23:46 BST 2007 Olly Betts * api/omqueryinternal.cc,backends/inmemory/inmemory_database.cc, backends/quartz/quartz_alldocspostlist.cc,matcher/localmatch.cc, matcher/multimatch.cc,tests/harness/testutils.cc: Prefer `CONTAINER.empty()' to `CONTAINER.size() == 0'. Tue Apr 10 12:09:45 BST 2007 Olly Betts * api/omqueryinternal.cc: Tighten up an assertion. Mon Apr 09 20:56:23 BST 2007 Olly Betts * configure.ac,tests/harness/backendmanager.cc,tests/runsrv.in, tests/runtest.in: Run the remote backend server using new "runsrv" script instead of "runtest". This doesn't echo anything to stdout, and if valgrind is in use, runs the remote server under "--tool=none" which is much quicker than using valgrind's default memcheck tool (we need to run the remote server under valgrind because valgrind's emulation of excess FP precision isn't exact and otherwise we get tests failing because of these differences). Mon Apr 09 20:24:30 BST 2007 Olly Betts * tests/api_anydb.cc,tests/api_nodb.cc: Move test poscollapse2 to the "no database" category, since it doesn't require a database! Mon Apr 09 18:04:40 BST 2007 Olly Betts * docs/remote_protocol.html: Correct documentation - MSG_REOPEN gives a response of REPLY_UPDATE. Mon Apr 09 15:08:44 BST 2007 Olly Betts * ./: svn:eol-style not svn:eolstyle. Mon Apr 09 15:00:30 BST 2007 Olly Betts * ./: Set svn:eolstyle to native for most text files. Mon Apr 09 14:50:40 BST 2007 Olly Betts * backends/flint/flint_database.cc: Delete the corresponding entry (if any) from doclens in delete_document(). Add assertion to add_document_() that the corresponding entry in doclens isn't already set, but in a non-debug build overwrite any existing entry as that's more likely to be correct. * backends/quartz/quartz_database.cc: Ditto. Mon Apr 09 14:08:55 BST 2007 Olly Betts * backends/quartz/quartz_database.cc: Just assign to doclens[did]. Mon Apr 09 14:06:58 BST 2007 Olly Betts * backends/flint/flint_database.cc: Just assign to doclens[did]. Mon Apr 09 11:29:22 BST 2007 Richard Boulton * backends/quartz/quartz_database.cc: Apply same change to quartz. Mon Apr 09 11:24:31 BST 2007 Richard Boulton * backends/flint/flint_database.cc: Fix bug with document lengths in replace document. Was using doclens.insert() to set the new document length, but this has no effect if the entry already exists. This fixes replacedoc3 for flint (and thus for remote databases), but the same change is needed for quartz. * backends/flint/flint_postlist.cc: Add some debugging lines. Mon Apr 09 01:43:02 BST 2007 Richard Boulton * backends/flint/: Add some more debugging messages to help track down the problem with document lengths shown up by previous change. Mon Apr 09 01:40:34 BST 2007 Richard Boulton * tests/api_wrdb.cc: Add asserts to check that the value of get_doclength() on the database and on the posting list are correct. Currently fails with the value from the posting list for the document which has been replaced (or sooner if assertions are turned on). Sun Apr 08 23:24:20 BST 2007 Olly Betts * Makefile.am,configure.ac: `./configure --enable-quiet' allows you to specify at configure time to pass `--quiet' to libtool. Now you can override this at make-time by using `make QUIET=' (to turn off `--quiet') or `make QUIET=y' (to turn on `--quiet'). Sun Apr 08 23:23:50 BST 2007 Olly Betts * HACKING: Mention AssertEqParanoid and AssertNeParanoid. Sun Apr 08 22:45:45 BST 2007 Olly Betts * common/omassert.h: Add AssertEqParanoid and AssertNeParanoid macros. * backends/flint/flint_table.cc,backends/inmemory/inmemory_database.cc, backends/multi/multi_postlist.cc,backends/quartz/btree.cc: Use them. * backends/multi/multi_postlist.cc: Add extra assertions to MultiPostList::get_doclength(). Sun Apr 08 22:16:11 BST 2007 Olly Betts * configure.ac: Fix typos: `AC_CHECK_SSIZE_T' -> `AC_TYPE_SSIZE_T'; `AC_CHECK_PID_T' -> `AC_TYPE_PID_T'. Sun Apr 08 22:04:54 BST 2007 Olly Betts * HACKING: Snapshots and releases are now generated with autoconf 2.61. Sun Apr 08 21:42:03 BST 2007 Olly Betts * configure.ac: Use AC_CHECK_SSIZE_T instead of our own test. Add AC_CHECK_PID_T for any platforms which don't have `pid_t'. * net/tcpserver.cc: Use `pid_t' instead of `int'. * common/progclient.h,net/progclient.cc: Cleaner rewritten version of progclient.h. Sun Apr 08 19:59:43 BST 2007 Olly Betts * backends/flint/flint_lock.cc: If kill() fails, don't bother calling waitpid(). Sun Apr 08 19:41:11 BST 2007 Olly Betts * net/remoteconnection.cc: Don't explicitly pass "0" for errno. Sun Apr 08 16:58:58 BST 2007 Richard Boulton * queryparser/queryparser.lt: Fix warnings in debugging builds on gcc 4.1 due to comparison of signed and unsigned types. Also, use the ParseTokenName function instead of explicitly doing a range check each time an entry is looked up in yyTokenName, and add a ParseRuleName function for looking up things in yyRuleName, and use it similarly. Sun Apr 08 15:55:42 BST 2007 Olly Betts * configure.ac: Fix lingering references to enable_debug. Sun Apr 08 15:48:13 BST 2007 Olly Betts * tests/api_anydb.cc,tests/api_wrdb.cc: Remove hacks to automatically SKIP tests which failed because of lack of support for some features by the remote backend. Sun Apr 08 15:14:11 BST 2007 Olly Betts * queryparser/queryparser.lemony,queryparser/queryparser.lt: More tweaks. Sun Apr 08 15:04:49 BST 2007 Richard Boulton * queryparser/queryparser.lt: Always include "omdebug.h", and put one of the pieces of debugging code in #ifdef XAPIAN_DEBUG_VERBOSE, to fix non-logging message builds. Sun Apr 08 14:23:06 BST 2007 Richard Boulton * docs/remote_protocol.html: Update for protocol version 27 by adding documentation for MSG_POSTLIST and replies. Also, fix a typo. Sun Apr 08 13:50:20 BST 2007 Olly Betts * common/omdebug.h,queryparser/queryparser.lemony, queryparser/queryparser.lt: Hook the debug tracing in the lemon generated parser into Xapian's debug logging framework. Sun Apr 08 12:35:29 BST 2007 Richard Boulton * backends/remote/,common/remote-database.h,common/remoteprotocol.h, common/remoteserver.h,net/remoteserver.cc: Implement postlists for the remote database. Increases XAPIAN_REMOTE_PROTOCOL_VERSION to 27. Sun Apr 08 12:33:02 BST 2007 Olly Betts * HACKING,INSTALL,configure.ac: Rename --enable-debug* - conflating the options to "turn on assertions" and "turn on logging" still confuses me to the extent I need to read the documentation every time I use them. `--enable-debug[=partial]' become `--enable-assertions'; `--enable-debug-verbose' becomes `--enable-log' and `--enable-debug=full' becomes `--enable-assertions --enable-log'. For now the old options give an error telling you the new equivalent. Sun Apr 08 10:45:40 BST 2007 Olly Betts * configure.ac: Eliminate use_quiet - just use enable_quiet instead. Fri Apr 06 19:06:07 BST 2007 Olly Betts * net/progclient.cc: Close stderr of the spawned backend program. Fri Apr 06 18:59:24 BST 2007 Olly Betts * net/progclient.cc: msecs_timeout_ -> msecs_timeout. Fri Apr 06 18:12:36 BST 2007 Olly Betts * net/remoteconnection.cc: Fix comment grammar. Fri Apr 06 18:10:31 BST 2007 Olly Betts * net/remoteconnection.cc: Deal with the exceptional case first. Fri Apr 06 17:51:20 BST 2007 Olly Betts * net/remoteconnection.cc: Use string::append(ptr, size) in preference to string::append(ptr, ptr + size). Fri Apr 06 11:45:39 BST 2007 Olly Betts * api/omqueryinternal.cc,backends/flint/flint_database.cc, backends/flint/flint_database.h,backends/flint/flint_postlist.cc, backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h, backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h, backends/quartz/quartz_postlist.cc, backends/remote/remote-database.cc,common/database.h, common/remote-database.h: Refactor to eliminate do_open_post_list and any unnecessary call to term_exists(). Fri Apr 06 11:44:25 BST 2007 Olly Betts * tests/api_wrdb.cc: Just use TEST on a boolean value rather than TEST_EQUAL against true/false. Fri Apr 06 08:53:46 BST 2007 Olly Betts * net/remoteserver.cc: Remove "N" which we calculate but never use! Fri Apr 06 08:17:00 BST 2007 Olly Betts * backends/flint/Makefile.mk,backends/flint/flint_check.cc, backends/flint/flint_check.h,bin/Makefile.mk,bin/xapian-check.cc: Fix xapian-check not to use libquartzcheck.la. Fri Apr 06 07:20:47 BST 2007 Olly Betts * bin/Makefile.mk,bin/xapian-check.cc: Add new "xapian-check" program which performs consistency checks on a flint database. Fri Apr 06 06:25:36 BST 2007 Olly Betts * bin/quartzcheck.cc: Test if this is a quartz database by looking at "meta" not "record_DB". If "record_DB" is >= 2GB and we don't have a LFS aware stat function then stat can fail even though the file is there. Also open the database explicitly as a Quartz database for extra robustness. Fri Apr 06 06:23:33 BST 2007 Olly Betts * AUTHORS: Thank Daniel Ménard. Thu Apr 05 18:20:53 BST 2007 Olly Betts * tests/harness/testsuite.cc: No need to explicitly initialise std::string to ""; not doing so results in a smaller object file. Thu Apr 05 18:20:12 BST 2007 Olly Betts * common/remoteprotocol.h: Note other changes in protocol version 26. Thu Apr 05 17:34:10 BST 2007 Olly Betts * tests/runtest.in: Pass "--leak-resolution=high" to valgrind to prevent unrelated leak reports related to STL classes from being combined. Thu Apr 05 17:26:39 BST 2007 Olly Betts * tests/api_wrdb.cc: Remove stray line left over from debugging. Thu Apr 05 16:47:36 BST 2007 Richard Boulton * tests/internaltest.cc: Fix test_serialiselength2: implementation was correct, but test was failing. Needed special casing for n=0 and 1, and was using arguments to string::append(size_type, charT) the wrong way round (stupid C++ API). Also, make it check the return value of decode_length(), since we know what the answer ought to be. Thu Apr 05 14:26:30 BST 2007 Olly Betts * api/omqueryinternal.cc,backends/remote/remote-database.cc, common/serialise.h,net/remoteserver.cc,net/serialise.cc, tests/internaltest.cc: Add a flag parameter to decode_length() to indicate if the decoded value indicates the length of a string in the protocol stream, and if it does, check it against p_end - p after the length has been decoded (fixes bug#117). Thu Apr 05 14:08:02 BST 2007 Olly Betts * tests/api_wrdb.cc: In test uniqueterm1, check the document length after every delete or replace for better coverage. Thu Apr 05 12:41:04 BST 2007 Olly Betts * net/serialise.cc: Encode deltas between docids (rather than the docids themselves) in the RSet serialisation which reduces the size of the encoding if a lot of large docids with small gaps between them are present. * backends/remote/remote-database.cc,net/remoteserver.cc: Encode deltas between termpositions in REPLY_POSITIONLIST, for similar reasons. No need to encode the term length for MSG_DELETEDOCUMENTTERM as it's the last (indeed only) item, and more consistent not to. * common/remoteprotocol.h: Bump protocol version to 26. * docs/remote_protocol.html: Document the new messages MSG_DELETEDOCUMENTTERM and MSG_REPLACEDOCUMENTTERM. Correct reference to REPLY_DOCUMENT to REPLY_DOCDATA. Fix documentation for MSG_QUERY to include the serialised Weight and RSet objects. Fix "copy and paste" error in the description of Flush (should of course be MSG_FLUSH not MSG_CANCEL). Update for changes above. Thu Apr 05 12:18:19 BST 2007 Richard Boulton * backends/database.cc: Keep a RefCntPtr to the LeafPostList used in implementations of delete_document and replace_document with a unique term, so that the postlist isn't leaked. Thu Apr 05 11:56:57 BST 2007 Olly Betts * backends/database.cc: Database::Internal can't call the PostingIterator(PostingIterator::Internal*) ctor (at least under g++ 3.3.5) because it isn't a friend (only class Database is). Can't seem to forward define Database::Internal to make Database::Internal a friend so just use LeafPostList directly as that seems less bad than pulling in the whole of database.h or making PostingIterator::internal public. Thu Apr 05 08:27:26 BST 2007 Olly Betts * HACKING: Need to run svn-tag-release on ixion. Thu Apr 05 01:50:10 BST 2007 Richard Boulton * backends/remote/remote-database.cc,common/remote-database.h, common/remoteprotocol.h,common/remoteserver.h,net/remoteserver.cc: Implement unique term variants of delete and replace document for the remote database. Involves adding two new message types to the protocol (and therefore bumping the protocol version to 25), and overriding the standard implementations of delete_document(term) and replace_document(term) in RemoteDatabase. * tests/api_wrdb.cc: Correct text in SKIP_TEST() message. Thu Apr 05 01:04:19 BST 2007 Richard Boulton * api/omdatabase.cc,backends/database.cc,common/database.h: Move implementation of delete_document and replace_document with a unique_term from WritableDatabase to Xapian::Database::Internal. This will allow it to be overridden for databases which need a special implementation (such as the remote database). Tue Apr 03 14:30:45 BST 2007 Olly Betts * common/remote-database.h: Remove unused and undefined method RemoteDatabase::get_spawned_socket(). Tue Apr 03 09:18:51 BST 2007 Olly Betts * tests/harness/backendmanager.cc: Under __WIN32__, launch xapian-tcpsrv as a child process communicating via a pipe and handle the port being already in use by trying the next port up (as we do under UNIX). Tue Apr 03 06:50:48 BST 2007 Olly Betts * net/tcpserver.cc: For __WIN32__ and __CYGWIN__, use SO_EXCLUSIVEADDRUSE (if available) on on listening sockets for xapian-tcpsrv. Tue Apr 03 04:37:02 BST 2007 Olly Betts * include/xapian/positioniterator.h,include/xapian/postingiterator.h: Fix mangled comment start in (C) headers. Tue Apr 03 03:27:12 BST 2007 Olly Betts * include/xapian/,generate-exceptions.in: Mark the following constructors 'explicit': DocIDWrapper(docid), TermPosWrapper(const std::string &), Query::Internal(const std::string &), Database(const std::string &), all Error subclass constructors taking const std::string &. Only the Database and Error subclass changes should be able to affect user code at all. * include/xapian/,api/omenquire.cc: Make the following methods 'const': RSet::contains(MSetIterator), Enquire::get_query(). This shouldn't affect the validity of any user code. Mon Apr 02 11:44:26 BST 2007 Richard Boulton * HACKING: Add note on "Building from SVN on Windows with MSVC" Mon Apr 02 11:32:51 BST 2007 Olly Betts * api/omqueryinternal.cc: Fix assertion to allow for OP_VALUE_RANGE. Mon Apr 02 11:14:10 BST 2007 Olly Betts * autoconf/rjb_find_stlport.m4: Fix check that the user didn't say `./configure --with-stlport-compiler' (without `=gcc' or similar after it). Mon Apr 02 10:38:35 BST 2007 Olly Betts * tests/api_db.cc,tests/apitest.cc: Under __WIN32__ disable tests which require the prog variant of the remote backend. Mon Apr 02 09:44:13 BST 2007 Olly Betts * net/tcpserver.cc: Don't use SO_REUSEADDR under __CYGWIN__ or __WIN32__ as it has incorrect semantics. Mon Apr 02 09:37:14 BST 2007 Olly Betts * tests/harness/backendmanager.cc: Pull `1239' out as `DEFAULT_PORT'. On Windows, cycle through 10 ports starting at DEFAULT_PORT so that we can have multiple databases open at once. Add a monotonic count to the name of the log file created from the output of each xapian-tcpsrv to avoid failures because the log file is already open. Mon Apr 02 07:41:57 BST 2007 Olly Betts * tests/api_anydb.cc: Avoid having the same database open twice at once. Xapian itself copes, but the BackendManager class in the test harness struggles in the remotetcp case under mingw. Mon Apr 02 07:14:13 BST 2007 Olly Betts * include/xapian/enquire.h: Make Enquire constructor explicit since it can take a single parameter (of type Database). Mon Apr 02 02:32:23 BST 2007 Olly Betts * net/tcpserver.cc: Add "#error" if neither HAVE_FORK nor __WIN32__ is defined (otherwise we'd failed with a rather obscure link error much later!) Mon Apr 02 01:54:20 BST 2007 Olly Betts * matcher/multimatch.cc: Remove unused variable left over from recent change. Mon Apr 02 01:22:56 BST 2007 Olly Betts * net/tcpserver.cc: Actually remove SOCKOPT_OPTIONS_TYPE. Mon Apr 02 01:16:03 BST 2007 Olly Betts * net/tcpclient.cc,net/tcpserver.cc: Pass the 4th parameter of setsockopt() as char* which works whether the function actually takes char* or void* (since C++ allows implicit conversion from char* to void*). Only call socket_errno() after gethostbyname() under __WIN32__ - on UNIX the error code is in h_errno (with incompatible values to errno) and we don't want to confuse things by reporting some random value of errno. Mon Apr 02 00:44:56 BST 2007 Olly Betts * tests/harness/backendmanager.cc: Factor out localhost address into LOCALHOST. Use new xapian-tcpsrv --interface option to only listen for connections on localhost. Run xapian-tcpsrv with "start /B" on MS Windows (this stops the "flickbook of console windows" effect). Mon Apr 02 00:41:31 BST 2007 Olly Betts * common/Makefile.mk,common/safesyssocket.h: Oops, I checked in safesysselect.h as safesyssocket.h! Mon Apr 02 00:30:54 BST 2007 Olly Betts * include/xapian/queryparser.h: Fix SimpleStopper::add to take `const std::string &' not `const std::string'. Mon Apr 02 00:20:45 BST 2007 Olly Betts * bin/xapian-tcpsrv.cc,net/tcpserver.cc: Add "--interface" option to allow the hostname or address of the interface to listen on to be specified (default is the previous behaviour of listening on all interfaces). * net/remoteconnection.cc,net/tcpclient.cc,common/safesysselect.h: Factor out portability code for sys/select.h. * common/Makefile.mk: Ship common/safesysselect.h. * net/tcpserver.cc: Rename parameter of run_thread from "_param" to "param_" (identifiers with leading underscores are reserved for the compiler). * common/tcpclient.h,net/tcpclient.cc,common/tcpserver.h: Rewrite headers with comments which are actually accurate and up-to-date! TcpClient ctor is small so put inline in the header. Pass std::string by const reference. * common/tcpclient.h,common/tcpserver.h: TcpClient and TcpServer classes now inherit from WinsockInitializer under __WIN32__ (as a mixin class) instead of having a member of type WinsockInitializer (the member is initialised too late, at least under mingw). Sun Apr 01 19:14:11 BST 2007 Olly Betts * common/omdebug.cc: Fix retrying of write to retry the part of the string not already written! Sun Apr 01 18:37:15 BST 2007 Olly Betts * common/remoteconnection.h: Note in comments about use as a "mixin" class. Sun Apr 01 17:42:19 BST 2007 Olly Betts * tests,examples,bin: Add .exe versions of built executables to svn:ignore. Sun Apr 01 16:28:26 BST 2007 Olly Betts * common/omdebug.cc: Remove unused '#include ' - we switched to using unbuffered I/O for logging long ago! Sun Apr 01 15:21:04 BST 2007 Olly Betts * common/safewinsock2.h: No, don't typedef socklen_t here - we use SOCKLEN_T everywhere and have `#define SOCKLEN_T int' in config.h.win32. Sun Apr 01 13:32:21 BST 2007 Richard Boulton * common/omdebug.cc: Include necessary headers to get O_CREAT and friends defined (according to documentation in linux manpage), to fix compile error. Also, don't ignore the return value of write() to fix compile warning (and to ensure that the whole output gets written if possible). Sun Apr 01 13:19:52 BST 2007 Richard Boulton * queryparser/queryparser.cc: Fix Assert() on a RefCountPtr to check the value of the pointer, to fix compile with asserts turned on. Sun Apr 01 12:57:06 BST 2007 Richard Boulton * common/safewinsock2.h: Define socklen_t under MS compiler (since Olly reported build success with mingw, presumably it's not needed there). Sun Apr 01 06:42:14 BST 2007 Olly Betts * languages/Makefile.mk: $(snowball_algorithms:.sbl=.cc) is portable according to the automake list so use that so we only need to list the .sbl sources. Sun Apr 01 05:53:29 BST 2007 Olly Betts * common/tcpserver.h,net/tcpserver.cc: TcpServer's port member variable is set but never used so remove it. Sun Apr 01 03:27:30 BST 2007 Olly Betts * bin/Makefile.mk,examples/Makefile.mk: Add $(EXEEXT) to dependency on binaries in man page generation rules so they work on Windows. Sat Mar 31 22:17:55 BST 2007 Olly Betts * common/multimatch.h,matcher/multimatch.cc: When using a MatchDecider with remote database(s), don't rerun the MatchDecider on documents which a remote server has already checked. Sat Mar 31 10:44:26 BST 2007 Olly Betts * tests/harness/backendmanager.cc: Sort out path to xapian-tcpsrv under mingw. If neither HAVE_FORK nor __WIN32__ is defined, make compilation fail with a suitable #error. Sat Mar 31 10:17:06 BST 2007 Olly Betts * api/Makefile,backends/Makefile,backends/flint/Makefile, backends/inmemory/Makefile,backends/multi/Makefile, backends/quartz/Makefile,backends/remote/Makefile,bin/Makefile, common/Makefile,examples/Makefile,getopt/Makefile,include/Makefile, languages/Makefile,matcher/Makefile,net/Makefile, queryparser/Makefile,tests/harness/Makefile: Don't pass $(MAKEFLAGS) on the command line to $(MAKE) when invoking the top level Makefile from a static Makefile. It's passed automatically anyway, and also $(MAKEFLAGS) doesn't have a leading '-' so "make -s" tries to do "make s" at the top level. Sat Mar 31 09:28:06 BST 2007 Olly Betts * tests/api_nodb.cc: Fix end of loop handling. Sat Mar 31 09:03:26 BST 2007 Olly Betts * tests/api_nodb.cc: Fix to compile. Sat Mar 31 07:53:25 BST 2007 Olly Betts * common/safewindows.h,common/safewinsock2.h: safewindows.h is included by a lot of files so we want to keep it lightweight so split winsock2.h related stuff into safewinsock2.h. * common/remoteconnection.h: Move WinsockInitializer here. * common/safeerrno.h: #include "safewinsock2.h" not . Sat Mar 31 07:19:06 BST 2007 Olly Betts * common/remoteserver.h: Stop trying to include "remoteserver.h" because that's the SAME HEADER! Sat Mar 31 07:16:23 BST 2007 Olly Betts * common/tcpclient.h,common/tcpserver.h: Fix comments - the class is called WinsockInitializer not WinsockInitialiser. Sat Mar 31 06:54:22 BST 2007 Olly Betts * net/progclient.cc: Don't compile any code from this file if __WIN32__ is defined (for mingw). Sat Mar 31 06:52:27 BST 2007 Olly Betts * tests/api_nodb.cc: Simplify code in test_stemlangs1(). Sat Mar 31 06:22:26 BST 2007 Olly Betts * net/remoteconnection.cc: Use const_cast to avoid GCC warning about casting away const. Use string::data() rather than string::c_str() since we don't need a terminating zero byte. Sat Mar 31 06:20:07 BST 2007 Olly Betts * backends/dbfactory_remote.cc: Suppress "unused parameter" warnings. Sat Mar 31 06:17:35 BST 2007 Olly Betts * net/tcpserver.cc: Make global variable and function used only in this file static. Don't call delete on a void* (that's undefined behaviour) - delete the cast version of the pointer instead. Sat Mar 31 06:17:20 BST 2007 Olly Betts * AUTHORS: Add a number of bug reporters I missed before. Sat Mar 31 04:49:27 BST 2007 Olly Betts * configure.ac: Clean up handling of --enable-backend-* options. Let mingw try to build the remote backend. Sat Mar 31 03:47:49 BST 2007 Olly Betts * tests/internaltest.cc: Don't compile test_serialisequery1 if the remote backend is disabled to avoid an "unused function" warning (we were already disabling the use of it). Fri Mar 30 22:43:27 BST 2007 Olly Betts * HACKING: Correct several inaccuracies: --enable-debug and --enable-debug=partial don't cause the build system to compile in debugging symbols (configure defaults to adding "-g" for GCC, while for other compilers you must enable them by hand). Also, --enable-debug doesn't "produce warnings", but causes Xapian::AssertionError to be thrown. Add explanation for why --enable-debug=partial" exists. CC_FOR_BUILD is now needed for snowball as well as lemon. Fri Mar 30 19:53:05 BST 2007 Olly Betts * common/utils.cc: Avoid GCC warning on format string "%I64d". Fri Mar 30 16:48:46 BST 2007 Richard Boulton * common/tcpserver.h,net/tcpserver.cc: Patch from Mark Hammond: implement for windows. Fri Mar 30 16:21:03 BST 2007 Richard Boulton * common/tcpclient.h,net/tcpclient.cc: Patch from Mark Hammond: implement for windows. Fri Mar 30 15:52:57 BST 2007 Richard Boulton * tests/harness/backendmanager.cc: Patch from Mark Hammond: implement launcher for tcpserver, so that remotetcp tests can run on windows. Fri Mar 30 15:42:49 BST 2007 Richard Boulton * common/safewindows.h: Include xapian/error.h so WinsockInitialiser can throw an exception. Fri Mar 30 14:59:40 BST 2007 Richard Boulton * More code from Mark Hammond's patch * common/remoteconnection.h: Add explicit destructor and (for windows compiles) a declare a helper method to calculate the number of milliseconds until a timeout. * net/remoteconnection.cc: Implement windows versions for functions which need it: constructor and destructor now do create and close the overlapped IO stuff, read_at_least() and send_message() have windows specific implementations. Fri Mar 30 13:05:27 BST 2007 Richard Boulton * More code adapted from Mark Hammond's patch * common/safewindows.h: When remote databases are compiled in, include the winsock stuff, and define some useful bits and pieces for using it. * common/remoteconnection.h: Add a member to RemoteConnection on windows to hold an overlapped IO structure. * net/progclient.cc: Don't include winsock stuff directly (it's now brought in by "safewindows.h"), and don't include on windows. * net/remoteserver.cc: Ignore more SIGPIPE stuff on windows. Fri Mar 30 12:37:15 BST 2007 Richard Boulton * Patch from Mark Hammond * backends/dbfactory_remote.cc: Ignore code to handle SIGPIPE on windows, where it doesn't exist. * backends/remote/remote-database.cc: Raise UnimplementedError on windows if a progclient backend is requested. Fri Mar 30 12:11:50 BST 2007 Richard Boulton * tests/harness/testsuite.cc: Fix srcdir guessing on windows - search for windows style directory separators, and remove .exe suffix from executable name. Adapted from Mark Hammond's patch. Thu Mar 29 18:32:18 BST 2007 Richard Boulton * Changes related to Mark Hammond's patch: * common/safeerrno.h: Define a new inline function "socket_errno()" which returns an error number relating to the last error caused by a socket function on platforms which make such a distinction, and the value of errno on other platforms. * net/tcpclient.cc,net/tcpserver.cc: Use the socket_errno() function instead of checking the value of errno. Also, check for WSAEWOULDBLOCK instead of EINPROGRESS on windows. Thu Mar 29 15:36:45 BST 2007 Richard Boulton * bin/xapian-tcpsrv.cc,tests/harness/testsuite.cc: First of many parts of a large patch from Mark Hammond working towards enabling remote databases on windows. When displaying errors which might be socket errors, display the error number as well as the output of strerror - on windows, strerror doesn't display useful information for socket errors. * AUTHORS: Add Mark Hammond Thu Mar 29 06:07:35 BST 2007 Olly Betts * api/omqueryinternal.cc: Unserialisation shouldn't reject a serialised query which ends after a termname. * tests/internaltest.cc: Add regression test. Wed Mar 28 17:17:42 BST 2007 Olly Betts * tests/queryparsertest.cc: Add feature tests for "prefer_mdy" and "epoch" arguments of DateValueRangeProcessor. Wed Mar 28 04:52:34 BST 2007 Olly Betts * tests/queryparsertest.cc: Add more test cases for parsing of value ranges. Wed Mar 28 04:18:14 BST 2007 Olly Betts * languages/compiler/generator.c,languages/compiler/header.h, languages/steminternal.cc,languages/steminternal.h: For among with functions (only used by finnish and lovins stemmers currently), change to generating an array of unsigned byte offsets into an array of function pointers rather than just an array of function pointers - this generally requires a lot less space. Wed Mar 28 03:28:37 BST 2007 Olly Betts * queryparser/queryparser.lemony: Fix parsing of `hello a..b'. * tests/queryparsertest.cc: Add regression test for above. Refactor qp_value_range1 to use a table of queries. Wed Mar 28 00:35:50 BST 2007 Olly Betts * languages: Update svn:ignore for recent romanian changes. Wed Mar 28 00:08:11 BST 2007 Olly Betts * api/valuerangeproc.cc: Need #include for snprintf or sprintf. Tue Mar 27 23:53:18 BST 2007 Olly Betts * queryparser/queryparser.lemony: Fix infinite loop in value range processing. Fix value range to work as a filter when used with a probabilistic query. * tests/queryparsertest.cc: Add regression tests for the above two issues. Refactor qp_value_range2 to use a table of queries. Tue Mar 27 22:09:57 BST 2007 Olly Betts * api/valuerangeproc.cc: Assume that the start date is before the end date to help decide ambiguous cases. Tue Mar 27 21:49:15 BST 2007 Olly Betts * api/valuerangeproc.cc: Refactor to simplify and reduce duplication. Tue Mar 27 21:41:38 BST 2007 Olly Betts * configure.ac: datarootdir is new in 2.60 too, so use datadir when setting docdir for 2.59. Tue Mar 27 18:39:11 BST 2007 Olly Betts * api/Makefile.mk,api/valuerangeproc.cc,include/xapian/queryparser.h: Move NumberValueRangeProcessor::operator()() out of the header as it's too complex for sane inlining. Implement handling of dmy and mdy dates and epochs for 2 digit years. * tests/queryparsertest.cc: Add tests. Tue Mar 27 11:57:53 BST 2007 Richard Boulton * languages/romanian.sbl: Add Martin Porter's new romanian stemming algorithm. * languages/romanian1.sbl,langauges/romanian2.sbl: Remove old romanian stemming algorithms. * languages/Makefile.mk: Replace romanian1 and romanian2 by romanian. * languages/stem.cc: Use romanian stemmer when asked for "ro" or "romanian". No longer give a stemmer for "romanian1" or "romanian2". Tue Mar 27 04:50:36 BST 2007 Olly Betts * languages/german2.sbl: Copy over "hop 3" in utf-8 case from snowball's latest version. Tue Mar 27 04:44:52 BST 2007 Olly Betts * tests/stemtest.cc: Remove lower casing of dictionary words before stemming - instead we'll make sure the dictionary is already the right case. Tue Mar 27 04:28:10 BST 2007 Olly Betts * languages/compiler/analyser.c,languages/compiler/generator.c, languages/compiler/header.h,languages/steminternal.cc, languages/steminternal.h: Add handling of among with functions. We use a "shim" functions for each method we want to call in this way. The shim function is passed the "this" pointer and calls a particular method on this. Split the functions into an optional separate array, since they're not used by most of the stemming algorithms. * languages/Makefile.mk,languages/stem.cc: Enable the finnish and lovins stemmers. Tue Mar 27 04:24:37 BST 2007 Olly Betts * languages/steminternal.cc: Fix typo bug in slice_to - if we needed to increase the capacity of a snowball string variable, we trashed the variable with p (bug discovered while trying to enable the finnish stemmer). Tue Mar 27 02:55:51 BST 2007 Olly Betts * include/xapian/queryparser.h: Implement handling of ISO format dates in DateValueRangeProcessor. * tests/queryparsertest.cc: Add feature tests. Tue Mar 27 01:47:36 BST 2007 Olly Betts * include/xapian/queryparser.h: Implement prefix and suffix handling for NumberValueRangeProcessor. * tests/queryparsertest.cc: Add feature tests. Mon Mar 26 22:26:48 BST 2007 Olly Betts * queryparser/utf8itor.h: Add is_currency() predicate function. * queryparser/queryparser.lemony: Rejig parsing of RANGE_START to allow all characters which are likely to be required. * tests/queryparsertest.cc: Test RANGE_START can contain "/". * queryparser/queryparser.lemony: Set "syntax=yacc" for vim, which give fairly decent syntax highlighting. Mon Mar 26 15:43:50 BST 2007 Olly Betts * configure.ac: Use m4 comments not shell (dnl not #). Mon Mar 26 15:41:41 BST 2007 Olly Betts * configure.ac: Add code to ensure that docdir is set for autoconf 2.59 (starting from 2.60, it is defined as standard). * docs/Makefile.am: Use docdir for installing docs. Sun Mar 25 15:41:16 BST 2007 Olly Betts * bin/xapian-compact.cc: Prune unused docids off the start of each source database's range of docid. Sat Mar 24 23:07:42 GMT 2007 Olly Betts * include/xapian/base.h: Add a note explaining why it's OK that RefCntBase doesn't have a virtual destructor. Sat Mar 24 01:30:17 GMT 2007 Olly Betts * HACKING,configure.ac: Bump the automake required version to 1.9.5. It was in Debian sarge, so any modern Linux distro should include packages, and we've actually been bootstrapping with 1.9.6 for ages. Thu Mar 22 00:53:35 GMT 2007 Olly Betts * configure.ac: Disable probes for f77 more completely by preventing the probe code from even appearing in configure. Similarly eliminate the code for gcj and rc probes - in total these changes reduce the size of configure by 209KB (~25%). Fri Mar 09 14:28:01 GMT 2007 Richard Boulton * Makefile.am: Add include/xapian/error.h to list of headers to install. Thu Mar 08 17:16:08 GMT 2007 Richard Boulton * generate-exceptions.in,exception_data.pm: Split definitions of the exception hierarchy into a separate file, so it can be reused elsewhere. * Makefile.am: Add exception_data.pm as a dependency for generating error.h, and add it to EXTRA_DIST. Fri Mar 09 06:42:40 GMT 2007 Olly Betts * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: We always ignore the return value from FlintCursor::get_key() because we only call it when it shouldn't fail, so restructure the code so it can't fail and change the return value to void. Fri Mar 09 06:33:09 GMT 2007 Olly Betts * configure.ac: Suppress another aCC warning. Thu Mar 08 20:39:46 GMT 2007 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow arbitrary characters in a range end (anything except whitespace and ')'). Thu Mar 08 19:46:46 GMT 2007 Olly Betts * Makefile.am,languages/Makefile.mk: Depend on the autoconf substituted version of a script, not the template version. The only thing we substitute is @PERL@, but configure won't update a substituted file which hasn't changed so it's better to put the dependency on the script itself where it belongs. Thu Mar 08 17:09:21 GMT 2007 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: Keep any non-whitespace, non-term prefix for a term in case it turns out to be the start of a range, so "$50..100" works. Thu Mar 08 16:21:14 GMT 2007 Olly Betts * HACKING: Add my "create docs/GNUmakefile" trick to avoid doxygen delays. Thu Mar 08 16:13:39 GMT 2007 Olly Betts * HACKING: A few more coding guidelines. Thu Mar 08 14:26:21 GMT 2007 Richard Boulton * HACKING: Adjust wording to indicate that the build system is indended not to break after SVN updates. Thu Mar 08 07:34:22 GMT 2007 Olly Betts * include/xapian/queryparser.h,tests/queryparsertest.cc: Add simple implementations of DateValueRangeProcessor and NumberValueRangeProcessor and add qp_value_range2 to check that chaining ValueRangeProcessor subclasses works as intended. Thu Mar 08 06:06:15 GMT 2007 Olly Betts * docs/overview.html: Fix links to error classes in generated API documentation. Thu Mar 08 05:37:13 GMT 2007 Olly Betts * include/xapian/queryparser.h,queryparser/queryparser.cc, queryparser/queryparser.lemony,queryparser/queryparser_internal.h, tests/queryparsertest.cc: Add the ability to parse "value ranges" to the QueryParser (e.g. "10..50") which translate into a Query with operator OP_VALUE_RANGE. Thu Mar 08 04:27:54 GMT 2007 Olly Betts * include/xapian/queryparser.h,queryparser/queryparser.cc: Remove QueryParser::set_stemming_options() which has been deprecated since 0.9.0. Thu Mar 08 03:37:07 GMT 2007 Olly Betts * backends/flint/flint_lock.cc: Handle write failing to send a single byte down down the pipe to tell the parent we've got the lock (a potential bug noticed by _FORTIFY_SOURCE!) Handle read() failing with an unexpected error on the parent side by failing the lock attempt rather than risking an infinite loop. Thu Mar 08 02:52:26 GMT 2007 Olly Betts * include/xapian/types.h: Rewritten, with more accurate documentation comments. Add constant Xapian::BAD_VALUENO which is -1 cast to Xapian::valueno. * api/omenquire.cc,include/xapian/enquire.h,matcher/multimatch.cc: Use Xapian::BAD_VALUENO instead of Xapian::valueno(-1). Thu Mar 08 01:47:08 GMT 2007 Olly Betts * docs/Makefile.am: Try putting apidoc/html in EXTRA_DIST instead of using dist-hook. Wed Mar 07 23:16:52 GMT 2007 Olly Betts * docs/Makefile.am: Stop shipping docs/apidoc/latex/* in the xapian-core tarballs since it's just useless bloat. Removing it more than halves the size of the tarball (55% reduction!) Wed Mar 07 22:07:31 GMT 2007 Olly Betts * tests/runtest.in: If we aren't using valgrind, turn on MALLOC_CHECK_ and MALLOC_PERTURB_ for glibc. Wed Mar 07 20:02:31 GMT 2007 Olly Betts * INSTALL: CVS -> SVN. Wed Mar 07 20:00:37 GMT 2007 Olly Betts * configure.ac: Define _FORTIFY_SOURCE in config.h if GCC is in use and it's not already set. That way the user can easily override. * INSTALL: Document this. Wed Mar 07 19:53:15 GMT 2007 Olly Betts * INSTALL: Remove reference to muscat36 backend. Wed Mar 07 17:37:07 GMT 2007 Olly Betts * configure.ac: Note GCC and glibc versions needed for _FORTIFY_SOURCE support. Wed Mar 07 16:29:02 GMT 2007 Olly Betts * queryparser/lemon.c: Increase the length allowed for the filename in an error message, as it was being truncated which makes for a confusing error message and stops editors jumping to the line with the error in. Wed Mar 07 15:57:15 GMT 2007 Olly Betts * common/Makefile.mk: Ship common/msvc_posix_wrapper.h and common/msvc_posix_wrapper.cc. Wed Mar 07 10:01:31 GMT 2007 Richard Boulton * configure.ac: Add -D_FORTIFY_SOURCE to AM_CXXFLAGS for GCC builds. According to glibc CVS support for this was added in October 2004, but it doesn't seem to be documented very well, other than in features.h. This adds some extra checking for array bounds, partially at compile time, but doesn't currently find any problems (or cause any noticeable slowdown). Wed Mar 07 04:49:01 GMT 2007 Olly Betts * api/omqueryinternal.cc: Include str_parameter in swap() and the copy constructor. * tests/api_anydb.cc: get_mset(0, 20) not get_mset(1, 20)! Also check that we didn't miss any documents which should match the filter, not just that we didn't get any documents which shouldn't. Wed Mar 07 03:07:49 GMT 2007 Olly Betts * tests/harness/unixcmds.h: Fixed reverse sense include guard test. * tests/api_db.cc: Still need #include "utils.h". * tests/harness/backendmanager.cc: Update for rmdir.h -> unixcmds.h and rmdir() -> rm_rf(). Wed Mar 07 02:22:30 GMT 2007 Olly Betts * backends/quartz/btree.cc,backends/quartz/quartz_database.cc, backends/quartz/quartz_log.cc,common/utils.h,net/remoteconnection.cc, net/tcpclient.cc,tests/api_db.cc,tests/btreetest.cc,tests/harness/, tests/quartztest.cc: Rename rmdir() to rm_rf() since it does the same as "rm -rf" not "rmdir". The "touch()" function is only used in the testsuite so move it from common/utils.h into tests/harness/rmdir.cc and rename rmdir.cc to unixcmds.cc. common/utils.h no longer include safefcntl.h, so add explicit includes to the files which were previous relying on utils.h pulling it in. Wed Mar 07 02:21:18 GMT 2007 Olly Betts * xapian.spec.in: Include ChangeLog.examples. Wed Mar 07 02:17:59 GMT 2007 Olly Betts * docs/index.html,docs/internals.html: Create a separate index page for the "internal" documentation. Tue Mar 06 23:47:58 GMT 2007 Olly Betts * common/utils.cc,common/utils.h: Remove map_string_to_value() which is no longer used. * common/utils.h: Remove prototype for rmdir() which I failed to remove with the earlier commit. Tue Mar 06 22:51:51 GMT 2007 Olly Betts * tests/harness/rmdir.cc: Fix rmdir() on Unix to not be O(n^2) in the worst case. Tue Mar 06 22:46:30 GMT 2007 Olly Betts * docs/Makefile.am: Use the "inline test || echo" idiom to merge the VPATH and non-VPATH cases for distributing and installing the HTML apidocs. Tue Mar 06 22:13:03 GMT 2007 Olly Betts * api/omqueryinternal.cc: Fix Query::get_description() on an OP_VALUE_RANGE query. Tue Mar 06 09:03:33 GMT 2007 Richard Boulton * HACKING: Note on running preautoreconf and autoreconf to keep SVN builds working. * PLATFORMS: Update with success reports for windows builds. Tue Mar 06 01:57:23 GMT 2007 Olly Betts * tests/internaltest.cc: Comment out the "unsigned long long" testcase in tostring1 since the library doesn't currently have (or need) the utility function for that case. Tue Mar 06 01:49:55 GMT 2007 Olly Betts * common/utils.cc,tests/btreetest.cc,tests/harness/, tests/quartztest.cc: rmdir() is only used in the test suite, and not in the library code, so move it into the testsuite. Also, bow out early if the pathname passed is empty, and on Unix protect against filenames which start with "-". Mon Mar 05 02:52:49 GMT 2007 Olly Betts * configure.ac: Suppress more unhelpful aCC warnings. Mon Mar 05 02:15:29 GMT 2007 Olly Betts * tests/internaltest.cc: Add testcase autoptr1 which tests that an autoptr correctly handles self-assignment. Mon Mar 05 02:05:53 GMT 2007 Olly Betts * tests/internaltest.cc: Rename "omtostring1" to "tostring1" (we don't want to perpetuate references to "om"!) Add more test cases to this test. Mon Mar 05 01:18:17 GMT 2007 Olly Betts * configure.ac: Update in line with 0.9.10. Sun Mar 04 23:58:29 GMT 2007 Olly Betts * AUTHORS: Add reporters of bugs fixed in 0.9.10 to the "thanks" list. Sun Mar 04 00:44:17 GMT 2007 Olly Betts * api/errorhandler.cc,include/xapian/errorhandler.h: Move virtual dtor for ErrorHandler out of the header. Same reasons as previous commit. Sun Mar 04 00:40:44 GMT 2007 Olly Betts * api/omenquire.cc,include/xapian/enquire.h,matcher/Makefile.mk, matcher/weight.cc: Move virtual method definitions out of headers for MatchDecider, ExpandDecider, Weight, BoolWeight. This fixes warnings from aCC, and it's rare that the compiler would be able to inline a virtual method anyway. Sat Mar 03 21:40:43 GMT 2007 Olly Betts * configure.ac: For HP's aCC, we no longer need to suppress warning #336 (empty translation unit) since dummy.cc is history. But we do want to suppress a couple of frequently reported "remarks" which are unavoidable and don't indicate a problem. Experimentally, add "+wlint" for "link-like" warnings. Sat Mar 03 21:38:52 GMT 2007 Olly Betts * include/xapian.h,include/xapian/version_h.cc: Move function prototypes into a non-generated header. * configure.ac,msvc/version.h.in: Generate version.h suitable for use with MSVC. * Makefile.am: Distribute msvc/version.h. Sat Mar 03 19:49:11 GMT 2007 Olly Betts * tests/harness/backendmanager.cc: Rework how we start and handle xapian-tcpsrv - it's now started by exec from a child process. This means that the mechanism to try higher port numbers works reliably, and we no longer leak file descriptors (which was causing tests to fail on some platforms). Sat Mar 03 19:46:03 GMT 2007 Olly Betts * bin/xapian-tcpsrv.cc: Put "e.get_errno()" in a variable for clearer code. Sat Mar 03 16:01:17 GMT 2007 Olly Betts * common/msvc_posix_wrapper.cc: Change `#include ' to `#include "safefcntl.h"' (currently makes no difference on Windows, but it's more consistent to always use the safeXXX headers). * common/msvc_posix_wrapper.cc: Merge two ECHILD cases. * common/msvc_posix_wrapper.cc: Make sure dwCreationDisposition is initialised even if flags has a bogus value. * common/msvc_posix_wrapper.cc: Be consistent and always use O_CREAT, etc, instead of sometimes using the MS alternative forms _O_CREAT, etc. Sat Mar 03 03:25:05 GMT 2007 Olly Betts * generate-exceptions.in: The GCC visibility docs aren't clear whether you need to make *thrown* exception types visible, or also *caught* exception types. But I've just been having odd problems catching Xapian::DocNotFoundError with "const Xapian::Error &", so let's mark the exception virtual baseclass Xapian::Error as visible too. Fri Mar 02 22:34:04 GMT 2007 Olly Betts * languages/Makefile.mk,languages/generate-allsnowballheaders.in: Convert unreadable make rule for generating allsnowballheaders.h to a perl script. * configure.ac: Substitute languages/allsnowballheaders. Fri Mar 02 14:31:11 GMT 2007 Richard Boulton * tests/internaltest.cc: Add a test for om_tostring(), mainly aimed at 64 bit types on windows platforms. Mingw builds report a warning in this code, which merits further investigation - see Bug #112 for details. Fri Mar 02 14:15:44 GMT 2007 Richard Boulton * common/msvc_posix_wrapper.cc: Improve accuracy of emulation of posix open, and fix a bug which caused it to misinterpret the "flags" argument - files were always being opened for writing: O_RDONLY is 0, so the old test (flags & O_RDONLY) always failed. Fri Mar 02 12:44:33 GMT 2007 Richard Boulton * common/msvc_posix_wrapper.cc: Fix whitespace issues. Fri Mar 02 12:18:42 GMT 2007 Richard Boulton * HACKING: Add note about how to generate ChangeLog timestamps using the unix date command - and I've started generating them in the same format as Olly is. (I hope.) Fri Mar 2 11:49:11 GMT 2007 Richard Boulton * common/msvc_posix_wrapper.h,common/safeerrno.h, common/msvc_posix_wrapper.cc,backends/quartz/btree.cc, backends/flint/flint_table.cc,backends/flint/flint_btreebase.cc: Move MSVC specific code for opening files into msvc_posix_wrapper.cc, and just leave a few conditional includes and function calls elsewhere. Thu Mar 01 22:51:42 GMT 2007 Olly Betts * queryparser/queryparser.lemony: Add casts to U_isupper(), etc to suppress warnings from aCC. * queryparser/queryparser.lemony: Use U_isdigit() instead of C_isdigit(), etc - the truncation to a char can cause false positives. * tests/queryparsertest.cc: Add a (rather contrived) regression test for the above change. Thu Mar 01 21:49:37 GMT 2007 Olly Betts * queryparser/utf8itor.h: Add cast to suppress warning from aCC. Thu Mar 1 15:27:09 GMT 2007 Richard Boulton * common/utils.c,common/utils.h: For windows, add an om_tostring() function for 64 bit integers: time() and GetProcessId() return these, and without this, backends/quartz/quartz_log.cc reports an error. Thu Mar 1 13:48:46 GMT 2007 Richard Boulton * queryparser/queryparser.lemony: Fix handling of hated wildcards which don't expand to any terms. Thu Mar 1 13:45:04 GMT 2007 Richard Boulton * tests/queryparsertest.cc: Fix last two test cases for hated wildcards to check for exactly what should be returned. Thu Mar 1 12:02:04 GMT 2007 Richard Boulton * common/safeerrno.h: Some of Microsoft's C++ compiler versions earlier than 2005 do not have _set_errno, so #define it in this case. Thu Mar 01 04:28:23 GMT 2007 Olly Betts * backends/quartz/btree.h: Correct comment ("read" -> "write"). Thu Mar 01 04:21:52 GMT 2007 Olly Betts * backends/flint/flint_table.h: Correct comment ("read" -> "write"). Thu Mar 01 01:30:02 GMT 2007 Olly Betts * tests/queryparsertest.cc: Add some test cases for hated wildcards which don't expand to any terms. Thu Mar 01 01:21:42 GMT 2007 Olly Betts * api/omqueryinternal.cc: Complete truncated comment. Prefer preincrement to postincrement. Wed Feb 28 20:13:35 GMT 2007 Olly Betts * api/omdocument.cc: Really tweak OmDocumentTerm::add_position() so that adding position 0 to an empty termlist takes the shortcut. Wed Feb 28 15:04:25 GMT 2007 Olly Betts * common/safeerrno.h: Correct to "safeerrno.h" in message in #error directive. Wed Feb 28 14:59:29 GMT 2007 Olly Betts * include/xapian/query.h: Removed documentation comment for Xapian::Query::Internal which is no longer relevant (Query objects are now immutable once constructed, so parameters can no longer be set separately). Wed Feb 28 02:42:31 GMT 2007 Olly Betts * api/omqueryinternal.cc: Add support for serialising OP_VALUE_RANGE queries. Add support for OP_VALUE_RANGE queries to Query::get_description(). If an OP_VALUE_RANGE query has a start bound strictly greater than its end bound, simplify it by knowing that it can't match anything. * common/remoteprotocol.h,docs/remote_protocol.html: Bump remote protocol version to 24. Wed Feb 28 01:15:00 GMT 2007 Olly Betts * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h, matcher/: Add new Query operator OP_VALUE_RANGE which allows a query to be filtered by checking if a value lies between two limits. * tests/api_anydb.cc: Add feature test valuerange1. Wed Feb 28 01:07:53 GMT 2007 Olly Betts * tests/harness/testsuite.cc: Only hook the testsuite into valgrind if env var XAPIAN_TESTSUITE_VALGRIND is set, to make it simple to run a test program under valgrind normally. * tests/runtest.in: Set XAPIAN_TESTSUITE_VALGRIND if automatically running a test program under valgrind. Tue Feb 27 23:51:34 GMT 2007 Olly Betts * tests/Makefile.am: Turn subdir-objects back on here so that the harness objects end up in the harness subdirectory. Tue Feb 27 22:45:04 GMT 2007 Olly Betts * examples/delve.cc: Rename "-k" to "-V" since "keys" were renamed to "values" long ago. Keep "-k" as an alias for now, but don't advertise it. Add handling so "-V3" shows value #3 for every document in the database. Tue Feb 27 21:35:35 GMT 2007 Olly Betts * tests/Makefile.am,tests/remotetest.cc: Get rid of remotetest since it no longer does anything. Tue Feb 27 21:28:28 GMT 2007 Olly Betts * tests/api_db.cc,tests/remotetest.cc: Move netstats1 from remotetest to apitest. It will now run for "remotetcp" as well as "remote". Tue Feb 27 21:27:17 GMT 2007 Olly Betts * tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Inline trivial getter and setter methods in the header. Make getter method const. Tue Feb 27 20:22:58 GMT 2007 Olly Betts * examples/delve.cc: Change to not stem terms by default. Add "-s/--stemmer" option to allow a stemmer to be specified. Tue Feb 27 17:50:13 GMT 2007 Olly Betts * backends/flint/flint_table.cc: Test revision_supplied rather than revision_ so that behaviour matches comments. Tue Feb 27 16:58:56 GMT 2007 Richard Boulton * tests/api_wrdb.cc: Enhance crashrecovery1 to check that the readers reference a database with the expected number of documents. This checks that the base files which were removed were the correct ones to leave the current database valid. Tue Feb 27 16:54:31 GMT 2007 Richard Boulton * backends/quartz/btree.cc,backends/quartz/btree.h, backends/quartz/quartz_database.cc: Apply fix for opening databases while under heavy modification to quartz, using Olly's attachment to bug #108: http://www.xapian.org/cgi-bin/bugzilla/attachment.cgi?id=43 Verified with loadtest that this resolves the issue. Tue Feb 27 13:12:31 GMT 2007 Olly Betts * tests/harness/backendmanager.h: Add get_dbtype() method to allow the current backend type to be read. * tests/apitest.cc,tests/apitest.h: Add get_dbtype() function to allow BackendManager::get_dbtype() to be called by tests. * tests/api_wrdb.cc: Add new test crashrecovery1 to verify that the backend can recover from the latest revision missing some of the base files. Tue Feb 27 12:45:00 GMT 2007 Olly Betts * tests/harness/backendmanager.cc: Fix how we start xapian-progsrv when running under valgrind. Tue Feb 27 11:34:22 GMT 2007 Olly Betts * backends/flint/flint_database.cc: Remove the old throw for DatabaseOpeningError so the new throw for DatabaseModifiedError will actually be used. Tue Feb 27 09:22:52 GMT 2007 Richard Boulton * flint_table.cc,flint_table.h,flint_database.cc: If a database is being frequently modified (ie, transactions committed extremely frequently), flint can fail open all the tables at a consistent revision on the first attempt. The code to handle this in flint_database.cc was not firing because flint_table.cc was reporting all failures to open a table for reading by throwing an exception. This commit changes flint_table.cc to report failure to open at a specific revision by returning false. In addition, there was a bug in flint_database.cc which caused the attempts to re-try opening a database in this situation to fail. This is now fixed. Finally, flint_database.cc now throws a DatabaseModified error if 100 attempts to reopen the database fail because of continual modifications - previously, it would have thrown a DatabaseOpening error. There is no easy regression test - but my "loadtest.cc" program attached to bug #108 shows the problem (if you comment out the code which ignores DatabaseOpeningErrors). Tue Feb 27 01:25:00 GMT 2007 Olly Betts * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Need to define DOXYGEN so that the previous change to the generated errordispatch.h works. Remove obsolete macros from EXPAND_AS_DEFINED and PREDEFINED. * docs/doxygen_full_conf.in: Increase MAX_DOT_GRAPH_WIDTH from 800 to 1024 to match doxygen_api_conf.in. Tue Feb 27 00:41:47 GMT 2007 Olly Betts * matcher/multimatch.cc: Fix warning with SGI's CC. Tue Feb 27 00:35:06 GMT 2007 Olly Betts * generate-exceptions.in: Wrap errordispatch.h in "#ifndef DOXYGEN" and "#endif" because doxygen gets confused by a header full of code. Mon Feb 26 21:53:41 GMT 2007 Olly Betts * tests/findheaders.pl: Remove long unused perl script. Mon Feb 26 19:23:50 GMT 2007 Richard Boulton * tests/api_wrdb.c: test_emptyterm2 used to delete a writable database whilst the database was open. Unfortunately, this doesn't work on windows (and it doesn't seem to be easy to make it work), so this patch changes the test to close each database before opening the next writable database at the same path. Fortunately, this seems to be the only test which behaves like this. Also, added a note to the win32 README file to document this restriction. Mon Feb 26 19:19:34 GMT 2007 Richard Boulton * docs/Makefile.am: touch apidoc/html/index.html after apidoc.pdf is created so that make doesn't attempt to regenerate it due to the dependency of apidoc/html/index.html on apidoc.pdf. Similarly for sourcedoc/html/index.html. Mon Feb 26 18:36:22 GMT 2007 Olly Betts * tests/harness/backendmanager.cc: Indent with tabs not spaces. * tests/harness/index_utils.cc: Add missing space after "if"; prefer "X.empty()" to "X.size() == 0". Mon Feb 26 16:10:31 GMT 2007 Richard Boulton * tests/harness/index_utils.cc,tests/harness/backendmanager.cc: Fix for windows: windows file handling seems to have a bug causing end of file conditions in ifstream to be missed. As a result, an empty string was being returned from the get_paragraph function in the test harness, resulting in an out-of-bounds error when generating a value from the paragraph. Add a check that the paragraph returned isn't empty, and return an empty document if it is. Then, check for empty documents (ie, contain some terms) before adding them to the test database. Mon Feb 26 16:05:07 GMT 2007 Richard Boulton * backends/quartz/btree_base.cc,backends/flint/flint_btreebase.cc: Fix for windows: string append method with a pointer and length causes a segfault-type error on windows if the pointer is NULL, even if the length is also 0. Check for this case when appending the bitmap to the base block, since a NULL pointer is passed for an empty bitmap when a new database is being created. Also, initialise the bit_map0 and bitmap members to 0 in the FlintTable_base constructor which takes a string and a char argument - they had been omitted from this and were only being initialised by the constructor which takes no argument. This didn't seem to be having any negative effect, but doing it makes the code neater. Sun Feb 25 23:21:11 GMT 2007 Olly Betts * backends/inmemory/inmemory_database.cc: Create the RefCntPtr to this as an explicit variable to make the code more readable. Sun Feb 25 19:20:33 GMT 2007 Olly Betts * matcher/multimatch.cc: Fix inconsistent ordering between pages with set_sort_by_value_then_relevance (fixes bug#110). * tests/api_wrdb.cc: Enabled test consistency2. Sun Feb 25 17:28:09 GMT 2007 Olly Betts * matcher/: Also apply the "decreasing weights with remote database" optimisations which we use in the sort_by_relevance case in the sort_by_relevance_then_value case. Sat Feb 24 19:35:41 GMT 2007 Olly Betts * backends/inmemory/inmemory_database.cc: If replace_document is used to set the docid of a newly added document which has previously existed, then we need to mark that document as valid (caught by existing test replacedoc4 in a debug build). Sat Feb 24 17:11:22 GMT 2007 Olly Betts * tests/api_wrdb.cc: Add regression test consistency2 for bug#110 (currently skipped since the bug isn't fixed yet). Thu Feb 22 15:18:53 GMT 2007 Olly Betts * configure.ac: Add proper detection for SGI's C++ (check stderr output of "CC -v"). Automatically pass -ptused in CXXFLAGS for xapian-core and any applications using xapian-config --cxxflags since it seems to be required to avoid template linking errors. Thu Feb 22 09:04:30 GMT 2007 Olly Betts * docs/Makefile.am: Ship generated RSTHTML files. Wed Feb 21 19:01:06 GMT 2007 Olly Betts * languages/turkish.sbl: Make some simplifications to the code of the turkish stemmer. Wed Feb 21 19:00:11 GMT 2007 Olly Betts * languages/Makefile.mk,languages/stem.cc,languages/turkish.sbl: Add turkish stemmer. Wed Feb 21 18:55:03 GMT 2007 Olly Betts * languages/compiler/generator.c: Number m_test and c_test variables to avoid variable shadowing warnings. Wed Feb 21 18:07:50 GMT 2007 Olly Betts * languages/compiler/generator.c: Remove duplicate copy of function resulting from ham-fisted reverting and applying of patches. Wed Feb 21 18:03:12 GMT 2007 Olly Betts * languages/compiler/generator.c,languages/compiler/header.h: Number mlimit variables to avoid variable shadowing warnings. * languages/compiler/generator.c: Use "if (foo() == -1) return -1;" which avoids a temporary variable (improving readability of generated code) and producing very slightly faster code. * languages/compiler/header.h: Use "#ifdef DISABLE_JAVA" around Java generator specific struct members and prototypes. Wed Feb 21 17:47:13 GMT 2007 Olly Betts * languages/compiler/generator.c: Add "~C" comments to generated source for more operations. Tue Feb 20 20:24:30 GMT 2007 Olly Betts * backends/flint/flint_table.cc,backends/quartz/btree.cc: Ensure both_bases is set to false if we don't have both bases when opening a table using an existing object. Tue Feb 20 15:57:05 GMT 2007 Olly Betts * preautoreconf: Fix to handle generating dependencies on generated objects, at least for the "checked out tree from SVN" case. Fixing this fully is trickier, but currently this is stopped snapshots from bootstrapping. Tue Feb 20 14:28:02 GMT 2007 Charlie Hull * backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc, backends/quartz/btree.cc: Use MS Windows API calls to delete files and open files we might want to delete while they are still open (i.e. the flint and quartz btree base files). This fixes a problem when a writer can't discard an old revision at the exact moment a reader is opening it (bug #108). Tue Feb 20 14:13:43 GMT 2007 Richard Boulton * .: Add generate-exceptions to svn:ignore property. Tue Feb 20 13:36:27 GMT 2007 Olly Betts * generate-exceptions.in: Add missing '}' to close 'namespace Xapian' in generated header 'xapian/error.h'. Tue Feb 20 13:26:19 GMT 2007 Olly Betts * Makefile.am: Put generated exception headers in BUILT_SOURCES. Tue Feb 20 12:10:18 GMT 2007 Olly Betts * Makefile.am,configure.ac,generate-exceptions.in,include/Makefile.mk, include/xapian/error.h,include/xapian/errortypes.h,net/serialise.cc: Replace macro gymnastics with errortypes.h by a perl script which generates the headers we require. It's more flexible, and easier to get doxygen to generate documentation from. * queryparser/queryparser.cc,tests/queryparsertest.cc: Throw new Error subclass QueryParserError instead of throwing const char * (fixes bug#101). Tue Feb 20 10:37:54 GMT 2007 Olly Betts * languages/steminternal.cc: p is never NULL once the class is successfully constructed, so just use Assert() to confirm this. Tue Feb 20 10:29:25 GMT 2007 Olly Betts * queryparser/lemon.c: Fix compiler warnings. Mon Feb 19 18:50:12 GMT 2007 Olly Betts * common/serialise-double.cc,net/remoteconnection.cc: Throw NetworkError rather than InternalError for invalid data received over the remote protocol. Mon Feb 19 18:12:21 GMT 2007 Olly Betts * tests/internaltest.cc: Just disable serialisequery1 if the remote backend is disabled, like we do for serialiselength1 and serialisedoc1 rather than assuming InternalError is due to the code being disabled. Mon Feb 19 09:48:02 GMT 2007 Olly Betts * docs/Makefile.am,docs/XapianAdminNotes.txt,docs/admin_notes.rst: Generated file "XapianAdminNotes.html" doesn't fit the naming conventions of other files at all, so renamed to "admin_notes.html". Rename the source to ".rst" so we can use an implicit rule for the conversion, in anticipation of other documentation in ReST format. Mon Feb 19 09:10:48 GMT 2007 Olly Betts * docs/Makefile.am: Fix typos which stopped parallel make from working correctly in "docs" subdirectory. Sun Feb 18 22:36:46 GMT 2007 Olly Betts * common/Makefile.mk,common/omstringstream.h,common/output.h, include/Makefile.mk,include/xapian/output.h: Move "" to being an internal header in "common/" since it hasn't been included by "" since 0.7.0. Sun Feb 18 22:18:33 GMT 2007 Olly Betts * include/xapian/dbfactory.h: Add documentation comment for the "prog" form of Remote::open_writable(). Sun Feb 18 19:31:20 GMT 2007 Olly Betts * tests/queryparsertest.cc: Add test for "associative NEAR". Sun Feb 18 18:27:40 GMT 2007 Olly Betts * tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Merge BackendManager::change_names_to_paths() into index_files_to_database() and make the latter a method of class BackendManager. * tests/harness/backendmanager.cc: Remove mention of muscat36 backends from error message listing valid backends. * tests/harness/backendmanager.h: Comment out prototypes for currently disabled methods getdb_inmemoryerr, getwritedb_inmemory, etc. Sat Feb 17 15:38:05 GMT 2007 Olly Betts * backends/flint/flint_table.cc: new throws if allocation fails so we don't need to check the return value. Sat Feb 17 02:08:22 GMT 2007 Richard Boulton * backends/flint/flint_table.cc: Fix memory double-frees if FlintTable::close() is called twice on a table (without an open() being called in between). This was happening after a transaction failed when the table was next opened. * backends/quartz/btree.cc: Fix double-frees, similarly. Fri Feb 16 20:11:13 GMT 2007 Olly Betts * languages/compiler/generator.c: Add missing "~Z" for compatibility with C code generation (which we don't use for Xapian). Fri Feb 16 19:51:26 GMT 2007 Olly Betts * queryparser/tclUniData.h,queryparser/utf8itor.h: The tcl unicode routines only have tables for characters in the BMP. For other characters, assume they're word characters, but can't be forced to lowercase. Fri Feb 16 19:26:00 GMT 2007 Olly Betts * queryparser/utf8itor.cc: Fix bug in decoding of 4 byte utf-8 sequences - the returned value was 0x400000 too large! Thu Feb 15 19:37:26 GMT 2007 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: Keep embedded apostrophe's in terms rather than generating a phrase search for them. Thu Feb 15 18:42:49 GMT 2007 Olly Betts * languages/compiler/generator.c,languages/steminternal.cc, languages/steminternal.h: Tweak the "grouping" functions to allow skipping past multiple occurences and use this to implement "goto" or "gopast" followed by a grouping or "non" grouping more efficiently. Thu Feb 15 17:57:43 GMT 2007 Olly Betts * languages/compiler/generator.c,languages/steminternal.cc, languages/steminternal.h: Inline lose_s(). Since lose_s() checks if p is NULL, remove checks prior to calling lose_s(). * languages/steminternal.h: Cast from symbol * to int * via void * to try to suppress over-eager warnings about alignment. Thu Feb 15 12:43:04 GMT 2007 Olly Betts * languages/stem.cc: Add support for two letter ISO 639 codes. Thu Feb 15 10:40:40 GMT 2007 Olly Betts * docs/Makefile.am: Don't try to ship mkdoc.pl. Thu Feb 15 09:58:48 GMT 2007 Olly Betts * docs/gen_codestructure_doc.in: Fix to work in a VPATH build. Thu Feb 15 09:54:55 GMT 2007 Olly Betts * languages/compiler/generator.c: Fix Stem::get_description() to return the right string. Thu Feb 15 09:44:54 GMT 2007 Olly Betts * docs/gen_codestructure_doc.in: Add links to viewvcs on svn.xapian.org. Thu Feb 15 09:26:07 GMT 2007 Olly Betts * configure.ac,docs/Makefile.am,docs/gen_codestructure_doc.in, docs/mkdoc.pl,preautoreconf: Rework how code_structure.html is generated. Nicer output, and the html document is now regenerated if any of the dir_contents files change. Thu Feb 15 07:43:39 GMT 2007 Olly Betts * Makefile.am,bin/Makefile.mk,configure.ac,examples/Makefile.mk, makemanpage.in: Add "makemanpage" script which takes care of all the magic needed to generate a man page using help2man. This script is written in perl, but so is help2man, and they're both only used in maintainer-mode. Thu Feb 15 06:33:41 GMT 2007 Olly Betts * bin/Makefile.mk: Fix typos in man page generation rules. Thu Feb 15 06:30:54 GMT 2007 Olly Betts * examples/Makefile.mk: Fix typos in previous commit. Thu Feb 15 06:03:35 GMT 2007 Olly Betts * Makefile.am,configure.ac,examples/Makefile,examples/Makefile.am, examples/Makefile.mk: Convert examples subdirectory to use non-recursive make. Fixes wishlist bug#97. Thu Feb 15 05:48:38 GMT 2007 Olly Betts * Makefile.am,bin/Makefile,bin/Makefile.am,bin/Makefile.mk, configure.ac: Convert bin subdirectory to use non-recursive make. Wed Feb 14 19:08:49 GMT 2007 Olly Betts * tests/Makefile.am: There's no longer a need to remove the temporary directories for muscat36 backend tests, since we've removed the muscat36 backend code. Wed Feb 14 18:58:31 GMT 2007 Olly Betts * languages/Makefile.mk: Move adjusting of INCLUDES to the top of the file. * queryparser/Makefile.mk: Adjust INCLUDES for a VPATH build. Wed Feb 14 18:38:16 GMT 2007 Olly Betts * languages/Makefile.mk: Need -Ilanguages for VPATH builds from SVN. Wed Feb 14 18:37:54 GMT 2007 Olly Betts * languages/steminternal.cc,languages/steminternal.h: Add SET_CAPACITY() macro. Wed Feb 14 17:39:50 GMT 2007 Olly Betts * languages/steminternal.h: Don't cast away const. Wed Feb 14 17:14:14 GMT 2007 Olly Betts * include/Makefile: Add stub makefile. Wed Feb 14 17:12:41 GMT 2007 Olly Betts * configure.ac: ac_abs_srcdir, etc aren't available in configure itself, so we have to do the work ourselves. Wed Feb 14 12:54:26 GMT 2007 Olly Betts * configure.ac: Fix typo in last commit. Wed Feb 14 12:19:18 GMT 2007 Olly Betts * Makefile.am,configure.ac,languages/Makefile.mk: Define automake conditional VPATH_BUILD so we can only add extra entries to INCLUDES in VPATH builds. Wed Feb 14 11:59:02 GMT 2007 Olly Betts * languages/Makefile.mk: Ick, we need $(top_srcdir)/languages in INCLUDES as the generated sources need to find non-generated headers. Wed Feb 14 11:46:43 GMT 2007 Olly Betts * backends/database.cc,backends/remote/remote-database.cc, common/database.h,common/remote-database.h,common/remoteprotocol.h, docs/remote_protocol.html,net/remoteserver.cc: Support get_lastdocid() on remote databases. Wed Feb 14 11:20:33 GMT 2007 Olly Betts * Makefile.am,configure.ac,include/Makefile.am,include/Makefile.mk: Convert include subdirectory to use non-recursive make. Wed Feb 14 11:05:00 GMT 2007 Olly Betts * Makefile.am,bin/Makefile.am,configure.ac,examples/Makefile.am, getopt/Makefile,getopt/Makefile.am,getopt/Makefile.mk, tests/Makefile.am: Convert getopt subdirectory to use non-recursive make. Wed Feb 14 10:56:15 GMT 2007 Olly Betts * tests/harness/Makefile.am: Remove as no longer used. Wed Feb 14 10:38:27 GMT 2007 Olly Betts * backends/quartz/Makefile.mk,bin/Makefile.am,tests/Makefile.am: Move backends/quartz/libbtreecheck.la to libquartzcheck.la. * getopt/Makefile.am: Distribute getopt/dir_contents. Wed Feb 14 10:20:14 GMT 2007 Olly Betts * preautoreconf: Handle variables set with "+=" and ":=". Wed Feb 14 10:16:29 GMT 2007 Olly Betts * include/xapian/database.h: Add documentation comments for DB_* constants. Wed Feb 14 10:11:37 GMT 2007 Olly Betts * examples/.cvsignore: Remove lingering relic of CVS days. Wed Feb 14 10:07:14 GMT 2007 Olly Betts * Makefile.am,configure.ac,net/Makefile,net/Makefile.am, net/Makefile.mk: Convert net subdirectory to use non-recursive make. Now libxapian.la is built completely non-recursively. * docs/Makefile.am,docs/mkdoc.pl: Fix mkdoc.pl to handle directories which use non-recursive make. Wed Feb 14 09:10:27 GMT 2007 Olly Betts * Makefile.am,backends/Makefile,backends/Makefile.am, backends/Makefile.mk,backends/flint/Makefile, backends/flint/Makefile.am,backends/flint/Makefile.mk, backends/inmemory/Makefile,backends/inmemory/Makefile.am, backends/inmemory/Makefile.mk,backends/multi/Makefile, backends/multi/Makefile.am,backends/multi/Makefile.mk, backends/quartz/Makefile,backends/quartz/Makefile.am, backends/quartz/Makefile.mk,backends/remote/Makefile, backends/remote/Makefile.am,backends/remote/Makefile.mk, configure.ac: Convert backends subdirectory (and subdirectories thereof) to non-recursive make. Wed Feb 14 08:49:02 GMT 2007 Olly Betts * preautoreconf: Fix handling of backslash at the end of a line in included files. * preautoreconf: Our handling of which directory a nested include is sought from is consistent with automake, so remove the FIXME comment about it. Wed Feb 14 08:07:07 GMT 2007 Olly Betts * Makefile.am,configure.ac,matcher/Makefile,matcher/Makefile.am, matcher/Makefile.mk: Convert matcher subdirectory to non-recursive make. Wed Feb 14 07:50:19 GMT 2007 Olly Betts * Makefile.am,api/Makefile,api/Makefile.am,api/Makefile.mk, configure.ac: Convert api subdirectory to non-recursive make. Wed Feb 14 07:48:45 GMT 2007 Olly Betts * preautoreconf: No need to `chdir' to the current directory. * preautoreconf: Don't bother looking at the file we generate when considering included files. * preautoreconf: Add included files to the dependency list. Wed Feb 14 07:38:19 GMT 2007 Olly Betts * preautoreconf: Generate dummy rules for the files which preautoreconf depends on, so that "make" still works if one of them is removed (by build system restructuring). Wed Feb 14 07:24:07 GMT 2007 Olly Betts * common,languages,tests/harness: svn:ignore: We do need to ignore .dirstamp files after all. Wed Feb 14 07:22:29 GMT 2007 Olly Betts * Makefile.am,common/Makefile,common/Makefile.am,common/Makefile.mk, configure.ac: Convert common subdirectory to non-recursive make. Wed Feb 14 07:03:27 GMT 2007 Olly Betts * .: svn:ignore: Ignore all vim swapfiles. No need to ignore .deps now that dummy.cc is history. Wed Feb 14 06:34:44 GMT 2007 Olly Betts * tests/stemtest.cc: Force ASCII capitals in sample vocabulary to lower case before stemming. Wed Feb 14 06:14:42 GMT 2007 Olly Betts * Makefile.am,configure.ac,queryparser/Makefile, queryparser/Makefile.am,queryparser/Makefile.mk: Convert queryparser subdirectory to non-recursive make. * Makefile.am: Enable automake option "subdir-objects" so that built objects for a non-recursively made directory go into that directory. Wed Feb 14 06:12:29 GMT 2007 Olly Betts * tests/harness: svn:ignore: remove .dirstamp and depcomp. Wed Feb 14 06:10:44 GMT 2007 Olly Betts * languages/Makefile.mk: In maintainer-mode, remove snowball and generated allsnowballheaders.h on "make clean". When not in maintainer-mode, remove them on "make maintainer-clean". * languages/: svn:ignore all vim swap files. Wed Feb 14 05:54:32 GMT 2007 Olly Betts * languages/Makefile.mk: Distribute the stub languages/Makefile. * tests/harness/Makefile.mk: No need to explicitly distribute harness/Makefile.mk. Wed Feb 14 05:52:08 GMT 2007 Olly Betts * languages/Makefile.mk: Distribute languages/dir_contents. Wed Feb 14 05:44:10 GMT 2007 Olly Betts * api/Makefile.am,api/vectortermlist.h,common/Makefile.am, queryparser/Makefile.am: We use vectortermlist.h from the queryparser directory, so move it from api to common. Wed Feb 14 05:27:13 GMT 2007 Olly Betts * languages/Makefile.mk,languages/stem.cc: Disable finnish and lovins temporarily, until I sort out merging the support for among with functions properly. Wed Feb 14 05:24:36 GMT 2007 Olly Betts * languages/steminternal.cc,languages/steminternal.h: Temporarily back out the changes to handling of among with functions. Tue Feb 13 19:11:57 GMT 2007 Olly Betts * tests/harness/testsuite.cc: If a test throws an unknwon exception, say so in the test failure message. If it throws std::string, report the first 40 character (or first line) of the string. Tue Feb 13 17:48:11 GMT 2007 Olly Betts * languages/steminternal.cc: Fix decoding of 3 byte utf-8 sequences. Tue Feb 13 17:47:22 GMT 2007 Olly Betts * languages/Makefile.mk: Fix dependency of generated languages/allsnowballheaders.h to be on languages/Makefile.mk. Tue Feb 13 17:46:42 GMT 2007 Olly Betts * languages/compiler/generator.c: Fix missing ";" in generated code. Tue Feb 13 15:40:15 GMT 2007 Olly Betts * languages/Makefile.mk,languages/compiler/driver.c, languages/compiler/generator.c,languages/compiler/header.h: Changes towards getting C++ generation working. Tue Feb 13 15:39:23 GMT 2007 Olly Betts * languages/steminternal.cc,languages/steminternal.h: Revert to match currently generated code. Tue Feb 13 14:09:31 GMT 2007 Olly Betts * languages/compiler/: Sync with current snowball SVN + submitted patches. Tue Feb 13 10:53:34 GMT 2007 Olly Betts * tests/harness/backendmanager.cc: If we fail to start xapian-tcpsrv, report why (give errno or the error output). Tue Feb 13 10:28:43 GMT 2007 Olly Betts * tests/remotetest.cc: Prune test cases which are redundant now that apitest tests remote and remotetcp: apitest's simplequery1 performs a superset of what netmatch1 and tcpmatch1 do; apitest's multidb1 performs a superset of what netmatch2 does; and the coverage given by our netexpand1 is provided by various apitest tests. Mon Feb 12 06:36:58 GMT 2007 Olly Betts * languages/compiler/generator.c: In backward mode, among can't match if there are fewer characters before the current position than the minimum length string in the among. Mon Feb 12 05:56:31 GMT 2007 Olly Betts * configure.ac: Make sure that the languages subdirectory exists in case this is a fresh SVN checkout and srcdir != builddir. Mon Feb 12 05:46:49 GMT 2007 Olly Betts * languages/Makefile.mk,languages/compiler/driver.c: -DDISABLE_JAVA to not compile in Java support (inline with Richard's patch to the upstream snowball sources). * languages/Makefile.mk: Remove inaccurate comment about processing with automake. Fix -n option we pass (remove directory name). Use "" instead of <> in generated file allsnowballheaders.h. Remove snowball compiler and generated files on "make maintainer-clean". Mon Feb 12 01:08:50 GMT 2007 Richard Boulton * languages/compiler/header.h: Remove commented out header for sort() prototype, to match snowball sources. Sun Feb 11 19:28:50 GMT 2007 Olly Betts * languages/api.h,languages/header.h: Remove headers which are no longer used. Sun Feb 11 19:26:50 GMT 2007 Olly Betts * languages/api.cc,languages/utilities.cc: Remove sources which are no longer used. Sun Feb 11 16:22:16 GMT 2007 Olly Betts * languages/compiler/driver.c: Use #ifdef instead of #if. Sun Feb 11 16:20:44 GMT 2007 Olly Betts * languages/compiler/driver.c: Disable java support, since we don't use it and it means one less source file. Sun Feb 11 16:08:49 GMT 2007 Olly Betts * languages/compiler/analyser.c,languages/compiler/header.h: Use qsort instead the snowball's own sort implementation to reduce the number of source files we need for the snowball compiler. Sun Feb 11 16:04:19 GMT 2007 Olly Betts * languages/Makefile: Add stub Makefile to allow "make", "make check", and "make clean" from the languages subdirectory. Sun Feb 11 16:00:51 GMT 2007 Olly Betts * languages/compiler/analyser.c: Cast the arguments, not the function pointer as ISO C allows `void*' and `struct amongvec*' to have different representations. Sun Feb 11 15:43:49 GMT 2007 Olly Betts * languages/compiler/space.c: Fix a typo of a function name in a comment. Sun Feb 11 15:23:51 GMT 2007 Olly Betts * languages/compiler/header.h,languages/compiler/tokeniser.c: Give syswords and syswords2 .h extensions for clarity. Sun Feb 11 15:17:28 GMT 2007 Olly Betts * Makefile.am,api/Makefile.am,api/omstem.cc,configure.ac,dummy.cc, languages/Makefile.am,languages/Makefile.mk,languages/compiler/, languages/: Update the stemmers to use utf-8 and the latest snowball version (based on r421 from snowball SVN). Further patches are required to generate C++ classes from snowball, I'm checking in the vanilla compiler first to help us track the patches. Sun Feb 11 14:16:35 GMT 2007 Olly Betts * api/omstem.cc: Add definition for Xapian::Stem::stem_word(). Sun Feb 11 13:15:11 GMT 2007 Olly Betts * tests/api_anydb.cc,tests/api_db.cc,tests/api_posdb.cc: Prefer Xapian::Stem::operator() to Xapian::Stem::stem_word(). Sat Feb 10 19:10:31 GMT 2007 Olly Betts * queryparser/queryparser.lemony: Prefer Xapian::Stem::operator() to Xapian::Stem::stem_word(). Sat Feb 10 18:34:41 GMT 2007 Olly Betts * include/xapian/stem.h: Make Xapian::Stem::Internal as @internal for doxygen. Mark Xapian::Stem::stem_word() as deprecated. Sat Feb 10 18:34:05 GMT 2007 Olly Betts * HACKING: Add brief note about coding style. Sat Feb 10 18:24:28 GMT 2007 Olly Betts * preautoreconf: Add licence and copyright notice. Add support for automake include directives. Warn about unknown variables. Sat Feb 10 18:19:26 GMT 2007 Olly Betts * tests/harness/testsuite.cc: Conditionalise all the valgrind specific code on RUNNING_ON_VALGRIND to minimise the overhead if valgrind is installed but we aren't running tests under it. Sat Feb 10 17:42:05 GMT 2007 Olly Betts * tests/harness/index_utils.cc,tests/stemtest.cc: Prefer Xapian::Stem::operator() to Xapian::Stem::stem_word(). Sat Feb 10 17:27:27 GMT 2007 Olly Betts * examples/delve.cc,examples/simpleindex.cc,examples/simplesearch.cc: Prefer Xapian::Stem::operator() to Xapian::Stem::stem_word(). Wed Feb 07 04:23:09 GMT 2007 Olly Betts * queryparser/queryparser.lemony,queryparser/queryparser.lt: Use new/delete instead of malloc/free to allocate struct yyParser and pass it around as "yyParser *" instead of "void *". Wed Feb 07 03:44:16 GMT 2007 Olly Betts * include/xapian/queryparser.h,queryparser/queryparser.cc, queryparser/queryparser.lemony,queryparser/queryparser_internal.h, tests/queryparsertest.cc: Allow the default prefix to be specified so you can use QueryParser to parse a text entry box for "author" etc. * configure.ac: Note API change for LIBRARY_VERSION_INFO updating. Wed Feb 07 01:14:37 GMT 2007 Olly Betts * common/safeunistd.h: Add '#include ' so that we've seen a typedef for off_t before we hide it behind a #define to avoid a compilation error if or is included after we are. Tue Feb 06 06:26:24 GMT 2007 Olly Betts * INSTALL: Mention MSVC makefiles. Note that we still test build with GCC 2.95.4 even though we recommend using a newer version. Tue Feb 06 06:13:48 GMT 2007 Olly Betts * AUTHORS,HACKING,backends/flint/,backends/quartz/btree.cc, backends/quartz/quartz_database.cc,bin/quartzcompact.cc, bin/xapian-compact.cc,common/,tests/btreetest.cc, tests/harness/backendmanager.cc,tests/harness/testsuite.cc, tests/quartztest.cc: Support large files in stat() and fstat() when building with MSVC. Factor MSVC specific header magic into new replacement headers "safeunistd.h" and "safesysstat.h". * AUTHORS: Thanks to Charlie Hull for the original patch to support stat() on large files with MSVC (and past MSVC related stuff!) Sat Jan 13 02:06:15 GMT 2007 Olly Betts * include/xapian/database.h: Add pointer from WritableDatabase::add_document() to replace_document() in case the user wants to specify the docid themselves. Also improve the wording of the warning about changes not being committed to disk right away. Tue Jan 2 15:49:43 GMT 2007 Richard Boulton * backends/quartz/btree.cc,backends/flint/flint_io.h: Patches from Charlie Hull to allow 2GB+ index files work when compiled using Visual C++. Sat Dec 30 13:48:54 GMT 2006 Richard Boulton * queryparser/queryparser.lemony,include/xapian/queryparser.h: Add support for partially entered queries, to better support incremental searching. Also fix a typo in a comment. * docs/queryparser.html: Document the new partial query option, and what it's useful for. * tests/queryparsertest.cc: Test partial queries. Wed Dec 20 16:42:24 GMT 2006 Olly Betts * PLATFORMS: Updated with success reports from debian buildds. Wed Dec 20 00:53:19 GMT 2006 Olly Betts * api/omqueryinternal.cc: Fix "unused parameter" warning when building with the remote backend disabled. Also update a comment - the query serialisation isn't really one line of text since we now store term names with the length prefixed, and they can contain arbitrary characters including linefeeds. Tue Dec 19 20:40:27 GMT 2006 Olly Betts * tests/Makefile.am: Need libgetopt.la for test programs which use the test harness for platforms where GNU getopt isn't in the standard C library. Tue Dec 19 20:34:16 GMT 2006 Olly Betts * queryparser/utf8itor.h: Need for strlen. Tue Dec 19 16:35:58 GMT 2006 Olly Betts * common/omstringstream.h: Fix "warning: comparison between signed and unsigned". Tue Dec 19 15:33:19 GMT 2006 Olly Betts * backends/flint/flint_positionlist.cc: Turn the second (and potentially slightly deeper) recursion in encode_interpolative and decode_interpolative into explicit iteration in case the compiler fails to optimise the tail recursion. Mon Dec 18 03:39:41 GMT 2006 Olly Betts * matcher/: Add ExactPhrasePostList to handle the common special case where the window size of OP_PHRASE is equal to the number of terms in the phrase. Mon Dec 18 02:21:32 GMT 2006 Olly Betts * tests/harness/testsuite.cc: Remove accidentally committed "NO PROBLEM" message when running under valgrind. Wed Dec 13 21:15:57 GMT 2006 Richard Boulton * include/xapian/document.h: Another tweak to the documentation comment. Wed Dec 13 18:07:51 GMT 2006 Richard Boulton * include/xapian/document.h: Improve documentation comment for Document::get_value(). Wed Dec 13 03:38:37 GMT 2006 Olly Betts * include/xapian/enquire.h: In the description of the TradWeight class, replace reference to "Muscat 3.6" (meaningless to most people) with a generally useful explanation. Wed Dec 13 03:27:14 GMT 2006 Olly Betts * docs/: svn:ignore XapianAdminNotes.html. Wed Dec 13 03:16:44 GMT 2006 Olly Betts * configure.ac: Yet more valgrind test improvements! Give up testing valgrind features if VALGRIND_COUNT_LEAKS isn't supported. Fix the common shortcut case to not try logging to /dev/null. so it can actually get used. Also don't use /dev/null in the --logfile case either as it will probably cause problems there too (though I don't have an old enough valgrind handy to verify this). Also report results of valgrind tests in a couple more places. Wed Dec 13 00:31:04 GMT 2006 Richard Boulton * docs/Makefile.am: New rules for generating XapianAdminNotes.html from XapianAdminNotes.txt * configure.ac: Check for rst2html, and require it in maintainer mode. * HACKING: document rst2html as a requirement. Tue Dec 12 23:58:13 GMT 2006 Richard Boulton * docs/XapianAdminNotes.txt: Add new document giving an introduction to Xapian concepts for system administrators. Tue Dec 12 21:33:38 GMT 2006 Richard Boulton * docs/quartzdesign.html: Fix an unmatched bracket. Tue Dec 12 21:18:54 GMT 2006 Richard Boulton * backends/quartz/quartz_alldocspostlist.cc: Fix memory leak discovered by valgrind in QuartzAllDocsPostList constructor: was failing to delete the Bcursor. Tue Dec 12 21:05:47 GMT 2006 Richard Boulton * queryparser/queryparser.lemony: Fix parsing of queries of the form "+foo* bar", where no terms in the database match the wildcard "foo*", but bar does exist in the database. Previously, such queries would be equivalent to "bar". Now, they will match no documents. This required using a new "QpQuery" object internally so we can distinguish between deliberately "match nothing" queries, and empty lists of queries. * tests/api_anydb.cc,tests/queryparsertest.cc: Test above fix, and general parsing of wildcard queries with +terms, and test performing a match with a query resulting from a wildcard query which matches nothing. Tue Dec 12 21:05:15 GMT 2006 Richard Boulton * tests/api_nodb.cc,api/omqueryinternal.cc,api/omquery.cc: Fix some copyright assertions I missed. Tue Dec 12 19:38:39 GMT 2006 Richard Boulton * include/xapian/query.h,api/omqueryinternal.cc,api/omquery.cc: Add two static Query objects: Xapian::Query::MatchAll and Xapian::Query::MatchNothing, which match all documents and no documents in the database, respectively. (Equivalent to Query("") and Query()). Allow empty queries such as MatchNothing to be combined with other queries. Change methods of Xapian::Query::Internal to use pointers to query internals instead of references, so they can handle the NULL pointer internals of an empty query. * tests/api_nodb.cc: Test combining of MatchNothing queries with other queries with OP_AND and OP_OR. Tue Dec 12 20:01:58 GMT 2006 Richard Boulton * configure.ac: Fix valgrind better: --log-file-exactly isn't what is wanted, because it messes up if multiple processes are traced. Instead, use a temporary file instead of /dev/null, so we don't get the permission denied error. Tue Dec 12 19:15:20 GMT 2006 Richard Boulton * configure.ac: Fix detection of valgrind for newer valgrind. My version of valgrind (valgrind-3.2.1-Debian, from ubuntu feisty) treats the parameter supplied to --log-file as a base path, and appends a process ID. This caused the test for the log-file option to fail with permission denied errors due to trying to write to files of the form '/dev/null.16098'. Solution - test for the --log-file-exactly option, and use that. Also, change configure.ac to display the result of the tests for valgrind; was displaying that it had found it, but not mentioning that it couldn't make it work. Tue Dec 05 21:12:12 GMT 2006 Richard Boulton * include/xapian/query.h,api/omqueryinternal.cc: Fix query serialisation bug. Was failing to propagate "curpos" parameter across subqueries, resulting in incorrect serialisation of termpositions. * tests/internaltest.cc: Regression test for this bug. Tue Dec 05 01:34:07 GMT 2006 Olly Betts * HACKING: Clarify how XAPIAN_DEBUG_FLAGS works. Tue Dec 05 01:23:12 GMT 2006 Olly Betts * examples/quest.cc: Add "--stemmer" option to allow stemming language to be set, or stemming to be disabled. Sun Dec 03 00:34:27 GMT 2006 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: Add entries to the "unstem" map for prefixed boolean filters (e.g. type:html). Also don't corrupt non-ASCII characters in a prefixed boolean filter. Sat Nov 25 04:17:23 GMT 2006 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_version.cc: The "my_fls()" change actually results in a different interpolative encoding in a few cases - the old encoding could vary between architectures so we have to change it. So bump the FLINT_VERSION and change the "flicklock" file to be "flintlock" as it should have been all along! Wed Nov 22 18:55:42 GMT 2006 Olly Betts * xapian-config.in: Improve --version output so that help2man produces a better man page. Mon Nov 20 07:21:07 GMT 2006 Olly Betts * backends/flint/flint_positionlist.cc: Fix another off-by-one error (> should be >=). Mon Nov 20 07:12:11 GMT 2006 Olly Betts * backends/flint/flint_positionlist.cc: Fix off-by-one error in code which calls my_fls(). Sat Nov 18 08:32:08 GMT 2006 Olly Betts * backends/flint/flint_positionlist.cc: "const static" -> "static const". Sat Nov 18 08:05:17 GMT 2006 Olly Betts * backends/flint/flint_positionlist.cc: Make decode_interpolative a member function of BitReader. Sat Nov 18 07:45:19 GMT 2006 Olly Betts * backends/flint/flint_positionlist.cc: Add highly optimised fls() implementation and make use of it. Thu Nov 16 04:22:36 GMT 2006 Olly Betts * m4/xapian.m4: If XAPIAN_CONFIG wasn't specified and xapian-config wasn't found, see if the library seems to be present - if so give a different error message which suggests the user needs to install a -dev or -devel package. Thu Nov 16 02:11:34 GMT 2006 Olly Betts * docs/install.html: omega tarball is now xapian-omega. Tue Nov 14 22:42:05 GMT 2006 Olly Betts * tests/harness/Makefile: Add static Makefile so you can make all, check, and clean from the subdirectory. * tests/harness/Makefile.mk: Ship Makefile.mk and Makefile. Tue Nov 14 21:53:45 GMT 2006 Olly Betts * tests/: Remove muscat36 temporary directories from svn:ignore property. Tue Nov 14 19:47:30 GMT 2006 Olly Betts * configure.ac,tests/Makefile.am,tests/harness/Makefile.mk: Use non-recursive make to build the test harness, so it only gets built if "make check" is run. Tue Nov 14 19:43:48 GMT 2006 Olly Betts * tests/quartztest.cc: Removed unused static function unlink_table. Tue Nov 14 17:41:26 GMT 2006 Olly Betts * include/xapian/queryparser.h,queryparser/queryparser.lemony, tests/queryparsertest.cc: Add QueryParser::FLAG_PURE_NOT to allow pure NOT queries to be enabled (they are now disabled by default). Tue Nov 14 04:19:40 GMT 2006 Olly Betts * backends/database.cc,backends/flint/dir_contents, backends/quartz/dir_contents,docs/overview.html, docs/quartzdesign.html,docs/scalability.html: Make flint the default backend. Tue Nov 14 03:25:19 GMT 2006 Olly Betts * tests/api_nodb.cc: Xapian::Query("") now builds a query which matches all documents rather than throwing InvalidArgumentError so fix emptyquery1 test. Tue Nov 14 02:03:29 GMT 2006 Olly Betts * api/omdocument.cc: Tweak OmDocumentTerm::add_position() so that adding position 0 to an empty termlist takes the shortcut. Mon Nov 13 05:46:15 GMT 2006 Olly Betts * docs/queryparser.html: Document the new pure NOT feature. Mon Nov 13 05:24:30 GMT 2006 Olly Betts * api/omqueryinternal.cc,queryparser/queryparser.lemony, tests/queryparsertest.cc: Allow "pure NOT" queries - e.g. "NOT apples". Fixes bug #99. Mon Nov 13 04:54:04 GMT 2006 Olly Betts * api/omqueryinternal.cc: Undo changes accidentally committed in last check-in. Mon Nov 13 04:47:57 GMT 2006 Olly Betts * api/omqueryinternal.cc,backends/Makefile.am,backends/database.cc, backends/muscat36/,configure.ac,docs/overview.html, docs/quartzdesign.html,docs/tests.html,include/xapian/dbfactory.h, include/xapian/version_h.cc,tests/api_anydb.cc,tests/apitest.cc, tests/harness/backendmanager.cc,tests/harness/backendmanager.h, tests/harness/index_utils.cc: Remove support for the old Muscat 3.6 backends. Mon Nov 13 04:02:27 GMT 2006 Richard Boulton * common/database.h,api/omdatabase.cc, backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h, backends/quartz/Makefile.am,backends/quartz/quartz_database.cc, backends/quartz/quartz_alldocspostlist.h, backends/quartz/quartz_alldocspostlist.cc, backends/flint/Makefile.am,backends/flint/flint_database.cc, backends/flint/flint_alldocspostlist.cc, backends/flint/flint_alldocspostlist.h: Implement posting lists which return a list of all documents in the database. Such a posting list is obtained by calling Xapian::Database::postlist_begin() with an empty term (ie, ""). Also, all Xapian::Database methods which take a termname now accept an empty term, and return appropriate values (ie, get_termfreq("") and get_collection_freq("") return the number of documents in the database, and term_exists("") returns true unless the database is empty). Fixes Bug #47. * docs/quartzdesign.html: Document the inefficiency of all-document postlists for Quartz. * tests/api_anydb.cc,tests/api_db.cc,tests/api_wrdb.cc: Add tests for all-document postlists, and for passing an empty term to all the applicable database methods. This defines the new tests allpostlist1, allpostlist2, emptyterm1, and emptyterm2. These tests currently skip for the remote backend where postlist_begin() isn't yet implemented. Mon Nov 13 02:06:03 GMT 2006 Olly Betts * Merge in utf8 branch: Thu Sep 14 23:49:48 BST 2006 Olly Betts * queryparser/,tests/queryparsertest.cc: Update to work with UTF-8. Stop normalising accents - the general sentiment seems to be firmly against it, and where it is still appropriate we should get the stemmers to do it. Sun Nov 12 22:38:56 GMT 2006 Olly Betts * NEWS: Update from ChangeLog file in preparation for branching and merging. Sun Nov 12 19:32:01 GMT 2006 Olly Betts * backends/flint/flint_database.cc, backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h, backends/quartz/quartz_database.cc: Fix replace_document() not to lose positional information for a document if it is replaced with itself with unmodified postings. * tests/api_wrdb.cc: Add testcase replace_document5 as regression test for the replace_document bug. * backends/remote/remote-database.cc: Fix RemoteDatabase::has_positions() to refetch the cached value if it might be out of date. Sun Nov 12 17:07:00 GMT 2006 Olly Betts * docs/Makefile.am: Need to increase pool_size further still to build sourcedoc.pdf (2000000 now). Sun Nov 12 16:24:15 GMT 2006 Olly Betts * HACKING: Add "update ReleaseNotes on wiki" to release checklist. Sun Nov 12 16:23:19 GMT 2006 Olly Betts * xapian.spec.in: Remove "." from end of "Summary:". Package new man page for xapian-progsrv. Sun Nov 12 00:43:36 GMT 2006 Olly Betts * docs/stemming.html: Update another "CVS" reference to say "SVN". Sun Nov 12 00:42:22 GMT 2006 Olly Betts * docs/install.html: Update reference to "CVS" to say "SVN". Thu Nov 09 01:11:52 GMT 2006 Olly Betts * HACKING: Reorder the release checklist a little. I've fixed update_website.sh to get the latest version from version.php, so now only version.php needs updating. Thu Nov 09 00:17:35 GMT 2006 Olly Betts * NEWS,PLATFORMS,configure.ac: Update for 0.9.9. Wed Nov 08 20:54:31 GMT 2006 Olly Betts * xapian.spec.in: Apply changes from Neal Becker to run "autoreconf --force" so that we don't set rpath for /usr/lib64, and add "libs" to %post and %postun. * AUTHORS: Thank Neal Becker. Wed Nov 08 04:27:17 GMT 2006 Olly Betts * docs/tests.html: Update for "testsuite" -> "tests/harness". Mark paths and programs with .... Improve wording in a few places. Wed Nov 08 03:10:37 GMT 2006 Olly Betts * bin/xapian-tcpsrv.cc: Need '#include "safeerrno.h"' for EADDRINUSE. Wed Nov 08 02:36:59 GMT 2006 Olly Betts * bin/Makefile.am,bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc: xapian-progsrv now uses getopt for option processing, and we can now generate a man page using help2man. Fixes Bug #98. Wed Nov 08 01:47:19 GMT 2006 Olly Betts * bin/xapian-tcpsrv.cc: If the port requested is in use, exit with code 69 (EX_UNAVAILABLE) which is useful if you're trying to automate launching of xapian-tcpsrv instances. * tests/harness/backendmanager.cc: If we can't start xapian-tcpsrv because the port is in use, try higher numbered ports. * tests/harness/testsuite.cc: Catch and report std::string exceptions. Tue Nov 07 22:40:58 GMT 2006 Olly Betts * net/tcpclient.cc: Turn on TCP_NODELAY for the client too. Tue Nov 07 21:46:39 GMT 2006 Olly Betts * net/tcpserver.cc: Turn on TCP_NODELAY for xapian-tcpsrv which increases throughput for the remote backend over tcp. Tue Nov 07 21:08:57 GMT 2006 Olly Betts * backends/flint/flint_btreebase.cc: Add missing '#include'-s. Tue Nov 07 17:57:22 GMT 2006 Olly Betts * backends/quartz/btree_base.cc: Add missing '#include'-s. Tue Nov 07 05:12:40 GMT 2006 Olly Betts * backends/flint/flint_positionlist.h,backends/flint/flint_table.cc, backends/quartz/btree.cc: Add missing '#include ' which "utils.h" was implicitly pulling in. * common/utils.h: Move '#include "safefcntl.h"' to more logical place. Tue Nov 07 04:18:27 GMT 2006 Olly Betts * common/safefcntl.h: Actually add the new file to SVN. Tue Nov 07 03:36:59 GMT 2006 Olly Betts * HACKING,backends/flint/flint_io.h,backends/flint/flint_lock.cc, backends/flint/flint_lock.h,backends/muscat36/io_system.cc,common/, net/tcpserver.cc,tests/harness/backendmanager.cc, tests/harness/testsuite.cc: Create "safefcntl.h" as a replacement for instead of using "utils.h" for this purpose, since "utils.h" pulls in many other things we often don't want. * common/utils.cc,common/utils.h,net/progclient.cc: Move split_words to progclient.cc which is the only user of it. Rewrite it to not modified the string being split which risks being O(n^2). * net/progclient.cc,common/progclient.h: Pass std::string by const reference. * configure.ac: Fix DJGPP build (fork is present but always fails). Tue Nov 07 03:21:24 GMT 2006 Olly Betts * matcher/biaspostlist.h: Don't need '#include "utils.h"'. Tue Nov 07 01:15:14 GMT 2006 Olly Betts * common/c_strtod.cc: Remove file which was checked in but is unused! Mon Nov 06 15:24:02 GMT 2006 Olly Betts * tests/internaltest.cc: Disable serialiselength1 and serialisedoc1 when the remote backend is disabled. Mon Nov 06 15:23:40 GMT 2006 Olly Betts * tests/Makefile.am: Fix typo in recent check-in. Mon Nov 06 01:43:37 GMT 2006 Olly Betts * tests/Makefile.am: Need "harness" in "$(srcdir)" for VPATH builds to work. Sun Nov 05 19:55:26 GMT 2006 Olly Betts * backends/quartz/Makefile.am: Remove explicit dependency of libbtreecheck.la on libxapian.la. We always link in libxapian.la and the explicit dependency makes it hard to build things in a sane order. Sun Nov 05 19:29:17 GMT 2006 Olly Betts * net/tcpserver.cc: Don't define on_SIGCHLD() unless we'll use it. * tests/harness/backendmanager.cc: Use a proper signal handler for SIGCHLD if we have waitpid() - POSIX leaves the semantics of SIG_IGN on SIGCHLD unspecified. Sun Nov 05 19:11:36 GMT 2006 Olly Betts * backends/quartz/Makefile.am,backends/quartz/btreecheck.cc, backends/quartz/btreecheck.h,bin/Makefile.am,tests/Makefile.am, tests/harness/: Use _exit(0) instead of exit(0) in the child process which closes the pipe to xapian-tcpsrv in BackendManager since we don't want to call atexit functions from the child. Move btreecheck stuff into backends/quartz. Sun Nov 05 17:12:05 GMT 2006 Olly Betts * Makefile.am,bin/Makefile.am,configure.ac,tests/Makefile.am, tests/harness/Makefile.am,tests/harness/dir_contents,testsuite/: Move the testsuite harness from "testsuite/" to "tests/harness/". Sun Nov 05 16:36:56 GMT 2006 Olly Betts * testsuite/backendmanager.cc,testsuite/backendmanager.h: Now needs . Set SIG_IGN for SIG_CHLD so we don't get zombie child processes. Sun Nov 05 03:53:24 GMT 2006 Olly Betts * tests/apitest.cc: Make backendmanager static. Sun Nov 05 03:51:36 GMT 2006 Olly Betts * bin/xapian-tcpsrv.cc: Output "Listening..." once the socket is open and read for connections. * testsuite/backendmanager.cc: Use popen() to run xapian-tcpsrv and wait for "Listening..." before returning rather than just sleeping for 1 second and hoping that's enough. Sun Nov 05 02:54:23 GMT 2006 Olly Betts * tests/api_db.cc: Remove unnecessary inclusion of backendmanager.h. Fri Nov 03 02:09:26 GMT 2006 Olly Betts * HACKING: Update debian packaging checklist. Fri Nov 03 00:57:35 GMT 2006 Olly Betts * docs/Makefile.am: Building sourcedoc.pdf needs a larger pool_size now. Thu Nov 02 19:12:34 GMT 2006 Olly Betts * AUTHORS: Updated. Thu Nov 02 15:41:46 GMT 2006 Olly Betts * HACKING,NEWS,configure.ac: Update for 0.9.8. Thu Nov 02 15:20:05 GMT 2006 Olly Betts * PLATFORMS: Update from tinderbox. Thu Nov 02 11:53:53 GMT 2006 Olly Betts * configure.ac: GCC's -Wendif-labels is enabled by default on versions which support it, which simplifies our tests. Thu Nov 02 00:22:44 GMT 2006 Olly Betts * backends/remote/dir_contents: Update. Wed Nov 01 15:33:12 GMT 2006 Olly Betts * common/omstringstream.h: Fix our implementation of om_ostringstream to work with OmTime. Wed Nov 01 03:27:36 GMT 2006 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: Don't require a prefixed boolean term to start with an alphanumeric - allow the same set of characters as we do for the second and subsequent characters. Sat Oct 28 04:12:13 BST 2006 Olly Betts * bin/quartzcheck.cc: Add catch for unknown exceptions. Sat Oct 28 03:49:19 BST 2006 Olly Betts * HACKING,configure.ac,docs/Makefile.am,docs/doxygen_api_conf.in, docs/doxygen_full_conf.in: Produce a PDF for apidoc rather than PostScript, since the PDF is smaller, and easier to view for most users. Use pdflatex to generate the PDF directly rather than going via a DVI file. This also avoids problems on some Linux distros where latex is a symlink to pdfelatex (bug#81, bug#95). Thu Oct 26 22:12:20 BST 2006 Richard Boulton * bin/quartzcheck.cc: Catch (and display) any exceptions which are of type "const char *error". btreecheck.cc raises an exception of this type if a btree error is found, and this avoids quartzcheck dying quite so horribly in this case. Wed Oct 25 23:30:26 BST 2006 Olly Betts * configure.ac: -Wendif-labels is new in GCC 3.3. * configure.ac: Revert accidental change which turned on -Werror in non-maintainer builds. * configure.ac: Avoid non-portable use of double quotes in double-quoted backticks. Wed Oct 25 01:19:24 BST 2006 Olly Betts * configure.ac: Redhat's GCC 2.96 doesn't support -Wundef even though real GCC version before and after it do! Also, use -Wshadow and -Wendif-labels even when not in maintainer mode. Tue Oct 24 04:17:58 BST 2006 Olly Betts * backends/flint/flint_lock.cc,bin/quartzcheck.cc: Eliminate a couple of variables whose value is never used. Tue Oct 24 00:31:25 BST 2006 Olly Betts * backends/quartz/quartz_database.cc: Only force a flush on WritableDatabase::allterms_begin() if there are actually pending changes. Mon Oct 23 23:49:52 BST 2006 Olly Betts * backends/flint/flint_database.cc: Only force a flush on WritableDatabase::allterms_begin() if there are actually pending changes. Mon Oct 23 02:24:12 BST 2006 Olly Betts * configure.ac: When checking if we need -lm, don't use a constant argument to log as the compiler might simply evaluate the whole expression at compile time. Sat Oct 21 20:42:52 BST 2006 Olly Betts * HACKING: Mention automake 1.10 is out but we've not tested it yet. Sat Oct 21 20:39:57 BST 2006 Olly Betts * HACKING: Add entries to release checklist: make sure new API methods are wrapped by the bindings, and that bug submitters are thanked. Fri Oct 20 13:56:50 BST 2006 Richard Boulton * backends/flint/flint_io.cc: Fix compilation on windows (needs to #include "safewindows.h" to get definition of SSIZE_T). Tue Oct 17 02:16:37 BST 2006 Olly Betts * testsuite/backendmanager.cc: Fix compilation when valgrind is detected by configure. Thu Oct 12 13:30:05 BST 2006 Olly Betts * xapian.spec.in: Package xapian-progsrv. Thu Oct 12 00:49:47 BST 2006 Olly Betts * HACKING: Note that on Debian, tetex-extra is needed for fancyhdr.sty. * HACKING: Note that dch can be used to update debian/changelog. Wed Oct 11 23:35:08 BST 2006 Olly Betts * docs/Makefile.am: If running latex on refman.ps fails, cat refman.log since that is likely to show what failed. Tue Oct 10 17:24:00 BST 2006 Olly Betts * NEWS: Bump release date. Sun Oct 08 21:41:04 BST 2006 Olly Betts * NEWS,PLATFORMS,configure.ac: Update for 0.9.7. Sun Oct 08 10:06:51 BST 2006 Olly Betts * testsuite/testsuite.cc: Use lseek() to skip existing valgrind output instead of repeated calls to read. Handle the old valgrind naming convention for log files. Sun Oct 08 09:35:59 BST 2006 Olly Betts * matcher/multimatch.cc: Fix a couple of typos in comments. Sun Oct 08 05:36:36 BST 2006 Olly Betts * configure.ac: Disable probing and short-cut tests for a FORTRAN compiler. We don't use one, but current libtool versions always check for it regardless. Sat Oct 07 21:19:35 BST 2006 Olly Betts * configure.ac,tests/runtest.in,testsuite/backendmanager.cc, testsuite/testsuite.cc: Fix testsuite harness to show valgrind output when a test fails (when running under valgrind in verbose mode). This probably stopped working due to changes in valgrind 3. * testsuite/backendmanager.cc: Run xapian-tcpsrv under valgrind if apitest is. Fri Oct 6 18:27:13 BST 2006 Richard Boulton * tests/runtest.in: export $LIBTOOL, $VALGRIND and $VG_LOG_FD. * testsuite/backendmanager.cc: If $LIBTOOL, $VALGRIND and $VG_LOG_FD are set, run progsrv under valgrind. Fixes Bug #94. * net/remoteserver.cc: Use an AutoPtr to hold the unserialised query, so it gets deleted if an exception is thrown. * api/omqueryinternal.cc: Use AutoPtr in one place, and a try-catch in another, to ensure that partially unserialised queries get deleted if exceptions are thrown. * tests/internaltest.cc: Add copyright notices to file for recent change. * AUTHORS: Add myself as a current developer, now that I've started committing to the core again. Fri Oct 06 17:44:21 BST 2006 Olly Betts * api/omqueryinternal.cc: Fix memory leak in query unserialisation. Fri Oct 6 17:34:59 BST 2006 Richard Boulton * tests/runtest.in: Cache result of test for $VG_LOG_FD if we find the new option. Saves 2 seconds for each invocation on my machine, which is half the time when running just a single simple test. Fri Oct 6 16:35:46 BST 2006 Richard Boulton * tests/internaltest.cc: Check serialisation and unserialisation of Query objects. Currently fails under valgrind due to a memory leak somewhere in the unserialisation code. Thu Oct 05 14:13:55 BST 2006 Olly Betts * include/xapian/error.h: Only enable the SWIG visibility hook when using GCC 4 or later. Wed Oct 04 20:32:43 BST 2006 Olly Betts * m4/xapian.m4: Remove overquoting. Wed Oct 4 13:28:09 BST 2006 Richard Boulton * common/utils.h: MSVC seems to #define open. However, the workaround for this problem implemented for old versions of solaris doesn't work for windows, so avoid applying the fix for windows, and just #undef open. (Windows seems to define some open() functions, as well as #defining open!) Wed Oct 4 13:26:18 BST 2006 Richard Boulton * net/serialise.cc: Use "unsigned char" instead of "char" when serialising lengths, to avoid problems on platforms where char is signed (eg, windows). Wed Oct 04 12:25:51 BST 2006 Olly Betts * backends/flint/flint_version.cc: Remove "100" from start of file so it actually compiles. Mon Oct 02 13:57:56 BST 2006 Olly Betts * xapian-config.in: Fix typo - "@libdir" should be "@libdir@". This would lead to -L/usr/lib not being pruned, which is really just a cosmetic problem (the typo was introduced in 0.9.3). Thu Sep 28 02:00:05 BST 2006 Olly Betts * matcher/multimatch.cc: Reserve the right number of entries in the subrsets vector. Fri Sep 22 07:48:32 BST 2006 Olly Betts * common/serialise-double.cc: Fix warning with aCC. Fri Sep 22 04:43:06 BST 2006 Olly Betts * HACKING: Expand note on _GLIBCXX_DEBUG; Now using autoconf 2.60 for snapshots and releases; Now using a libtool patch which improves support for -library=stlport4 with Sun's C++; Give URL to Alexandre Duret-Lutz's autotools tutorial, which is much more up-to-date than the "goat book". Fri Sep 22 04:42:08 BST 2006 Olly Betts * common/serialise-double.cc: Fix a few compiler warnings. Fri Sep 22 04:29:18 BST 2006 Olly Betts * backends/flint/flint_lock.cc: Retry on EINTR from fcntl or waitpid. Fri Sep 22 03:39:12 BST 2006 Olly Betts * include/xapian/version_h.cc: Only check _GLIBCXX_DEBUG for GCC 3.4 and later (which are the versions which support it). Fri Sep 22 03:37:02 BST 2006 Olly Betts * bin/xapian-tcpsrv.cc: Report errno if we catch a Xapian::Error which has it set. Fri Sep 22 03:30:25 BST 2006 Olly Betts * configure.ac: Turn on -Wportability to help ensure our Makefile.am's are written in a portable way. Fri Sep 22 03:29:25 BST 2006 Olly Betts * tests/runtest.in: Turn on GLIBCXX_FORCE_NEW when running tests under valgrind. Tue Sep 19 06:28:47 BST 2006 Olly Betts * tests/internaltest.cc: Check that the the destructor on a temporary object gets called at the correct time (Sun C++ deliberately gets this wrong by default). Tue Sep 19 04:32:04 BST 2006 Olly Betts * include/xapian/enquire.h: Revert change to Xapian::Weight's copy constructor because it prevents Omega from compiling. Tue Sep 19 04:01:14 BST 2006 Olly Betts * configure.ac: Make the argument of log() a double to avoid potential compiler warnings. Mon Sep 18 22:58:19 BST 2006 Olly Betts * include/xapian/enquire.h: Xapian::Weight's copy constructor should be private not protected (direct copying isn't allowed). Mon Sep 18 07:03:51 BST 2006 Olly Betts * configure.ac: We reportedly need "-lm" to get maths functions on some versions of Sun's C++ compiler. Sat Sep 16 12:08:25 BST 2006 Olly Betts * configure.ac: Sun's C++ compiler implements non-standards-conforming lifetimes for temporary objects (for "backwards compatibility" with old Sun C++ specific code). We don't care about such code, so always pass "-features=tmplife" for Sun C++. Sat Sep 16 03:04:57 BST 2006 Olly Betts * bin/xapian-progsrv.cc: Oops, fix compilation error. Sat Sep 16 02:13:22 BST 2006 Olly Betts * bin/xapian-progsrv.cc: Fix messages send by xapian-progsrv if an exception is thrown while opening the database. Fri Sep 15 06:29:55 BST 2006 Olly Betts * tests/internaltest.cc: 1/DBL_MAX may be less than DBL_MIN but on platforms like x86 which hold results in registers with extra precision, this is still representable, but not reliably so the test sometimes fails. Fri Sep 15 02:40:52 BST 2006 Olly Betts * backends/flint/flint_btreebase.cc: Avoid copying beyond the end of the bitmap block. Thu Sep 14 02:01:58 BST 2006 Olly Betts * backends/flint/flint_version.cc: Fix warning from GCC 4.1.0. Wed Sep 13 18:12:43 BST 2006 Olly Betts * backends/flint/flint_io.cc,backends/flint/flint_io.h, backends/flint/flint_version.cc: Fix compiler warnings. Wed Sep 13 06:09:40 BST 2006 Olly Betts * backends/flint/flint_version.cc,backends/flint/flint_version.h: Actually commit the new files! Wed Sep 13 05:21:04 BST 2006 Olly Betts * backends/flint/,common/utils.h: Rewrite some of flint's low level IO functions, and the "iamflint" handling class. Tue Sep 12 20:22:57 BST 2006 Olly Betts * backends/remote/remote-database.cc: Fix to compile. Tue Sep 12 18:56:16 BST 2006 Olly Betts * backends/remote/remote-database.cc,common/remote-database.h: Fix bug in remote backend which incorrectly returned an empty MSet under certain circumstances! Tue Sep 12 11:51:31 BST 2006 Olly Betts * matcher/msetcmp.cc: "static inline" -> "inline" since the static is superfluous and Sun's C++ warns. Mon Sep 11 23:42:28 BST 2006 Olly Betts * configure.ac: Check $CXX not $CC to identify which C++ compiler we have. Mon Sep 11 16:32:37 BST 2006 Olly Betts * api/omenquire.cc,api/vectortermlist.h, backends/flint/flint_positionlist.cc,configure.ac, net/remoteconnection.cc,net/tcpclient.cc, queryparser/queryparser.lemony,tests/api_anydb.cc,tests/api_db.cc, tests/api_nodb.cc: I've discovered that -library=stlport4 puts Sun's compiler into an "ANSI C++ compliant" mode, so do that automatically in configure and throw away all the annoying special bits of alternative code we'd accumulated just for this one compiler. Mon Sep 11 16:01:20 BST 2006 Olly Betts * tests/api_wrdb.cc: Speed up deldoc4 when run in verbose mode - some stringstream implementations are very inefficient when the string grows long. Mon Sep 11 05:30:29 BST 2006 Olly Betts * HACKING: Add some advice regarding debugging using -D_GLIBCXX_DEBUG, valgrind, and gdb. Sun Sep 10 02:24:47 BST 2006 Olly Betts * configure.ac: Fix last check-in to actually work. Sat Sep 09 04:19:44 BST 2006 Olly Betts * configure.ac: Ensure that if _GLIBCXX_DEBUG has been specified that it also passed when generating version.h. Sat Sep 09 04:01:40 BST 2006 Olly Betts * tests/internaltest.cc: Give more useful output should the double serialisation test fail. Sat Sep 09 03:19:20 BST 2006 Olly Betts * include/xapian/version_h.cc: Add a check that _GLIBCXX_DEBUG is set compatibly if we're compiling with GNU C++. Sat Sep 09 02:55:38 BST 2006 Olly Betts * backends/flint/flint_modifiedpostlist.cc: Fix potential access to iterator which has already reached its end. Fri Sep 08 04:05:28 BST 2006 Olly Betts * backends/remote/remote-database.cc,common/,matcher/bm25weight.cc, matcher/tradweight.cc,net/,tests/internaltest.cc: Split the double serialisation code off into its own file - it is used by BM25Weight and TradWeight, so it needs to be compiled in even when the remote backend is disabled. Thu Sep 07 00:09:41 BST 2006 Olly Betts * testsuite/backendmanager.cc: Discard stderr from xapian-tcpsrv so we don't get "write error" messages appearing in the testsuite output when we've just closed the connection at the client side. Tue Sep 05 21:07:40 BST 2006 Olly Betts * api/omqueryinternal.cc: Fix warning when remote backend is disabled. Tue Sep 05 20:58:52 BST 2006 Olly Betts * docs/Makefile.am: Add extra dependencies so that parallel make doesn't try to run latex twice simultaneously. Tue Sep 05 20:58:13 BST 2006 Olly Betts * AUTHORS: Updated. Tue Sep 05 20:56:50 BST 2006 Olly Betts * Makefile.am: Fix typo. Tue Sep 05 03:23:14 BST 2006 Olly Betts * docs/queryparser.html,queryparser/queryparser.lemony, tests/queryparsertest.cc: Implement "ADJ" operator - like "NEAR" except the terms must appear in matching documents in the same order as in the query. Tue Sep 05 03:19:12 BST 2006 Olly Betts * backends/remote/remote-database.cc,common/,docs/remote_protocol.html, matcher/bm25weight.cc,matcher/tradweight.cc,net/remoteserver.cc, net/serialise.cc,tests/internaltest.cc: Change how doubles are serialised by TradWeight, BM25Weight, and in the remote backend protocol. The new encoding allows us to transfer any double value which can be represented by both machines precisely and compactly. Tue Sep 05 02:27:36 BST 2006 Olly Betts * docs/queryparser.html,queryparser/queryparser.lemony, tests/queryparsertest.cc: Allow a distance to be specified for NEAR - e.g. "cats NEAR/3 dogs" (bug#92). Fri Sep 01 00:29:10 BST 2006 Olly Betts * backends/remote/remote-database.cc,common/remote-database.h: Fix RemoteDatabase::reopen() to not be const so it actually overrides the virtual method it is supposed to. Thu Aug 31 21:40:53 BST 2006 Olly Betts * testsuite/backendmanager.h: Remove unneeded BackendManager:: qualifications. Thu Aug 31 17:08:16 BST 2006 Olly Betts * matcher/msetpostlist.cc,matcher/msetpostlist.h: Move #include "omenquireinternal.h" into the header to fix compilation error with older versions of GCC. Thu Aug 31 16:38:33 BST 2006 Olly Betts * PLATFORMS: Added success report for Nexenta (alpha 5). Wed Aug 30 23:41:08 BST 2006 Olly Betts * configure.ac: Fix generation of version.h to work with Solaris sed. Sat Aug 26 15:28:22 BST 2006 Olly Betts * docs/index.html: Add links to the wiki. Sun Jul 16 03:48:26 BST 2006 Olly Betts * common/Makefile.am: Ship remoteprotocol.h. Sun Jul 16 02:23:54 BST 2006 Olly Betts * common/remote-database.h: Add new file I missed in the previous commit. Sun Jul 16 01:58:25 BST 2006 Olly Betts * Makefile.am,api/,backends/Makefile.am,backends/database.cc, backends/dbfactory_remote.cc,backends/flint/flint_database.cc, backends/flint/flint_termlist.cc,backends/flint/flint_termlist.h, backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h, backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h, backends/net/,backends/quartz/quartz_termlist.cc, backends/quartz/quartz_termlist.h,backends/remote/,bin/Makefile.am, bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc,common/,configure.ac, docs/remote_protocol.html,include/xapian/,matcher/,net/,tests/, testsuite/backendmanager.cc,testsuite/backendmanager.h: Rewrite most of the remote backend. It now supports most operations which a local database does (including writing!), the protocol used is more compact, and a number of layers of classes have been eliminated and the sequences of method calls simplified, so the code should be easier to understand and maintain despite doing more. A number of bugs have been fixed in the process. Sat Jul 15 05:10:38 BST 2006 Olly Betts * tests/api_nodb.cc: Doesn't need . Sat Jul 15 01:06:27 BST 2006 Olly Betts * README: Add link to the wiki. Tweak wording. Fri Jul 14 15:21:39 BST 2006 Olly Betts * configure.ac: Note in error message that dot is in graphviz. Fri Jul 14 15:17:36 BST 2006 Olly Betts * docs/overview.html: Add discussion of uses of terms vs values. Fri Jul 14 15:01:04 BST 2006 Olly Betts * docs/overview.html: Rewrite the section on Xapian::Document to remove some very out-of-date information and make it clearer. Tue Jul 11 18:41:07 BST 2006 Olly Betts * queryparser/queryparser.lemony: Fix problem I believe was introduced by previous fix. * tests/queryparsertest.cc: Add regression test and some additional related test cases. Tue Jul 11 03:32:48 BST 2006 Olly Betts * queryparser/queryparser.lemony: Fix bug in how we handle prefixed quoted phrases and prefixed brackets. * tests/queryparsertest.cc: Add regression tests. Mon Jul 10 23:17:58 BST 2006 Olly Betts * include/xapian/database.h: Note that automatically allocated document IDs don't reuse IDs from deleted document. Wed Jul 05 01:06:35 BST 2006 Olly Betts * tests/api_wrdb.cc: Tweak whitespace. Mon Jun 26 23:56:02 BST 2006 Olly Betts * PLATFORMS: Added success reports for MSVC and sparc linux. Sat Jun 17 02:01:35 BST 2006 Olly Betts * Makefile.am,tests/Makefile.am: Tweak new check-* rules to be more portable and robust. Sun Jun 11 23:29:48 BST 2006 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix parsing of loved and hated prefixed phrases and bracketted expressions. Fix handling of stopwords in boolean expressions. Don't ignore a stopword if it's the only query term. Add regression tests for all these cases. Fri Jun 09 15:21:07 BST 2006 Olly Betts * docs/queryparser.html: Add pointer to set_database when describing FLAG_WILDCARD. Fri Jun 09 13:51:03 BST 2006 Olly Betts * include/xapian/queryparser.h: Add note that FLAG_WILDCARD requires you to call set_database. Fri Jun 09 13:49:34 BST 2006 Olly Betts * api/omqueryinternal.cc: Don't compile query serialisation if the remote backend is disabled. Fri Jun 09 01:48:25 BST 2006 Olly Betts * api/omdocument.cc,tests/api_nodb.cc: add_value failed to replace an existing value with the same number, contrary to what the documentation says (bug #82). Thu Jun 08 21:36:54 BST 2006 Olly Betts * matcher/multimatch.cc: Don't fetch the document data when fetching the value to sort on. Simple benchmarking showed this to speed up sort by value by a factor of between 3 and 9! Sun Jun 04 17:36:01 BST 2006 Olly Betts * backends/flint/: Remove forced flush when iterating the posting list of a term which has modified posting pending. Sat Jun 03 21:38:43 BST 2006 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_termlist.cc, backends/quartz/quartz_database.cc,tests/api_wrdb.cc: We can't flush during a transaction, which means that we can't use flush to avoid having to handle corner cases (like deleting a document right after adding it before it's been flushed) so handle corner cases properly (except for postlist_begin() and allterms_begin() which are harder - these now throw UnimplementedError at least...) * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc: replace_document(did, doc) was double-incrementing the "changes" counter when document did didn't exist - fixed. Sat Jun 03 17:53:41 BST 2006 Olly Betts * HACKING: Document "make check-flint" and "make check-quartz". Sat Jun 03 17:49:25 BST 2006 Olly Betts * Makefile.am,tests/Makefile.am: Added make targets "check-flint" and "check-quartz" which run the subset of tests which test the flint and quartz backends respectively. Sat Jun 03 04:03:00 BST 2006 Olly Betts * api/omdatabase.cc,backends/database.cc, backends/flint/flint_database.cc,backends/flint/flint_database.h, backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h,backends/quartz/dir_contents, backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h, common/database.h,include/xapian/database.h,tests/apitest.cc: Rework transactions to support "unflushed" transactions, and so they work with quartz as well as with flint. Sat Jun 03 03:18:22 BST 2006 Olly Betts * HACKING: Document "make check-remote". Sat Jun 03 00:23:46 BST 2006 Olly Betts * backends/database.cc,backends/flint/dir_contents, backends/flint/flint_database.cc,backends/flint/flint_database.h, backends/quartz/dir_contents,common/database.h, include/xapian/database.h,tests/: Implement transactions for flint. Sat Jun 03 00:14:37 BST 2006 Olly Betts * tests/apitest.cc: Run tests on flint if flint is enabled, rather than if quartz is enabled. Sun May 28 23:01:45 BST 2006 Olly Betts * common/omtime.h: Add operator+ and operator+= with argument of type Xapian::timeout. Sun May 28 22:02:30 BST 2006 Olly Betts * include/xapian/errorhandler.h: Fix typos in private assignment operator and copy ctor (Error -> ErrorHandler!) Sun May 28 21:54:05 BST 2006 Olly Betts * Makefile.am,tests/Makefile.am: Add "check-remote" target which runs the subset of tests which test the remote backend. Thu May 25 16:06:06 BST 2006 Olly Betts * api/omdatabase.cc,backends/database.cc,common/database.h: Merge Xapian::Internal::open_database() into the Xapian::Database ctor which calls it; merge Xapian::Internal::open_writable_database() into the Xapian::WritableDatabase ctor which calls it. Wed May 24 08:28:40 BST 2006 Olly Betts * net/socketserver.cc: OmLineBuf -> OmSocketLineBuf. Wed May 24 08:27:22 BST 2006 Olly Betts * common/socketserver.h: OmLineBuf -> OmSocketLineBuf. Wed May 24 07:50:51 BST 2006 Olly Betts * common/Makefile.am,common/omlinebuf.h,common/socketcommon.h, net/Makefile.am,net/omlinebuf.cc,net/socketcommon.cc: Merge OmLineBuf into OmSocketLineBuf. * common/Makefile.am: Fix netutils.cc to be conditionally included when the remote backend is enabled, not the quartz backend! Tue May 23 18:59:09 BST 2006 Olly Betts * api/Makefile.am,api/errorhandler.cc,api/omerror.cc, include/xapian/error.h,include/xapian/errorhandler.h: Redo the Xapian::Error and Xapian::ErrorHandler classes. The new versions have better, clearer documentation comments and are cleaner internally. * include/xapian/error.h: Add hook to allow SWIG bindings to be built using GCC's visibility support. Tue May 23 10:08:02 BST 2006 Olly Betts * backends/quartz/btree.cc: Remove superfluous '#include '. Tue May 23 09:42:52 BST 2006 Olly Betts * backends/Makefile.am,backends/database.cc, backends/dbfactory_remote.cc,backends/net/net_database.cc, backends/net/net_termlist.cc,backends/net/net_termlist.h,common/, include/xapian/dbfactory.h,matcher/,net/socketclient.cc, net/socketcommon.cc: Eliminate the NetClient class by merging it into NetDatabase. Mon May 22 08:51:16 BST 2006 Olly Betts * common/omtime.h: Fix OmTime::operator> which failed to return false if the seconds were strictly less but the microsecond fraction was more. Sun May 21 11:53:29 BST 2006 Olly Betts * Makefile.am,bin/Makefile.am,docs/Makefile.am,examples/Makefile.am: Make use of the dist_ prefix to avoid having to list files in EXTRA_DIST as well as in *_DATA and man_MANS. Sun May 21 05:55:00 BST 2006 Olly Betts * api/dir_contents,getopt/dir_contents,queryparser/dir_contents: Add missing dir_contents files. Sun May 21 05:45:44 BST 2006 Olly Betts * tests/remotetest.cc: Remove unnecessary "#include ". Sat May 20 11:02:43 BST 2006 Olly Betts * docs/Makefile.am: doxygen_api_conf and doxygen_full_conf are generated, so aren't in srcdir! Sat May 20 10:14:52 BST 2006 Olly Betts * docs/Makefile.am: automake adds suitable rules for rebuilding doxygen_api_conf and doxygen_source_conf, so remove our less accurate versions. Fri May 19 14:43:47 BST 2006 Olly Betts * docs/Makefile.am,docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Remove "XAPIAN_DEPRECATED" from generated documentation. * docs/Makefile.am: Fix dependencies for regenerating the doxygen documentation. Fri May 19 08:12:51 BST 2006 Olly Betts * docs/scalability.html: quartzcompact and xapian-compact now allow you to set the blocksize, so there's no need to use copydatabase if you want to migrate a database to a larger blocksize. Mention gmane. Other minor tweaks. Fri May 19 07:52:23 BST 2006 Olly Betts * bin/quartzcompact.cc: Add --blocksize option to allow the blocksize to be set (default is 8K as before.) Fri May 19 07:47:13 BST 2006 Olly Betts * bin/xapian-compact.cc: Add --blocksize option to allow the blocksize to be set (default is 8K as before.) Thu May 18 11:24:17 BST 2006 Olly Betts * api/vectortermlist.h: Whitespace tweak. Tue May 16 10:09:53 BST 2006 Olly Betts * HACKING: Update details of the debian stable backport version numbering scheme. Tue May 16 06:55:14 BST 2006 Olly Betts * configure.ac: Remove unused variable from snprintf testing code. Tue May 16 04:32:34 BST 2006 Olly Betts * HACKING: Expand on the debian package building checklist. Tue May 16 04:32:07 BST 2006 Olly Betts * include/xapian/enquire.h: Note that "set_sort_by_relevance" is the default setting. Mon May 15 06:59:01 BST 2006 Olly Betts * HACKING: Update debian package building checklist. Mon May 15 03:53:53 BST 2006 Olly Betts * PLATFORMS: Update one more result before the actual release. Mon May 15 02:15:18 BST 2006 Olly Betts * NEWS,configure.ac: Updated for 0.9.6. Mon May 15 01:35:33 BST 2006 Olly Betts * PLATFORMS: Updated in preparation for the next release. Sun May 14 19:05:37 BST 2006 Olly Betts * backends/flint/flint_lock.h: Added workaround for newlib header bug. Sat May 13 07:04:14 BST 2006 Olly Betts * configure.ac: Fix snprintf tests. Sat May 13 04:52:53 BST 2006 Olly Betts * configure.ac: Tweak version.h generation to cope with CXXCPP putting carriage returns into its output as can happen on cygwin. Fri May 12 21:49:33 BST 2006 Olly Betts * HACKING: Update with the libtool patches we're now using. Fri May 12 21:43:02 BST 2006 Olly Betts * include/xapian/version_h.cc: Trim trailing whitespace. Fri May 12 20:43:47 BST 2006 Olly Betts * configure.ac,include/xapian/version_h.cc: Replace @@ with " instead of @, so we can write @deprecated. Fix more compilation problems. Fri May 12 19:00:08 BST 2006 Olly Betts * include/xapian/version_h.cc: Fix compilation problem. Fri May 12 01:19:14 BST 2006 Olly Betts * api/version.cc,include/xapian/version_h.cc: Rename Xapian::xapian_version_string() and companions to Xapian::version_string(). Keep the old functions as aliases which are marked as deprecated. Wed May 10 18:25:59 BST 2006 Olly Betts * include/xapian/enquire.h: Remove bogus documentation for a parameter which doesn't exist. Tue May 09 19:17:23 BST 2006 Olly Betts * bin/Makefile.am: Remove trailing whitespace. * bin/xapian-compact.cc: Fix renaming of "iamflint.tmp" for MS Windows where you can't rename an open file. Tue May 09 15:57:26 BST 2006 Olly Betts * configure.ac: Fix reversed conditional in test for snprintf (which affects cygwin). Mon May 01 21:49:46 BST 2006 Olly Betts * tests/queryparsertest.cc: Add another prefix testcase to improve coverage. Sat Apr 29 20:16:46 BST 2006 Olly Betts * docs/remote_protocol.html: Document keep-alive messages. Thu Apr 13 14:49:48 BST 2006 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: Add rules to handle a boolean filter with a "+" in front (such as +site:xapian.org). Wed Apr 12 18:42:31 BST 2006 Olly Betts * PLATFORMS: More updates for 0.9.5. Tue Apr 11 19:56:16 BST 2006 Olly Betts * matcher/Makefile.am: Need to add "-I${top_builddir}/include" to INCLUDES so that xapian/version.h is found. Tue Apr 11 19:24:59 BST 2006 Olly Betts * backends/database.cc,configure.ac,include/xapian/version_h.cc, matcher/multimatch.cc,matcher/stats.cc,tests/apitest.cc, testsuite/backendmanager.cc,testsuite/backendmanager.h: Eliminate XAPIAN_BUILD_BACKEND_* from config.h and just use XAPIAN_HAS_*_BACKEND from xapian/version.h instead. Tue Apr 11 18:32:52 BST 2006 Olly Betts * include/Makefile.am: Add xapian/version.h.timestamp as a dependency on all-local so that xapian/version.h actually gets regenerated when required. Tue Apr 11 17:52:24 BST 2006 Olly Betts * api/omenquire.cc,backends/flint/flint_btreebase.cc, backends/quartz/btree_base.cc,common/utils.h,configure.ac: Disable MSVC warning 4800 (on int to bool conversions) in config.h and then we can remove the "fixes" elsewhere. Tue Apr 11 16:28:01 BST 2006 Olly Betts * configure.ac: Simpler check for VALGRIND being set to empty value. Tue Apr 11 01:04:32 BST 2006 Olly Betts * PLATFORMS: Add a summary. Tue Apr 11 00:45:55 BST 2006 Olly Betts * PLATFORMS: Updates from boxes which were down when I did the release. Mon Apr 10 17:06:46 BST 2006 Olly Betts * api/omenquire.cc,backends/flint/flint_btreebase.cc, backends/flint/flint_utils.h,backends/quartz/btree_base.cc, backends/quartz/quartz_utils.h,common/omassert.h: Fix more MSVC7 warnings (I spoke too soon). Mon Apr 10 15:56:52 BST 2006 Olly Betts * include/xapian/query.h: Another MSVC7 warning fix. Should be free of warnings now. Mon Apr 10 14:46:34 BST 2006 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_utils.h, backends/quartz/quartz_utils.h,bin/quartzcompact.cc, bin/xapian-compact.cc,common/omdebug.h,common/utils.h, include/xapian/query.h,languages/header.h,matcher/multimatch.cc: Fix assorted MSVC7 warnings. Sun Apr 09 04:56:09 BST 2006 Olly Betts * HACKING: Expand on details of what's required when changing Xapian (discuss documentation requirements, expand on why feature tests are vital). * HACKING: Update section on building debian packages. Sat Apr 08 20:02:19 BST 2006 Olly Betts * NEWS,PLATFORMS,configure.ac: Updated for 0.9.5. Fri Apr 07 23:53:08 BST 2006 Olly Betts * tests/api_anydb.cc,tests/api_db.cc,tests/btreetest.cc: Correct spelling of "existant" to "existent". Fri Apr 07 19:13:24 BST 2006 Olly Betts * configure.ac: We don't use strcasecmp, so don't probe for it. Fri Apr 07 18:30:40 BST 2006 Olly Betts * common/utils.h: Fixes for MSVC7 compilation. Fri Apr 07 17:19:43 BST 2006 Olly Betts * backends/flint/flint_table.cc,backends/quartz/btree.cc: Fixes for MSVC compilation. Fri Apr 07 16:04:08 BST 2006 Olly Betts * backends/flint/flint_cursor.h: Fix incorrect example code in documentation comment. * backends/flint/flint_table.cc,backends/flint/flint_table.h: Remove unused method FlintTable::find_key(). Fri Apr 07 16:02:40 BST 2006 Olly Betts * AUTHORS: Updated. Fri Apr 07 15:58:31 BST 2006 Olly Betts * debian/control.in: copydatabase and xapian-compact are packaged in xapian-tools, so add them to the documented list of tools included. Fri Apr 07 15:12:43 BST 2006 Olly Betts * net/tcpserver.cc: Set xapian-tcpsrv to allow 5 connections in the listen queue instead of just one. Fri Apr 07 13:28:15 BST 2006 Olly Betts * tests/remotetest.cc: Check mset size in tcpmatch1. Fri Apr 07 01:26:03 BST 2006 Olly Betts * xapian.spec.in: Man pages may be gzipped. Thu Apr 06 14:41:29 BST 2006 Olly Betts * HACKING: aclocal is part of automake, not autoconf. Thu Apr 06 01:29:21 BST 2006 Olly Betts * bin/,examples/copydatabase.cc,examples/delve.cc,examples/quest.cc: In the "--help" output, add "Options:" before the list of options. Thu Apr 06 01:11:31 BST 2006 Olly Betts * xapian-config.in: Tweak to improve help2man output. Wed Apr 05 16:26:15 BST 2006 Fabrice Colin * xapian.spec.in: Package man pages. Wed Apr 05 16:23:49 BST 2006 Olly Betts * Makefile.am,bin/Makefile.am,examples/Makefile.am: Include generated man pages in the distribution tarball. Wed Apr 05 02:48:27 BST 2006 Olly Betts * debian/TODO: Updated. Wed Apr 05 02:44:15 BST 2006 Olly Betts * ./,examples: svn:ignore man pages. Wed Apr 05 02:43:08 BST 2006 Olly Betts * bin/Makefile.am,examples/Makefile.am: No need to make man pages depend on config.h, since the binaries will already. Wed Apr 05 02:42:42 BST 2006 Olly Betts * Makefile.am: Generate man page for xapian-config. Wed Apr 05 00:59:53 BST 2006 Olly Betts * examples/Makefile.am: Use help2man to generate manpages for the installed binaries in examples. Wed Apr 05 00:56:11 BST 2006 Olly Betts * bin/omtcpsrv.cc: Rename to bin/xapian-tcpsrv.cc. * bin/omprogsrv.cc: Rename to bin/xapian-progsrv.cc. * HACKING,bin/Makefile.am,configure.ac: Use help2man to generate manpages for the installed binaries in bin. Tue Apr 04 16:44:54 BST 2006 Olly Betts * include/xapian/enquire.h: Note example of BM25Weight parameters which make set_sort_by_relevance_then_value useful. Tue Apr 04 16:35:58 BST 2006 Olly Betts * api/omenquire.cc,include/xapian/enquire.h,matcher/,tests/api_db.cc: Implement Enquire::set_sort_by_relevance_then_value(). Tue Apr 04 01:05:41 BST 2006 Olly Betts * common/omenquireinternal.h: sort_key no longer needs to be mutable now that MSetSortCmp has been removed. Mon Apr 03 02:03:12 BST 2006 Olly Betts * matcher/multimatch.cc: Removed dead code (class MSetSortCmp). Sun Apr 02 16:37:38 BST 2006 Olly Betts * net/tcpserver.cc: Don't perform a name lookup on the IP address which an incoming connection is from as that could easily slow down the search response - instead just print the IP address itself if output is verbose. Sun Apr 02 13:28:31 BST 2006 Olly Betts * api/omenquire.cc,common/,docs/remote_protocol.html, matcher/multimatch.cc,matcher/networkmatch.cc,matcher/networkmatch.h, net/socketclient.cc,net/socketserver.cc: Change bool sort_by_relevance to enum sort_by in preparation for adding "sort_by_relevance_then_value". Fri Mar 31 22:32:16 BST 2006 Olly Betts * examples/copydatabase.cc,examples/quest.cc: Add --help and --version options. * examples/delve.cc: Tidy up output from --help and --version options. Fri Mar 31 19:01:25 BST 2006 Olly Betts * bin/quartzcheck.cc: Fix SEGV when run with no arguments (introduced by last change). Fri Mar 31 17:57:27 BST 2006 Olly Betts * bin/quartzcheck.cc: Add --version option. Tidy up output from --help. Fri Mar 31 17:43:25 BST 2006 Olly Betts * bin/quartzcompact.cc: Include --help and --version in --help output. * bin/quartzdump.cc: Add --help and --version options. Terminate list of long options so that "quartzdump --foo" no longer segfaults. Fri Mar 31 17:27:09 BST 2006 Olly Betts * bin/quartzcompact.cc: Tweak --help and --version output for consistency with other binaries. Terminate list of long options so that "quartzcompact --foo" no longer segfaults. Fri Mar 31 16:47:02 BST 2006 Olly Betts * bin/omtcpsrv.cc: Make OPT_HELP and OPT_VERSION positive numbers. Only give synopsis line for --help, not for syntax error. * bin/xapian-compact.cc: List --help and --version in --help output. Terminate list of long options so that "xapian-compact --foo" no longer segfaults. Fri Mar 31 16:20:24 BST 2006 Olly Betts * bin/omtcpsrv.cc: Added --help and --version options. Thu Mar 30 11:51:21 BST 2006 Philip Neustrom * docs/remote_protocol.html: Document messages for requesting and sending a termlist and a document. Wed Mar 29 19:39:05 BST 2006 Olly Betts * backends/flint/flint_termlist.cc,backends/quartz/quartz_termlist.cc: Add missing spaces in debug output. Fri Mar 17 09:22:54 GMT 2006 Olly Betts * api/vectortermlist.h,backends/net/net_termlist.cc, backends/net/net_termlist.h,common/alltermslist.h,common/termlist.h, matcher/branchtermlist.h: Make TermList::positionlist_begin() pure virtual and put dummy implementations in BranchTermList and other subclasses which can't (or don't) implement it. This makes it hard to accidentally fail to implement it in a backend's TermList subclass. * backends/net/net_termlist.h: positionlist_begin() now throws UnimplementedError instead of InvalidOperationError. Fri Mar 17 08:46:52 GMT 2006 Olly Betts * api/omdatabase.cc: There's no need for the MultiTermList wrapper in the common case where we're only dealing with a single database. Fri Mar 17 07:54:54 GMT 2006 Olly Betts * backends/net/net_termlist.h: Remove unused "positions" member. Fri Mar 17 07:07:57 GMT 2006 Olly Betts * backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h, tests/api_posdb.cc: Fix TermIterator::positionlist_begin() to work on TermIterator from Database::termlist_begin(). Fri Mar 17 03:47:04 GMT 2006 Olly Betts * include/xapian/enquire.h: Fix "unused parameter" warning from previous change. Thu Mar 16 05:20:16 GMT 2006 Olly Betts * api/omenquire.cc,include/xapian/enquire.h: Move Enquire::get_matching_terms_end() inline in header. Thu Mar 16 04:28:20 GMT 2006 Olly Betts * api/omdocument.cc,configure.ac,include/xapian/document.h: Move Document::termlist_end() inline in header. Fri Mar 10 04:55:57 GMT 2006 Olly Betts * INSTALL: Improve wording. Fri Mar 10 04:49:09 GMT 2006 Olly Betts * backends/quartz/bcursor.h: Fix incorrect method name in documentation comment. Fri Mar 10 04:39:45 GMT 2006 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Btree::find_key() is unused so remove it. Fri Mar 10 04:29:46 GMT 2006 Olly Betts * HACKING: Note that we now use a lightly patched version of libtool 1.5.22. Fri Mar 10 02:55:48 GMT 2006 Olly Betts * docs/overview.html: Bring up to date. Wed Mar 08 02:32:49 GMT 2006 Olly Betts * queryparser/queryparser.lemony: Fix FLAG_BOOLEAN_ANY_CASE to really allow any case combination - previously it only allowed all uppercase or all lowercase. * tests/queryparsertest.cc: Add feature and regression tests for FLAG_BOOLEAN_ANY_CASE. * tests/queryparsertest.cc: Rename test cases to more descriptive names. Tue Mar 07 19:59:54 GMT 2006 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix QueryParser's handling of terms with trailing "#", "+", or "-" when set_database has been called and the term doesn't exist in the database with the suffix. Tue Feb 21 21:14:22 GMT 2006 Olly Betts * include/xapian/deprecated.h: Allow xapian-bindings to override deprecation warnings. Tue Feb 21 17:55:17 GMT 2006 Olly Betts * backends/flint/flint_database.cc: Note that "flicklock" should be "flintlock"! Tue Feb 21 14:13:08 GMT 2006 Olly Betts * PLATFORMS: Updated. Tue Feb 21 14:12:47 GMT 2006 Olly Betts * HACKING: Update the "how to do a release" list. Tue Feb 21 00:17:40 GMT 2006 Olly Betts * NEWS,PLATFORMS,configure.ac: Updated for 0.9.4. Mon Feb 20 21:15:46 GMT 2006 Olly Betts * api/omdocument.cc,api/omenquire.cc,api/omquery.cc,include/xapian/, queryparser/queryparser.cc: GCC 3.2 actually doesn't like __attribute__((deprecated)) on method definitions, so just put declarations of deprecated methods in the headers, and move definitions into the library. Mon Feb 20 16:04:33 GMT 2006 Olly Betts * tests/api_anydb.cc,tests/api_db.cc,tests/api_nodb.cc: Update uses of deprecated methods and functions. Mon Feb 20 15:47:31 GMT 2006 Olly Betts * include/xapian/document.h: __attribute__((deprecated)) doesn't work on method definitions with default parameters on GCC 3.2 so fix header to overload instead. Mon Feb 20 13:44:14 GMT 2006 Olly Betts * include/xapian/enquire.h: Add documentation comment for Enquire::set_sort_by_value_then_relevance(). Sun Feb 19 23:18:09 GMT 2006 Olly Betts * include/Makefile.am,include/xapian/: Flag deprecated methods such that the compiler gives a warning, for compilers which support such a feature. Sun Feb 19 22:58:55 GMT 2006 Olly Betts * COPYING: Update second occurrence of old FSF address. Sun Feb 19 22:46:49 GMT 2006 Olly Betts * README: Add pointer to HACKING. Change "CVS access" to "SVN access". Sun Feb 19 01:46:00 GMT 2006 Olly Betts * api/version.cc: Correct typo in name of function xapian_revision(). Thu Feb 16 10:23:59 GMT 2006 Olly Betts * xapian-config.in: Oops, fix previous fix (I'd pasted the substituted result from testing the patch...) Thu Feb 16 10:16:31 GMT 2006 Olly Betts * PLATFORMS: Updated from tinderbox. Thu Feb 16 10:15:51 GMT 2006 Olly Betts * xapian-config.in: Need to set exec_prefix and prefix at top of script as they're used by various @SUBSTITUTIONS@. Thu Feb 16 00:09:34 GMT 2006 Olly Betts * NEWS,PLATFORMS,configure.ac: Updated for 0.9.3. Wed Feb 15 21:58:23 GMT 2006 Olly Betts * xapian-config.in: Fix option loop to work on shells other than bash. Wed Feb 15 21:38:38 GMT 2006 Olly Betts * include/xapian/database.h: Tweak wording of a documentation comment. Wed Feb 15 21:34:55 GMT 2006 Olly Betts * include/xapian/queryparser.h: Fix documentation comments for the values of QueryParser::feature_flag so doxygen actually pulls out the documentation for them. Add documentation for the parameters of QueryParser::parse_query(). Wed Feb 15 21:26:48 GMT 2006 Olly Betts * bin/quartzcheck.cc: If the database is too broken to open, emit a warning message and bump the error count. Wed Feb 15 21:23:38 GMT 2006 Olly Betts * docs/queryparser.html: Document right-truncation. Wed Feb 15 21:08:37 GMT 2006 Olly Betts * xapian-config.in: Fixed to output usage correctly if no arguments are specified. Mon Feb 13 17:43:08 GMT 2006 Olly Betts * xapian-config.in: Expand dependency_libs recursively. It's not *that* hard, and we're just storing up problems for the future by ignoring the issue. Mon Feb 13 16:57:36 GMT 2006 Olly Betts * HACKING: Devlopers also need makeindex installed for documentation building. Note that dvips and makeindex are usually packaged with TeX. Mon Feb 13 15:16:02 GMT 2006 Olly Betts * configure.ac,xapian-config.in: Some Linux distros have an unhelpful policy of not packaging .la files, and on Linux link_all_deplibs_CXX=no so we don't actually need to link in the dependency_libs. So use the value of link_all_deplibs_CXX from configure to control whether we link against dependency_libs. * xapian-config.in: Factor out common code into shell functions, and tidy up --help output. * xapian-config.in: Re entry "Tue May 11 20:55:56 BST 2004": the (C) dates I mined from CVS included a BrightStation (C), but the few fragments of that version which survive are actually from glib-config (or one of the myriad of *-config scripts which look very like it), and are just standard Bourne shell idioms anyway. Mon Feb 13 13:59:02 GMT 2006 Olly Betts * PLATFORMS: td174 is gone. * PLATFORMS: Compaq C++ 7.1 seems to have better template support (but fails to link binaries). Mon Feb 13 12:22:23 GMT 2006 Olly Betts * HACKING,testsuite/testsuite.cc: XAPIAN_TESTSUITE_PLAIN_OUTPUT -> XAPIAN_TESTSUITE_OUTPUT=plain. Sun Feb 12 18:29:55 GMT 2006 Olly Betts * backends/database.cc,tests/api_nodb.cc: Trying to open a database for reading which doesn't exist now fails with DatabaseOpeningError instead of FeatureUnavailableError. Added regression test nosuchdb1. Thu Feb 09 10:48:10 GMT 2006 Olly Betts * net/socketserver.cc: Add missing '#include ' when TIMING_PATCH is defined. Wed Feb 08 08:22:09 GMT 2006 Olly Betts * HACKING: Now use libtool 1.5.22 for generating snapshots and releases (includes a number of bug-fixes). * HACKING,docs/doxygen_api_header.html_tmpl, docs/doxygen_full_header.html_tmpl: Now use doxygen 1.4.6 for generating snapshots and releases (nicer output). * docs/doxygen_full_header.html_tmpl: Title "Internal Source Documentation" rather than "Full source documentation". Sun Feb 05 06:19:29 GMT 2006 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: The QueryParser now recognises "AND NOT" as a synonym for "NOT". Mon Jan 16 18:19:26 GMT 2006 Olly Betts * backends/quartz/quartz_utils.h: Fix compiler warning. Mon Jan 16 18:17:27 GMT 2006 Olly Betts * HACKING,backends/flint/,backends/muscat36/,backends/quartz/, bin/quartzcompact.cc,bin/xapian-compact.cc,common/Makefile.am, common/safeerrno.h,net/,tests/btreetest.cc,tests/quartztest.cc, testsuite/backendmanager.cc,testsuite/testsuite.cc: Sorted out a cleaner workaround for Compaq C++'s oddity. Mon Jan 16 17:18:56 GMT 2006 Olly Betts * common/safewindows.h: Fix typo in file description. Mon Jan 16 13:29:48 GMT 2006 Olly Betts * backends/quartz/quartz_database.cc: Reverse order of errno includes which seems to make Compaq's C++ compiler happier. Sun Jan 15 23:52:01 GMT 2006 Olly Betts * backends/flint/flint_database.cc,backends/flint/flint_table.cc, backends/quartz/btree.cc,backends/quartz/quartz_database.cc, backends/quartz/quartz_log.cc,configure.ac,net/socketcommon.cc, net/tcpclient.cc,testsuite/backendmanager.cc: Compaq C++ requires sys/errno.h to get ENOENT and most other EXXX codes defined. Sun Jan 15 23:41:15 GMT 2006 Olly Betts * bin/xapian-compact.cc: Initialise 2 variables to avoid compiler warnings. Sun Jan 15 23:38:11 GMT 2006 Olly Betts * xapian-config.in: If libxapian.la's dependency_libs contains another .la file, crudely transform to a pair of -L and -l options. Ideally we should recursively pull in dependency_libs from that .la file, but that's too hard to do in sh. Sun Jan 15 21:43:26 GMT 2006 Olly Betts * queryparser/queryparser.lemony,queryparser/queryparser.lt: Eliminate ParseAlloc's mallocProc parameter and ParseFree's freeProc parameter - we always pass malloc and free, and get warnings from some compilers because we're passing a C-linkage function for a C++-linkage function pointer. * testsuite/testsuite.cc,testsuite/testsuite.h: Fix functions registered as signal handlers and pass to atexit to have C linkage. Sun Jan 15 14:49:45 GMT 2006 Olly Betts * backends/quartz/quartz_log.cc: #include for strerror. Sun Jan 15 04:36:49 GMT 2006 Olly Betts * include/xapian/queryparser.h,queryparser/queryparser.cc: Add Stopper::get_description() and SimpleStopper::get_description(). Sat Jan 14 21:43:32 GMT 2006 Olly Betts * configure.ac: Fix backwards logic in snprintf configure test. Also define SNPRINTF_ISO to be an snprintf with ISO C90 semantics for the return value (if one exists), with SNPRINTF being defined to any snprintf which at least performs truncation (which in many cases is sufficient). Sat Jan 14 04:47:33 GMT 2006 Olly Betts * queryparser/queryparser.lt: Fix aCC warnings. Sat Jan 14 04:47:00 GMT 2006 Olly Betts * common/utils.h: Fix aCC warning. Fri Jan 13 18:25:04 GMT 2006 Olly Betts * configure.ac: Turn on more warnings for aCC; suppress existing warning ("Entire translation unit was empty") since it's not useful to us. Fri Jan 13 03:22:26 GMT 2006 Olly Betts * configure.ac: The configure test for snprintf uses memcmp, so we need to "#include " for it to work reliably. Wed Jan 11 03:14:30 GMT 2006 Olly Betts * configure.ac: If not cross-compiling, try to actually run a test program built with the C++ compiler, not just link one. Wed Jan 11 03:06:28 GMT 2006 Olly Betts * configure.ac: Note the library version info which 0.9.3 will probably need. Tue Jan 10 22:41:36 GMT 2006 Olly Betts * configure.ac: Fix to actually skip the check for valgrind if VALGRIND is set to an empty value. Tue Jan 10 01:08:10 GMT 2006 Olly Betts * PLATFORMS: Updates from the tinderbox. Mon Jan 09 01:35:57 GMT 2006 Olly Betts * backends/muscat36/io_system.cc,bin/xapian-compact.cc, common/omdebug.cc: More sprintf tweaks. Mon Jan 09 00:58:33 GMT 2006 Olly Betts * bin/xapian-compact.cc: Use snprintf if we have it. Sun Jan 08 03:51:52 GMT 2006 Olly Betts * testsuite/backendmanager.cc: Fix conditional compilation of flint backend to use XAPIAN_BUILD_BACKEND_FLINT instead of XAPIAN_BUILD_BACKEND_QUARTZ. Sun Jan 08 02:11:30 GMT 2006 Olly Betts * configure.ac: Disable flint backend by default if building for djgpp or msdos. Sun Jan 08 02:09:48 GMT 2006 Olly Betts * backends/flint/flint_lock.cc: Cast NULL to (void*) to avoid "missing sentinel" warning from GCC4. Sat Jan 07 19:09:33 GMT 2006 Olly Betts * HACKING,docs/tests.html: Merge the "running tests" section of docs/tests.html into the similar section in HACKING, and make docs/tests.html refer the reader to HACKING for more information. * HACKING,tests/apitest.cc: Remove OM_TEST_BACKEND. You can now use the "-b" switch to apitest to control which backend is used so it's pretty much redundant. * HACKING,testsuite/testsuite.cc: Rename XAPIAN_SIG_DFL to XAPIAN_TESTSUITE_SIG_DFL. * HACKING,testsuite/testsuite.cc: Add XAPIAN_TESTSUITE_PLAIN_OUTPUT to disable use of ANSI escape sequences in test output. Sat Jan 07 09:13:06 GMT 2006 Olly Betts * tests/queryparsertest.cc: Write top-bit set characters using \xXX notation to avoid warnings from Intel's C++ compiler. Sat Jan 07 07:13:25 GMT 2006 Olly Betts * configure.ac: TYPE_SOCKLEN_T fails hard, so only run it if we've successfully run other socket tests. Sat Jan 07 05:29:39 GMT 2006 Olly Betts * queryparser/accentnormalisingitor.h: #include for CHAR_BIT. Fri Jan 06 21:24:01 GMT 2006 Olly Betts * bin/xapian-compact.cc: Fix printf type mismatch on 64 bit platforms. Fri Jan 06 18:05:30 GMT 2006 Olly Betts * queryparser/queryparser.cc,queryparser/queryparser.lemony, queryparser/queryparser_internal.h: Replace pair with a simple class BoolAndString - the pair results in a 4328 byte symbol on HP-UX which gets truncated (to 4000 bytes). Fri Jan 06 12:55:37 GMT 2006 Olly Betts * PLATFORMS: Updated from tinderbox. Thu Jan 05 16:12:00 GMT 2006 Olly Betts * configure.ac: Oops, remove hack left over from testing. Thu Jan 05 16:09:06 GMT 2006 Olly Betts * configure.ac: Add sanity check for MS Windows that "find" is Unix-like find, not MSDOS-like. Thu Jan 05 04:27:29 GMT 2006 Olly Betts * INSTALL,PLATFORMS,README: Updated. Mon Dec 19 12:53:38 GMT 2005 Olly Betts * AUTHORS,PLATFORMS: Add success report for Fedora Core 4. Mon Dec 19 12:52:55 GMT 2005 Olly Betts * include/xapian/database.h: Improve a couple of documentation comments. Sun Dec 11 01:33:58 GMT 2005 Olly Betts * queryparser/queryparser.lemony: Fix handling of "+" terms in a query when the default query operator is AND. * tests/queryparsertest.cc: Add regression test. Fri Dec 09 05:54:33 GMT 2005 Olly Betts * languages/api.cc: Check for malloc and calloc failing to allocate memory and throw an exception. Richard has fix this upstream in snowball, so this is a temporary fix until we import a new version of snowball. Fri Dec 09 02:15:38 GMT 2005 Olly Betts * api/omenquire.cc: Added assertions that the internal ptr isn't NULL to ESet::end() and ESet::get_description(). Fri Dec 09 02:14:13 GMT 2005 Olly Betts * HACKING: Note platforms valgrind now has solid support for; Improve phrasing in a few places. Thu Dec 08 23:13:09 GMT 2005 Olly Betts * INSTALL: Update URL for stlport to sourceforge site, which seems to be where the action is now. Thu Dec 08 04:13:11 GMT 2005 Olly Betts * testsuite/testsuite.cc: Fix testsuite harness to work with valgrind on 64 bit platforms (it's not documented, but VALGRIND_COUNT_LEAKS requires the count parameters to be 64 bit on such platforms - i.e. long rather than int as we were using). Tue Nov 01 13:22:50 GMT 2005 Olly Betts * PLATFORMS: Sourceforge have a ppc64 linux box. Xapian builds and works out of the box, so add success report for this platform. Thu Oct 27 09:32:24 BST 2005 Fabrice Colin * xapian.spec.in: Invoke %setup correctly. Sat Oct 01 03:25:50 BST 2005 Olly Betts * bin/xapian-compact.cc: Added "--multipass" option to merge postlists in pairs or triples until all are merged. Generally this is faster than an N-way merge, but it does require more disk space for temporary files so it's not the default. Fri Sep 30 18:02:32 BST 2005 Olly Betts * include/xapian/enquire.h: Give pointer to replacements for the deprecated Enquire sorting methods. Wed Sep 28 02:16:03 BST 2005 Olly Betts * bin/xapian-compact.cc: Use a vector to store the list of source databases, in preparation for merging multiple postlist tables in more than one pass. Mon Sep 26 22:22:24 BST 2005 Olly Betts * .: svn:ignore docsource.mk. Mon Sep 26 19:54:15 BST 2005 Olly Betts * bin/: svn:ignore xapian-compact. Mon Sep 26 19:50:13 BST 2005 Olly Betts * backends/flint/flint_positionlist.cc: Remove trailing whitespace. Wed Sep 21 01:31:23 BST 2005 Olly Betts * api/Makefile.am: Fixed VPATH build which was broken by the addition of version.cc. Tue Sep 20 23:38:05 BST 2005 Olly Betts * backends/flint/flint_lock.cc: Don't pass NULL for second parameter of execl(). Tue Sep 20 21:32:04 BST 2005 Olly Betts * api/Makefile.am,api/version.cc,include/xapian/version_h.cc: Add 4 functions to report version information for the library version being used (which may not be the same as that compiled against if shared libraries are in use): xapian_version_string(), xapian_major_version(), xapian_minor_version(), xapian_revision(). Sat Sep 17 14:07:32 BST 2005 Richard Boulton * backends/flint/flint_lock.cc: Pass two NULLs to execl() to avoid getting a warning ("not enough variable arguments to fit a sentinel", observed on Ubuntu breezy powerpc). Reported by Sidnei da Silva. Wed Sep 14 23:54:14 BST 2005 Olly Betts * HACKING: Now generate snapshots and releases with automake 1.9.6 (was 1.9.5) and libtool 1.5.20 (was 1.5.18). Tue Aug 30 14:01:55 BST 2005 Olly Betts * backends/inmemory/inmemory_database.h: Forward declare class InMemoryDatabase to fix compilation with GCC 4.0.1. Fri Aug 19 12:13:39 BST 2005 Olly Betts * backends/quartz/quartz_postlist.cc,backends/flint/flint_postlist.cc: Correct uses of termcount which should be doccount. Fri Aug 19 11:48:51 BST 2005 Olly Betts * include/xapian/enquire.h: Fix prototype for ESet::operator[] to take parameter of type termcount instead of doccount. Wed Aug 17 11:50:54 BST 2005 Olly Betts * common/safewindows.h: Fix compilation for cygwin. Tue Aug 16 16:01:36 BST 2005 Olly Betts * backends/flint/flint_types.h,backends/quartz/quartz_types.h: Using a double to hold the total document length would be a bad idea as we need to store it exactly so kill FIXME comments that suggest perhaps we should. Fri Jul 15 11:11:35 BST 2005 Olly Betts * configure.ac,NEWS,PLATFORMS: Updated for 0.9.2. Fri Jul 15 02:31:11 BST 2005 Olly Betts * preautoreconf: Change directory to the directory that the preautoreconf script is in before doing anything else. Fri Jul 15 01:02:29 BST 2005 Olly Betts * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in,configure.ac: Eliminate TOP_SRCDIR and TOP_BUILDDIR - it's better to just use top_srcdir and top_builddir directly. Fri Jul 15 00:48:39 BST 2005 Olly Betts * configure.ac: Fix superfluous shell quoting. Fri Jul 15 00:28:40 BST 2005 Olly Betts * configure.ac,docs/Makefile.am,preautoreconf,Makefile.am: Generate the list of source files to feed to doxygen by inspecting all the Makefile.am files prior to running autoreconf rather than by using "find" when the user runs ./configure. This speeds up configure, avoids generating docs for random .cc and .h files which aren't part of xapian-core, and avoids problems with picking up FIND.EXE on MS Windows. Thu Jul 14 12:49:36 BST 2005 Olly Betts * common/,matcher/multimatch.cc,matcher/networkmatch.cc, matcher/networkmatch.h,net/socketclient.cc,net/socketserver.cc, tests/api_db.cc: Implement sorting on a value with the remote backend. Wed Jul 13 01:25:17 BST 2005 Olly Betts * include/xapian/database.h,include/xapian/dbfactory.h, net/socketclient.cc: Regularise horizontal whitespace. Tue Jul 05 03:03:57 BST 2005 Olly Betts * include/xapian/queryparser.h: Oops, failed to check in header changes for last change. Mon Jul 04 15:50:55 BST 2005 Olly Betts * queryparser/queryparser.lemony,queryparser/queryparser.cc: Add flag FLAG_BOOLEAN_ANY_CASE which tells the QueryParser that boolean operators such as "AND", "OR", and "NEAR" should be recognised even if they aren't fully capitalised (so "and", "And", "aNd", etc will work too). Add flag FLAG_WILDCARD which tells the QueryParser to allow right truncation e.g. "xap*". * tests/queryparsertest.cc: Add tests for FLAG_WILDCARD. Sun Jul 03 15:24:12 BST 2005 Olly Betts * backends/database.cc: Fixed to auto-detect database type when opening an existing Flint database as a WritableDatabase. Sat Jul 02 18:49:22 BST 2005 Olly Betts * tests/queryparsertest.cc: Add test case: "-site:xapian.org mail". Sat Jul 02 18:49:03 BST 2005 Olly Betts * common/Makefile.am: Ship safewindows.h header. Sat Jul 02 18:04:18 BST 2005 Olly Betts * bin/quartzcompact.cc,bin/xapian-compact.cc, backends/muscat36/io_system.cc,backends/quartz/btree.cc, backends/quartz/quartz_log.cc,backends/quartz/quartz_database.cc, backends/flint/,common/,net/,tests/,testsuite/backendmanager.cc, testsuite/testsuite.cc: Assorted tweaks towards allowing compilation with MSVC. Sat Jul 02 05:08:54 BST 2005 Olly Betts * backends/quartz/: Always define WIN32_LEAN_AND_MEAN before including windows.h to reduce the amount of stuff it includes and speed up builds; Eliminate Btree::max_key_len as MSVC doesn't like the way we define it and it actually seems simpler to just use BTREE_MAX_KEY_LEN everywhere anyway. * backends/quartz/btree.cc: Added a few more assertions. Sat Jul 02 04:11:01 BST 2005 Olly Betts * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fixed to handle "-site:microsoft.com" where site is a boolean prefix. * queryparser/Makefile.am: Add dependency to generate queryparser_token.h. Thu Jun 30 02:14:16 BST 2005 Olly Betts * testsuite/testsuite.cc: Update URL for valgrind FAQ in comment. Thu Jun 30 00:11:52 BST 2005 Olly Betts * include/xapian/enquire.h: More explicit explanation of the "descending docid with boolean weighting" trick for fast date ordered searching. Wed Jun 29 13:16:13 BST 2005 Olly Betts * NEWS: Fix typo: "configurec" -> "configure". Mon Jun 27 04:21:34 BST 2005 Olly Betts * xapian.spec.in: Package xapian-compact. Mon Jun 27 03:41:23 BST 2005 Olly Betts * backends/flint/flint_positionlist.cc,tests/api_wrdb.cc: Fixed mispacking of length for Flint positionlists with more than 127 entries, and added regression test longpositionlist1. Sun Jun 26 02:04:33 BST 2005 Olly Betts * bin/xapian-compact.cc,backends/flint/flint_cursor.h: Let PostlistCursor take ownership of the FlintTable it's iterating over which makes clean-up tidier. * bin/xapian-compact.cc: We were accidentally skipping the first entry in various tables (which essentially meant the first document from each database would go missing when merging databases). Sat Jun 25 23:45:42 BST 2005 Olly Betts * api/omdatabase.cc: Tweak get_lastdocid() code to be a little clearer. Wed Jun 22 20:50:43 BST 2005 Olly Betts * configure.ac,include/xapian/version.h.in,include/xapian/version_h.cc, include/Makefile.am: Eliminate use of "ln -s" when generating include/xapian/version.h since it seems to cause problems on Solaris in some setups and isn't really necessary. Also add dependency mechanism so version.h gets regenerated when the template is changed. Wed Jun 22 18:47:05 BST 2005 Olly Betts * docs/intro_ir.html: Citeseer has moved, so update link. Mon Jun 20 13:33:42 BST 2005 Olly Betts * configure.ac: -Wshadow causes false positives with GCC 3.0.4, so only enable it for 3.1 and up. Mon Jun 20 03:09:07 BST 2005 Olly Betts * queryparser/queryparser.lemony: "utilpy" -> "utility"! Fri Jun 17 19:54:44 BST 2005 Olly Betts * COPYING: Update FSF address. Thu Jun 16 18:43:33 BST 2005 Olly Betts * backends/flint/flint_table.cc: Fix warnings from older GCC versions. * backends/flint/flint_lock.cc: '#include ' so that SIGHUP gets defined reliably. Thu Jun 16 17:54:39 BST 2005 Olly Betts * bin/Makefile.am,bin/xapian-compact.cc: Added new "xapian-compact" program which can compact and merge flint databases in a similar way to how quartzcompact does for quartz databases. Thu Jun 16 01:22:45 BST 2005 Olly Betts * configure.ac: Check for spaces in build directory, source directory, or install prefix and die with a helpful message. Wed Jun 15 01:00:11 BST 2005 Olly Betts * backends/flint/flint_lock.cc: It seems we need to explicitly kill the child process. Otherwise when we have two databases locked just closing the connection doesn't cause the child to die. I don't understand why it's needed, but this fix is at least clean. Mon Jun 13 00:13:33 BST 2005 Olly Betts * backends/flint/flint_alltermslist.cc, backends/flint/flint_alltermslist.h, backends/flint/flint_database.cc: Rewrite of FlintAllTermsList with several fewer member variables. Also fixes a bug (the old version wasn't ignoring the metainfo entry so tests were failing). Sun Jun 12 13:08:16 BST 2005 Olly Betts * backends/quartz/quartz_alltermslist.cc: Disable assertion which is incorrect in a corner case. * tests/api_db.cc: Add test_specialterms2 as a regression test. Sun Jun 12 02:03:52 BST 2005 Olly Betts * backends/flint/flint_positionlist.cc: Encoding and decoding of position list size, and first and last entries didn't match. Reworked to match using a slightly smaller encoding. * backends/flint/flint_metafile.cc: Bumped format version. Sun Jun 12 02:02:35 BST 2005 Olly Betts * backends/flint/flint_table.cc: We were failing to append "DB" to the path when opening a table for reading - fixed. Sun Jun 12 02:00:30 BST 2005 Olly Betts * testsuite/backendmanager.cc: When a flint database was requested, we were incorrectly creating a quartz database instead - fixed. Sat Jun 11 17:53:12 BST 2005 Olly Betts * bin/quartzcompact.cc: Fix mis-repacking of keys in positionlist table when merging several databases. Thu Jun 09 01:06:35 BST 2005 Olly Betts * Makefile.am,configure.ac: Pass automake options to AM_INIT_AUTOMAKE rather than specifying them in Makefile.am. This way, the version requirements for autoconf and automake are stated close together. Mon Jun 06 19:49:36 BST 2005 Olly Betts * HACKING: Minor updates to release checklist. Mon Jun 06 17:44:19 BST 2005 Olly Betts * NEWS,configure.ac: Updated for 0.9.1. Mon Jun 06 17:28:34 BST 2005 Olly Betts * configure.ac: Describe CC_FOR_BUILD in configure --help output. Mon Jun 06 16:00:26 BST 2005 Olly Betts * PLATFORMS: Updated for 0.9.1. Fri Jun 03 03:49:33 BST 2005 Olly Betts * backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Fixed compilation failure on mingw. Fri Jun 03 01:58:08 BST 2005 Olly Betts * PLATFORMS: Updated from tinderbox. Fri Jun 03 00:46:00 BST 2005 Olly Betts * HACKING,NEWS: Snapshot and release tarballs are now bootstrapped using libtool 1.5.18 and automake 1.9.5 (though neither is currently an enforced requirement for bootstrapping). Thu Jun 02 17:36:36 BST 2005 Olly Betts * NEWS: First draft of release notes for 0.9.1. Thu Jun 02 02:05:47 BST 2005 Olly Betts * backends/flint/flint_record.cc: Fix get_doccount() to not return one too low now that the special entry is no longer in the record table! Wed Jun 01 12:41:59 BST 2005 Olly Betts * backends/flint/flint_positionlist.cc: Placate Sun's C++ compiler. Tue May 31 19:31:24 BST 2005 Olly Betts * backends/flint/flint_positionlist.h, backends/flint/flint_positionlist.cc, backends/flint/flint_metafile.cc: positionlist entries are now stored using interpolative coding (which is significantly more compact). Mon May 30 01:48:17 BST 2005 Olly Betts * backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Added locking code for MS Windows (untested). Sun May 29 01:00:41 BST 2005 Olly Betts * HACKING,NEWS,testsuite/testsuite.h: Fixed spelling mistakes. Sat May 28 22:51:15 BST 2005 Olly Betts * tests/: svn:ignore .flint/ subdirectory. * tests/Makefile.am: Remove .flint subdirectory on 'make clean'. Sat May 28 22:45:24 BST 2005 Olly Betts * docs/quartzdesign.html: Remove warning that quartz is still in development. Sat May 28 16:24:43 BST 2005 Olly Betts * backends/flint/flint_lock.h: Removed unused FlintLock method 'operator int()' which was confusing Sun's C++ compiler. Sat May 28 16:18:11 BST 2005 Olly Betts * include/xapian/query.h: Removed superfluous "Query::" which was causing the build to fail with aCC. Sat May 28 14:31:33 BST 2005 Olly Betts * backends/flint/flint_metafile.cc: Added missing '#include '. Sat May 28 14:15:36 BST 2005 Olly Betts * backends/flint/flint_positionlist.cc: Simplify code a bit. Sat May 28 02:01:12 BST 2005 Olly Betts * backends/flint/: Move the special item holding the total document length and doc id high water mark from the record table to the postlist table. This means that when appending documents, the insertion point will now always be at the end of the record table. We need to jump around the postlist table to merge anyway. Sat May 28 00:42:25 BST 2005 Olly Betts * backends/flint/flint_metafile.cc: Change metafile magic to be different from quartz, and make the metafile version a datestamp which we'll change each time the format changes; check the return value of close on the metafile. Fri May 27 22:09:45 BST 2005 Olly Betts * backends/Makefile.am,backends/flint/: Implement new fork+fcntl+exec based locking; Fix new GCC warnings. Fri May 27 22:06:14 BST 2005 Olly Betts * api/omquery.cc: Missed a warning fix. Fri May 27 22:04:18 BST 2005 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h, backends/quartz/quartz_postlist.cc,common/omtime.h,matcher/, net/socketserver.cc,net/socketcommon.cc,net/socketclient.cc, testsuite/btreecheck.h,testsuite/testsuite.cc: Fix GCC warnings from new flags. Fri May 27 20:06:52 BST 2005 Olly Betts * queryparser/queryparser.lemony: Add missing '#include '. Fri May 27 12:20:03 BST 2005 Olly Betts * common/omdebug.h: Oops, change to static_cast reveals that we were discarding const (harmlessly). Fri May 27 12:16:03 BST 2005 Olly Betts * common/omdebug.h: Replace C style cast with static_cast<>. Fri May 27 12:07:48 BST 2005 Olly Betts * configure.ac: -Wendif should be -Wendif-labels. Wed May 25 20:41:39 BST 2005 Olly Betts * configure.ac: Pass more -W flags to g++ (including -Wundef which caught the getopt problem fixed by the previous commit). Wed May 25 20:32:35 BST 2005 Olly Betts * getopt/getopt.cc: Added accidentally pruned #define so that getopt code isn't compiled in when the system uses glibc. Wed May 25 18:36:41 BST 2005 Olly Betts * configure.ac: Add -Wredundant-decls to the default CXXFLAGS for GCC. Wed May 25 03:33:34 BST 2005 Olly Betts * tests/apitest.cc,tests/api_db.cc,tests/api_db.h, testsuite/backendmanager.cc,testsuite/backendmanager.h: apitest now runs tests on flint as well. Wed May 25 03:20:12 BST 2005 Olly Betts * backends/database.cc: When automatically determining which backend to use when creating a WritableDatabase, don't try to open it as both Flint *AND* Quartz (an "else" was missing). Wed May 25 03:19:21 BST 2005 Olly Betts * backends/flint/flint_btreebase.cc: Fix typo in code which prevented a flint database from being opened. Wed May 25 01:10:51 BST 2005 Olly Betts * include/xapian/version.h.in,include/xapian/dbfactory.h, include/xapian/queryparser.h,backends/quartz/,backends/flint/: Flint backend hooked in fully, and everything now builds once more. Tue May 24 02:30:39 BST 2005 Olly Betts * HACKING: Add "email Fabrice" to the release checklist so that RPM spec files don't lag behind. The new svn-tag-release script actually builds the release tarballs rather than just copying snapshots like cvs-tag-release did, so document that. Tue May 24 01:21:18 BST 2005 Olly Betts * include/xapian/queryparser.h: Added missing documentation comments. Mon May 23 02:36:06 BST 2005 Olly Betts * configure.ac,backends/database.cc,backends/Makefile.am, backends/flint/: Cloned the quartz backend to form the basis of the new flint backend. Currently it's the same except that the quartz log feature has been removed. When creating a database without a specified backend, quartz is still used unless the environmental variable XAPIAN_PREFER_FLINT is set to a non-empty value. Sat May 21 20:58:48 BST 2005 Olly Betts * xapian.spec.in: Remove bogus %setup line left over from when we packaged xapian-core and xapian-examples together from separate tarballs. Thu May 19 01:12:27 BST 2005 Olly Betts * bin/quartzcheck.cc: Fixed corner case where you couldn't check a single Btree table which was just the DB and baseA/baseB files in a directory (Xapian doesn't produce anything like this, but btreetest does while unit testing the Btree code). Wed May 18 16:59:23 BST 2005 Olly Betts * api/omquery.cc,include/xapian/query.h: Put Query::get_terms_end() inline in header. Wed May 18 16:41:56 BST 2005 Olly Betts * api/omquery.cc,tests/api_nodb.cc: Fix SEGV on get_terms_begin() on an empty Query object. Mon May 16 22:58:09 BST 2005 Olly Betts * api/omqueryinternal.cc: Fixed compilation with --enable-debug. Sat May 14 01:02:33 BST 2005 Olly Betts * docs/doxygen_full_conf.in: Fix lingering DOXYGEN_HAVE_DOT reference. Sat May 14 00:36:14 BST 2005 Olly Betts * HACKING: Update information about the SVN tag name to use for debian files. Fri May 13 23:21:54 BST 2005 Olly Betts * HACKING: Updated release instructions to refer to SVN. Fri May 13 20:58:15 BST 2005 Olly Betts * PLATFORMS: Updated for 0.9.0. Fri May 13 02:47:42 BST 2005 Olly Betts * include/xapian/queryparser.h: Fix for Sun's C++ compiler. Fri May 13 00:09:07 BST 2005 Olly Betts * NEWS,configure.ac: Updated for 0.9.0. Thu May 12 18:54:11 BST 2005 Olly Betts * docs/doxygen_api_conf.in,docs/Makefile.am: Fix to generate docs for all backend factory functions like 0.8.5 did. Thu May 12 16:59:22 BST 2005 Olly Betts * backends/database.cc,backends/Makefile.am,include/xapian/database.h, include/xapian/dbfactory.h,include/xapian.h,include/Makefile.am: Split off database factory methods into xapian/dbfactory.h - this allows us to fix recent breakage in VPATH builds (caused by the need to include the generated file xapian/version.h from xapian/database.h) without modifying almost every Makefile.am. Wed May 11 16:52:41 BST 2005 Olly Betts * queryparser/queryparser.lemony: Move prefixed, bracketed subexpression to be an alternative for stop_term which allows "term prefix:(term2 term3)" to parse correctly. Also move non-prefixed, bracketed subexpression to be an alternative for stop_term - this doesn't change how things parse, but makes the grammar simpler. * tests/queryparsertest.cc: Added regression test for the above. * tests/Makefile.am,tests/queryparsertest.cc: Reworked queryparsertest to use the standard testsuite harness. Wed May 11 16:09:32 BST 2005 Olly Betts * include/xapian/query.h: Fix OP_ELITE_SET at 10 (the value it had in 0.8.5). Tue May 10 22:56:45 BST 2005 Olly Betts * docs/Makefile.am: Removed check for DOXYGEN_HAVE_DOT which I removed recently. Tue May 10 01:09:01 BST 2005 Olly Betts * queryparser/queryparser.lemony: Removed state parameter from TermList::add_term() since it is no longer used. Mon May 09 20:56:40 BST 2005 Olly Betts * docs/Makefile.am: Explicitly set the pool_size for latex, because we seem to overflow the default setting on many systems. * docs/Makefile.am: Use $(MAKE) instead of make. Sun May 08 23:22:37 BST 2005 Olly Betts * configure.ac: Corrected $CC -> $CXX to fix bogus message "Checking for option to enable ANSI C++ mode". * configure.ac: If any tools needed for documentation are missing and we're in maintainer mode, die with a suitable error in configure rather than with strange errors when building the documentation. Sun May 08 01:43:55 BST 2005 Olly Betts * include/xapian/queryparser.h,queryparser/queryparser.lemony, queryparser/queryparser_internal.h,queryparser/queryparser.cc: Remove QueryParser::termlist_begin() and termlist_end() since you can just use Query::terms_begin() and terms_end() on the Query object returned by QueryParser::parse_query(). Thu May 05 01:00:26 BST 2005 Olly Betts * common/utils.cc: On WIN32, don't define NOMINMAX if it is already defined. Wed May 04 00:52:04 BST 2005 Olly Betts * matcher/bm25weight.cc: Avoid needing document length if we're simply going to multiply it by zero! Tue May 03 14:07:20 BST 2005 Olly Betts * HACKING: CVS -> SVN; Note that tabs should be 8 spaces. Thu Apr 28 21:13:17 BST 2005 Olly Betts * include/xapian/database.h: Don't declare the backend factory functions if the corresponding backend has been disabled. This means that trying to use a disabled backend will be caught at compile time rather than link time. Thu Apr 28 21:12:43 BST 2005 Olly Betts * docs/intro_ir.html: Corrected two errors. Wed Apr 27 23:04:53 BST 2005 Olly Betts * configure.ac,include/xapian/version.h.in: Define XAPIAN_HAS_xxx_BACKEND for each backend which is enabled. The bindings need this, and user code might find it useful too. Wed Apr 27 03:31:50 BST 2005 Olly Betts * api/omdatabase.cc,api/ompostlistiterator.cc, api/omtermlistiterator.cc,include/xapian/, queryparser/queryparser.cc: Where end iterator is just FooIterator(NULL) put it inline in the header for efficiency. If we ever need to change an implementation, we can easily move methods back into the library and bump the library version suitably. Wed Apr 27 02:40:43 BST 2005 Olly Betts * examples/quest.cc,include/xapian/queryparser.h, queryparser/queryparser.cc,tests/queryparsertest.cc: Rename QueryParser::set_stemming_options() to set_stemming_strategy() - it's a better name and avoids confusion with the old deprecated method called set_stemming_options(). * examples/quest.cc: Added stopword handling. Wed Apr 27 02:39:33 BST 2005 Olly Betts * include/xapian/enquire.h: Fixed documentation comment. Sun Apr 24 03:02:47 BST 2005 Olly Betts * api/omstem.cc: Simplified Xapian::Stem::Internal. Sun Apr 24 02:21:22 BST 2005 Olly Betts * tests/api_nodb.cc: Extended stemlang1 to check that trying to create a stemmer for a non-existent language throws InvalidArgumentError. Fri Apr 22 01:20:57 BST 2005 Olly Betts * include/xapian/document.h: Clearer documentation comments. Thu Apr 21 15:03:42 BST 2005 Olly Betts * docs/overview.html,include/xapian/query.h: Removed lingering references to OP_WEIGHT_CUTOFF. Thu Apr 21 01:46:51 BST 2005 Olly Betts * PLATFORMS: Added success report for Ubuntu 5.04 on x86_64. Mon Apr 18 02:54:10 BST 2005 Olly Betts * docs/stemming.html: Stemming appears to be applicable to Japanese so don't say it isn't! Sat Apr 16 01:08:22 BST 2005 Olly Betts * PLATFORMS: Updated from tinderbox. Fri Apr 15 23:18:58 BST 2005 Olly Betts * languages/: Remove lingering .c versions of snowball generated sources. Fri Apr 15 02:05:27 BST 2005 Olly Betts * include/xapian/queryparser.h,queryparser/queryparser_internal.h, queryparser/queryparser.cc: Implemented QueryParser::set_database() method. * queryparser/queryparser.lemony: Allow searches for C#, etc. If a database has been set, for this and + and - suffixes, check if the term actually exists, and if not, ignore the suffix if the unsuffixed term exists. * tests/queryparsertest.cc: Added tests for # suffix. Thu Apr 14 23:39:57 BST 2005 Olly Betts * include/xapian/stem.h: Rewritten with better documentation comments. * include/xapian/stem.h: Added operator() as preferred alternative to stem_word(). * api/omstem.cc,include/xapian/stem.h: Simplified by restructuring to eliminate a few internal methods. Thu Apr 14 23:35:47 BST 2005 Olly Betts * queryparser/queryparser.cc: Make get_description() debug tracing message category INTRO not API. Thu Apr 14 19:57:06 BST 2005 Olly Betts * include/xapian/queryparser.h,queryparser/queryparser.cc: Added QueryParser::get_description() method (not very descriptive yet!) Thu Apr 14 03:30:09 BST 2005 Olly Betts * include/xapian/queryparser.h: Fixed to only include the xapian headers we actually depend on. * include/xapian/queryparser.h: Added \file and \brief documentation comments. Thu Apr 14 02:50:36 BST 2005 Olly Betts * examples/quest.cc,include/xapian.h,tests/queryparsertest.cc: Change xapian.h to automatically include xapian/queryparser.h and fix direct includes of xapian/queryparser.h in tests and examples. Thu Apr 14 01:48:39 BST 2005 Olly Betts * include/xapian/queryparser.h: Added Xapian::SimpleStopper which should be sufficient for the majority of uses. * include/xapian/queryparser.h,queryparser/queryparser_internal.h, queryparser/queryparser.cc: Changed QueryParser::set_stopper() to take a const pointer. Thu Apr 07 15:57:15 BST 2005 Olly Betts * api/omenquire.cc,common/omenquireinternal.h,common/multimatch.h, matcher/multimatch.cc,net/socketserver.cc: Tidy up after sort_bands. Thu Apr 07 15:15:27 BST 2005 Olly Betts * api/omenquire.cc,common/,include/xapian/enquire.h, matcher/networkmatch.cc,matcher/multimatch.cc,matcher/networkmatch.h, net/socketserver.cc,net/socketclient.cc,tests/api_db.cc: Enhanced Enquire sorting API and added ability to reverse sort on a value. * api/omenquire.cc: Enquire::get_description() now includes output of Enquire::Internal::get_description(). Thu Apr 07 13:55:56 BST 2005 Olly Betts * HACKING: Fixed a typo. Thu Apr 07 13:37:02 BST 2005 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h, bin/quartzcompact.cc: The "fuller compaction" code needs changes to btree.h which I'd failed to check in. Also document --fuller in 'quartzcompact --help'. Thu Apr 07 03:35:36 BST 2005 Olly Betts * bin/quartzcompact.cc: Added "fuller compaction" mode, which ignores the usual "at least 4 items per block" rule. Thu Apr 07 03:28:32 BST 2005 Olly Betts * PLATFORMS: Added success result for GCC 3.2.3 on FreeBSD 4.8; fixed a typo. Wed Apr 06 23:04:15 BST 2005 Olly Betts * queryparser/queryparser.lemony: Added FIXME comment. Wed Apr 06 22:52:53 BST 2005 Olly Betts * ./: Removed ylwrap from svn:ignore. Tue Apr 05 22:34:16 BST 2005 Olly Betts * queryparser/queryparsertest.cc,queryparser/Makefile.am, tests/Makefile.am: Moved queryparsertest into tests/. Tue Apr 05 22:15:05 BST 2005 Olly Betts * examples/: Updated svn:ignore property. Tue Apr 05 21:34:13 BST 2005 Olly Betts * queryparser/Makefile.am,configure.ac,extra/xapian/queryparser.h, extra/,include/Makefile.am,Makefile.am: Move extra/ to queryparser/; Merge extra/xapian/ into include/xapian/. Tue Apr 05 16:37:32 BST 2005 Olly Betts * m4/xapian.m4: Fix m4 quoting (argh!) Tue Apr 05 16:28:06 BST 2005 Olly Betts * m4/xapian.m4: Fix XO_LIB_XAPIAN to trim off any _svn6789 from XAPIAN_VERSION. Tue Apr 05 16:17:31 BST 2005 Olly Betts * configure.ac: Fix m4 quoting. Tue Apr 05 15:16:38 BST 2005 Olly Betts * configure.ac: #define VERSION in version.h shouldn't include any _svn6789 suffix. Tue Apr 05 13:28:23 BST 2005 Olly Betts * configure.ac: Snapshot generator now appends _svn6789 or similar to the version string, so take that into account when finding REVISION. Tue Apr 05 12:55:52 BST 2005 Olly Betts * ChangeLog.examples,Makefile.am,examples/ChangeLog: Move xapian-examples ChangeLog to ChangeLog.examples in the top-level and include in the tarball. Tue Apr 05 02:18:08 BST 2005 Olly Betts * examples/dir_contents,examples/README: Converted xapian-examples README into a dir_contents file. Tue Apr 05 02:12:31 BST 2005 Olly Betts * docs/overview.html,docs/install.html,configure.ac,Makefile.am, xapian.spec.in,examples/Makefile.am: Moved xapian-examples module to examples subdirectory of xapian-core. Tue Apr 05 00:37:05 BST 2005 Olly Betts * m4/.cvsignore,debian/.cvsignore,matcher/.cvsignore,docs/.cvsignore, tests/.cvsignore,bin/.cvsignore,.cvsignore,autoconf/.cvsignore, extra/.cvsignore,include/xapian/.cvsignore,include/.cvsignore, net/.cvsignore,common/.cvsignore,testsuite/.cvsignore, getopt/.cvsignore,languages/.cvsignore,api/.cvsignore, backends/inmemory/.cvsignore,backends/muscat36/.cvsignore, backends/net/.cvsignore,backends/quartz/.cvsignore, backends/multi/.cvsignore,backends/.cvsignore: Remove .cvsignore files, as they're not used by SVN. Thu Mar 10 01:48:20 GMT 2005 Olly Betts * testsuite/backendmanager.cc,testsuite/index_utils.cc, testsuite/index_utils.h: Rewrite of index_utils code, removing unused and unusual features. * tests/testdata/: Cleaned up data for apitest now that paragraphs don't have the odd minimum number of lines! * tests/testdata/apitest_space.txt: New index_utils code has C-like \ escapes for control characters rather than ^ escapes. Wed Mar 09 22:04:08 GMT 2005 Olly Betts * common/utils.h: Added C_isxdigit and C_isnotxdigit. Wed Mar 09 15:22:35 GMT 2005 Olly Betts * testsuite/index_utils.cc: Fixed ^x to actually decode hex values correctly. Tue Mar 08 16:57:25 GMT 2005 Olly Betts * matcher/multimatch.cc: Minor code tidy. Tue Mar 08 15:48:38 GMT 2005 Olly Betts * api/omenquire.cc,docs/matcherdesign.html,include/xapian/enquire.h, matcher/multimatch.cc,tests/api_db.cc: Removed sort_bands support. Tue Mar 08 04:13:03 GMT 2005 Olly Betts * bin/quartzcompact.cc: Fixed to add items for all tables in key order which produces results around 40% more compact (previously in the merge case, this was only happening for the postlist table). Tue Mar 08 03:30:06 GMT 2005 Olly Betts * testsuite/btreecheck.cc: Make default check output fit on a single line (at least for many databases). Tue Mar 08 02:34:41 GMT 2005 Olly Betts * matcher/multimatch.cc: Fix warning from newer versions of GCC. Sat Mar 05 00:25:07 GMT 2005 Olly Betts * api/omenquire.cc,common/omenquireinternal.h,include/xapian/enquire.h, matcher/multimatch.cc,tests/api_db.cc: Fixed Xapian::RSet to have the same "it's a handle" copy semantics as most of the other classes. Sat Mar 05 00:23:47 GMT 2005 Olly Betts * testsuite/testsuite.h: Fixed TEST_EQUAL_DOUBLE to use DBL_EPSILON correctly. Fri Mar 04 21:06:38 GMT 2005 Olly Betts * tests/testdata/etext.txt: Stripped carriage returns. Fri Mar 04 21:04:25 GMT 2005 Olly Betts * PLATFORMS: Assorted updates. Thu Mar 03 01:17:07 GMT 2005 Olly Betts * bin/quartzcompact.cc: Fixed to allow compacting a single database. Fixed handling of very last term when merging postlists. Wed Mar 02 03:18:30 GMT 2005 Olly Betts * backends/quartz/quartz_values.cc: Values are stored in sorted order so we can stop unpacking the list once we get to one after the one we're looking for. Wed Mar 02 02:59:23 GMT 2005 Olly Betts * bin/quartzcheck.cc: Now checks the structure of all the tables, not just the postlist table, and cross-checks doclen values between termlist and postlist tables. Recognises "--help" option. Should now continue after an error (typically it would crash before), and counts the number of errors found. Now exits with non-zero status if any errors were found. Tue Mar 01 18:48:25 GMT 2005 Olly Betts * xapian.spec.in: '/usr/share' -> '%{_datadir}'. Tue Mar 01 16:21:07 GMT 2005 Olly Betts * tests/api_db.cc: Fixed warning from Sun's C++ compiler. Tue Mar 01 02:02:15 GMT 2005 Olly Betts * bin/quartzcompact.cc: Extended to allow merging several quartz databases to produce a single compact quartz database. This allows for faster building - simple index in chunks, then merge the chunks. Tue Mar 01 00:08:12 GMT 2005 Olly Betts * xapian.spec.in: Put the .so in the -devel package (it's only useful for linking to - the .so.* files are all that's needed at runtime). Tue Mar 01 00:05:25 GMT 2005 Olly Betts * Makefile.am,xapian-config.in,xapian.spec.in,extra/.cvsignore, extra/Makefile.am: Eliminated the extra library for the queryparser - it's tiny compared to the main library and having it around just complicates things. Mon Feb 28 23:52:19 GMT 2005 Olly Betts * tests/api_anydb.cc: More set_length() changes. Mon Feb 28 20:31:13 GMT 2005 Olly Betts * net/socketclient.cc,net/socketserver.cc,api/omenquire.cc, api/omquery.cc,api/omqueryinternal.cc,common/, include/xapian/enquire.h,include/xapian/query.h,matcher/: Remove Query::set_length() in favour of an optional length parameter to Enquire::set_query(). Mon Feb 28 15:32:32 GMT 2005 Olly Betts * api/omqueryinternal.cc,common/Makefile.am,common/deleter_vector.h: Removed deleter_vector as it's no longer used anywhere. Mon Feb 28 15:27:42 GMT 2005 Olly Betts * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h, matcher/localmatch.cc,tests/api_anydb.cc,tests/api_nodb.cc: Eliminated Query::set_elite_set_size(). Mon Feb 28 15:15:45 GMT 2005 Olly Betts * HACKING: Note how to disable use of VALGRIND on the make check command line, or when using runtest directly. Mon Feb 28 13:36:07 GMT 2005 Olly Betts * common/omqueryinternal.h: Removed out-of-date commented out version of Xapian::Query::Internal. Mon Feb 28 13:07:42 GMT 2005 Olly Betts * backends/quartz/quartz_alltermslist.cc,tests/api_db.cc: Updated (C) dates for changes earlier this year. Mon Feb 28 13:04:41 GMT 2005 Olly Betts * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h, matcher/localmatch.cc,matcher/localmatch.h,tests/api_anydb.cc, tests/api_nodb.cc,tests/api_posdb.cc: Eliminated Query::set_window in favour of an optional parameter to the constructor, with the aim of making Query objects immutable once constructed. Mon Feb 28 12:32:26 GMT 2005 Olly Betts * extra/queryparser.lemony: Updated 2 uses of Query::set_window(). Mon Feb 28 04:43:20 GMT 2005 Olly Betts * api/omquery.cc,api/omqueryinternal.cc,common/socketcommon.h, include/xapian/query.h,matcher/,tests/api_anydb.cc: Removed OP_WEIGHT_CUTOFF, since it doesn't actually seem to add useful functionality over using Enquire::set_cutoff(). Mon Feb 28 04:31:58 GMT 2005 Olly Betts * matcher/weightcutoffpostlist.cc: Fix updating of docid in WeightCutoffPostList - the current code works, but can end up doing lots (potentially millions) of pointless loop iterations. Mon Feb 28 02:57:29 GMT 2005 Olly Betts * docs/queryparser.html: Note that + and - work on phrases and bracketed expressions. Fri Feb 25 17:06:23 GMT 2005 Olly Betts * backends/quartz/quartz_alltermslist.cc: Fix skip_to on an allterms TermIterator to set the current term when the skip_to-ed term is in the database. * tests/api_db.cc: Add regression test for this (allterms5). Wed Feb 23 19:07:30 GMT 2005 Olly Betts * configure.ac: Suppress 2 Intel C++ warnings which we can't easily code around, and enable -Werror automatically with --enable-maintainer-mode. * configure.ac: Check that the C++ compiler can actually link a program. AC_LANG_CXX doesn't, and if it can't find a C++ compiler it'll just return "g++" which just leads to a later configure test failing in a confusing way. Tue Feb 22 13:39:07 GMT 2005 Olly Betts * include/xapian/enquire.h: Improved documentation comments. * api/omenquire.cc,include/xapian/enquire.h: MSet::max_size() (which only exists so that MSet is an STL compiler) now returns MSet::size() and is inlined from the header. * include/xapian/enquire.h: Added ESet::max_size() (for STL compatibility). Tue Feb 22 00:18:33 GMT 2005 Olly Betts * configure.ac: corrected "none known for yes" or "none known for no" to "none known for g++-3.2" or similar. * configure.ac: autoconf identifies Intel's C++ compiler as GCC, so probe for which it actually is. Mon Feb 21 21:54:29 GMT 2005 Olly Betts * PLATFORMS: Updated. Mon Feb 21 16:06:32 GMT 2005 Olly Betts * PLATFORMS: Added success report for Intel C++ 8.1 on ia64 Linux (and also GCC 3.2.3 on ia64 Linux). Mon Feb 21 05:33:46 GMT 2005 Olly Betts * backends/multi/: Don't delare methods in headers if they're virtual or large. Mon Feb 21 04:11:23 GMT 2005 Olly Betts * backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h: Don't delare methods in headers if they're virtual or large. Sun Feb 20 21:13:40 GMT 2005 Olly Betts * common/multimatch.h: Removed unused "class SocketServer;". Sun Feb 20 19:47:01 GMT 2005 Olly Betts * net/socketserver.cc: Fixed typo in debug code. Sat Feb 19 18:44:17 GMT 2005 Olly Betts * PLATFORMS: Added minimal testcase which fails to compile with Compaq's C++ compiler (cxx). Sat Feb 19 04:23:51 GMT 2005 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Change Btree::find_in_block to take a bool indicating if this is a leaf block rather than an offset to subtract when it is. Fri Feb 18 04:27:16 GMT 2005 Olly Betts * HACKING: Added better description of how reference-counted API classes are structured. * include/xapian/postingiterator.h,include/xapian/termiterator.h: More (and better) documentation comments. Fri Feb 18 03:05:40 GMT 2005 Olly Betts * backends/quartz/btree.cc: Made full compaction a tiny bit more compact. Improved compaction by a few % in non-full case. Tighter bound on amount of memory to reserve to read the tag into. Fri Feb 18 00:47:41 GMT 2005 Olly Betts * api/omenquire.cc: Removed duplicate "#include ". Thu Feb 17 01:33:01 GMT 2005 Olly Betts * extra/queryparser_internal.h: Further Sun C++ fixes. Wed Feb 16 05:32:40 GMT 2005 Olly Betts * extra/queryparser.lemony: Attempted fix for Sun's C++ compiler. Tue Feb 15 02:10:35 GMT 2005 Olly Betts * extra/queryparser.cc,extra/queryparser.lemony, extra/queryparser_internal.h: Fixed namespace stuff to keep Sun's C++ compiler happy. Mon Feb 14 21:21:08 GMT 2005 Olly Betts * api/vectortermlist.h: Workaround a shortcoming in Sun's C++ compiler. Mon Feb 14 21:16:05 GMT 2005 Olly Betts * PLATFORMS: Results from upgraded sourceforge x86_64 box. Mon Feb 14 18:36:40 GMT 2005 Olly Betts * extra/xapian/queryparser.h: Fixed compilation error. Mon Feb 14 18:00:12 GMT 2005 Olly Betts * extra/xapian/queryparser.h: Added backward compatibility wrapper for old version of QueryParser::set_stemming_options(). Mon Feb 14 17:50:47 GMT 2005 Olly Betts * extra/xapian/queryparser.h: Added dummy QueryParser::set_database() (currently it ignores the parameter). Mon Feb 14 15:34:13 GMT 2005 Olly Betts * extra/lemon.c: C90, not C99! Mon Feb 14 15:20:11 GMT 2005 Olly Betts * extra/lemon.c: C, not C++. Mon Feb 14 05:49:50 GMT 2005 Olly Betts * extra/: Tweak lemon so we can avoid generating files in builddir in a VPATH build. Mon Feb 14 02:44:17 GMT 2005 Olly Betts * extra/Makefile.am: Update to reflect lempar.c -> queryparser.lt. Mon Feb 14 02:25:53 GMT 2005 Olly Betts * extra/lempar.c,extra/queryparser.lt: Rename lemon template to .lt which is more sensible than calling it lempar.c and should work with VPATH builds. Mon Feb 14 02:12:51 GMT 2005 Olly Betts * extra/Makefile.am: Fixes for VPATH builds. Mon Feb 14 01:43:59 GMT 2005 Olly Betts * configure.ac: Need to AC_SUBST(CC_FOR_BUILD). Mon Feb 14 00:19:45 GMT 2005 Olly Betts * extra/Makefile.am: Added dependency for building queryparser.h. Sun Feb 13 23:30:02 GMT 2005 Olly Betts * extra/queryparser.cc,extra/queryparser_internal.h, extra/xapian/queryparser.h: Fixed to compile with GCC 3.3. Sun Feb 13 23:09:15 GMT 2005 Olly Betts * configure.ac: Enhanced valgrind test to (a) see if --tool=memcheck is needed and (b) see if valgrind actually works (we don't want to try to use an x86 valgrind on an x86_64 box). Mon Jan 17 03:21:29 GMT 2005 Olly Betts * api/vectortermlist.h,extra/,extra/xapian/queryparser.h: Rewritten QueryParser class. Uses Lemon instead of Bison to generate the parser, which enables us to stop using static data, so this class is at last reentrant. It now uses a PIMPL style with reference counted internals like most of the other Xapian classes. And direct access to member variables has gone, which unfortunately forces an API change (bug #39). The rewrite also supports more features than the original did. * HACKING,configure.ac: No longer need Bison. * configure.ac: Need CC_FOR_BUILD to compile Lemon with. Mon Jan 17 02:40:40 GMT 2005 Olly Betts * PLATFORMS: IRIX + SGI C++ now compiles with just two warnings - unused variables in Snowball generated code. Sun Jan 16 03:19:56 GMT 2005 Olly Betts * xapian.spec.in: Don't say "%makeinstall" in a comment since rpm tries to expand it and explodes. Sat Jan 15 03:30:33 GMT 2005 Olly Betts * docs/Makefile.am: Clearer rules for making Postscript doxygen docs. Sat Jan 15 02:45:19 GMT 2005 Olly Betts * HACKING: Note that '#include ' isn't supported by GCC 2.95, and other assorted minor tweaks. Sat Jan 08 16:09:10 GMT 2005 Olly Betts * api/maptermlist.h,backends/inmemory/inmemory_database.h, backends/quartz/quartz_postlist.h,common/,matcher/localmatch.h, matcher/mergepostlist.h,matcher/phrasepostlist.h,net/progclient.cc: Fixes for SGI C++ warnings. Fri Jan 7 13:02:49 GMT 2005 Richard Boulton * common/positionlist.h: Correct out-of-date documentation comment. Tue Jan 04 03:05:26 GMT 2005 Olly Betts * matcher/multimatch.cc: Removed unnecessary class declaration. Tue Jan 04 03:02:02 GMT 2005 Olly Betts * configure.ac: Automatically enable ANSI C++ mode for SGI's compiler with '-LANG:std'; check that any automatically determined flags for ANSI C++ mode actually allow us to compile a trivial program - if they don't it probably means the compiler isn't the one we were expecting, but one installed with the same name, so we now drop the flags in this case. Thu Dec 30 00:50:58 GMT 2004 Olly Betts * extra/queryparser.yy: QueryParser::parse_query() was failing to clear termlist and unstem. Fri Dec 24 00:07:28 GMT 2004 Olly Betts * PLATFORMS: Updated from tinderbox. Thu Dec 23 21:13:46 GMT 2004 Olly Betts * backends/quartz/btree.cc: Fixed GCC compilation warning. Thu Dec 23 17:22:15 GMT 2004 Olly Betts * INSTALL,README: Updated. * README: Don't quote chunks of the GPL - just refer people to the full text in COPYING. Thu Dec 23 16:55:03 GMT 2004 Olly Betts * NEWS,PLATFORMS,configure.ac: Updated for 0.8.5 release. Tue Dec 21 13:26:55 GMT 2004 Olly Betts * docs/quickstart.html: Improved wording. Tue Dec 21 13:03:06 GMT 2004 Olly Betts * HACKING: Updated to reflect extra jobs which cvs-tag-release now does. Mon Dec 20 16:25:21 GMT 2004 Olly Betts * bin/Makefile.am: quartzcompact now uses getopt, so need to link it in our version to build on non-glibc platforms. Mon Dec 20 16:23:28 GMT 2004 Olly Betts * backends/quartz/btree.cc: Added comment noting why we can't truncate separating keys at higher levels. Thu Dec 16 14:46:28 GMT 2004 Olly Betts * HACKING: Fixed a typo, and improved wording. Mon Dec 13 02:52:52 GMT 2004 Olly Betts * backends/multi/multi_postlist.cc: Updated (C) date. Mon Dec 13 02:50:44 GMT 2004 Olly Betts * languages/: Added missing '#include ' to .cc files (probably harmless, but it should be included as the first thing any source file does). Mon Dec 13 02:21:28 GMT 2004 Olly Betts * bin/quartzdump.cc: Mark the long options as const. Mon Dec 13 02:20:08 GMT 2004 Olly Betts * bin/quartzcompact.cc: Tables sizes will always be a whole number of Kbytes, since the blocksize is, so report the size in K. Also report the change in size as well as the before and after sizes. Mon Dec 13 02:11:59 GMT 2004 Olly Betts * common/netutils.cc: Added missing '#include ' (probably harmless, but it should be included as the first thing any source file does). Mon Dec 13 01:39:53 GMT 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Renamed Btree::compress() to Btree::compact() for consistency with "full_compaction" and "quartzcompact". Also, "compress" is confusing since use "compact" and we use that term in the zlib patch. * backends/quartz/btree.cc: When full_compaction is enabled, don't fill the last few bytes of a block if that would mean we needed an extra item and the overhead for that item would use up more of the next block than we save. This reduces the table size after full compaction by up to 0.2% in my tests! Mon Dec 13 01:39:02 GMT 2004 Olly Betts * backends/multi/multi_postlist.cc: Fixed to build with AssertParanoid enabled. Mon Dec 13 00:41:28 GMT 2004 Olly Betts * bin/quartzcompact.cc: Added missing '#include ' so that largefile support is enabled and we report compression statistics for tables > 2G. * bin/quartzcompact.cc: Added --no-full / -n option to disable full compaction. This may be useful if you want to update the database after compacting it (need to test to see if this option is actually useful). Sun Dec 12 21:26:27 GMT 2004 Olly Betts * xapian-config.in: Previous attempted fix to --libs output was wrong - made it actually work. Sun Dec 12 21:24:44 GMT 2004 Olly Betts * xapian.spec.in: %makeinstall puts the wrong paths in the .la files so use "make DESTDIR=... install" instead. Wed Dec 08 15:59:44 GMT 2004 Olly Betts * NEWS: Bumped the 0.8.4 release date. Wed Dec 08 15:32:46 GMT 2004 Olly Betts * xapian-config.in: Make sure that --libs output doesn't include libxapian.la (from libxapianqueryparser.la's dependencies). Tue Dec 07 18:18:26 GMT 2004 Olly Betts * backends/quartz/quartz_log.cc: Fixed to compile on mingw. Tue Dec 07 15:57:44 GMT 2004 Olly Betts * NEWS: Updated. * api/omdatabase.cc,backends/database.cc,bin/omtcpsrv.cc, common/database.h,docs/,include/xapian/database.h,tests/api_db.cc: Added constructors to Database and WritableDatabase which fulfil the role that the Auto::open() factory functions currently do. Auto::open() is now deprecated. * api/,backends/inmemory/inmemory_database.cc, backends/quartz/quartz_database.cc,backends/quartz/quartz_postlist.h, common/expandweight.h,common/stats.h,include/xapian.h: #include no longer pulls in xapian/output.h - this removes the external ability to write a Xapian object to an ostream directly, as it's little used and potentially dangerous ('cout << mset[i];' will compile, but you almost certainly meant 'cout << *mset[i];'). You can get the old effect by writing 'cout << obj->get_description();' instead of 'cout << obj;'. Adjusted all the library sources which relied on xapian/output.h pulling in various other xapian/ headers. * backends/muscat36/da_database.cc,backends/muscat36/db_database.cc: Debug output tweaks. * common/emptypostlist.h,matcher/mergepostlist.cc,matcher/multimatch.cc: Added EmptyPostList::get_maxweight() which always returns 0, so you no longer need to explicitly set a weighting scheme on an EmptyPostList. * common/omdebug.h: Only include omstringstream.h if XAPIAN_DEBUG_VERBOSE is in effect. * extra/Makefile.am: queryparsertest needs to link to libxapian.la explicitly. * net/progclient.cc: Whitespace tweak. * testsuite/: Eliminated barely used sources indexer.h, textfile_indexer.h, and textfile_indexer.cc. * testsuite/backendmanager.cc: Removed unused functions make_strvec() and index_file_to_database(). Wed Dec 01 07:15:46 GMT 2004 Olly Betts * PLATFORMS: SF CF x86_64 machine no longer needs --disable-shared. Tue Nov 30 21:53:33 GMT 2004 Olly Betts * NEWS,PLATFORMS,configure.ac: Updated for 0.8.4 release. Tue Nov 30 03:07:43 GMT 2004 Olly Betts * configure.ac,backends/database.cc,backends/quartz/bcursor.cc, backends/quartz/quartz_database.cc, backends/quartz/quartz_postlist.cc,common/omassert.h, common/omdebug.cc,common/omdebug.h,docs/doxygen_full_conf.in, matcher/localmatch.cc,matcher/multimatch.cc,matcher/stats.cc, tests/apitest.cc,tests/btreetest.cc,testsuite/backendmanager.cc, testsuite/backendmanager.h,testsuite/testsuite.cc: Rename all the MUS_xxx defines to XAPIAN_xxx. Tue Nov 30 02:36:33 GMT 2004 Olly Betts * configure.ac,backends/quartz/btree.cc: Get configure to probe for the prototypes (if any) needed for pread and pwrite. Tue Nov 30 01:09:26 GMT 2004 Olly Betts * backends/quartz/btree.cc: Instead of trying to coax pread/pwrite prototypes out of the system headers, let's try just providing our own! Mon Nov 29 19:51:13 GMT 2004 Olly Betts * extra/Makefile.am: Moved -no-undefined to the right place, plus we also need to pass @ldflags@ and ../libxapian.la in libxapianqueryparser_la_LIBADD. Mon Nov 29 18:28:57 GMT 2004 Olly Betts * AUTHORS: Updated. Mon Nov 29 18:27:12 GMT 2004 Olly Betts * extra/Makefile.am: Added -no-undefined to libxapianqueryparser_la_LDFLAGS so it builds on mingw. Mon Nov 29 17:46:54 GMT 2004 Olly Betts * tests/Makefile.am: Don't try to run "runtest" as a test - it just needs to be a dependency of the tests. Sat Nov 27 02:58:28 GMT 2004 Olly Betts * backends/inmemory/dir_contents: Trimmed whitespace. Sat Nov 27 02:05:51 GMT 2004 Olly Betts * NEWS: Updated ready for 0.8.4 release. Sat Nov 27 02:03:40 GMT 2004 Olly Betts * tests/Makefile.am: Added a dependency so "make check" regenerates runtest if necessary. Sat Nov 27 02:02:58 GMT 2004 Olly Betts * AUTHORS: Updated. Sat Nov 27 01:59:18 GMT 2004 Olly Betts * README: Minor tweak. Sat Nov 27 01:58:53 GMT 2004 Olly Betts * configure.ac: Improved a couple of comments. Sat Nov 27 01:42:32 GMT 2004 Olly Betts * docs/: Trimmed trailing whitespace. Sat Nov 27 01:41:33 GMT 2004 Olly Betts * docs/stemming.html: Reworded text from BrightStation times which talked about "the open source release". Fri Nov 26 17:32:55 GMT 2004 Olly Betts * docs/indexerquickstart.html: Removed dead documentation. Fri Nov 26 17:11:19 GMT 2004 Olly Betts * PLATFORMS: Updated with new cygwin report. Fri Nov 26 17:07:21 GMT 2004 Olly Betts * tests/api_anydb.cc,tests/api_nodb.cc,docs/bm25.html, include/xapian/enquire.h,matcher/bm25weight.cc: Renamed BM25 parameters to match standard naming in papers and elsewhere (A->k3, B->k1, C->k2, D->b), eliminated the extra factor of 2 which our C had, and reordered the parameters to k1, k2, k3. This is an incompatible API change for BM25Weight(), so if you are using custom parameters for BM25 you'll need to update your code. Fri Nov 26 15:20:16 GMT 2004 Olly Betts * tests/runtest.in: Allow VALGRIND environmental variable to override the value we got from configure. Fri Nov 26 03:50:36 GMT 2004 Olly Betts * matcher/bm25weight.cc,matcher/tradweight.cc: termfreq is always exact for matching (we only approximate it for query expansion) so replace code to work around bad approximations with Assert() to make sure this never happens. Fri Nov 26 00:19:22 GMT 2004 Olly Betts * matcher/expandweight.cc,matcher/tradweight.cc: If we estimate the term frequency, ensure it has a sane value (>= r and <= N - R + r) rather than bodging around the problem later on. Thu Nov 25 01:29:36 GMT 2004 Olly Betts * backends/quartz/quartz_database.cc: Fixed recent cygwin change to actually compile. Thu Nov 25 01:06:03 GMT 2004 Olly Betts * bin/quartzcompact.cc: Added --help and --version; Check that the source path and desitination path aren't the same; Report each table name when we start compacting it, and some simple stats on the compaction achieved when we finish. Tue Nov 23 16:19:09 GMT 2004 Olly Betts * configure.ac: Fixed m4 quoting problem. Tue Nov 23 12:47:54 GMT 2004 Olly Betts * configure.ac: Fix the test for GCC3 used to turn on -Werror with --enable-maintainer-mode. Mon Nov 22 03:08:10 GMT 2004 Olly Betts * PLATFORMS: Assorted updates. Mon Nov 22 02:15:22 GMT 2004 Olly Betts * tests/quartztest.cc: Test with DB_CREATE_OR_OPEN in writelock1. Mon Nov 22 01:37:13 GMT 2004 Olly Betts * common/utils.cc: define NOMINMAX as a cleaner way to prevent windows.h from polluting the namespace and colliding with ANSI C++. Sat Nov 20 14:36:43 GMT 2004 Olly Betts * tests/runtest.in: --logfile-fd was renamed to --log-fd in valgrind 2.1.2 with no support for the old option name, so we must probe to decide which to use. Fri Nov 19 13:18:43 GMT 2004 Olly Betts * backends/quartz/bcursor.cc,backends/quartz/bcursor.h: Eliminated Bcursor::get_tag() - it's an internal method only used from one other method, and it now just a trivial wrapper around Btree::read_tag(). Fri Nov 19 04:20:39 GMT 2004 Olly Betts * backends/quartz/bcursor.cc,backends/quartz/btree.cc, backends/quartz/btree.h: Factored out near identical code from Btree::find_tag() and Bcursor::get_tag() into Btree::read_tag(). Thu Nov 18 03:27:52 GMT 2004 Olly Betts * backends/quartz/btree.cc: Applied the Quartz "DANGEROUS" patch, but disabled for now. This way it won't keep being broken by changes to the code. Tue Nov 16 04:29:25 GMT 2004 Olly Betts * backends/quartz/btree.cc: Ah, it's __sun__/__sun/sun, not __solaris__ (at least for x86 Solaris 9). Tue Nov 16 02:56:44 GMT 2004 Olly Betts * backends/quartz/btree.cc: Solaris defines __solaris__ not __SOLARIS__. Mon Nov 15 12:40:38 GMT 2004 Olly Betts * tests/api_db.cc: Added new test userweight1 to test user defined matching schemes. Sun Nov 14 05:20:34 GMT 2004 Olly Betts * backends/quartz/quartz_metafile.cc, backends/quartz/quartz_metafile.h: Removed unused QuartzMetaFile::erase() method. Sun Nov 14 04:55:05 GMT 2004 Olly Betts * backends/quartz/quartz_database.cc: For cygwin, use the underlying MoveFile API call for locking, as link() doesn't work on FAT partitions. And don't rely on HAVE_LINK to control whether we use link() otherwise - if the configure test somehow misfires, a compilation error is better than using rename() on Unix as that would cause a second writer to smash the lock of the first. Thu Nov 11 06:58:41 GMT 2004 Olly Betts * backends/quartz/btree.cc: Removed superfluous statement. Tue Nov 09 23:50:10 GMT 2004 Olly Betts * backends/quartz/btree.cc: Need to include sys/types.h to define ssize_t, size_t, and off_t before we prototype pread and pwrite for OSF. Tue Nov 09 22:39:00 GMT 2004 Olly Betts * backends/quartz/btree.cc: Tweaked the pread/pwrite mess to try to get it to work on OSF and x86 Solaris while not breaking it elsewhere. Tue Nov 09 19:29:37 GMT 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: More refactoring. Tue Nov 09 17:13:10 GMT 2004 Olly Betts * backends/quartz/: More refactoring. Also rearranged the contents of the quartz and btree headers, eliminating btree_types.h in the process. Tue Nov 09 16:47:13 GMT 2004 Olly Betts * backends/quartz/quartz_metafile.cc: Using fdcloser is less clear in trivial cases. Tue Nov 09 16:38:47 GMT 2004 Olly Betts * backends/quartz/quartz_database.cc: Close the fd of the lock file before trying to rename it on Windows. Tue Nov 09 07:58:02 GMT 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h, backends/quartz/btree_util.h: More refactoring. Tue Nov 09 03:24:59 GMT 2004 Olly Betts * xapian-config.in: Added --swigflags option for use with SWIG. Mon Nov 08 22:54:55 GMT 2004 Olly Betts * configure.ac,xapian-config.in: If flags are needed to select ANSI mode with the current compiler, then make xapian-config --cxxflags include them so that Xapian users don't have to jump through the same hoops we do. Mon Nov 08 04:49:21 GMT 2004 Olly Betts * backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h,backends/muscat36/, backends/net/net_database.cc,backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h,common/database.h, common/net_database.h,matcher/localmatch.cc: If a database contains no positional information, change NEAR and PHRASE queries into AND queries (as otherwise they'd return no matches at all) (bug#56). * tests/api_wrdb.cc: Added feature test phraseorneartoand1. Mon Nov 08 04:09:04 GMT 2004 Olly Betts * configure.ac,backends/quartz/btree.cc: Improved what we do to turn on pread and pwrite declarations in unistd.h so that it works on OSF and doesn't need the HAVE_GLIBC test, yet still works on OpenBSD. Mon Nov 08 03:55:51 GMT 2004 Olly Betts * backends/quartz/,testsuite/btreecheck.cc: More refactoring. Sun Nov 07 20:42:32 GMT 2004 Olly Betts * configure.ac: One more tweak. Sun Nov 07 18:18:19 GMT 2004 Olly Betts * configure.ac,include/xapian/version.h.in: Another tweak to hopefully get version.h generation to work everywhere. Sun Nov 07 15:01:23 GMT 2004 Olly Betts * configure.ac,include/xapian/version.h.in: Terminating lines with 'N' makes Sun's C++ unhappy. Try ',' instead. Sun Nov 07 03:54:42 GMT 2004 Olly Betts * tests/api_nodb.cc: Added test_weight1 which tests the built-in Xapian::Weight subclasses (bug#8). Sun Nov 07 03:36:19 GMT 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree_util.h, testsuite/btreecheck.cc: More refactoring. Sun Nov 07 03:33:24 GMT 2004 Olly Betts * matcher/bm25weight.cc,matcher/tradweight.cc: Fixed definitions to match declarations after recent change. Sun Nov 07 02:33:50 GMT 2004 Olly Betts * configure.ac: Noted LIBRARY_VERSION_INFO which 0.8.4 will get. Sun Nov 07 02:28:38 GMT 2004 Olly Betts * include/xapian/enquire.h: BoolWeight::unserialise() returns BoolWeight*, etc. BoolWeight::clone() returns BoolWeight *. Sun Nov 07 02:24:17 GMT 2004 Olly Betts * HACKING: Note that C++ style casts are preferable to C style casts; Improve wording in a few places. Sun Nov 07 01:05:58 GMT 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree_util.h, testsuite/btreecheck.cc: Moved set_block_given_by() and block_given_by() into Item class. Sat Nov 06 21:16:15 GMT 2004 Olly Betts * configure.ac,include/xapian/version.h.in: Fix generation of version.h to work with aCC -E which concatenates adjacent literal strings. Sat Nov 06 20:58:00 GMT 2004 Olly Betts * backends/quartz/,testsuite/btreecheck.cc: Started to refactor the Btree manager by introducing Item and Key classes which take care of handling the on-disk format. Sat Nov 06 15:40:05 GMT 2004 Olly Betts * xapian-config.in,m4/xapian.m4: Pass across ac_top_srcdir and use it if provided to say "configure.ac" or "configure.in" rather than "configure.in (or configure.ac)" in the "Add AC_PROG_LIBTOOL" error message. Sat Nov 06 14:49:05 GMT 2004 Olly Betts * configure.ac: Updated comment - we now find SOURCEDOC in 2 goes (as there are no longer any C sources). Sat Nov 06 14:43:16 GMT 2004 Olly Betts * configure.ac: Oops, STLPORT_CXXFLAGS *is* used (in xapian-config.in) so revert the change which removes it. Sat Nov 06 13:37:23 GMT 2004 Olly Betts * include/xapian/enquire.h,matcher/bm25weight.cc, matcher/tradweight.cc: Move virtual methods of BM25Weight and TradWeight out of the header. Sat Nov 06 13:19:32 GMT 2004 Olly Betts * configure.ac,include/xapian/version.h.in: Another rework of how include/xapian/version.h is generated - this time to make it work with Sun's C++ compiler again; XAPIAN_VERSION is now a string; Define XAPIAN_REVISION (which is 4 for version 0.8.4). Sat Nov 06 04:22:57 GMT 2004 Olly Betts * configure.ac: Don't AC_SUBST(STLPORT_CXXFLAGS) as it is never used that way (it's included in AM_CXXFLAGS). Sat Nov 06 01:03:53 GMT 2004 Olly Betts * testsuite/testsuite.h: Removed incorrect comment about how STRINGIZE is used. Fri Nov 05 14:41:59 GMT 2004 Olly Betts * include/xapian/database.h: Removed a default parameter value from one variant of open_db so that there's only one candidate for open_db(string). Fri Nov 05 14:40:38 GMT 2004 Olly Betts * backends/database.cc: Renamed parameter from keys to values to reflect current external naming. Fri Nov 05 14:38:07 GMT 2004 Olly Betts * include/xapian/version.h.in,configure.ac: Fixed generation of include/xapian/version.h to work with aCC. Thu Nov 04 12:17:50 GMT 2004 Olly Betts * configure.ac: Try "-std strict_ansi" for Compaq C++. Thu Nov 04 11:22:52 GMT 2004 Olly Betts * configure.ac: Fourth argument to AC_CHECK_HEADERS must be non-empty to make a difference. Thu Nov 04 10:21:25 GMT 2004 Olly Betts * configure.ac: Found clean fix for inttypes.h problem (previous bodge didn't work anyway). Thu Nov 04 01:18:55 GMT 2004 Olly Betts * configure.ac: Eliminated use of \( \) in sed expression as it appears to cause problems on HP-UX. Thu Nov 04 00:54:11 GMT 2004 Olly Betts * configure.ac: Added icky workaround to Compaq C++ oddness - cc can find inttypes.h but cxx can't. Wed Nov 03 23:58:48 GMT 2004 Olly Betts * api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc, net/socketserver.cc: Tweaked to compile with Compaq C++. Wed Nov 03 22:55:04 GMT 2004 Olly Betts * configure.ac: Need to put flags to select ANSI C++ mode in CXXFLAGS not AM_CXXFLAGS. Wed Nov 03 22:27:08 GMT 2004 Olly Betts * api/omenquire.cc: Fixed typo. Wed Nov 03 21:58:53 GMT 2004 Olly Betts * api/omenquire.cc: Added explicit cast to try to help Compaq C++ build. Wed Nov 03 21:38:29 GMT 2004 Olly Betts * configure.ac: Probe for C++ compiler switches for ANSI mode as early as possible. With Compaq's C++, we need -D__USE_STD_IOSTREAM to successfully #include . Wed Nov 03 21:07:43 GMT 2004 Olly Betts * configure.ac: Fixed snprintf configure test. Wed Nov 03 19:37:32 GMT 2004 Olly Betts * common/utils.cc: Fixed typo. Wed Nov 03 19:27:22 GMT 2004 Olly Betts * configure.ac,common/utils.cc: Improved snprintf checking. Wed Nov 03 15:43:54 GMT 2004 Olly Betts * getopt/getopt.cc: Fixed to compile when not using glibc. Wed Nov 03 14:55:29 GMT 2004 Olly Betts * bin/omtcpsrv.cc,bin/quartzdump.cc,common/Makefile.am,common/getopt.h, common/gnu_getopt.h,getopt/,testsuite/testsuite.cc: Major overhaul of getopt use. Move from getopt(), getopt_long(), getopt_long_only() to gnu_getopt(), etc so we don't need to dance around avoiding clashes with getopt() stuff in system headers. The new gnu_getopt.h header is cruft free and hopefully won't trip up assorted compilers or platforms. Wed Nov 03 14:53:39 GMT 2004 Olly Betts * tests/Makefile.am: quartztest doesn't use getopt directly, so no need to link it. Wed Nov 03 12:56:56 GMT 2004 Olly Betts * tests/stemtest.cc: Prune unused #includes. Wed Nov 03 03:47:46 GMT 2004 Olly Betts * getopt/getopt.cc: Defining _NO_PROTO is a really bad idea for C++ code! Wed Nov 03 03:34:06 GMT 2004 Olly Betts * configure.ac: Removed AC_HEADER_STDC - Compaq's C++ compiler can't find inttypes.h, but their C compiler can! Wed Nov 03 02:48:04 GMT 2004 Olly Betts * net/tcpclient.cc,net/tcpserver.cc: Use SOCKLEN_T for the type we need to pass to various socket calls, since HPUX defines socklen_t yet wants int in those calls. Wed Nov 03 02:43:26 GMT 2004 Olly Betts * autoconf/type_socklen_t.m4,matcher/networkmatch.cc,net/: If __WIN32__ is defined, we want winsock2.h instead of sys/socket.h. Mingw doesn't seem to even have the latter, so I think previously we've been compiling by picking one up from somewhere random! Wed Nov 03 01:10:01 GMT 2004 Olly Betts * autoconf/type_socklen_t.m4: Rewritten to work with HPUX which helpfully defines socklen_t but doesn't use it! Tue Nov 02 21:29:40 GMT 2004 Olly Betts * getopt/getopt.cc: Fixes for Compaq C++. Tue Nov 02 18:51:43 GMT 2004 Olly Betts * getopt/getopt.cc: Protect getopt definition for possible getopt macro declared in getopt.h. Tue Nov 02 16:52:21 GMT 2004 Olly Betts * configure.ac: AM_CONFIG_HEADER -> AC_CONFIG_HEADERS; removed commented out AC_LANG_SAVE and AC_LANG_RESTORE. Tue Nov 02 15:56:02 GMT 2004 Olly Betts * configure.ac: # comments -> dnl comments. Tue Nov 02 15:54:46 GMT 2004 Olly Betts * configure.ac: $GCC -> $GXX; $CC -> $CXX. Tue Nov 02 15:38:21 GMT 2004 Olly Betts * configure.ac,docs/Makefile.am: Removed SOURCEDOC_C_SRC. Tue Nov 02 06:51:39 GMT 2004 Olly Betts * getopt/getopt.cc,getopt/getopt1.cc: Fixed function declarations to not use K&R C syntax. Tue Nov 02 05:31:57 GMT 2004 Olly Betts * getopt/getopt.cc: Make _getopt_internal extern "C" too. Tue Nov 02 04:43:08 GMT 2004 Olly Betts * Makefile.am,configure.ac,HACKING,PLATFORMS,backends/muscat36/, getopt/Makefile.am,getopt/getopt.cc,getopt/getopt1.cc,languages/: Change the few C sources to be C++. This way we don't need to worry about configure choosing a mismatching pair of compilers, or about whether configure tests with the C compiler don't apply to the C++ compiler, or vice versa. Tue Nov 02 04:31:49 GMT 2004 Olly Betts * backends/muscat36/: More C casts converted to C++ casts. Tue Nov 02 04:28:07 GMT 2004 Olly Betts * matcher/bm25weight.cc,matcher/tradweight.cc: More C casts converted to C++ casts. Tue Nov 02 03:22:52 GMT 2004 Olly Betts * backends/muscat36/: Removed unused test harness sources. Tue Nov 02 02:44:34 GMT 2004 Olly Betts * languages/pool.c,languages/pool.h: Removed unused sources. Tue Nov 02 01:51:30 GMT 2004 Olly Betts * configure.ac: AC_TYPE_SIZE_T causes problems with Compaq C++ when it fails to spot size_t (which is there) and the "#define size_t unsigned long" it adds to config.h breaks "using std::size_t;". Also removed AC_C_CONST as I don't believe that's needed either in a largely C++ library. Both of these have been in configure.in since the very first version so I suspect autoscan decided we wanted them. Mon Nov 01 05:44:02 GMT 2004 Olly Betts * matcher/multimatch.cc: Fixed compilation problem on alpha Linux. Mon Nov 01 03:16:36 GMT 2004 Olly Betts * api/omqueryinternal.cc,api/omstem.cc, backends/inmemory/inmemory_database.h, backends/multi/multi_termlist.h,backends/quartz/, extra/queryparser.yy,matcher/,net/tcpserver.cc,tests/api_anydb.cc, tests/api_db.cc,tests/quartztest.cc,testsuite/backendmanager.cc, testsuite/btreecheck.cc,testsuite/testsuite.cc: Changed C style casts to C++ style. The syntax is ugly, but they do make the intent clearer which is a good thing. Mon Nov 01 02:56:31 GMT 2004 Olly Betts * configure.ac: Select ANSI iostream implementation for Compaq C++. Mon Nov 01 02:41:58 GMT 2004 Olly Betts * configure.ac: Compaq's C++ compiler doesn't know snprintf, yet their C compiler does. Let's try running *all* the configure checks with the C++ compiler, since that's what we compile most code with. Mon Nov 01 01:12:43 GMT 2004 Olly Betts * common/netutils.cc: Fixed to compile. Mon Nov 01 01:06:13 GMT 2004 Olly Betts * common/Makefile.am,common/netutils.cc,common/netutils.h: encode_tname() and decode_tname() aren't really sensible candidates for inlining so move them out of a header. Sun Oct 31 15:34:18 GMT 2004 Olly Betts * configure.ac: Turn on -AA when compiling with HP's aCC. Sun Oct 31 15:10:02 GMT 2004 Olly Betts * testsuite/testutils.cc: Fixed mset_range_is_same() and mset_range_is_same_weights() which were only comparing the first items in the range. Luckily the tests still all pass so this wasn't hiding any bugs. Sat Oct 30 19:15:48 BST 2004 Olly Betts * configure.ac: Disable pread/pwrite on HP-UX as they don't work when LFS in enabled, and we definitely want LFS. Sat Oct 30 16:42:24 BST 2004 Olly Betts * backends/quartz/bcursor.cc: Fix Bcursor::del() which didn't always leave the cursor on the next item like it should. * backends/quartz/quartz_postlist.cc: If we're removing a posting list entirely, often there will only be one chunk, so avoid creating a Bcursor in this case. Sat Oct 30 16:55:19 BST 2004 Olly Betts * languages/header.h: Removed unused #define MAXINT and MININT which were clashing with some header on HP-UX. Sat Oct 30 07:09:33 BST 2004 Olly Betts * docs/bm25.html,docs/intro_ir.html: Reworked to talk about Xapian rather than Muscat. Also improved the appearance of the formulae. Sat Oct 30 06:07:14 BST 2004 Olly Betts * backends/quartz/btree.cc: Btree::read_block - debug log the value of p, not the irrelevant contents of the block it points to. Fri Oct 29 22:37:31 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Improved comments. Fri Oct 29 05:10:02 BST 2004 Olly Betts * backends/quartz/btree.cc: Fixed ultra-obscure bug in the code which finds a key suitable to discriminating between two blocks in a B-tree branch (discovered by reading the code). Comparing the keys didn't consider the length of the second, so it is possible the code would miscompare. But in reality this is extremely unlikely to happen, and even then would probably just mean that the discriminating key wouldn't be as short as it could be. Fri Oct 29 04:12:09 BST 2004 Olly Betts * backends/quartz/btree.cc: Simplified Btree::compare_keys() by removing the last case which was dead code as it was covered by an earlier case. Wed Oct 27 21:17:12 BST 2004 Olly Betts * HACKING,tests/runtest.in: Enhanced runtest to allow it to run test programs under valgrind and other tools (gdb was already supported). * testsuite/testsuite.cc: Point the user to the runtest script if srcdir can't be guessed. And no longer look for the test program in the tests subdirectory of the current directory. * common/omdebug.cc: Removed compatibility code for checking OM_DEBUG_FILE and OM_DEBUG_TYPES. * HACKING: Document that %% in XAPIAN_DEBUG_LOG is substituted with the process-id, and that setting XAPIAN_DEBUG_FLAGS to -1 enables all debug messages. * HACKING: Valgrind now supports x86 FreeBSD and PowerPC Linux. * HACKING: Removed mentions of long-dead configure options --enable-profiling, --enable-purify and --enable-insure. Wed Oct 27 21:16:10 BST 2004 Olly Betts * include/xapian/enquire.h: Document parameters of Enquire::register_match_decider(). Wed Oct 27 21:14:32 BST 2004 Olly Betts * PLATFORMS: Updated. Wed Oct 13 20:21:38 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Revert the previous change as runtime sized arrays are a g++ extension. Calling new and delete on every call to add_item() is probably unwise. Tue Oct 12 23:40:36 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: split_p is only used by Btree::add_item(), so make it a temporary in that method rather than a class member variable which we need to take care to allocate and deallocate. Mon Oct 11 16:32:10 BST 2004 Olly Betts * tests/btreetest.cc: Fix memory leaks in test_cursor1. Mon Oct 11 02:24:50 BST 2004 Olly Betts * docs/quartzdesign.html: Use 5 tables in the example for how we keep revisions in step, since we use 5 tables in quartz. Thu Oct 07 22:51:28 BST 2004 Olly Betts * backends/quartz/btree.cc: An interrupted update could cause any further updates to fail with "New revision too low" because the new revision was being calculated incorrectly - fixed. Wed Oct 06 15:42:31 BST 2004 Olly Betts * backends/quartz/btree.cc,include/xapian/database.h: Check that any user specified block size is a power of 2. And if the block size passed is invalid, use the default of 8192 rather than throwing an exception. Wed Oct 06 12:19:39 BST 2004 Olly Betts * PLATFORMS: Updated from tinderbox. Wed Oct 06 01:10:46 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/quartz_document.cc, matcher/multimatch.cc,common/multimatch.h: Fix some warnings from Sun's C++ compiler. Thu Sep 30 22:16:37 BST 2004 Olly Betts * common/utils.cc,common/utils.h: Fixes for win32 and sun's c++ compiler. Thu Sep 30 18:24:20 BST 2004 Olly Betts * common/utils.h,extra/queryparser.yy: Fixed bug which caused misparsing of certain prefixed queries, introduced by C_isXXXXX change. Thu Sep 30 11:09:17 BST 2004 Olly Betts * tests/api_anydb.cc: Modified version of changequery1 fails - the fix is tricky, so just make it SKIP for now. Wed Sep 29 21:33:29 BST 2004 Olly Betts * extra/Makefile.am: Fixed to work when srcdir != builddir. Wed Sep 29 18:52:04 BST 2004 Olly Betts * PLATFORMS,docs/Makefile.am: Workaround odd latex problem. Wed Sep 29 17:10:00 BST 2004 Olly Betts * configure.ac,docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Updated doxygen conf files for doxygen 1.3.8. Wed Sep 29 16:52:53 BST 2004 Olly Betts * common/utils.cc,common/utils.h,extra/Makefile.am, extra/queryparser.yy,tests/api_anydb.cc,testsuite/index_utils.cc: Provide our own C_isalpha(), etc replacements for isalpha(), etc which always work in the C locale and avoid signed char problems. Tue Sep 28 00:04:11 BST 2004 Olly Betts * common/utils.cc,common/utils.h: rmdir() isn't a sensible candidate for inlining so move it out of the header. Mon Sep 27 17:33:23 BST 2004 Olly Betts * extra/queryparser.yy: Be smarter about when to add a ':' when adding a term prefix. Mon Sep 27 16:01:37 BST 2004 Olly Betts * docs/scalability.html: Added note warning about benchmarking from cold. Mon Sep 27 15:20:13 BST 2004 Olly Betts * HACKING: Note that we use doxygen 1.3.8 for snapshots and releases; Note that --enable-maintainer-mode now automatically enables -Werror with GCC 3.0 or newer. Wed Sep 22 16:49:20 BST 2004 Olly Betts * matcher/: Pruned unneeded #include-s and other tidying, some enabled by the previous change. Wed Sep 22 14:04:27 BST 2004 Olly Betts * common/positionlist.h,matcher/: Moved all of the implementations of the XXXPostList classes from the .h files into the .cc files. All the methods are virtual, so we aren't going to gain anything from being able to inline them. Wed Sep 22 02:58:59 BST 2004 Olly Betts * configure.ac: Automatically add -Werror to CFLAGS and CXXFLAGS if maintainer mode is enabled and we're using GCC3 or newer. Don't do this for older GCCs as GCC 2.95 issues spurious warnings. Wed Sep 22 02:41:41 BST 2004 Olly Betts * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h: Introduced CASSERT_TYPE_UNSIGNED to replace the common use of CASSERT to assert at compile time that a type is unsigned. Tue Sep 21 15:58:05 BST 2004 Olly Betts * PLATFORMS: Removed reports from versions prior to 0.7.0. So much has changed that these are of little value. Mon Sep 20 15:24:27 BST 2004 Olly Betts * NEWS,PLATFORMS,configure.ac: Version 0.8.3. Mon Sep 20 15:13:34 BST 2004 Olly Betts * AUTHORS: Updated. Mon Sep 20 14:26:35 BST 2004 Olly Betts * xapian.spec.in: Removed reference to xapian-examples' createdatabase (which is no longer in xapian-examples). Mon Sep 20 13:06:59 BST 2004 Olly Betts * xapian.spec.in: Updated version from Fabrice Colin (incorporating changes from Alan Cox's RPM spec files): split off libs into a separate package to allow 32 and 64 bit versions to be installed concurrently; include binaries from xapian-examples; updated source URLs. Mon Sep 20 03:25:44 BST 2004 Olly Betts * tests/api_anydb.cc: Added regression test for previous bug (test checkatleast1). Mon Sep 20 03:16:14 BST 2004 Olly Betts * matcher/multimatch.cc: Fixed segfault with check_at_least when there were no matches. Sun Sep 19 17:54:52 BST 2004 Olly Betts * api/omenquire.cc,common/omdebug.cc: Fixed to compile with debug tracing enabled. Sat Sep 18 19:02:54 BST 2004 Olly Betts * tests/api_db.cc: Updated missed use of omprogsrv to xapian-progsrv. Tue Sep 14 18:09:19 BST 2004 Olly Betts * xapian.spec.in,bin/.cvsignore,bin/Makefile.am,debian/control.in, debian/xapian-tools.install,docs/remote.html,tests/remotetest.cc, testsuite/backendmanager.cc: Rename omtcpsrv to xapian-tcpsrv and omprogsrv to xapian-progsrv. Tue Sep 14 16:25:06 BST 2004 Olly Betts * xapian.spec.in: Fixed mangled URL in last checkin. Tue Sep 14 15:35:00 BST 2004 Olly Betts * xapian.spec.in: Updated URL for tarball. Tue Sep 14 02:49:34 BST 2004 Olly Betts * HACKING: Updated the "how to do a release" tasklist. Mon Sep 13 03:19:47 BST 2004 Olly Betts * NEWS,PLATFORMS,configure.ac: Version 0.8.2. Sat Sep 11 16:39:08 BST 2004 Olly Betts * include/xapian/version.h.in: GCC 3.1 reported the wrong value for __GXX_ABI_VERSION (100 not 101) so check 3.0 and 3.1 by version number, keeping the __GXX_ABI_VERSION check for newer versions. Sat Sep 11 02:57:48 BST 2004 Olly Betts * backends/quartz/bcursor.cc: Fixed and reenabled Bcursor::prev() (not currently used, but it will be useful for running posting lists backwards!) Fri Sep 10 13:13:51 BST 2004 Olly Betts * tests/Makefile.am: Need to ship test data for new test. Thu Sep 09 21:58:37 BST 2004 Olly Betts * tests/api_db.cc: Extended feature test sortrel1 to check interaction with Enquire::set_sort_forward(false). Thu Sep 09 21:46:12 BST 2004 Olly Betts * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h, include/xapian/enquire.h,matcher/multimatch.cc,net/socketserver.cc, tests/api_db.cc,tests/testdata/apitest_sortrel.txt: You can now specify to sort by value, then relevance, then docid instead of by value then docid. Thu Sep 09 19:30:07 BST 2004 Olly Betts * docs/todo.xml: Removed unused file - todo entries are now in bugzilla. Thu Sep 09 13:11:52 BST 2004 Olly Betts * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h, include/xapian/enquire.h,matcher/multimatch.cc,net/socketserver.cc: Added optional "checkatleast" parameter to Enquire::get_mset() which allows Omega's MIN_HITS functionality to be implemented in the matcher (a bit more efficient). Thu Sep 09 04:18:32 BST 2004 Olly Betts * NEWS: Updated. Thu Sep 09 03:39:52 BST 2004 Olly Betts * PLATFORMS: Updated from the tinderbox. Sun's C++ compiler can now build Xapian on sparc! Thu Sep 09 02:19:43 BST 2004 Olly Betts * tests/api_wrdb.cc: Added feature test for WritableDatabase::replace_document() and delete_document() with a unique term (apitest:uniqueterm1. * backends/inmemory/inmemory_alltermslist.cc, backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h: Fixed bugs thrown up by the new test. Wed Sep 08 19:45:37 BST 2004 Olly Betts * HACKING: Updated details of Solaris open workaround. Wed Sep 08 19:42:15 BST 2004 Olly Betts * common/utils.h,backends/quartz/btree.cc, backends/quartz/quartz_database.cc,backends/quartz/quartz_log.cc: New version of the Solaris open dance - now we always pass in const char * for the filename, and we don't need the dance on new versions, so only dance if open is defined. Wed Sep 08 16:26:15 BST 2004 Olly Betts * api/omquery.cc,include/xapian/query.h: Renamed Query::is_empty() to Query::empty() for consistency. Keep Query::is_empty() for now as a deprecated alias. Wed Sep 08 16:24:44 BST 2004 Olly Betts * tests/api_wrdb.cc: replace_doc -> replace_doc1; added new test replace_doc2 to test using replace_doc to add a document with a specified docid. Wed Sep 08 16:23:50 BST 2004 Olly Betts * backends/inmemory/inmemory_database.h: Removed unused member variable "indexing". Wed Sep 08 16:14:47 BST 2004 Olly Betts * backends/quartz/quartz_database.cc: If replace_document() is used to add a document with did greater than lastdocid, raise lastdocid so future calls to add_document() won't clash. Wed Sep 08 16:13:51 BST 2004 Olly Betts * backends/inmemory/inmemory_database.cc: Fixed bug Database::replace_document() to work with a document id greater than lastdocid. Wed Sep 08 05:10:01 BST 2004 Olly Betts * common/utils.h: The latest fcntl.h dance causes a compile error on mingw, so don't use it there. Wed Sep 08 03:38:20 BST 2004 Olly Betts * common/utils.h: Use a namespace as an extra step in the Sun fcntl open64 dance. Tue Sep 07 02:33:50 BST 2004 Olly Betts * tests/test.da: Another cruft file removed. Tue Sep 07 02:21:49 BST 2004 Olly Betts * tests/btreetest.cc,tests/quartztest.cc: Moved overwrite1 from quartztest to btreetest. Added const in a few places. Tue Sep 07 02:07:43 BST 2004 Olly Betts * tests/quartztest.cc: Removed overwrite2 test. Digging back in CVS it's been disabled since the day after it added. After all this time it's hard to guess exactly what it was intended to test, so just removing it seems simplest. We already have overwrite1 to test getting DatabaseModifiedError. Tue Sep 07 01:52:25 BST 2004 Olly Betts * tests/btreetest.cc: Cleaned up paths to temporary Btrees. Mon Sep 06 17:51:27 BST 2004 Olly Betts * tests/btreetest.cc,tests/quartztest.cc: Now that QuartzTable, QuartzDiskTable, QuartzBufferedTable, QuartzCursor, QuartzDiskCursor, and QuartzBufferedCursor are gone, move quartztest tests which now just use Btree and Bcursor to btreetest. This is more logical and should help make quartztest less of a monster to compile. Mon Sep 06 12:47:47 BST 2004 Olly Betts * tests/Makefile.am: Ship testdata/apitest_allterms4.txt. Mon Sep 06 02:46:32 BST 2004 Olly Betts * tests/quartztest.cc: Xapian::Database will create the directory for the database so there's no need to create it ourselves. Mon Sep 06 02:40:57 BST 2004 Olly Betts * tests/,tests/testdata/apitest_allterms4.txt: Split off tests which require a writable database backend and tests which should work with any database backend from api_db.cc as it was getting rather large. Fixed simplequery2 to work with backends which don't return the document length (such as the muscat36 backends). Fixed allterms4 to work with muscat36 backends. Mon Sep 06 02:39:29 BST 2004 Olly Betts * backends/muscat36/da_database.cc,backends/muscat36/db_database.cc: Fixed to compile now that internal_end_session() has gone. Mon Sep 06 00:59:36 BST 2004 Olly Betts * tests/runtest.in: Added support for running gdb on a test program, automatically sorting out srcdir and libtool. Mon Sep 06 00:49:11 BST 2004 Olly Betts * tests/apitest_parser.pm: Removed long unused file. Sun Sep 05 22:53:27 BST 2004 Olly Betts * include/xapian/enquire.h: Tweaked documentation comment to stop doxygen parsing a hyphen as a single entry bullet point list. Sun Sep 05 20:20:01 BST 2004 Olly Betts * testsuite/backendmanager.h: Added missing "std::" so code will compile with GCC >= 3. Sun Sep 05 13:54:58 BST 2004 Olly Betts * testsuite/backendmanager.h: Removed superfluous "BackendManager::". Sun Sep 05 01:54:49 BST 2004 Olly Betts * common/utils.cc,common/utils.h: Removed now unused files_exist() function. Sun Sep 05 01:50:35 BST 2004 Olly Betts * tests/api_db.cc,tests/apitest.cc,tests/apitest.h, testsuite/backendmanager.cc,testsuite/backendmanager.h: Cleaned up BackendManager by removing complications only required by absentfile1 test, which can be implemented more directly anyway. Sun Sep 05 01:33:16 BST 2004 Olly Betts * tests/quartztest.cc: Cleaned up rather odd code which is a hangover from when keys and tags weren't simply C++ strings. Sat Sep 04 12:35:12 BST 2004 Olly Betts * HACKING: Updated details of which autotools we require. Fri Sep 03 17:51:59 BST 2004 Olly Betts * configure.ac: Require autoconf 2.59. Noted LIBRARY_VERSION_INFO which 0.8.2 will probably have. * Makefile.am: Require automake 1.8.5. Fri Sep 03 16:40:11 BST 2004 Olly Betts * PLATFORMS: Updated with results from tinderbox. Fri Sep 03 14:34:00 BST 2004 Olly Betts * autoconf/definedir.m4,autoconf/rjb_find_stlport.m4: Quote macro names to fix warning from newer aclocal. Removed comments about future autodetection of stlport, as the user will always need to decide between the STL supplied with the compiler and stlport. Thu Sep 02 17:55:33 BST 2004 Olly Betts * matcher/andpostlist.cc: Initialise lmax and rmax to 0. Hopefully this will fix SIGFPE on apitest's qterminfo2 on alpha linux. Thu Sep 02 14:50:20 BST 2004 Olly Betts * backends/quartz/quartz_database.cc: Not storing the document length and last docid on every add means that the magic key won't always exists when there are records and QuartzWritableDatabase::get_doccount() is sometimes off by one. Fix crudely for now by making sure that the magic key does always exist. Longer term the magic key probably should be in the postlist table but that's an incompatible change. Wed Sep 01 16:15:23 BST 2004 Olly Betts * backends/quartz/: Change QuartzWritableDatabase to store the total document length and the last docid itself rather than tallying added and removed document length and writing the last docid back every time a document is added. This gives cleaner code and a small performance win. Removed XAPIAN_FLUSH_THRESHOLD_LENGTH as we no longer tally the length changes, and made the default flush threshold 10000 documents (was 1000). Wed Sep 01 14:21:19 BST 2004 Olly Betts * backends/quartz/btree.cc: Turn on previously commented-out code to make the first key null for blocks more than 1 away from the leaves. It saves disk space for a tiny CPU and RAM cost so is bound to be a win overall. Tue Aug 31 13:55:58 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h, backends/quartz/btree_util.h: Merged Btree::make_index_item() into Btree::enter_key(). Tue Aug 31 01:07:19 BST 2004 Olly Betts * NEWS: Updated in preparation for a release. Tue Aug 31 00:53:35 BST 2004 Olly Betts * backends/quartz/btree.cc: Short-cutting Btree::cancel causes problems so disable that for the time being at least. Fri Aug 27 13:09:56 BST 2004 Olly Betts * testsuite/btreecheck.cc: Fixed %% to % (presumably a hangover from converting printf to cout). Thu Aug 26 18:11:50 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Reduce quartz postlist chunk threshold from 2048 to 2000 so that chunks won't get split by the Btree. Thu Aug 26 18:10:27 BST 2004 Olly Betts * backends/quartz/quartz_record.cc: Throw DocNotFoundError if we try to delete a record which doesn't exist. Thu Aug 26 17:18:56 BST 2004 Olly Betts * configure.ac: Don't define DATADIR - we no longer use it and clashes with more recent mingw headers. Wed Aug 25 22:47:06 BST 2004 Olly Betts * docs/quartzdesign.html: Started section on quartzcompact. Wed Aug 25 22:45:48 BST 2004 Olly Betts * api/omdatabase.cc,include/xapian/database.h: Changed new WritableDatabase::replace_document(term, doc) method to return the docid which the document was given. Tue Aug 24 13:45:52 BST 2004 Olly Betts * api/omenquire.cc,include/xapian/enquire.h: Added new ESet methods swap(), back() and operator[]. * include/xapian/enquire.h: Added documentation comments for MSet methods size(), empty(), swap(), begin(), end(), back(). * include/xapian/enquire.h: Removed bogus documentation saying that some Enquire methods can throw DatabaseOpeningError. Tue Aug 24 10:24:30 BST 2004 Olly Betts * HACKING: Noted automake 1.8 may be problematic. Tweaked list of release tasks. Tue Aug 24 10:16:38 BST 2004 Olly Betts * matcher/multimatch.cc: If a matchdecider is specified and no matches are requested, the lower bound on the number of matches must be 0 (since the matchdecider could reject all the matches). Mon Aug 23 23:03:12 BST 2004 Olly Betts * backends/quartz/btree.cc: Improved the "Db block overwritten" message. The DatabaseCorruptError version now suggests multiple writers may be the cause, while the DatabaseModifiedError version uses less alarming wording and says to call Database::reopen(). Sun Aug 22 14:07:35 BST 2004 Olly Betts * indexer/: Removed the old XML-based indexer framework. It's not worked for ages, and nobody seems interested in ressurecting it. If anyone ever is, they can fetch it back from CVS, but otherwise it's just bulking up CVS checkouts. Sun Aug 22 13:02:25 BST 2004 Olly Betts * Makefile.am,configure.ac,extra/Makefile.am: Moved the older library version information into configure.ac. Sun Aug 22 12:58:21 BST 2004 Olly Betts * HACKING,configure.in,configure.ac,backends/Makefile.am, docs/Makefile.am: Renamed configure.in to configure.ac. Sun Aug 22 12:47:43 BST 2004 Olly Betts * xapian-config.in: Add "(or configure.ac)" in message telling the user to add a line to their configure.in. Sun Aug 22 11:38:55 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree_util.h: Adjusted some Asserts to check c is within blocksize rather than 65536. Added a FIXME for those which can't be trivially changed. Sun Aug 22 10:56:56 BST 2004 Olly Betts * backends/quartz/quartz_database.cc: No need to force a flush on QuartzWritableDatabase::open_document() (the document will read things lazily from the database, and that may trigger a forced flush). * backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h: Eliminated QuartzDatabase::open_post_list_internal() and QuartzDatabase::open_term_list_internal(). Sun Aug 22 01:33:05 BST 2004 Olly Betts * backends/quartz/quartz_database.cc,backends/quartz/quartz_record.cc, backends/quartz/quartz_record.h: WritableDatabase::get_avlength() no longer forces pending changes to be flushed. This means you can now search a modified WritableDatabase without causing a flush unless the search includes a term whose postlist has pending modifications. Fri Aug 20 20:03:59 BST 2004 Olly Betts * backends/quartz/btree_util.h,common/,docs/overview.html, docs/quickstart.html,include/xapian/enquire.h, matcher/branchpostlist.h,matcher/multimatch.cc,tests/api_db.cc: Corrected multiple occurrences of "an Xapian::XXX" to "a Xapian::XXX" (presumably these all resulted from replacing "Om" with "Xapian::"). Fri Aug 20 17:38:15 BST 2004 Olly Betts * backends/quartz/,bin/quartzcheck.cc,bin/quartzcompact.cc, bin/quartzdump.cc,tests/btreetest.cc,tests/quartztest.cc: Merged QuartzCursor into Bcursor. Fri Aug 20 13:43:04 BST 2004 Olly Betts * NEWS,backends/quartz/: Fixed the problem with "lazy tag reading" in QuartzCursor and reenable that code. The problem was with deleting the current key, so added QuartzCursor::del() which deletes the current key, leaving the cursor on the next item. Fri Aug 20 13:04:33 BST 2004 Olly Betts * tests/api_db.cc: Reenabled test allterms2, but with the iterator copying parts removed - TermIterator is an input_iterator so that part was invalid. Thu Aug 19 19:19:48 BST 2004 Olly Betts * NEWS: Updated from recent ChangeLog entries. Thu Aug 19 14:09:28 BST 2004 Olly Betts * tests/api_db.cc: Added regression test for bug #37. Thu Aug 19 13:31:37 BST 2004 Olly Betts * matcher/localmatch.cc: Fixed problems handling termweights in queries with the same term repeated (bug #37). Thu Aug 19 13:22:12 BST 2004 Olly Betts * backends/quartz/quartz_table.cc: Disable the "lazy tag reading" in QuartzCursor for the time being - it seems to cause problems. Thu Aug 19 12:58:10 BST 2004 Olly Betts * bin/quartzcheck.cc,bin/quartzdump.cc: Added calls to QuartzCursor::read_tag(). Thu Aug 19 12:56:53 BST 2004 Olly Betts * matcher/multimatch.cc: Removed superfluous clear() of a map. Thu Aug 19 12:56:08 BST 2004 Olly Betts * tests/api_db.cc: Corrected a comment - a pure boolean query has all weights set to 0, not 1. Mon Aug 16 15:41:33 BST 2004 Olly Betts * docs/: Removed unused and very out of date class diagrams in dia format. Doxygen generates similar but up-to-date diagrams automatically anyway. Mon Aug 16 15:27:30 BST 2004 Olly Betts * xapian.spec.in,debian/libxapianVERSION-dev.install, extra/.cvsignore,extra/Makefile.am,extra/omparsequery.h, include/Makefile.am,include/om/.cvsignore,include/om/dir_contents, include/om/om.h,m4/xapian.m4: Removed the compatibility layer which allowed programs written against the pre-0.7.0 API to be compiled. Mon Aug 16 15:08:08 BST 2004 Olly Betts * backends/quartz/quartz_table.cc: Fixed QuartzCursor::find() to work again after the last change. Mon Aug 16 14:43:08 BST 2004 Olly Betts * backends/quartz/,tests/quartztest.cc: QuartzCursor no longer automatically reads the tag - you have to call read_tag() to get it read. This speeds up iterator over all the terms in a database. Also commented out QuartzCursor::prev as it's unused and untested (at least in its latest form). Mon Aug 16 12:39:56 BST 2004 Olly Betts * backends/quartz/btree_types.h: Made Bcursor.rewrite bool rather than int. Mon Aug 16 12:35:07 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Calculate and store the latest revision number, rather than storing the other one and working out which is newer every time we're asked. Mon Aug 16 12:32:59 BST 2004 Olly Betts * docs/install.html: We haven't "only [...] UNIX" for ages, so don't claim we are. We use libtool as well as autoconf and automake. Link to the CVS snapshots. And also mention downloading omega. Mon Aug 16 12:20:04 BST 2004 Olly Betts * docs/index.html: exaplains -> explains. Mon Aug 16 12:18:34 BST 2004 Olly Betts * docs/overview.html: Removed references to "our company" (meaning BrightStation) and to the now defunct special parameters which the inmemory backend accepted to cause deliberate errors for testing. Sun Aug 15 23:48:20 BST 2004 Olly Betts * tests/btreetest.cc: item_count -> get_entry_count(); revision_number -> get_open_revision_number(). Sun Aug 15 23:15:34 BST 2004 Olly Betts * backends/Makefile.am,backends/inmemory/Makefile.am: Fixed to compile with --disable-inmemory (bug #33). Sat Aug 14 18:56:06 BST 2004 Olly Betts * Makefile.am: Improved library versioning comment. Sat Aug 14 18:55:17 BST 2004 Olly Betts * docs/overview.html: Fixed om_queryop to Xapian::Query::op, and added missing OP_* codes to the list. Sat Aug 14 17:44:39 BST 2004 Olly Betts * backends/quartz/bcursor.h,backends/quartz/btree.cc, backends/quartz/btree.h,bin/quartzcompact.cc,docs/quartzdesign.html: Updated quartz design docs to reflect recent changes. Also pulled out the Btree and Bcursor API docs and slotted them in as doxygen documentation comments - this way they're much more likely to be kept up-to-date. Sat Aug 14 15:59:07 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Removed unused Btree default ctor. Sat Aug 14 15:45:28 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Don't redundantly store next_revision - it's always just revision_number + 1. Sat Aug 14 15:30:30 BST 2004 Olly Betts * backends/quartz/btree.cc: Implemented Btree::cancel directly rather than closing and reopening the Btree. Sat Aug 14 14:46:43 BST 2004 Olly Betts * backends/quartz/,bin/quartzcheck.cc,bin/quartzcompact.cc, bin/quartzdump.cc,tests/btreetest.cc,tests/quartztest.cc, testsuite/btreecheck.cc,testsuite/btreecheck.h: Eliminated QuartzTable which had become just a thin wrapper around Btree. Fri Aug 13 19:19:02 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: QuartzPostList::move_to_chunk_containing now calls next_chunk if required, rather than forcing the caller to do the fix-up. Fri Aug 13 17:54:53 BST 2004 Olly Betts * backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h: Added tunable flush thresholds - set XAPIAN_FLUSH_THRESHOLD=5000 to flush every 5000 documents or XAPIAN_FLUSH_THRESHOLD_LENGTH=1000000 to flush every 1000000 total change in document length. Set both to flush whichever is reached first. Set neither and the default is to flush every 1000 documents as before. Fri Aug 13 15:54:21 BST 2004 Olly Betts * backends/quartz/: Removed no-longer-used Btree::erase and QuartzTable::erase methods. Fri Aug 13 15:37:15 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/quartz_database.cc: Changed Btree::create() to remove any pre-existing alternate base file, so we no longer need to call Btree::erase before Btree::create. Fri Aug 13 15:37:15 BST 2004 Olly Betts * NEWS: Updated with changes since last release. Fri Aug 13 15:36:04 BST 2004 Olly Betts * tests/api_posdb.cc,tests/quartztest.cc: Reworked quartztest's positionlist1 into a generic api test as apitest's poslist3. Thu Aug 12 16:26:42 BST 2004 Olly Betts * backends/quartz/quartz_table.cc,backends/quartz/quartz_table.h, bin/quartzcheck.cc,bin/quartzdump.cc: QuartzCursor now has a Bcursor member, rather than an AutoPtr member. Thu Aug 12 14:13:37 BST 2004 Olly Betts * tests/btreetest.cc: Fixed up in line with the recent refactoring. Thu Aug 12 13:23:31 BST 2004 Olly Betts * m4/xapian.m4: XO_LIB_XAPIAN now AC_SUBSTs XAPIAN_VERSION. Thu Aug 12 13:21:36 BST 2004 Olly Betts * backends/quartz/,tests/quartztest.cc: Refactored, replacing Quartz*Manager with Quartz*Table. Thu Aug 12 02:00:58 BST 2004 Olly Betts * backends/quartz/: Merged QuartzTableManager into QuartzDatabase. Wed Aug 11 23:40:34 BST 2004 Olly Betts * backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h: Eliminated buffered_tables member of QuartzWritableDatabase. Wed Aug 11 21:26:35 BST 2004 Olly Betts * backends/inmemory/inmemory_database.cc, backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h, docs/todo.xml: WritableDatabase::replace_document can now be used to add a document with a specific docid (to allow keeping docids in sync with numeric UIDs from another system). Wed Aug 11 20:09:15 BST 2004 Olly Betts * api/omdatabase.cc,include/xapian/database.h: Added replace_document and delete_document variants which take a unique id term name rather than a document id. * include/xapian/database.h: Better documentation for replace_document and delete_document. Wed Aug 11 16:15:10 BST 2004 Olly Betts * backends/quartz/,bin/quartzcheck.cc,bin/quartzdump.cc, tests/quartztest.cc: Eliminated QuartzBufferedTable. Wed Jun 30 20:34:08 BST 2004 Olly Betts * NEWS: Fixed an unwrapped line. Wed Jun 30 20:32:31 BST 2004 Olly Betts * HACKING: Added note about the cvs-tag-release script. Wed Jun 30 19:05:45 BST 2004 Olly Betts * HACKING,NEWS,PLATFORMS,configure.in: Version 0.8.1. Wed Jun 30 14:23:20 BST 2004 Olly Betts * AUTHORS,PLATFORMS: Updated. Tue Jun 29 23:24:59 BST 2004 Olly Betts * tests/api_nodb.cc: Make emptyquery1 check that Query("") causes an InvalidArgumentError exception. Tue Jun 29 17:29:03 BST 2004 Richard Boulton * Makefile.am: Remove Debian files from distribution tarballs, since there will often be multiple patch releases for each release. Debian files will be available from an apt repository in future. Mon Jun 28 01:29:00 BST 2004 Olly Betts * NEWS: Mostly updated for 0.8.1 release. Sun Jun 27 23:37:01 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Fixed bug in postlist merging. Sat Jun 26 00:51:04 BST 2004 Olly Betts * AUTHORS: Add Malcolm Baldridge (helped fix a problem with building the PHP bindings with newer versions of SWIG and PHP). Fri Jun 26 00:29:10 BST 2004 Olly Betts * HACKING,api/ompositionlistiterator.cc,api/ompostlistiterator.cc, api/omtermlistiterator.cc,include/xapian/: MSetIterator and ESetIterator are now bidirectional iterators (rather than just input iterators); Fixed post-increment forms of PostingIterator, TermIterator, PositionIterator, and ValueIterator so that *i++ works (as it must for them to be true input iterators). Thu Jun 24 18:03:46 BST 2004 Olly Betts * PLATFORMS: Added success report for Slackware Linux 9.1. Mon Jun 21 16:33:16 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Corrected -> to . so code compiles with debug enabled. Mon Jun 21 03:25:24 BST 2004 Olly Betts * backends/quartz/btree.cc: Eliminated two calls to abort() - throw exceptions instead. Mon Jun 21 03:21:14 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Finish backing out incorrect change from "Fri May 07 03:16:29 BST 2004" - failed to change two lines back before. Fri Jun 18 16:48:10 BST 2004 Richard Boulton * configure.in: Fix typo (STLPORT_CXXLAGS -> STLPORT_CXXFLAGS) Thu Jun 17 03:46:32 BST 2004 Olly Betts * backends/quartz/quartz_database.cc: Cleaned up code to track add vs delete vs modify of a posting list entry since we now force a flush if an entry is about to be retouched. Thu Jun 17 03:44:21 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Back out incorrect change from "Fri May 07 03:16:29 BST 2004". We do need to call get_or_make_tag in this case because we're modifying the tag. Wed Jun 16 15:40:21 BST 2004 Olly Betts * backends/inmemory/inmemory_database.h: Implemented get_lastdocid() for InMemory backend. Wed Jun 16 02:39:41 BST 2004 Olly Betts * configure.in: Note the value of LIBRARY_VERSION_INFO which 0.8.1 would get if it were released now. Wed Jun 16 02:39:11 BST 2004 Robert Pollak * api/omdatabase.cc, include/xapian/database.h, backends/database.cc, common/database.h, backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h, backends/quartz/quartz_record.cc, backends/quartz/quartz_record.h: New method Database::get_lastdocid for re-synchronizing an old quartz index. Wed Jun 16 02:05:07 BST 2004 Richard Boulton * matcher/multimatch.cc: When collapsing, keep track of the number of collapses performed, and use this information to modify the bounds and estimate of the number of matches. * tests/api_db.cc: Added tests for this. * include/xapian/enquire.h: Update documentation comments for MSet::get_matches_*() functions to make clear that collapsing and cutoffs are taken into account. (Previously, the most likely interpretation of the comments was that they wouldn't be taken into account, but the implementation was that percentage cutoffs were taken into account.) Due to this ambiguity, I think it is reasonable to say this isn't an API change. Wed Jun 16 01:55:29 BST 2004 Olly Betts * matcher/multimatch.cc: Rearranged code so that the behaviour can be easily seen to be unchanged, but so that it's closer to the result of applying Richard's patch for bug #31. Wed Jun 16 01:27:09 BST 2004 Olly Betts * matcher/multimatch.cc: Trimmed extra whitespace. Tue Jun 15 15:40:11 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Fixed PostlistChunkReader to take a copy of the postlist data being read to avoid problems with reading data from a string that's been deleted. Tue Jun 15 15:26:54 BST 2004 Olly Betts * HACKING: Updated the list of tasks required for a new release. Tue Jun 15 15:24:04 BST 2004 Olly Betts * Makefile.am,configure.in,extra/Makefile.am: Unify the shlib version numbers (the small benefit of tracking them individually makes it hard to justify the extra work required, and having one version simplifies debian packaging too). Tue Jun 15 14:52:36 BST 2004 Robert Pollak * extra/xapian/queryparser.h: Fixed memory leaked upon QueryParser destruction. Fri Jun 11 02:18:35 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Refactored a loop. Fri Jun 11 02:17:05 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Fixed bug which meant we sometimes failed to remove a posting when deleting or replacing a document. Fri Jun 11 02:16:16 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc, backends/quartz/quartz_postlist.h: Merged move_to() into skip_to(). Fri Jun 11 02:14:56 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Fixed typo in comment. Thu May 27 15:41:45 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Eliminated the split cursor - we only actually need a single block buffer to handle splitting blocks. Wed May 26 04:02:18 BST 2004 Olly Betts * include/om/om.h,include/xapian/errortypes.h: Removed several unused Xapian::Error subclasses (these were used by the indexer framework which we decided was a failed experiment). Wed May 26 01:54:13 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: More DEBUGCALL tracing added; split_root now uses level member rather than a parameter. Sun May 23 00:56:41 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Merge split_off() into add_item(). Sat May 22 01:28:58 BST 2004 Olly Betts * backends/quartz/btree.cc: Another DEBUGCALL. * backends/quartz/quartz_table.h: Improved comments. Fri May 21 23:17:01 BST 2004 Olly Betts * backends/quartz/btree.cc: Removed unnecessary assignment which is a hangover from the shared level code we removed long ago. Fri May 21 20:31:56 BST 2004 Olly Betts * backends/quartz/,docs/quartzdesign.html,testsuite/btreecheck.cc: Removed overwritten flag (unused as we throw an exception anyway). If Btree is writable, throw DatabaseCorruptError if we detect overwritten. Make use of bool return types consistent. Removed documentation of Btree error codes (the error codes themselves were removed a month ago). Thu May 20 03:50:46 BST 2004 Olly Betts * include/xapian/database.h: Remove references to sessions in doxygen comments. Thu May 20 03:44:28 BST 2004 Olly Betts * api/omdatabase.cc,backends/database.cc, backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h, backends/muscat36/da_database.h,backends/muscat36/db_database.h, backends/net/net_database.cc,backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h,common/database.h, common/net_database.h: Clean up the backend interface. Thu May 20 03:18:30 BST 2004 Olly Betts * backends/database.cc,backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h,backends/muscat36/, backends/net/net_database.cc,backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h,common/database.h: Stripped out the session machinery - all that is actually required is to ensure that any unflushed changes are flushed when the dtor runs. Mon May 17 01:04:17 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h, backends/quartz/btree_types.h: Reworked split_p and split_n members of Cursor into a separate C_split cursor. This reduces the memory overhead of each Bcursor (and hence each QuartzPostList). Sat May 15 01:29:40 BST 2004 Olly Betts * docs/quickstart.html: Corrected lingering reference to "om.h" and note that we need . * docs/quickstartindex.cc.html,docs/quickstartexpand.cc.html, docs/quickstartsearch.cc.html: Add . * AUTHORS: Add John Ward for pointing out the above problems. Fri May 14 00:59:51 BST 2004 Olly Betts * HACKING: Added the start of a list of subtasks when doing a release. Currently it's always me that does this, but it may not always be and anyhow it'll help me to have a list to run through. Fri May 14 00:59:21 BST 2004 Olly Betts * docs/todo.xml: Updated. Thu May 13 17:14:18 BST 2004 Olly Betts * extra/queryparser.yy: When stripping non-alphanums prior to reparsing, keep dots ('.'). * extra/queryparsertest.cc: Pruned near-duplicate queryparsertest testcases. Thu May 13 12:09:19 BST 2004 Olly Betts * docs/quartzdesign.html: "interger" -> "integer". Thu May 13 11:20:44 BST 2004 Olly Betts * Makefile.am: Removed bogus extra line added by last change. Thu May 13 11:11:31 BST 2004 Olly Betts * configure.in,Makefile.am,autoconf/.cvsignore,autoconf/Makefile.am, m4/.cvsignore,m4/Makefile.am: Removed trivial m4/Makefile.am and and autoconf/Makefile.am and do the work from the top level Makefile.am instead. It's easy to see the structure this way, and it also removes a couple of recursive make invocations. Thu May 13 09:32:22 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Added DEBUGCALL tracing; Stripped out C_ parameters where they are always the internal cursor C. Thu May 13 00:05:45 BST 2004 Olly Betts * extra/queryparser.yy,extra/queryparsertest.cc: If we fail to parse a query, try stripping out non-alphanumerics and reparsing. Wed May 12 14:32:54 BST 2004 Olly Betts * common/omtime.h: Corrected file description. Wed May 12 02:08:44 BST 2004 Olly Betts * backends/quartz/btree.cc: Fixed typos in comment. Tue May 11 20:55:56 BST 2004 Olly Betts * xapian-config.in: Added comment saying why we filter out -I/usr/include; Removed no longer used "optarg" stuff; Added licence boilerplate text (with (C) dates mined from CVS). Tue May 11 13:42:38 BST 2004 Olly Betts * backends/quartz/bcursor.cc,backends/quartz/btree.cc: Added lots of assertions. Tue May 11 09:29:51 BST 2004 Richard Boulton * debian/: Added basic Debian packaging. Mon May 10 17:17:45 BST 2004 Olly Betts * docs/quartzdsign.html: Corrected various pieces of out of date information. Mon May 10 01:30:35 BST 2004 Olly Betts * backends/quartz/btree.h: Removed unused forward declaration of class BtreeCheck. Mon May 10 01:30:24 BST 2004 Olly Betts * backends/quartz/btree.cc: Fixed typo. Sat May 08 20:14:40 BST 2004 Olly Betts * backends/quartz/: Pruned some #include-s which were unused, or could be replaced by forward class declarations. Fri May 07 14:38:10 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Slight efficiency tweak to the "deleting the whole posting list" case. Fri May 07 03:16:29 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Removed another unnecessary use of QuartzBufferedTable::get_or_make_tag(). Fri May 07 02:56:22 BST 2004 Olly Betts * backends/quartz/btree.cc: Initialise prev_ptr and next_ptr at open time for a writable Btree. Fri May 07 02:46:53 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Remove unneeded call to QuartzBufferedTable::get_or_make_tag() in a case when we're using a cursor which has already fetched the tag. Thu May 06 23:30:12 BST 2004 Olly Betts * backends/quartz/btree.cc: Improved a comment. Thu May 06 22:20:43 BST 2004 Olly Betts * backends/quartz/btree.cc: Added a few more assertions. Thu May 06 02:25:33 BST 2004 Olly Betts * backends/quartz/quartz_positionlist.cc, backends/quartz/quartz_utils.h: Added SON_OF_QUARTZ define to disable incompatible changes to database formats by default, and use it to control the docid encoding for keys such that we're always inserting at the end of the table when added new documents. Thu May 06 02:23:02 BST 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Improved a FIXME comment. Thu May 06 00:32:17 BST 2004 Olly Betts * extra/queryparsertest.cc: Added test case for `term NOT "a phrase'. Thu May 06 00:28:32 BST 2004 Olly Betts * common/omdebug.cc,common/omdebug.h: Renamed OmTimer class used internally by the --enable-debug=profile code to Xapian::Internal::Timer. Wed May 05 13:59:47 BST 2004 Olly Betts * docs/scalability.html: Reworded to remove use of first person. Mon May 03 21:42:05 BST 2004 Olly Betts * Makefile.am: Improved wording of a FIXME comment. Sun May 02 10:18:55 BST 2004 Olly Betts * backends/quartz/btree.cc: Improved a couple of comments. Sat May 01 04:42:43 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h, backends/quartz/quartz_table.cc: Reopening the readonly version of a writable Btree is now more efficient. Sat May 01 01:41:24 BST 2004 Olly Betts * PLATFORMS: Added up-to-date success reports for x86-openbsd and x86-solaris. Fri Apr 30 04:05:15 BST 2004 Olly Betts * backends/quartz/: Don't delete and reload the Btree_base just after saving it - instead reuse the existing Btree_base object. Fri Apr 30 02:41:50 BST 2004 Olly Betts * backends/quartz/btree.cc: Clean up new code in Btree::commit() from last change. Thu Apr 29 22:41:05 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/quartz_table.cc: Don't close and reopen the database table file descriptors every time we flush changes. Thu Apr 29 22:40:36 BST 2004 Olly Betts * docs/quartzdesign.html: Improved wording in a couple of places. Thu Apr 29 16:50:45 BST 2004 Olly Betts * backends/quartz/bcursor.cc: Removed references to Btree::error from debug code since Btree::error was removed a week ago. Tue Apr 27 20:46:25 BST 2004 Olly Betts * backends/quartz/btree.cc,configure.in: Added configure test for glibc, because otherwise we need to include a header before we can check for glibc in order to define something we should be defining before we include any headers! Tue Apr 27 17:45:51 BST 2004 Olly Betts * backends/quartz/btree.cc: Only defined _XOPEN_SOURCE if __GLIBC__ is defined. OpenBSD seems to do the opposite to Linux and *disable* pread and pwrite if this is defined! Tue Apr 27 14:35:47 BST 2004 Olly Betts * api/omenquire.cc,tests/api_db.cc: Need to adjust index by firstitem when indexing into items (bug#28). Mon Apr 26 23:45:15 BST 2004 Olly Betts * PLATFORMS: Successfully built with gcc-3.5-20040327 snapshot on x86 linux. Fri Apr 23 11:26:07 BST 2004 Olly Betts * PLATFORMS: Successfully built and tested on arm linux. Fri Apr 23 11:24:23 BST 2004 Olly Betts * tests/remotetest.cc: Use 127.0.0.1 instead of localhost so that tcpmatch1 doesn't fail just because the network setup is broken. Thu Apr 22 00:54:58 BST 2004 Olly Betts * backends/quartz/: Stripped out Btree_errors as it's almost totally unused now. Fixed up the last few uses. * backends/quartz/quartz_table.cc: Fixed another case where read and write Btrees should share fds. Wed Apr 21 02:51:08 BST 2004 Olly Betts * backends/quartz/btree.cc: Check the return value of fdatasync()/fsync()/_commit() and raise an error. They aren't likely to fail harmlessly. Wed Apr 21 02:45:28 BST 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h, backends/quartz/quartz_table.cc: Share file descriptors between the read and write Btree objects so that a quartz WritableDatabase now uses 5 fds rather than 10. Wed Apr 21 02:37:38 BST 2004 Olly Betts * docs/scalability.html: Removed the reference to the Quartz update bottleneck "currently being addressed for Xapian 0.8" as it's now been addressed! Wed Apr 21 00:24:08 BST 2004 Olly Betts * backends/quartz/btree.cc: Corrected a comment. Mon Apr 19 14:42:06 BST 2004 Olly Betts * NEWS: Final update for 0.8.0. Mon Apr 19 14:02:33 BST 2004 Olly Betts * AUTHORS: Added people who've contributed build reports for the PLATFORMS file. Mon Apr 19 14:01:38 BST 2004 Olly Betts * PLATFORMS: More updates from tinderbox and elsewhere. Sat Apr 17 02:24:11 BST 2004 Olly Betts * PLATFORMS: Lots of updates from tinderbox and mailing list. Sat Apr 17 00:13:26 BST 2004 Olly Betts * HACKING: Added notes about using "using", and pointers to a couple of useful C++ web resources. Mon Apr 12 00:56:04 BST 2004 Olly Betts * Makefile.am,NEWS,configure.in,extra/Makefile.am: Version 0.8.0. Mon Apr 12 00:31:15 BST 2004 Olly Betts * NEWS: Updated for 0.8.0. Sun Apr 11 21:18:47 BST 2004 Olly Betts * extra/queryparser.yy,extra/queryparsertest.cc: Don't use a raw term for a term which starts with a digit. Sat Apr 10 17:20:23 BST 2004 Olly Betts * AUTHORS: "Open Muscat" not "OmSee"; Updated the list of contributors (more work needed...) Sat Apr 10 16:41:28 BST 2004 Olly Betts * m4/xapian.m4: Make XO_LIB_XAPIAN with no arguments do what most users will want: check for Xapian and fail if it's not found, or AC_SUBST XAPIAN_CXXFLAGS and XAPIAN_LIBS if it is. Those will unusual needs can supply one or both arguments as at present. Sat Apr 10 15:00:28 BST 2004 Olly Betts * docs/todo.xml: Updated. Sat Apr 10 00:32:07 BST 2004 Olly Betts * PLATFORMS: Added success report for GCC 3.4 (prerelease). Sat Apr 10 00:27:58 BST 2004 Olly Betts * extra/xapian/queryparser.h: Added doxygen documentation comments. Sat Apr 10 00:23:13 BST 2004 Olly Betts * testsuite/testsuite.cc: Removed a now superfluous line. Sat Apr 10 00:21:15 BST 2004 Olly Betts * testsuite/testsuite.cc: Give a more accurate message if valgrind spots a test doing something dodgy (e.g. free() of memory allocated with new). Thu Apr 08 17:22:20 BST 2004 Olly Betts * net/.cvsignore: No longer need to ignore readquery.cc. Thu Apr 08 17:19:43 BST 2004 Olly Betts * include/xapian/base.h: Note in doxygen comment why the ref_count is mutable. Thu Apr 08 15:33:16 BST 2004 Olly Betts * testsuite/testsuite.cc: valgrinding code needs errno.h too. Thu Apr 08 15:28:44 BST 2004 Olly Betts * include/xapian/enquire.h: Make Xapian::Weight::Weight() protected rather than private as we want to be able to call it from derived classes (GCC 3.4 flags this, other compilers seem to miss it). Tue Apr 06 03:32:39 BST 2004 Olly Betts * net/omerr_string.cc,include/xapian/error.h, include/xapian/errortypes.h,include/xapian/output.h: Fixed some doxygen warnings. Mon Apr 05 17:21:06 BST 2004 Olly Betts * README: There never was an Omsee release - the last BrightStation release was "OpenMuscat 0.4.1". Mon Apr 05 17:19:38 BST 2004 Olly Betts * backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h: Make the flush criterion 1000 documents changed (added, removed, or replaced) as that seems to perform much better over a wide variety of document sizes. Thu Apr 01 01:04:17 BST 2004 Olly Betts * tests/quartztest.cc: Fixed temporary directory used (a slash was missing). Thu Apr 01 00:39:59 BST 2004 Olly Betts * docs/todo.xml: Updated. Fri Mar 26 22:33:30 GMT 2004 Olly Betts * backends/quartz/quartz_database.cc: Fix problems with termfreq and collfreq in postlist getting out of step when a recently modified or deleted document is deleted or remodified. Fri Mar 26 12:31:24 GMT 2004 Olly Betts * configure.in: Fixed check for --enable-runtime-pseudo-reloc. Fri Mar 26 12:31:00 GMT 2004 Olly Betts * bin/Makefile.am: Removed spurious "-lz" from quartzdump_LDADD. Thu Mar 25 00:22:13 GMT 2004 Olly Betts * bin/quartzcheck.cc: Check the structure with the postlist Btree as well as the Btree structures themselves. Sun Mar 21 00:00:59 GMT 2004 Olly Betts * backends/quartz/quartz_table_manager.cc: Fix for building on mingw. Sat Mar 20 23:04:27 GMT 2004 Olly Betts * include/xapian/positioniterator.h,include/xapian/postingiterator.h: Add doxygen comments in front of PostingIterator and PositionListIterator classes so that doxygen pulls out the existing documentation for their methods. Sat Mar 20 16:23:13 GMT 2004 Olly Betts * configure.in,backends/quartz/quartz_table_manager.cc,common/utils.h: Added configure test for link() to avoid infinite loop on mingw! Thu Mar 18 12:20:18 GMT 2004 Olly Betts * configure.in: Improved the --enable-runtime-pseudo-reloc check. Thu Mar 18 00:45:15 GMT 2004 Olly Betts * bin/Makefile.am,tests/Makefile.am: Pass the magic mingw/cygwin flag when linking the programs in bin and tests. Thu Mar 18 00:33:22 GMT 2004 Olly Betts * configure.in,xapian-config.in: mingw and cygwin both need -Wl,--enable-runtime-pseudo-reloc passing when linking. Arrange for xapian-config to include this, and check that the ld installed is a new enough version (or at least that it was at configure time). Tue Mar 16 01:40:43 GMT 2004 Olly Betts * docs/matcherdesign.html: Merged in more details from a message I sent to the mailing list. Mon Mar 15 20:39:21 GMT 2004 Olly Betts * tests/quartztest.cc: Fail the test if there's still a directory after rmdir(), or there isn't a directory after mkdir(). Close a QuartzDatabase or QuartzWritableDatabase before trying to overwrite it - cygwin doesn't allow use to delete open/locked files... Mon Mar 15 20:38:11 GMT 2004 Olly Betts * backends/database.cc: Database::Internal::Internal::keep_alive() should be Database::Internal::keep_alive(). Mon Mar 15 17:20:58 GMT 2004 Olly Betts * include/xapian/base.h: Returning a void result makes SGI's compiler complain - don't! Mon Mar 15 14:34:44 GMT 2004 Olly Betts * common/omdebug.cc: Only use O_SYNC (on the debug log) if we have it. Sun Mar 14 17:48:52 GMT 2004 Olly Betts * tests/runtest.in: Mark with @configure_input@. Thu Mar 11 23:53:43 GMT 2004 Olly Betts * common/database.h,common/termlist.h,include/xapian/database.h, include/xapian/enquire.h: Attempted fixes for warnings given by SGI's MIPSpro C++ compiler. Thu Mar 11 23:51:10 GMT 2004 Olly Betts * configure.in: GCC 2.95 supported -Wno-long-long and is our minimum recommended version, so unconditionally use -Wno-long-long with GCC, and don't test for it on other compilers (the test incorrectly decided to use it with SGI's compiler leading to a warning for every file compiled). Thu Mar 11 17:29:24 GMT 2004 Olly Betts * docs/intro_ir.html: Added a link to "Information Retrieval" by Keith v.R. which can be read on his website! Thu Mar 11 17:12:35 GMT 2004 Olly Betts * PLATFORMS: Added IRIX success reports from Jim Lynch. Thu Mar 11 12:17:21 GMT 2004 Olly Betts * backends/quartz/quartz_database.cc: Fixes for Sun C++'s fussy template matching. Thu Mar 11 12:12:46 GMT 2004 Olly Betts * include/xapian/enquire.h: Another friend fix for Sun's C++. Thu Mar 11 01:56:19 GMT 2004 Olly Betts * include/xapian/query.h: Another fix for Sun's C++. Tue Mar 09 21:02:08 GMT 2004 Olly Betts * include/xapian/document.h: string -> std::string. Tue Mar 09 19:04:48 GMT 2004 Olly Betts * api/omdocument.cc,common/document.h,include/xapian/document.h, tests/api_db.cc,tests/api_posdb.cc: Renamed Xapian::Document::add_term_nopos to Xapian::Document::add_term (with forwarding wrapper method for compatibility with existing code). Sat Mar 06 02:32:58 GMT 2004 Olly Betts * docs/: Updated the quickstart tutorial and removed the warning that "this document isn't up to date". Sat Mar 06 01:56:17 GMT 2004 Olly Betts * api/omenquire.cc: Another tweak for Sun's C++ compiler. Sat Mar 06 01:31:29 GMT 2004 Olly Betts * common/omenquireinternal.h: Tweaked friend class declarations a bit so Sun's C++ compiler can cope. Thu Mar 04 23:58:17 GMT 2004 Olly Betts * PLATFORMS: Updated with results from the tinderbox. Thu Mar 04 23:29:28 GMT 2004 Olly Betts * tests/btreetest.cc,tests/quartztest.cc: NetBSD mkdir() doesn't cope with a trailing / on the path - fixed our code to cope with this. Wed Mar 03 19:14:09 GMT 2004 Olly Betts * docs/todo.xml: Updated. Fri Feb 13 23:56:44 GMT 2004 Olly Betts * api/omquery.cc,tests/api_nodb.cc: Throw error when an empty query is used to build in the binary operator Query ctor. Added regression test. Fri Feb 13 15:08:09 GMT 2004 Olly Betts * HACKING: XAPIAN_DEBUG_TYPES should be XAPIAN_DEBUG_FLAGS. Sat Feb 07 14:26:54 GMT 2004 Olly Betts * docs/queryparser.html: Grammar fixes. Fri Jan 16 02:06:53 GMT 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Fixed bug flagged up by deldoc4. Thu Jan 15 01:00:48 GMT 2004 Olly Betts * backends/quartz/quartz_termlist.cc: Use Xapian::doccount instead of unsigned int in set_entries(). Thu Jan 15 00:56:47 GMT 2004 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h, testsuite/btreecheck.cc: Made some static functions into static member functions of Btree so we can avoid duplicating code in btreecheck.cc. Also tweaked compare_keys to use memcmp and special case when the keys are the same length (each of these changes gives a very small speed gain). Thu Jan 15 00:54:47 GMT 2004 Olly Betts * api/maptermlist.h: Removed a FIXME which already had been fixed. Removed a couple of asserts from a function which should never be called (and so had `Assert(false)' anyway). Mon Jan 12 00:32:37 GMT 2004 Olly Betts * bin/quartzdump.cc: Backslash escape space and backslash in output rather than hex encoding them; renamed start-term and end-term to start-key and end-key; removed rather pointless "Calling next" message; if there's an error, write it to stderr not stdout, and exit with return code 1. Sun Jan 11 03:23:17 GMT 2004 Olly Betts * backends/quartz/quartz_termlist.cc: When possible, pack the wdf into the same byte as the reuse length - doing so typically makes the termlist 14% smaller! This change is backward compatible. Sat Jan 10 03:04:22 GMT 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Fixed bug in new postlist chunking code. Sat Jan 10 00:45:04 GMT 2004 Olly Betts * backends/quartz/quartz_termlist.cc: Removed unused OLD_TERMLIST_FORMAT code. Fri Jan 09 21:54:34 GMT 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Fix incorrect code which just happens to build and work with GCC 2.95. Fri Jan 09 14:40:00 GMT 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Tidied the initial call to get_chunk() out of the merge loop (gives ~4% speedup!) Fri Jan 09 01:31:05 GMT 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Implement chunking of postlists once again. Thu Jan 08 21:06:37 GMT 2004 Olly Betts * backends/quartz/quartz_postlist.cc: Shortcut the very common case of appending to a posting list (which happens when we're just adding new documents). Declare small helper functions as "inline". Wed Jan 07 23:21:59 GMT 2004 Olly Betts * backends/quartz/quartz_database.cc: Set threshold for flushing to a saner value for the value we are now using. * backends/quartz/: Use freq_deltas to update the stats in the first chunk of each postlist. Mon Jan 05 16:00:07 GMT 2004 Olly Betts * include/xapian/enquire.h: Made the TradWeight constructor explicit. This is technically an API change as before you could pass a double where a Xapian::Weight was required - now you must pass Xapian::TradWeight(2.0) instead of 2.0. That seems desirable, and it's unlikely any existing code will be affected. Mon Jan 05 15:08:26 GMT 2004 Olly Betts * include/xapian/: Added "explicit" qualifier to internal ctors which take a single parameter. Mon Jan 05 15:04:12 GMT 2004 Olly Betts * include/xapian/base.h: Assigning a normal pointer to a RefCntPtr no longer creates a temporary RefCntPtr from it. Thu Dec 25 05:49:03 GMT 2003 Olly Betts * backends/quartz/quartz_postlist.cc: Changed to merge a batch of changes into a posting list in one pass. Thu Dec 25 05:48:09 GMT 2003 Olly Betts * docs/quartzdesign.html: Some minor improvements. Thu Dec 25 05:39:57 GMT 2003 Olly Betts * tests/api_db.cc: Check returned docids are the expected values in a couple more cases. Improved wording of a comment. Thu Dec 25 05:38:43 GMT 2003 Olly Betts * backends/quartz/quartz_utils.h: Updated explanation of string encoding. Thu Dec 25 05:37:36 GMT 2003 Olly Betts * backends/quartz/quartz_values.cc: Fixed problem with dereferencing a pointer to the end of a string in debug output. Sun Dec 21 23:35:49 GMT 2003 Olly Betts * backends/quartz/quartz_postlist.cc: Refactor recently relocated code to reduce duplication. Sun Dec 21 21:44:07 GMT 2003 Olly Betts * backends/quartz/quartz_postlist.cc: Renamed skip_and_check_tname_in_key() to check_tname_in_key() as it doesn't do any sort of skipping! Sun Dec 21 14:54:49 GMT 2003 Olly Betts * backends/quartz/quartz_postlist.cc,backends/quartz/quartz_postlist.h, tests/quartztest.cc: Subsumed QuartzPostList::add_entry and QuartzPostList::delete_entry into QuartzPostList::merge_changes. Sun Dec 21 03:21:42 GMT 2003 Olly Betts * backends/quartz/quartz_database.cc, backends/quartz/quartz_postlist.cc, backends/quartz/quartz_postlist.h: Move merging on postlist changes into QuartzPostList in preparation for an efficient reimplementation. Sun Dec 21 01:47:07 GMT 2003 Olly Betts * backends/quartz/quartz_postlist.h, backends/quartz/quartz_table_entries.h: Fixed typos and incorrect comments. Sat Dec 20 22:11:26 GMT 2003 Olly Betts * backends/quartz/: Removed several needless inclusions of quartz_table_entries.h. Sat Dec 20 16:31:46 GMT 2003 Olly Betts * backends/quartz/,docs/quartzdesign.html: Removed all the quartz lexicon code and docs. It's been disabled for ages, and we've not missed it. Sat Dec 20 01:21:47 GMT 2003 Olly Betts * backends/quartz/quartz_database.h: Added doxygen comments for the QuartzWritableDatabase members we use to buffer changes. Sat Dec 20 01:19:10 GMT 2003 Olly Betts * backends/quartz/quartz_database.cc: Trigger autoflush on totlen_added + totlen_removed rather than specially tracking the number of document add/delete/replace operations. Fri Dec 19 22:51:26 GMT 2003 Olly Betts * backends/quartz/: Buffer up changes to the postlists and apply them all at once (at present they're applied inefficiently, but this is change enables us to apply them with an efficient merge). * tests/api_db.cc,tests/quartztest.cc: Added a couple of tests, and commented out some test lines which fail in debug builds. Sun Dec 14 03:38:55 GMT 2003 Olly Betts * common/omdebug.cc: Open debug log with flag O_WRONLY so that we can actually write to it! Mon Dec 08 01:53:24 GMT 2003 Olly Betts * HACKING: Update to mention that building from CVS requires ./configure --enable-maintainer-mode (or use bootstrap). Mon Dec 01 19:03:00 GMT 2003 Olly Betts * configure.in: Fixed the "fixed" valgrind test. Sun Nov 30 23:42:52 GMT 2003 Olly Betts * configure.in,testsuite/testsuite.cc: Fix test for valgrind - it wasn't working correctly when valgrind was installed but was too a version to support VALGRIND_COUNT_ERRORS and VALGRIND_COUNT_LEAKS. Wed Nov 26 16:31:19 GMT 2003 Olly Betts * Makefile.am,extra/Makefile.am: Updated libtool -version-info parameters for 0.7.5. Wed Nov 26 15:32:45 GMT 2003 Olly Betts * NEWS,PLATFORMS,configure.in: Version 0.7.5. Wed Nov 26 15:31:56 GMT 2003 Olly Betts * extra/queryparser.yy: Special case stemming language "none". Tue Nov 25 04:37:50 GMT 2003 Olly Betts * api/ompositionlistiterator.cc,api/ompostlistiterator.cc, include/xapian/positioniterator.h,include/xapian/postingiterator.h, tests/api_db.cc: Added missing default ctors for PostingIterator and PositionIterator classes; fixed PositionIterator assignment operator. Tue Nov 25 03:40:11 GMT 2003 Olly Betts * tests/btreetest.cc: Fixed 2 compiler warnings. Tue Nov 25 02:47:16 GMT 2003 Olly Betts * common/,include/xapian/: Fixed incorrect doxygen comments which resulted in some missing text in the collated API and internal classes documentation. Fri Nov 21 03:23:57 GMT 2003 Olly Betts * Makefile.am,include/xapian/termiterator.h,api/omtermlistiterator.cc: TermIterator::TermIterator() fix which actually works! Fri Nov 21 01:14:23 GMT 2003 Olly Betts * HACKING,configure.in,docs/Makefile.am,extra/Makefile.am: Change to using AM_MAINTAINER_MODE. If you're doing development work on Xapian, you should configure with "--enable-maintainer-mode" and ideally use GNU make. Fri Nov 21 01:13:25 GMT 2003 Olly Betts * include/xapian/termiterator.h,tests/api_nodb.cc: Added TermIterator default ctor which had disappeared somehow. Added regression test. Thu Nov 20 03:19:37 GMT 2003 Olly Betts * configure.in: Fixed test for fdatasync to work (I suspect a change in a recent autoconf broke it as it relied on autoconf internal naming). Tue Nov 18 17:53:29 GMT 2003 Olly Betts * extra/Makefile.am: Tweaked workaround for FreeBSD make in VPATH builds. Tue Nov 18 17:53:01 GMT 2003 Olly Betts * extra/queryparsertest.cc: Added another testcase. Tue Nov 18 17:37:20 GMT 2003 Olly Betts * docs/: Added first cut of documentation for Xapian::QueryParser query syntax. * docs/scalability.html: Fixed typo. Fri Oct 31 18:17:13 GMT 2003 Olly Betts * extra/queryparser.yy,extra/queryparsertest.cc: Added support for term prefixes on phrases and expressions (e.g. author:(twain OR poe) subject:"space flight"). Tue Oct 28 15:03:01 GMT 2003 Olly Betts * api/omenquire.cc: Added FIXME comment. Tue Oct 28 15:01:14 GMT 2003 Olly Betts * docs/todo.xml: Removed Java from list of language bindings we'd like to support, as we should have up-to-date Java bindings soon. Sun Oct 26 20:18:24 GMT 2003 Olly Betts * bin/quartzcompact.cc: Fix the name that the meta file gets copied to (was /path/to/dbdirmeta rather than /path/to/dbdir/meta). Tue Oct 21 22:26:51 BST 2003 Olly Betts * extra/Makefile.am: Backed out previous change - the original rule does work, but the build machine had a generated file which stopped the symlink being generated. Tue Oct 21 22:14:22 BST 2003 Olly Betts * extra/Makefile.am: Tweaked rule to symlink queryparser.cc. Tue Oct 21 17:31:10 BST 2003 Olly Betts * extra/Makefile.am: Added rule to symlink queryparser.cc from source tree to build tree - otherwise FreeBSD's make insists on regenerating it... Wed Oct 08 14:04:44 BST 2003 Olly Betts * backends/quartz/.cvsignore,tests/Makefile.am,testsuite/.cvsignore: Updated to reflect move of libbtreecheck.la from backends/quartz to testsuite. Wed Oct 08 13:22:08 BST 2003 Olly Betts * backends/quartz/btree.cc: Don't pass mode argument to open when we aren't specifying O_CREAT. Thu Oct 02 15:29:38 BST 2003 Olly Betts * NEWS: Another entry for omega for 0.7.4. Thu Oct 02 14:57:25 BST 2003 Olly Betts * configure.in,extra/Makefile.am: Version 0.7.4. Thu Oct 02 14:56:36 BST 2003 Olly Betts * HACKING: Improved wording in a few places. Thu Oct 02 14:39:49 BST 2003 Olly Betts * NEWS: Updated. Thu Oct 02 13:35:46 BST 2003 Olly Betts * xapian.spec.in: Don't hardcode the shared library versioning info. Wed Oct 01 13:51:15 BST 2003 Olly Betts * PLATFORMS: Updated - Solaris 8 + Sun Workshop C++ doesn't actually pass "make check" (I forgot the tinderbox builds omega before "make check"). Tue Sep 30 21:39:20 BST 2003 Olly Betts * configure.in: Another stab at fixing the test for -lsocket. Tue Sep 30 18:29:31 BST 2003 Olly Betts * configure.in: Quote arguments to test in a couple of places. Tue Sep 30 11:20:09 BST 2003 Olly Betts * configure.in: Fixed test for -lsocket. Tue Sep 30 10:17:09 BST 2003 Olly Betts * PLATFORMS: Updated - Solaris 8 + Sun Workshop C++ builds and passes "make check" (but Omega fails to build). Mon Sep 29 00:41:19 BST 2003 Olly Betts * configure.in: Fixed dependency libs for libxapian. Sun Sep 28 23:55:49 BST 2003 Olly Betts * Makefile.am,backends/quartz/Makefile.am, backends/quartz/btreecheck.cc,backends/quartz/btreecheck.h, bin/Makefile.am,testsuite/Makefile.am,testsuite/btreecheck.cc, testsuite/btreecheck.h: libbtreecheck.la now has an explicit dependency on libxapian.la. Sun Sep 28 17:29:55 BST 2003 Olly Betts * Makefile.am,configure.in: Tell libtool about any libraries which libxapian needs to depend on. Fri Sep 26 09:39:29 BST 2003 Olly Betts * bin/Makefile.am: Swap order of libbtreecheck.la and libxapian.la when linking quartzcheck to see if that gets it to work with Sun's CC. Thu Sep 25 17:25:17 BST 2003 Olly Betts * xapian-config.in: Fixed stupid mistake in previous check-in. Thu Sep 25 16:50:00 BST 2003 Olly Betts * xapian-config.in: Link with libxapianqueryparser before libxapian, since that's the dependency order. Thu Sep 25 16:43:20 BST 2003 Olly Betts * include/om/om.h: Updated comment about why we `#include '. Thu Sep 25 13:13:37 BST 2003 Olly Betts * api/omqueryinternal.cc,backends/database.cc,common/omdebug.cc, common/omstringstream.h,include/xapian/output.h: Removed or replaced uses of and - we don't need or want the library to pull in cin and friends. Thu Sep 25 13:12:31 BST 2003 Olly Betts * Makefile.am: Improved several comments. Thu Sep 25 11:57:03 BST 2003 Olly Betts * api/omqueryinternal.cc: Removed `#include ' left over from debugging; changed to `using namespace std;'. Mon Sep 15 00:41:10 BST 2003 Olly Betts * extra/queryparser.yy: Fixed to build with Sun's C++ compiler. Thu Sep 11 03:35:29 BST 2003 Olly Betts * dummy.c,dummy.cc,Makefile.am: Change the default file to be C++ so that automake tells libtool that this is a C++ library. * Makefile.am: Pass -no-undefined to libtool so that it will build a DLL on MS Windows. Wed Sep 10 02:53:46 BST 2003 Olly Betts * docs/scalability.html: Fixed oops (32GB should be 32TB); Added note about Linux 2.4 and ext2 filesize limits. Tue Sep 09 03:36:05 BST 2003 Olly Betts * backends/quartz/quartz_database.cc: don't start the document's TermIterator from scratch on every iteration in replace_document(). Should be a small performance win. Sun Sep 07 22:17:27 BST 2003 Olly Betts * configure.in: Fixed check for socketpair - we were automatically disabling the remote backend on platforms where socketpair is in libsocket (such as Solaris). Sun Sep 07 19:56:57 BST 2003 Olly Betts * PLATFORMS: Added success report for cygwin from Eric B. Ridge. Sun Sep 07 03:53:48 BST 2003 Olly Betts * testsuite/testsuite.cc: Also need to rerun test if it "probably leaked". Sun Sep 07 03:51:37 BST 2003 Olly Betts * tests/api_db.cc: Use x & (x - 1) trick to check for x being a power of 2, rather than an elaborate loop with shifting; use Xapian::docid rather than "int" and "unsigned int". Sun Sep 07 02:24:06 BST 2003 Olly Betts * api/omenquire.cc: Fixed small memory leak if Xapian::Enquire::set_query() is called more than once. Sun Sep 07 02:12:47 BST 2003 Olly Betts * common/omenquireinternal.h,include/xapian/enquire.h: Fixed Xapian::ESet to have reference counted internals * Makefile.am: bumped libxapian version-info to 1:0:0 because of this. Sun Sep 07 02:09:50 BST 2003 Olly Betts * testsuite/testsuite.cc: Delete any buffered test output before asking valgrind to check for leaks, as otherwise the buffered output may be reported as a leak; also fixed |= to != in several places - a cosmetic bug which lead to extra newlines after test output. Sun Sep 07 00:09:32 BST 2003 Olly Betts * testsuite/testsuite.cc: Actually open temporary file for valgrind to log to. Sat Sep 06 20:50:58 BST 2003 Olly Betts * configure.in,testsuite/testsuite.cc: Fixed up detection of valgrind and testsuite code to use it. Sat Sep 06 20:48:17 BST 2003 Olly Betts * tests/btreetest.cc: Reinstated non-superfluous `/'s which I had overeagerly removed! Sat Sep 06 17:28:00 BST 2003 Olly Betts * matcher/Makefile.am: Ship networkmatch.cc even if "make dist" is run from a tree with the remote backend disabled. Thu Aug 28 00:01:22 BST 2003 Olly Betts * tests/btreetest.cc: Removed superfluous `/'s from constructed paths. Fri Aug 15 15:12:24 BST 2003 Olly Betts * PLATFORMS: Updated with current testsuite results for mingw build. Fri Aug 15 15:10:59 BST 2003 Olly Betts * backends/quartz/btree.cc: Use O_BINARY for database I/O if it exists. Fri Aug 15 15:10:30 BST 2003 Olly Betts * common/utils.h: mkdir() only takes one argument on mingw. Fri Aug 15 01:26:22 BST 2003 Olly Betts * common/utils.h,testsuite/backendmanager.cc: Touch file using open() rather than system(). Fri Aug 15 01:06:06 BST 2003 Olly Betts * common/utils.h: Fixed parameter name of system from "filename" to "command" (cosmetic change). Thu Aug 14 22:31:23 BST 2003 Olly Betts * net/progclient.cc: Tidied a little. Tue Aug 12 12:50:19 BST 2003 Olly Betts * backends/quartz/quartz_database.cc: Pass 0 for the lexicon/postlist table when creating a termlist just to find the doc length. Tue Aug 12 02:08:50 BST 2003 Olly Betts * api/maptermlist.h,api/omdocument.cc,common/documentterm.h: Removed unused OmDocumentTerm::termfreq member variable. Tue Aug 12 00:53:02 BST 2003 Olly Betts * api/omdocument.cc,common/documentterm.h: OmDocumentTerm ctor now takes wdf, and replaced set_wdf() with inc_wdf() and dec_wdf(). Mon Aug 11 16:11:26 BST 2003 Olly Betts * backends/quartz/quartz_table_entries.cc: Removed rather unnecessary use of const_cast. Mon Aug 11 16:11:05 BST 2003 Olly Betts * backends/quartz/quartz_table.cc: Removed unused variable. Mon Aug 11 16:09:57 BST 2003 Olly Betts * backends/quartz/quartz_postlist.cc: Fixed typo in comment. Mon Aug 11 15:51:20 BST 2003 Olly Betts * tests/quartztest.cc: adddoc2 now checks that there weren't any extra values created. Mon Aug 11 12:55:49 BST 2003 Olly Betts * configure.in: Sorted out tests for gethostbyname and gethostbyaddr using standard autoconf macros. Mon Aug 11 12:05:13 BST 2003 Olly Betts * common/match.h,matcher/: Removed unused open_document() method from SubMatch and derived classes; calls made by the matcher to Document::Internal::open_document() now use the lazy flag provided for precisely this purpose, but apparently never used - this should give quite a speed boost to any matcher options which use values (e.g. sort, collapse). Sun Aug 10 02:25:59 BST 2003 Olly Betts * PLATFORMS: Out of curiosity, I tried to build with a Linux->DJGPP cross-compiler I had to hand. It built (just had to disable the remote backend if socketpair isn't found and add the workaround for not having snprintf). Sun Aug 10 01:38:17 BST 2003 Olly Betts * common/utils.cc: Fixed to compile if snprintf isn't available. Sun Aug 10 01:37:44 BST 2003 Olly Betts * backends/quartz/btree.cc: Fixed "initialisation reordered" warning. Sun Aug 10 01:26:58 BST 2003 Olly Betts * acinclude.m4: Updated in line with previous change. Sun Aug 10 01:00:08 BST 2003 Olly Betts * configure.in: If fork is found, but socketpair isn't, automatically disable the remote backend rather than configure dying with an error. * autoconf/: Removed various unused autoconf macros. Sat Aug 09 23:57:44 BST 2003 Olly Betts * backends/quartz/btree.h: Made "overwritten" protected. Sat Aug 09 23:45:26 BST 2003 Olly Betts * docs/quartzdesign.html: Wrapped an overlong line. Sat Aug 09 23:31:30 BST 2003 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h, backends/quartz/quartz_table.cc,docs/quartzdesign.html: Improved class Btree's encapsulation. Sat Aug 09 22:30:13 BST 2003 Olly Betts * NEWS: Fixed a few typos. Sat Aug 09 22:29:52 BST 2003 Olly Betts * PLATFORMS: Updated with results from the Tinderbox. Sat Aug 09 22:19:12 BST 2003 Fabrice Colin * xapian.spec.in: Updated RPM packaging to reflect changes in 0.7.3. Fri Aug 08 01:38:40 BST 2003 Olly Betts * Makefile.am,configure.in,extra/Makefile.am: Version 0.7.3. Fri Aug 08 01:35:04 BST 2003 Olly Betts * NEWS: Updated. Fri Aug 08 01:34:29 BST 2003 Olly Betts * PLATFORMS: Updated with more tinderbox results. Wed Aug 06 16:27:34 BST 2003 Olly Betts * HACKING: Noted that libtool 1.5 is the first version to actually support linking C++ libraries properly. Wed Aug 06 16:25:15 BST 2003 Olly Betts * api/omenquire.cc,net/socketcommon.cc,common/omenquireinternal.h: Moved rset serialisation into a method of RSet::Internal, so omrset_to_string() is now just glue code. This eliminates the need for it to be a friend of RSet::Internal which Sun's C++ compiler didn't seem to be able to cope with. Wed Aug 06 01:57:11 BST 2003 Olly Betts * api/omenquire.cc: Applied patch from Olivier Galibert to fix MSetIterator::get_document() when get_mset() was called with first != 0. * tests/api_db.cc: Added regression test (msetiterator3). Mon Aug 04 12:40:25 BST 2003 Olly Betts * languages/Makefile.am: Fixed compilation for compilers other than GCC. Wed Jul 30 17:03:14 BST 2003 Olly Betts * common/getopt.h: Another try - the previous one failed on FreeBSD. Wed Jul 30 15:07:58 BST 2003 Olly Betts * common/getopt.h: Another iteration of the getopt C++ prototype fix as the previous one failed on Solaris. Wed Jul 30 02:38:47 BST 2003 Olly Betts * testsuite/backendmanager.cc: Fixed breakage caused by remotetest cleanup. Tue Jul 29 13:22:20 BST 2003 Olly Betts * tests/remotetest.cc: Cleaned up uses of BackendManager::get_database() to pass a string rather than a vector with one string in. Tue Jul 29 11:58:21 BST 2003 Olly Betts * testsuite/testutils.cc: Added output of const vector for platforms which use our internal stringstream implementation. Tue Jul 29 11:42:54 BST 2003 Olly Betts * PLATFORMS: Updated with results from the tinderbox. Tue Jul 29 01:21:53 BST 2003 Olly Betts * testsuite/testsuite.cc,testsuite/testsuite.h: Only use \r in test output if the output is a tty. Mon Jul 28 23:56:10 BST 2003 Olly Betts * xapian-config.in: Fixed fix of --cxxflags for uninstalled VPATH builds. Mon Jul 28 23:37:15 BST 2003 Olly Betts * testsuite/backendmanager.cc: Increased default timeout used by tests running on the remote backend from 10 seconds to 5 minutes to avoid tests failing just because the machine running them is slow and/or busy. Mon Jul 28 15:41:12 BST 2003 Olly Betts * testsuite/testutils.h: Fixed check for broken exception handling - we were getting "Xapian::" prefixed to one version and not on the other. Mon Jul 28 15:34:54 BST 2003 Olly Betts * tests/runtest.in: Set srcdir if it isn't already to make it easy to manually run test programs from a VPATH build. Mon Jul 28 10:38:04 BST 2003 Olly Betts * xapian-config.in: Fixed --cxxflags for uninstalled VPATH builds. Mon Jul 28 10:37:17 BST 2003 Olly Betts * PLATFORMS: Updated FreeBSD success report. Sun Jul 27 16:01:25 BST 2003 Olly Betts * configure.in: Explicitly remove include/xapian/version.h from APIDOC_SRC to avoid us trying to run doxygen unnecessarily. Sun Jul 27 14:31:36 BST 2003 Olly Betts * docs/todo.xml: Assorted updates. Sun Jul 27 13:02:36 BST 2003 Olly Betts * extra/.cvsignore: We still create libomqueryparser.la for backward compatibility. Sun Jul 27 04:56:40 BST 2003 Olly Betts * xapian-config.in,m4/xapian.m4: Added --from-xo-lib-xapian option to xapian-config for use by XO_LIB_XAPIAN to allow us to give a more helpful error message if asked to link an uninstalled libxapian. Sun Jul 27 04:46:48 BST 2003 Olly Betts * xapian-config.in: Fixed --cxxflags in non-installed case. Tidied up --help output and error messages. Sun Jul 27 01:40:39 BST 2003 Olly Betts * tests/api_db.cc: Check termfreq in allterms4. Sun Jul 27 01:39:57 BST 2003 Olly Betts * extra/queryparsertest.cc: Fixed for relocated queryparser.h. Sun Jul 27 00:59:56 BST 2003 Olly Betts * .cvsignore,backends/quartz/.cvsignore,extra/.cvsignore: Updated. Sun Jul 27 00:19:11 BST 2003 Olly Betts * tests/Makefile.am: Oops, failed to remove btreecheck.cc reference in previous check-in. Sat Jul 26 23:36:01 BST 2003 Olly Betts * backends/quartz/Makefile.am,bin/Makefile.am,tests/Makefile.am: Hopefully fixed "make dist" in VPATH builds. Sat Jul 26 22:58:27 BST 2003 Olly Betts * backends/quartz/Makefile.am: Need to distribute btreecheck.cc. Sat Jul 26 20:05:47 BST 2003 Olly Betts * xapian-config.in,extra/Makefile.am,extra/queryparser.h, extra/queryparser.yy,extra/xapian/queryparser.h: Sorted out xapian-config so it handles using QueryParser too. Sat Jul 26 19:03:04 BST 2003 Olly Betts * xapian-config.in: Updated logic in --libs and --cxxflags in line with recent change in --ltlibs. Sat Jul 26 18:31:11 BST 2003 Olly Betts * xapian-config.in: Reworked logic for finding libxapian.la in --ltlibs - it may not yet exist in the non-installed case. * m4/xapian.m4: Don't pass --libs when checking if xapian-config works as it will fail in the non-installed case. Sat Jul 26 01:25:46 BST 2003 Olly Betts * NEWS: Updated. Fri Jul 25 10:20:18 BST 2003 Olly Betts * NEWS: Updated in preparation for 0.7.3 release. Thu Jul 24 23:20:14 BST 2003 Olly Betts * backends/quartz/quartz_alltermslist.cc, backends/quartz/quartz_alltermslist.h,tests/api_db.cc: Fixed allterms TermIterator to not give duplicate terms with a quartz database when a posting list is chunked; added regression test (allterms4). Mon Jul 21 15:06:59 BST 2003 Richard Boulton * include/xapian/enquire.h: Fix incorrect documentation comment for Enquire::set_set_forward(). (Looked like a cut&paste error) Mon Jul 21 01:10:55 BST 2003 Olly Betts * docs/install.html,m4/xapian.m4: Added XO_LIB_XAPIAN to replace OM_PATH_XAPIAN. XO_LIB_XAPIAN will automagically enable use of "xapian-config --ltlibs" if A[CM]_PROG_LIBTOOL is used in configure.in. Sun Jul 20 16:00:43 BST 2003 Olly Betts * .cvsignore,Makefile.am,configure.in,xapian-config.in, xapian-config.nodep.in: Reworked xapian-config so that it now supports linking with libtool - using libtool means that the run-time library path is set and that you can now link with an uninstalled libxapian. Also xapian-config will now work once configure is run, rather than only after "make all". Thu Jul 17 01:42:47 BST 2003 Olly Betts * backends/quartz/bcursor.cc,backends/quartz/btree.cc: Check for EINTR when reading or writing blocks and retry the operation. Thu Jul 17 00:56:35 BST 2003 Olly Betts * COPYING: Updated FSF address, and reinstated missing section: "How to Apply These Terms to Your New Programs" Thu Jul 17 00:48:40 BST 2003 Olly Betts * HACKING,bootstrap: Removed bootstrap in favour of top-level bootstrap. Mon Jul 14 23:36:14 BST 2003 Olly Betts * PLATFORMS: Updated some linux results: RH7.3 on x86, and Debian on alpha and arm. Mon Jul 14 23:33:17 BST 2003 Olly Betts * configure.in,Makefile.am,extra/Makefile.am: Added versioning information to libxapian and libomqueryparser. Mon Jul 14 23:32:15 BST 2003 Olly Betts * bin/quartzdump.cc,testsuite/testsuite.cc: Added long option support to quartzdump, and to the testsuite programs. Mon Jul 14 22:45:53 BST 2003 Olly Betts * tests/internaltest.cc: Changed test exception1 to actually test something (hopefully what was originally intended!) Mon Jul 14 17:15:28 BST 2003 Olly Betts * common/getopt.h: #include before defining getopt as a macro - hopefully that'll avoid problems with clobbering prototypes of getopt() in system headers. Sat Jul 12 09:15:26 BST 2003 Olly Betts * bin/quartzcompact.cc: Need stdio.h for rename(). Sat Jul 12 01:11:54 BST 2003 Olly Betts * HACKING: Noted another reason why libtool 1.5 is needed. Sat Jul 12 01:11:08 BST 2003 Olly Betts * docs/mkdoc.pl: Don't choke on a comment at the end of the DIST_SUBDIRS line in a Makefile.am. Fri Jul 11 22:00:36 BST 2003 Olly Betts * HACKING: Added note about additional tools needed for building a distribution. Fri Jul 11 15:13:08 BST 2003 Olly Betts * NEWS,PLATFORMS,configure.in: Version 0.7.2. Fri Jul 11 12:36:18 BST 2003 Olly Betts * NEWS: Updated in preparation for 0.7.2. Fri Jul 11 12:12:40 BST 2003 Olly Betts * configure.in: Fixed test for snprintf. Fri Jul 11 09:37:14 BST 2003 Olly Betts * testsuite/testsuite.cc: Fixed dereference of a NULL pointer which was happening when a test threw an unexpected exception. Fri Jul 11 09:31:40 BST 2003 Olly Betts * testsuite/backendmanager.cc: Backed out incorrect hunk of previous patch which was causing test failures. Fri Jul 11 01:48:21 BST 2003 Olly Betts * backends/quartz/quartz_table_manager.cc,tests/quartztest.cc, testsuite/backendmanager.cc: Tidying up around directory creation. Fri Jul 11 00:57:12 BST 2003 Olly Betts * include/xapian/database.h: Document that the directory is created. Fri Jul 11 00:53:59 BST 2003 Olly Betts * backends/quartz/quartz_table_manager.cc: When asked to create a quartz database, try to create the directory if it doesn't already exist. Then we don't have to do it in every single Xapian program which wants to create a database... Fri Jul 11 00:36:00 BST 2003 Olly Betts * common/getopt.h: Removed space between \ and newline. Fri Jul 11 00:32:40 BST 2003 Olly Betts * PLATFORMS: Added MacOS X 10.2 success report. Thu Jul 10 20:05:58 BST 2003 Olly Betts * common/getopt.h: Fixed to work better with C++ compilers on non-glibc platforms. Thu Jul 10 19:21:00 BST 2003 Olly Betts * backends/quartz/btree.cc: Modified setting of _XOPEN_SOURCE to actually work! Thu Jul 10 19:19:30 BST 2003 Olly Betts * backends/quartz/btree.cc: Defined _XOPEN_SOURCE=500 for GLIBC so we get pread() and pwrite(). Thu Jul 10 00:28:25 BST 2003 Olly Betts * HACKING,Makefile.am,configure.in,bindings/.cvsignore, bindings/Makefile.am,bindings/dir_contents,bindings/guile/.cvsignore, bindings/guile/Makefile.am,bindings/php4/.cvsignore, bindings/php4/ABOUT,bindings/php4/Makefile.am,bindings/python/, bindings/swig/,bindings/tcl8/.cvsignore,bindings/tcl8/Makefile.am, docs/todo.xml: Removed bindings - they'll shortly reappear in a separate module named xapian-bindings. Thu Jul 10 00:03:04 BST 2003 Olly Betts * bindings/swig/om_util_perl5.i: Removed. Wed Jul 09 15:35:56 BST 2003 Olly Betts * bindings/guile/Makefile.am,bindings/php4/Makefile.am, bindings/python/Makefile.am,bindings/swig/, bindings/tcl8/Makefile.am: Removed omtypes.i and merged omstem.i into xapian.i; added forward declaration for upwrapped classes to xapian.i. Wed Jul 09 15:34:11 BST 2003 Olly Betts * bindings/java/,bindings/java/com/muscat/om/,bindings/java/native/: Removed old Java bindings - we'll do them using SWIG instead. Wed Jul 09 14:51:51 BST 2003 Olly Betts * bindings/php4/Makefile.am,bindings/php4/xapian/.cvsignore: More work on the php4 bindings. Wed Jul 09 03:00:17 BST 2003 Olly Betts * bindings/guile/Makefile.am,bindings/python/Makefile.am, bindings/tcl8/Makefile.am: Worked towards getting guile and tcl8 bindings up-to-date. * bindings/php4/.cvsignore: Ignore the whole xapian subdirectory. Wed Jul 09 02:37:12 BST 2003 Olly Betts * bindings/perl5/: Removed remaining files. Wed Jul 09 02:30:55 BST 2003 Olly Betts * configure.in,bindings/Makefile.am,bindings/php4/Makefile.am: Working towards getting the php4 bindings functional again. Wed Jul 09 01:27:39 BST 2003 Olly Betts * bindings/swig/om_util_php4.i: om_termname -> std::string. Wed Jul 09 01:25:11 BST 2003 Olly Betts * docs/overview.html,include/xapian/base.h,include/xapian/database.h: Improvements to doxygen-generated documentation. Wed Jul 09 01:23:55 BST 2003 Olly Betts * configure.in,docs/todo.xml: Added check for SWIG version (require at least 1.3.14). Tue Jul 8 20:59:08 2003 James Aylett * common/utils.h: missing #include Tue Jul 8 18:06:23 2003 James Aylett * bindings/swig/xapian.i: over-enthusiastic automatic conversion of termname to std::string Tue Jul 08 17:45:16 BST 2003 Olly Betts * common/utils.h: Improved mingw implementation of rmdir(). Tue Jul 08 17:43:21 BST 2003 Olly Betts * NEWS,PLATFORMS,configure.in: Version 0.7.1. Sun Jul 06 21:35:08 BST 2003 Olly Betts * backends/quartz/btree.cc: Minor tweak. Sun Jul 06 21:34:30 BST 2003 Olly Betts * common/utils.h: Compile fixes for mingw. Sun Jul 06 17:59:26 BST 2003 Olly Betts * docs/scalability.html: Fixed typo. Sun Jul 06 13:02:09 BST 2003 Olly Betts * docs/scalability.html: Fixed typo. Sun Jul 06 12:56:08 BST 2003 Olly Betts * docs/Makefile.am,docs/index.html,docs/scalability.html: Added new document on Xapian's scalability. Sun Jul 06 12:15:34 BST 2003 Olly Betts * backends/quartz/: Made quartz block count unsigned, which should nearly double the size of database for a given block size. Sun Jul 06 11:47:46 BST 2003 Olly Betts * backends/quartz/: Use BLK_UNUSED rather than literal -1. Sun Jul 06 11:47:14 BST 2003 Olly Betts * common/utils.h: Fixed last check-in to compile. Sun Jul 06 11:01:03 BST 2003 Olly Betts * common/utils.h,tests/btreetest.cc,tests/quartztest.cc, testsuite/backendmanager.cc: Replaced system("rm -rf ...") with rmdir() function and added two ms windows implementations for Sam to try. Sat Jul 05 10:37:35 BST 2003 Olly Betts * getopt/getopt.c: Suppress "unused variable" warnings from getopt.c. Sat Jul 05 02:21:11 BST 2003 Olly Betts * docs/todo.xml: Updated. Sat Jul 05 02:09:06 BST 2003 Olly Betts * configure.in,backends/quartz/btree.cc: Use pread() and pwrite() if available - this avoids one syscall per block read/write. Fri Jul 04 22:05:14 BST 2003 Olly Betts * PLATFORMS: Added results from building 0.7.0 on my Linux dev box. Fri Jul 04 18:52:07 BST 2003 Olly Betts * extra/Makefile.am: Distribute symboltab.h. Fri Jul 04 18:04:53 BST 2003 Olly Betts * common/Makefile.am: Distribute documentterm.h. Fri Jul 04 15:30:28 BST 2003 Olly Betts * configure.in: Disabled guile, tcl8, and php4 here as well as in bindings/Makefile.am. Fri Jul 4 11:27:53 2003 James Aylett * bindings/Makefile.am: change commenting so mkdoc.pl doesn't choke Fri Jul 4 10:51:04 2003 James Aylett * bootstrap: add missing ';;' as case pattern delimiter Thu Jul 03 23:46:14 BST 2003 Olly Betts * bindings/Makefile.am,bindings/python/Makefile.am: Fixed to work with "make dist". Thu Jul 03 23:29:06 BST 2003 Olly Betts * NEWS,PLATFORMS,configure.in: Version 0.7.0. Thu Jul 03 22:57:22 BST 2003 Olly Betts * PLATFORMS: Updated (Linux GCC 2.95 and Linux to mingw cross). Thu Jul 03 22:55:54 BST 2003 Olly Betts * extra/queryparser.yy,extra/queryparsertest.cc: Allow more than one adjacent phrase generating character. Thu Jul 03 22:12:18 BST 2003 Olly Betts * extra/queryparser.yy,extra/queryparsertest.cc: Always ignore phrase generating characters at start and end of query. Thu Jul 03 21:02:10 BST 2003 Olly Betts * extra/Makefile.am: Fixed for mingw compile. Thu Jul 03 19:24:50 BST 2003 Olly Betts * buildall,docs/OMAims: Removed unwanted old files. Thu Jul 03 19:18:41 BST 2003 Olly Betts * backends/quartz/runquartztest: Obsolete, so removed. Thu Jul 03 01:26:03 BST 2003 Olly Betts * common/omenquireinternal.h: Fix for building with GCC 3.3. Thu Jul 03 01:02:54 BST 2003 Olly Betts * NEWS: Updated. Wed Jul 02 22:18:07 BST 2003 Olly Betts * backends/quartz/bcursor.cc,backends/quartz/bcursor.h: Made Bcursor::get_key(string * key) const. Wed Jul 02 21:51:43 BST 2003 Olly Betts * backends/quartz/: Workaround for shared_level problem turns out to be arguably the better approach, so made it permanent and tidied up code. Mon Jun 23 21:39:50 BST 2003 Olly Betts * NEWS: Updated in preparation for 0.7.0 release. Mon Jun 23 21:18:23 BST 2003 Olly Betts * extra/omparsequery.h: Corrected include protection token comment on #endif to match that used in the #ifdef. Mon Jun 23 21:10:33 BST 2003 Olly Betts * bootstrap: Check for Bison 1.875 which doesn't work with Xapian. Mon Jun 23 21:08:35 BST 2003 Olly Betts * HACKING: Automake 1.7 works reliably with Xapian; CFLAGS=-Werror can now be used as we suppress the warnings from the Snowball generated C code. Mon Jun 23 16:55:54 BST 2003 Olly Betts * api/,backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h,backends/quartz/, bindings/swig/om_util_python.i,bindings/swig/xapian.i,common/, include/Makefile.am,include/xapian.h,include/om/om.h,include/xapian/, matcher/localmatch.h,matcher/phrasepostlist.h,tests/api_db.cc, tests/api_posdb.cc,tests/quartztest.cc: Xapian::Xapian::PostListIterator -> Xapian::PostingIterator; Xapian::PositionListIterator -> Xapian::PositionIterator; xapian/postlistiterator.h -> xapian/postingiterator.h; xapian/positionlistiterator.h -> xapian/positioniterator.h. Mon Jun 23 15:31:30 BST 2003 Olly Betts * backends/database.cc,backends/inmemory/inmemory_database.h, backends/muscat36/,backends/quartz/,bindings/python/Makefile.am, bindings/swig/om_util.i,bindings/swig/omstem.i,docs/quickstart.html, docs/todo.xml,include/xapian/database.h,include/xapian/enquire.h, include/xapian/errortypes.h,tests/api_db.cc,tests/quartztest.cc, testsuite/backendmanager.cc,testsuite/textfile_indexer.cc: Xapian::OpeningError renamed to Xapian::DatabaseOpeningError. * include/om/om.h: OmOpeningError now maps to Xapian::DatabaseOpeningError. Mon Jun 23 01:44:45 BST 2003 Olly Betts * api/,backends/inmemory/inmemory_database.cc, backends/muscat36/da_database.cc,backends/muscat36/db_database.cc, backends/net/net_database.cc,backends/net/net_termlist.cc, backends/net/net_termlist.h,backends/quartz/,bin/omprogsrv.cc, bin/quartzdump.cc,common/,include/xapian/error.h, include/xapian/errorhandler.h,matcher/emptymatch.h,net/, tests/quartztest.cc,tests/stemtest.cc,testsuite/testsuite.cc, testsuite/textfile_indexer.cc: Use '#include <...>' for headers in include/. Thu Jun 19 17:55:07 BST 2003 Olly Betts * common/netserver.h,common/socketserver.h,matcher/localmatch.cc, matcher/multimatch.cc,net/socketserver.cc: Removed unused header inclusion; pass Stats and Xapian::Database by const reference, not value. Thu Jun 19 14:50:49 BST 2003 Olly Betts * extra/queryparser.yy,extra/symboltab.h: Force control characters to spaces; Added note that accent normalisation is perhaps done at the wrong time... Thu Jun 19 14:40:36 BST 2003 Olly Betts * extra/queryparsertest.cc: Added test for control characters. Thu Jun 19 14:31:12 BST 2003 Olly Betts * extra/queryparsertest.cc: Added checks for weird whitespace in queries. Wed Jun 18 19:02:14 BST 2003 Olly Betts * extra/queryparser.yy: Reworked parsing of boolean operators to improve error reporting. * extra/queryparsertest.cc: Added 2 more testcases and fixed to better handle tests for expected errors. Wed Jun 18 19:00:55 BST 2003 Olly Betts * extra/queryparser.yy: Trim leading and trailing whitespace before attempting to parse the query. Wed Jun 18 17:58:56 BST 2003 Olly Betts * extra/queryparser.yy: `using namespace Xapian;' Fri Jun 06 01:33:33 BST 2003 Olly Betts * docs/quartzdesign.html: Commented out the section on the Lexicon, which we no longer use. Thu Jun 05 22:40:21 BST 2003 Olly Betts * bindings/python/.cvsignore,bindings/python/Makefile.am, bindings/python/dothemake.txt,bindings/swig/om_util_python.i: Cleaned up building of python bindings by making better use of automake. Thu Jun 05 22:17:40 BST 2003 Olly Betts * languages/Makefile.am: Reenable standard warnings apart from the -Wunused. Thu Jun 05 20:21:08 BST 2003 Olly Betts * api/omqueryinternal.cc: Fixed a couple of problems with the new query serialisation. Thu Jun 05 17:55:21 BST 2003 Olly Betts * HACKING,configure.in: Flex is no longer used, so removed configure tests and note in HACKING. Thu Jun 05 17:53:30 BST 2003 Olly Betts * tests/remotetest.cc: In test netexpand1, use TEST() rather than Assert() so that the check is made in non-debug builds too. Thu Jun 05 17:52:17 BST 2003 Olly Betts * api/omqueryinternal.cc,common/socketcommon.h,docs/todo.xml, include/xapian/query.h,net/: Reworked query serialisation so that the code is now all in api/omqueryinternal.cc. Serialisation is now rather more compact and no longer relies on flex for parsing. Thu Jun 05 17:45:00 BST 2003 Olly Betts * bin/Makefile.am: omprogsrv depends on libtest.la, so it need to be in check_PROGRAMS. Thu Jun 05 17:09:10 BST 2003 Olly Betts * Makefile.am: Moved bindings after extra in SUBDIRS - the bindings wrap Xapian::QueryParser so they need to be built after it. Thu Jun 05 01:28:01 BST 2003 Olly Betts * bindings/python/Makefile.am: Use $(SWIG) (as detected by configure). Thu Jun 05 00:46:16 BST 2003 Olly Betts * configure.in,bindings/Makefile.am,bindings/python/Makefile.am: Check for python and find the correct paths for building python bindings; Added dependencies for building _xapian.so. Wed Jun 4 17:19:37 2003 James Aylett * configure.in, Makefile.am, bindings: build system will build bindings as part of normal build process. No longer build Perl or Java bindings; for Perl, use Search::Xapian; Java will be replaced with SWIG-based bindings. * bindings: bindings now use Xapian:: namespace names rather than the old Om* ones. Almost all of the API should now be wrapped. Wed Jun 04 02:52:38 BST 2003 Olly Betts * docs/overview.html: Added start of "Design Principles" section. * docs/todo.xml: Added a couple more items. Wed Jun 04 02:51:56 BST 2003 Olly Betts * Makefile.am: Build testsuite later - it now doesn't need to be built until just before tests. Wed Jun 04 02:43:08 BST 2003 Olly Betts * backends/muscat36/: Split up spec into comments in the appropriate header files; fixed to build after recent Om -> Xapian changes. Wed Jun 04 01:56:46 BST 2003 Olly Betts * HACKING: Bison 1.75 and 1.875a both checked with parsequery.yy - no problems found. Mon Jun 02 20:14:22 BST 2003 Olly Betts * ChangeLog.0: Fixed 2 typos. Mon Jun 02 20:09:01 BST 2003 Olly Betts * NEWS: Updated in preparation for 0.7.0 release. Mon Jun 02 16:25:18 BST 2003 Olly Betts * configure.in: Fix m4 quoting so that MINOR_VERSION is set correctly. Mon Jun 2 15:22:30 2003 James Aylett * bindings/swig/xapian.i: move QueryParser wrapping to use the new namespace location, and fix include so it can work out of the build directory rather than just the installed library Mon Jun 02 14:15:14 BST 2003 Olly Betts * Makefile.am,configure.in,bindings/Makefile.am,docs/todo.xml: Added --enable-bindings to configure - if this is specified and swig is detected, try to build the language bindings. Mon Jun 02 12:46:18 BST 2003 Olly Betts * backends/database.cc: Fixed parsing of port number in remote stub databases. Sat May 31 15:03:47 BST 2003 James Aylett * bindings/swig: update so can build Python bindings against latest Xapian; untested, and other languages are likely to fail Fri May 30 02:59:48 BST 2003 Olly Betts * extra/queryparser.yy,extra/queryparsertest.cc: Embedded '.' is now a phrase maker; Ignore `""' in query; Ignore ')' at start of query. Fri May 30 01:22:49 BST 2003 Olly Betts * extra/queryparsertest.cc: Added another 405 queries which fail to parse (courtesy of Arjen van der Meijden). Thu May 29 19:08:28 BST 2003 Olly Betts * docs/todo.xml,extra/queryparsertest.cc: Extracted two more queryparser testcases which need fixing from the old todo list. Thu May 29 17:14:04 BST 2003 Olly Betts * extra/queryparser.yy,extra/queryparsertest.cc: A phrasemaker isn't a phrasemaker unless it's preceded by an alphanumeric, "+", or "-"; If a single term is in (), ignore the (). Thu May 29 16:45:39 BST 2003 Olly Betts * extra/queryparser.yy,extra/queryparsertest.cc: Improved handling of various odd queries encountered in real life applications. Thu May 29 01:50:51 BST 2003 Olly Betts * docs/todo.xml: Updated more. Thu May 29 01:26:50 BST 2003 Olly Betts * api/,backends/database.cc,backends/inmemory/,backends/multi/, backends/muscat36/,backends/net/,backends/quartz/,common/, docs/overview.html,docs/quickstart.html, docs/quickstartexpand.cc.html,extra/queryparser.yy,include/om/om.h, include/xapian/,matcher/,net/,tests/api_db.cc,tests/api_posdb.cc, tests/quartztest.cc,testsuite/: Converted remaining om_xxx types to Xapian::xxx. Wed May 28 23:06:18 BST 2003 Olly Betts * docs/todo.xml: Updated. Wed May 28 22:59:17 BST 2003 Olly Betts * tests/api_db.cc: Spelling correction: accross -> across. Wed May 28 20:24:32 BST 2003 Olly Betts * extra/: OmQueryParser -> Xapian::QueryParser, etc. Wed May 28 20:03:48 BST 2003 Olly Betts * api/omdocument.cc: Removed include of defunct header modifieddocument.h. Wed May 28 20:00:56 BST 2003 Olly Betts * api/maptermlist.h,api/omdocument.cc,api/omvalueiterator.cc, backends/inmemory/inmemory_document.cc, backends/inmemory/inmemory_document.h,backends/muscat36/, backends/net/net_document.cc,backends/net/net_document.h, backends/quartz/quartz_document.cc,backends/quartz/quartz_document.h, common/Makefile.am,common/document.h,common/modifieddocument.h, include/xapian/document.h,tests/api_db.cc: Fixed bug in refactored Xapian::Document when modifying a copy. Added regression test. Wed May 28 19:23:26 BST 2003 Olly Betts * common/omenquireinternal.h,include/xapian/database.h, include/xapian/enquire.h,include/xapian/query.h: Where possible, declare classes rather than including headers (in public headers). Wed May 28 17:32:14 BST 2003 Olly Betts * include/xapian/document.h: Just declare "class TermIterator;" rather than including . Tue May 27 16:59:34 BST 2003 Olly Betts * common/progserver.h,common/socketserver.h,net/socketserver.cc: Reduced needless header inclusion. Tue May 27 16:53:40 BST 2003 Olly Betts * bin/omprogsrv.cc,tests/api_db.cc: Use variable name "dbs" in preference to "dbgrp". OmDatabaseGroup hasn't existed for years! Tue May 27 16:51:30 BST 2003 Olly Betts * Makefile.am: Fixed typo: "bin" should be "net" in remote_subdirs. Tue May 27 02:43:32 BST 2003 Olly Betts * backends/quartz/Makefile.am: Removed -I referencing testsuite directory. Tue May 27 02:39:43 BST 2003 Olly Betts * backends/quartz/,docs/tests.html,tests/: Moved quartztest and btreetest to tests/ directory. Tue May 27 02:03:07 BST 2003 Olly Betts * Makefile.am,configure.in,xapian.spec.in,backends/quartz/,bin/, docs/remote.html,netprogs/,tests/api_db.cc,tests/remotetest.cc, testsuite/backendmanager.cc,testsuite/testsuite.cc: Sorted out the source tree structure so that programs which aren't tests which were previously built by "make check" are now be built by "make". Tue May 27 01:01:40 BST 2003 Olly Betts * autoconf/dir_contents,backends/dir_contents, backends/inmemory/dir_contents,backends/multi/dir_contents, backends/muscat36/dir_contents,backends/net/dir_contents, backends/quartz/dir_contents,bindings/dir_contents, common/dir_contents,docs/dir_contents,include/om/dir_contents, include/xapian/dir_contents,include/dir_contents, indexer/dir_contents,indexer/indexgraph/dir_contents, languages/dir_contents,m4/dir_contents,tests/dir_contents: Updated all the dir_contents files - many were out-of-date. Tue May 27 00:42:54 BST 2003 Olly Betts * Makefile.am: Filter any .la files out of dependency_libs. Tue May 27 00:11:18 BST 2003 Olly Betts * netprogs/.cvsignore,netprogs/Makefile.am,netprogs/nettest.cc, tests/.cvsignore,tests/Makefile.am,tests/remotetest.cc: netprogs/nettest -> tests/remotetest. Mon May 26 23:49:49 BST 2003 Olly Betts * netprogs/nettest.cc: Removed test tcpclient1 - the functionality it tests is also tested by tcpmatch1, and it introduces dependencies on internal headers. Mon May 26 22:00:01 BST 2003 Olly Betts * backends/quartz/quartz_table_manager.cc: Give a better error message if asked to open a pre-0.6 Quartz database. Mon May 26 20:43:21 BST 2003 Olly Betts * HACKING,Makefile.am,backends/Makefile.am,docs/mkdoc.pl, net/Makefile.am: Fixed to never leave partial files in place of the expected output if a build is interrupted. Mon May 26 16:50:59 BST 2003 Olly Betts * HACKING: Added note adapted from an old email noting why compile-time options are generally best avoided. Mon May 26 12:03:29 BST 2003 Olly Betts * testsuite/backendmanager.cc,testsuite/textfile_indexer.cc: Corrected odd uses of std::string::erase() (instead of `str = str.erase(n, m)' just use `str.erase(n,m)'). Sun May 25 22:59:44 BST 2003 Olly Betts * PLATFORMS: Updated. Sun May 25 22:58:28 BST 2003 Olly Betts * languages/Makefile.am: Suppress "unused" warnings in Snowball generated C code. Sun May 25 21:43:34 BST 2003 Olly Betts * api/omtermlistiterator.cc: Removed iostream.h include left over from debugging. Sun May 25 12:27:11 BST 2003 Olly Betts * docs/,extra/omparsequery.h,extra/parsequery.yy,include/Makefile.am, include/xapian.h,include/om/om.h,tests/,testsuite/backendmanager.cc, testsuite/backendmanager.h,testsuite/testutils.h: Created xapian.h header and changed everything to use it. Sat May 24 23:35:46 BST 2003 Olly Betts * api/,backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_document.h, backends/quartz/quartz_database.cc,backends/quartz/quartztest.cc, common/,include/Makefile.am,include/om/om.h, include/om/omvalueiterator.h,include/xapian/, testsuite/backendmanager.cc: OmValueIterator -> Xapian::ValueIterator etc. Fri May 23 15:32:29 BST 2003 Olly Betts * api/,backends/database.cc,backends/inmemory/,backends/muscat36/, backends/net/net_database.cc,backends/net/net_document.cc, backends/net/net_document.h,backends/quartz/,common/,docs/, include/Makefile.am,include/om/om.h,include/om/omdocument.h, include/om/omvalueiterator.h,include/xapian/,indexer/omindexer.h, matcher/,net/,netprogs/nettest.cc,tests/api_db.cc,tests/api_posdb.cc, tests/internaltest.cc,testsuite/: OmDocument -> Xapian::Document, etc. * include/Makefile.am: Fixed library headers to install in xapian and om subdirectories as they should. Fri May 23 15:31:05 BST 2003 Olly Betts * backends/quartz/btree.cc: Consistently use int4 for block number - it really should be unsigned and this is a first step. Mon May 19 13:20:46 BST 2003 Olly Betts * configure.in: Create include/xapian if it doesn't exist so that VPATH builds work. Mon May 19 13:17:16 BST 2003 Olly Betts * Makefile.am: Disabled exported symbol regex for now. Tue May 13 05:08:54 BST 2003 Olly Betts * api/,backends/database.cc,backends/dir_contents,backends/inmemory/, backends/multi/,backends/muscat36/,backends/net/,backends/quartz/, common/,docs/,extra/omparsequery.h,include/,matcher/,net/,netprogs/, tests/: OmDatabase -> Xapian::Database, etc. Tue May 13 05:07:41 BST 2003 Olly Betts * NEWS: Corrected spelling: "maintainance" to "maintenance". Tue May 13 00:40:47 BST 2003 Olly Betts * ChangeLog.0,NEWS,backends/inmemory/inmemory_database.h, backends/muscat36/da_database.h,backends/muscat36/db_database.h, backends/quartz/quartz_postlist.h, indexer/indexgraph/omstopwordnode.cc: Spelling correction: "occurence" should be "occurrence". Mon May 12 22:39:27 BST 2003 Olly Betts * api/ompositionlistiteratorinternal.h, include/om/ompositionlistiterator.h: Removed unused files. Mon May 12 20:51:03 BST 2003 Olly Betts * api/omdatabaseinternal.cc,backends/database.cc: Moved database factory functions from api to backends. Fri May 09 04:02:29 BST 2003 Olly Betts * common/expandweight.h: Removed cruft. Fri May 09 03:50:36 BST 2003 Olly Betts * common/rset.h: Removed unused RSetI ctor variant. Fri May 09 02:00:03 BST 2003 Olly Betts * api/omenquire.cc,common/,docs/overview.html,include/om/om.h, include/xapian/enquire.h,include/xapian/output.h,matcher/, net/socketclient.cc,net/socketcommon.cc,net/socketserver.cc, netprogs/nettest.cc,tests/api_db.cc: OmRSet -> Xapian::RSet. Fri May 09 01:06:32 BST 2003 Olly Betts * api/omenquire.cc: Fixed MSet::Internal::get_description() to include class name. Fri May 09 01:04:12 BST 2003 Olly Betts * common/rset.h,matcher/expand.cc,matcher/rset.cc: RSetI now uses set (as OmRSet::Internal) rather than vector. Fri May 09 00:41:20 BST 2003 Olly Betts * api/omenquire.cc,common/,docs/quickstartexpand.cc.html,matcher/: RSet internal class renamed to RSetI to aid upcoming OmRSet -> Xapian::RSet change. RSetI looks like it can be eliminated later. Thu May 08 23:54:44 BST 2003 Olly Betts * tests/: Removed make_dbgrp() helper function from apitest as it makes the test code less clear without making it easier to write. Thu May 08 01:24:53 BST 2003 Olly Betts * api/ompostlistiterator.cc,docs/overview.html,tests/api_db.cc: Fixed OmWeight and OmMatchDecider in comments, docs, and testsuite. Thu May 08 01:16:30 BST 2003 Olly Betts * api/omenquire.cc,backends/multi/multi_postlist.h,common/, include/om/om.h,include/xapian/enquire.h,matcher/, net/socketclient.cc,net/socketserver.cc: OmMatchDecider -> Xapian::MatchDecider; OmWeight -> Xapian::Weight; BoolWeight, TradWeight, BM25Weight -> Xapian::. Wed May 07 23:06:47 BST 2003 Olly Betts * backends/quartz/btreetest.cc,backends/quartz/quartztest.cc, configure.in,netprogs/nettest.cc,tests/,testsuite/: Minor overhaul of testsuite. Wed May 07 17:54:34 BST 2003 Olly Betts * backends/,common/document.h,matcher/Makefile.am,matcher/document.cc: Removed do_ wrappers for Document methods get_value(), get_all_values() and get_data(). The wrappers used to perform thread locking, but now they're just pointless overhead. Wed May 07 17:24:00 BST 2003 Olly Betts * HACKING: Started section of API structure. Wed May 07 02:16:03 BST 2003 Olly Betts * api/omenquire.cc,common/expand.h,common/omenquireinternal.h, common/omstringstream.h,docs/quickstart.html,include/om/om.h, include/xapian/enquire.h,include/xapian/output.h,matcher/expand.cc, matcher/multimatch.cc,net/socketcommon.cc,netprogs/nettest.cc, tests/api_db.cc,testsuite/testutils.cc: OmMSet -> Xapian::MSet, similarly for OmMSetIterator, OmESet, and OmESetIterator. Tue May 06 19:31:42 BST 2003 Olly Betts * include/xapian/query.h: New file I failed to checkin on Friday. Tue May 06 14:16:41 BST 2003 Olly Betts * HACKING,configure.in,tests/.cvsignore,tests/Makefile.am, tests/runtest.in,testsuite/testsuite.cc: Sorted out autodetection of valgrind for running testsuite. * HACKING: Added note about how to run gdb on dynamically linked binaries built using libtool. * HACKING: Recommend libtool 1.5 as in 1.4.2 libtool --mode=execute doesn't seem to handle programs with arguments. Tue May 06 00:25:03 BST 2003 Olly Betts * PLATFORMS: Updated. Fri May 02 16:58:15 BST 2003 Olly Betts * configure.in: Improved check that LEX is flex - it will now accept "flex" with a path and/or prefix. Fri May 02 16:12:46 BST 2003 Olly Betts * api/,common/,include/,matcher/,net/,netprogs/nettest.cc, netprogs/omtcpsrv.cc,tests/api_db.cc,tests/api_posdb.cc, testsuite/testutils.cc,testsuite/testutils.h: OmEnquire -> Xapian::Enquire, OmQuery -> Xapian::Query, etc. Fri May 02 03:14:28 BST 2003 Olly Betts * tests/internaltest.cc: Reenabled tests for leak checking and fixed them up to work with valgrind. Fri May 02 02:14:28 BST 2003 Olly Betts * testsuite/testsuite.cc,testsuite/testsuite.h: If a testsuite program is run using "valgrind --logfile-fd=255 ./footest" then the harness will show valgrind's output for tests which fail because valgrind spotted errors or leaks (untested under valgrind). Thu May 01 21:25:01 BST 2003 Olly Betts * api/omenquire.cc,api/omquery.cc,api/omqueryinternal.cc,common/, docs/overview.html,docs/quickstart.html,extra/omparsequery.h, extra/parsequery.yy,extra/parsequerytest.cc,include/,matcher/, net/,netprogs/nettest.cc,tests/api_db.cc,tests/api_nodb.cc, tests/api_posdb.cc: OmQuery -> Xapian::Query, etc. For now I've had to expose Xapian::Query::Internal in xapian/query.h which isn't ideal. Wed Apr 30 20:37:27 BST 2003 Olly Betts * api/omenquire.cc,common/omenquireinternal.h,include/: typedefs om_* -> Xapian::*, but not changed all internal uses yet. Wed Apr 30 03:51:52 BST 2003 Olly Betts * api/,backends/,common/,extra/omparsequery.h,extra/parsequery.yy, include/,matcher/localmatch.h,matcher/orpostlist.h,tests/api_db.cc: OmPostListIterator -> Xapian::PostListIterator, etc. Wed Apr 30 02:13:31 BST 2003 Olly Betts * docs/matcherdesign.html,include/om/omenquire.h: Merged docs discussing OmMSetIterator::get_collapse_count() into the doxygen documentation comments - they're docs aimed at the API user so really don't belong in the internal matcher design docs. Wed Apr 30 01:08:39 BST 2003 Olly Betts * .cvsignore: Added config.guess. Tue Apr 29 21:08:40 BST 2003 Olly Betts * include/om/om.h,include/xapian/base.h,include/xapian/error.h, include/xapian/errorhandler.h,include/xapian/expanddecider.h, include/xapian/positionlistiterator.h,include/xapian/stem.h, include/xapian/termiterator.h: OM_HGUARD_* -> XAPIAN_INCLUDED_*. Tue Apr 29 20:37:01 BST 2003 Olly Betts * api/,backends/,common/,include/,indexer/omnodeinstanceiterator.h, indexer/ompaditerator.h,net/readquery.h,testsuite/indexer.h: om/omoutput.h -> xapian/output.h; om/omtypes.h -> xapian/types.h. Tue Apr 29 18:28:27 BST 2003 Olly Betts * api/,backends/,common/,include/,matcher/,net/socketserver.cc,tests/, testsuite/backendmanager.cc,testsuite/testsuite.cc: OmTermIterator -> Xapian::TermIterator, etc. Tue Apr 29 17:39:34 BST 2003 Olly Betts * common/omdebug.cc: Setting XAPIAN_DEBUG_LOG caused an exception (with GCC 3.0 at least) unless the value contained %% - fixed. Tue Apr 29 14:29:36 BST 2003 Olly Betts * api/ompositionlistiterator.cc: Fixed to compile in debug mode. Tue Apr 29 01:06:02 BST 2003 Olly Betts * xapian.spec.in: Removed %changelog - it hasn't been reliably updated and only really makes sense when the packaging is done by a third party anyway. Tue Apr 29 01:03:20 BST 2003 Fabrice Colin * xapian.spec.in: Fixed packaging of docs. Tue Apr 29 00:33:21 BST 2003 Olly Betts * HACKING,testsuite/testsuite.cc,testsuite/testsuite.h: valgrind is now mostly hooked into the testsuite. * HACKING: Bison 1.875 doesn't work but Bison 1.875a probably does; suggest CXXFLAGS=-Werror, not CFLAGS. Tue Apr 29 00:14:00 BST 2003 Olly Betts * INSTALL: Updated. Wed Apr 23 14:31:51 BST 2003 Olly Betts * api/omtermlistiterator.cc,api/omtermlistiteratorinternal.h, api/omvalueiteratorinternal.h,backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_positionlist.cc, common/inmemory_positionlist.h: Added InMemoryPositionList ctor which takes the positions data to avoid needing to construct and immediately call set_data(). Wed Apr 23 14:14:34 BST 2003 Olly Betts * api/,backends/,common/,include/,matcher/: OmPositionListIterator -> Xapian::PositionListIterator, etc. Wed Apr 23 13:47:49 BST 2003 Olly Betts * xapian.spec.in: Minor tweaks. Sun Apr 20 22:55:04 BST 2003 Olly Betts * extra/omparsequery.h,include/xapian/stem.h,tests/api_db.cc, tests/api_nodb.cc,tests/api_posdb.cc,testsuite/backendmanager.cc: OmStem -> Xapian::Stem; OmExpandDecider -> Xapian::ExpandDecider. Sun Apr 20 22:52:42 BST 2003 Olly Betts * configure.in,api/omenquire.cc,common/expand.h, common/omenquireinternal.h,docs/overview.html,include/, matcher/expand.cc,tests/api_db.cc: OmExpandDecider -> Xapian::ExpandDecider, etc. Sun Apr 20 22:42:32 BST 2003 Olly Betts * PLATFORMS,api/,backends/,common/,docs/,include/,matcher/,net/, netprogs/,tests/,testsuite/: OmError -> Xapian::Error, etc. Fri Apr 18 22:40:31 BST 2003 Sam Liddicott * matcher/multimatch.cc: Fixed so that it updates the OmMSetItem in the MSet with the collapse_count from the OmMSetItem twin in collapse_tab or we lose collapse_count if newer collapsing hits are less relevant than the hits they collapse over. I think we need collapse_tab maybe to keep a reference to the item in the mset? But this works for now. * xapian.spec.in: Fixed to also install include/xapian stuff Fri Apr 18 19:17:56 BST 2003 Olly Betts * configure.in,include/Makefile.am,include/om/.cvsignore, include/om/Makefile.am,include/om/om.h,include/om/om.h.in, include/xapian/.cvsignore,include/xapian/Makefile.am, include/xapian/dir_contents,include/xapian/version.h.in: C++ ABI version checking is now done by xapian/version.h. Fri Apr 18 17:57:21 BST 2003 Olly Betts * configure.in,api/omstem.cc,include/Makefile.am,include/om/om.h.in, include/om/omstem.h,include/xapian/.cvsignore, include/xapian/Makefile.am,include/xapian/base.h, include/xapian/stem.h: Reworked OmStem to use reference counted internals; renamed OmStem to Xapian::Stem and added a #define for compatibility with existing code. Fri Apr 18 17:02:56 BST 2003 Olly Betts * api/,backends/,common/,docs/overview.html,docs/quickstart.html, docs/quickstartexpand.cc.html,extra/,include/om/,matcher/,net/, tests/,testsuite/: Use std::string instead of typedef-ing it as om_termname. The typedef doesn't really buy us anything. Keep a typedef for compatibility with existing code for now. Fri Apr 18 16:12:32 BST 2003 Olly Betts * PLATFORMS: GCC 3.2.2 on Redhat 7.1 works with CXXFLAGS=-Werror Thu Apr 10 20:05:27 BST 2003 Olly Betts * common/Makefile.am,common/indexer.h,testsuite/Makefile.am, testsuite/indexer.h: Moved indexer.h from common to testsuite and altered it to use iosfwd instead of iostream and to declare OmDocument as a class instead of include omdocument.h. Thu Apr 10 18:55:55 BST 2003 Olly Betts * xapian-config.nodep.in: Removed --prefix and --exec-prefix - you can't reliably install Xapian with a different prefix to the one it was configured with, yet these options give the impression you can. Thu Apr 10 18:53:53 BST 2003 Olly Betts * .cvsignore: Added config.sub. Thu Apr 10 02:41:50 BST 2003 Olly Betts * NEWS,configure.in: Updated for 0.6.5 release. Thu Apr 10 02:29:12 BST 2003 Olly Betts * docs/doxygen_api_footer.html_tmpl,docs/doxygen_full_footer.html_tmpl, docs/overview.html: Use http://www.doxygen.org/ as URL for doxygen. * docs/overview.html: Fixed bad link to our own website! Thu Apr 10 02:12:00 BST 2003 Olly Betts * Makefile.am,backends/Makefile.am,backends/net/.cvsignore, backends/net/Makefile.am,netprogs/.cvsignore: Renamed libnetdb.la to libremote.la, and LIB_REMOTE1 to LIBNET_LA. Thu Apr 10 02:08:24 BST 2003 Olly Betts * PLATFORMS: Updated mingw notes to reflect the change to automatically disable the remote backend when fork() isn't available. Thu Apr 10 01:56:34 BST 2003 Olly Betts * docs/mkdoc.pl: Fixed to only look at directories listed in DIST_SUBDIRS. Thu Apr 10 00:23:28 BST 2003 Olly Betts * configure.in: Automatically disable the remote backend if we don't have fork() since the remote backend requires it in several places; AM_CONDITIONAL ENABLE_SHARED isn't used anywhere so commented it out. Wed Apr 09 22:48:20 BST 2003 Olly Betts * NEWS: Updated with recent changes. Wed Apr 09 22:43:31 BST 2003 Olly Betts * docs/remote_protocol.html: Talk about Server/Client rather than ProgServer/ProgClient; reworked first paragraph. Wed Apr 09 13:23:05 BST 2003 Olly Betts * docs/Makefile.am: Install docs in /usr/share/doc/xapian-core to be FHS compliant. * xapian.spec.in: Package quartzcheck and quartzcompact too; sorted out docs so they all install in the right place. Wed Apr 09 01:16:11 BST 2003 Olly Betts * configure.in,backends/quartz/quartz_log.cc, backends/quartz/quartz_table_manager.cc,common/omdebug.cc, common/omdebug.h: Don't use HAVE_GETPID - if it's not set we assume GetCurrentProcessId() works, so it's cleaner to test with #ifdef WIN32 instead. Tue Apr 08 19:56:57 BST 2003 Olly Betts * PLATFORMS: Updated with the results of many test builds. Tue Apr 08 19:55:15 BST 2003 Olly Betts * configure.in,backends/quartz/Makefile.am,backends/quartz/btree.cc, netprogs/nettest.cc,common/getopt.h,common/omtime.h,common/utils.cc, common/utils.h,tests/Makefile.am,tests/api_db.cc: Now builds with Linux to mingw cross-compiler. * tests/Makefile.am: don't include findheaders.pl in the tarball - it's no longer used. * tests/internaltest.cc: removed "#include " and disabled code which used to use it. * testsuite/backendmanager.cc,testsuite/backendmanager.h: fixed to work if any backends are disabled. Tue Apr 08 16:09:11 BST 2003 Olly Betts * backends/quartz/btree.cc,backends/quartz/quartz_log.cc, backends/quartz/quartz_table_manager.cc,testsuite/testsuite.cc: Some fixes for building with Linux to mingw cross-compiler. Tue Apr 08 02:26:51 BST 2003 Olly Betts * backends/quartz/btreetest.cc: If we don't have and so are using our own stringstream implementation, we can't pass it as an ostream reference so BtreeCheck::check() can't be run in btreetest. This is only an issue on old compilers (for GCC <= 2.95.2 it seems) so just disable the checking in that case - it's probably not worth the effort of trying to make our stringstream a subclass of ostream. Tue Apr 08 01:20:36 BST 2003 Olly Betts * testsuite/testsuite.cc: Updated unfinished hooks to use valgrind in the test harness. Fri Apr 04 03:12:27 BST 2003 Olly Betts * api/omenquire.cc,api/omstem.cc,common/omdebug.cc: Fixed to compile when configure-d with --enable-debug-verbose --enable-debug=full. Fri Apr 04 03:10:53 BST 2003 Olly Betts * common/omstringstream.h: Removed unused code for writing vector to our own implementation of om_ostringstream. Fri Apr 04 03:08:35 BST 2003 Olly Betts * api/ompostlistiterator.cc: Use "using namespace std;"; replaced gratuitous use of om_ostringstream. Fri Apr 04 03:07:05 BST 2003 Olly Betts * tests/api_nodb.cc: Use "using namespace std;"; removed stray cout debug line. Wed Apr 02 16:54:50 BST 2003 Olly Betts * tests/internaltest.cc: More Sun C++ fixes. * PLATFORMS: Updated. Wed Apr 02 16:39:48 BST 2003 Olly Betts * tests/api_db.cc,net/tcpserver.cc,common/tcpserver.h: More Sun C++ fettling. Wed Apr 02 15:42:54 BST 2003 Olly Betts * matcher/emptymatch.h,tests/api_db.cc: More fixes for Sun C++. Wed Apr 02 15:13:58 BST 2003 Olly Betts * api/omenquire.cc,api/omqueryinternal.cc, backends/inmemory/inmemory_database.h,common/document.h, common/netclient.h,common/netserver.h,common/networkstats.h, common/omlinebuf.h,common/stats.h,include/om/omerror.h, include/om/omerrorhandler.h,indexer/indexgraph/nodetest.cc, indexer/indexgraph/omindexerbuilder.cc, indexer/indexgraph/omindexerinternal.h, indexer/indexgraph/omstopwordnode.cc, indexer/indexgraph/regexcommon.h,indexer/indexgraph/toposort.h, tests/api_db.cc,tests/api_nodb.cc,testsuite/backendmanager.h: More fixes for Sun C++; removed many superfluous ";" after "}". Wed Apr 02 03:45:42 BST 2003 Olly Betts * api/omdocument.cc,api/omenquire.cc,api/omtermlistiteratorinternal.h, backends/inmemory/inmemory_database.h,backends/quartz/btree.cc, backends/quartz/btree.h,common/alltermslist.h,common/expandweight.h, common/getopt.h,common/utils.h,include/om/omenquire.h, matcher/expandweight.cc,matcher/multimatch.cc, testsuite/backendmanager.h: Resolved various issues so that libxapian now builds with Sun's C++ compiler. However libomqueryparser and the test programs don't yet. Tue Apr 01 02:52:57 BST 2003 Olly Betts * backends/quartz/quartz_types.h: use "unsigned int" rather than "unsigned long int" so that quartz_tablesize_t matches om_doccount on 64 bit machines. Mon Mar 31 19:34:54 BST 2003 Olly Betts * AUTHORS,xapian.spec.in: Merged in changes to RPM packaging from Fabrice Colin and reworked further. Fri Mar 28 20:04:04 GMT 2003 Olly Betts * NEWS: Updated. Fri Mar 28 19:53:59 GMT 2003 Olly Betts * README: Removed out-of-date sourceforge references; tidied up wording in places. Fri Mar 28 19:52:11 GMT 2003 Olly Betts * HACKING: Removed out-of-date sourceforge references; tidied up wording in places; docs/tests.txt is now docs/tests.html . Fri Mar 28 17:35:15 GMT 2003 Olly Betts * NEWS: Wrote most of the entries for the next release. Fri Mar 28 17:34:57 GMT 2003 Olly Betts * docs/todo.xml: Updated. Thu Mar 27 05:42:41 GMT 2003 Olly Betts * .cvsignore,Makefile.am,configure.in,docs/.cvsignore,docs/Makefile.am, docs/index.html,docs/todo2html.pl: removed machinery to generate TODO, TODO.release, docs/todo.html, and docs/todo-release.html from docs/todo.xml - bug and todo items will be tracked in bugzilla instead. Thu Mar 27 05:25:12 GMT 2003 Olly Betts * docs/todo.xml: Removed completed items and those already fed into bugzilla. Thu Mar 27 05:17:05 GMT 2003 Olly Betts * api/omstem.cc,include/om/omstem.h: Added default OmStem ctor, and "none" language. Both of these give a stemmer object which leaves terms unchanged which should allow for simpler logic in programs using Xapian. The default ctor also removes the need to mess with pointers in some cases. Thu Mar 27 04:52:27 GMT 2003 Olly Betts * NEWS: Started to prepare for next release. Thu Mar 27 04:49:52 GMT 2003 Olly Betts * include/om/omenquire.h,include/om/omerror.h: Improved documentation comments. Thu Mar 27 01:09:04 GMT 2003 Olly Betts * docs/todo.xml,tests/api_db.cc: Added regression test for Quartz bug which caused problems with long terms on machines with signed chars. Wed Mar 26 20:30:18 GMT 2003 Olly Betts * matcher/multimatch.cc: fixed interaction of collapsing and sort_bands == 1. Wed Mar 26 01:04:30 GMT 2003 Olly Betts * matcher/multimatch.cc: Fixed sort_bands == 1 bug which would incorrectly reject many documents with a low score. Thu Mar 06 13:04:06 GMT 2003 Sam Liddicott * docs/matcherdesign.html: Add writeup about document collapsing. Thu Mar 06 11:32:05 GMT 2003 Sam Liddicott * Add collapse_count threshold checking to ensure that most relevant collapsed-away hit is more relevant than threshold (if specified) Mon Mar 03 14:04:56 GMT 2003 Olly Betts * docs/quartzdesign.html: Corrected 2kB to 2KB. Fri Feb 28 10:11:04 GMT 2003 Sam Liddicott * Add get_collapse_count() to OmMSetIterator * Add collapse_count to OmMSetItem * Add collapse_count tracking to get_mset() Thu Feb 27 15:28:08 GMT 2003 Olly Betts * common/match.h,common/multimatch.h,matcher/multimatch.cc: Optimise the common sort_bands == 1 case better. * tests/api_db.cc: sortbands2 now tests 1 sortband as well as 10. Wed Feb 26 09:58:01 GMT 2003 Sam Liddicott * bootstrap: Fix success message when building in non-src dir as configure is written to the src dir. Mon Feb 24 10:33:52 GMT 2003 Olly Betts * matcher/multimatch.cc: Disabled (for now) sort_bands optimisation which is misbehaving. Fixed forward ordered boolean optimisation broken by last check-in. * tests/api_db.cc: Added test_sortbands2 based on James' test code. Sun Feb 23 20:28:47 GMT 2003 Olly Betts * matcher/multimatch.cc: Fixed problem with sort_bands when asking for an m-set which didn't start with the first match. Sun Jan 05 22:20:33 GMT 2003 Olly Betts * testsuite/index_utils.cc: Handling of ^x was just downright wrong due to a typo. Sun Jan 05 22:19:56 GMT 2003 Olly Betts * backends/quartz/.cvsignore: Ignore quartzcompact binary. Sun Jan 05 22:18:57 GMT 2003 Olly Betts * extra/parsequerytest.cc: Fixed to build with GCC 2.95. Tue Dec 24 20:21:03 GMT 2002 Olly Betts * NEWS: Added omega 0.6.4 changes. Tue Dec 24 19:53:10 GMT 2002 Olly Betts * NEWS,PLATFORMS,configure.in: Version 0.6.4. Tue Dec 24 19:29:27 GMT 2002 Olly Betts * backends/quartz/quartz_database.cc,backends/quartz/quartz_table.cc: Don't bother checking is position_list is empty - just delete it and let the layer below handle not having anything to delete. * backends/quartz/quartz_termlist.cc,docs/todo.xml: Fixed unpacking of termlist on platforms where char is signed. Tue Dec 24 05:48:06 GMT 2002 Olly Betts * backends/quartz/quartz_database.cc: Fixed double setting of position list when updating a document with term position information. The behaviour before was correct, just inefficient. Mon Dec 23 04:44:46 GMT 2002 Olly Betts * docs/todo.xml: Updated. Mon Dec 23 03:22:19 GMT 2002 Olly Betts * extra/parsequery.yy: If a stemmed form with a "." is in the query, include the "." on the form in the unstem multimap. Sun Dec 22 21:44:06 GMT 2002 Olly Betts * extra/omparsequery.h,extra/parsequery.yy,extra/parsequerytest.cc: Added support for searching probabilistic fields (using :). Sat Dec 21 01:38:59 GMT 2002 Olly Betts * configure.in: Don't include "om.h" in APIDOC_SRC, otherwise people building from source will need to regenerate the source docs which will require them to have doxygen installed. Fri Dec 20 15:39:51 GMT 2002 James Aylett * Bindings build using SWIG 1.3.14u-20020706-1222, with very basic functionality tested with the Python target. Fri Dec 20 12:38:26 GMT 2002 James Aylett * Tidied up some bindings-related issues, including changes to the Python bindings to work with Python 2.2. This probably won't compile as it stands, but it's disabled anyway. Sun Dec 15 18:23:42 GMT 2002 Olly Betts * api/omdatabase.cc,backends/muscat36/da_database.cc, backends/muscat36/db_database.cc,matcher/phrasepostlist.cc: Muscat 3.6 DA and DB databases don't have word position information. Instead of throwing an exception when this information is requested, return an empty position list (i.e. behave as a quartz database with no position information would). Sun Dec 15 03:08:28 GMT 2002 Olly Betts * backends/muscat36/: DADatabase and DBDatabase ctors need to public so that they can called from the database factory functions. * api/omenquire.cc,backends/muscat36/,backends/quartz/btree.cc, tests/api_db.cc: Fixed compilation warnings. Sat Dec 14 23:02:55 GMT 2002 Olly Betts * docs/quartzdesign.html,docs/todo.xml: Updated. Sat Dec 14 22:57:41 GMT 2002 Olly Betts * backends/quartz/Makefile.am,backends/quartz/quartzcheck.cc, backends/quartz/quartzcompact.cc,backends/quartz/quartzdump.cc: Enhanced quartzcheck to check all the btrees in a quartz database if passed a directory name. It also default to "v" rather than "+" which is more appropriate for an end user checking if tables in a non-trivial sized database are corrupt. Added quartzcompact utility to make a copy of a quartz database with full compaction turned on - this results in a smaller database which is faster to search. The next update will result in a lot of block splitting though (since all blocks are as full as possible). Sat Dec 14 16:28:11 GMT 2002 Olly Betts * NEWS: Updated for 0.6.3 release. Sat Dec 14 04:28:16 GMT 2002 Olly Betts * PLATFORMS,configure.in: Version 0.6.3. Sat Dec 14 03:54:08 GMT 2002 Olly Betts * extra/omparsequery.h,extra/parsequery.yy: Create an "unstem" multimap so users can convert the stemmed terms back into their query representation. Sat Dec 14 03:48:27 GMT 2002 Olly Betts * docs/todo.xml: Updated. Sat Dec 14 02:37:41 GMT 2002 Olly Betts * docs/todo.xml: Updated. Sat Dec 14 02:26:29 GMT 2002 Olly Betts * docs/remote_protocol.html,net/socketclient.cc,net/socketserver.cc: Updated remote protocol description. Sat Dec 14 02:05:59 GMT 2002 Olly Betts * docs/: Updated. Fri Dec 13 23:43:23 GMT 2002 Olly Betts * include/om/om.h.in: Removed bogus // in the middle of a comment. Fri Dec 13 22:17:41 GMT 2002 Olly Betts * configure.in,testsuite/testsuite.cc: Added hooks for using valgrind to find leaks in the test suite. Just need to sort out suitable hooks in valgrind now! Fri Dec 13 19:57:23 GMT 2002 Olly Betts * docs/: OmSettings removal updates. Fri Dec 13 19:44:23 GMT 2002 Olly Betts * bindings/: Made a start updating bindings for OmSettings removal. Fri Dec 13 19:13:36 GMT 2002 Olly Betts * api/omenquire.cc,common/omenquireinternal.h,include/om/omenquire.h, net/socketclient.cc,tests/api_db.cc: Finished removal of OmSettings - all tests now pass once more! Fri Dec 13 16:35:12 GMT 2002 Olly Betts * api/,backends/quartz/quartz_table_manager.h,common/,docs/,include/, matcher/,net/,tests/internaltest.cc: Removed last use of OmSettings. Just a check-point check in - the code compiles, but doesn't pass tests yet. Fri Dec 13 12:53:01 GMT 2002 Olly Betts * netprogs/nettest.cc: Updated disabled code to use new database factory functions; Added "using namespace std;". Thu Dec 12 23:52:32 GMT 2002 Olly Betts * docs/todo.xml: Tidied my desk and converted lots of scraps of paper to todo entries. Thu Dec 12 16:43:22 GMT 2002 Olly Betts * backends/quartz/btree.cc: Added workaround for shared_level problem; Improved error reporting. Thu Dec 12 01:05:00 GMT 2002 Olly Betts * docs/overview.html: Updated docs on stub databases. Wed Dec 11 20:49:11 GMT 2002 Olly Betts * api/omdatabaseinternal.cc,include/om/omdatabase.h,tests/api_db.cc: Reimplemented stub databases in the new scheme of things. * backends/inmemory/: fully disabled inmemory_errornext and inmemory_abortnext code. Tue Dec 10 13:47:44 GMT 2002 Olly Betts * HACKING: Added note that Bison 1.50 seems to work with Xapian's .yy files. Mon Dec 09 20:13:00 GMT 2002 Olly Betts * api/omenquire.cc,common/omenquireinternal.h,docs/todo.xml, include/om/omenquire.h,tests/api_db.cc: OmEnquire::get_eset() now takes a flags argument of bit constants |-ed together instead of 2 bools. Mon Dec 09 12:52:38 GMT 2002 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: Applied patch from Martin Porter with better fix for sequential addition bug. Mon Dec 09 09:57:42 GMT 2002 Olly Betts * docs/todo.xml: Updated. Mon Dec 09 07:32:46 GMT 2002 Olly Betts * backends/quartz/quartztest.cc: Corrected name of database used by test adddoc2 (was using testdb_adddoc1!) Mon Dec 09 05:10:09 GMT 2002 Olly Betts * backends/quartz/quartz_postlist.cc,backends/quartz/quartz_table.cc: More fettling. Mon Dec 09 04:48:39 GMT 2002 Olly Betts * backends/quartz/: Minor code fettle. Mon Dec 09 03:32:11 GMT 2002 Olly Betts * backends/quartz/quartz_postlist.cc: Gratuitous layout fettling. Mon Dec 09 03:30:27 GMT 2002 Olly Betts * docs/quartzdesign.html: Improved wording and punctuation in 3 places. Mon Dec 09 03:25:09 GMT 2002 Olly Betts * common/,docs/todo.xml,include/om/omenquire.h,matcher/, net/socketclient.cc,net/socketserver.cc,netprogs/omprogsrv.cc, netprogs/omtcpsrv.cc: Fixed the remote backend to handle non-default weighting schemes. You can now even implement your own weighting scheme and use it with the remote backend provided you register it with SocketServer at runtime. Sat Dec 07 21:18:39 GMT 2002 Olly Betts * PLATFORMS: Updated. Sat Dec 07 21:09:52 GMT 2002 Olly Betts * NEWS,PLATFORMS,configure.in: Version 0.6.2. Sat Dec 07 20:24:46 GMT 2002 Olly Betts * NEWS: Updated. Sat Dec 07 20:21:41 GMT 2002 Olly Betts * docs/quickstart.html: Fixed parameters passed to OmQuartz__open(). Sat Dec 07 20:17:42 GMT 2002 Olly Betts * backends/quartz/quartztest.cc: Fixed parameters passed to OmQuartz__open(). Sat Dec 07 16:41:25 GMT 2002 Olly Betts * docs/tests.html,testsuite/testsuite.cc: The testsuite won't install its signal handler if XAPIAN_SIG_DFL is set. Sat Dec 07 16:39:01 GMT 2002 Olly Betts * HACKING: OM_DEBUG_XXX -> XAPIAN_DEBUG_YYY. Sat Dec 07 04:48:37 GMT 2002 Olly Betts * backends/quartz/btree.cc: max_item_size wasn't being set due to some over-zealous code pruning. It was defaulting to 0, and was causing the code to write off the end of allocated memory blocks. Sat Dec 07 03:22:05 GMT 2002 Olly Betts * backends/inmemory/,matcher/multimatch.cc: Minor code tidying. * backends/quartz/btree.cc: Added Assert in Btree::add() to detect running off end of buffer. Sat Dec 07 03:20:52 GMT 2002 Olly Betts * matcher/localmatch.cc: fixed handling of wtscheme() - we were trying to use it for the extra weights, and then double deleting it! Fri Dec 06 23:05:22 GMT 2002 Olly Betts * api/omstem.cc,backends/quartz/,common/omdebug.cc,common/utils.h, matcher/tradweight.cc,net/socketcommon.cc,net/tcpclient.cc, tests/api_db.cc: Fixed to build with configure --enable-debug=full. Fri Dec 06 23:01:08 GMT 2002 Olly Betts * common/omdebug.cc,common/omdebug.h: Fixed permissions on newly created log file (was getting 000!); Simplified class internals; Renamed env vars: OM_DEBUG_FILE is now XAPIAN_DEBUG_LOG, OM_DEBUG_TYPES is now XAPIAN_DEBUG_FLAGS (old versions still work for now). Fri Dec 06 22:58:57 GMT 2002 Olly Betts * testsuite/testsuite.cc: Fixed so running "gdb .libs/apitest" finds srcdir (for an in-tree build at least). Fri Dec 06 03:51:35 GMT 2002 Olly Betts * common/,include/om/omenquire.h,matcher/localmatch.h,matcher/rset.cc, matcher/stats.cc: Fixed to compile with GCC 3.0. Thu Dec 05 23:28:29 GMT 2002 Olly Betts * include/om/omdatabase.h: Added missing "std::". Thu Dec 05 23:27:57 GMT 2002 Olly Betts * docs/remote.html: Updated from OmSettings to factory functions. Thu Dec 05 23:26:42 GMT 2002 Olly Betts * PLATFORMS: ixion is actually Linux 2.2. Thu Dec 05 04:32:40 GMT 2002 Olly Betts * testsuite/backendmanager.cc: Fixed BackendManager::do_getdb_quartz() and do_getwritedb_quartz() to work correctly and so resolved some test failures. Wed Dec 04 03:35:12 GMT 2002 Olly Betts * api/omdatabaseinternal.cc,backends/quartz/,docs/todo.xml, include/om/omdatabase.h: Replace create and allow_overwrite boolean flags with OM_DB_XXX constants. And we now support OM_DB_CREATE_OR_OPEN which is a common action to want to perform, but was fiddly to achieve before. Tue Dec 03 23:59:30 GMT 2002 Olly Betts * docs/todo.xml: Updated. Tue Dec 03 23:26:27 GMT 2002 Olly Betts * api/omenquire.cc,backends/quartz/quartz_postlist.h,common/, docs/omsettings,docs/todo.xml,include/om/omenquire.h,matcher/, net/socketcommon.cc,net/socketserver.cc,tests/api_db.cc, tests/api_posdb.cc: Weighting schemes are now specified by passing in a weighting object, rather than via OmSetttings. The weight class can be sub-classed by the library user to allow them to specify their own weighting scheme). Everything works apart from the remote backend where the weighting scheme type and parameters aren't passed across the link. Mon Dec 02 20:12:31 GMT 2002 Olly Betts * NEWS: Updated with changes since 0.6.1. Mon Dec 02 19:44:37 GMT 2002 Olly Betts * api/ompostlistiterator.cc,backends/multi/multi_postlist.h, common/irweight.h,common/leafpostlist.h,matcher/: IRWeight renamed to OmWeight in preparation for making it externally visible. Mon Dec 02 18:10:55 GMT 2002 Olly Betts * matcher/bm25weight.cc,matcher/irweight.cc,matcher/tradweight.cc, matcher/tradweight.h: Started to rework weighting scheme code. Mon Dec 02 17:36:21 GMT 2002 Olly Betts * api/omdatabaseinternal.cc,backends/quartz/quartz_table_manager.cc: Tidying up after the recent backend reworking. Mon Dec 02 03:59:39 GMT 2002 Olly Betts * matcher/: Changed BoolWeight ctor not to take an OmSettings parameter which is simply ignored. Mon Dec 02 01:35:41 GMT 2002 Olly Betts * include/om/omdatabase.h: Added documentation comments for all of the database factory functions. Sun Dec 01 21:45:49 GMT 2002 Olly Betts * include/om: Added \file documentation comments so doxygen extracts documentation for functions too. * docs/: Made a start on updating for the new database factory functions. Sun Dec 01 15:38:10 GMT 2002 Olly Betts * api/,backends/,common/,docs/omsettings,docs/todo.xml, include/om/omdatabase.h,netprogs/,tests/,testsuite/backendmanager.cc, testsuite/backendmanager.h: No longer use OmSettings to specify parameters for constructing databases. Instead there's a factory function for each database type - temporary naming scheme is OmXxx__open(), mostly because it's easy to grep for later. At present stub databases and the machinery in InMemory to allow the multierrhandler1 test aren't working. Everything else should be. Thu Nov 28 20:15:47 GMT 2002 Olly Betts * api/omenquire.cc,common/omenquireinternal.h,docs/omsettings, docs/overview.html,include/om/omenquire.h,tests/api_db.cc: No longer use OmSettings in OmEnquire::get_eset(); fixed reversed sense of use_query_terms (and fixed reversed sense test in apitest which meant this wasn't spotted). Thu Nov 28 20:14:54 GMT 2002 Olly Betts * docs/index.html: Link to annotated class lists in doxygen generated documentation rather than rather empty index page. Thu Nov 28 02:23:33 GMT 2002 Olly Betts * configure.in,NEWS: Version 0.6.1. Thu Nov 28 01:38:05 GMT 2002 Olly Betts * PLATFORMS: Updated. Thu Nov 28 01:33:25 GMT 2002 Olly Betts * backends/quartz/: Fixed to compile with GCC 3.0. Thu Nov 28 01:32:31 GMT 2002 Olly Betts * PLATFORMS: Updated with test results from 0.5.4 release. Wed Nov 27 22:11:38 GMT 2002 Olly Betts * backends/quartz/btree.h: fixed "public:" bodge added during factoring-out of BtreeCheck. Wed Nov 27 05:01:14 GMT 2002 Olly Betts * NEWS,PLATFORMS,configure.in: Updated for 0.6.0 release. Wed Nov 27 05:00:39 GMT 2002 Olly Betts * AUTHORS,HACKING: Removed or replaced sourceforge.net URLs. Wed Nov 27 04:58:29 GMT 2002 Olly Betts * docs/quartzdesign.html: Reworded "under development" warning; Updated Btree::check(), which is now BtreeCheck::check(). Wed Nov 27 01:36:26 GMT 2002 Olly Betts * backends/quartz/btreecheck.cc,backends/quartz/btreecheck.h, backends/quartz/btreetest.cc: Tidied up BtreeCheck - btreetest now sends check output to tout so it's only displayed if the check fails (or btreetest is run with -v). Tue Nov 26 19:47:24 GMT 2002 Olly Betts * backends/quartz/: Split the btree checking code out into a separate file, so it's not linked in when we don't need it. Tue Nov 26 05:47:32 GMT 2002 Olly Betts * backends/quartz/btree.cc: Suppress all output from a successful Btree::Check() is no options are specified, so that btreetest generates clean output when all tests pass. Tue Nov 19 02:08:30 GMT 2002 Olly Betts * NEWS: Updated. Tue Nov 19 01:46:35 GMT 2002 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h, backends/quartz/btreetest.cc,backends/quartz/quartztest.cc, docs/quartzdesign.html: Quartz B-tree minimum blocksize is now 2048 bytes (as was in fact documented already). This means the max term length is now always 252 bytes. Mon Nov 18 22:16:57 GMT 2002 Olly Betts * api/omenquire.cc,matcher/expand.cc,matcher/expandweight.cc: Bit of an expand tidy up. Mon Nov 18 19:49:09 GMT 2002 Olly Betts * backends/quartz/quartz_termlist.cc: I'd put the new termlist stuff in the disabled branch of a "#ifdef" so it wasn't being used! Fixed this and made it actually compile as an encore. Mon Nov 18 02:51:55 GMT 2002 Olly Betts * docs/todo.xml: Retargetted 0.6 tasks for 0.7 or 0.8; updated a few entries. Mon Nov 18 02:28:55 GMT 2002 Olly Betts * docs/quartzdesign.html,backends/quartz/: We can just store the term name raw in position list key, since we know its length from the key length; tweaked storing of deltas to store (delta - 1) as 0 is invalid. Mon Nov 18 00:47:54 GMT 2002 Olly Betts * backends/quartz/quartz_termlist.cc: First cut of compressed term lists. Sun Nov 17 20:19:23 GMT 2002 Olly Betts * backends/quartz/quartz_lexicon.cc,backends/quartz/quartz_values.cc: Use new pack_uint_last() and unpack_uint_last() where appropriate. Sun Nov 17 20:03:24 GMT 2002 Olly Betts * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h: Added a more compact integer packing for the last integer in a key or tag. Sun Nov 17 18:54:05 GMT 2002 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: more int -> bool changes. * backends/quartz/btree_base.cc: Clarified comments. Sun Nov 17 14:19:30 GMT 2002 Olly Betts * docs/quartzdesign.html: Updated to reflect removal of Btree_item. Sun Nov 17 14:12:12 GMT 2002 Olly Betts * backends/quartz/: Eliminate Btree_item - wherever it's used we only actually want the tag or key, so it's cleaner and clearer to just pass a pointer to a string. Sun Nov 17 13:34:08 GMT 2002 Olly Betts * backends/quartz/,docs/quartzdesign.html: Quartz mini-overhaul: Removed Btree::Bcursor_create() and just made Bcursor's ctor public - now you can just create a Bcursor on the stack rather than being forced to use AutoPtr; removed valid_handle - the code is clearer without it; sys_close now inlined from header; changed int/char to bool where appropriate; changed some methods which now always throw on error to return void not bool; moved quartztest's test_btree1 to btreetest as test_simple1; changed a few remaining uses of "struct Btree" to just plain "Btree"; brought the btree docs in quartzdesign.html up-to-date, apart from the error handling section. Sat Nov 16 01:45:28 GMT 2002 Olly Betts * backends/inmemory/inmemory_database.cc, backends/inmemory/inmemory_database.h, backends/quartz/quartz_table.cc: Tidying up odds and ends. Fri Nov 15 17:46:38 GMT 2002 Olly Betts * NEWS: Updated ready for 0.6.0 with changes made so far. Fri Nov 15 17:06:58 GMT 2002 Olly Betts * testsuite/testsuite.cc: Avoid double debug output if we get a signal inside the testsuite code itself. Fri Nov 15 17:00:15 GMT 2002 Olly Betts * backends/quartz/btree_api.txt,docs/Makefile.am,docs/index.html, docs/quartzdesign.html,docs/remote_protocol.html, net/README_progprotocol.txt: Converted Btree API documentation to HTML and add it to the quartz design document; converted the (seriously out of date) remote protocol document to HTML, moved it into docs/, and linked it in. Fri Nov 15 13:05:06 GMT 2002 Olly Betts * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h, docs/quartzdesign.html: Changed encoding of keys for quartz record and termlist tables. Fri Nov 15 12:54:39 GMT 2002 Olly Betts * backends/quartz/quartz_table_entries.cc: Fixed QuartzTableEntries::empty() which would never return true before. Fri Nov 15 03:08:49 GMT 2002 Olly Betts * backends/quartz/btree_api.txt: Fixed typos. Fri Nov 15 03:06:41 GMT 2002 Olly Betts * backends/quartz/quartztest.cc,backends/quartz/btreetest.cc: added another test (btreetest: emptykey1) and added extra checks to existing tests. Thu Nov 14 01:59:06 GMT 2002 Olly Betts * matcher/multimatch.cc,tests/api_db.cc,docs/todo.xml: match_sort_bands code fettled, and added regression test for the >100% problem (test_sortbands1). Tue Nov 12 00:00:44 GMT 2002 Olly Betts * backends/inmemory/inmemory_database.h,backends/quartz/, include/om/omtypes.h: Pushed average length calc down into QuartzRecordManager; removed unnecessary types om_totlength and om_termid. Mon Nov 11 18:10:23 GMT 2002 Olly Betts * docs/index.html: Fixed broken link. Mon Nov 11 18:07:41 GMT 2002 Olly Betts * backends/quartz/,docs/quartzdesign.html: Store next free docid and total doc length in the same tag in QuartzRecord. Wed Nov 06 22:38:40 GMT 2002 Olly Betts * backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h: Eliminated QuartzDatabase::get_doccount_internal() and QuartzDatabase::get_avlength_internal() - now the thread locking code has gone, the indirection serves no purpose. Wed Nov 06 17:50:12 GMT 2002 Olly Betts * backends/quartz/: Removed QuartzBufferedTable::write() (unused and unimplemented), and merged QuartzBufferedTable::write_internal() into QuartzBufferedTable::write_internal(). Wed Nov 06 01:56:41 GMT 2002 Olly Betts * backends/quartz/: disable quartz lexicon table unless USE_LEXICON is defined. Wed Nov 06 01:54:30 GMT 2002 Olly Betts * docs/overview.html: Corrected link to API docs on website. Mon Nov 04 02:35:22 GMT 2002 Olly Betts * include/om/omerror.h,net/omerr_string.cc,netprogs/omprogsrv.cc, netprogs/omtcpsrv.cc,testsuite/testsuite.cc: don't use typeid(). Mon Nov 04 01:31:47 GMT 2002 Olly Betts * testsuite/testsuite.cc: Catch by const reference. Mon Nov 04 01:18:53 GMT 2002 Olly Betts * HACKING: Added note about use of various C++ features. Also tidied up various odds and ends. Sun Nov 03 22:59:34 GMT 2002 Olly Betts * api/omdatabaseinternal.cc: Eliminated entirely superfluous use of dynamic_cast. Sun Nov 03 22:46:34 GMT 2002 Olly Betts * matcher/multimatch.cc,common/database.h,common/net_database.h: Replace Database::is_network() with Database::as_networkdatabase() which returns a pointer or NULL. This eliminates the need to use dynamic_cast in MultiMatch. Wed Oct 23 05:24:14 BST 2002 Olly Betts * docs/todo.xml: Resolved TODO entry by consulting Stroustrup (it is safe to throw and catch an exception in a destructor, even when that destructor is being called during a stack unwind caused by an exception being thrown). Wed Oct 16 20:05:39 BST 2002 Olly Betts * backends/quartz/btreetest.cc: Suppress (most) output from Btree::check unless verbose (-v) is enabled. Mon Oct 14 15:13:18 BST 2002 Olly Betts * testsuite/testsuite.cc: Fixed compilation problem with std:: on GCC 3.2. Mon Oct 14 15:07:03 BST 2002 Olly Betts * api/omstem.cc: French and Finnish stemmers were switched! Mon Oct 14 02:49:12 BST 2002 Olly Betts * backends/quartz/quartz_utils.h: change sort preserving packing for strings. This one does better provided the strings being packed don't contain many zero bytes (which is true of the termnames which we pack with this). Mon Oct 14 02:45:20 BST 2002 Olly Betts * tests/stemtest.cc: Updated to reflect new naming of stemming test data. Sun Oct 13 17:06:26 BST 2002 Olly Betts * docs/todo.xml: Updated. Sun Oct 13 16:40:24 BST 2002 Olly Betts * api/omstem.cc,backends/quartz/,common/,extra/omparsequery.h,matcher/, net/socketclient.cc: Added private copy ctors and assignment operators to classes with pointer members (which shouldn't be copied). Sun Oct 13 15:12:40 BST 2002 Olly Betts * docs/todo.xml: Updated. Sun Oct 13 02:33:57 BST 2002 Olly Betts * .cvsignore: Added install-sh. Sun Oct 13 02:16:31 BST 2002 Olly Betts * backends/quartz/{quartz_lexicon.cc,quartz_lexicon.h}: key to lexicon is now simply the termname - no need to encode the length there too since the Btree knows how long the key is. * backends/quartz/{quartz_table_manager.cc,quartz_values.cc}: finished the terminology change from "attribute" to "value" (including renaming the btree files, which is why it wasn't done before). Sun Oct 13 02:09:00 BST 2002 Olly Betts * tests/api_db.cc: Snowball stems "this" to "this" rather than "thi", so update apitest source to reflect this. Sun Oct 13 01:03:04 BST 2002 Olly Betts * configure.in: Removed references to languages/*/Makefile. Sun Oct 13 00:50:01 BST 2002 Olly Betts * docs/indexerquickstart.html,docs/quartzdesign.html: Updated. Sat Oct 12 23:34:52 BST 2002 Olly Betts * languages/{api.c,api.h,header.h,utilities.c}: 4 new files. Sat Oct 12 23:29:50 BST 2002 Olly Betts * languages/: removed all the old .cvsignore files. Sat Oct 12 22:34:01 BST 2002 Olly Betts * api/omstem.cc,docs/stemming.html,docs/todo.xml,languages/: Replaced our stemmers with those from Snowball. Note that these give better results, but this also means that existing databases won't work quite correctly if they contain stemmed terms. Sat Oct 12 17:17:26 BST 2002 Olly Betts * configure.in,NEWS: Version 0.5.3. Sat Oct 12 16:49:50 BST 2002 Olly Betts * PLATFORMS,api/omvalueiteratorinternal.h,extra/parsequery.yy, include/om/omdocument.h: Fixed std:: namespace issues to allow compilation with GCC 3 once again. Sat Oct 12 15:43:22 BST 2002 Olly Betts * docs/todo.xml: Updated. Fri Oct 11 02:14:47 BST 2002 Olly Betts * backends/quartz/Makefile.am: Include test data for btreetest in distribution tarball. Fri Oct 11 01:43:03 BST 2002 Olly Betts * backends/quartz/{z_note,z_sequence,z_Cversion/,z_make/,z_test/}: Removed all the unused old C btree stuff. Thu Oct 10 17:32:10 BST 2002 Olly Betts * backends/quartz/{btree.cc,btree.h}: More Btree tidying. Thu Oct 10 17:14:28 BST 2002 Olly Betts * backends/quartz/{bcursor.cc,btree.cc,btree.h}: Btree::prev* and Btree::next* are no longer static methods. * backends/quartz/btree.h: Tweaked comments so doxygen will understand them. Thu Oct 10 16:12:29 BST 2002 Olly Betts * backends/quartz/quartz_postlist.cc: return docids rather than passing in a pointer to fill in. Thu Oct 10 16:08:22 BST 2002 Olly Betts * backends/quartz/quartzcheck.cc: Fixed #include-d files; Example in usage message now uses the directory where omega looks for its database by default. Thu Oct 10 15:25:10 BST 2002 Olly Betts * backends/quartz/btree.cc,backends/quartz/btree.h: More comment improvments; Removed superfluous Cursor parameter from Btree::add_kt() - it always gets passed the C member of Btree which we have available anyway. Thu Oct 10 14:49:11 BST 2002 Olly Betts * backends/quartz/btree.cc: Removed "struct" from in front of Btree and Cursor; Updated and reformatted many comments. Thu Oct 10 03:45:56 BST 2002 Olly Betts * testsuite/backendmanager.cc: Reworded comment to make it clearer. Thu Oct 10 03:29:52 BST 2002 Olly Betts * docs/todo.xml: Updated. Wed Oct 09 14:05:07 BST 2002 Olly Betts * backends/quartz/{quartz_alltermslist.cc,quartz_alltermslist.h, quartz_database.cc}: Implemented QuartzAllTermsList::get_approx_size(). Wed Oct 09 10:46:42 BST 2002 Olly Betts * extra/omparsequery.h,include/om/omvalueiterator.h: Don't use "using std::foo;" in externally visible headers. Wed Oct 09 10:26:05 BST 2002 Olly Betts * extra/omparsequery.h: fixed unused parameter warning. Tue Oct 08 20:32:46 BST 2002 Olly Betts * tests/stemtest.cc: Added missing space to output. Tue Oct 08 20:10:35 BST 2002 Olly Betts * With GCC, add warning flags "-Wall -W" rather than "-Wall -Wunused" (-Wall implies -Wunused anyway). Fixed all the warnings this throws up, except in languages/ (that code is to be replaced with Snowball soon). Tue Oct 08 19:57:03 BST 2002 Olly Betts * testsuite/: Disable colour test output if stdout isn't a terminal; reworked check for broken exception handling as the previous version never seemed to fire; added "using" for all the things we want from std::; improved how signal handlers are set and unset; report exception class for exceptions derived from OmError rather than a blanket "OMEXCEPT"; added private copy ctor and assignment to test_driver to prevent copying. Tue Oct 08 19:53:02 BST 2002 Olly Betts * include/om/Makefile.am: remove include/om/om.h on "make distclean", not "make clean". Otherwise "./configure ; make clean ; make" fails which is wrong. Sun Oct 06 18:37:39 BST 2002 Olly Betts * PLATFORMS: Updated. * docs/: Removed Martin's paper - background information for stemmers is best left to the Snowball documentation. Sat Oct 05 20:31:55 BST 2002 Olly Betts * NEWS,configure.in: 0.5.2 release. Sat Oct 05 03:01:49 BST 2002 Olly Betts * PLATFORMS: Updated. Sat Oct 05 02:09:35 BST 2002 Olly Betts * docs/todo.xml: Updated. Fri Oct 04 22:34:12 BST 2002 Olly Betts * PLATFORMS,testsuite/testutils.h: Code to spot mishandled exceptions doesn't always work - noted this in PLATFORMS, and tweaked the code a little. Fri Oct 04 19:08:08 BST 2002 Olly Betts * backends/quartz/.cvsignore: Added quartzcheck. Fri Oct 04 18:24:55 BST 2002 Olly Betts * docs/: converted all text docs to HTML (except omsettings which will has odd markup (LaTeX?) and will probably soon be obsolete anyway). * docs/todo.xml: updated. Fri Oct 04 17:18:33 BST 2002 Olly Betts * net/socketcommon.cc: Fixed handling of timeouts in the past. Fri Oct 04 13:51:39 BST 2002 Olly Betts * PLATFORMS,testsuite/testutils.h: Use typeid() to spot when GCC 2.95 mishandles an exception, and don't count this as a test failure. Fri Oct 04 03:59:29 BST 2002 Olly Betts * api/omdatabaseinternal.cc,backends/multi/multi_termlist.h, matcher/multimatch.cc,matcher/networkmatch.cc,matcher/networkmatch.h: pulled uses of dynamic_cast<> to higher up in the code. Fri Oct 04 03:53:44 BST 2002 Olly Betts * PLATFORMS,backends/quartz/{btree.cc,quartz_metafile.cc}: Fixed quartz problems on platforms where sizeof(long) != 4. * PLATFORMS: Updated in the light of investigations into test failures on x86 Redhat Linux - only multierrhandler1 with the remote backend is actually a problem. Wed Oct 02 16:32:48 BST 2002 Olly Betts * NEWS: Updated for 0.5.1 release. Wed Oct 02 16:01:50 BST 2002 Olly Betts * PLATFORMS,configure.in: 0.5.1 release. Tue Oct 01 13:34:24 BST 2002 Olly Betts * docs/: tweaked navigation links in index.html; converted bm25 text document to HTML and linked it in; added todo entry to locate the "illusion of control" paper. Tue Oct 01 12:48:41 BST 2002 Olly Betts * docs/: renamed intro.html to install.html, and userman.html to overview.html; changed navbar on index.html. Tue Oct 01 12:37:20 BST 2002 Olly Betts * bootstrap: fixed adding of directory with xapian.m4 in to ACLOCAL_FLAGS; added trap to tell user if bootstrapping failed. Tue Oct 01 12:33:38 BST 2002 Olly Betts * HACKING,Makefile.am,bootstrap,buildall,xapian.spec.in, autoconf/dir_contents,docs/todo.xml: Added bootstrap script as a replacement for buildall (buildall left in place for now until bootstrap receives wider testing). Tue Oct 01 12:19:32 BST 2002 Olly Betts * HACKING,Makefile.am,configure.in,PLATFORMS: require automake 1.6.3 (and hence autoconf 2.54) to fix problem building tests/internaltest with Solaris make. Mon Sep 30 20:30:42 BST 2002 Olly Betts * PLATFORMS: Improved wording about bogus OMEXCEPT failures); Added results for OpenBSD 3.0 and Solaris 8 on x86 (both work). Mon Sep 30 20:25:03 BST 2002 Olly Betts * docs/: Pruned .cvsignore; removed cvs.html (link to CVS info on website directly); removed using_stemmers.html - those wishing to use the C API to the stemmers ought to look at Snowball instead; include HTML versions of quickstart*.cc in tarballs; improved wording in various places. Mon Sep 23 19:33:31 BST 2002 Olly Betts * net/Makefile.am: Fixed building of readquery.cc from readquery.ll. Sun Sep 22 03:57:20 BST 2002 Olly Betts * PLATFORMS: Updated. Fri Sep 20 15:09:25 BST 2002 Olly Betts * PLATFORMS: Added note about bogus OMEXCEPT test failures with GCC 2.95. Fri Sep 20 01:36:35 BST 2002 Olly Betts * NEWS,PLATFORMS,configure.in: 0.5.0 release! Fri Sep 20 01:01:52 BST 2002 Olly Betts * Makefile.am: Perl module we need to process todo.xml is XML::Parser not XML, so corrected error message. * configure.in: Commented out MSG_WARN() when Perl modules XML::Parser or Text::Format aren't found. In a release tarball, this only matters if you modify docs/todo.xml, and the warning message(s) may alarm those building the software. Thu Sep 19 00:57:23 BST 2002 Olly Betts * .cvsignore: Added depcomp, missing, mkinstalldirs. Thu Sep 19 00:49:01 BST 2002 Olly Betts * HACKING: Added note about safe way to generate files in make rules. Thu Sep 19 00:45:51 BST 2002 Olly Betts * PLATFORMS: Tested on Solaris 7 with GCC 2.95.3 (works) and Solaris 8 Sun Workshop C++ compiler (fails to compile). Thu Sep 19 00:41:53 BST 2002 Olly Betts * ar-wrapper-solaris,ltconfig,Makefile.am: libtool 1.4 doesn't use ltconfig, and that's the only thing that uses ar-wrapper-solaris, so removed both. Fairly sure the problem they address was fixed in libtool so time ago. Xapian doesn't build with Sun's C++ compiler at the moment anyway, so it's moot for the release. Thu Sep 19 00:26:37 BST 2002 Olly Betts * docs/todo2html.pl: Handle release "*" specially - it indicates tasks to be done for each release. Thu Sep 19 00:05:40 BST 2002 Olly Betts * configure.in,include/om/om.h.in: Tweaked how generation of om.h works to avoid problems with Sun's C++ compiler. Wed Sep 18 19:21:47 BST 2002 Olly Betts * net/Makefile.am,net/readquery.ll: #include must be included before any other headers, but that seems to be impossible to arrange in lex/flex so we use echo and cat in the Makefile to arrange this. Wed Sep 18 17:35:00 BST 2002 Olly Betts * include/om/Makefile.am: We want to install om/om.h, but not distribute it or people with a different compiler to whoever ran "make dist" will get the "ABI mismatch" error. Wed Sep 18 13:16:14 BST 2002 Richard Boulton * docs/.cvsignore: Add docs/doxygen_full_warnings. * include/om/.cvsignore: Add include/om/om.h. Wed Sep 18 11:06:12 BST 2002 James Aylett * include/om/Makefile.am: We really should install om/om.h, or applications can't build against us. Wed Sep 18 05:10:24 BST 2002 Richard Boulton * docs/doxygen_{api,full}_header.html_tmpl: Remove meta robots tag - why shouldn't this be indexed? Now the omega I set up pointing at copies of this should actually index something. Wed Sep 18 04:52:20 BST 2002 Olly Betts * configure.in: Merged two sed invocations into one - we don't want configure to run any slower than it has to. Wed Sep 18 04:17:58 BST 2002 Richard Boulton * configure.in: Don't put confdefs.h into SOURCEDOC_H_SRC - this file only exists during the configure run. Fixes failure of "make doxygen_docs" in docs/ Tue Sep 17 13:07:39 BST 2002 James Aylett * Updated PLATFORMS file. Mon Sep 16 19:40:02 BST 2002 Olly Betts * docs/todo.xml: Updated. Mon Sep 16 18:09:29 BST 2002 Olly Betts * tests/api_db.cc: don't run consistency1 test on the remote backend - it's particularly slow with that, and testing it there doesn't actually improve the test coverage really. Mon Sep 16 17:15:46 BST 2002 Olly Betts * configure.in,docs/Makefile.am: Added workaround for pattern length limits in Solaris sed. Mon Sep 16 17:13:20 BST 2002 Olly Betts * include/om/om.h.in: Added explanatory comments for developers. Mon Sep 16 14:22:48 BST 2002 James Aylett * om/om.h needs to be in CLEANFILES or make distcheck fails Mon Sep 16 13:37:04 BST 2002 James Aylett * Now om/om.h is built from om/om.h.in, it may be in the build directly. Consequently, we need to add that to the include path for VPATH builds. Plus (also for VPATH), om/om.h needs to be output after AC_OUTPUT, because otherwise the destination directory may not exist. Mon Sep 16 04:19:54 BST 2002 Olly Betts * configure.in,docs/todo.xml,include/om/Makefile.am,include/om/om.h, include/om/om.h.in: When building the library with GCC, generate include/om/om.h with preprocessor code to check that any version of GCC used to build applications has a matching C++ ABI. This means that users get a nice explanatory error message rather than a confusing link failure (or worse a program which builds but crashes). Another benefit is that the check happens near the start of compilation of the first source file which uses Xapian in the user's application, rather than during the first attempt to link with Xapian. Sun Sep 15 01:42:19 BST 2002 Olly Betts * net/tcpserver.cc: Solved std mystery - "using namespace std;" was inside a #ifdef which wasn't enabled! Sun Sep 15 01:21:34 BST 2002 Richard Boulton * tests/tcpserver.cc: Hacky fix to compile with gcc-3.2 snapshot in Debian unstable - add a FIXME to work out why this is needed. * todo: add entry about checking ABI versions using __GXX_ABI_VERSION macro. Sat Sep 14 22:39:11 BST 2002 Olly Betts * configure.in,tests/Makefile.am,tests/internaltest.cc: It turns out that internaltest *does* need -fno-access-control, so put it back. Not quite sure how I missed this. Changed to skip refcnt tests when -fno-access-control isn't available (rather than omitting them entirely). * tests/api_db.cc: Fixed compile problem. Sat Sep 14 21:44:34 BST 2002 Olly Betts * internaltest: doesn't actually need -fno-access-control these days, so removed it and the configure tests for it. * stemtest: recoded to be all in C++ and removed use of intermediate files for random data tests - now runs ~15% faster; no longer need HAVE_PERL so removed from configure. * apitest: use C++ streams rather than stdio; stubdb1 now cleans up the temporary file it creates. Sat Sep 14 12:54:52 BST 2002 Olly Betts * docs/Makefile.am: fix "mv apidoc/latex/refman.ps avidoc.ps" which fails after recent change. Sat Sep 14 11:15:33 BST 2002 James Aylett * Renamed simple* programs in quickstart docs to quickstart* to avoid confusion with the simple* programs in xapian-examples. (Thanks to Alex Bowley for pointing out the confusion.) Sat Sep 14 10:00:35 BST 2002 James Aylett * configure.in: returned AC_CONDITIONAL for HAVE_PERL Sat Sep 14 09:29:08 BST 2002 Richard Boulton * buildall: change to srcdir before testing for neccessary tools so that scripts which guess which autotools version to use have more information available to guess with: for example, the Debian autoconf version guessing script looks for "configure.ac" as a sign that autoconf 2.50+ is required. Sat Sep 14 02:50:23 BST 2002 Olly Betts * docs/distributed.txt,docs/quartzdesign.html,docs/todo.xml: assorted documentation updates. Sat Sep 14 02:10:12 BST 2002 Olly Betts * PLATFORMS: removed note about VPATH problems. Sat Sep 14 02:02:58 BST 2002 Olly Betts * btree.cc,btree.h: rearranged Btree::del() so control flow is clearer. Sat Sep 14 01:56:44 BST 2002 Olly Betts * HACKING,docs/Makefile.am: added evil hack to allow VPATH builds to work with BSD make. Wed Sep 11 11:29:07 BST 2002 Olly Betts * backends/database_builder.cc: Quartz is fairly mature - change comment which suggests that the btree names will change. Wed Sep 11 11:13:43 BST 2002 Olly Betts * configure.in: Don't double quote `$MISSING foo' as autoconf adds them * docs/Makefile.am: Use `test a = b' rather than `test a == b' Tue Sep 10 14:50:16 BST 2002 Olly Betts * configure.in: tweaked test for perl modules - stderr is now fully supressed on sh (which behaves slightly differently to bash). Tue Sep 10 14:27:15 BST 2002 Richard Boulton * backend_manager.cc: Fix stub database code so that it doesn't use the gnu extension "getline()". Tue Sep 10 13:51:20 BST 2002 Olly Betts * quartz_table.cc: don't form tag when we just want to check if a key is present before calling Btree::del(). Working out why we can't call Btree::del() would still be worthwhile though. Tue Sep 10 13:02:04 BST 2002 Olly Betts * quartztest.cc: removed unused #include-s; describe valid options in usage message. Tue Sep 10 02:07:29 BST 2002 Olly Betts * remote backend: implemented term_exists() and get_termfreq(); added test to check they work. Mon Sep 9 12:59:15 BST 2002 Richard Boulton * Add stub databases: if backend type is auto, and auto_dir points to a file, read in settings from the file (overwriting the existing ones), and then use them to open the database. This allows, for example, omega to open a remote database by putting in a stub database file in the omega directory. Updated documentation for opening databases in userman.html. * apitest: Added test for stub databases. Mon Sep 09 02:26:36 BST 2002 Olly Betts * Documentation updates: move suggested books into intro_ir.html and added URL for citeseer reference Richard posted to mailing list recently; clarified wording in a couple of places. Sat Sep 7 12:52:12 2002 James Aylett * docs: fixed references to OmDocumentContents (now OmDocument) which had clearly been broken for a while. Also fixed get_data() and set_data() example usage so it reflects reality (I hope). Wed Sep 04 22:46:17 BST 2002 Olly Betts * Corrected min_item.wt to min_wt in two assertions. Thu Aug 15 11:42:20 BST 2002 Richard Boulton * buildall: Only add the directory derived from xapian-config to ACLOCAL_FLAGS if it actually exists. Mon Aug 12 01:13:55 BST 2002 Richard Boulton * quartz_table.cc: Check that a key exists before calling Btree::del() - there seems to be a bug in the btree code causing a failure when deleting keys if they don't exist. This work around appears to make things work correctly, but won't be terribly efficient. Mon Aug 12 00:09:21 BST 2002 Richard Boulton * quartz_table_manager.cc: When unable to apply modifications, call cancel on the buffered table after reopening disk table at old revision - otherwise, the entry count gets messed up. * quartz_table.cc, quartz_database.cc: Improve debugging and error reporting: I'm trying to work out why the failure Olly reported is occurring. Sat Aug 10 15:12:42 2002 James Aylett * Fixed missing include in quartzcheck.cc Sat Aug 10 14:57:17 2002 James Aylett * Fixed typo in quartzcheck.cc Tue Jul 23 22:12:34 BST 2002 James Aylett * Added a note to the effect that the indexgraph stuff isn't really considered useful to the HTML document introducing it. Tue Jul 23 22:09:39 BST 2002 James Aylett * Added some comments in quartztest test_create1(), in case anyone else who didn't write it needs to understand it. * Added Olly as an active participant to the AUTHORS file :) Tue Jul 23 21:59:50 BST 2002 James Aylett * Reworded quickstart document so it does not refer to the example code (it was never actually in sync). Mon Jul 22 14:07:18 BST 2002 Sam Liddicott * Forgot to actually add the quartzcheck.cc file last time Mon Jul 22 13:28:09 BST 2002 Sam Liddicott * Add buildprereq to package Add quartzcheck which runs btree::check to backends Tue Jul 16 09:44:56 BST 2002 Sam Liddicott * Fix banding problem; bands are now based on the percentage not the weight, and using integer maths to avoid problems with ceil() rounding up supposed integers which are really slightly larger due to precision errors Thu Jul 11 00:16:22 BST 2002 Olly Betts * configure.in, docs/Makefile.am: configure fixes for Solaris - clear cached result for fdatasync since it may be wrong if we decide we need to link librt; split SOURCEDOC_SRC into two to avoid hitting 4096 char line length in Solaris sed. Tue Jul 09 17:47:31 BST 2002 Olly Betts * PLATFORMS, tests/Makefile.am: improved internaltest.cc automake rules - they should now work in VPATH builds with Solaris make. Tue Jul 09 03:30:41 BST 2002 Olly Betts * configure.in, docs/Makefile.am: Fixed up apidoc and sourcedoc dependencies so that they work correctly in VPATH builds. Also only use portable find arguments to generate SOURCEDOC_SRC. Sat Jul 06 13:53:27 BST 2002 Olly Betts * xapian.spec.in: Updated in preparation for release. Sat Jul 06 13:04:45 BST 2002 Olly Betts * docs/Makefile.am: Run latex twice to get forward references resolved. Fri Jul 05 18:23:08 BST 2002 Olly Betts * matcher/multimatch.cc: better (perhaps even completely correct) fix for sorting into bands. * matcer/localmatch.cc: removed entirely bogus comment from over-eager cut-and-paste. * tests/api_db.cc: added otherwise pointless statement to deldoc3 which seems to fix occasional miscompilation by GCC 2.95. Fri Jul 05 16:37:12 BST 2002 Olly Betts * docs/Makefile.am: "make dist" now fails if dot (part of graphviz) isn't installed. Fri Jul 05 08:54:33 BST 2002 Sam Liddicott * bindings/: removed some typemap hacks as swig has better typemaps now Fri Jul 05 08:46:06 BST 2002 Sam Liddicott * matcher/multimatch.cc: Quick hack to stop 100% being in a band all on its own. The real problem is that bands need to include the integer at the upper end of the range, rather than the lower end. Thu Jul 04 16:23:52 BST 2002 Olly Betts * docs/mkdoc.pl: Fixed to work in VPATH builds. Thu Jul 04 12:42:06 BST 2002 Olly Betts * configure.in, docs/Makefile.am: use "missing" to give more helpful errors when we don't find tools we need. Wed Jul 03 12:39:15 BST 2002 Olly Betts * NEWS: incorporated recent changes into provisional version. * docs/: sorted out make rules for running doxygen; don't tell doxygen to build man pages which we aren't using. Tue Jul 02 16:36:54 BST 2002 Olly Betts * docs/: run through ispell; fixed OM_MOP to OmQuery::OP; other corrections. Fri Jun 28 02:59:49 BST 2002 Olly Betts * Backend "auto" now works when creating an OmWritableDatabase which doesn't already exist - it'll pick a backend which supports writing and is compiled in (currently this means quartz). Thu Jun 27 20:31:13 BST 2002 Richard Boulton * backends/quartz/btreetest.cc (sequent1): Add regression test for recently fixed bug with sequential addition. * backends/quartz/z_data/ordnum[+-]: Data files for new test. Thu Jun 27 13:13:37 BST 2002 Olly Betts * Documentation fettling: removed docs/Notes and docs/coding_policy.txt moving relevant content into HACKING, common/postlist.h, docs/todo.xml, and include/om/omtypes.h; install docs as PostScript rather than DVI; include text docs in tarball and install them; "make dist" will now fail if a tool needed to build docs is missing; removed last vestiges of Doc++ support; doc/Makefile no longer uses include (include isn't portable); improved doc/tests.txt. Thu Jun 27 12:10:37 BST 2002 Olly Betts * apitest: doesn't directly use anything from utils.h, so don't #include it. Thu Jun 27 12:05:53 BST 2002 Olly Betts * Removed includetest - it was useful early in development, but isn't really now. Wed Jun 26 22:09:57 BST 2002 Olly Betts * apitest: deldoc2 and deldoc3 now pass when the library is compiled with --enable-debug. Wed Jun 26 19:35:56 BST 2002 Olly Betts * Removed code which causes quartztest to fail with an --enable-debug build. Wed Jun 26 13:55:11 BST 2002 Olly Betts * todo.xml: added note to fix 100% being in its own sort band. Wed Jun 26 13:46:02 BST 2002 Richard Boulton * btree.cc: Fix splitting of blocks in sequential mode to ensure that split happens no earlier than the midpoint. Wed Jun 26 12:32:47 BST 2002 Richard Boulton * btree.cc: Asserts to check that add_item in sequential mode when splitting a block is not trying to add to the wrong block, or to add to a new block which is not empty (or containing more than one item). Tue Jun 25 17:53:19 BST 2002 Olly Betts * Assert that the value of c is sane in GETINT1, etc. Tue Jun 25 16:30:09 BST 2002 Olly Betts * btreetest.cc: use C++ IO rather than C stdio; removed commented out LFSinsertdelete1 test (it was never written and a test suite which creates 2G files is probably a bit too resource hungry). Tue Jun 25 13:56:01 BST 2002 Olly Betts * btree/quartz: More use of const pointers; more use of C++ strings. Wed Jun 19 08:56:00 BST 2002 Sam Liddicott * Fixed spec file to build for prefix=/usr not just install there Fri Jun 14 16:35:04 BST 2002 Olly Betts * docs/todo.xml: added 4 new tasks. Fri Jun 14 16:33:08 BST 2002 Olly Betts * backends/quartz/quartz_database.cc: Cosmetic changes. Wed Jun 12 16:31:11 BST 2002 Olly Betts * QuartzDbKey, QuartzDbTag: just use a string instead of a string wrapped in a structure. We've stopped inflicting this on external developers (OmData, OmKey/OmValue) so why inflict it on ourselves? Wed Jun 12 12:26:04 BST 2002 Olly Betts * Btree_item: use C++ strings rather than trying to reimplement them. * Fix a few warnings about unused parameters. Wed Jun 12 02:53:16 BST 2002 Olly Betts * Btree_full_compaction, Btree_close: removed - they just wrap methods of Btree. Wed Jun 12 02:28:30 BST 2002 Olly Betts * Btree_item_create and Btree_item_lose subsumed into Btree_item and ~Btree_item. * Pass C++ strings rather than const char * into various Btree open methods. * Removed pointless wrapper functions for Btree open methods. * Btree_quit removed (just use delete directly). * Btree_create removed (just use Btree::create directly). Wed Jun 12 00:48:52 BST 2002 Olly Betts * form_key is now a method of Btree; more passing of strings rather than pointer/length pairs); buffer overrun check added to btreetest. Tue Jun 11 18:04:08 BST 2002 Olly Betts * More C++ like interfaces (e.g. bool returns, strings rather than pointer/length pairs). Tue Jun 11 16:40:08 BST 2002 Richard Boulton * quartz/btree.cc: Fix so that it compiles when BTREE_FULL_DEBUG is on, and added a couple of Assert()s. Tue Jun 11 13:09:39 BST 2002 Olly Betts * Removed a number of btree functions which were simply wrappers for calling methods on their first parameter, and most of which weren't even used! * btree_api.txt: updated to better reflect the object-ized API. Tue Jun 11 02:01:53 BST 2002 Olly Betts * Btree::make_index_item(): Added check for buffer overflow. Tue Jun 11 01:49:51 BST 2002 Olly Betts * Still more... Tue Jun 11 01:08:03 BST 2002 Olly Betts * More btree and quartz tidying. Mon Jun 10 20:33:24 BST 2002 Olly Betts * btree.cc,btree.h: cleaned up further. Mon Jun 10 15:54:49 BST 2002 Olly Betts * Further btree and quartz cleanups. Mon Jun 10 14:46:00 BST 2002 Olly Betts * Fixed typo in recent quartzdump change. Mon Jun 10 13:20:20 BST 2002 Olly Betts * Quartz clean-ups - especially QuartzTermList. Mon Jun 10 12:18:40 BST 2002 Olly Betts * Bcursor_create made a method of class Btree as suggested by a FIXME. Mon Jun 10 01:57:53 BST 2002 Olly Betts * More btree fixes and tidying. Fixed bug introduced by typo in previous change which causes tests to fail. Sun Jun 09 17:50:28 BST 2002 Olly Betts * btree_util.h: use inlines rather than macros. * Fix CompileTimeAssert() to avoid potential clashes. Sun Jun 09 12:46:25 BST 2002 Olly Betts * btree.cc,btree.h: fixed bug caused by local variable masking member variable with same name. Tidied up a lot. Wed Jun 5 12:22:57 BST 2002 Sam Liddicott * Fix OmQuery::op enum handling. Mon May 27 14:28:06 BST 2002 Sam Liddicott * Add crash-protected next() to OmMSetIterator * Add ->valid() method to iterator which returns FALSE if the iterator has reached the end * Added namespace fixes for latest cvs swig to be released next month Fri May 24 15:28:18 BST 2002 Sam Liddicott * Took out the string typemaps as swig now has them in stl.i * Added om_percent to omtypes.i - I wonder if we might just read omtypes.h instead, as swig can * Added OmMSetIterator and made changes to OmMSet Fri May 24 11:46:50 BST 2002 Sam Liddicott * Now support get_matching_terms via swig I'm not sure how to generally map iterators to php but in cases where we know only a small number of items exist to be iterated over it makes sense to return them as a php array Tue May 21 15:28:40 BST 2002 Richard Boulton * multi_postlist.cc (get_doclength): Get the document length from the appropriate sub-postlist, rather than from the database. This causes a huge speedup in some cases, since it avoids having to go to the termlist database for every document considered for an mset to get the document length. Added an AssertParanoid to check that the value from the postlist is the same as that from the database. This problem was noticed because "delve -v" was running several orders of magnitude slower than without -v - it is now of comparable speed. Tue May 21 15:27:37 BST 2002 Richard Boulton * quartz_values.cc: Small fixes to enable it to compile with debug turned on. Fri May 17 14:52:45 BST 2002 Olly Betts * OmQueryParser::set_database() method added. * Added disabled code to search for a keyword used in the query. * Added ' and * to the list of "phrase making characters". * To make a phrase, a phrase-maker must be followed by an alphanumeric rather than just a non-space. Fri May 17 14:49:54 BST 2002 Olly Betts * INSTALL: GCC 3.1 release version works, so noted this. * HACKING: Added note about warning-free compilation being desirable and suggesting using "./configure CFLAGS=-Werror" to promote this. * NEWS: Minor updates. Thu May 16 16:57:42 BST 2002 Olly Betts * Minor tweaks to get a warning-less compile with GCC 3.1. Thu May 16 13:36:19 BST 2002 Sam Liddicott * Clean up the spec file Thu May 16 12:20:09 BST 2002 Olly Betts * Documented match_sort_key. Thu May 16 10:42:47 BST 2002 Sam Liddicott * A few quick tips from Olly, now the tarfile name and version no. stuff comes from autoconf so the spec file won't need tweaking each time the version number changes Wed May 15 15:48:42 BST 2002 Sam Liddicott * This can build RPM packages. Get the make-dist tarball and do: rpm -ta xapian-core-0.4.1-cvs.tar.gz and it will make source and binary rpms It doesn't build bindings packages yet but this will come when I build them Wed May 15 13:27:21 BST 2002 Richard Boulton * buildall: Allow use of automake 1.6.1 and later, and CVS automake (versions 1.6[a-z]) Wed May 15 11:40:58 BST 2002 Sam Liddicott * SWIG cvs (php4) now writes all output files to the same directory as the main output file, so need for hacks to move these, also no more clobbering our source files when building in the checkout dir Tue May 14 21:54:02 BST 2002 James Aylett * Updated PLATFORMS file. Tue May 14 16:48:07 BST 2002 Olly Betts * Removed multiple-include protection from config.h - if it's included more than once it's now a bug and we want to know! Tue May 14 15:25:05 BST 2002 Olly Betts * OmQueryParser: parse acronyms as a single term (so "E.T." -> "ET" and "N.A.T.O" -> "NATO"). Tue May 14 15:23:20 BST 2002 James Aylett * Fixed config.h includes: source definition (ie not header) files #include as their first action. Tue May 14 14:47:00 BST 2002 Olly Betts * Updated todo. * extra/parsequery.yy: Fettled indentation. Tue May 14 13:14:51 BST 2002 Olly Betts * Added test case for new "embedded &" rule, and fix problem bug it revealed. Tue May 14 13:10:33 BST 2002 Olly Betts * OmQueryParser: Parse & as a single term (e.g. AT&T, M&S, A&P). Tue May 14 11:50:03 BST 2002 Olly Betts * When including config.h, always specify it as , not "config.h", and always do it first. Both are recommended by the autoconf documentation. Mon May 13 17:17:13 BST 2002 James Aylett * missing fallback rule all-local in docs/Makefile.am was failing the build on Solaris Mon May 13 15:50:31 BST 2002 Sam Liddicott * Use new %extends notation for swig. * Update for new omValue usage * Add omqueryparser support Mon May 13 15:12:30 BST 2002 James Aylett * shipped getopt will now build in absence of system getopt Mon May 13 15:09:17 BST 2002 Olly Betts * configure.in: Moved AH_TOP/AH_BOTTOM to more logical place. * docs/todo.xml: Updated. Mon May 13 14:13:27 BST 2002 James Aylett * added getopt to DIST_SUBDIRS so distributions work Fri May 10 14:54:06 BST 2002 Olly Betts * getopt/: Checked in files I missed last time. Fri May 10 14:35:52 BST 2002 Olly Betts * Make sure GNU getopt is linked to everything which might need it so we build in non-glibc environments. Fri May 10 13:42:59 BST 2002 Olly Betts * Replaced second match_sort_key optimisation with one which is faster and not flawed. Thu May 09 18:27:30 BST 2002 Olly Betts * match_sort_key now runs at a sensible speed (approx. 20x speed up on my test case). Thu May 09 16:58:11 BST 2002 Olly Betts * Added another optimisation for match_sort_key - my test case is now 25% faster (still slow though). Thu May 09 11:57:59 BST 2002 Olly Betts * NEWS, PLATFORMS, README: Updated to something approximating what we want for a release. * docs/todo.xml: Updated. Thu May 09 10:57:59 BST 2002 Olly Betts * Removed references to match_max_or_terms (which was replaced by OmQuery::OP_ELITE_SET long, long ago). Wed May 08 17:38:50 BST 2002 Olly Betts * Improved api documentation comments. Wed May 08 17:09:14 BST 2002 Olly Betts * Include findheaders.pl in tarball. Wed May 08 16:09:14 BST 2002 Olly Betts * Killed off acconfig.h. Wed May 08 15:53:11 BST 2002 Olly Betts * Added autom4te-*.cache to .cvsignore. Wed May 08 15:50:56 BST 2002 Olly Betts * Rebuild docs on "make", not just "make dist" or "make install". Wed May 08 15:07:01 BST 2002 Olly Betts * Added workaround for problems with on Solaris when LFS is enabled. Wed May 08 13:44:10 BST 2002 Olly Betts * Matcher can now sort on a key. Can be rather slow at present... Wed May 08 13:15:21 BST 2002 Olly Betts * Updated todo. Wed May 08 12:22:53 BST 2002 Olly Betts * Removed ltmain.sh-s from CVS. Wed May 08 12:21:32 BST 2002 Olly Betts * buildall: run libtoolize; stripped out unnecessary stuff. Wed May 08 09:44:45 BST 2002 Olly Betts * matcher/msetpostlist.cc: Removed bogus comment cut and pasted from matcher/mergepostlist.cc. Tue May 07 17:51:57 BST 2002 Olly Betts * It's "m4_include", not "m4include". Tue May 07 17:52:36 BST 2002 Olly Betts * Added autoconf/type_socklen_t macro. Tue May 07 16:50:20 BST 2002 Olly Betts * Now require autoconf 2.50, which allows us to clean up some of the more unpleasant parts of the build system. Tue May 07 14:55:37 BST 2002 Olly Betts * Added "match_sort_bands" option to sort results within relevance bands. Currently the sort within each band is by document id, which isn't really very useful. The plan is to allow sorting by a key. Tue May 07 14:54:12 BST 2002 Olly Betts * Sorted out tests/findheaders.pl wrt last change. Tue May 07 13:12:23 BST 2002 Olly Betts * Run perl scripts from Makefiles explicitly with $(PERL) rather than having them as generated files in AC_OUTPUT. Mon May 6 16:04:37 2002 James Aylett * Distribution fixes: make clean should now clear up all required files. Mon May 6 14:42:46 2002 James Aylett * Don't include dlfcn.h since we don't use it (and doesn't exist on some target platforms). Mon May 6 14:07:24 2002 James Aylett * Minor documentation corrections. Fri May 03 18:14:14 BST 2002 Olly Betts * Changed autoconf/automake project name to xapian-core, and updated the documentation to reflect this. * Disabled the bindings from being included in distribution tarballs. Fri May 03 18:13:43 BST 2002 Olly Betts * Updated todo list. Fri May 3 18:02:06 BST 2002 James Aylett * Overloading ambiguity resolutions for linux/alpha build on CF Fri May 03 17:13:36 BST 2002 Olly Betts * buildall: Don't run configure or make; removed --no-make and --quiet. Fri May 3 16:52:01 BST 2002 James Aylett * tests/testdata/etext.txt needs to be included in the distribution Fri May 03 16:18:38 BST 2002 Olly Betts * Removed OmValue in favour of simply using a string (analogous to recent OmData change). Fri May 03 14:52:04 BST 2002 Olly Betts * Removed unused om_docname typedef. Fri May 03 14:42:31 BST 2002 Olly Betts * Terminology change - a "key" (in the OmKey sense) is now a "value". Fri May 3 14:31:57 BST 2002 James Aylett * Fixed up todo list and HTML generation script to cope with items without an assigned priority. Fri May 03 14:29:58 BST 2002 Olly Betts * It's HACKING (not INSTALL) that has details of developer tools. Thu May 02 15:57:48 BST 2002 Olly Betts * Removed OmData - just return and take a string instead. Thu May 02 14:40:21 BST 2002 Olly Betts * docs/.cvsignore: updated. Thu May 02 14:38:36 BST 2002 Olly Betts * Removed assorted references to pthread locking; updated HACKING. Thu May 02 14:15:47 BST 2002 Olly Betts * Stripped out OmBatchEnquire stuff, as it's unlikely to get sorted out any time soon, and it can be extracted from CVS when someone wants it. Thu May 02 13:50:04 BST 2002 Olly Betts * Check for bison >= 1.35 in buildall. Wed May 01 17:39:57 BST 2002 Olly Betts * Removed lingering references to Omsee and OpenMuscat. Wed May 01 16:34:13 BST 2002 Olly Betts * Removed unused methods from NetClient (read_data and write_data). Wed May 01 14:01:12 BST 2002 Olly Betts * Added test consistency1 to check matcher optimisations don't result in inconsistent results (i.e. that same matches and weights are returned regardless of size of mset asked for). Wed May 01 11:48:10 BST 2002 Olly Betts * Fixed mismatched tags in todo.xml. Wed May 01 11:46:42 BST 2002 Olly Betts * Updated todo. Wed May 01 11:40:47 BST 2002 Olly Betts * Corrected configure warning message - it's XML::Parser not XML. Wed May 01 11:34:49 BST 2002 Olly Betts * Tweaks to get queryparser building cleanly. Tue Apr 30 17:44:48 BST 2002 Olly Betts * Updated query parser in extra from the updated one in omega, and fettled it to cope better with multiple instantiations (though it's a long way from being reentrant at the moment). Tue Apr 30 11:03:44 BST 2002 Olly Betts * Updated todo. Mon Apr 29 19:28:04 BST 2002 Olly Betts * More string.c_str() tidying. Mon Apr 29 17:41:33 BST 2002 Olly Betts * Tidied up some uses of string.c_str(). * Cleaned up todo list. Mon Apr 29 16:08:21 BST 2002 Olly Betts * Updated buildall to check various tools have the required version numbers. Mon Apr 29 15:58:57 BST 2002 Olly Betts * Tweaked use of HAVE_STREAMBUF Fri Apr 26 14:41:09 BST 2002 Sam Liddicott * Swig is now modified so it can build config.m4 and Makefile.in for php modules so I removed these from bindings/php4 Tue Apr 23 18:21:03 BST 2002 Olly Betts * Tried compiling with GCC 3.1 prerelease snapshot and fixed various STL-related warnings (mostly uses of istrstream). * Fixed usage of AM_CFLAGS and AM_CXXFLAGS. Tue Apr 23 15:48:36 BST 2002 Olly Betts * Updated buildall (and had to tweak it again, sigh). Tue Apr 23 14:21:01 BST 2002 Sam Liddicott * Added typemap conversion to generate OmSettings from php hash * Changed order of classes in interface file Tue Apr 23 14:20:05 BST 2002 Olly Betts * Revamped xapian-config and xapian.m4. Important change - it's now "xapian-config --cxxflags" and XAPIAN_CXXFLAGS, not --cflags and _CFLAGS. Mon Apr 22 17:58:56 BST 2002 Olly Betts * Removed leak checker. Mon Apr 22 13:40:01 BST 2002 Olly Betts * Tiny code tweak. Mon Apr 22 13:11:32 BST 2002 Olly Betts * Write debug log using unbuffered IO and O_APPEND which should prevent the log file becoming garbled when used from applications which use Xapian objects in multiple threads. Mon Apr 22 12:19:18 BST 2002 Olly Betts * Updated copyright notices for last change. Mon Apr 22 11:20:28 BST 2002 Olly Betts * Removed thread locks. Fri Apr 19 17:38:23 BST 2002 Olly Betts * Removed completed tasks from todo list. Fri Apr 19 17:26:23 BST 2002 Olly Betts * Removed placeholder code for OmQuery::OP_PERCENT_CUTOFF - it's actually impossible to implement since we started rescaling percentages so that 100% is attainable. Fri Apr 19 16:42:42 BST 2002 Olly Betts * Tracked down and fixed the bug in the quartz backend which was making test poslist2 fail. Fri Apr 19 16:06:39 BST 2002 Olly Betts * Fixed some compilation problems which I somehow failed to notice before the last check-in. Fri Apr 19 15:04:13 BST 2002 Olly Betts * Added more RETURN(...) wrappers. Fri Apr 19 14:46:19 BST 2002 Olly Betts * Added more DEBUGCALL tracing to quartz. Fri Apr 19 13:29:57 BST 2002 Olly Betts * Minor tweaks to quartz_database.cc. Fri Apr 19 13:07:50 BST 2002 Olly Betts * Moved test poslist1 into correct place and renamed it to poslist2 since there's already a poslist1... Fri Apr 19 11:19:15 BST 2002 Olly Betts * poslist1 (when actually run!) reveals that Quartz fails to throw errors in this case. Disabled test for now, as I can't see why it fails to throw... Thu Apr 18 17:44:56 BST 2002 Olly Betts * Added poslist1 test as suggested by a TODO entry. Thu Apr 18 14:17:24 BST 2002 Olly Betts * buildall: Removed search for GNU make (as of automake 1.5 it's not needed for automake and we aim to have portable makefiles). Made buildall more portable. Thu Apr 18 14:16:18 BST 2002 Olly Betts * xapian-config.nodep is a generated file, so don't look for it in srcdir. Thu Apr 18 12:45:04 BST 2002 Olly Betts * Added bindings/php4/xapian/.cvsignore. Thu Apr 18 12:36:53 BST 2002 Olly Betts * Minor tweaks to "Makefile" section in HACKING. Thu Apr 18 12:26:21 BST 2002 Olly Betts * Yet more Makefile portability fixes; added section to HACKING summarising my recent experiences. Thu Apr 18 11:26:37 BST 2002 Olly Betts * Corrected the sense of the test in the previous check-in. Thu Apr 18 11:08:04 BST 2002 Olly Betts * Use case instead of echo/sed to replace dirname. Thu Apr 18 10:19:01 BST 2002 Olly Betts * Another Makefile portability tweak. Wed Apr 17 16:07:02 BST 2002 Olly Betts * bindings/php4/Makefile.am: Fixed a couple of problems with recent changes. Wed Apr 17 15:32:44 BST 2002 Olly Betts * Makefile portability improvements. Wed Apr 17 14:29:21 BST 2002 Olly Betts * Replaced uses of GNU make specific features with more portable ones. Wed Apr 17 12:43:07 BST 2002 Olly Betts * Update todo list. Wed Apr 17 12:41:03 BST 2002 Olly Betts * Removed BrightStation's logo from the documentation. Wed Apr 17 12:27:07 BST 2002 Olly Betts * xapian-config: Removed --uninst support - it's very hard to make it work reliably and we're better off directing our efforts towards improving the library than trying to get it working and keep it working. Wed Apr 17 10:39:02 BST 2002 Olly Betts * Fixed btreetest code to use new names "ord+" and "ord-" for datafiles; disabled LFSinsertdelete1 test as it's exactly the same as insertdelete1 (despite the comment above which suggests it tests files >2G). Mon Apr 15 17:14:22 BST 2002 Olly Betts * Fix a few OmDatabase::InternalInterface uses I'd somehow missed. Mon Apr 15 16:08:20 BST 2002 Olly Betts * Mark internal classes as @internal for doxygen; removed all uses of OmDatabase::InternalInterface as it's no longer needed. Mon Apr 15 15:42:47 BST 2002 Olly Betts * Updated TODO list. Mon Apr 15 2002 Sam Liddicott * Hacked around bindings and bindings/php to remove some SWIG workarounds. SWIG cvs + some new non-comitted patches is need still. Mon Apr 15 12:12:05 BST 2002 Olly Betts * stemtest: getopt fix. * stemtest.pl.in: output now: less verbose by default and coloured. Mon Apr 15 11:18:58 BST 2002 Olly Betts * Updated HACKING to say that automake 1.5 is required, and note that automake 1.6.1 is better than 1.6. Sat Apr 13 20:35:51 2002 James Aylett * Fixed stemtest getopt usage so it works again. Sat Apr 13 20:20:52 BST 2002 James Aylett * Fixed omtcpsrv getopt usage so it works again. Fri Apr 12 16:24:06 BST 2002 Olly Betts * Require automake 1.5. Fri Apr 12 12:11:57 BST 2002 Olly Betts * omtcpsrv: Namespace fixes. Fri Apr 12 12:25:42 BST 2002 Olly Betts * Fixed everything to use getopt rather than icky handparsing of options. Fri Apr 12 11:26:57 BST 2002 Olly Betts * Removed delve - it's going to be an example program. Thu Apr 11 18:09:35 BST 2002 Olly Betts * Command line argument improvements - added FIXMEs where getopt should be used. Thu Apr 11 17:01:44 BST 2002 Richard Boulton * Fixes to work with automake 1.6.1. I recommend using 1.6.1 rather than 1.6, since this fixes many bugs in 1.6. I havn't tested with 1.6 recently, but it is likely to report problems. Thu Apr 11 17:25:37 BST 2002 Olly Betts * Use GNU getopt. Thu Apr 11 15:06:15 BST 2002 Olly Betts * Updated to recommend automake 1.5, noting problem with automake 1.4 and that we'll probably soon insist on 1.5, and later autoconf 2.50. Also added notes on recommended and usable GCC versions. Thu Apr 11 14:23:44 BST 2002 Olly Betts * Cleaning up build system. Thu Apr 11 13:18:23 BST 2002 Olly Betts * Use AndPostList with boolean weights on the RHS instead of FilterPostList - this appears to fix a bug, but I suspect it's actually just moving it around. Will investigate later. Thu Apr 11 10:11:11 BST 2002 Olly Betts * Sorted out automake for php4 bindings. Wed Apr 10 14:44:50 BST 2002 Olly Betts * Removed a superfluous DEBUGLINE. Tue Apr 9 19:02:09 BST 2002 Richard Boulton * Fix some DEBUGLINE() macros in the matcher which had the first parameter missing. Tue Apr 09 17:50:44 BST 2002 Olly Betts * Removed stray bit of debug code. Tue Apr 09 17:05:09 BST 2002 Olly Betts * More debug tracing added. Tue Apr 09 10:48:42 BST 2002 Olly Betts * Disabled pthread support by default. Sat Apr 6 20:45:21 2002 James Aylett * Reordered some output generation in configure so it won't complain about directories not existing. (I don't understand what the problem is, but this does fix it.) Sat Apr 06 20:27:57 BST 2002 Olly Betts * Moved a few lingering traces of XML indexer stuff to indexer subdirectory. Sat Apr 06 17:37:02 BST 2002 Olly Betts * Removed -pedantic (read the gcc docs - it's doesn't turn on useful warnings) and fixed all the remaining compilation warnings in a non-debug build. Fri Apr 05 10:21:28 BST 2002 Olly Betts * Removed --enable-profiling, --enable-purify, and --enable-insure. They don't do anything which can't be achieved by passing environment variables and switches to configure (now documented in HACKING). Adding a separate switch for every profiling and code-quality tool out there isn't a sensible approach. Thu Apr 04 20:37:12 BST 2002 Olly Betts * Updated .cvsignore files. Thu Apr 04 20:25:41 BST 2002 Olly Betts * PTHREAD_CFLAGS was only being used for compiling C, not C++, which was causing builds to fail unless threading was disabled. This problem has been there a long time, but until recently was hidden by the check for fdatasync erroneously linking in -lrt which pulls in pthreads anyway (at least this is the situation on Linux). Thu Apr 04 20:06:00 BST 2002 Olly Betts * Removed XML indexer stuff from the main xapian library. All the removed bits are now in the indexer subdirectory, ready to be reassembled into a supplementary library. Thu Apr 04 15:43:43 BST 2002 Olly Betts * More debug tracing in the matcher. Thu Apr 04 14:17:10 BST 2002 Olly Betts * Added debug tracing to most of the matcher. Thu Mar 28 17:21:16 GMT 2002 Olly Betts * Give up trying to make internals private or protected in the header files in include - the consequences are just too ugly, and it's clear enough that they shouldn't be messed with except by the library itself. Wed Mar 27 10:24:26 GMT 2002 Olly Betts * Don't add "-lrt" to the link line unless it's actually needed for fdatasync(). Wed Mar 27 10:11:09 GMT 2002 Olly Betts * Fixed two problems in the matcher which were respectively causing problems with boolean filters, and with situations where OR or ANDMAYBE decayed to AND. Fri Jan 11 18:00:44 GMT 2002 James Aylett * Various build fixes for libxml2: define CHAR as needed, --enable-validation (off by default), check for and discard 'blank' text/cdata nodes as we encounter them Fri Jan 11 15:40:50 GMT 2002 Sam Liddicott * Added Large File Support in the same way it was added to GNU tar. (If it's good enough for them...) This is by means of autoconf/ac_sys_largefile which I'm told is built in to later versions of autoconf, and may possibly give us trouble redefining it for those versions... But we'll see about that when/if it happens. It seems to work fine here on some DB's which I had to stop growing cos they got too big; I'm now past the 2G boundry with no problems I guess we should still add overflow detection for 2^31 blocks. Ideas? I need some help on the btreetest.cc as I haven't yet worked out what it does; so while I've added a test, it doesn't yet test what it says it does. I have changed btreetest.cc so you can tell it where to dump the test DB Fri Dec 21 17:48:09 GMT 2001 Olly Betts * Fixed halflife calculation in OmBiasFunctor. Fri Dec 21 15:24:58 GMT 2001 Olly Betts * Added a temporary API to allow use of OmBiasFunctor. Fri Dec 21 12:58:23 GMT 2001 Olly Betts * Disable conversion of OR to AND/ANDMAYBE in matcher tree - there's a bug which sometimes manifests when there's a date filter and a threshold cutoff in omega, and results in just one match when there should be more. I don't believe the bug is actually in OrPostList but I've been tracking it for 4 days without success and turning off this optimisation seems to stop it occurring so will have to do for now. Thu Dec 20 17:41:04 GMT 2001 Olly Betts * matcher/multimatch.cc: added more percent_cutoff assertions. Thu Dec 20 13:41:41 GMT 2001 Olly Betts * Fixed incorrectly classified debug message; fixed compiler warning; more comments about matches_* with a percent_cutoff. Thu Dec 20 13:09:51 GMT 2001 Olly Betts * Better OmPostListIterator::get_description() (call get_description on internal->postlist). Thu Dec 20 12:42:55 GMT 2001 Olly Betts * Fixed assorted problems with omtcpsrv and co from recent change. Thu Dec 20 10:41:57 GMT 2001 Richard Boulton * In ./configure --help, correctly report muscat36 backend as defaulting to off. Thu Dec 20 10:36:18 GMT 2001 Olly Betts * Don't delete internal in ~OmWritableDatabase - ~OmDatabase does that for us (internal was zeroed after delete, so this was probably harmless) * Tweaked OmEnquire::get_description() and OmPostListIterator::get_description() to do less - there's a debug related bug somewhere and get_description() should be a non-intrusive method... Thu Dec 20 10:32:56 GMT 2001 Richard Boulton * Fix a couple of misquoted messages in configure.in. Tue Dec 18 23:22:00 2001 James Aylett * Use xapian.org where appropriate in documentation references Tue Dec 18 14:32:32 2001 James Aylett * Use xapian.org not sourceforge for schemas Mon Dec 17 18:47:08 GMT 2001 Olly Betts * Cured problems with string('x') caused by overzealous search and replace on my part. Mon Dec 17 16:44:31 GMT 2001 Olly Betts * Improved matches_estimated when a percent_cutoff is in effect. Sun Dec 16 18:09:28 GMT 2001 Olly Betts * You can now register a match decider functor by name with an OmEnquire object. It's not yet used for anything though. Sun Dec 16 17:31:08 GMT 2001 Olly Betts * omtcpsrv: simplified arguments - just list database directories and they'll be opened with the auto backend. Removed --im as it didn't work as advertised and nobody's noticed (as actually implemented it was useless). Sat Dec 15 14:10:32 GMT 2001 Olly Betts * Minor update to todo.xml. Sat Dec 15 13:43:47 GMT 2001 Olly Betts * More fettling of OmBiasFunctor stuff - still not ready for use yet... Tue Dec 11 13:06:08 GMT 2001 Olly Betts * Don't work out probabilistic weights for boolean bits of the query (rhs of FILTER and AND_NOT) which fixes incorrect percentage weights in filtered queries. Tue Dec 11 12:26:44 GMT 2001 Olly Betts * Added test singlesubq1 to keep an eye on can_replace_by_single_subq. Mon Dec 10 16:58:21 GMT 2001 Olly Betts * can_replace_by_single_subq shouldn't return true for OP_ELITE_SET since you can't call set_elite_set_size() on an arbitrary subquery. Thu Dec 6 15:02:05 GMT 2001 Richard Boulton * (omqueryinternal.cc, omtermlistiteratorinternal.h) Fix some compiler warnings (when compiling with no debug) due to methods which should return a value but simply contain "Assert(false);". Throw an exception in such methods instead (after the Assert). Mon Dec 03 11:20:42 GMT 2001 Olly Betts * New BiasPostList - not yet enabled as it needs more work. Mon Dec 03 11:16:44 GMT 2001 Olly Betts * quartzdump: give syntax error if no tables specified. Thu Nov 29 14:10:43 GMT 2001 Olly Betts * ExtraWeightPostlist wasn't handling prune correctly. Thu Nov 22 13:46:59 GMT 2001 Olly Betts * Fixed segfault when percentage_cutoff emptied the proto-mset. Thu Nov 22 12:27:49 GMT 2001 Olly Betts * Enhanced test emptyquery1. Fri Nov 16 15:32:09 GMT 2001 Olly Betts * Added OmQuery::is_empty() method. Thu Nov 15 15:36:07 GMT 2001 Olly Betts * Updated todo list. Thu Nov 15 13:03:05 GMT 2001 Olly Betts * Fixed percent_cutoff problems. Wed Nov 14 12:05:44 GMT 2001 Olly Betts * Empty OmQuery() now matches no documents (rather than causing an exception). Thu Nov 08 18:23:21 GMT 2001 Olly Betts * SIGSTKFLT isn't portable, so added #ifdef checks for it. Wed Nov 07 15:34:29 GMT 2001 Olly Betts * Fixed 2 GCC 3.0 warnings in muscat36 backend. Wed Nov 07 14:21:47 GMT 2001 Olly Betts * Made doc counts returned from percentage cutoff matches more accurate. Wed Nov 07 12:30:32 GMT 2001 Olly Betts * GCC 3.0 fixes. Tue Nov 06 11:16:42 GMT 2001 Olly Betts * Matcher now calculates percentages like Omega does (or did as I'm about to remove that code from Omega), rather than as a percentage of the theoretical maximum possible weight. The old way generally gives disappointingly low values, and by pushing the percentage code down into the matcher, it can be used to optimise the query. Tue Nov 06 11:13:06 GMT 2001 Olly Betts * Quick fix for problems with null OmQuery-s. Mon Nov 05 15:52:55 GMT 2001 Olly Betts * Added signal handling to testsuite - if a testcase generates a signal it is caught and reported, then the testsuite continues with further testcases. Wed Oct 31 14:26:59 GMT 2001 Olly Betts * Removed needless complications in matcher when a weight threshold has been set. Tue Oct 30 16:50:46 GMT 2001 Olly Betts * Removed superfluous lines from configure.in; fixed warning from automake 1.5. Mon Oct 29 11:54:36 GMT 2001 Olly Betts * Changed matcher to form proto-mset using a min-heap (as described in "Managing Gigabytes", 2nd ed., pp 211-213). Compared to the previous "nth-element" approach, this uses about half the memory, allows the min-weight based matcher optimisations to work sooner, and should be inherently faster (not yet benchmarked though). The code's slightly simpler too. Mon Oct 29 11:53:38 GMT 2001 Olly Betts * Fixed remote backend to pass match_cutoff setting across. Fri Oct 26 13:43:08 BST 2001 Olly Betts * Reserve size needed for mset vector. Thu Oct 25 18:00:54 BST 2001 Olly Betts * Fixed a couple of stray references to the old sleepycat backend. Tue Oct 23 18:19:32 BST 2001 Olly Betts * More cleaning up of MultiMatch. Tue Oct 23 16:14:27 BST 2001 Olly Betts * Removed RemotePostList - it was an experimental idea which proved to be too slow even on a fast network. Cleaned up code where hooks were bodged in for it. Tue Oct 23 13:27:12 2001 James Aylett * Added documentation of the test system (albeit brief). Also mentioned the autotools book in HACKING. Tue Oct 23 12:07:59 BST 2001 Olly Betts * Updated .cvsignore files. Tue Oct 23 11:29:47 BST 2001 Olly Betts * Code tidying while investigating sporadic fails from quartztest. Mon Oct 22 17:42:30 BST 2001 Olly Betts * Minor fettles to quartztest: fixed warnings, whitespace tidying, use mkdir(...) rather than system("mkdir ...") Mon Oct 22 16:41:12 2001 James Aylett * Renamed project to Xapian. Mon Oct 22 14:22:00 BST 2001 Olly Betts * Fixed non-ISO C++ code so Xapian will compile under GCC 3.0 (and also RedHat's "GCC 2.96"). Mon Oct 22 11:21:45 2001 James Aylett * Altered omseek-config and the AC m4 macro to make uninst executables link to the right version of the library Mon Oct 22 10:38:20 2001 James Aylett * Minor fixes to enable build (and test) under Solaris. Fri Jun 22 13:24:59 2001 Sam Liddicott * Added some explicit type casts in xmlindexer and quartz backend to help gcc2.96 compile. Thu Jun 21 11:05:31 2001 James Aylett * HACKING updated to (a) remove inaccurate statements about copyright assignment, and (b) talk about developer write access to CVS. Mon Jun 11 13:24:43 2001 James Aylett * pthread support detected using an automake macro. Should be more portable as a result. * We need GNU make: buildall now tries to find it. Mon Jun 11 12:07:00 2001 Hein Ragas * Modified QuartzWritableDatabase::do_add_document and QuartzWritableDatabase::do_replace_document to leave the PositionList empty for a term with no positions associated with it. Mon May 29 12:17:00 2001 Hein Ragas * Modified QuartzPostList::add_entry to allow for adding of entries in the middle of the postlist, not only at the end. Mon May 28 12:00:00 2001 Hein Ragas * Fixed a bug in replace_document for Quartz, added a test to ensure proper working of the fix. Fri Apr 27 15:16:10 2001 James Aylett * Project name change to Omseek. Wed Apr 11 09:06:37 BST 2001 Chris Emerson * Implemented deleting of items from postlists, and added some tests to check that it works properly. * Fixed a potential memory leak in QuartzPostList if an exception was thrown from the constructor. * BackendManager now sets the quartz_logfile setting, to make the logs available from the testsuite. * Added mention of quartz_logfile to docs/omsettings * Removed a bad assert from InMemoryDatabase::get_doclength() Mon Apr 9 21:48:18 BST 2001 Chris Emerson * Added #include to testutils.cc Fri Mar 30 17:37:24 BST 2001 Olly Betts * Added extra/.cvsignore Fri Mar 30 17:22:13 BST 2001 Olly Betts * Disabled allocation checking of new[] and delete[] since some STL implementations use them which leads to leaks being reported where none exist. This is addressable longer term... Thu Mar 29 19:05:46 BST 2001 Richard Boulton * Add "extra" directory to om source tree, to hold extra libraries for use with omsee, which aren't part of the core. * Put a query parser into "extra". This is roughly the parser from omega. Needs some work: in particular, it needs to be made reentrant. * Added extra/ directory to top level Makefile.am and configure.in. Added AC_PROG_YACC to Makefile.am * Add includes of required header files to omquery.h. Wed Mar 28 17:15:22 BST 2001 Richard Boulton * Modifications to OmQuery. Remove the isbool flag: there is no longer any need for the concept of a "pure boolean query". The same effect as was obtained by setting isbool can be obtained by setting the match_weighting_scheme parameter to bool. * Also, undefined queries may no longer be used when building up composite queries; the correct behaviour for this is hard to define and implement and harder to document, and removing this removes lots of special case code. * Updated network query passing code. * Remove special cases for bool weighting in localmatch and irweight. * Updated omsettings docs. Updated comments in omsetting.h. * Updated todo.xml * Incremented network protocol version. * Added test_emptyop1, which checks what happens when an attempt is made to use an empty list of subqueries to build up a query, and then use the query. * Remove test_boolsubq1: no such thing as a boolean query now, so no need to test what happens when one is used. * Updated testsuite to use "match_weighting_scheme" setting, rather than calling OmQuery::set_bool(). Wed Mar 28 15:05:46 BST 2001 Chris Emerson * Fixes to InMemoryDatabase: + do_open_post_list returns an EmptyPostList rather than an assertion error if the term doesn't exist + Fixed doccount(), which wasn't decrementing on delete_doc() + Remove terms from the database when they have no more postings. + Implement collection frequencies, and run collfreq tests for inmemory. Wed Mar 28 14:24:38 BST 2001 Richard Boulton * Set elite set size to max(10, sqrt(number of subqueries)) by default. This is rather more useful than the old default of 0. Wed Mar 28 10:25:35 BST 2001 Chris Emerson * QuartzDatabase now implements replace_document(), and delete_document() now removes keys/attributes as well. However, postlist entries are not yet correctly removed, so this will cause problems. * Added a test for deleting/replacing documents, which passes. Tue Mar 27 17:31:58 BST 2001 Chris Emerson * QuartzAttributes now has a method to delete a document's attributes, and QuartzRecordManager has a replace_ method. (But the code which uses these isn't in this commit). Thu Mar 22 15:58:08 GMT 2001 Richard Boulton * Change definition of OmQuery::is_defined(), so that elite set queries are undefined until a size is specified for the set. Wed Mar 21 14:29:04 GMT 2001 Chris Emerson * Implemented delete_document and replace_document in inmemory database. Wed Mar 21 12:39:13 GMT 2001 Olly Betts * Tweak to docs/quickstart.html. Wed Mar 21 02:50:19 GMT 2001 Olly Betts * Entirely removed sleepcat backend and all references to it. * Disable muscat36 backend by default. Tue Mar 20 18:47:12 GMT 2001 Olly Betts * open_document() now takes a lazy flag - if not set we need to check that the docid given actually exists. * heavy_duty flag now a bool instead of an int. Mon Mar 19 19:16:34 GMT 2001 Olly Betts * Added test getdoc1 to check exceptions are thrown for out-of-range docids (currently they aren't for quartz and muscat36 backends). Mon Mar 19 17:17:31 GMT 2001 Olly Betts * New simpler implementation of leak detection in testsuite. Currently doesn't support malloc/calloc/realloc/free. Mon Mar 19 16:46:16 GMT 2001 Richard Boulton * Further small modification to omsee-config: will now look in .libs subdirectories, too. Mon Mar 19 15:57:18 GMT 2001 Richard Boulton * Update omsee-config to work when a prefix is specified that points directly to the directory with the library, rather than expecting the library to be in a subdir "libs/". (libs/ is still used if it exists). * Update omsee.m4, to use omsee-config even when using an uninstalled version of omsee. This in turn fixes problems using uninstalled versions of omsee with STLport. Fri Mar 16 18:14:52 GMT 2001 Richard Boulton * Updated licenses, to include year 2001. Fri Mar 16 15:40:49 GMT 2001 Richard Boulton * Fix up small bug in quartztest causing it to fail for lack of an expected exception. Initialise values in quartz_positionlist.cc when position list is not present. Thu Mar 15 17:40:38 GMT 2001 Richard Boulton * Make timeout absolute, rather than cumulative, when fetching multiple documents from database: if two nodes fail, the total timeout should still be that specified, not twice it. * Make the timeout set by SocketClient::set_query() get reset correctly if an exception happens (which used to prevent SocketClient::get_mset() ever getting called). Thu Mar 15 17:06:51 GMT 2001 Olly Betts * Oops, checked in too much - backing out the wrong stuff. Thu Mar 15 16:30:14 GMT 2001 Olly Betts * Include autoconf/definedir.m4 in tarball. Thu Mar 15 16:06:02 GMT 2001 Richard Boulton * Updated network protocol number to reflect change adding OP_ELITE_SET. Thu Mar 15 15:31:35 GMT 2001 Richard Boulton * QuartzPositionList should no longer complain if positional information isn't available for a particular term / document combination. * Updated todo. Thu Mar 15 13:55:53 GMT 2001 Richard Boulton * Removed OmDocument::set_wdf() and OmDocument::add_term(). Replaced with OmDocument::add_term_nopos(), which adds a term without specifying positional information, taking an optional wdfinc parameter. Updated testsuite correspondingly. Thu Mar 15 13:14:10 GMT 2001 Richard Boulton * Update TODO Wed Mar 14 17:51:40 GMT 2001 Richard Boulton * Added new operator OP_ELITE_SET, which replaces match_max_or_terms option. Can now specify exactly which terms to apply max_or_terms to. max_or_terms is obsolete: an error will be thrown if an attempt is made to use it. Wed Mar 14 15:56:20 GMT 2001 Richard Boulton * Added test for and implementation of multiple XOR queries. * Fix small bugs with get_termfreq_est() for xor and andnot postlists. Mon Mar 5 16:08:01 GMT 2001 Chris Emerson * Catch exceptions within the loop in SocketServer - exceptions should normally not kill the server. This means that that a client still works after eg an OmDocNotFoundError, which was causing problems before. Fri Mar 2 18:15:47 GMT 2001 Richard Boulton * Add a new query operator, OP_WEIGHT_CUTOFF, which returns only those documents from a query which have a weight greater than a specified cutoff value. Also added OP_PERCENT_CUTOFF, but this is not yet implemented. * Added test of new cutoff function, cutoff2. * Updated network protocol to pass new queries. Increased protocol version number (to 10). * Added set_cutoff() function to OmQuery, to set cutoff parameter. * Updated TODO. * Remove unused member "PostList * postlist" of LocalSubMatch. Thu Mar 1 12:04:53 GMT 2001 Richard Boulton * Updates to HACKING. Wed Feb 28 18:42:47 GMT 2001 Richard Boulton * Fixes to neaten up configure output, and to test for the Perl Text::Format module, thanks to James Aylett (patch slightly modified, so if it doesn't work it's probably my fault). * configure.in checks for presence of ftime() and gettimeofday() * Added OmTime, a class to deal with times to an accuracy of microseconds, or whatever the best accuracy the system supports is. * Use OmTime in network code instead of time(NULL). Wed Feb 28 14:23:11 GMT 2001 Richard Boulton * Merge common code from OmSocketLineBuf::wait_for_data() and OmSocketLineBuf::do_readline() into OmSocketLineBuf::attempt_to_read(), and thus fix bug in wait_for_data() when 0 bytes returned from read(). Tue Feb 27 18:40:33 GMT 2001 Richard Boulton * Fixes to remote matcher code to cope better with failure of submatchers: - Timeout for all submatches now correctly start at same time. * Added more extensive testing of above code, involving adding new parameters to inmemory to cause abort()s at various stages of the match. * Remove obsolete (and unused) method SocketServer::read_global_stats() * Errors are now generated from strings by using omerrortypes.h with suitable #defines before including it. Updated todo accordingly. * Extend scope of try{} clause in socketserver, so that SocketServerFinished exception never escapes. * Default timeout in progserver increased to 30000. * Default timeout in tcpserver increased to 15000. Mon Feb 26 23:51:23 GMT 2001 Richard Boulton * Split query generation into stages: make new query, add subqueries, then finalise. Add private methods to OmQuery reflecting this, and convert constructors into template methods, allowing any iterator to be used for constructing queries. Removed reference to from omquery.h * Add omqueryinternal.cc, containing implementation of query internals. (surprise!) * OmQuery::Internal now has some helper functions to determine the properties of each particular query. These should be converted into a lookup table, and the remaining hard-coded properties (for AND_MAYBE, AND_NOT and FILTER) factored out. * window property removed from constructor. This can now be set by a separate call, to "OmQuery::set_window()" * Added a deleter_vector class, to store subquery pointers in a more exception-safe way. * Represent undefined queries by the new OP_UNDEF operation, rather than a dedicated flag - cleaned up some logic. * Some modifications to XOR handling: should now behave like OR and AND - doesn't need to be binary. (*untested*) * Fixes to serialisation code in socketcommon.cc to work with new OmQuery::Internals - this should really be done in OmQuery::Internal. * One tiny fix in tcpclient.cc - an &fdset was missed for exception conditions in a select() call. * Testsuite modified and expanded to check changes to OmQuery. Mon Feb 26 18:20:16 GMT 2001 Chris Emerson * Fixed some compiler warnings reported by James Aylett. Mon Feb 26 14:27:09 GMT 2001 Chris Emerson * Avoid waiting for a timeout when closing a SocketClient. Fri Feb 23 14:38:09 GMT 2001 Chris Emerson * Updated todo.xml Thu Feb 22 18:14:41 GMT 2001 Chris Emerson * OmRegexFilterNode has an output for non-matching strings as well as matching. "out" output renamed to "matching". Thu Feb 22 16:56:33 GMT 2001 Chris Emerson * Fixed a bug in the fetch() bits: requesting documents at the same time from different OmMSet instances could cause a document to disappear from the cache at the wrong moment. Thu Feb 22 15:39:49 GMT 2001 Chris Emerson * Updated todo. Thu Feb 22 12:14:12 GMT 2001 Richard Boulton * Some small changes in quartz to improve exception safety and error checking. * Remove unwanted OmExpandWeight::get_expand_k() method. Wed Feb 21 19:02:44 GMT 2001 Chris Emerson * Overhauled the OmMSet::fetch() etc. methods. Documents are requested when fetch() is called, but are only fetched (all at once) when the first get_document() is called. Wed Feb 21 19:30:20 GMT 2001 Richard Boulton * Add an errorhandler member to MultiMatch, and remove it from various calls which used to pass it about. * Add an EmptyMatch object, which always returns an emptypostlist. * Implement errorhandlers at start of query for initially down nodes. Improve test for errorhandlers to cover many more cases. * Add many debug messages to error handling code. Wed Feb 21 14:33:50 GMT 2001 Chris Emerson * Use a deque<> directly instead of a queue, due to conflict with Solaris headers. * Split the collect_doc loop into a seperate function * SocketClient should be more robust against request_doc() being used without collect_doc(). Tue Feb 20 18:01:13 GMT 2001 Chris Emerson * SocketClient implements a queue/cache system which means that collect_doc() doesn't need to be called in the same order as request_doc(). Mon Feb 19 15:43:49 GMT 2001 Chris Emerson * Converted btree code to use new/delete instead of [mc]alloc/free. Mon Feb 19 13:52:23 GMT 2001 Chris Emerson * Added new test collapsekey2 designed to work with muscat36 databases, which have different key handling. Added two new categories of tests to cope with this. * Adjusted BackendManager's key generation, and updated test_specialterms1() accordingly. Fri Feb 16 17:26:59 GMT 2001 Chris Emerson * Implemented a test for keep-alives * Added "-tNNNN" option to omprogsrv to pass a timeout value in. * Added get_network_database() in apitest to set the timeout. Fri Feb 16 16:13:47 GMT 2001 Chris Emerson * Incremented the remote protocol version, since a new message type has been added. Fri Feb 16 15:55:31 GMT 2001 Chris Emerson * Added an OmDatabase keep_alive() method to gently prod any remote databases. Applications can use it to avoid the remote servers timing out between queries. Not properly tested yet... Thu Feb 15 19:05:24 GMT 2001 Chris Emerson * The remote server now supports a seperate timeout used while idle, rather than actually servicing a request from the client. Options --idle-timeout and --active-timeout added to omtcpsrv, and --timeout sets both timeouts. * Added a documentation comment or two. Wed Feb 14 18:43:00 GMT 2001 Richard Boulton * In Muscat3.6 backends, don't read the key from the keyfile unless keyno is 0. Tue Feb 13 13:57:34 GMT 2001 Andy MacFarlane * Added parameter expand_k in omsettings in order to change value of weighting in expand process. Tue Feb 13 13:25:45 GMT 2001 Chris Emerson * Network timeouts now apply to write() operations as well as read(). * SocketLineBuf::do_writeline() now correctly deals with EAGAIN. * SocketServer has new method writeline() which handles write access to the OmLineBuf. Mon Feb 12 12:35:41 GMT 2001 Richard Boulton * Make OmPositionListIterators and any other appropriate iterators (postlist, termlist) have a default constructor allowing them to be declared uninitialised. Mon Feb 12 10:51:41 GMT 2001 Chris Emerson * Updated todo.xml Thu Feb 8 17:59:44 GMT 2001 Chris Emerson * Moved omnodepad.h from include/om to indexer/indexgraph/ * Updated todo.xml Thu Feb 8 17:35:45 GMT 2001 Chris Emerson * Updated todo.xml Thu Feb 8 17:00:02 GMT 2001 Chris Emerson * Quartz now has a metafile which for now has a magic string and a version number. * sys_open_to_read() and delete_file() exported from btree.cc. The latter was renamed to sys_unlink_if_exists(). * Include btree_types.h from btree_util.h Wed Feb 7 17:33:00 GMT 2001 Chris Emerson * Fix to InMemory databases: terms can be added even if they don't have any positions. (Was causing adddoc2 to fail). Tue Feb 6 18:06:13 GMT 2001 Richard Boulton * Rename OmMSet::fetch_items() to fetch(). Add an overloaded fetch() method taking a single iterator, to fetch a single item. * Fix some documentation comments. Mon Feb 5 19:16:45 GMT 2001 Richard Boulton * Update TODO Mon Feb 5 19:12:39 GMT 2001 Richard Boulton * Test behaviour of OmDocument methods add_term(), set_wdf(), remove_posting() and remove_term(). Fails for inmemory databases. Mon Feb 5 17:46:16 GMT 2001 Chris Emerson * Modified the behaviour of timeouts during a match. Internally, an absolute timeout time is set from start_match(). Now remote nodes should timeout at NOW + remote_timeout, rather than waiting remote_timeout milliseconds for each read(). Needs some more testing. Mon Feb 5 17:21:52 GMT 2001 Richard Boulton * Fix a missing #include in socketcommon.h Mon Feb 5 17:15:46 GMT 2001 Richard Boulton * Sort generated todo lists. Fri Feb 2 17:44:54 GMT 2001 Richard Boulton * Add an OmDocument::add_term() method. * Remove an unwanted check that wdf's are greater than 0: wdf of 0 _is_ allowed. Fri Feb 2 15:04:08 GMT 2001 Chris Emerson * Hopefully, a fix for segfaults/assertions when network errors happen halfway through a match, when handled by OmErrorHandler objects: give the place-holder EmptyTermLists weighting objects. Thu Feb 1 19:03:10 GMT 2001 Richard Boulton * Fixes to OmDocument interface: add parameters specifying the changes to be made to the wdf to add_posting and remove_posting, properly implement remove_posting and remove_term, including throwing of exceptions, and add a set_wdf() method to set the wdf to an absolute value. Corresponding modifications to OmDocumentTerm. * Fix commented out errorhandler code in multimatch.cc, so it still compiles. * Add a check to avoid division by zero in bm25weight.cc Thu Feb 1 15:59:30 GMT 2001 Richard Boulton * Add a missed #include to omqueryinternal.h Thu Feb 1 14:44:04 GMT 2001 Richard Boulton * Add some error handler code, with a "#if 0"ed out comment, to multimatch.cc Wed Jan 31 15:45:16 GMT 2001 Chris Emerson * Remote servers should close down more gracefully when the client closes down in the middle of a request. Tue Jan 30 16:52:05 GMT 2001 Richard Boulton * Removed unneeded #includes of STL headers from API headers. * All #includes of files which are not installed use "" rather than <>. This means all #includes of OM files except for those which are in example programs (and hence might be compiled against the installed library). "" search paths are a superset of <> search paths: hence this should ensure that the om headers work however they are used. * Moved supplied OmExpandDecider subclasses into include/om/omexpanddecider.h * Remove om_termname_list from API: not used except by code which displays it, and in testsuite. Tue Jan 30 12:45:22 GMT 2001 Chris Emerson * Removed #include from omstem.h Tue Jan 30 11:09:29 GMT 2001 Chris Emerson * OmStem::get_available_languages() now returns a string rather than a vector. Languages are space-separated. Updated apitest. * Added definition of RTLD_DEFAULT to internaltest.cc Mon Jan 29 16:11:15 GMT 2001 Chris Emerson * OmIndexerMessage's copy-on-write slightly more careful. * Improved debugging in OmIndexerNode * Fixed a bug in the termlistadd node - it tried to append to a non-vector. Fri Jan 26 16:21:09 GMT 2001 Olly Betts * indexerxml.cc: Removed some dead code. Fri Jan 26 16:11:13 GMT 2001 Chris Emerson * Added omindexerdescinternal.h to the Makefile Fri Jan 26 15:50:32 GMT 2001 Richard Boulton * Move OmQuery definition into a separate header file. Fri Jan 26 15:46:42 GMT 2001 Richard Boulton * Move OmQuery::OP_LEAF out of public visibility, by taking it out of the enum, making it a static const member of OmQuery::Internal, and introducing an OmQuery::Internal::op_t to store query operators in internally. We lose the ability for the compiler to warn us if we forget to check for a particular operator in a switch statement, but this can't really be avoided. Fri Jan 26 13:49:33 GMT 2001 Chris Emerson * Added get_output_{node,pad} to OmIndexerDesc * Implemented and testes OmNodeInstanceIterator * Implemented OmIndexerBuilder::build_from_desc, which somehow hadn't been. indextest now uses it. Thu Jan 25 18:47:08 GMT 2001 Olly Betts * Fixed various .cvsignore files (omus -> omsee, and bindings/java/.cvsignore which seemed to have been copied from the top level one at some point). * Fixed bug in OrPostList when used in a pure boolean context (uninitialised variables). * tests/internaltest.cc: removed unused reference to getopt.h. * tests/stemtest.pl.in: removed lots of bogus semicolons after closing braces. Thu Jan 25 17:53:08 GMT 2001 Richard Boulton * Turn debugging messages (OM_DEBUG_TYPES) off by default. * Add todo items for release to pages generated for website. Thu Jan 25 15:11:14 GMT 2001 Richard Boulton * Add a couple of documentation comments: we need many more of these. No method, and certainly no class, in the API should be without an explanatory comment (not least so that they're accessible from the doxygen browser). Thu Jan 25 14:51:55 GMT 2001 Chris Emerson * Hide the internals of OmIndexerDesc, and adding member functions to do all the necessary operations (not all yet implemented). * Indexer internals mostly deal with OmIndexerDesc::Internal * Removed '#include ' from omindexerdesc.h Thu Jan 25 13:45:49 GMT 2001 Richard Boulton * When setting up an RSet, allow documents to be referenced by OmMSetIterator, for convenience. * Allow OmMSetIterators and OmESetIterators to be created without initialising, also for convenience. * Include CFLAGS for STLPORT in the flags produced by omsee-config. * Change several more missed "omus"s to omsee. Thu Jan 25 13:50:06 GMT 2001 Chris Emerson * Changed a mention of libomus in netprogs/Makefile.am to libomsee Thu Jan 25 12:33:46 GMT 2001 Richard Boulton * Build only the API docs when making dist / install. Full source docs only get built if explicitly asked for. Thu Jan 25 11:36:39 GMT 2001 Richard Boulton * Project name changed to Omsee. Ramifications from a technical viewpoint are: - library name changed from libomus.* to libomsee.* - libomus-config renamed to omsee-config - Autoconf macro file libomus.m4 renamed to omsee.m4, macro name OM_PATH_LIBOMUS changed to OM_PATH_OMSEE and macro now defines OMSEE_CFLAGS and OMSEE_LIBS rather than LIBOMUS_CFLAGS and LIBOMUS_LIBS. configure arguments changed name, also. Wed Jan 24 15:57:10 GMT 2001 Richard Boulton * Improve test of OmMSetIterators equality comparisions. * Update TODO Wed Jan 24 15:11:11 GMT 2001 Chris Emerson * Renamed OmNodeConnection to OmNodePad. The old name was confusing. * Added OmPadIterator, and OmNodeDescriptor::{in,out}puts_{begin,end}. Also implemented OmNodeDescriptor::get_type() * Added output function for OmPadIterator * Added test for OmPadIterators Tue Jan 23 19:01:29 GMT 2001 Richard Boulton * Remove OmBatchEnquire from system: it may return at a later date, but for now it is simply out of date and a maintainance liability, and gives no significant advantage. Code now exists in ombatchenquire.h in CVS, but is not part of build process. * Make OmEnquire and OmMSet have reference counted internals: this introduces a further layer of indirection, but tidies up things greatly. * Remove get_docs() and get_doc() methods from OmEnquire. get_doc(docid) is catered for by OmDatabase::get_document(docid). Added OmMSetIterator::get_document() to replace get_doc on a MSetIterator. Added OmMSet::fetch_items() to replace get_docs(): it prefetches the documents (or just those specified by some MSetIterators into a cache in the Mset). * OmMSet internals now have a reference to the creating OmEnquire object: this is set up after the mset returns from the matcher. If the reference is null, the Mset was created standalone, and get_doc methods will fail. * OmMSetIterators now have a reference to the MSet, instead of a percent_factor stored. This allows the percent_factor to be lazily calculated, and also allows get_doc to work. * Add get_rank() method to OmMSetIterators. * Improve introspection on OmDocument, and fix a bug with assignment of OmDocument (wasn't assigning most of the internals). * Add a missing std:: on a string in omstopwordnode. * Fixed several documentation comments. * Add some more debugging to quartz. * Update TODO. * Add test_fetchdocs1 to apitest. Disable test_batchquery1. * Remove sign comparison error in VectorTermList. Tue Jan 23 16:24:04 GMT 2001 Olly Betts * No longer compile with -ansi under gcc - it causes problems by preventing Linux system headers defining various functions we need. * testsuite/testsuite.cc: when reporting exceptions, display exception's errno value if set. Tue Jan 23 15:13:58 GMT 2001 Chris Emerson * Killed OmIndexerBuilder::NodeType. Now use OmNodeDescriptor in its place, getting rid of another vector usage in the API. * OmNodeDescriptor adjusted for its new role: internals are refcounted, and some query as well as setting functions. * Cast the fourth argument to getsockopt() to void *. On Solaris that argument is char *. Tue Jan 23 11:24:13 GMT 2001 Olly Betts * Tiny tweak to da_document.cc. Fri Jan 19 18:36:15 GMT 2001 Chris Emerson * Removed get/set vector methods from OmSettings * Remote/prog arguments now passed in a string separated be spaces, not a vector. * split_words() moved from netutils.h to utils.{h,cc} * Some unnecessary #include lines removed from API headers * Removed get_config_vector() from OmIndexerNode * OmConstantNode no longer handles vector values, and OmStopWordNode and OmSelectItemsNode use space-separated values instead. Thu Jan 18 17:31:55 GMT 2001 Chris Emerson * Removed mentions of std::vector from OmIndexerMessage, and updated the relevant bits. * Fixed a bug with the copy-on-write parts of OmIndexerMessage. Thu Jan 18 17:09:43 GMT 2001 Richard Boulton * Fix to btreetest.cc: shouldn't fail if test data files are not available. * Fix to multimatch.cc: clamp hits values to number of documents matched after collapsing and match functors, rather than before. Thu Jan 18 14:13:21 GMT 2001 Richard Boulton * Fix error messages thrown by quartz when a database doesn't exist / already exists and isn't to be overwritten. * Make quartz clean up an old database directory, if database_allow_overwrite is specified, so that old base files don't confuse things. Wed Jan 17 18:18:50 GMT 2001 Richard Boulton * Added all used toplevel directories to DIST_SUBDIRS Wed Jan 17 18:13:50 GMT 2001 Richard Boulton * Martin committed changes to btree.cc which should fix some random problems experienced with quartz. * Added in a test framework for the btree code, which exhibited the bug fixed by martin until updating to his fixed version. Wed Jan 17 16:10:02 GMT 2001 Chris Emerson * Moved the socklen_t definition so that tcpclient.cc could see it. Tue Jan 16 20:35:18 GMT 2001 Richard Boulton * Fix creation of quartz databases in backendmanager: all tests should now pass. Tue Jan 16 20:28:46 GMT 2001 Richard Boulton * Fix quartztest so that the tables / databases get created. Implement new test "create1" to check that creation of databases works as specified. * Fix test for whether we are allowed to overwrite a database. * Implement much better logging from quartz when making new databases. * Clean up an error message from btree.cc Tue Jan 16 19:24:49 GMT 2001 Richard Boulton * Don't display messages about allocation failures in the first iteration: if the failures go away when repeating, we're not interested. Tue Jan 16 18:28:03 GMT 2001 Richard Boulton * Add two new OmSettings, for use when opening databases: database_create and database_allow_overwrite. The idea is that databases will only be created if database_create is specified, and that when they are being created an exception will be thrown if there's an existing database unless database_allow_overwrite is specified. * Implemented database_create and database_allow_overwrite for Quartz, which is the only relevant type for now. Note that this breaks the testsuite, quite badly. * Add OmDatabaseCreateError, which is thrown when creating a database fails. Tue Jan 16 17:08:47 GMT 2001 Chris Emerson * Fixed a typo in -ldl detection Tue Jan 16 15:15:30 GMT 2001 Richard Boulton * Remove OmNeedRecoveryError, and quartz's quartz_perform_recovery parameter. Quartz now always performs recovery if needed: there is no need for this added complication. * Update TODO Tue Jan 16 14:25:03 GMT 2001 Chris Emerson * Changed references to SIGCLD to SIGCHLD as it's more portable. Tue Jan 16 14:02:34 GMT 2001 Chris Emerson * Added check for whether -ldl is necessary. Tue Jan 16 11:51:25 GMT 2001 Chris Emerson * Added compatibility bits for early libxml1 versions. Mon Jan 15 18:18:01 GMT 2001 Chris Emerson * Removed use of hstrerror, which isn't portable. Mon Jan 15 18:02:42 GMT 2001 Richard Boulton * Fix assertion which was the wrong way round in multimatch.cc Mon Jan 15 17:46:13 GMT 2001 Richard Boulton * Fix initialisation of Btree_base::sequential when creating database. Mon Jan 15 15:43:46 GMT 2001 Chris Emerson * Renamed some uses of XML node structure for libxml2 compatibility. Mon Jan 15 15:35:50 GMT 2001 Richard Boulton * Add some fixes to sequential access to btrees from Martin. Mon Jan 15 12:23:02 GMT 2001 Richard Boulton * Set matches_* to the known value of the number of hits if we have been unable to return as many hits as were requested, and therefore know the exact number. * Update test_matches1() to check this works correctly. Passes. Fri Jan 12 17:45:27 GMT 2001 Richard Boulton * Implement get_doclength() for QuartzDatabase * Remove unused parameter from QuartzRecordManager::add_record() Fri Jan 12 17:14:16 GMT 2001 Chris Emerson * Fixed MultiAllTermsList, which had stopped working. Fri Jan 12 15:32:34 GMT 2001 Richard Boulton * Add test to apitest (postlist6) that doclengths got from postlists are the same as those from databases. Fails for Quartz for the moment. * Add test to quartztest (disktable3) to try and bring out a bug in adding to tables. Fri Jan 12 15:20:09 GMT 2001 Richard Boulton * Fix STLport macro so that it will accept an STLport installation with foo/include/stlport and foo/lib instead of foo/stlport and foo/lib. Fri Jan 12 14:04:37 GMT 2001 Chris Emerson * Fixed buglet in configure.in which produced a bogus warning about regex libraries. * Added an AC_MSG_RESULT corresponding to an AC_MSG_CHECKING for the libxml flags Fri Jan 12 13:18:07 GMT 2001 Chris Emerson * Fixed skip_to() in QuartzAllTermsList Fri Jan 12 12:52:57 GMT 2001 Richard Boulton * Turn debugging off in btree.cc: accidentally committed a version with lots of verbose debugging on. Fri Jan 12 11:16:17 GMT 2001 Olly Betts * glibc 2.2 needs `#define _GNU_SOURCE' to give us RTLD_NEXT. * C++ comments changed to C comments in malloccheck.c. Thu Jan 11 16:42:07 GMT 2001 Olly Betts * Removed unnecessary `#include "alltermslist.h"' from d[ab]_database.h. Wed Jan 10 14:28:10 GMT 2001 Olly Betts * Updated various .cvsignore files. Tue Jan 09 19:03:12 GMT 2001 Olly Betts * Tidied up dead code from OmAllTermIterator. Tue Jan 09 18:41:21 GMT 2001 Olly Betts * OmAllTermsIterator merged into OmTermIterator. * When iterating over all terms, skip_to() doesn't set at_end() when it skips off the end. Fixed except for quartz and added regression test (allterms3). Tue Jan 9 18:14:04 GMT 2001 Richard Boulton * Add some extra debugging code into btree code in quartz. Tue Jan 9 17:22:12 GMT 2001 Richard Boulton * Make skip_to() work (ie, do nothing) on OmTermIterators, when the term iterator is at_end() already. Tue Jan 9 13:32:08 GMT 2001 Richard Boulton * Updates to make the quartzdump utility more useful. * Added new test to test cursor behaviour in quartz. Tue Jan 9 11:31:26 GMT 2001 Richard Boulton * Remove an item from TODO Tue Jan 9 10:27:35 GMT 2001 Richard Boulton * Add a missing \ in tests/Makefile.am Mon Jan 8 19:03:42 GMT 2001 Richard Boulton * Increment format number in quartz/btree_base.cc. This isn't actually due to a change in the btree format, but to ensure that some databases which were causing problems are rebuilt. We need to add quartz format numbers, separate from the btree format numbers, to check this kind of thing. Mon Jan 8 15:13:04 GMT 2001 Richard Boulton * Add some debugging, and fix a test data file. Mon Jan 8 13:49:50 GMT 2001 Richard Boulton * Fix failure to initialise OmMSet::Internal::have_percent_factor. Thu Jan 4 17:21:24 GMT 2001 Richard Boulton * Add new test for a postlist with many documents, designed to fail and exhibit the bug andy has found. So far doesn't fail. Wed Jan 3 19:30:30 GMT 2001 Richard Boulton * Add get_percent method to OmMSetIterator. Untested. * Add om_percent type to om_types. * Add test of sort order of terms in get_matching_terms. Tue Jan 2 15:05:53 GMT 2001 Richard Boulton * Move documentation of parameters for OmSettings out of omsettings.h and into docs/. Not in distribution at the moment: it is awaiting placement into a permanent home (I think the user manual is the correct place). * Add a bm25weight_min_normlen parameter: this specifies a cutoff on the minimum value that can be used for a normalised document length: smaller values will be forced up to this cutoff. This prevents very small documents getting a huge bonus weight. Wed Dec 20 16:54:41 GMT 2000 Richard Boulton * Fix warning in QuartzTable Wed Dec 20 15:13:05 GMT 2000 Olly Betts * OmTermListIterator merged into OmTermIterator. * Added OmRSet::contains() - checks if an RSet contains a given docid. * Methods returning `const om_termname' now just return `om_termname'. Tue Dec 19 16:55:02 GMT 2000 Chris Emerson * Implemented AllTermsIterator for DA and Multi databases. Added a test which actually uses a multidatabase, but disabled it as it currently fails for both Quartz and DA. Tue Dec 19 12:14:05 GMT 2000 Chris Emerson * Adjusted TODO Tue Dec 19 20:06:43 GMT 2000 Richard Boulton * Escaping for termnames in remote database communication modified to use only characters in range 33 to 126. Should now work on all architectures. * Increased OM_SOCKET_PROTOCOL_VERSION to 8. Mon Dec 18 17:23:48 GMT 2000 Richard Boulton * Added "match_cutoff" option to get_mset OmSettings. * Added test for "match_cutoff" to apitest. * Updated todo.xml Mon Dec 18 17:19:40 GMT 2000 Chris Emerson * Implemented opening positionlists from inmemory databases. Added a testcase as well, which is run for quartz and inmemory. Mon Dec 18 15:48:16 GMT 2000 Chris Emerson * Implemented AllTermsIterator for quartz. Interaction with QuartzPostList needs to be cleaned up. * Added new functions [un]pack_string_preserving_sort(), which pack a string in a way which preserves sort order. Added a testcase to quartztest. * Now use [un]pack_string_preserving_order() on postlist keys, so that we can get at terms in sorted order. (And get_tname_from_key() added to separate out the term-unpacking as well as the packing) * Enabled test_allterms1 in apitest, but put it in a group of tests only run for inmemory and quartz. This should be extended to other backends. Mon Dec 18 14:33:42 GMT 2000 Richard Boulton * Implemented tests of msetiterator and esetiterator copying and assignment. * Fix segfault when assigning to [me]setiterator to end. * Updated todo.xml Mon Dec 18 13:52:53 GMT 2000 Richard Boulton * Move creation of first key in a quartz postlist into a named function (was scattered through the code). Mon Dec 18 11:19:53 GMT 2000 Richard Boulton * Update todo.xml Mon Dec 18 10:47:42 GMT 2000 Richard Boulton * Remove const from reverse_iterators in api_db.cc, so get around brokenness of egcs 1.1.2 Mon Dec 18 09:41:54 GMT 2000 Chris Emerson * Added apitest_space.txt to the Makefile.am Sun Dec 17 16:15:03 GMT 2000 Olly Betts * Replaced all API uses of om_termname_list with OmTermIterator. Fri Dec 15 18:54:10 GMT 2000 Chris Emerson * Implemented OmAllTermsIterator interface in API. It works for inmemory - the rest haven't been implemented yet. The test is commented out. Fri Dec 15 15:47:53 GMT 2000 Richard Boulton * Updated TODO. * database returns positionlists as AutoPtrs; this neatens some of the code from the previous changelog entry, and makes explicit the ownership of the pointer. postlists and termlists should be AutoPtrs, likewise. Fri Dec 15 14:59:41 GMT 2000 Richard Boulton * Make OmPositionListIterators retrieved from OmPostListIterators valid indefinitely (were only valid until OmPostListIterator was moved). This makes them consistent with OmPositionListIterators retrieved from OmDatabases. * Renamed PostList::get_position_list() to read_position_list. Added PostList::open_position_list() which opens a new positionlist and returns it as an AutoPtr. Fri Dec 15 13:09:51 GMT 2000 Richard Boulton * Make TODO.release file, containing TODO items for next release. Fri Dec 15 12:06:42 GMT 2000 Richard Boulton * QuartzDatabases now autoflush after 1000 changes. Fri Dec 15 11:40:37 GMT 2000 Richard Boulton * Fix segfault in quartz_table Fri Dec 15 11:23:15 GMT 2000 Chris Emerson * Removed begin/end_session() from quartztest Thu Dec 14 19:19:40 GMT 2000 Richard Boulton * Done todo item: For writable databases, make the behaviour currently obtained by calling begin_session() and later end_session() the default behaviour. If users want the changes to be applied immediately following a change, they should call flush(). Thu Dec 14 17:48:27 GMT 2000 Richard Boulton * Fix problem with recalc_maxweight() not being called before a get_maxweight() in multimatch.cc if a node prunes at the top level, since recalculate_w_max wasn't being checked at this point. Introduced helper function getorrecalc_maxweight() to tidy this up. * Tidy up Asserts in common/netutils.h. Thu Dec 14 17:11:17 GMT 2000 Chris Emerson * Adjusted todo.xml Thu Dec 14 16:21:27 GMT 2000 Chris Emerson * Removed handling of OmDatabaseModifiedError in the API - it's up to the users to know what to do. Disabled quartzoverwrite2 as it's now inappropriate. * Added OmDatabase::reopen() to help them do so. * Adjusted todo.xml Thu Dec 14 14:38:39 GMT 2000 Richard Boulton * Added another quoting regression test. Thu Dec 14 14:36:53 GMT 2000 Chris Emerson * Fixed the quoting _again_, since it broke with backslashes. Thu Dec 14 12:49:58 GMT 2000 Richard Boulton * Fix problems with recalculation of maxweight in postlists, causing AssertParanoid at multimatch.cc:393. When a prune was happening, recalc_maxweight flag was not always being set, because some {next,skip_to}_handling_prune() methods weren't being passed the matcher, and a default argument of 0 was being used. I've now removed the default argument and pass the matcher always. Sometimes the recalc could perhaps be avoided, but this is certainly safer for now. Thu Dec 14 12:30:02 GMT 2000 Chris Emerson * Sleepcat is now disabled by default. * Fixed a problem with tabs not being quoted in the remote case. All control characters are now quoted. Incremented the protocol ver number. Thu Dec 14 11:54:17 GMT 2000 Richard Boulton * Added regression test to check that all characters can be are safe to exist in document keys. * Fixed OmDebug so that it can display messages containing zero bytes (use fwrite instead for fprintf) Wed Dec 13 18:43:40 GMT 2000 Richard Boulton * Add regression tests to apitest to check that OmMSet and OmESet begin() and end() iterators compare equal if the mset is empty. Fix matchfunctor used in test_matchfunctor1 so that it works for Muscat3.6 databases. Wed Dec 13 18:35:05 GMT 2000 Chris Emerson * Fixed bugs in OmMSet and OmESet iterators: begin() when the set was empty produced an invalid iterator, and the assignment operators would have failed when end iterators were involved. * Added a check in test_matchfunctor1() that the mset returned is not empty. Wed Dec 13 18:18:09 GMT 2000 Richard Boulton * Turn off tests involving terms with newlines or zero bytes in terms with Muscat3.6 backends; these can't be expected to work. Wed Dec 13 18:06:29 GMT 2000 Chris Emerson * Uncommented the code in pctcutoff1 - test now passes. Wed Dec 13 17:53:19 GMT 2000 Richard Boulton * Fix: m36_key_file parameter wasn't being set with DA flimsy databases (thanks to Mark Hagger). * indextest.cc changed to use "\n" instead of endl - compiles with STLport again. Wed Dec 13 17:27:17 GMT 2000 Olly Betts * OmMSet is now an STL compatible container. * Om*Iterator::difference_type was unsigned - now signed. * net/readquery.ll: fixed compiler warning. * Remote backend was defaulting to collapse on key 0. Wed Dec 13 16:48:49 GMT 2000 Chris Emerson * Add handling of DatabaseModified to OmEnquire::get_mset() Wed Dec 13 16:28:47 GMT 2000 Richard Boulton * Escape zero bytes in the network protocol, since these were breaking things when being passed across as part of keys. * Add test of having zero bytes in the collapse keys. * In testsuite, only display the context of errors if there is one present. Wed Dec 13 14:44:46 GMT 2000 Olly Betts * Implemented OmMSet::operator[](). Wed Dec 13 14:30:57 GMT 2000 Chris Emerson * Added support for handling overwritten database conditions. Currently works for OmDocument::get_{data,key}(). Wed Dec 13 13:20:45 GMT 2000 Olly Betts * Elaborated API hitlist in todo.xml. Wed Dec 13 12:28:18 GMT 2000 Chris Emerson * Fix to BackendManager to stop it removing tables prematurely. Wed Dec 13 11:49:53 GMT 2000 Chris Emerson * Apply the stemmer to query terms used in spaceterms1. (Not doing so caused the test to fail spuriously on local databases, since the terms are stemmed at index time). The test still fails with da and db databases. * Fixed a problem when stats were unpacked from the network stream, where term names were not correctly unquoted. This led to double quoting of global statistics. Wed Dec 13 02:49:05 GMT 2000 Richard Boulton * Implement copy and assignment methods for OmPositionListIterator. Wed Dec 13 02:37:14 GMT 2000 Richard Boulton * ESet and MSet iterators now cope with being copied / assigned when the internals are null. * Added copy method to OmPositionListIterator interface. No implementation for this yet though, or for the already existing assignment method. * Added a couple of easy items to the todo list to check regarding iterators. Wed Dec 13 02:19:50 GMT 2000 Richard Boulton * Fix small bug in mset_range_is_same{,_weights}() Wed Dec 13 02:07:59 GMT 2000 Richard Boulton * And add copy and assignment for OmESet, similarly. Wed Dec 13 01:58:38 GMT 2000 Richard Boulton * Add copy and assignment operators to OmMSet so that the internals get copied (rather than just the pointer to them). Really want a small internals class, holding a refcount to the real internals, or else to use refcntptrs for the members of OmMSet::Internal which are potentially large (eg, items) Wed Dec 13 01:05:44 GMT 2000 Richard Boulton * Add Asserts to api/omdatabaseinternal.cc to ensure that there is at least one database present when opening termlists, etc. This should really be done by throwing errors. * Add destructor to OmMSet, deleting internals. * Implement getting positionlists from QuartzDatabases. * Fix bug in copy constructor of OmDocument::Internal - some fields were not being copied. * Fix api_db.cc so it compiles: code referring to mset by subscripting temporarily commented out. Tue Dec 12 20:05:10 GMT 2000 Richard Boulton * Fix bug with truncation of intermediate keys in btrees. Tue Dec 12 18:33:12 GMT 2000 Olly Betts * OmMSet::get_docs() now takes sane parameters. * Various test programs updated to nearly work with new OmMSet interface. Tue Dec 12 17:18:33 GMT 2000 Olly Betts * Finished cleaning up OmMSet; updated TODO to reflect this. Tue Dec 12 17:16:02 GMT 2000 Richard Boulton * Fix bug with sorting keys in btrees. * Various fixes to quartzdump. Tue Dec 12 15:40:28 GMT 2000 Chris Emerson * Nettest compiles with new OmMSet interface. Tue Dec 12 15:09:14 GMT 2000 Chris Emerson * Fixed an endless loop in QuartzWritableDatabase::do_delete_document. Tue Dec 12 15:07:39 GMT 2000 Olly Betts * OmMSetItem replaced by OmMSetIterator. * Added OmESet::empty(). * Fixed == on OmESetIterator. Tue Dec 12 14:16:57 GMT 2000 Chris Emerson * Renamed arguments to compare_keys() Tue Dec 12 12:05:24 GMT 2000 Richard Boulton * Added quartzdump utility to dump the contents of a quartz table. Tue Dec 12 10:54:44 GMT 2000 Chris Emerson * Added constructors and destructor to OmRSet. Mon Dec 11 16:32:07 GMT 2000 Richard Boulton * Remove caching of average length in OmDatabaseInternal, was breaking asking for the average length of a database which was being modified. Mon Dec 11 16:03:46 GMT 2000 Richard Boulton * If no documents in database, don't divide by zero in omdatabaseinternal.cc * If a document object doesn't come from the database, when iterating through its termlist don't open postlists from the nonexistent database; open them from the DocumentTerm objects in the document instead. * Remove old unused and undefined method OmDocument::Internal::add_posting() Mon Dec 11 13:53:18 GMT 2000 Olly Betts * omenquire.h: Removed superfluous declaration of OmMSetCmp. Mon Dec 11 13:38:12 GMT 2000 Olly Betts * Updated TODO list. Mon Dec 11 13:24:45 GMT 2000 Olly Betts * OmRSet internals encapsulated. Mon Dec 11 12:42:02 GMT 2000 Chris Emerson * OmIndexerMessage::get_element and ...::operator[] now have non-const versions. Fixes const-warning in omstemmernode.cc. Mon Dec 11 12:17:32 GMT 2000 Olly Betts * Better typedef-s for Om*Iterator::difference_type. Sun Dec 10 17:51:41 GMT 2000 Olly Betts * Corrected various typedef-s for Om*Iterator. Sun Dec 10 17:28:59 GMT 2000 Olly Betts * Updated TODO to reflect OmESet being cleaned up. * Term position argument to OmDocument::add_posting() is now optional (as it was for OmDocumentContents). Sun Dec 10 16:55:17 GMT 2000 Olly Betts * OmESetItem is dead - long live OmESetIterator! * net/socketclient.cc: fixed compiler warning. * net/socketserver.cc: fixed compiler warning. Sun Dec 10 13:29:15 GMT 2000 Olly Betts * Started to encapsulate OmESet/OmESetItem interface. Interface is close, but currently implementation is exposed in omenquire.h. * apitest wasn't running puncterms1 or spaceterms1 - fixed. Sun Dec 10 11:34:39 GMT 2000 Olly Betts * om/autoptr.h -> autoptr.h in lots of places. Fri Dec 8 17:20:04 GMT 2000 Chris Emerson * Updated indextest to not use AutoPtr Fri Dec 8 17:14:09 GMT 2000 Chris Emerson * Oops - removed one too many #include "autoptr.h" Fri Dec 08 16:50:42 GMT 2000 Olly Betts * Updated TODO. Fri Dec 8 16:44:26 GMT 2000 Chris Emerson * IndexerBuilder now returns OmIndexer objects instead of AutoPtr. OmIndexer's internals are reference counted. * Moved autoptr.h from include/om to common/, since it's no longer used in the API. Fri Dec 8 16:22:48 GMT 2000 Chris Emerson * Fixed omstemmer node bug and made debug slightly more verbose in indextest.cc. Fri Dec 8 16:13:36 GMT 2000 Chris Emerson * Added a test for OmIndexerMessage to indextest * Added output operator for OmIndexerMessage * Fixed a bug introduced into omvectorsplit node * Changed couts in indextest.cc to touts. Fri Dec 08 14:53:24 GMT 2000 Olly Betts * quartztest: removed OmDocumentTerm reference so that it'll compile (tests fail though). Fri Dec 8 14:42:46 GMT 2000 Chris Emerson * OmIndexerMessage is now a class by itself, replacing OmIndexerData and the typedef to AutoPtr. It's now a copy-on-write object. * The indexer stuff all changed. Fri Dec 08 14:24:02 GMT 2000 Olly Betts * omindexdoc.{cc,h}: no longer used so removed. * Pushed OmDocumentTerm from API level into the internals of the library. * Updated TODO. Fri Dec 08 12:08:49 GMT 2000 Olly Betts * delve: if just given a database (or list of databases), report the number of documents and average document length. Thu Dec 7 20:39:24 GMT 2000 Richard Boulton * Fix bug: Om*Iterators which were created over empty lists didn't have null internals, causing them not to compare equal to end iterators. * Added many asserts to iterator code. Thu Dec 7 20:02:43 GMT 2000 Richard Boulton * Removed OmTermListIteratorMap - OmTermListIterator can now be across either a map or an actual termlist. * Om*Iterator classes all now delete internals when reaching end, freeing resources sooner and making the comparison operators much simpler. Thu Dec 7 18:33:03 GMT 2000 Richard Boulton * Updates to TODO Thu Dec 7 18:32:39 GMT 2000 Chris Emerson * Implementation of write locks for Quartz Thu Dec 7 18:28:55 GMT 2000 Chris Emerson * Fix to backendmanager which doesn't return writable databases unnecessarily (which breaks things when there are write locks) Thu Dec 7 18:25:50 GMT 2000 Chris Emerson * Added test for Quartz write locks Thu Dec 7 17:56:19 GMT 2000 Richard Boulton * Add OmDocument::set_data() method which takes a string, instead of an OmData object. This allows, implicitly, use of const char *'s as well. * Further fixes to quartztest. It now compiles (though I've not tried linking it yet...) :) Thu Dec 7 17:49:50 GMT 2000 Chris Emerson * Fixed omkeylistiterator return types. Thu Dec 7 17:27:57 GMT 2000 Richard Boulton * Moved get_document() from OmWritableDatabase to OmDatabase. * Added -> operator to OmKeyListIterator. Fixed return values and constness of Om*Iterator::operator *() methods. * Some fixes to quartztest.cc, but not enough to get it compiling. Thu Dec 07 16:21:28 GMT 2000 Olly Betts * Some work on getting quartztest working. Thu Dec 07 16:10:00 GMT 2000 Olly Betts * The library now builds, but "make check" still fails. Thu Dec 7 15:39:19 GMT 2000 Richard Boulton * Fixes to testsuite/index_utils.cc to not segfault. Thu Dec 7 14:31:56 GMT 2000 Richard Boulton * Fixes to api_db.cc so that it compiles. Wed Dec 6 18:50:48 GMT 2000 Richard Boulton * Add test for terms with spaces, newlines, zero bytes, or backslashes. * Updates to TODO Wed Dec 06 18:18:16 GMT 2000 Olly Betts * Woohoo! Now builds with just --disable-indexer! (still doesn't pass any tests). Wed Dec 06 17:24:19 GMT 2000 Olly Betts * Minor fix. Now builds with --disable-indexer --disable-quartz-backend (but doesn't pass any tests). Wed Dec 06 16:35:34 GMT 2000 Olly Betts * Fixed up lots of build errors. Wed Dec 06 14:56:59 GMT 2000 Olly Betts * Begin the long job of replacing OmDocumentContents with OmDocument. Won't currently build - expect the tree to be broken for a few days. As usual, if you want a working build, use the "snapshot_latest" tag. Wed Dec 6 12:03:44 GMT 2000 Chris Emerson * Backed out yesterday's overwritten-handling stuff. Wed Dec 6 11:36:55 GMT 2000 Richard Boulton * Increase sleep in tcpclient1 to 3 (did tcpmatch1 last time, duh!) Tue Dec 5 17:13:38 GMT 2000 Chris Emerson * QuartzDocument now has a QuartzTableManager pointer rather than two QuartzTable pointers. * QuartzDatabase::do_get_document_internal() copes with Btree overwritten conditions. * QuartzDocument methods cope with Btree overwritten conditions * New method QuartzTableManager::reopen_tables_because_overwritten() for helping with the above. * New test in quartztest for testing overwritten problems from the API rather than just internally to Quartz. * Fixed a typo in omsettings.h comment (quartz_dir used to refer to a sleepycat database) Tue Dec 5 16:53:46 GMT 2000 Richard Boulton * Update todo. * Fix undesirable assert in stats.h Tue Dec 5 15:41:40 GMT 2000 Richard Boulton * Replace OmMSet::docs_considered with OmMSet::matches_{lower_bound,estimated,upper_bound}, giving more useful information. * PostLists now have get_termfreq_{min,est,max}(), instead of get_termfreq(), so the postlist tree can be used to calculate the matches_* values for the mset. Implemented for all the postlist subclasses. LeafPostList's still has a virtual get_termfreq() method, and implements get_termfreq_* in terms of it, so database postlists don't need to be modified. * Passing of MSets across network modified to pass the new information. * PendingMSet uses the values from the mset to return the values of get_termfreq_*(). This assumes that recalc_maxweight has been called first, which is has been. * Muscat36 databases get_termfreq() methods fixed to use a LeafPostList rather than a PostList. * Renamed test docs_considered1 to matches1, and add several more cases to it. Tue Dec 05 15:38:27 GMT 2000 Olly Betts * Added tests/testdata/apitest_punc.txt to distribution. Tue Dec 05 15:07:26 GMT 2000 Olly Betts * Oops, failed to add new file `tests/testdata/apitest_punc.txt' with last check-in. Tue Dec 05 14:34:04 GMT 2000 Olly Betts * OmTermListIterator implemented for an OmDocument with terms stored in a map rather than coming from a Document. * Fixes to remote protocol so solve problems with terms with punctuation in (regression test punc_terms1). Mon Dec 4 15:02:53 GMT 2000 Richard Boulton * Makefile tweak in docs/ Mon Dec 04 14:13:05 GMT 2000 Olly Betts * More OmDocument work. Mon Dec 4 11:43:46 GMT 2000 Richard Boulton * Renamed OmMSet::mbound to docs_considered. Mon Dec 4 10:11:11 GMT 2000 Chris Emerson * Added some more std:: prefixes for STLport. Fri Dec 1 17:45:01 GMT 2000 Richard Boulton * Increase the sleep after the server is started by tcpclient1 to 3 seconds so that the server is more likely to have started when then test ran. This seems to be what was causing the test to randomly fail. Really, we want a better solution to this (such as the server picking a port and writing it out on stdout once it is listening.) Fri Dec 1 17:27:02 GMT 2000 Richard Boulton * Swapped the ports used by tcpclient1 and tcpmatch1 to see if the random failures follow suit. Fri Dec 1 17:21:07 GMT 2000 Richard Boulton * Another minor fix to work with STLport. Fri Dec 1 17:01:02 GMT 2000 Richard Boulton * Add std::'s and similar to fix compilation with STLport. * Fix bug in expander due to nth_element being called on the wrong element. This is the counterpoint of the bug fixed on Nov 24th with the matcher. Fri Dec 1 16:30:26 GMT 2000 Chris Emerson * Minor tweaks in error strings. Fri Dec 01 12:57:59 GMT 2000 Olly Betts * Corrected erroneous documentation comment. Thu Nov 30 18:50:16 GMT 2000 Richard Boulton * OmSettings no longer throws exceptions internally (at the cost of slightly more code duplication). Thu Nov 30 18:05:39 GMT 2000 Richard Boulton * Add a few std::'s to strings which had been missed. Thu Nov 30 16:41:11 GMT 2000 Olly Betts * OmDocument::Internal now knows its OmDatabase. Thu Nov 30 16:40:33 GMT 2000 Richard Boulton * Add context to network errors thrown from OmSocketLineBuf. Thu Nov 30 16:21:47 GMT 2000 Chris Emerson * Added a quartz test for largish bitmaps. * Fixed the code so that the above test would pass. Thu Nov 30 16:10:37 GMT 2000 Olly Betts * OmDocument::add_posting() pretty much done. Thu Nov 30 15:51:46 GMT 2000 Olly Betts * More work on OmDocument::add_posting(). * Added OmTermListIterator::positionlist_begin() and OmTermListIterator::positionlist_end(). Thu Nov 30 14:16:28 GMT 2000 Chris Emerson * Fixed a prototype bug introduced with the last commit. Thu Nov 30 13:23:14 GMT 2000 Chris Emerson * Bcursor::find_key now more const-correct. * Bcursor_create now returns an AutoPtr. The resultant changes fixed a memory leak. * New exception: OmDatabaseModifiedError. Thrown when an open revision of a table is no longer valid due to multiple updates. * quartzoverwrite1 test re-enabled, and passes. Thu Nov 30 13:23:27 GMT 2000 Richard Boulton * nettest now uses quartz backend: should always run all tests now (apart from tcpdead1, which doesn't work). Wed Nov 29 19:46:22 GMT 2000 Richard Boulton * In testsuite, report the context of Om exceptions as well as their type and message. Wed Nov 29 18:30:10 GMT 2000 Richard Boulton * Add "remote_connect_timeout" parameter to be supplied when opening a remote database, to specify a separate timeout for the connect operation to that used once the connection has been opened. * Add setting of the context of errors thrown by tcpclient or progclient, so that the node which failed can be determined. Wed Nov 29 17:50:03 GMT 2000 Chris Emerson * Reworked Btree_base::read() a bit so that it's hopefully more readable. * Hopefully fixed a bug when the bitmap approaches 1k. * Fix to catch problems re-opening databases after an apply in Quartz. Wed Nov 29 17:30:26 GMT 2000 Olly Betts * Added OmDocument::termlist_begin() and OmDocument::termlist_end() Wed Nov 29 16:53:13 GMT 2000 Richard Boulton * Comment out quartzoverwrite1 test so that it doesn't cause problems for other developers. Wed Nov 29 16:27:19 GMT 2000 Olly Betts * docid now in Document class rather than subclasses. Wed Nov 29 14:54:13 GMT 2000 Olly Betts * leafdocument.cc renamed to document.cc * Document class now has a pointer to the associated Database class so we can open termlists, etc. Wed Nov 29 14:03:43 GMT 2000 Richard Boulton * Add quartztest to test for case when a database block gets overwritten. Currently, this fails because an exception doesn't get thrown when it should. Wed Nov 29 13:18:24 GMT 2000 Olly Betts * LeafDocument class renamed to Document. Wed Nov 29 12:35:49 GMT 2000 Olly Betts * Added OmDocument::remove_posting(), OmDocument::remove_term(), and OmDocument::clear_terms() Wed Nov 29 12:31:22 GMT 2000 Chris Emerson * Added another revision number in the middle of the base file, before the bitmap. Also now check that there isn't any extra data at the end after we finish reading it. Incremented the database format. Wed Nov 29 11:55:03 GMT 2000 Olly Betts * Added OmDocument::remove_key() and OmDocument::clear_keys() Tue Nov 28 18:34:57 GMT 2000 Chris Emerson * Btree bitmap now merged with base - one object, one file. Tue Nov 28 17:13:56 GMT 2000 Olly Betts * Added OmDocument::set_data() Tue Nov 28 16:47:06 GMT 2000 Olly Betts * Started to alter OmDocument to be a general purpose document class which includes the functionality currently in OmDocumentContents. Tue Nov 28 15:08:38 GMT 2000 Chris Emerson * Added OmSplitOnCharsNode, which does a subset of OmRegexSplitNode but less slowly. * Modified RegexSplit node and regexcommon so that less copying of strings is needed. Tue Nov 28 13:42:41 GMT 2000 Chris Emerson * Moved the Btree's bitmap into a separate object. Tue Nov 28 13:06:36 GMT 2000 Olly Betts * Eliminated OmDocumentParams. * Removed unnecessary mutex from OmDocument::Internal. Mon Nov 27 18:45:27 GMT 2000 Richard Boulton * Implement get_position_list() on databases. Untested. Also needs some work to make consistent with open_position_list() on posting lists: see todo list. Mon Nov 27 18:29:00 GMT 2000 Richard Boulton * Change #define LEVEL ... to #define GET_LEVEL ... in btree_util.h: fixes problem reported by includetest Mon Nov 27 18:20:42 GMT 2000 Richard Boulton * Added a set of modifications to the todo.xml. Also, add a "release" field, recording the release that the work must be performed by. Mon Nov 27 18:08:35 GMT 2000 Olly Betts * A RefCntPtr now copes with being assigned to itself (used to delete the underlying object if the reference count was 1). Added regression test (refcnt2). * Now overwrite pointer inside RefCntPtr before deleting the pointed to object so there's no window where another thread can access the pointer and get the just-deleted object. Mon Nov 27 14:36:59 GMT 2000 Olly Betts * OmError class now optionally stores an errno value. Mon Nov 27 13:04:18 GMT 2000 Richard Boulton * Quartztest builds its test databases in a subdirectory, which is now in .cvsignore, so we shouldn't get cvs complaining about so many unknown files any more. Mon Nov 27 12:53:16 GMT 2000 Richard Boulton * Another TODO item. Mon Nov 27 12:15:53 GMT 2000 Richard Boulton * Added a couple of new items to the todo list. Fri Nov 24 19:23:56 GMT 2000 Richard Boulton * Quartztests now deletes all old tables, so that database formats don't cause problems. Fri Nov 24 19:03:59 GMT 2000 Richard Boulton * Added std:: prefix to lots of strings which didn't have it. I've probably added some where they shouldn't be: there were rather a lot of cases of this. Fri Nov 24 18:27:06 GMT 2000 Richard Boulton * Major bug fix! When removing elements, matcher was performing nth_element() on the first element to be thrown away, rather than the lowest element to keep. This meant that, after throwing away low scoring items, items.back() was a random item rather than the lowest scoring item. This caused the min weight for getting into the mset to go up faster than it should have done, and generally broke everything. It will be interesting to compare evaluation measures before and after this fix. Fri Nov 24 15:34:17 GMT 2000 Richard Boulton * Declare this to be version 0.4.1