api/omdatabase.cc,tests/api_backend.cc: Fix
[xapian.git] / xapian-core / ChangeLog
blob7216fc4a926f4c565844bbdb433cb214f1d835cb
1 Sun May 31 12:31:11 GMT 2015  Olly Betts <olly@survex.com>
3         * api/omdatabase.cc,tests/api_backend.cc: Fix
4           Database::get_doclength_lower_bound() over multiple databases when
5           some are empty or consist only of zero-length documents.  Previously
6           this would report a lower bound of zero, now it reports the same
7           lowest bound as a single database containing all the same documents.
9 Sun May 31 12:25:53 GMT 2015  Olly Betts <olly@survex.com>
11         * tests/api_backend.cc: Tweak bounds checks in dbstats1 testcase
12           - multi backends should give tight bounds.
14 Sat May 30 14:24:55 GMT 2015  Olly Betts <olly@survex.com>
16         * backends/remote/remote-database.cc: Avoid divide by zero when
17           getting the average length for an empty database.
19 Fri May 29 13:51:12 GMT 2015  Olly Betts <olly@survex.com>
21         * tests/harness/testsuite.cc: If command line option --verbose/-v
22           isn't specified, set the verbosity level from environmental variable
23           VERBOSE.
25 Fri May 29 13:50:13 GMT 2015  Olly Betts <olly@survex.com>
27         * tests/harness/testsuite.cc: Put handling for XAPIAN_TESTSUITE_OUTPUT
28           environmental variable into its own block to contain the scope of
29           the temporary variables.
31 Fri May 29 07:57:47 GMT 2015  Olly Betts <olly@survex.com>
33         * common/serialise-double.cc: Prefer scalbn() to ldexp() where
34           where possible, since the former doesn't ever set errno.
36 Fri May 29 07:47:46 GMT 2015  Olly Betts <olly@survex.com>
38         * tests/api_wrdb.cc: Revert disabling of part of adddoc5 for clang, as
39           that should now work now the method in question isn't marked as
40           XAPIAN_PURE_FUNCTION.
42 Fri May 29 06:13:32 GMT 2015  Olly Betts <olly@survex.com>
44         * api/sortable-serialise.cc,tests/queryparsertest.cc,
45           tests/unittest.cc: Only enable assertions in sortable_serialise()
46           and sortable_unserialise() in the testsuite (since these functions
47           shouldn't throw exceptions), and move the tests of these functions
48           from queryparsertest to unittest to facilitate this.
50 Fri May 29 05:40:10 GMT 2015  Olly Betts <olly@survex.com>
52         * api/sortable-serialise.cc,include/xapian/queryparser.h: Make
53           sortable_serialise() an inlined wrapper around a function which
54           won't throw and can be flagged as XAPIAN_CONST_FUNCTION.
56 Fri May 29 05:35:23 GMT 2015  Olly Betts <olly@survex.com>
58         * include/xapian/queryparser.h: sortable_unserialise() can't validly
59           be marked as XAPIAN_CONST_FUNCTION, since scalbn() can raise
60           FE_OVERFLOW or FE_UNDERFLOW floating point exceptions.  It isn't
61           a function that's likely to be called such that the result can
62           be usefully subject to CSE or eliminated as dead code anyway.
64 Fri May 29 05:31:29 GMT 2015  Olly Betts <olly@survex.com>
66         * api/sortable-serialise.cc: Use scalbn() instead of ldexp() in
67           sortable_unserialise(), as ldexp() can set errno, which it seems
68           better to avoid doing.
70 Fri May 29 05:15:09 GMT 2015  Olly Betts <olly@survex.com>
72         * api/sortable-serialise.cc,include/xapian/queryparser.h: Tweak
73           sortable_unserialise() not to construct std::string objects (as that
74           could throw std::bad_alloc), and mark it as XAPIAN_NOTHROW.
76 Thu May 28 13:49:37 GMT 2015  Olly Betts <olly@survex.com>
78         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
79           include/xapian/query.h,include/xapian/unicode.h,unicode/uniParse.tcl,
80           unicode/utf8itor.cc: Add attributes where appropriate.
82 Thu May 28 10:37:32 GMT 2015  Olly Betts <olly@survex.com>
84         * generate-exceptions,include/xapian/: Remove XAPIAN_PURE_FUNCTION
85           from functions which could throw an exception (which aren't really
86           pure).  While we're happy for calls to these functions to be CSE-ed,
87           the compiler might more assumptions about a pure function - clang
88           seems to assume pure => nothrow for example.
90 Wed May 27 02:05:23 GMT 2015  Olly Betts <olly@survex.com>
92         * NEWS: Update.
94 Tue May 26 23:15:21 GMT 2015  Olly Betts <olly@survex.com>
96         * AUTHORS: Update.
98 Tue May 26 23:12:53 GMT 2015  Olly Betts <olly@survex.com>
100         * NEWS: Credit Mihai Bivol for Xapian::Snipper in 1.3.2 changes.
102 Tue May 26 06:14:22 GMT 2015  Olly Betts <olly@survex.com>
104         * include/xapian/intrusive_ptr.h,tests/api_none.cc: Fix issue with 
105           the optional reference counting where the reference count of a
106           non-reference counted and deleted object could get checked to
107           see if the object was reference counted.
109 Mon May 25 04:33:15 GMT 2015  Olly Betts <olly@survex.com>
111         * NEWS: Update.
113 Sun May 24 12:52:47 GMT 2015  Olly Betts <olly@survex.com>
115         * tests/api_postingsource.cc: timer_create() seems to always fail on
116           AIX with EAGAIN, so just skip the matchtimelimit1 testcase there.
118 Sun May 24 11:48:30 GMT 2015  Olly Betts <olly@survex.com>
120         * net/tcpserver.cc: Under __WIN32__, inet_ntop()'s second parameter
121           is 'void*' (to POSIX says it should be 'const void*').
123 Sun May 24 11:46:25 GMT 2015  Olly Betts <olly@survex.com>
125         * common/safenetdb.h: Under __WIN32__, MSDN says that newer platforms
126           need <ws2def.h> for AI_* constants.  And mingw doesn't seem to
127           define AI_NUMERICSERV yet.
129 Sun May 24 10:41:39 GMT 2015  Olly Betts <olly@survex.com>
131         * common/safewindows.h,configure.ac: Under __WIN32__, we need to
132           specify Vista as the minimum supported version to get the
133           AI_ADDRCONFIG flag.  Older versions seem to all be out of support
134           anyway.
136 Sun May 24 06:46:15 GMT 2015  Olly Betts <olly@survex.com>
138         * net/tcpclient.cc: Add missing declaration of variable under
139           __WIN32__.
141 Sun May 24 06:39:56 GMT 2015  Olly Betts <olly@survex.com>
143         * tests/harness/testsuite.h: Simplify FAIL_TEST and SKIP_TEST
144           slightly.
146 Sat May 23 11:52:03 GMT 2015  Olly Betts <olly@survex.com>
148         * tests/harness/backendmanager_remotetcp.cc: Don't leave an extra fd
149           open when starting xapian-tcpsrv for remotetcp tests.
151 Sat May 23 10:12:31 GMT 2015  Olly Betts <olly@survex.com>
153         * tests/harness/backendmanager_remotetcp.cc: Add spaces between literal
154           strings and macros which expand to literal strings for C++11
155           compatibility in __WIN32__-specific code.
157 Fri May 22 03:22:03 GMT 2015  Olly Betts <olly@survex.com>
159         * NEWS: Update.
161 Wed May 20 14:24:03 GMT 2015  Olly Betts <olly@survex.com>
163         * include/xapian/version_h.cc: If old and new __GXX_ABI_VERSION are
164           both >= 1002 (which means GCC >= 3.4), then issue a warning about
165           mismatching versions instead of an error.  The changes in these
166           versions are bug fixes for corner cases, so there's a good chance of
167           things working - e.g. building xapian-bindings with GCC 5.1 (which
168           defaults to __GXX_ABI_VERSION 1008) against xapian-core built with
169           GCC 4.9 (1002) seems to work OK.  A warning is still useful as a
170           clue to what is going on if linking fails due to a missing symbol.
172 Wed May 20 13:47:50 GMT 2015  Olly Betts <olly@survex.com>
174         * net/serialise.cc: Don't use encode_length() on a bool - it's
175           overkill, and leads to a warning from GCC 5.1 (due to the
176           comparison (bool_value < 255) from the template expansion
177           always being true).
179 Wed May 20 01:49:18 GMT 2015  Olly Betts <olly@survex.com>
181         * api/matchspy.cc: Fix comparison function not to return true for two
182           equal elements, which fixes matchspy4 test failure with clang and
183           libc++.
185 Wed May 20 00:20:56 GMT 2015  Olly Betts <olly@survex.com>
187         * configure.ac: Disable "<FUNCTION> is expected to return a value"
188           warning from Sun's C++ compiler, as it fires even for functions we
189           end in a "throw" statement.  Genuine instances will be caught by
190           compilers with superior warning machinery.
192 Mon May 18 04:18:37 GMT 2015  Olly Betts <olly@survex.com>
194         * configure.ac: Arrange to pass command line option so that xlC
195           actually fails to compile the test code for typeid() when RTTI isn't
196           enabled.
198 Sun May 17 11:35:36 GMT 2015  Olly Betts <olly@survex.com>
200         * backends/glass/glass_version.cc: When reporting an error that the
201           glass format version doesn't match, don't append an uninitialised
202           char[] buffer to the error string (code accidentally left behind
203           by the previous change in this area).
205 Sat May 16 12:08:17 GMT 2015  Olly Betts <olly@survex.com>
207         * common/socket_utils.cc: Fix casts on the 4th argument of
208           setsockopt() so they compile on platforms which expect
209           char * or const char * there.
211 Fri May 15 13:24:55 GMT 2015  Olly Betts <olly@survex.com>
213         * configure.ac: Enhance the probe for whether the test harness can use
214           RTTI so that it works for xlC (which defaults to not generating
215           RTTI).
217 Fri May 15 12:28:32 GMT 2015  Olly Betts <olly@survex.com>
219         * common/debuglog.h: Remove commented out STATIC_ASSERT() which
220           is conceptually flawed.
222 Fri May 15 12:27:45 GMT 2015  Olly Betts <olly@survex.com>
224         * common/omassert.h,common/pack.h,tests/api_wrdb.cc,
225           tests/internaltest.cc: Replace STATIC_ASSERT() with C++11's
226           static_assert().
228 Fri May 15 11:34:47 GMT 2015  Olly Betts <olly@survex.com>
230         * common/stringutils.cc: Use static_assert rather than an adhoc check
231           via a negative array size.
233 Fri May 15 11:16:18 GMT 2015  Olly Betts <olly@survex.com>
235         * common/io_utils.cc: Replace the code used on platforms without
236           F_DUPFD with simpler code which actually compiles.
238 Fri May 15 03:43:16 GMT 2015  Olly Betts <olly@survex.com>
240         * pkgconfig/xapian-core.pc.in: Include @ldflags@ in pkg-config .pc
241           file.
243 Fri May 15 03:33:40 GMT 2015  Olly Betts <olly@survex.com>
245         * pkgconfig/xapian-core.pc.in: Fix include directory reported by
246           pkg-config.
248 Fri May 15 03:31:43 GMT 2015  Olly Betts <olly@survex.com>
250         * configure.ac,pkgconfig/xapian-core.pc.in,xapian-config.in: When
251           compiling with xlC on AIX, _LARGE_FILES gets defined by
252           AC_SYS_LARGEFILE to enable large file support, and defining this
253           changes the ABI of std::string, so include it in xapian-config
254           --cxxflags and the pkg-config equivalent.
256 Fri May 15 02:52:10 GMT 2015  Olly Betts <olly@survex.com>
258         * tests/Makefile.am,tests/perftest/Makefile.mk: Use $(NO_INSTALL)
259           rather than @NO_INSTALL@ to allow make-time overriding.
261 Fri May 15 02:33:11 GMT 2015  Olly Betts <olly@survex.com>
263         * tests/soaktest/Makefile.mk: Use -no-fast-install instead of
264           -no-install for linking soaktest on platforms where libtool issues
265           a warning for -no-install, like we already do for all the other test
266           programs.
268 Fri May 15 02:14:16 GMT 2015  Olly Betts <olly@survex.com>
270         * examples/simpleexpand.cc,examples/simpleindex.cc,
271           examples/simplesearch.cc: '#include <config.h>' in the examples, as
272           when compiling with xlC on AIX, _LARGE_FILES gets defined by
273           AC_SYS_LARGEFILE to enable large file support, and defining this
274           changes the ABI of std::string, so it also needs to be defined when
275           compiling code using Xapian.
277 Thu May 14 03:17:28 GMT 2015  Olly Betts <olly@survex.com>
279         * backends/chert/chert_cursor.cc: Correct delete to delete [].
281 Tue May 12 14:33:28 GMT 2015  Olly Betts <olly@survex.com>
283         * docs/deprecation.rst: Add deprecation of --preserve-nonduplicates
284           which happened in 1.2.4.
286 Tue May 12 07:38:12 GMT 2015  Olly Betts <olly@survex.com>
288         * Makefile.am: Actually use $(NO_UNDEFINED).
290 Tue May 12 06:40:38 GMT 2015  Olly Betts <olly@survex.com>
292         * configure.ac: Only pass -no-undefined when linking the library if
293           it's actually required for the current platform.  Sun C++ doesn't
294           link the C++ runtime libraries to shared objects, so the build
295           fails with -no-undefined.
297 Tue May 12 06:39:26 GMT 2015  Olly Betts <olly@survex.com>
299         * INSTALL,configure.ac: Fix comment and doc typos.
301 Tue May 12 03:49:38 GMT 2015  Olly Betts <olly@survex.com>
303         * configure.ac: Add workaround for odd <cmath> issue with Sun C++.
305 Tue May 12 03:49:15 GMT 2015  Olly Betts <olly@survex.com>
307         * configure.ac: On Solaris, inet_ntop() needs -lnsl.
309 Tue May 12 03:48:48 GMT 2015  Olly Betts <olly@survex.com>
311         * api/keymaker.cc: Fix error compiling with Sun C++.
313 Tue May 12 03:07:06 GMT 2015  Olly Betts <olly@survex.com>
315         * include/xapian/attributes.h: Fix typo in definition of
316           XAPIAN_NOTHROW() definition for C++11 compilers other than GCC and
317           MSVC.
319 Tue May 12 01:48:19 GMT 2015  Olly Betts <olly@survex.com>
321         * exception_data.pm: Fix not to parse mentions of XAPIAN_THROW() in
322           comments.
324 Mon May 11 14:16:22 GMT 2015  Olly Betts <olly@survex.com>
326         * HACKING: libtool 2.4.6 is now used for snapshots and releases.
328 Mon May 11 14:14:04 GMT 2015  Olly Betts <olly@survex.com>
330         * common/str.cc,expand/bo1eweight.cc,geospatial/geoencode.cc,
331           matcher/multiandpostlist.cc,net/remoteconnection.cc,weight/:
332           Fixes for errors when compiling with Sun C++.
334 Mon May 11 10:53:47 GMT 2015  Olly Betts <olly@survex.com>
336         * common/log2.h,configure.ac: Change probe for log2() to check for a
337           declaration and '#include <cmath>' to get it to fix build on Solaris
338           with Sun C++.  C++11 compilers should all provide log2(), but let's
339           not rely on that just yet as it's easy to provide a fallback
340           implementation.
342 Mon May 11 07:04:06 GMT 2015  Olly Betts <olly@survex.com>
344         * common/getopt.cc,net/tcpserver.cc: Fix clang warnings on OS X.
345           Reported by Germán M. Bravo.
347 Mon May 11 06:29:42 GMT 2015  Olly Betts <olly@survex.com>
349         * api/constinfo.cc,docs/doxygen_api.conf.in,
350           docs/doxygen_source.conf.in,include/xapian/: C++11's noexcept
351           needs to be on definitions as well as declarations, but GCC
352           function attributes must only be on declarations, so split
353           XAPIAN_NOEXCEPT off from XAPIAN_NOTHROW.
355 Sun May 10 13:26:24 GMT 2015  Olly Betts <olly@survex.com>
357         * include/xapian/queryparser.h,queryparser/queryparser_internal.h,
358           tests/api_none.cc: Add support for optional reference counting of
359           FieldProcessor objects.
361 Sun May 10 11:07:36 GMT 2015  Olly Betts <olly@survex.com>
363         * include/xapian/intrusive_ptr.h,include/xapian/queryparser.h,
364           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
365           tests/api_none.cc: Add support for optional reference counting of
366           ValueRangeProcessor objects.
368 Thu May 07 12:42:11 GMT 2015  Olly Betts <olly@survex.com>
370         * bin/xapian-replicate.cc,common/socket_utils.cc,common/socket_utils.h,
371           net/replicatetcpclient.cc,net/replicatetcpclient.h: Set SO_KEEPALIVE
372           for xapian-replicate's connection to the master, and add command
373           line option to allow setting socket-level timeouts (SO_RCVTIMEO and
374           SO_SNDTIMEO) on platforms that support them.  Fixes #546, reported
375           by nkvoll.
377 Thu May 07 12:00:15 GMT 2015  Olly Betts <olly@survex.com>
379         * bin/xapian-replicate.cc: Fix connection timeout to be 10 seconds
380           rather than 10000 seconds which is has been since 1.2.3.
382 Tue May 05 02:38:37 GMT 2015  Olly Betts <olly@survex.com>
384         * net/tcpserver.cc: Use inet_ntop() instead of inet_ntoa() - the
385           latter isn't thread-safe.
387 Tue May 05 02:05:27 GMT 2015  Olly Betts <olly@survex.com>
389         * include/xapian/queryparser.h: Update documentation to reflect that
390           the database passed to QueryParser::set_database() is no longer
391           used to expand wildcards and partial terms.
393 Mon May 04 11:32:40 GMT 2015  Olly Betts <olly@survex.com>
395         * api/postlist.cc,api/postlist.h,common/remoteprotocol.h,matcher/,
396           net/serialise.cc,tests/api_backend.cc: Fix sort by value when
397           multiple databases are in use and one or more are remote.  Fixes
398           #674, reported by Dylan Griffith.
400 Sun May 03 12:41:58 GMT 2015  Olly Betts <olly@survex.com>
402         * docs/deprecation.rst,include/xapian/queryparser.h,
403           queryparser/queryparser.cc,queryparser/queryparser.lemony,
404           queryparser/queryparser_internal.h,tests/queryparsertest.cc:
405           Allow setting the expansion limits and types for wildcards
406           and partial terms in the QueryParser independently.  Partial
407           terms now default to the 100 most frequent matching terms.
408           Deprecate set_max_wildcard_expansion() in favour of new
409           set_max_expansion() method which can set expansion limits
410           for partial terms too.  Completes #608.
412 Sat May 02 09:20:30 GMT 2015  Olly Betts <olly@survex.com>
414         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
415           include/xapian/query.h,queryparser/queryparser.lemony,
416           tests/api_query.cc: Add a choice of ways to apply the limit on
417           wildcard expansion.  Fixes #608, reported by boomboo.
419 Fri May 01 14:53:16 GMT 2015  Olly Betts <olly@survex.com>
421         * tests/api_replicate.cc: Reenable replicate3 for glass, as it no
422           longer fails.
424 Fri May 01 13:38:48 GMT 2015  Olly Betts <olly@survex.com>
426         * common/autoptr.h: Just map AutoPtr to std::unique_ptr now we require
427           C++11.
429 Fri May 01 13:33:28 GMT 2015  Olly Betts <olly@survex.com>
431         * matcher/multimatch.cc,net/progclient.cc: IRIX is dead, so remove
432           lingering traces of support for SGI's compiler.
434 Fri May 01 08:59:13 GMT 2015  Olly Betts <olly@survex.com>
436         * HACKING,INSTALL: STLport was last released in 2008, so (a) it's no
437           longer actively developed and (b) it won't support C++11, so strip
438           out documentation which mentions it.
439         * configure.ac: For Sun's C++ compiler, -std=c++11 enables C++11
440           support, and is incompatible with -library=stlport, so remove code
441           to enable that later option.
443 Fri May 01 01:37:24 GMT 2015  Olly Betts <olly@survex.com>
445         * configure.ac: Tweak comment to match xapian-omega's configure.
447 Fri May 01 01:36:41 GMT 2015  Olly Betts <olly@survex.com>
449         * configure.ac: Set default value for AUTOM4TE before AC_OUTPUT so the
450           default will actually get used.
452 Fri May 01 01:36:05 GMT 2015  Olly Betts <olly@survex.com>
454         * configure.ac: Add explicit AC_CANONICAL_HOST.
456 Fri May 01 01:08:56 GMT 2015  Olly Betts <olly@survex.com>
458         * api/matchspy.cc,tests/api_nodb.cc: Eliminate needless uses of
459           AutoPtr.
461 Fri May 01 00:37:42 GMT 2015  Olly Betts <olly@survex.com>
463         * tests/internaltest.cc: Remove self-assignment check of AutoPtr as
464           that doesn't work under C++11 when AutoPtr is unique_ptr, and add
465           other checks of reassignment which should work for both.
467 Fri May 01 00:37:09 GMT 2015  Olly Betts <olly@survex.com>
469         * tests/api_postingsource.cc: Remove C++11 specific test which doesn't
470           actually work with C++11.
472 Fri May 01 00:33:43 GMT 2015  Olly Betts <olly@survex.com>
474         * tests/harness/backendmanager.cc,
475           tests/harness/backendmanager_remotetcp.cc,
476           tests/harness/testsuite.h,tests/harness/testutils.h: Add spaces
477           between literal strings and macros which expand to literal strings
478           for C++11 compatibility.
480 Thu Apr 30 14:41:59 GMT 2015  Olly Betts <olly@survex.com>
482         * backends/chert/chert_table.cc,backends/glass/glass_table.cc: Remove
483           duplicate includes of "omassert.h".
485 Thu Apr 30 14:41:31 GMT 2015  Olly Betts <olly@survex.com>
487         * backends/glass/glass_freelist.cc: Add missing explicit include of
488           "omassert.h",
490 Thu Apr 30 14:38:06 GMT 2015  Olly Betts <olly@survex.com>
492         * HACKING,backends/chert/chert_table.cc,
493           backends/chert/chert_version.cc,backends/glass/glass_table.cc,
494           common/omassert.h: Remove CompileTimeAssert() and just use
495           C++11's static_assert instead.
497 Thu Apr 30 14:28:10 GMT 2015  Olly Betts <olly@survex.com>
499         * backends/glass/glass_freelist.cc: Drop conditionals for GCC >= 3.4
500           as we now require >= 4.4.
502 Thu Apr 30 14:26:13 GMT 2015  Olly Betts <olly@survex.com>
504         * api/omdatabase.cc,include/xapian/queryparser.h,
505           tests/harness/backendmanager.h: Drop workarounds for ancient Sun
506           C++ compilers, as we now require a recent version for C++11 support.
508 Thu Apr 30 14:22:46 GMT 2015  Olly Betts <olly@survex.com>
510         * INSTALL: IRIX is past EOL so drop information about IRIX make.
512 Thu Apr 30 14:22:10 GMT 2015  Olly Betts <olly@survex.com>
514         * configure.ac: OS X >= 10.4 apparently supports symbol visibility, so
515           update comment.
517 Thu Apr 30 14:21:37 GMT 2015  Olly Betts <olly@survex.com>
519         * common/unordered_map.h: No longer relevant now we require C++11.
521 Thu Apr 30 13:59:16 GMT 2015  Olly Betts <olly@survex.com>
523         * HACKING,INSTALL,configure.ac,xapian-config.in: Require a C++
524           compiler - the minimum required GCC version is now probably GCC 4.4.
526 Thu Apr 30 13:48:54 GMT 2015  Olly Betts <olly@survex.com>
528         * xapian-config.in: Remove superfluous comment left over from code
529           refactoring.
531 Thu Apr 30 13:47:30 GMT 2015  Olly Betts <olly@survex.com>
533         * xapian-config.in: Fix the include directory reported by --swigflags
534           for an installed copy to include the "/xapian-1.3" component for
535           a development version.
537 Thu Apr 30 12:34:14 GMT 2015  Olly Betts <olly@survex.com>
539         * api/omenquire.cc: Fix for C++11 where AutoPtr is unique_ptr.
541 Thu Apr 30 12:20:22 GMT 2015  Olly Betts <olly@survex.com>
543         * api/replication.cc,backends/chert/chert_database.cc,
544           backends/chert/chert_table.cc,backends/chert/chert_version.cc,
545           backends/glass/,backends/remote/remote-database.cc,bin/,
546           examples/copydatabase.cc,examples/quest.cc,
547           examples/xapian-metadata.cc,net/tcpclient.cc,
548           queryparser/queryparser.lemony: Add spaces between literal strings
549           and macros which expand to literal strings for C++11 compatibility.
551 Thu Apr 30 12:17:17 GMT 2015  Olly Betts <olly@survex.com>
553         * bin/xapian-tcpsrv.cc: Use STRINGIZE() to include defaults literally
554           in string for --help.
556 Thu Apr 30 10:48:11 GMT 2015  Olly Betts <olly@survex.com>
558         * HACKING: Update URL.
560 Thu Apr 30 10:47:10 GMT 2015  Olly Betts <olly@survex.com>
562         * m4/ax_cxx_compile_stdcxx_11.m4: Add support for HP's aCC (untested
563           as I no longer have access to this compiler).
565 Thu Apr 30 05:30:13 GMT 2015  Olly Betts <olly@survex.com>
567         * m4/ax_cxx_compile_stdcxx_11.m4: Add macro from autoconf-archive to
568           detect any compiler options needed to enable C++11 support (not yet
569           used).
571 Thu Apr 30 05:14:56 GMT 2015  Olly Betts <olly@survex.com>
573         * common/posixy_wrapper.cc: O_RDONLY, etc are better described as
574           "POSIX" than "ANSI".
576 Thu Apr 30 05:12:33 GMT 2015  Olly Betts <olly@survex.com>
578         * configure.ac,xapian-config.in: Rename ANSI_CXXFLAGS to ISO_CXXFLAGS
579           and talk about ISO C++ in configure messages.
581 Thu Apr 30 05:10:40 GMT 2015  Olly Betts <olly@survex.com>
583         * .gitignore: Adjust for m4 subdirectory to only match files which
584           aren't in git.
586 Thu Apr 30 04:07:05 GMT 2015  Olly Betts <olly@survex.com>
588         * xapian-config.in: Fix typo so cached result of test in
589           is_uninstalled() is actually used on subsequent calls.  Fixes #676,
590           reported (with patch) by Ryan Schmidt.
592 Wed Apr 29 03:00:32 GMT 2015  Olly Betts <olly@survex.com>
594         * backends/chert/chert_database.cc,backends/glass/glass_database.cc:
595           Fix get_changeset_revisions() not to potentially read uninitialised
596           data if a changeset file is truncated.
598 Wed Apr 29 00:09:57 GMT 2015  Olly Betts <olly@survex.com>
600         * backends/chert/chert_databasereplicator.cc: Use return value of
601           get_message_chunk() rather than ignoring it and repeating the check
602           in the caller.
604 Tue Apr 28 22:22:01 GMT 2015  Olly Betts <olly@survex.com>
606         * bin/xapian-progsrv.cc: Fix comment typo.
608 Tue Apr 28 04:51:33 GMT 2015  Olly Betts <olly@survex.com>
610         * backends/chert/chert_cursor.cc,backends/chert/chert_table.cc,
611           backends/glass/glass_cursor.cc,backends/glass/glass_table.cc:
612           Potentially increment the cursor version on cancel() or when the
613           database is reopened, and flag the current cursor version as used
614           when a cursor is rebuilt.  Fixes #675, reported by Germán M. Bravo.
615         * tests/api_backend.cc: Add regression test cursorbug1 based on
616           reproducer supplied by Germán.
618 Thu Apr 23 05:25:48 GMT 2015  Olly Betts <olly@survex.com>
620         * matcher/exactphrasepostlist.cc: When matching an exact phrase, if a
621           term doesn't occur where we want, we can advance "term 0" using
622           skip_to() based on where the term does next occur rather than just
623           calling next() on it.
625 Thu Apr 23 05:03:28 GMT 2015  Olly Betts <olly@survex.com>
627         * matcher/nearpostlist.cc: Be lazier about opening PositionList
628           objects, as that causes a read of all the data for that
629           positionlist.
631 Thu Apr 23 04:11:30 GMT 2015  Olly Betts <olly@survex.com>
633         * matcher/nearpostlist.cc: Make code for scanning window for duplicate
634           positions a little clearer.
636 Wed Apr 22 13:52:55 GMT 2015  Olly Betts <olly@tartarus.org>
638         * matcher/nearpostlist.cc: Fix "/*" within comment.
640 Wed Apr 22 12:53:37 GMT 2015  Olly Betts <olly@survex.com>
642         * matcher/nearpostlist.cc,matcher/nearpostlist.h: Reimplement OP_NEAR
643           check.  The new implementation consistently requires the terms to
644           occur at different positions, and fixes some false negatives.
645         * tests/api_query.cc: Add regression tests as loosenear1.
647 Mon Apr 20 12:53:04 GMT 2015  Olly Betts <olly@survex.com>
649         * matcher/phrasepostlist.cc,matcher/phrasepostlist.h: Reimplement
650           OP_PHRASE check for loose phrases - the existing implementation was
651           buggy, giving both false positives and false negatives in rare
652           cases.  Fixes #653, reported by Jean-Francois Dockes.
653         * tests/api_query.cc: Add regression test loosephrase1.
655 Thu Apr 16 06:51:31 GMT 2015  Olly Betts <olly@survex.com>
657         * common/errno_to_string.cc: Fix to build with Sun's C++ compiler.
659 Thu Apr 16 06:43:40 GMT 2015  Olly Betts <olly@survex.com>
661         * configure.ac: Fix XAPIAN_TEST_CXXFLAGS macro to append to the
662           existing value of the variable, not its name.
664 Wed Apr 15 11:36:40 GMT 2015  Olly Betts <olly@tartarus.org>
666         * tests/api_wrdb.cc: Just #ifdef out the problematic part of the
667           adddoc5 testcase for clang.
669 Wed Apr 15 06:25:13 GMT 2015  Olly Betts <olly@survex.com>
671         * common/serialise-double.cc: Fix bug in recent fix.
672         * tests/unittest.cc: Extend serialise_double() to provide regression
673           test.
675 Thu Apr 09 00:40:24 GMT 2015  Olly Betts <olly@survex.com>
677         * net/remoteconnection.h: Avoid compiler warning from clang in new
678           getaddrinfo() code.
680 Wed Apr 08 11:59:00 GMT 2015  Olly Betts <olly@survex.com>
682         * common/serialise-double.cc: Add missing cast to unsigned char when
683           we check if the value will fit in the double type.  On machines with
684           IEEE-754 doubles (which is most current platforms), which change
685           makes no difference as we're checking if the value cast to a double
686           is > 255.<something> which is never the case.
688 Wed Apr 08 10:42:43 GMT 2015  Olly Betts <olly@survex.com>
690         * common/serialise-double.cc: Avoid reading one byte past the end of
691           the serialised value.  In practice this was harmless on most
692           platforms, as dbl_max_mantissa is 255 for IEEE-754 format doubles,
693           and at least GCC's std::string keeps the buffer nul-terminated.
694           Reported by Germán M. Bravo in github PR#67.
695         * tests/unittest.cc: Copy the serialised value to a temporary buffer
696           before calling unserialise_double() so that valgrind can detect if
697           we read one byte past the end.
699 Tue Apr 07 23:02:21 GMT 2015  Olly Betts <olly@survex.com>
701         * backends/chert/: Fix problems with get_unique_terms() on a modified
702           chert database.
703         * tests/: Add more test coverage for get_unique_terms().
705 Mon Apr 06 00:22:22 GMT 2015  Olly Betts <olly@survex.com>
707         * tests/harness/backendmanager_multi.cc,
708           tests/harness/backendmanager_remote.cc: Cleaner code for checking
709           the backend subtype.
711 Mon Mar 30 03:22:29 GMT 2015  Olly Betts <olly@survex.com>
713         * backends/flint_lock.cc: If available, use F_DUPFD to dup to a file
714           descriptor which is >= 2.
716 Mon Mar 30 01:16:06 GMT 2015  Olly Betts <olly@survex.com>
718         * api/error.cc,common/safenetdb.h,configure.ac,generate-exceptions,
719           net/remoteconnection.h,net/tcpclient.cc,net/tcpserver.cc: Use
720           getaddrinfo() instead of gethostbyname(), as a step towards
721           IPv6 support (currently we still only look for IPv4 addresses).
722           See #374.
724 Sun Mar 29 03:56:12 GMT 2015  Olly Betts <olly@survex.com>
726         * Makefile.am,docs/Makefile.am: Add missing quoting.
728 Mon Mar 23 06:33:39 GMT 2015  Olly Betts <olly@survex.com>
730         * backends/chert/chert_table.cc,backends/glass/glass_table.cc,
731           common/io_utils.cc,common/io_utils.h,tests/api_backend.cc:
732           Avoid using fds < 3 for writable database tables, as it risks
733           corruption is some code in the same process tries to write to stdout
734           or stderr without realising it is closed.  (Partly addresses #651)
736 Sat Mar 21 22:11:53 GMT 2015  Olly Betts <olly@survex.com>
738         * backends/glass/glass_cursor.cc: Add comment warning that B can't be
739           used in GlassCursor's destructor.
741 Tue Mar 17 03:51:00 GMT 2015  Olly Betts <olly@survex.com>
743         * matcher/exactphrasepostlist.cc: Fixed reversed conditonal for
744           picking the shorter position list for an exact phrase of two terms.
745           The difference this fix makes isn't dramatic, but can be measured
746           (at least with cachegrind).  Thanks to kbwt for spotting this.
748 Fri Mar 13 11:21:37 GMT 2015  Olly Betts <olly@survex.com>
750         * backends/chert/chert_compact.cc: Make sure we open all the tables of
751           a database at the same revision when compacting.  (Fixes #649)
753 Thu Mar 12 04:09:07 GMT 2015  Olly Betts <olly@survex.com>
755         * examples/xapian-metadata.cc: Add 'list' subcommand to list all the
756           metadata keys.
758 Mon Mar 09 03:08:14 GMT 2015  Olly Betts <olly@survex.com>
760         * include/xapian/constants.h,include/xapian/queryparser.h: Doxygen
761           comment wording tweaks.
763 Mon Mar 09 03:07:36 GMT 2015  Olly Betts <olly@survex.com>
765         * include/xapian/constants.h,include/xapian/queryparser.h,
766           include/xapian/weight.h: Doxygen comment formatting tweaks.
768 Sat Mar 07 11:27:23 GMT 2015  Olly Betts <olly@tartarus.org>
770         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Extend the
771           set of characters allowed in the start of a range to be anything
772           except for '(' and characters <= ' '.  This better matches what's
773           accepted for a range end (anything except for ')' and characters <=
774           ' ').  Reported by Jani Nikula.
776 Thu Mar 05 11:13:56 GMT 2015  Olly Betts <olly@survex.com>
778         * backends/dbcheck.cc: When checking a single table, handle the
779           ".glass" extension on glass database tables, and use the extension
780           to guide the decision of which backend the table is from.
782 Thu Mar 05 04:38:21 GMT 2015  Olly Betts <olly@survex.com>
784         * backends/dbcheck.cc: Don't hard-code string length as number.
786 Mon Feb 23 04:48:24 GMT 2015  Olly Betts <olly@survex.com>
788         * api/emptypostlist.cc,api/emptypostlist.h: Fix handling of
789           OP_WILDCARD which expands to no terms when used under OP_SYNONYM.
790         * tests/api_query.cc: Regression test dualprefixwildcard1.
792 Mon Feb 23 04:26:52 GMT 2015  Olly Betts <olly@survex.com>
794         * tests/harness/testsuite.cc: Fix compilation issue with previous
795           change.
797 Thu Feb 19 08:04:17 GMT 2015  Olly Betts <olly@survex.com>
799         * tests/api_anydb.cc,tests/api_nodb.cc,tests/harness/testrunner.cc,
800           tests/harness/testsuite.cc,tests/stemtest.cc: Use std::string's
801           assign() or construct from substring rather than assigning or
802           initialising with the result of calling substr().
804 Tue Feb 17 18:31:25 GMT 2015  Olly Betts <olly@survex.com>
806         * include/Makefile.mk: Ship new file from previous commit.
808 Tue Feb 17 05:14:02 GMT 2015  Olly Betts <olly@survex.com>
810         * api/Makefile.mk,api/constinfo.cc,api/version.cc,include/xapian.h,
811           include/xapian/constinfo.h,include/xapian/stem.h,languages/stem.cc:
812           Put the list of stemmers into the vinfo struct and renamed it to
813           const_info.
815 Mon Feb 16 10:18:51 GMT 2015  Olly Betts <olly@survex.com>
817         * configure.ac,languages/: Merge generate-allsnowballheaders script
818           into collate-sbl.
820 Mon Feb 16 04:15:46 GMT 2015  Olly Betts <olly@survex.com>
822         * backends/chert/chert_check.cc: Fix xapian-check on a single table.
824 Fri Feb 13 10:18:45 GMT 2015  Olly Betts <olly@survex.com>
826         * generate-exceptions: Note that the change to not negate
827           WSAGetLastError() values internally was backported for 1.2.20.
829 Fri Feb 13 05:57:13 GMT 2015  Olly Betts <olly@survex.com>
831         * api/,common/remoteprotocol.h,exception_data.pm,
832           include/xapian/query.h,include/xapian/queryparser.h,matcher/,
833           queryparser/queryparser.lemony,tests/api_qpbackend.cc,
834           tests/queryparsertest.cc,weight/weightinternal.cc,
835           weight/weightinternal.h: Add new OP_WILDCARD query operator, which
836           expands wildcards lazily, so now we create the PostList tree for a
837           wildcard directly, rather than creating an intermediate Query tree.
838           See ticket#48.
840 Wed Feb 11 22:45:26 GMT 2015  Olly Betts <olly@survex.com>
842         * backends/glass/glass_table.cc: mid_point() should never fail to find
843           a split point, but just in case it does, return a usable answer.
845 Wed Feb 11 22:44:35 GMT 2015  Olly Betts <olly@survex.com>
847         * backends/chert/chert_table.cc: mid_point() should never fail to find
848           a split point, but just in case it does, return a usable answer.
850 Mon Feb 09 02:56:54 GMT 2015  Olly Betts <olly@survex.com>
852         * api/queryinternal.cc,matcher/localsubmatch.cc,
853           matcher/localsubmatch.h,matcher/queryoptimiser.h,tests/api_query.cc:
854           Don't convert an unweighted term which indexes all docs to an all
855           docs postlist if we need positional data for it.
857 Sun Jan 25 23:48:34 GMT 2015  Olly Betts <olly@survex.com>
859         * configure.ac: Check for declaration of fdatasync() first, as OS X
860           has a dummy implementation in the library which is not prototyped in
861           any header.  Reported by Vlad Shablinsky.
863 Fri Jan 09 05:19:20 GMT 2015  Olly Betts <olly@survex.com>
865         * backends/glass/glass_freelist.cc: Fix freelist handling to allow for
866           the newly loaded first block of the freelist being already used up.
868 Fri Jan 09 04:38:03 GMT 2015  Olly Betts <olly@survex.com>
870         * common/debuglog.cc: Add '#include "errno_to_string.h"'.
872 Thu Jan 08 05:59:01 GMT 2015  Olly Betts <olly@survex.com>
874         * backends/glass/glass_compact.cc: Fix compaction of position tables
875           for the change in key format.
877 Tue Jan 06 02:22:37 GMT 2015  Olly Betts <olly@survex.com>
879         * HACKING: Now using automake 1.15 and libtool 2.4.4.
881 Mon Jan 05 08:39:47 GMT 2015  Olly Betts <olly@survex.com>
883         * Makefile.am: Remove the generated .pc file on "make distclean".
885 Mon Jan 05 04:43:35 GMT 2015  Olly Betts <olly@survex.com>
887         * backends/glass/glass_table.cc: In enter_key(), we know the insertion
888           point will be the position after the current cursor position, so
889           there's no need to call find_in_block() to locate it.
891 Mon Jan 05 04:42:17 GMT 2015  Olly Betts <olly@survex.com>
893         * backends/glass/glass_table.cc: More assertions that c is valid.
895 Mon Jan 05 01:52:54 GMT 2015  Olly Betts <olly@survex.com>
897         * backends/chert/chert_dbcheck.cc,backends/glass/glass_dbcheck.cc:
898           Cross-check the position and postlist tables and report positional
899           data for non-existent documents.
901 Mon Jan 05 01:28:28 GMT 2015  Olly Betts <olly@survex.com>
903         * backends/glass/glass_dbcheck.cc: Fix decoding of positionlist keys -
904           this hadn't been updated for the key format change.
906 Mon Jan 05 01:25:17 GMT 2015  Olly Betts <olly@survex.com>
908         * backends/glass/glass_check.cc: Check that dir_end is odd.
910 Tue Dec 23 21:26:49 GMT 2014  Olly Betts <olly@survex.com>
912         * backends/chert/chert_table.cc: More assertions about c.
914 Tue Dec 23 04:26:38 GMT 2014  Olly Betts <olly@survex.com>
916         * backends/chert/chert_table.cc: Fix assertion to allow for c being
917           DIR_START - D2 in leaf blocks.
919 Tue Dec 23 04:01:54 GMT 2014  Olly Betts <olly@survex.com>
921         * backends/chert/chert_table.cc: Add more assertions that c has
922           suitable values.
924 Tue Dec 23 03:58:00 GMT 2014  Olly Betts <olly@survex.com>
926         * backends/chert/chert_table.cc: In enter_key(), we know the insertion
927           point will be the position after the current cursor position, so
928           there's no need to call find_in_block() to locate it.
930 Tue Dec 23 03:11:12 GMT 2014  Olly Betts <olly@survex.com>
932         * backends/chert/chert_check.cc: Add check that dir_end is odd.
934 Mon Dec 22 23:28:54 GMT 2014  Olly Betts <olly@survex.com>
936         * backends/chert/chert_table.cc: Document situations in which the
937           cursor can be left pointing before DIR_START.
939 Mon Dec 22 03:39:14 GMT 2014  Olly Betts <olly@survex.com>
941         * backends/glass/glass_freelist.cc: Add more freelist assertions.
943 Mon Dec 22 03:15:50 GMT 2014  Olly Betts <olly@survex.com>
945         * backends/glass/glass_freelist.cc: Allow restricting the number of
946           freelist entries per block by setting GLASS_FREELIST_SIZE.
948 Sun Dec 21 20:55:47 GMT 2014  Olly Betts <olly@survex.com>
950         * include/xapian/weight.h: Document the enum stat_flags values.
952 Sun Dec 21 20:51:47 GMT 2014  Olly Betts <olly@survex.com>
954         * include/xapian/weight.h: Fix indentation.
956 Sat Dec 20 10:40:44 GMT 2014  Sébastien Debrard <sebastien.debrard@gmail.com>
958         * Makefile.am,configure.ac,pkgconfig/,xapian-core.spec.in: Generate a
959           file for pkg-config.  (Fixes#540)
961 Fri Dec 19 22:30:39 GMT 2014  Olly Betts <olly@survex.com>
963         * common/errno_to_string.cc: Need stdlib.h under mingw.
965 Fri Dec 19 04:38:56 GMT 2014  Olly Betts <olly@survex.com>
967         * backends/glass/glass_check.cc: Distinguish between a block in use
968           and in the freelist, and a block in the freelist more than once.
970 Fri Dec 19 04:37:14 GMT 2014  Olly Betts <olly@survex.com>
972         * backends/glass/glass_freelist.cc,backends/glass/glass_freelist.h:
973           Avoid any mutual recursion between GlassFreeList::get_block() and
974           GlassFreeList::mark_block_unused().
976 Thu Dec 18 10:28:17 GMT 2014  Olly Betts <olly@survex.com>
978         * common/safesyssocket.h: Include safeerrno.h when we use errno.
980 Thu Dec 18 06:17:18 GMT 2014  Olly Betts <olly@survex.com>
982         * net/tcpclient.cc: Use POSIX O_NONBLOCK in preference to O_NDELAY
983           which has different semantics on BSD and System V.
985 Wed Dec 17 02:59:54 GMT 2014  Olly Betts <olly@survex.com>
987         * configure.ac: Drop probe for gethostbyaddr() - we've not used it for
988           over 8.5 years (since e33972a5).
990 Wed Dec 17 02:33:36 GMT 2014  Olly Betts <olly@survex.com>
992         * common/internaltypes.h: Take CHAR_BIT into account when choosing
993           types for uint2, uint4 and uint8.
995 Wed Dec 17 02:30:14 GMT 2014  Olly Betts <olly@survex.com>
997         * api/error.cc,backends/chert/chert_btreebase.cc,
998           backends/chert/chert_table.cc,backends/flint_lock.cc,
999           backends/glass/glass_table.cc,common/,configure.ac,
1000           net/remoteconnection.cc: Add errno_to_string() function which is
1001           thread-safe where a suitable alternative to strerror() exists.
1003 Tue Dec 16 06:54:32 GMT 2014  Olly Betts <olly@survex.com>
1005         * configure.ac: Add missing m4 quoting.  Generated configure file is
1006           unchanged.
1008 Tue Dec 16 06:28:21 GMT 2014  Olly Betts <olly@survex.com>
1010         * configure.ac: Don't check for strerror - it's specified by C89, and
1011           we weren't using the result of the check anyway.
1013 Tue Dec 16 03:59:39 UTC 2014  Sébastien Debrard <sebastien.debrard@gmail.com>
1015         * api/omenquire.cc,backends/multi/multi_postlist.cc,
1016           tests/api_anydb.cc,tests/api_db.cc: Prefer ++x to x++.
1018 Tue Dec 16 03:50:41 GMT 2014  Olly Betts <olly@survex.com>
1020         * configure.ac: Define MINGW_HAS_SECURE_API under mingw to get
1021           _putenv_s() declared in stdlib.h.
1023 Sun Dec 14 09:42:01 GMT 2014  Olly Betts <olly@survex.com>
1025         * api/omdatabase.cc,include/xapian/database.h: Make overloaded forms of
1026           Database::allterms_begin() and Database::allterms_end() use default
1027           parameters instead.
1029 Sat Dec 13 02:48:10 GMT 2014  Olly Betts <olly@survex.com>
1031         * api/error.cc,generate-exceptions,net/remoteconnection.h: On
1032           Windows, avoid defining EADDRINUSE, etc if they're already defined,
1033           and use WSAE* constants un-negated, as they start from a high value
1034           so won't collide with E* constants.
1036 Fri Dec 12 03:41:02 GMT 2014  Olly Betts <olly@survex.com>
1038         * backends/glass/glass_freelist.cc: Avoid infinite recursion when we
1039           hit the end of the freelist block we're reading and the end of the
1040           block we're writing at the same time.
1042 Thu Dec 11 20:45:28 GMT 2014  Olly Betts <olly@survex.com>
1044         * backends/glass/glass_version.cc: Use str() rather than sprintf().
1046 Thu Dec 11 03:21:46 GMT 2014  Olly Betts <olly@survex.com>
1048         * net/tcpserver.cc: Fix comment.
1050 Thu Dec 11 03:20:56 GMT 2014  Olly Betts <olly@survex.com>
1052         * api/compactor.cc,api/error.cc,api/replication.cc,
1053           backends/chert/chert_databasereplicator.cc,
1054           backends/chert/chert_table.cc,
1055           backends/glass/glass_databasereplicator.cc,
1056           backends/glass/glass_table.cc: Remove unnecessary includes of
1057           <cstdio> in files which used to need it for rename() but no longer
1058           do.
1060 Fri Dec 05 11:30:05 GMT 2014  Olly Betts <olly@survex.com>
1062         * ChangeLog,ChangeLog.0,ChangeLog.examples,
1063           backends/chert/chert_btreebase.cc,backends/chert/chert_database.h,
1064           languages/compiler/driver.c,languages/turkish.sbl: Fix typos reported
1065           by Veres Lajos.
1067 Thu Dec 04 02:17:46 GMT 2014  Olly Betts <olly@survex.com>
1069         * configure.ac: Fix detection of fdatasync(), which appears to have
1070           been broken practically forever - this means we've probably been
1071           using fsync() instead, which probably isn't a big additional
1072           overhead.
1074 Wed Dec 03 09:38:24 GMT 2014  Olly Betts <olly@survex.com>
1076         * docs/Makefile.am: Quote png filenames we run through pngcrush to
1077           avoid problems if there's an oddly-named extra PNG file in the
1078           directory.
1080 Tue Dec 02 02:58:59 GMT 2014  Olly Betts <olly@survex.com>
1082         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
1083           backends/chert/chert_databasereplicator.cc,backends/,
1084           backends/glass/glass_compact.cc,backends/glass/glass_database.cc,
1085           backends/glass/glass_databasereplicator.cc,
1086           backends/remote/remote-database.cc,backends/remote/remote-database.h,
1087           include/xapian/constants.h,include/xapian/database.h,
1088           include/xapian/dbfactory.h,net/,tests/api_backend.cc: Add new flag
1089           Xapian::DB_RETRY_LOCK which allows opening a database for writing
1090           to wait until it can get a write lock.  (fixes#275)
1092 Tue Dec 02 02:55:33 GMT 2014  Olly Betts <olly@survex.com>
1094         * backends/glass/glass_database.h: Document parameter to internal
1095           method
1097 Sun Nov 30 15:55:20 GMT 2014  James Aylett <james@tartarus.org>
1099         * HACKING: improve OS X docs build information.
1101 Thu Nov 27 04:00:38 GMT 2014  Olly Betts <olly@survex.com>
1103         * backends/dbcheck.cc,backends/flint_lock.cc,backends/flint_lock.h,
1104           examples/copydatabase.cc,tests/api_backend.cc: Drop support code for
1105           building on OS/2 with EMX - EMX was last updated in 2001 and comes
1106           with GCC 3.2.1, which pre-dates C++11 and we're going to require
1107           a compiler with good C++11 support in the near future.
1109 Thu Nov 27 03:15:51 GMT 2014  Olly Betts <olly@survex.com>
1111         * HACKING: Rename svn-ci to xapian-commit (see #621).
1113 Thu Nov 27 03:05:18 GMT 2014  Olly Betts <olly@survex.com>
1115         * backends/flint_lock.cc: Use F_OFD_SETLK where available, which
1116           avoids having to fork() a child process to hold the lock.  This
1117           currently requires Linux kernel >= 3.15, but it has been submitted
1118           to POSIX so hopefully will be widely supported eventually.  Thanks
1119           to Austin Clements for pointing out this now exists.
1121 Wed Nov 26 04:03:45 GMT 2014  Olly Betts <olly@survex.com>
1123         * include/xapian/geospatial.h: Drop documentation of parameter which
1124           the method doesn't actually take.
1126 Wed Nov 26 04:03:24 GMT 2014  Olly Betts <olly@survex.com>
1128         * include/xapian/enquire.h: Fix incorrect parameter name in doxygen
1129           comment.
1131 Wed Nov 26 03:29:28 GMT 2014  Olly Betts <olly@survex.com>
1133         * docs/doxygen_source.conf.in: @MAKEINDEX@ isn't substituted, so just
1134           use literal 'makeindex'.
1136 Wed Nov 26 03:28:32 GMT 2014  Olly Betts <olly@survex.com>
1138         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Update to
1139           avoid warnings about obsolete tags from newer doxygen.
1141 Tue Nov 25 21:13:51 GMT 2014  Olly Betts <olly@survex.com>
1143         * configure.ac: Update link to cygwin FAQ.
1145 Tue Nov 25 01:55:17 GMT 2014  Olly Betts <olly@survex.com>
1147         * HACKING: Update details of building Xapian packages.
1149 Tue Nov 25 01:48:44 GMT 2014  Olly Betts <olly@survex.com>
1151         * HACKING: Update for SVN to git migration.
1153 Mon Nov 24 19:50:32 GMT 2014  Olly Betts <olly@survex.com>
1155         * NEWS,configure.ac: Update for 1.3.2.
1157 Mon Nov 24 03:59:02 GMT 2014  Olly Betts <olly@survex.com>
1159         * languages/Makefile.mk: Add missing '\' at end of line in previous
1160           commit.
1162 Mon Nov 24 03:14:22 GMT 2014  Olly Betts <olly@survex.com>
1164         * languages/: Install the stopword lists as
1165           ${pkgdatadir}/stopwords/LANG.list.
1167 Sun Nov 23 23:56:02 GMT 2014  Olly Betts <olly@survex.com>
1169         * HACKING,INSTALL,NEWS,NEWS.SKELETON,api/compactor.cc,
1170           api/replication.cc,backends/Makefile.mk,backends/brass/,
1171           backends/databasereplicator.cc,backends/dbcheck.cc,
1172           backends/dbfactory.cc,backends/glass/,bin/Makefile.mk,
1173           common/Makefile.mk,common/pack.h,common/pretty.h,configure.ac,docs/,
1174           include/xapian/,net/replication_protocol.rst,tests/,tests/harness/:
1175           Rename 'brass' backend to 'glass'.
1177 Sun Nov 23 22:23:00 GMT 2014  Olly Betts <olly@survex.com>
1179         * backends/brass/brass_freelist.cc,backends/brass/brass_freelist.h:
1180           Set the revision in BrassFreeList::write_block().
1182 Thu Nov 20 21:36:35 GMT 2014  Olly Betts <olly@survex.com>
1184         * backends/brass/brass_freelist.h: Reset flw_appending when we unpack
1185           a freelist.
1187 Thu Nov 20 21:36:15 GMT 2014  Olly Betts <olly@survex.com>
1189         * backends/brass/brass_freelist.cc: Fix comment typo.
1191 Thu Nov 20 03:53:32 GMT 2014  Olly Betts <olly@survex.com>
1193         * backends/brass/brass_freelist.cc: Fix end-of-block condition when
1194           walking the freelist during database consistency checking.
1196 Thu Nov 20 02:32:37 GMT 2014  Olly Betts <olly@survex.com>
1198         * backends/brass/brass_freelist.cc: Wrap comment line.
1200 Thu Nov 20 02:31:54 GMT 2014  Olly Betts <olly@survex.com>
1202         * matcher/exactphrasepostlist.cc: Straighten out confusing comments.
1204 Sun Nov 16 23:49:38 GMT 2014  Olly Betts <olly@survex.com>
1206         * NEWS: Update.
1208 Thu Nov 13 20:35:25 GMT 2014  Olly Betts <olly@survex.com>
1210         * backends/brass/brass_freelist.cc: Wrap comment line.
1212 Tue Nov 11 22:17:48 GMT 2014  Olly Betts <olly@survex.com>
1214         * api/queryinternal.cc,api/queryinternal.h: Move all the get_op()
1215           definitions out of the header as they're virtual and there's not
1216           much scope for devirtualisation.
1218 Tue Nov 11 02:58:05 GMT 2014  Olly Betts <olly@survex.com>
1220         * exception_data.pm: Just have one copy of the licence boilerplate.
1222 Sun Nov 09 22:38:04 GMT 2014  Olly Betts <olly@survex.com>
1224         * NEWS: Update.
1226 Fri Nov 07 00:49:22 GMT 2014  Olly Betts <olly@survex.com>
1228         * queryparser/lemon.c: Sync change from upstream: "Modify the
1229           %nonassoc directive in lemon so that it generates a run-time error
1230           rather than a parsing conflict. This changes is due to a bug report
1231           on the mailing list. SQLite does not use the %nonassoc directive in
1232           its grammar so this change does not affect SQLite."  Generated code
1233           is identical.
1235 Fri Nov 07 00:44:57 GMT 2014  Olly Betts <olly@survex.com>
1237         * queryparser/lemon.c: Sync change from upstream: "Fix harmless
1238           compiler warning in LEMON."  Generated code is identical.
1240 Fri Nov 07 00:39:44 GMT 2014  Olly Betts <olly@survex.com>
1242         * queryparser/lemon.c: Sync change from upstream: "In LEMON, limit the
1243           size of the grammar file to 100MB. This ensures that the program
1244           will never experience integer overflow. To be doubly sure, use
1245           calloc() instead of malloc() when allocating arrays." Generated code
1246           is identical.
1248 Fri Nov 07 00:34:26 GMT 2014  Olly Betts <olly@survex.com>
1250         * queryparser/lemon.c: Sync change from upstream: "Add the
1251           "%token_class" directive to the LEMON parser generator. This opens
1252           up the possibility of simplifying the parser. Also remove all calls
1253           to sprintf(), strcpy(), and strcat() from LEMON to avoid compiler
1254           warnings on OpenBSD. (Aside: It is this change to avoid harmless
1255           compiler warnings that was the cause of the reason spat of bugs.)"
1256           Generated code is identical aside from whitespace changes in
1257           queryparser_token.h.
1259 Fri Nov 07 00:17:18 GMT 2014  Olly Betts <olly@survex.com>
1261         * queryparser/lemon.c: Sync change from upstream: "In Lemon, when
1262           comparing the output to the *.h file to see if it has changed, make
1263           sure that the proposed new output and the preexisting output are the
1264           same size before deciding that they are the same".  Generated code
1265           is identical, but this will fix misbehaviour in a build from a
1266           non-clean tree if new tokens get appended to queryparser_token.h.
1268 Thu Nov 06 22:23:27 GMT 2014  Olly Betts <olly@survex.com>
1270         * HACKING: Now using doxygen 1.8.8.
1272 Thu Nov 06 04:18:32 GMT 2014  Olly Betts <olly@survex.com>
1274         * HACKING: Now using libtool 2.4.3.
1276 Wed Nov 05 21:38:45 GMT 2014  Olly Betts <olly@survex.com>
1278         * backends/chert/chert_check.cc: Handle DBCHECK_FIX for a zero sized
1279           .DB file.
1281 Wed Nov 05 21:02:21 GMT 2014  Olly Betts <olly@survex.com>
1283         * backends/chert/chert_check.cc: After we successfully regenerate
1284           baseA, remove any empty baseB file to prevent it causing problems.
1285           Tracked down with help from Phil Hands.
1287 Wed Nov 05 20:58:27 GMT 2014  Olly Betts <olly@survex.com>
1289         * backends/chert/chert_check.cc: Fix DBCHECK_FIX to be able to find a
1290           level 0 root block (happens when a table has sufficiently little
1291           data in that it all fits in one block).
1293 Sun Nov 02 21:14:43 GMT 2014  Olly Betts <olly@survex.com>
1295         * docs/deprecation.rst: Fix typo.
1297 Tue Oct 28 23:35:10 GMT 2014  Olly Betts <olly@survex.com>
1299         * docs/replication.rst: Fix typo.
1301 Tue Oct 28 02:34:54 GMT 2014  Olly Betts <olly@survex.com>
1303         * docs/postingsource.rst: Use a modern class in postingsource example.
1304           (Noted by James Aylett)
1306 Mon Oct 27 21:06:55 GMT 2014  Olly Betts <olly@survex.com>
1308         * docs/,net/Makefile.mk,net/remote_protocol.rst,
1309           net/replication_protocol.rst: Move the protocol docs for the remote
1310           and replication protocols into the net/ subdirectory.
1312 Mon Oct 27 19:19:59 GMT 2014  Olly Betts <olly@survex.com>
1314         * Makefile.am,api/Makefile.mk,api/dir_contents,backends/Makefile.mk,
1315           backends/brass/Makefile.mk,backends/brass/dir_contents,
1316           backends/chert/Makefile.mk,backends/chert/dir_contents,
1317           backends/dir_contents,backends/inmemory/Makefile.mk,
1318           backends/inmemory/dir_contents,backends/multi/Makefile.mk,
1319           backends/multi/dir_contents,backends/remote/Makefile.mk,
1320           backends/remote/dir_contents,bin/Makefile.mk,bin/dir_contents,
1321           common/Makefile.mk,common/dir_contents,configure.ac,dir_contents,
1322           docs/,examples/Makefile.mk,examples/dir_contents,expand/Makefile.mk,
1323           expand/dir_contents,geospatial/Makefile.mk,geospatial/dir_contents,
1324           include/Makefile.mk,include/dir_contents,include/xapian/dir_contents,
1325           languages/Makefile.mk,languages/dir_contents,m4-macros/dir_contents,
1326           m4/dir_contents,matcher/Makefile.mk,matcher/dir_contents,
1327           net/Makefile.mk,net/dir_contents,preautoreconf,
1328           queryparser/Makefile.mk,queryparser/dir_contents,tests/Makefile.am,
1329           tests/dir_contents,tests/harness/Makefile.mk,
1330           tests/harness/dir_contents,tests/perftest/Makefile.mk,
1331           tests/perftest/dir_contents,tests/soaktest/Makefile.mk,
1332           tests/soaktest/dir_contents,unicode/Makefile.mk,unicode/dir_contents,
1333           weight/Makefile.mk,weight/dir_contents: Remove the dir_contents files
1334           and all the machinery to handle them.
1336 Sat Oct 25 19:25:06 GMT 2014  Olly Betts <olly@survex.com>
1338         * api/query.cc,api/queryinternal.cc,api/smallvector.h,
1339           include/xapian/query.h: Stop using a reference where we may end up
1340           passing *NULL, as that's invalid.  Thanks Nick Lewycky and ubsan
1341           for helping track this down.
1342         * tests/api_postingsource.cc: Fix testsuite to avoid passing literal
1343           NULL - pass nullptr for C++11 and don't bother with that part of
1344           the testcase for older C++.
1346 Sat Oct 25 19:05:07 GMT 2014  Olly Betts <olly@survex.com>
1348         * weight/dlhweight.cc,weight/dphweight.cc: Avoid dividing by zero when
1349           the collection size is 0.
1351 Fri Oct 24 23:04:24 GMT 2014  Gaurav Arora <gauravarora.daiict@gmail.com>
1353         * api/registry.cc,include/xapian/weight.h,tests/api_backend.cc,
1354           tests/api_nodb.cc,tests/api_weight.cc,weight/Makefile.mk,
1355           weight/lmweight.cc: Add Unigram LMWeight class.
1357 Tue Oct 21 19:19:32 GMT 2014  Olly Betts <olly@survex.com>
1359         * NEWS: Update for 1.2.19 release.
1361 Mon Oct 20 00:47:32 GMT 2014  Olly Betts <olly@survex.com>
1363         * .gitignore,docs/.gitignore,tests/.gitignore,unicode/.gitignore:
1364           Update to ignore new generated files.
1366 Sat Oct 18 06:15:52 GMT 2014  Olly Betts <olly@survex.com>
1368         * include/xapian/enquire.h: Don't provide a default expansion scheme
1369           name in Enquire::set_expansion_scheme().
1371 Fri Oct 17 00:33:55 GMT 2014  Olly Betts <olly@survex.com>
1373         * api/queryinternal.cc,matcher/: Split NearPostList out into separate
1374           source file and header.
1376 Wed Oct 15 04:33:31 GMT 2014  Olly Betts <olly@survex.com>
1378         * api/queryinternal.cc,matcher/exactphrasepostlist.cc: We never try to
1379           build an ExactPhrasePostList over 0 or 1 terms, so simply assert we
1380           don't, rather than having an explicit check for it in the code.
1382 Tue Oct 14 02:47:02 GMT 2014  Olly Betts <olly@survex.com>
1384         * matcher/phrasepostlist.cc,tests/api_backend.cc: If the anchor term
1385           for a phrase is the first or last, set the min or max to its
1386           position respectively.  Fixes the testcase in #657, but may not be
1387           a complete fix.
1389 Sun Oct 12 12:03:10 GMT 2014  Olly Betts <olly@survex.com>
1391         * NEWS: Update.
1393 Fri Oct 10 10:53:38 GMT 2014  Olly Betts <olly@survex.com>
1395         * backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc: The
1396           table is sync-ed after the base file, so it's the last table we want
1397           to full-sync, not the last base file.
1399 Thu Oct 09 02:39:00 GMT 2014  Olly Betts <olly@survex.com>
1401         * common/debuglog.h: Suppress unused typedef warnings from debugging
1402           logging macros, which occur in functions which always exit via
1403           throwing an exception.
1405 Thu Oct 09 01:45:00 GMT 2014  Olly Betts <olly@survex.com>
1407         * tests/harness/fdtracker.cc: Fix code typo in recent change to skip
1408           apparent leaks of /dev/urandom.
1410 Thu Oct 09 01:43:02 GMT 2014  Olly Betts <olly@survex.com>
1412         * common/pretty.h: Fix debug logging code to compile with clang.
1413           (fixes #657, reported by Germán M. Bravo)
1415 Wed Oct 08 04:43:05 GMT 2014  Olly Betts <olly@survex.com>
1417         * matcher/multimatch.cc: If an empty RSet is specified, just handle it
1418           as if no RSet were specified.
1420 Mon Oct 06 21:41:58 GMT 2014  Olly Betts <olly@survex.com>
1422         * tests/Makefile.am: Remove .replicatmp upon "make clean".
1424 Fri Sep 19 05:31:15 GMT 2014  Olly Betts <olly@survex.com>
1426         * include/xapian/enquire.h: Fix compilation with clang.  Reported by
1427           Germán M. Bravo.
1429 Fri Sep 12 17:54:34 GMT 2014  Olly Betts <olly@survex.com>
1431         * docs/overview.rst: Add missing database path to example of using
1432           xapian-progsrv in a stub database file.
1434 Thu Sep 11 21:33:49 GMT 2014  Olly Betts <olly@survex.com>
1436         * include/Makefile.mk,include/xapian/enquire.h,
1437           include/xapian/iterator.h: Add simple API to help with creating
1438           language-idiomatic iterator wrappers.
1440 Wed Sep 10 17:02:18 GMT 2014  Olly Betts <olly@survex.com>
1442         * api/queryinternal.cc: If we hit an unknown query serialisation,
1443           report the numeric code for it in the exception thrown.
1445 Wed Sep 10 16:59:20 GMT 2014  Olly Betts <olly@survex.com>
1447         * tests/queryparsertest.cc: Enable some disabled cases which actually
1448           work (in some cases with slightly tweaked expected answers which are
1449           equivalent to those that were shown).
1451 Fri Sep 05 17:41:53 GMT 2014  Olly Betts <olly@survex.com>
1453         * tests/harness/fdtracker.cc: Don't report apparent leaks of fds
1454           opened on /dev/urandom - at least on Linux, something in the C
1455           library seems to lazily open it, and the report of a possible leak
1456           followed by assurance that it's OK really is just noise we could
1457           do without.
1459 Fri Sep 05 14:06:08 GMT 2014  Olly Betts <olly@survex.com>
1461         * common/pretty.h: Add new brass-related types.
1463 Thu Sep 04 20:51:16 GMT 2014  Olly Betts <olly@survex.com>
1465         * backends/dbfactory.cc: Fix incorrect return type in logging
1466           annotations for InMemory::open().
1468 Thu Sep 04 20:48:37 GMT 2014  Olly Betts <olly@survex.com>
1470         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
1471           Fix logging annotations for get_freqs() to reflect that it now has
1472           void return type.
1474 Thu Sep 04 20:21:32 GMT 2014  Olly Betts <olly@survex.com>
1476         * api/,backends/brass/,backends/chert/,backends/dbfactory_remote.cc,
1477           matcher/mergepostlist.cc,matcher/remotesubmatch.cc,
1478           net/progclient.cc: Add missing RETURN() markup for debug logging,
1479           highlighted by warning from recent GCC.
1481 Thu Sep 04 18:02:38 GMT 2014  Olly Betts <olly@survex.com>
1483         * backends/brass/brass_freelist.cc,backends/brass/brass_freelist.h:
1484           Make the BrassTable parameter a const pointer.
1486 Thu Sep 04 17:13:57 GMT 2014  Olly Betts <olly@survex.com>
1488         * common/io_utils.cc: Reading or writing a block will almost always
1489           complete in one call, so streamline that case.
1491 Wed Sep 03 19:30:00 GMT 2014  Olly Betts <olly@survex.com>
1493         * common/internaltypes.h: Update comment to reflect C++11 now being
1494           out.
1496 Wed Sep 03 19:29:09 GMT 2014  Olly Betts <olly@survex.com>
1498         * common/internaltypes.h,configure.ac: Make uint2 available.
1500 Wed Sep 03 19:27:41 GMT 2014  Olly Betts <olly@survex.com>
1502         * backends/brass/brass_database.h: Remove method which is declared but
1503           never defined.
1505 Wed Sep 03 18:52:40 GMT 2014  Olly Betts <olly@survex.com>
1507         * generate-exceptions,include/xapian/: Use XAPIAN_IN_XAPIAN_H rather
1508           than XAPIAN_INCLUDED_XAPIAN_H in the direct inclusion of subheader
1509           checks.  Currently neither will catch the case of the user including
1510           a sub-header after <xapian.h> since the include guard for the
1511           subheader will stop us getting to the direct inclusion check, but
1512           XAPIAN_IN_XAPIAN_H will work if we move the check outside the
1513           include guard.
1515 Wed Sep 03 18:29:41 GMT 2014  Olly Betts <olly@survex.com>
1517         * include/xapian/constants.h: Hide internal constants from external
1518           users.
1520 Tue Sep 02 14:15:50 GMT 2014  Olly Betts <olly@survex.com>
1522         * backends/brass/brass_spellingwordslist.h: Explicit include
1523           brass_cursor.h since we actually use BrassCursor here.
1525 Mon Sep 01 22:03:11 GMT 2014  Olly Betts <olly@survex.com>
1527         * tests/api_backend.cc: New testcase readonlyparentdir1 to ensure that
1528           commit works with a read-only parent directory.
1530 Mon Sep 01 21:51:45 GMT 2014  Olly Betts <olly@survex.com>
1532         * tests/harness/testrunner.h: Drop "flint" flag - flint was removed
1533           from trunk some time ago.
1535 Mon Sep 01 21:42:31 GMT 2014  Olly Betts <olly@survex.com>
1537         * backends/brass/: Eliminate brass_doclen_t in favour of just using
1538           Xapian::termcount.
1540 Mon Sep 01 21:28:39 GMT 2014  Olly Betts <olly@survex.com>
1542         * backends/brass/brass_check.h: Tweak to ease upcoming big merge.
1544 Mon Sep 01 20:59:40 GMT 2014  Olly Betts <olly@survex.com>
1546         * backends/brass/,backends/dbcheck.cc: Only create a btree entry for
1547           the document data if it is non-empty.  The table is now lazily
1548           created, so won't exist if no documents have document data set.
1550 Mon Sep 01 16:54:44 GMT 2014  Olly Betts <olly@survex.com>
1552         * backends/brass/brass_record.cc,backends/brass/brass_record.h: Remove
1553           BrassRecordTable::get_doccount() as it is no longer used.
1555 Mon Sep 01 16:51:04 GMT 2014  Olly Betts <olly@survex.com>
1557         * backends/brass/: Track doccount in the database stats.
1559 Mon Sep 01 16:27:15 GMT 2014  Olly Betts <olly@survex.com>
1561         * backends/brass/brass_database.cc: Update comment and exception
1562           message not to talk about "consistent state", as that was to do
1563           with the base files.
1565 Mon Sep 01 14:57:02 GMT 2014  Olly Betts <olly@survex.com>
1567         * backends/brass/brass_database.cc: Explicitly include brass_defs.h.
1569 Mon Sep 01 14:48:01 GMT 2014  Olly Betts <olly@survex.com>
1571         * backends/brass/: Eliminate backends/brass/brass_types.h.
1573 Fri Aug 29 21:06:22 GMT 2014  Olly Betts <olly@survex.com>
1575         * backends/dbcheck.cc: Fix checking a single brass table.
1577 Thu Aug 28 16:04:59 GMT 2014  Olly Betts <olly@survex.com>
1579         * backends/brass/brass_check.cc,backends/chert/chert_check.cc,
1580           bin/xapian-check.cc,include/xapian/constants.h: Rename
1581           DBCHECK_SHOW_BITMAP to DBCHECK_SHOW_FREELIST.
1583 Tue Aug 26 22:31:32 GMT 2014  Olly Betts <olly@survex.com>
1585         * NEWS: Update.
1587 Fri Aug 22 09:09:52 GMT 2014  Gaurav Arora <gauravarora.daiict@gmail.com>
1589         * api/,backends/brass/,backends/chert/,
1590           backends/contiguousalldocspostlist.cc,
1591           backends/contiguousalldocspostlist.h,backends/database.h,
1592           backends/inmemory/inmemory_database.cc,
1593           backends/inmemory/inmemory_database.h,
1594           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
1595           backends/remote/,common/remoteprotocol.h,docs/sorting.rst,
1596           include/xapian/database.h,include/xapian/postingiterator.h,
1597           include/xapian/weight.h,matcher/,net/remoteserver.cc,
1598           net/remoteserver.h,tests/,weight/: Provide the number of distinct
1599           terms in the document to weighting schemes.  The current
1600           implementation for the disk-based backends is a bit inefficient as
1601           it has to look at the termlist table entry for the document.
1603 Thu Aug 21 12:29:57 GMT 2014  Olly Betts <olly@survex.com>
1605         * weight/weight.cc: Add missing parameter to debug logging for
1606           Weight::init_().
1608 Tue Aug 19 14:25:39 GMT 2014  Olly Betts <olly@survex.com>
1610         * backends/brass/brass_table.h: Don't sync handles for tables which
1611           aren't open.  Reported by Austin Clements.
1613 Fri Aug 15 13:13:43 GMT 2014  Olly Betts <olly@survex.com>
1615         * HACKING: freecode no longer accepts updates, so drop that item from
1616           the release checklist.
1618 Wed Aug 13 23:55:24 GMT 2014  Olly Betts <olly@survex.com>
1620         * backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc:
1621           Only full sync the final base file written.
1623 Mon Aug 11 05:30:20 GMT 2014  Olly Betts <olly@survex.com>
1625         * configure.ac: For Sun's C++ compiler, pass -library=Crun separately
1626           since libtool looks for " -library=stlport4 " (with the spaces).
1627           (fixes#650)
1629 Mon Aug 11 03:00:15 GMT 2014  Olly Betts <olly@survex.com>
1631         * configure.ac: Rename XAPIAN_TEST_CXXFLAGS_ to XAPIAN_TEST_CXXFLAGS
1632           (since the latter is never used) and make it take a variable to
1633           add the flags to.  Also, fix it to restore CXXFLAGS correctly if
1634           the success case contains "break".
1636 Wed Aug 06 10:49:46 GMT 2014  Olly Betts <olly@survex.com>
1638         * include/xapian/compactor.h: Fix formatting of doxygen comment.
1640 Wed Aug 06 10:49:20 GMT 2014  Olly Betts <olly@survex.com>
1642         * include/xapian/constants.h: Whitespace tweak.
1644 Wed Aug 06 10:08:09 GMT 2014  Olly Betts <olly@survex.com>
1646         * backends/brass/brass_version.cc,common/io_utils.h,
1647           include/xapian/constants.h: Add DB_FULL_SYNC flag - if this is set
1648           for a database, we use the Mac OS X F_FULL_SYNC instead of
1649           fdatasync()/fsync()/etc on the version file when committing.
1651 Mon Aug 04 05:58:13 GMT 2014  Olly Betts <olly@survex.com>
1653         * backends/brass/brass_compact.cc: Whitespace tweak.
1655 Mon Aug 04 05:57:27 GMT 2014  Olly Betts <olly@survex.com>
1657         * backends/brass/brass_compact.cc: When compacting, sync all the
1658           tables together at the end.
1660 Mon Aug 04 05:42:21 GMT 2014  Olly Betts <olly@survex.com>
1662         * backends/brass/brass_compact.cc,backends/brass/brass_version.cc:
1663           Clean up temporary file in BrassVersion::sync() in all failure
1664           cases.
1666 Mon Aug 04 05:21:02 GMT 2014  Olly Betts <olly@survex.com>
1668         * backends/brass/: In DB_DANGEROUS mode, update the version file
1669           in-place.
1671 Fri Aug 01 02:49:57 GMT 2014  Olly Betts <olly@survex.com>
1673         * backends/brass/brass_compact.cc: Lock the target database while
1674           we're compacting to it, which has the side effect of creating the
1675           'flintlock' file there.
1677 Fri Aug 01 02:35:35 GMT 2014  Olly Betts <olly@survex.com>
1679         * include/xapian/visibility.h: Add link to GCC Visibility wiki page.
1681 Thu Jul 31 02:54:40 GMT 2014  Olly Betts <olly@survex.com>
1683         * tests/api_weight.cc,weight/bb2weight.cc: Avoid calculating logs of 0
1684           or negative values by clamping the normalise wdf to at most one less
1685           than the collection frequency, and the collection size to at least
1686           2.
1688 Thu Jul 31 02:48:35 GMT 2014  Olly Betts <olly@survex.com>
1690         * tests/api_weight.cc,weight/bb2weight.cc: Fix upper bound for
1691           BB2Weight to not be scaled twice by wqf and factor.
1693 Wed Jul 30 05:48:46 GMT 2014  Olly Betts <olly@survex.com>
1695         * weight/bb2weight.cc: Fix comment typo, and capitalise "Stirling" in
1696           comments.
1698 Wed Jul 30 05:47:31 GMT 2014  Olly Betts <olly@survex.com>
1700         * weight/bb2weight.cc: Whitespace cleanup.
1702 Wed Jul 30 05:43:59 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1704         * include/xapian/weight.h,weight/bb2weight.cc: Optimise BB2Weight and
1705           fix incorrect upper bound in some cases.
1707 Tue Jul 29 07:20:57 GMT 2014  Olly Betts <olly@survex.com>
1709         * backends/brass/brass_version.cc: Remove assertion that table sizes
1710           are all the same, and redundant assertion that the unserialised
1711           blocksize is >= 2048.  Fixes set-but-not-used warning in
1712           non-assertion build.
1714 Mon Jul 28 06:35:45 GMT 2014  Olly Betts <olly@survex.com>
1716         * backends/brass/brass_databasereplicator.cc,
1717           backends/brass/brass_databasereplicator.h,
1718           backends/brass/brass_table.cc: Replace enum table_id with enum
1719           Brass::table_type.
1721 Mon Jul 28 04:28:12 GMT 2014  Olly Betts <olly@survex.com>
1723         * NEWS: Note the freelist implementation fixed #40.
1725 Mon Jul 28 04:26:07 GMT 2014  Olly Betts <olly@survex.com>
1727         * api/compactor.cc,backends/brass/,backends/dbcheck.cc,
1728           tests/api_wrdb.cc: Eliminate the base files, and instead store the
1729           root block and freelist pointers in the "iambrass" file.
1731 Mon Jul 28 03:22:22 GMT 2014  Olly Betts <olly@survex.com>
1733         * backends/brass/brass_databasereplicator.cc: Remove variable which is
1734           set but never used.
1736 Sun Jul 27 01:56:58 GMT 2014  Olly Betts <olly@survex.com>
1738         * backends/dbcheck.cc: Don't try to write output when no output stream
1739           is specified in the case where the database open fails and so we
1740           can't check changes files.
1742 Thu Jul 24 21:12:23 GMT 2014  Olly Betts <olly@survex.com>
1744         * NEWS: Update.
1746 Fri Jul 11 10:44:48 GMT 2014  Olly Betts <olly@survex.com>
1748         * weight/bm25weight.cc: Improve BM25 upper bound in the case when our
1749           wdf upper bound > our document length lower bound.  Thanks to
1750           Craig Macdonald for pointing out this trick.
1752 Thu Jul 10 13:29:50 GMT 2014  Olly Betts <olly@survex.com>
1754         * weight/bm25weight.cc: Pre-multiply termweight by (param_k1 + 1).
1756 Sat Jun 28 11:00:49 GMT 2014  Olly Betts <olly@survex.com>
1758         * languages/Makefile.mk: Sort the stop.list files (since loading a
1759           sorted list is likely to be more efficient) and remove any duplicate
1760           entries.
1762 Sat Jun 28 10:48:03 GMT 2014  Olly Betts <olly@survex.com>
1764         * languages/stopwords/finnish/stop.txt,
1765           languages/stopwords/norwegian/stop.txt: Remove duplicate entries.
1767 Sat Jun 28 10:38:56 GMT 2014  Olly Betts <olly@survex.com>
1769         * languages/stopwords/russian/stop.txt: Convert from KOI8-R to UTF-8.
1771 Mon Jun 23 02:26:24 GMT 2014  Olly Betts <olly@survex.com>
1773         * configure.ac: configure.ac: Add hints for which package to install
1774           for rst2html
1776 Mon Jun 23 00:54:05 GMT 2014  Olly Betts <olly@survex.com>
1778         * configure.ac: Use AS_MKDIR_P instead of test -d || mkdir.
1780 Sun Jun 22 07:32:11 GMT 2014  Olly Betts <olly@survex.com>
1782         * NEWS: Update.
1784 Sat Jun 21 03:45:19 GMT 2014  Olly Betts <olly@survex.com>
1786         * docs/Makefile.am: Use $(MKDIR_P) instead of test -d || mkdir 3
1787           times.
1789 Sat Jun 21 03:44:37 GMT 2014  Olly Betts <olly@survex.com>
1791         * languages/Makefile.mk: Generate the directories for the minimised
1792           stopword files in a VPATH build.
1794 Tue Jun 17 13:36:40 GMT 2014  Assem Chelli <assem.ch@gmail.com>
1796         * include/xapian/queryparser.h: Add the example of initializing
1797           SimpleStopper using a file as a doccomment.
1799 Tue Jun 17 13:30:09 GMT 2014  Olly Betts <olly@survex.com>
1801         * languages/Makefile.mk: Remove trailing whitespace (some of which
1802           breaks the parsing to get the lists of source files to pass to
1803           doxygen).
1805 Tue Jun 17 13:24:59 GMT 2014  Assem Chelli <assem.ch@gmail.com>
1807         * languages/: Add stopwords lists from Snowball plus an Arabic one.
1809 Tue Jun 17 11:48:12 GMT 2014  Olly Betts <olly@survex.com>
1811         * weight/dlhweight.cc: Fix comment typo.
1813 Tue Jun 17 11:46:40 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1815         * weight/dlhweight.cc: Improve the upper bound on DLH ~3-4 times.
1817 Tue Jun 17 11:32:22 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1819         * include/xapian/weight.h,weight/dphweight.cc: Combine factor into
1820           constants calculated in init().  Improve get_maxpart() a little
1821           in the (common) case where the wdf upper bound is less than half
1822           the document length upper bound.
1824 Tue Jun 17 03:42:36 GMT 2014  Olly Betts <olly@survex.com>
1826         * tests/api_unicode.cc,unicode/UnicodeData-README.txt,
1827           unicode/UnicodeData.txt: Update to Unicode 7.0.0.
1829 Mon Jun 16 14:13:18 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1831         * weight/dphweight.cc: Improved upper bound for DPH.
1833 Mon Jun 16 13:58:24 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1835         * include/xapian/weight.h,weight/ifb2weight.cc,weight/ineb2weight.cc,
1836           weight/inl2weight.cc: Include 'factor' in the constants we calculate
1837           in init_().
1839 Mon Jun 16 13:53:05 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1841         * include/xapian/weight.h,weight/dlhweight.cc: DLH optimization.
1843 Mon Jun 16 13:02:24 GMT 2014  Olly Betts <olly@survex.com>
1845         * HACKING: Need python3-sphinx to generate docs for python3.
1847 Mon Jun 16 12:37:13 GMT 2014  Assem Chelli <assem.ch@gmail.com>
1849         * HACKING: Note sphinx-doc now needed (for Python bindings API docs).
1851 Mon Jun 16 05:35:03 GMT 2014  Olly Betts <olly@survex.com>
1853         * HACKING,configure.ac,docs/Makefile.am,docs/doxygen_api.conf.in:
1854           Don't build, ship or install PDF versions of the API docs by
1855           default, but provide an easy way for people to build it for
1856           themselves if they want it.
1858 Mon Jun 16 04:20:40 GMT 2014  Olly Betts <olly@survex.com>
1860         * include/xapian/queryparser.h: Improve the descriptions of the
1861           stem_strategy values.  (Reported by "oilap" on #xapian)
1863 Fri Jun 13 07:52:53 GMT 2014  Olly Betts <olly@survex.com>
1865         * weight/dphweight.cc: Fix some comment typos.
1867 Fri Jun 13 07:47:32 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1869         * include/xapian/weight.h,weight/dphweight.cc: Optimized DPH code.
1871 Fri Jun 13 01:39:07 GMT 2014  Olly Betts <olly@survex.com>
1873         * examples/quest.cc: Fix ordering of "bm25" and "bool" in allegedly
1874           sorted list, so that --weight bm25 and --weight bool work.
1876 Thu Jun 12 13:49:19 GMT 2014  Olly Betts <olly@survex.com>
1878         * matcher/extraweightpostlist.h: Add an assertion that get_sumextra()
1879           returns a weight contribution which is <= the upper bound which
1880           get_maxextra() returns.
1882 Thu Jun 12 13:30:55 GMT 2014  Olly Betts <olly@survex.com>
1884         * api/leafpostlist.cc,matcher/synonympostlist.cc: Add assertions that
1885           get_sumpart() returns a weight contribution which is <= the upper
1886           bound which get_maxpart() returns.
1888 Wed Jun 11 05:34:16 GMT 2014  Olly Betts <olly@survex.com>
1890         * languages/hungarian.sbl: Fix incorrect Unicode codepoints for
1891           o-double-acute and u-double-acute in Hungarian Snowball stemmer.
1892           Reported by Tom Lane to snowball-discuss.
1894 Tue Jun 10 10:59:18 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1896         * include/xapian/weight.h,weight/ineb2weight.cc: Optimized IneB2:
1897           Reduced number of calculations in get_sumpart and tightened upper
1898           bound.
1900 Tue Jun 10 10:23:09 GMT 2014  Olly Betts <olly@survex.com>
1902         * weight/ineb2weight.cc: Fix closing brace indentation.
1904 Tue Jun 10 09:58:18 GMT 2014  Olly Betts <olly@survex.com>
1906         * examples/quest.cc: Rework the weight name lookup to use a table like
1907           the other lookups.  Change the weight names not to include "weight".
1909 Tue Jun 10 08:15:18 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1911         * include/xapian/weight.h,weight/ifb2weight.cc: Optimized
1912           upper bound and weighting formula in IfB2Weight.
1914 Tue Jun 10 05:34:52 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1916         * include/xapian/weight.h,weight/inl2weight.cc: Optimized
1917           upper bound and weighting formula in InL2Weight.
1919 Tue Jun 10 05:09:08 GMT 2014  Olly Betts <olly@survex.com>
1921         * examples/quest.cc: Add --weight option to allow the weighting scheme
1922           to be specified.
1924 Thu Jun 05 03:42:51 GMT 2014  Olly Betts <olly@survex.com>
1926         * api/omdatabase.cc,tests/api_backend.cc: Fix
1927           Database::get_wdf_upper_bound("") not to fail with an assertion.
1929 Tue Jun 03 22:59:10 GMT 2014  Olly Betts <olly@survex.com>
1931         * matcher/localsubmatch.cc: Use RETURN() instead of return in methods
1932           with LOGCALL annotations.
1934 Mon Jun 02 13:15:36 GMT 2014  Olly Betts <olly@survex.com>
1936         * docs/Makefile.am: Actually ship, process and install geospatial.rst.
1938 Mon Jun 02 11:40:27 GMT 2014  Olly Betts <olly@survex.com>
1940         * languages/Makefile.mk: Ship collate-sbl script.
1942 Thu May 29 12:13:06 GMT 2014  Olly Betts <olly@survex.com>
1944         * HACKING: Replace a link to the outdated autotools "goat book" with a
1945           link to the "Portable Shell" chapter of the autoconf manual.
1947 Thu May 29 03:31:10 GMT 2014  Olly Betts <olly@survex.com>
1949         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Allow
1950           the user to specify how long a snippet they want.  Only add "..." if
1951           the sample was actually truncated.
1953 Wed May 28 12:52:26 GMT 2014  Olly Betts <olly@survex.com>
1955         * include/xapian/snipper.h: Add the standard guards to prevent user
1956           code from including this header directly.
1958 Tue May 27 04:19:12 GMT 2014  Olly Betts <olly@survex.com>
1960         * include/Makefile.mk: Ship include/xapian/snipper.h in tarball.
1962 Tue May 27 04:03:09 GMT 2014  Olly Betts <olly@survex.com>
1964         * api/snipper.cc,include/xapian/snipper.h,
1965           tests/generate-api_generated: Add missing assignment operator to
1966           Xapian::Snipper class.
1968 Tue May 27 03:43:03 GMT 2014  Olly Betts <olly@survex.com>
1970         * include/xapian/snipper.h: Add missing doxygen comments.
1972 Tue May 27 03:41:08 GMT 2014  Olly Betts <olly@survex.com>
1974         * include/xapian/snipper.h,tests/api_snipper.cc: Whitespace tweaks.
1976 Tue May 27 03:36:19 GMT 2014  Olly Betts <olly@survex.com>
1978         * api/snipper.cc,include/xapian/snipper.h,tests/api_snipper.cc: Remove
1979           getters for obtaining info about the relevance model, and instead
1980           add a get_description() method which includes all such info in the
1981           returned description.
1983 Tue May 27 03:06:36 GMT 2014  Olly Betts <olly@survex.com>
1985         * api/snipper.cc: Use an iterator instead of subscripting.
1987 Tue May 27 03:03:33 GMT 2014  Olly Betts <olly@survex.com>
1989         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Use
1990           appropriate named types rather than "int" or "unsigned int".
1992 Tue May 27 03:02:48 GMT 2014  Olly Betts <olly@survex.com>
1994         * api/snipperinternal.h: Remove constants which are no longer used.
1996 Tue May 27 02:48:44 GMT 2014  Olly Betts <olly@survex.com>
1998         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h:
1999           Rework Snipper methods set_smoothing_coef() and set_window_size() as
2000           optional parameters of generate_snippet().
2002 Tue May 27 02:33:39 GMT 2014  Olly Betts <olly@survex.com>
2004         * api/snipper.cc,api/snipperinternal.h: Just pass rm_docno through to
2005           Snipper::Internal::calculate_rm() as a parameter rather than storing
2006           it in a member variable.
2008 Tue May 27 02:25:41 GMT 2014  Olly Betts <olly@survex.com>
2010         * api/snipper.cc: Use clear() method to empty a container.
2012 Tue May 27 02:22:37 GMT 2014  Olly Betts <olly@survex.com>
2014         * tests/api_snipper.cc: Drop unused <algorithm>.
2016 Tue May 27 02:21:53 GMT 2014  Olly Betts <olly@survex.com>
2018         * api/snipper.cc: Eliminate ret_value variable.
2020 Tue May 27 02:20:25 GMT 2014  Olly Betts <olly@survex.com>
2022         * api/snipper.cc: Avoid unnecessary substr operations.
2024 Tue May 27 02:17:32 GMT 2014  Olly Betts <olly@survex.com>
2026         * api/snipper.cc: Prefer ++i to i++ in loops.
2028 Tue May 27 02:16:14 GMT 2014  Olly Betts <olly@survex.com>
2030         * api/snipper.cc: Use TermIterator::positionlist_count().
2032 Tue May 27 02:14:52 GMT 2014  Olly Betts <olly@survex.com>
2034         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Fix
2035           typos in comments and variable names in new snipper code.
2037 Tue May 27 02:13:09 GMT 2014  Olly Betts <olly@survex.com>
2039         * tests/Makefile.am: Hook up new Snipper API tests to actually be
2040           used.
2042 Tue May 27 02:09:49 GMT 2014  Mihai Bivol <mm.bivol@gmail.com>
2044         * tests/api_snipper.cc: Add Snipper API tests.
2046 Tue May 27 02:04:26 GMT 2014  Olly Betts <olly@survex.com>
2048         * api/snipper.cc: Add missing #include <config.h>.
2050 Tue May 27 02:00:32 GMT 2014  Mihai Bivol <mm.bivol@gmail.com>
2052         * api/Makefile.mk,api/snipper.cc,api/snipperinternal.h,
2053           include/xapian.h,include/xapian/snipper.h: Add Xapian::Snipper
2054           class.
2056 Mon May 26 05:52:22 GMT 2014  Olly Betts <olly@survex.com>
2058         * api/omdatabase.cc,backends/brass/brass_postlist.h,
2059           backends/chert/chert_postlist.h,backends/database.h: Fix comment
2060           typos.
2062 Fri May 23 11:59:26 GMT 2014  Olly Betts <olly@survex.com>
2064         * api/matchspy.cc: Pass std::string by const reference.
2066 Thu May 22 06:31:12 GMT 2014  Olly Betts <olly@survex.com>
2068         * matcher/localsubmatch.cc: Fix the check for a term which matches all
2069           documents to use the sub-db termfreq, not the combined db termfreq.
2071 Thu May 22 06:00:47 GMT 2014  Olly Betts <olly@survex.com>
2073         * matcher/localsubmatch.cc: If a term matches all documents and its
2074           weight doesn't depend on its wdf, we can optimise it to MatchAll
2075           (the previous requirement that maxpart == 0 was unnecessarily
2076           strict).
2078 Thu May 22 05:52:15 GMT 2014  Olly Betts <olly@survex.com>
2080         * matcher/localsubmatch.cc,tests/api_percentages.cc: When we optimise
2081           a postlist for a term which matches all documents to use MatchAll,
2082           we still need to set a weight object on it to get percentages
2083           calculated correctly.
2085 Thu May 22 04:08:35 GMT 2014  Olly Betts <olly@survex.com>
2087         * api/queryinternal.cc,matcher/localsubmatch.cc,
2088           matcher/localsubmatch.h,matcher/queryoptimiser.h: Refactor to group
2089           most of the code to create a postlist for a term and set its weight
2090           into one place.
2092 Mon May 19 00:08:04 GMT 2014  Olly Betts <olly@survex.com>
2094         * backends/brass/brass_freelist.cc,tests/api_backend.cc: When we start
2095           to write a new freelist block, set the revision on the old one we
2096           write out correctly, and don't "-1" out the next block pointer
2097           before we write out the block in this case.  New regression testcase
2098           newfreelistblock1.
2099         * backends/brass/brass_freelist.cc: Add assertions that the freelist
2100           block has a next pointer when fl_end is a different block to fl.
2102 Fri May 16 04:35:21 GMT 2014  Olly Betts <olly@survex.com>
2104         * backends/brass/brass_freelist.h: Fix BrassFreeList::swap() to also
2105           swap the flw_appending members.
2107 Thu May 15 12:51:15 GMT 2014  Olly Betts <olly@survex.com>
2109         * HACKING: Add checking config/config.* are up to date to the 
2110           release checklist.
2112 Thu May 15 12:47:28 GMT 2014  Olly Betts <olly@survex.com>
2114         * HACKING: Now using automake 1.14.1 to bootstrap snapshots and
2115           1.3.x releases.
2117 Wed May 14 03:18:37 GMT 2014  Olly Betts <olly@survex.com>
2119         * api/queryinternal.cc: Only serialise parameter where it is actually
2120           used.
2122 Fri May 09 01:56:48 GMT 2014  Olly Betts <olly@survex.com>
2124         * HACKING: Now using doxygen 1.8.7 to bootstrap tarballs.
2126 Mon May 05 05:37:32 GMT 2014  Olly Betts <olly@survex.com>
2128         * backends/chert/chert_check.cc,backends/chert/chert_dbcheck.cc,
2129           backends/dbcheck.cc: Improve DBCHECK_FIX - if fixing a whole
2130           database, we now take the revision from the first table we
2131           successfully look at, which should be correct in most cases,
2132           and is definitely better than trying to determine the revision
2133           of each broken table independently.
2135 Fri May 02 02:36:05 GMT 2014  Olly Betts <olly@survex.com>
2137         * matcher/valuestreamdocument.cc,matcher/valuestreamdocument.h: Put
2138           the docid in the sub-database into the ValueStreamDocument object as
2139           that's what Xapian::Document::get_docid() is documented to return.
2140           (fixes#636, reported by Jeff Rand).
2142 Thu May 01 13:25:35 GMT 2014  Olly Betts <olly@survex.com>
2144         * api/omdatabase.cc,include/xapian/database.h,
2145           matcher/valuestreamdocument.cc: Eliminate
2146           Database::get_document_lazily_() completely.
2148 Thu May 01 11:48:00 GMT 2014  Olly Betts <olly@survex.com>
2150         * backends/database.cc,backends/slowvaluelist.cc,
2151           backends/slowvaluelist.h: Don't wrap the subdatabase object in a
2152           Xapian::Database for SlowValueList, which mean we can just call
2153           open_document(did, true) on it instead of having to use
2154           Xapian::Database::get_document_lazily_().
2156 Wed Apr 30 00:31:52 GMT 2014  Olly Betts <olly@survex.com>
2158         * api/omdatabase.cc: Explicitly '#include <algorithm>' for std::max(),
2159           fixing build with VS2013.  (fixes#641)
2161 Tue Apr 29 04:28:06 GMT 2014  Olly Betts <olly@survex.com>
2163         * common/append_filename_arg.h,net/remoteconnection.h: Comment tweaks.
2165 Tue Apr 29 04:26:26 GMT 2014  Olly Betts <olly@survex.com>
2167         * tests/harness/unixcmds.cc: Drop code supporting Microsoft Windows 9x
2168           which reached EOL in 2006.
2170 Thu Apr 17 05:06:21 GMT 2014  Olly Betts <olly@survex.com>
2172         * common/autoptr.h: Under C++11, use unique_ptr for AutoPtr.
2174 Wed Apr 09 22:16:37 GMT 2014  Olly Betts <olly@survex.com>
2176         * api/documentterm.h,api/omdocument.cc: Don't store the termname in
2177           OmDocumentTerm - we were only using it in get_description() output
2178           and an exception message.  Speeds up indexing etext.txt using
2179           simpleindex by 0.4%, and should reduce memory usage a bit too.
2180           (Change inspired by comments from Vishesh Handa on xapian-devel).
2182 Wed Apr 09 05:17:58 GMT 2014  Olly Betts <olly@survex.com>
2184         * backends/brass/brass_btreebase.cc,backends/brass/brass_table.cc:
2185           Remove comment references to using bitmaps for freespace tracking.
2187 Tue Apr 08 04:20:00 GMT 2014  Olly Betts <olly@survex.com>
2189         * bin/xapian-delve.cc: Add -A <prefix> option to list all terms with
2190           a particular prefix.
2192 Mon Apr 07 05:45:06 GMT 2014  Olly Betts <olly@survex.com>
2194         * api/omdatabase.cc,backends/brass/,backends/chert/,
2195           backends/database.cc,backends/database.h,
2196           backends/inmemory/inmemory_database.cc,
2197           backends/inmemory/inmemory_database.h,
2198           backends/remote/remote-database.cc,backends/remote/remote-database.h,
2199           common/remoteprotocol.h,matcher/const_database_wrapper.cc,
2200           matcher/const_database_wrapper.h,net/remoteserver.cc,
2201           net/remoteserver.h,weight/weightinternal.cc: Fetch termfreq and
2202           collection frequency in a single call - shaves ~0.3% off a test
2203           search.
2205 Thu Apr 03 23:40:45 GMT 2014  Olly Betts <olly@survex.com>
2207         * net/serialise.cc,weight/weightinternal.h: Make Weight::Internal
2208           track if any max_part values are set, so we don't need to
2209           serialise them when they've not been set.
2211 Thu Apr 03 05:50:13 GMT 2014  Olly Betts <olly@survex.com>
2213         * weight/weightinternal.cc: Enhance
2214           Weight::Internal::get_description() to report TermFreqs.
2216 Thu Apr 03 05:46:44 GMT 2014  Olly Betts <olly@survex.com>
2218         * api/omenquire.cc,api/omenquireinternal.h,common/submatch.h,matcher/,
2219           net/remoteserver.cc,net/serialise.cc,weight/weight.cc,
2220           weight/weightinternal.cc,weight/weightinternal.h: Eliminate the
2221           map<string, TermFreqAndWeight> in MSet::Internal, and instead just
2222           preserve the Weight::Internal object there as that holds all the
2223           information we need.
2225 Thu Apr 03 04:40:09 GMT 2014  Olly Betts <olly@survex.com>
2227         * backends/remote/remote-database.cc,net/remoteserver.cc,
2228           net/serialise.cc,net/serialise.h: Avoid returning
2229           Xapian::Weight::Internal by value from unserialise_stats().
2231 Tue Apr 01 22:41:16 GMT 2014  Olly Betts <olly@survex.com>
2233         * matcher/localsubmatch.cc,weight/weight.cc,weight/weightinternal.cc,
2234           weight/weightinternal.h: Replace Weight::Internal methods to get
2235           termfreq, reltermfreq and colltermfreq with a single inlined
2236           get_stats() method, which only needs to search the map once.
2237           Shaves ~1.6% off the time to do a wildcard query with a lot of
2238           terms.
2240 Tue Apr 01 22:11:52 GMT 2014  Olly Betts <olly@survex.com>
2242         * matcher/localsubmatch.cc: Don't refetch the termfreq if we already
2243           have it.
2245 Sun Mar 30 22:54:22 GMT 2014  Anish Kanchan <anishgkanchan@gmail.com>
2247         * include/xapian/termgenerator.h: Make TermGenerator flags an
2248           anonymous enum, and typedef TermGenerator::flags to int for backward
2249           compatibility with existing user code which uses it.  (fixes #616)
2251 Thu Mar 27 05:45:14 GMT 2014  Liu Chi <liuchi09@gmail.com>
2253         * include/xapian/stem.h,languages/Makefile.mk,
2254           languages/earlyenglish.sbl,languages/stem.cc,tests/api_stem.cc:
2255           Add an early english stemmer.
2257 Wed Mar 19 02:42:00 GMT 2014  Olly Betts <olly@survex.com>
2259         * weight/weightinternal.cc: Fix comment typo.
2261 Fri Mar 14 09:53:22 GMT 2014  Olly Betts <olly@survex.com>
2263         * HACKING: MacTeX seems to be the best option if using homebrew.
2265 Fri Mar 07 23:17:43 GMT 2014  Olly Betts <olly@survex.com>
2267         * matcher/maxpostlist.cc: More fixes for --enable.log.
2269 Fri Mar 07 23:01:45 GMT 2014  Olly Betts <olly@survex.com>
2271         * matcher/maxpostlist.cc: Fix compilation error with --enable-log on.
2272           Reported by Anurag Soni.
2274 Fri Mar 07 00:39:11 GMT 2014  Olly Betts <olly@survex.com>
2276         * HACKING: Fix typo and RST markup.
2278 Fri Mar 07 00:21:16 GMT 2014  VcamX <vcamx3@gmail.com>
2280         * HACKING: Note packages to install from homebrew on Mac OS X.
2282 Fri Mar 07 00:17:01 GMT 2014  VcamX <vcamx3@gmail.com>
2284         * backends/dbcheck.cc,common/pack.h: Fix warnings with clang 5.0.
2286 Tue Mar 04 04:25:11 GMT 2014  Olly Betts <olly@survex.com>
2288         * api/queryinternal.cc,api/queryinternal.h: Only simplify OP_SYNONYM
2289           with a single subquery if that subquery is a term or MatchAll.
2291 Tue Mar 04 04:12:58 GMT 2014  Olly Betts <olly@survex.com>
2293         * tests/api_none.cc: Test OPs with a single MatchAll subquery.
2295 Mon Mar 03 22:59:55 GMT 2014  Mayank Chaudhary <mayankchaudhary.iitr@gmail.com>
2297         * docs/Makefile.am,docs/bm25.rst,docs/intro_ir.rst: Convert equations
2298           in rst docs to use LaTeX via the math role and directive.
2300 Fri Feb 28 06:12:36 GMT 2014  Olly Betts <olly@survex.com>
2302         * backends/brass/brass_positionlist.h,
2303           backends/chert/chert_positionlist.h: Remove next_internal() methods
2304           which were declared but not defined or used (left-overs from flint).
2305           Reported by "Hurricane Tong".
2307 Wed Feb 26 01:33:50 GMT 2014  Olly Betts <olly@survex.com>
2309         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
2310           examples/quest.cc,include/xapian/query.h,matcher/Makefile.mk,
2311           matcher/maxpostlist.cc,matcher/maxpostlist.h,
2312           queryparser/queryparser.cc,tests/api_none.cc,tests/api_opsynonym.cc:
2313           Implement new OP_MAX query operator, which returns the maximum
2314           weight of any of its subqueries.  (see #360)
2316 Wed Feb 26 00:48:23 GMT 2014  Olly Betts <olly@survex.com>
2318         * matcher/localsubmatch.cc,matcher/synonympostlist.cc,
2319           matcher/synonympostlist.h: In SynonymPostList, avoid fetching the
2320           doclength if the weighting scheme doesn't need it and the calculated
2321           wdf for the synonym in <= doclength_lower_bound for the current
2322           subdatabase.  (fixes #360)
2324 Wed Feb 26 00:12:22 GMT 2014  Olly Betts <olly@survex.com>
2326         * backends/brass/brass_changes.cc: Fix compilation without
2327           --enable-assertions.
2329 Tue Feb 25 02:33:14 GMT 2014  Olly Betts <olly@survex.com>
2331         * examples/quest.cc: Add --default-op option.
2333 Tue Feb 25 01:56:34 GMT 2014  Olly Betts <olly@survex.com>
2335         * examples/quest.cc: Whitespace tweak.
2337 Mon Feb 24 06:33:37 GMT 2014  Olly Betts <olly@survex.com>
2339         * tests/api_opsynonym.cc: Refactor symonym1 so that the test data is
2340           specified by an array, rather than built up by code, so that the
2341           actual testcases can be more easily seen.
2343 Sun Feb 23 01:22:56 GMT 2014  Olly Betts <olly@survex.com>
2345         * common/bitstream.cc,common/bitstream.h: Add comments to better
2346           document BitReader and BitWriter. (fixes#252)
2348 Sun Feb 23 00:35:17 GMT 2014  Olly Betts <olly@survex.com>
2350         * HACKING: Stop trying to explicitly list compilers which support
2351           __builtin_expect (LLVM does too, others may as well).
2353 Fri Feb 21 01:34:59 GMT 2014  Olly Betts <olly@survex.com>
2355         * backends/brass/,backends/dbcheck.cc,common/,
2356           docs/replication_protocol.rst,tests/api_backend.cc,
2357           tests/api_replicate.cc: Keep track of unused blocks in the Btrees
2358           using freelists rather than bitmaps.
2360 Fri Feb 21 01:21:45 GMT 2014  Olly Betts <olly@survex.com>
2362         * tests/api_wrdb.cc: Expand crashrecovery1 to check that the expected
2363           base files exist and ones which shouldn't exist don't.
2365 Thu Feb 20 00:34:47 GMT 2014  Olly Betts <olly@survex.com>
2367         * HACKING: makeindex is now in Debian package texlive-binaries.
2369 Wed Feb 19 06:50:58 GMT 2014  Olly Betts <olly@survex.com>
2371         * docs/sorting.rst: Fix incorrect parameter types in Xapian::Weight
2372           subclass example.
2374 Tue Feb 18 23:34:19 GMT 2014  Olly Betts <olly@survex.com>
2376         * api/replication.cc: Fix conditional for enabling replication code
2377           - if chert is disabled but brass isn't, we should still enable it.
2379 Tue Feb 18 01:33:28 GMT 2014  Olly Betts <olly@survex.com>
2381         * tests/api_replicate.cc: Move comment to in front of the function it
2382           is actually talking about.
2384 Sun Feb 16 04:53:57 GMT 2014  Olly Betts <olly@survex.com>
2386         * xapian-config.in: Add some missing shell quoting identified by
2387           shellcheck.
2389 Sun Feb 16 00:53:01 GMT 2014  Olly Betts <olly@survex.com>
2391         * docs/quickstart.rst: Split --cxxflags and --libs for portability
2392           (noted by "Hurricane Tong" on xapian-devel).
2394 Sat Feb 15 04:59:37 GMT 2014  Olly Betts <olly@survex.com>
2396         * docs/glossary.rst: Add definition of "collection frequency".
2398 Fri Feb 14 22:24:26 GMT 2014  Olly Betts <olly@survex.com>
2400         * NEWS: Update.
2402 Fri Jan 17 03:50:44 GMT 2014  Olly Betts <olly@survex.com>
2404         * backends/brass/brass_databasereplicator.cc,
2405           backends/brass/brass_table.cc,
2406           backends/chert/chert_databasereplicator.cc,
2407           backends/chert/chert_table.cc,common/io_utils.cc,common/io_utils.h:
2408           Add io_read_block() and io_write_block() as wrappers around pread()
2409           and pwrite() (or lseek() plus read() and lseek() plus write()).
2411 Sat Jan 11 06:32:19 GMT 2014  Olly Betts <olly@survex.com>
2413         * configure.ac: Sun C++ seems to explicitly need Crun now.
2415 Sat Jan 11 02:23:06 GMT 2014  Olly Betts <olly@survex.com>
2417         * configure.ac: Fix checks for Sun C++.
2419 Fri Jan 10 22:38:01 GMT 2014  Olly Betts <olly@survex.com>
2421         * matcher/multimatch.cc: timer_create() doesn't handle CLOCK_MONOTONIC
2422           on Solaris, so use CLOCK_REALTIME there instead.
2424 Fri Jan 10 11:22:37 GMT 2014  Olly Betts <olly@survex.com>
2426         * configure.ac: Improve handling of Sun's C++ compiler - trick libtool
2427           into not adding -library=Cstd, and prefer -library=stdcxx4 if
2428           supported.
2430 Fri Jan 10 11:16:15 GMT 2014  Olly Betts <olly@survex.com>
2432         * configure.ac: Add XAPIAN_TEST_CXXFLAGS macro, and use it to check
2433           the flags to cxx actually work.
2435 Fri Jan 10 10:56:17 GMT 2014  Olly Betts <olly@survex.com>
2437         * configure.ac: Apply missing functional part of previous change.
2439 Fri Jan 10 10:46:53 GMT 2014  Olly Betts <olly@survex.com>
2441         * configure.ac: Avoid using grep -e as /usr/bin/grep on Solaris
2442           doesn't support it.
2444 Fri Jan 10 03:30:10 GMT 2014  Olly Betts <olly@survex.com>
2446         * backends/brass/brass_databasereplicator.cc: Whitespace tweak.
2448 Thu Jan 09 11:06:05 GMT 2014  Olly Betts <olly@survex.com>
2450         * backends/brass/brass_cursor.h,backends/brass/brass_database.cc,
2451           backends/chert/chert_database.cc,
2452           backends/chert/chert_databasereplicator.cc,
2453           backends/inmemory/inmemory_database.h,common/log2.h,
2454           common/realtime.h,matcher/multimatch.cc,weight/pl2weight.cc,
2455           weight/tradweight.cc: Fix compilations issues with Sun's C++
2456           compiler (mostly missing library headers).
2458 Thu Jan 09 06:00:03 GMT 2014  Olly Betts <olly@survex.com>
2460         * backends/dbcheck.cc: Skip absent lazily created tables in the case
2461           where out == NULL too.
2463 Thu Jan 09 05:31:40 GMT 2014  Olly Betts <olly@survex.com>
2465         * tests/api_wrdb.cc: Use Xapian::Database::check() in cursordelbug1.
2466           (partly addresses #238)
2468 Thu Jan 09 05:30:45 GMT 2014  Olly Betts <olly@survex.com>
2470         * include/xapian/database.h: Make second and third parameters to
2471           Xapian::Database::check() optional, defaulting to a quiet check.
2473 Thu Jan 09 02:52:54 GMT 2014  Olly Betts <olly@survex.com>
2475         * backends/brass/,backends/chert/,backends/dbcheck.cc,
2476           bin/xapian-check.cc,include/xapian/database.h: Alter
2477           Database::check() to take its "out" parameter as a pointer to
2478           std::ostream instead of a reference, and make passing NULL means "do
2479           not produce output".  Remove the form without the "out" parameter,
2480           which used to mean "send output to stdout" - if you want this, just
2481           pass "&std::cout" in.
2483 Thu Jan 09 01:50:14 GMT 2014  Olly Betts <olly@survex.com>
2485         * include/xapian/database.h: OS X SDK check() macro takes one
2486           argument, so there's no need to protect check() methods with
2487           more than one argument.
2488         * include/xapian/valueiterator.h: Protect the one check() method in
2489           our API which does take one argument.
2491 Wed Jan 08 11:48:58 GMT 2014  Olly Betts <olly@survex.com>
2493         * api/smallvector.cc,api/smallvector.h: Include cstddef rather than
2494           cstring for std::size_t, as it's a simpler header.  Don't assume
2495           size_t will be available unqualified.  Add SmallVector::size_type
2496           typedef.
2498 Mon Jan 06 11:54:53 GMT 2014  Olly Betts <olly@survex.com>
2500         * net/progclient.cc: Fix xlC warning.
2502 Mon Jan 06 00:31:19 GMT 2014  Olly Betts <olly@survex.com>
2504         * backends/brass/brass_table.cc,backends/chert/chert_table.cc:
2505           Validate dir_end when reading a block.  (fixes #592)
2507 Wed Jan 01 01:20:46 GMT 2014  Olly Betts <olly@survex.com>
2509         * docs/Makefile.am: Fix handling of MAINTAINER_NO_DOCS.
2511 Mon Dec 30 05:33:59 GMT 2013  Olly Betts <olly@survex.com>
2513         * tests/api_unicode.cc: Add regression test for incorrect results
2514           from Unicode::tolower() for 4 code points (U+01C5, U+01C8, U+01CB,
2515           U+01F2) with Xapian 1.2.16 and earlier.
2517 Sun Dec 29 05:46:14 GMT 2013  Olly Betts <olly@survex.com>
2519         * docs/postingsource.rst: Clarify a couple of points (reported by
2520           "vHanda" on IRC).
2522 Tue Dec 24 02:00:26 GMT 2013  Olly Betts <olly@survex.com>
2524         * tests/Makefile.am,tests/perftest/Makefile.mk: Actually use
2525           @NO_INSTALL@.
2527 Tue Dec 24 01:59:05 GMT 2013  Olly Betts <olly@survex.com>
2529         * configure.ac: Use -no-fast-install on platforms where -no-install
2530           causes libtool to emit a warning.
2532 Mon Dec 23 04:17:35 GMT 2013  Olly Betts <olly@survex.com>
2534         * HACKING: Drop note about needing git-svn if you're using git -
2535           bootstrap now only uses git-svn if your Xapian tree was checked out
2536           using git-svn.
2538 Mon Dec 23 04:16:58 GMT 2013  Olly Betts <olly@survex.com>
2540         * HACKING: Note that Tcl is now needed to generate
2541           unicode/unicode-data.cc.
2543 Mon Dec 23 04:01:05 GMT 2013  Olly Betts <olly@survex.com>
2545         * tests/api_unicode.cc: Add a test that a character due to be added in 
2546           Unicode 7.0.0 is categorised as "unassigned".
2548 Mon Dec 23 03:50:37 GMT 2013  Olly Betts <olly@survex.com>
2550         * unicode/Makefile.mk,unicode/uniParse.tcl: Adjust to not need a
2551           symlink.  Give the generated file a new name, since the "tcl" prefix
2552           doesn't make much sense here, and it avoids issues with
2553           transitioning from a file in version control to one which is
2554           generated.
2556 Mon Dec 23 03:32:40 GMT 2013  Olly Betts <olly@survex.com>
2558         * unicode/: Add the source data file and scripts to generate
2559           tclUniData.cc.
2561 Mon Dec 23 02:20:57 GMT 2013  Olly Betts <olly@survex.com>
2563         * NEWS: Update from ChangeLog.
2565 Mon Dec 23 01:04:26 GMT 2013  Olly Betts <olly@survex.com>
2567         * include/xapian/enquire.h: Note that 1.2.17 is required for the
2568           correct sense of the reverse parameter to Enquire methods
2569           set_sort_by_relevance_then_value() and
2570           set_sort_by_relevance_then_key().
2572 Mon Dec 23 00:30:53 GMT 2013  Olly Betts <olly@survex.com>
2574         * backends/brass/brass_btreebase.cc: Fix comment documenting what's in
2575           the base file (the sequential flag was missing).
2577 Fri Dec 20 03:47:56 GMT 2013  Olly Betts <olly@survex.com>
2579         * backends/brass/brass_termlisttable.h,include/xapian/constants.h,
2580           tests/api_backend.cc: Add Xapian::DB_NO_TERMLIST flag to allow
2581           creating a database without a termlist (see #181).
2583 Fri Dec 20 03:04:51 GMT 2013  Olly Betts <olly@survex.com>
2585         * include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
2586           character database to 6.3.0.
2587         * tests/api_unicode.cc: Add tests for U+061C, added in 6.3.0.
2589 Fri Dec 20 00:20:01 GMT 2013  Olly Betts <olly@survex.com>
2591         * backends/dbfactory.cc: Clear any backend flag passed in before
2592           passing the flags when opening stub databases, fixing test failure
2593           in replicate1 caused by recent change adding
2594           Xapian::DB_BACKEND_STUB.
2596 Thu Dec 19 23:11:32 GMT 2013  Olly Betts <olly@survex.com>
2598         * tests/api_backend.cc: Simplify database creation in testcase
2599           blocksize1.
2601 Thu Dec 19 23:10:37 GMT 2013  Olly Betts <olly@survex.com>
2603         * backends/dbfactory.cc: Tweak conditionals around $XAPIAN_PREFER_BRASS
2604           check.
2606 Thu Dec 19 23:09:30 GMT 2013  Olly Betts <olly@survex.com>
2608         * api/replication.cc,backends/dbfactory.cc,docs/deprecation.rst,
2609           docs/overview.rst,include/xapian/constants.h,
2610           include/xapian/dbfactory.h,tests/api_backend.cc,tests/api_db.cc:
2611           Add Xapian::DB_BACKEND_STUB and deprecate Xapian::Auto::open_stub().
2613 Thu Dec 19 06:46:15 GMT 2013  Olly Betts <olly@survex.com>
2615         * docs/deprecation.rst: Update example version to a more recent one.
2617 Thu Dec 19 04:01:31 GMT 2013  Olly Betts <olly@survex.com>
2619         * docs/deprecation.rst,include/xapian/dbfactory.h,tests/api_db.cc,
2620           tests/harness/: Deprecate Xapian::Brass::open() and
2621           Xapian::Chert::open() in favour of the new Xapian::DB_BACKEND_BRASS
2622           and Xapian::DB_BACKEND_CHERT flags.
2624 Thu Dec 19 01:17:02 GMT 2013  Olly Betts <olly@survex.com>
2626         * api/compactor.cc,backends/brass/,backends/chert/chert_database.cc,
2627           backends/chert/chert_database.h,backends/database.h,
2628           backends/dbcheck.cc,backends/dbfactory.cc,include/xapian/constants.h,
2629           include/xapian/database.h,include/xapian/dbfactory.h: Add flags
2630           which can be bitwise OR-ed into the second argument when opening a
2631           writable datase: DB_NO_SYNC (to disable use of fsync, etc) and
2632           DB_DANGEROUS (to enable in-place updates).  WritableDatabase
2633           can now be constructed from just a filename (defaulting to opening
2634           the database with DB_CREATE_OR_OPEN).
2636 Thu Dec 19 00:11:26 GMT 2013  Olly Betts <olly@survex.com>
2638         * tests/harness/backendmanager_multi.cc: Fix comment typo.
2640 Wed Dec 18 23:52:49 GMT 2013  Olly Betts <olly@survex.com>
2642         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
2643           tests/api_backend.cc: Fix handling of invalid block sizes - the
2644           size gets fixed as documented, but the uncorrected size was passed
2645           to the base file.  Also, abort() was called on 0.
2647 Wed Dec 18 22:48:18 GMT 2013  Olly Betts <olly@survex.com>
2649         * api/replication.cc,backends/brass/brass_check.cc,
2650           backends/brass/brass_database.cc,backends/chert/chert_check.cc,
2651           backends/chert/chert_database.cc,backends/database.h,
2652           backends/dbcheck.cc,bin/xapian-tcpsrv.cc,include/Makefile.mk,
2653           include/xapian.h,include/xapian/database.h,net/remoteserver.cc:
2654           Move Xapian::DB_* and Xapian:DBCHECK_* constants into
2655           xapian/constants.h.
2657 Wed Dec 18 22:30:23 GMT 2013  Olly Betts <olly@survex.com>
2659         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
2660           Include xapian/*.h with "" not <> inside the library.
2662 Wed Dec 18 22:17:15 GMT 2013  Olly Betts <olly@survex.com>
2664         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
2665           Include only the needed xapian/*.h headers (rather than xapian.h) to
2666           reduce inter-file dependencies within the library.
2668 Wed Dec 18 03:24:22 GMT 2013  Olly Betts <olly@survex.com>
2670         * tests/runtest.in: Report if a test is being run under eatmydata,
2671           like we do for running under valgrind.
2673 Wed Dec 18 02:43:47 GMT 2013  Olly Betts <olly@survex.com>
2675         * backends/brass/brass_version.h,backends/chert/chert_version.h:
2676           Comment out unused set_uuid() and set_uuid_string() methods - they
2677           may be useful in future, but we aren't currently using them.  Also
2678           make set_uuid() take a const pointer.
2680 Wed Dec 18 02:40:18 GMT 2013  Olly Betts <olly@survex.com>
2682         * HACKING,configure.ac,tests/runtest.in: Automatically probe for and
2683           hook in eatmydata to the testsuite using the wrapper script it now
2684           includes.
2686 Wed Dec 18 01:21:07 GMT 2013  Olly Betts <olly@survex.com>
2688         * HACKING: Update website update info.
2690 Sat Dec 14 06:01:33 GMT 2013  Olly Betts <olly@survex.com>
2692         * weight/dlhweight.cc,weight/dphweight.cc: Whitespace tweak.
2694 Fri Dec 13 21:06:28 GMT 2013  Olly Betts <olly@survex.com>
2696         * backends/brass/brass_cursor.cc,backends/brass/brass_cursor.h,
2697           backends/brass/brass_table.cc: Reference count blocks in the
2698           btree cursor, so cursors can cheaply share blocks.  This can
2699           significantly reduce the amount of memory used for cursors
2700           for queries which contain a lot of terms (e.g. wildcards which
2701           expand to a lot of terms).
2703 Thu Dec 12 22:37:22 GMT 2013  Olly Betts <olly@survex.com>
2705         * backends/brass/brass_btreebase.cc: Add assertions that we don't read
2706           beyond the end of the freespace bitmap.
2708 Thu Dec 12 22:25:04 GMT 2013  Olly Betts <olly@survex.com>
2710         * matcher/msetcmp.cc: Fix sense of reverse parameter to
2711           Enquire::set_sort_by_relevance_then_value.  Reported by "boomboo" on
2712           IRC.
2713         * tests/api_db.cc: Fix testcase sortrel1.
2715 Thu Dec 12 19:47:46 GMT 2013  Olly Betts <olly@survex.com>
2717         * backends/brass/: Make Brass::Cursor members n and p private.
2719 Thu Dec 12 19:46:23 GMT 2013  Olly Betts <olly@survex.com>
2721         * backends/brass/brass_check.cc,backends/brass/brass_table.cc: Add
2722           const to a few pointers we only read through.
2724 Thu Dec 12 09:04:13 GMT 2013  Olly Betts <olly@survex.com>
2726         * configure.ac: Improve reporting of GCC version.
2728 Thu Dec 12 09:01:26 GMT 2013  Olly Betts <olly@survex.com>
2730         * tests/api_query.cc,unicode/description_append.cc: Escape \x7f in
2731           object descriptions.
2733 Wed Dec 11 23:40:37 GMT 2013  Olly Betts <olly@survex.com>
2735         * api/leafpostlist.cc,api/leafpostlist.h,backends/brass/,
2736           matcher/localsubmatch.cc,matcher/localsubmatch.h,
2737           matcher/queryoptimiser.h: Under brass, optimise the turning of a
2738           query into a postlist to copy the cursor blocks for the previous
2739           term's postlist.  This is particularly effective for wildcard
2740           queries which expand to a lot of terms.
2742 Wed Dec 11 22:05:34 GMT 2013  Olly Betts <olly@survex.com>
2744         * backends/brass/brass_postlist.h: We don't have a
2745           BrassModifiedPostList class, so we don't need protected members in
2746           BrassPostList for it to use.
2748 Wed Dec 11 04:46:58 GMT 2013  Olly Betts <olly@survex.com>
2750         * weight/bm25weight.cc: Fix case where (k1 == 0 || b == 0) but k2 != 0.
2751           Reported by "boomboo" on IRC.
2752         * tests/api_weight.cc: Add regression test bm25weight5.
2754 Wed Dec 04 05:44:29 GMT 2013  Olly Betts <olly@survex.com>
2756         * NEWS: Update from 1.2.16 and ChangeLog.
2758 Mon Dec 02 02:34:43 GMT 2013  Olly Betts <olly@survex.com>
2760         * configure.ac: Clarify version of MSVCRT which we require for mingw.
2762 Fri Nov 29 04:21:46 GMT 2013  Olly Betts <olly@survex.com>
2764         * configure.ac: Fix typo in previous commit.
2766 Fri Nov 29 03:48:24 GMT 2013  Olly Betts <olly@survex.com>
2768         * configure.ac: Report GCC version.
2770 Wed Nov 27 04:06:32 GMT 2013  Olly Betts <olly@survex.com>
2772         * Backport change from brass:
2773         * backends/chert/chert_table.cc: Check if the block we want is in the
2774           internal cursor for a read-only table too - it isn't needed for
2775           correctness in this case, but it is more efficient not to reload a
2776           block which we already have.
2778 Sun Nov 24 23:05:37 GMT 2013  Olly Betts <olly@survex.com>
2780         * NEWS: Update from ChangeLog.
2782 Fri Nov 22 20:18:43 GMT 2013  Olly Betts <olly@survex.com>
2784         * backends/brass/brass_databasereplicator.cc,
2785           backends/brass/brass_databasereplicator.h: compression_stream.h
2786           isn't used in brass_databasereplicator.h, so move include to
2787           brass_databasereplicator.cc.
2789 Fri Nov 22 01:22:32 GMT 2013  Olly Betts <olly@survex.com>
2791         * queryparser/queryparser.lemony: Minor tweak to structuring of tests
2792           in check_infix().
2794 Sat Nov 09 08:51:27 GMT 2013  Olly Betts <olly@survex.com>
2796         * backends/brass/brass_table.cc: Check if the block we want is in the
2797           internal cursor for a read-only table too - it isn't needed for
2798           correctness in this case, but it is more efficient not to reload a
2799           block which we already have.
2801 Sat Nov 09 08:48:02 GMT 2013  Olly Betts <olly@survex.com>
2803         * backends/brass/: Use a separate cursor for each position list - now
2804           we're ordering the position B-tree by term first, phrase matching was
2805           causing the cursor to cycle between disparate areas of the B-tree,
2806           and it would have to reread the same blocks over and over.
2808 Fri Nov 08 09:57:52 GMT 2013  Olly Betts <olly@survex.com>
2810         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Add
2811           check for the database being closed in read_block(), which fixes
2812           pythontest.py testcase valuemods.
2814 Fri Nov 08 08:58:48 GMT 2013  Olly Betts <olly@survex.com>
2816         * api/maptermlist.h,api/termlist.cc,api/termlist.h,backends/brass/:
2817           Avoid two vector copies when storing term positions in most common
2818           cases.
2820 Fri Nov 08 08:57:07 GMT 2013  Olly Betts <olly@survex.com>
2822         * configure.ac: Bump LIBRARY_VERSION_INFO.
2824 Thu Nov 07 16:14:23 GMT 2013  Olly Betts <olly@survex.com>
2826         * backends/brass/brass_database.cc,
2827           backends/brass/brass_positionlist.cc,
2828           backends/brass/brass_positionlist.h: There's no need to pass around
2829           an end PositionIterator, and it's actually slightly more efficient
2830           not to.
2832 Thu Nov 07 16:11:27 GMT 2013  Olly Betts <olly@survex.com>
2834         * backends/brass/: Batch up positionlist changes in memory and write
2835           them out in key order.
2837 Thu Nov 07 15:30:48 GMT 2013  Olly Betts <olly@survex.com>
2839         * backends/brass/brass_positionlist.h,backends/brass/brass_version.cc:
2840           Change positionlist keys to be ordered by term first rather than
2841           docid first, which helps phrase searching significantly.
2843 Wed Nov 06 17:12:29 GMT 2013  Olly Betts <olly@survex.com>
2845         * backends/brass/brass_values.cc,backends/brass/brass_values.h,
2846           backends/chert/chert_values.cc,backends/chert/chert_values.h: Reuse
2847           a cursor for reading values from valuestreams rather than creating
2848           a new one each time.  This can dramatically reduce the number of
2849           blocks redundantly reread when sorting by value.  The rereads will
2850           generally get served from VM cache, but there's still an overhead
2851           to that.
2853 Tue Nov 05 16:28:08 GMT 2013  Olly Betts <olly@survex.com>
2855         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
2856           include/xapian/query.h,tests/api_query.cc: Having a separate 'type'
2857           enum seems to just make for clumsier code, so merged the LEAF_*
2858           values into the 'op' enum, add LEAF_MATCH_ALL and LEAF_MATCH_NOTHING
2859           and return when appropriate, and add test coverage.
2861 Tue Nov 05 15:20:15 GMT 2013  Olly Betts <olly@survex.com>
2863         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
2864           include/xapian/query.h: Add methods to allow introspection on
2865           Query objects - currently you can read the type/operator, how many
2866           subqueries there are, and get a particular subquery.  For a
2867           query which is a term, Query::get_terms_begin() allows you to
2868           get read the term.  (see #159)
2870 Mon Nov 04 19:06:38 GMT 2013  Olly Betts <olly@survex.com>
2872         * examples/quest.cc: Add --check-at-least option to quest.
2874 Thu Oct 24 04:38:52 GMT 2013  Olly Betts <olly@survex.com>
2876         * configure.ac,tests/soaktest/soaktest.cc: If srandom() and random()
2877           aren't available, use srand() and rand() instead.
2879 Thu Oct 24 02:34:06 GMT 2013  Olly Betts <olly@survex.com>
2881         * common/safewindows.h: Define WINVER to 0x0500 if not otherwise set,
2882           so we get new interfaces like MEMORYSTATUSEX under mingw.
2884 Thu Oct 24 02:11:36 GMT 2013  Olly Betts <olly@survex.com>
2886         * tests/harness/backendmanager_remotetcp.cc: Need cstdlib for free
2887           under mingw.
2889 Thu Oct 24 02:11:05 GMT 2013  Olly Betts <olly@survex.com>
2891         * configure.ac,tests/api_replicate.cc,tests/queryparsertest.cc,
2892           tests/termgentest.cc: Probe for _putenv_s() in configure as mingw
2893           doesn't provide it.
2895 Thu Oct 24 01:23:14 GMT 2013  Olly Betts <olly@survex.com>
2897         * configure.ac: Don't unset CC as it's used by libtool under mingw.
2899 Thu Oct 24 01:17:07 GMT 2013  Olly Betts <olly@survex.com>
2901         * net/tcpserver.cc: Fix mingw build error.
2903 Thu Oct 24 01:00:18 GMT 2013  Olly Betts <olly@survex.com>
2905         * common/omassert.h: Suppress "unused local typedef" warnings from
2906           GCC 4.8.
2908 Wed Oct 23 20:00:05 GMT 2013  Olly Betts <olly@survex.com>
2910         * common/realtime.h: Rework RealTime::to_timeval() under __WIN32__ to
2911           avoid having to pull in safewinsock2.h,
2913 Wed Oct 23 12:39:53 GMT 2013  Olly Betts <olly@survex.com>
2915         * common/realtime.h: Under __WIN32__, we need safewinsock2.h for
2916           struct timeval.
2918 Wed Oct 23 10:21:02 GMT 2013  Olly Betts <olly@survex.com>
2920         * common/omassert.h: If the compiler supports C++11, use
2921           static_assert to implement CompileTimeAssert.
2923 Wed Oct 23 10:02:50 GMT 2013  Olly Betts <olly@survex.com>
2925         * common/realtime.h,net/tcpclient.cc: Fix mingw build errors.
2927 Wed Oct 23 09:50:00 GMT 2013  Olly Betts <olly@survex.com>
2929         * common/win32_uuid.cc: Fix mingw compiler warning.
2931 Wed Oct 23 04:19:05 GMT 2013  jiangwen jiang <jiangwen127@gmail.com>
2933         * api/omdocument.cc,api/query.cc: Add more LOGCALL annotations.
2935 Tue Oct 22 03:09:48 GMT 2013  Olly Betts <olly@survex.com>
2937         * HACKING: Note we now use doxygen 1.8.5 for 1.3.x snapshots and
2938           releases.
2940 Mon Oct 21 01:55:48 GMT 2013  Olly Betts <olly@survex.com>
2942         * queryparser/lemon.c: Sync change from upstream: "Fix a harmless
2943           compiler warning in lemon.c."  Generated code is identical, at least
2944           on x86-64 Debian wheezy.
2946 Mon Oct 21 01:52:12 GMT 2013  Olly Betts <olly@survex.com>
2948         * queryparser/lemon.c: Sync change from upstream: "In the lemon parser
2949           generator, change all hashes to unsigned to avoid potential problems
2950           with signed integer overflow."  Generated code is identical, at
2951           least on x86-64 Debian wheezy.
2953 Sat Oct 19 06:38:48 GMT 2013  Olly Betts <olly@survex.com>
2955         * backends/flint_lock.cc: Under cygwin, use cygwin_conv_path() if
2956           using a new enough cygwin version, rather than the now deprecated
2957           cygwin_conv_to_win32_path().  Reported by "Haroogan" on the
2958           xapian-devel mailing list.
2960 Sat Oct 19 00:36:06 GMT 2013  Olly Betts <olly@survex.com>
2962         * configure.ac: Simplify test for uuid_unparse_lower().  (see #626)
2964 Sat Oct 19 00:21:37 GMT 2013  Olly Betts <olly@survex.com>
2966         * Makefile.am,configure.ac: Split XAPIAN_LIBS out of XAPIAN_LDFLAGS.
2967           (fixes#626)
2969 Fri Oct 18 11:51:40 GMT 2013  Olly Betts <olly@survex.com>
2971         * geospatial/geoencode.cc: Use lround() instead of round(), since we
2972           want the result as an int.  GCC 4.4.3 seems to optimise to use
2973           lround() anyway, but other compilers may not.
2975 Fri Oct 18 11:44:10 GMT 2013  Olly Betts <olly@survex.com>
2977         * geospatial/geoencode.cc: Include <math.h> for round() (fixes #628).
2979 Tue Oct 15 03:16:04 GMT 2013  Olly Betts <olly@survex.com>
2981         * include/xapian/enquire.h,include/xapian/unicode.h: Mark internal
2982           methods which are public for implementation convenience as
2983           "@private" for doxygen where they weren't already.
2985 Mon Oct 14 09:45:13 GMT 2013  Olly Betts <olly@survex.com>
2987         * include/xapian.h: Mark vinfo struct and get_vinfo_() function as
2988           @private for doxygen.
2990 Thu Oct 10 10:36:45 GMT 2013  Olly Betts <olly@survex.com>
2992         * include/xapian/: Methods and functions which take a string to
2993           unserialise now consistently call that parameter "serialised".
2995 Mon Oct 07 04:08:14 GMT 2013  Olly Betts <olly@survex.com>
2997         * tests/zlib-vg.c: Fix two warnings when compiled with clang.
2999 Fri Oct 04 19:46:16 GMT 2013  Olly Betts <olly@survex.com>
3001         * backends/brass/brass_check.cc,backends/chert/chert_check.cc: Correct
3002           failure message which talks above the root block when it's actually
3003           testing a leaf key.
3005 Fri Oct 04 04:51:39 GMT 2013  Olly Betts <olly@survex.com>
3007         * backends/brass/brass_check.cc,backends/chert/chert_check.cc: Escape
3008           invalid UTF-8 data in keys and tags reported by xapian-check, using
3009           the same code we use to clean up string in object descriptions.
3011 Fri Oct 04 04:50:52 GMT 2013  Olly Betts <olly@survex.com>
3013         * backends/brass/brass_check.cc,backends/chert/chert_check.cc: Fix
3014           xapian-check to report block numbers correctly for links within the
3015           B-tree.
3017 Thu Oct 03 07:35:44 GMT 2013  Olly Betts <olly@survex.com>
3019         * backends/brass/brass_dbcheck.cc,backends/chert/chert_dbcheck.cc: If
3020           the METAINFO key is missing, only report it once per table.
3022 Sat Sep 28 09:27:51 GMT 2013  Olly Betts <olly@survex.com>
3024         * include/xapian.h: Hide struct vinfo and get_vinfo_() from SWIG and
3025           doxygen.
3027 Sat Sep 28 06:25:44 GMT 2013  Olly Betts <olly@survex.com>
3029         * api/version.cc,include/xapian.h: Reimplement version functions to
3030           use a single function in libxapian which returns a pointer to a
3031           static const struct containing the version information, with inline
3032           wrappers in the API header which call this.  This means we only need
3033           one relocation instead of 4.
3034         * tests/api_none.cc: New testcase version1 to provide coverage for the
3035           version API functions.
3037 Fri Sep 27 22:53:15 GMT 2013  Olly Betts <olly@survex.com>
3039         * api/omenquire.cc,include/xapian/enquire.h,tests/api_anydb.cc: Fix
3040           backwards compatibility get_eset() wrapper to allow for the optional
3041           parameters which were supported before.  Also, just inline it from
3042           the API header.
3044 Fri Sep 27 11:19:50 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3046         * api/omenquire.cc,api/omenquireinternal.h,expand/,
3047           include/xapian/enquire.h,tests/api_anydb.cc: Add support for the Bo1
3048           query expansion scheme.
3050 Thu Sep 26 04:11:49 GMT 2013  Olly Betts <olly@survex.com>
3052         * tests/api_weight.cc: Don't pass integer arguments to log() to avoid
3053           ambiguity errors with some compilers.  (fixes #627)
3055 Thu Sep 26 02:02:24 GMT 2013  Olly Betts <olly@survex.com>
3057         * backends/brass/,backends/chert/,backends/dbcheck.cc: Fix database
3058           consistency checking to always open all the tables at the same
3059           revision, which could lead to false errors being reported after
3060           a commit interrupted by the process being killed or the machine
3061           crashing.  Reported by Joey Hess in http://bugs.debian.org/724610
3063 Wed Sep 25 02:21:29 GMT 2013  Olly Betts <olly@survex.com>
3065         * tests/queryparsertest.cc: Add testcase for FieldProcessor on boolean
3066           prefix with quoted contents.
3068 Wed Sep 25 02:16:55 GMT 2013  Olly Betts <olly@survex.com>
3070         * queryparser/queryparser.lemony: Fix comment typo.
3072 Wed Sep 25 02:13:20 GMT 2013  Olly Betts <olly@survex.com>
3074         * api/: Split QueryVector into a template SmallVector class and then
3075           'typedef SmallVector<Query> QueryVector;', as it would be good to
3076           use the same approach for Database internals.
3078 Tue Sep 24 09:59:05 GMT 2013  Olly Betts <olly@survex.com>
3080         * .gitignore,xapian-core.spec.in: Update two references to .tar.gz
3081           files.
3083 Tue Sep 24 09:54:42 GMT 2013  Olly Betts <olly@survex.com>
3085         * docs/install.rst: Fix typo (bogus extra 'and');
3087 Tue Sep 24 09:54:01 GMT 2013  Olly Betts <olly@survex.com>
3089         * configure.ac,docs/install.rst: Compress source tarballs with xz
3090           instead of gzip.
3092 Mon Sep 23 12:58:23 GMT 2013  Olly Betts <olly@survex.com>
3094         * common/realtime.h,configure.ac,matcher/multimatch.cc: Implement
3095           RealTime::sleep() using nanosleep() where it's available, since
3096           it has a simpler API and a finer granularity than select().
3098 Mon Sep 23 12:27:37 GMT 2013  Olly Betts <olly@survex.com>
3100         * common/realtime.h,net/remoteconnection.cc,net/tcpclient.cc: Add
3101           RealTime::to_timeval() helper function to break a time interval
3102           as a double into a struct timeval.  This uses modf() which gives
3103           more compact and faster code than using fmod() as we previously
3104           did.
3106 Mon Sep 23 08:20:03 GMT 2013  Olly Betts <olly@survex.com>
3108         * common/realtime.h,configure.ac: Use clock_gettime() to implement
3109           RealTime::now() where it's available.
3111 Mon Sep 16 11:53:28 GMT 2013  Olly Betts <olly@survex.com>
3113         * api/,backends/brass/brass_postlist.cc,
3114           backends/remote/net_postlist.cc,backends/slowvaluelist.cc,
3115           expand/esetinternal.cc,include/xapian/unicode.h,
3116           matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
3117           tests/api_query.cc,tests/queryparsertest.cc,unicode/: Fix all
3118           get_description() methods to always return UTF-8 text.  (fixes #620)
3120 Mon Sep 16 11:47:16 GMT 2013  Olly Betts <olly@survex.com>
3122         * include/xapian/unicode.h: Document how Utf8Iterator handles invalid
3123           UTF-8.
3125 Mon Sep 16 11:19:48 GMT 2013  Olly Betts <olly@survex.com>
3127         * tests/queryparsertest.cc: Add test coverage for explicit synonym of
3128           a term with a prefix (e.g. ~foo:search).
3130 Fri Sep 06 07:11:29 GMT 2013  Olly Betts <olly@survex.com>
3132         * api/valueiterator.cc,tests/api_backend.cc: Don't segfault is
3133           skip_to() or check() are called on a ValueIterator which is already
3134           at_end().
3136 Fri Sep 06 06:52:49 GMT 2013  Olly Betts <olly@survex.com>
3138         * api/positioniterator.cc,api/postingiterator.cc,api/termiterator.cc,
3139           tests/api_backend.cc: Don't segfault if skip_to() is called on an
3140           iterator which is already at_end().  Reported by David Bremner.
3142 Wed Sep 04 04:52:50 GMT 2013  Olly Betts <olly@survex.com>
3144         * weight/weightinternal.cc: TermFreqs now tracks collection frequency,
3145           so make TermFreqs::get_description() report it.
3147 Thu Aug 29 01:30:45 GMT 2013  Olly Betts <olly@survex.com>
3149         * matcher/andmaybepostlist.cc,matcher/multiandpostlist.h: Fix
3150           assertion failure for when an OrPostList decays to an AndPostList
3151           - the ordering of the subqueries by estimated termfreq may not be
3152           the same as it was when the OrPostList was constructed, as the
3153           subqueries may themselves have decayed.  Reported by Michel
3154           Pelletier.
3156 Fri Aug 23 03:17:33 GMT 2013  Olly Betts <olly@survex.com>
3158         * m4-macros/xapian-1.3.m4: Handle empty or unset XAPIAN_CONFIG
3159           correctly.
3161 Mon Jul 15 12:01:17 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3163         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3164           tests/api_weight.cc,weight/Makefile.mk,weight/dphweight.cc: Add an
3165           implementation of DfR weighting scheme DPH.
3167 Sun Jul 14 07:39:37 GMT 2013  Olly Betts <olly@survex.com>
3169         * include/xapian/weight.h,weight/pl2weight.cc: Optimise PL2Weight to
3170           only calculate 2 logs per call to get_sumpart() instead of 4 by
3171           precalculating three document-independent values in init().
3173 Sun Jul 14 07:04:52 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3175         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3176           tests/api_weight.cc,weight/Makefile.mk,weight/pl2weight.cc: Add an
3177           implementation of DfR weighting scheme PL2.
3179 Sat Jul 13 11:24:20 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3181         * weight/tfidfweight.cc: Explicitly cast argument of log() to double,
3182           as xlC doesn't manage to chose an overloaded form to call otherwise.
3184 Sat Jul 13 07:29:25 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3186         * include/xapian/weight.h,tests/api_weight.cc,
3187           tests/generate-api_generated,weight/: Fix new weighting schemes to
3188           work with OP_SCALE_WEIGHT.
3190 Wed Jul 10 12:57:01 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3192         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3193           tests/api_weight.cc,weight/Makefile.mk,weight/dlhweight.cc: Add an
3194           implementation of DfR weighting scheme DLH.
3196 Wed Jul 10 07:38:15 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3198         * expand/expandweight.h: Track collection_freq and totlen restricted
3199           to the RSet in preparation for supporting DfR query expansion
3200           schemes.
3202 Mon Jul 08 06:27:05 GMT 2013  Olly Betts <olly@survex.com>
3204         * weight/Makefile.mk: Normalise whitespace in BB2 change.
3206 Sun Jul 07 12:29:48 GMT 2013  Olly Betts <olly@survex.com>
3208         * weight/bb2weight.cc: New file for BB2Weight which I failed to
3209           commit.
3211 Sun Jul 07 11:51:45 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3213         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3214           tests/api_weight.cc,weight/Makefile.mk: Add implementation of DfR
3215           weighting scheme BB2.
3217 Sat Jul 06 02:07:13 GMT 2013  Olly Betts <olly@survex.com>
3219         * api/omdatabase.cc: Fix add_document() to always use exactly the next
3220           docid after get_lastdocid() in the multidatabase case.
3222 Fri Jul 05 06:19:55 GMT 2013  Olly Betts <olly@survex.com>
3224         * backends/dbfactory.cc: Allow open a stub database containing
3225           multiple subdatabases as a WritableDatabase.
3227 Thu Jul 04 06:29:56 GMT 2013  Olly Betts <olly@survex.com>
3229         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc,
3230           tests/harness/index_utils.h: Simplify the FileIndexer class.
3232 Thu Jul 04 06:09:06 GMT 2013  Olly Betts <olly@survex.com>
3234         * tests/harness/backendmanager_multi.cc,tests/harness/index_utils.cc,
3235           tests/harness/index_utils.h: Make use of the new writable
3236           multidatabase feature to simplify the multi-database handling in the
3237           test harness.
3239 Wed Jul 03 13:58:46 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3241         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3242           tests/api_weight.cc,weight/Makefile.mk,weight/ineb2weight.cc: Add
3243           implementation of DfR weighting scheme IneB2.
3245 Wed Jul 03 13:39:11 GMT 2013  Olly Betts <olly@survex.com>
3247         * include/xapian/weight.h: "please refer:" -> "please refer to:"
3249 Wed Jul 03 13:31:59 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3251         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3252           tests/api_weight.cc,weight/Makefile.mk,weight/ifb2weight.cc: Add
3253           implementation of DfR weighting scheme IfB2.
3255 Wed Jul 03 12:42:23 GMT 2013  Olly Betts <olly@survex.com>
3257         * common/safeuuid.h: Make a few tweaks to support AIX.
3259 Wed Jul 03 12:33:40 GMT 2013  Olly Betts <olly@survex.com>
3261         * common/safeuuid.h: Remove bogus take-address-of from uuid handling
3262           code for netbsd and openbsd.
3264 Wed Jul 03 11:56:05 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3266         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3267           tests/api_weight.cc,weight/Makefile.mk,weight/inl2weight.cc: Add
3268           implementation of DfR weighting scheme InL2.
3270 Wed Jul 03 08:20:26 GMT 2013  Olly Betts <olly@survex.com>
3272         * api/error.cc,common/Makefile.mk,common/safenetdb.h,net/tcpclient.cc,
3273           net/tcpserver.cc: AIX needs _USE_IRS defined for hstrerror, so
3274           create safenetdb.h to take care of that.
3276 Wed Jul 03 07:34:13 GMT 2013  Olly Betts <olly@survex.com>
3278         * common/safeuuid.h: Add missing '#include <cstdlib>' and qualify free
3279           with std.
3281 Tue Jul 02 23:44:48 GMT 2013  Olly Betts <olly@survex.com>
3283         * api/omdatabase.cc: Add support for WritableDatabase with multiple
3284           subdatabases.
3286 Tue Jul 02 23:40:08 GMT 2013  Olly Betts <olly@survex.com>
3288         * api/omdatabase.cc,tests/api_none.cc: Trying to perform operations on
3289           a database with no subdatabases now throws InvalidOperationError not
3290           DocNotFoundError.
3292 Tue Jul 02 13:22:31 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3294         * tests/api_weight.cc: Extend checkstatsweight1 to check that
3295           Weight::get_collection_freq() returns the same number as
3296           Database::get_collection_freq().
3298 Tue Jul 02 05:00:30 GMT 2013  Olly Betts <olly@survex.com>
3300         * api/omenquire.cc,api/omenquireinternal.h,
3301           backends/remote/remote-database.cc,backends/remote/remote-database.h,
3302           common/remoteprotocol.h,configure.ac,docs/remote_protocol.rst,
3303           include/xapian/enquire.h,matcher/multimatch.cc,matcher/multimatch.h,
3304           net/remoteserver.cc,tests/api_postingsource.cc: Add
3305           Enquire::set_time_limit() method which sets a timelimit after which
3306           check_at_least will be disabled.
3308 Mon Jul 01 23:42:33 GMT 2013  Olly Betts <olly@survex.com>
3310         * tests/Makefile.am: Fix to actually removed cached databases before
3311           "make check".
3313 Mon Jul 01 22:21:41 GMT 2013  Olly Betts <olly@survex.com>
3315         * NEWS,api/queryinternal.cc,matcher/valuestreamdocument.h: Revert
3316           changes accidentally included in r17373.
3318 Sat Jun 29 12:39:10 GMT 2013  Olly Betts <olly@survex.com>
3320         * include/xapian/unicode.h,unicode/tclUniData.cc: Change
3321           Xapian::Unicode::Internal::get_character_info() to simply return
3322           Xapian::Unicode::UNASSIGNED for character outside unicode (ch >=
3323           0x110000) which avoids a special check for such values before
3324           we call get_character_info().
3326 Sat Jun 29 09:31:12 GMT 2013  Olly Betts <olly@survex.com>
3328         * tests/api_serialise.cc: Remove code from registry* testcases which
3329           tries to test the consequences of throwing an exception from a
3330           destructor - it's complex to ensure we don't leak memory while doing
3331           this (it seems GCC doesn't release the object in this case, but
3332           clang does), and it's generally frowned upon, plus C++11 makes
3333           destructors noexcept by default.
3335 Thu Jun 27 02:36:02 GMT 2013  Olly Betts <olly@survex.com>
3337         * weight/weightinternal.h: Initialise total_term_count to zero.
3338           Fixes failure of qp_flag_wildcard3 under valgrind in buildbot.
3340 Wed Jun 26 05:48:21 GMT 2013  Olly Betts <olly@survex.com>
3342         * backends/dbfactory.cc: '# if defined' -> '#ifdef' to match
3343           surrounding code better.
3345 Wed Jun 26 05:47:38 GMT 2013  Olly Betts <olly@survex.com>
3347         * backends/dbfactory.cc: Fix 'unused label' warning when chert backend
3348           is disabled.
3350 Wed Jun 26 05:40:29 GMT 2013  Olly Betts <olly@survex.com>
3352         * tests/queryparsertest.cc: Fix previous change to compile.
3354 Wed Jun 26 05:34:25 GMT 2013  Olly Betts <olly@survex.com>
3356         * tests/queryparsertest.cc: Change qp_scale1 to time 5 repetitions of
3357           the large query to help average out variations.
3359 Wed Jun 26 04:52:33 GMT 2013  Olly Betts <olly@survex.com>
3361         * configure.ac: Tweak to simplify diff against similar code in
3362           xapian-omega.
3364 Wed Jun 26 03:56:14 GMT 2013  Olly Betts <olly@survex.com>
3366         * api/matchspy.cc: Fix get_description() to work on a
3367           ValueCountMatchSpy with NULL internals - fixes matchspy5 testcase
3368           with remote backends when configured with --enable-log.
3369         * api/matchspy.cc: Add assertions that internal is non-NULL before
3370           using it.
3371         * include/xapian/matchspy.h: If internal is NULL, make
3372           ValueCountMatchSpy::get_total() return 0 rather than dereferencing
3373           NULL.
3375 Wed Jun 26 03:10:58 GMT 2013  Olly Betts <olly@survex.com>
3377         * tests/harness/testsuite.cc,tests/harness/testsuite.h: If
3378           -v/--verbose is specified more than once, show the diagnostic output
3379           for passing tests as well as failing/skipped ones.
3381 Wed Jun 26 03:08:08 GMT 2013  Olly Betts <olly@survex.com>
3383         * tests/api_scalability.cc: Change querypairwise1_helper to repeat the
3384           query build 100 times, as with a fast modern machine we were
3385           sometimes trying to so many subqueries that we would run out of
3386           stack.
3388 Wed Jun 26 02:55:20 GMT 2013  Olly Betts <olly@survex.com>
3390         * weight/tfidfweight.cc: Wrap long lines.
3392 Wed Jun 26 02:00:12 GMT 2013  Olly Betts <olly@survex.com>
3394         * configure.ac,m4-macros/xapian-1.3.m4: Fix stripping of _git suffix
3395           from snapshot versions not to relying of sed having support for \|
3396           as it doesn't on OS X.
3398 Tue Jun 25 13:21:44 GMT 2013  Olly Betts <olly@survex.com>
3400         * weight/tfidfweight.cc: Merge "impossible" cases in switch statements
3401           into possible ones which contain the same code, adding assertions
3402           that the "impossible" hasn't happened.  More robust and improves
3403           test coverage.
3405 Tue Jun 25 06:28:00 GMT 2013  Olly Betts <olly@survex.com>
3407         * m4-macros/xapian-1.3.m4: XO_LIB_XAPIAN now handles the user
3408           specifying a relative path in XAPIAN_CONFIG, e.g.: "./configure
3409           XAPIAN_CONFIG=../xapian-core/xapian-config"
3411 Tue Jun 25 05:34:41 GMT 2013  Olly Betts <olly@survex.com>
3413         * m4-macros/xapian-1.3.m4: Fix comment typo.
3415 Tue Jun 25 05:33:54 GMT 2013  Olly Betts <olly@survex.com>
3417         * configure.ac: Use AC_PATH_PROG instead of AC_PATH_PROG when there's
3418           only one name for the program to look for.
3420 Sun Jun 23 13:12:54 GMT 2013  Olly Betts <olly@survex.com>
3422         * configure.ac: clang doesn't support -Wstrict-null-sentinel or
3423           -Wlogical-op, so don't pass it these options.
3425 Sat Jun 22 13:40:40 GMT 2013  Olly Betts <olly@survex.com>
3427         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
3428           Fix failure when built with -D_GLIBCXX_DEBUG - we were modifying
3429           the top() element of a heap before calling pop(), such that the
3430           heap comparison operation (which is called when -D_GLIBCXX_DEBUG
3431           is on to verify the heap is valid) would read off the end of the
3432           data.  In a normal build, this issue would likely never manifest.
3434 Sat Jun 22 11:21:22 GMT 2013  Olly Betts <olly@survex.com>
3436         * common/bitstream.cc: Fix assertion in BitReader::decode().
3438 Sat Jun 22 09:13:13 GMT 2013  Olly Betts <olly@survex.com>
3440         * matcher/localsubmatch.cc: Fix assertion failure when built with
3441           --enable-assertions.  The behaviour when built without assertions
3442           happened to be correct.
3444 Fri Jun 21 13:10:53 GMT 2013  Olly Betts <olly@survex.com>
3446         * tests/unittest.cc: Add simple test for log2().
3448 Fri Jun 21 13:09:09 GMT 2013  Olly Betts <olly@survex.com>
3450         * common/Makefile.mk,common/log2.h,configure.ac: Add log2.h header
3451           which provides an implementation of log2() if it isn't available in
3452           the standard libraries.
3454 Fri Jun 14 13:20:58 GMT 2013  Olly Betts <olly@survex.com>
3456         * common/fd.h: Add missing header include guards.
3458 Fri Jun 14 13:19:44 GMT 2013  Olly Betts <olly@survex.com>
3460         * common/append_filename_arg.h,geospatial/geoencode.h: Fix header
3461           include guard names which don't match our naming conventions.
3463 Fri Jun 14 13:18:40 GMT 2013  Olly Betts <olly@survex.com>
3465         * backends/brass/brass_dbcheck.h,backends/chert/chert_dbcheck.h,
3466           backends/multi/multi_alltermslist.h: Fix header include guard macro
3467           names which don't match the source file names.
3469 Fri Jun 14 12:48:14 GMT 2013  Olly Betts <olly@survex.com>
3471         * common/compression_stream.h: Whitespace tweak.
3473 Thu Jun 13 13:58:14 GMT 2013  Olly Betts <olly@survex.com>
3475         * backends/chert/chert_positionlist.cc: Remove 'Assert(rd);' since rd
3476           is no longer a pointer.
3478 Thu Jun 13 13:28:43 GMT 2013  Olly Betts <olly@survex.com>
3480         * tests/harness/utestsuite.cc: Add missing GPL boilerplate and
3481           copyright statements.
3483 Thu Jun 13 13:26:07 GMT 2013  Olly Betts <olly@survex.com>
3485         * common/compression_stream.cc,common/compression_stream.h: Add
3486           missing GPL boilerplate and copyright statements.
3488 Thu Jun 13 13:24:34 GMT 2013  Olly Betts <olly@survex.com>
3490         * common/compression_stream.cc,common/compression_stream.h: Remove
3491           unused header includes; don't use "using namespace std;" in a
3492           header.
3494 Thu Jun 13 08:30:26 GMT 2013  Olly Betts <olly@survex.com>
3496         * backends/brass/brass_positionlist.cc: Remove 'Assert(rd);' since rd
3497           is no longer a pointer.
3499 Thu Jun 13 05:07:27 GMT 2013  Olly Betts <olly@survex.com>
3501         * common/compression_stream.h: Update include guard to match source
3502           file name.
3504 Thu Jun 13 02:38:20 GMT 2013  Olly Betts <olly@survex.com>
3506         * common/,net/length.h,net/serialise.h: Fix @file markup which wasn't
3507           actually in a doxygen comment.
3509 Thu Jun 13 02:14:22 GMT 2013  Olly Betts <olly@survex.com>
3511         * preautoreconf: Remove needless use of perl prototype.
3513 Tue Jun 11 00:40:37 GMT 2013  Olly Betts <olly@survex.com>
3515         * common/remoteprotocol.h,docs/remote_protocol.rst: Bump
3516           remote protocol version to 38.o.
3518 Tue Jun 11 00:37:01 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3520         * api/leafpostlist.cc,matcher/,net/serialise.cc,weight/weight.cc,
3521           weight/weightinternal.cc,weight/weightinternal.h: Make collection
3522           frequency available to Xapian::Weight subclasses.  Extracted from
3523           Gaurav Arora's LM branch.
3525 Wed May 22 10:04:25 GMT 2013  Olly Betts <olly@survex.com>
3527         * configure.ac: When generating ABI compatibility checks in
3528           xapian/version.h, pass $CXXFLAGS and $CPPFLAGS to $CXXCPP as they
3529           could contain options which affect the ABI (such as -fabi-version
3530           for GCC).  (Fixes #622)
3532 Wed May 22 04:20:39 GMT 2013  Olly Betts <olly@survex.com>
3534         * common/win32_uuid.cc: Microsoft GUIDs in binary form have reversed
3535           byte order in the first three components compared to standard UUIDs,
3536           so the same database would report a different UUID on Windows to
3537           on other platforms.  With this fix, the UUIDs of existing databases
3538           will appear to change on Windows (except in rare "palindronic" cases).
3540 Fri May 17 05:52:43 GMT 2013  Olly Betts <olly@survex.com>
3542         * docs/overview.rst: Correct documentation for stub files specifying
3543           "prog" remote databases.
3545 Thu May 16 05:47:40 GMT 2013  Olly Betts <olly@survex.com>
3547         * backends/chert/chert_dbcheck.cc: Code tweak for clarity.
3549 Thu May 16 05:46:42 GMT 2013  Olly Betts <olly@survex.com>
3551         * backends/chert/chert_dbcheck.cc: Fix database check that first docid
3552           in each doclength chunk is more than the last docid in the previous
3553           chunk - previously this didn't actually work.
3555 Thu May 16 05:45:04 GMT 2013  Olly Betts <olly@survex.com>
3557         * common/bitstream.h: Fix database check not to falsely report
3558           "position table: Junk after position data" whenever there are 7
3559           unused bits (7 is OK, *more* than 7 isn't).
3561 Tue May 14 12:42:11 GMT 2013  Olly Betts <olly@survex.com>
3563         * m4-macros/xapian-1.3.m4: Adjust XO_LIB_XAPIAN to strip _gitNNN
3564           suffix from snapshot versions.
3566 Sun May 12 06:11:36 GMT 2013  Olly Betts <olly@survex.com>
3568         * configure.ac: Simplify previous change.
3570 Sun May 12 06:06:47 GMT 2013  Olly Betts <olly@survex.com>
3572         * configure.ac: Handle git snapshot naming when calculating REVISION.
3574 Wed May 08 11:56:27 GMT 2013  Olly Betts <olly@survex.com>
3576         * HACKING,INSTALL,Makefile.am,README,docs/Makefile.am,docs/install.rst,
3577           docs/stemming.rst,languages/Makefile.mk,queryparser/Makefile.mk,
3578           tests/Makefile.am,tests/perftest/perftest.cc: SVN -> git.
3580 Wed May 08 08:51:22 GMT 2013  Olly Betts <olly@survex.com>
3582         * backends/brass/brass_version.cc,backends/chert/chert_version.cc:
3583           Remove unused '#include <cstdio>'.
3585 Mon May 06 11:10:25 GMT 2013  Olly Betts <olly@survex.com>
3587         * api/omenquire.cc,configure.ac,include/xapian/enquire.h: Merge two
3588           Enquire::get_eset() overloaded forms into one with a default value
3589           for parameter min_wt.
3591 Thu May 02 12:05:28 GMT 2013  Olly Betts <olly@survex.com>
3593         * NEWS,configure.ac: Update for 1.3.1.
3595 Thu May 02 11:13:30 GMT 2013  Olly Betts <olly@survex.com>
3597         * include/xapian/weight.h,tests/api_nodb.cc,tests/api_weight.cc,
3598           weight/tfidfweight.cc: Use lowercase letters for the TfIdfWeight
3599           descriptions to match what SMART uses.
3601 Wed May 01 05:13:07 GMT 2013  Olly Betts <olly@survex.com>
3603         * include/xapian/database.h: Work around Apple's OS X SDK defining a
3604           check() macro.
3606 Tue Apr 30 13:51:53 GMT 2013  Olly Betts <olly@survex.com>
3608         * NEWS: Update from ChangeLog.
3610 Mon Apr 29 03:09:16 GMT 2013  Olly Betts <olly@survex.com>
3612         * backends/brass/brass_dbcheck.cc,backends/chert/chert_dbcheck.cc:
3613           Use decode_interpolative_next() when checking database consistency.
3614           We also now complain about any junk after the position data.
3615         * common/bitstream.cc,common/bitstream.h: Remove the old version of
3616           decode_interpolative() which unpacks into a std::vector.
3618 Mon Apr 29 02:16:54 GMT 2013  Olly Betts <olly@survex.com>
3620         * backends/chert/chert_positionlist.cc,
3621           backends/chert/chert_positionlist.h: Backport positionlist changes
3622           from brass.
3624 Mon Apr 29 01:58:59 GMT 2013  Olly Betts <olly@survex.com>
3626         * backends/brass/brass_positionlist.cc: No need to initialise the
3627           BitReader object in the single-entry position list case.
3629 Mon Apr 29 01:58:10 GMT 2013  Olly Betts <olly@survex.com>
3631         * backends/brass/brass_positionlist.cc: Fix bug when reaching the last
3632           positionlist entry in skip_to().
3634 Mon Apr 29 00:46:10 GMT 2013  Olly Betts <olly@survex.com>
3636         * tests/api_posdb.cc: Fix comment typos.
3638 Mon Apr 29 00:27:42 GMT 2013  Olly Betts <olly@survex.com>
3640         * backends/brass/brass_positionlist.cc: Fix handling of single-entry
3641           position lists.
3643 Sun Apr 28 23:45:02 GMT 2013  Olly Betts <olly@survex.com>
3645         * backends/brass/brass_positionlist.cc: Fix BrassPositionList for case
3646           when there's no positional information for a term.
3648 Sun Apr 28 10:29:59 GMT 2013  Olly Betts <olly@survex.com>
3650         * backends/brass/brass_positionlist.cc: Simplify setting of
3651           have_started in BrassPositionList::skip_to().
3653 Sun Apr 28 10:19:52 GMT 2013  Olly Betts <olly@survex.com>
3655         * backends/brass/brass_positionlist.cc,
3656           backends/brass/brass_positionlist.h,common/bitstream.h: Make the
3657           BitReader object a member of BrassPositionList rather than tracking
3658           a pointer to it.
3660 Sun Apr 28 07:22:07 GMT 2013  Olly Betts <olly@survex.com>
3662         * backends/brass/brass_positionlist.cc,common/bitstream.h: Reuse the
3663           same BitReader object for each document rather than deleting the old
3664           one and creating a new one.
3666 Sun Apr 28 07:06:12 GMT 2013  Olly Betts <olly@survex.com>
3668         * backends/brass/brass_positionlist.cc: Move check for reaching the
3669           end after the next() in the loop in skip_to(), as we know we aren't
3670           at the end on the first iteration, and we've now handled the case of
3671           termpos == last before we get here.
3673 Sun Apr 28 07:04:54 GMT 2013  Olly Betts <olly@survex.com>
3675         * backends/brass/brass_positionlist.cc: We know what the last entry in
3676           the position list is, so special case skip_to(last_entry) to just
3677           move there rather than calling next() a lot of times.
3679 Sun Apr 28 07:03:57 GMT 2013  Olly Betts <olly@survex.com>
3681         * common/bitstream.h: We don't need to stack pos_j when doing lazy
3682           interpolative decoding.
3684 Sun Apr 28 06:48:01 GMT 2013  Olly Betts <olly@survex.com>
3686         * common/bitstream.h: Store j and k before pos_j and pos_k as it's
3687           fractionally more efficient.
3689 Sun Apr 28 06:44:32 GMT 2013  Olly Betts <olly@survex.com>
3691         * backends/brass/brass_positionlist.cc,
3692           backends/brass/brass_positionlist.h,common/bitstream.cc,
3693           common/bitstream.h: Hook up BrassPositionList to the new lazy
3694           interpolative decoder.
3696 Fri Apr 26 02:09:38 GMT 2013  Marius Tibeica <mtibeica@gmail.com>
3698         * common/bitstream.cc,common/bitstream.h: Support reading entries from
3699           an interpolative coded list one by one.
3701 Thu Apr 25 10:57:02 GMT 2013  Olly Betts <olly@survex.com>
3703         * docs/remote_protocol.rst: Correct error in documentation of
3704           REPLY_DOCDATA message.
3706 Thu Apr 25 10:44:56 GMT 2013  Marius Tibeica <mtibeica@gmail.com>
3708         * common/bitstream.cc: renamed my_fls to highest_order_bit.
3710 Thu Apr 25 06:49:48 GMT 2013  Olly Betts <olly@survex.com>
3712         * backends/remote/remote-database.cc,common/remoteprotocol.h,
3713           docs/remote_protocol.rst,net/remoteserver.cc: Prefix compress
3714           list of terms and metadata keys in the remote protocol.  
3715           This requires a remote protocol major version bump.
3717 Wed Apr 24 23:14:47 GMT 2013  Olly Betts <olly@survex.com>
3719         * queryparser/lemon.c,queryparser/queryparser.lt: Fix comment typos.
3721 Wed Apr 24 06:27:26 GMT 2013  Olly Betts <olly@survex.com>
3723         * include/xapian.h: Add catch for Wt defining a macro called slots,
3724           like we already do for Qt.
3726 Wed Apr 24 03:40:13 GMT 2013  Olly Betts <olly@survex.com>
3728         * NEWS: Update.
3730 Tue Apr 23 12:34:23 GMT 2013  Olly Betts <olly@survex.com>
3732         * backends/brass/brass_table.cc: Use a block's revision number to
3733           check if it was newly allocated in the current revision, and
3734           assert that the base file shows it block_free_at_start (previously
3735           the check and assertion were the other way around).
3737 Tue Apr 23 12:11:21 GMT 2013  Olly Betts <olly@survex.com>
3739         * HACKING: Note macports needed for development work.
3741 Tue Apr 23 11:41:17 GMT 2013  Olly Betts <olly@survex.com>
3743         * include/xapian/version_h.cc: Fix typo in doc comment.
3745 Tue Apr 23 11:39:30 GMT 2013  Olly Betts <olly@survex.com>
3747         * include/xapian/version_h.cc: Disable error for direct inclusion
3748           of xapian/version.h for now.
3750 Sun Apr 21 07:49:38 GMT 2013  Olly Betts <olly@survex.com>
3752         * include/xapian/version_h.cc: Fix quotes in new #error in version.h.
3754 Sun Apr 21 06:25:57 GMT 2013  Olly Betts <olly@survex.com>
3756         * configure.ac,generate-exceptions,include/xapian/: Give an error if
3757           user code tries to include API headers other than xapian.h directly.
3759 Sat Apr 20 10:12:23 GMT 2013  Olly Betts <olly@survex.com>
3761         * languages/compiler/generator.c: Generate '#include <config.h>' at
3762           the start of the stemmer code.
3764 Fri Apr 19 23:36:25 GMT 2013  Olly Betts <olly@survex.com>
3766         * configure.ac: Remove empty default cases.
3768 Wed Apr 17 03:06:57 GMT 2013  Olly Betts <olly@survex.com>
3770         * NEWS: Update from 1.2.15 and ChangeLog.
3772 Thu Apr 11 22:17:44 GMT 2013  Olly Betts <olly@survex.com>
3774         * backends/brass/brass_version.cc,backends/chert/chert_version.cc:
3775           Call io_sync() on the version file when we create it.
3777 Tue Apr 09 11:02:35 GMT 2013  Olly Betts <olly@survex.com>
3779         * bin/xapian-delve.cc: If -v is specified more than once, show even
3780           more info in some cases.
3782 Tue Apr 09 09:40:02 GMT 2013  Olly Betts <olly@survex.com>
3784         * tests/Makefile.am: Force automake to use the serial test driver,
3785           which requires automake 1.12 (to recognise the serial-tests driver).
3787 Mon Apr 08 06:30:40 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3789         * weight/: Added tfidfweight.cc containing the implementation of the
3790           TfIdfWeight class.
3792         * include/xapian/weight.h: Added TfIdfWeight class for the tf-idf
3793           weighting scheme.
3795         * tests/api_weight.cc: Added tests for TfIdfWeight.
3797         * tests/api_nodb.cc: Added simple tests for TfIdfWeight.
3799 Sat Apr 06 00:21:34 GMT 2013  Olly Betts <olly@survex.com>
3801         * m4-macros/xapian-1.3.m4: XO_LIB_XAPIAN now handles the user
3802           specifying XAPIAN_CONFIG without a path - e.g.: "./configure
3803           XAPIAN_CONFIG=xapian-config-1.3"
3805 Thu Apr 04 12:02:36 GMT 2013  Olly Betts <olly@survex.com>
3807         * common/Makefile.mk: Remove random comment.
3809 Thu Apr 04 10:06:53 GMT 2013  Olly Betts <olly@survex.com>
3811         * Makefile.am,configure.ac,tests/Makefile.am: Remove support for
3812           'configure --enable-quiet', 'make QUIET=' and 'make QUIET=y' -
3813           automake now supports 'configure --enable-silent-rules', 'make V=1'
3814           and 'make V=0' which are broadly equivalent and more standard.
3816 Thu Apr 04 09:58:35 GMT 2013  Olly Betts <olly@survex.com>
3818         * HACKING: Update to note that automake 1.12.2 is now a hard
3819           requirement.
3821 Tue Apr 02 10:22:44 GMT 2013  Olly Betts <olly@survex.com>
3823         * queryparser/lemon.c: Comment typo fixes.
3825 Tue Apr 02 09:47:14 GMT 2013  Olly Betts <olly@survex.com>
3827         * queryparser/lemon.c,queryparser/queryparser.lt: Sync with latest
3828           upstream version of lemon.  The only notable change is a bug fix for
3829           platforms where sizeof(long) < sizeof(void*) (LLP64 model).
3831 Tue Apr 02 05:51:12 GMT 2013  Olly Betts <olly@survex.com>
3833         * HACKING: Tell vim to syntax highlight as rst.
3835 Tue Apr 02 05:50:26 GMT 2013  Olly Betts <olly@survex.com>
3837         * HACKING: Update for recent changes to bootstrap.  In particular, we
3838           now bootstrap snapshots with automake 1.13.1.
3840 Fri Mar 29 05:18:11 GMT 2013  Olly Betts <olly@survex.com>
3842         * net/tcpclient.cc: Fix __WIN32__ conditional, accidentally broken in
3843           last change to this file.
3845 Thu Mar 28 04:19:26 GMT 2013  jiangwen jiang <jiangwen127@gmail.com>
3847         * api/expanddecider.cc,include/xapian/expanddecider.h,
3848           tests/api_anydb.cc,tests/api_nodb.cc: Add ExpandDeciderFilterPrefix
3849           class to only return terms with a particular prefix.  (fixes #467)
3851 Thu Mar 21 23:55:26 GMT 2013  Olly Betts <olly@survex.com>
3853         * tests/queryparsertest.cc: Add test coverage for change to
3854           QueryParser CJK handling in previous commit.
3856 Thu Mar 21 07:21:30 GMT 2013  Greg Banks <gnb@fastmail.fm>
3858         * queryparser/cjk-tokenizer.cc,queryparser/termgenerator_internal.cc,
3859           tests/termgentest.cc: Some CJK codepoints are also punctuation and
3860           hence not word characters, and should not really be used as fodder
3861           for generating N-grams.  Also fixes a pre-existing bug where every
3862           second sequence of N-grammable CJK characters in the text failed to
3863           generate the first 2-gram.
3865 Sun Mar 17 20:45:48 GMT 2013  Olly Betts <olly@survex.com>
3867         * common/pretty.h: Restore space after comma in output.
3869 Sun Mar 17 03:59:52 GMT 2013  Dan Colish <dcolish@gmail.com>
3871         * common/pretty.h: Correct recursion issue.
3873 Sun Mar 17 02:58:52 GMT 2013  Dan Colish <dcolish@gmail.com>
3875         * common/pretty.h: Resolve ambiguity by moving operator| to a member
3876           function of PrettyOStream
3878 Sat Mar 16 21:43:32 GMT 2013  Olly Betts <olly@survex.com>
3880         * queryparser/queryparser.lemony: std::less provides a total order over
3881           pointers, so we can just use that to implement
3882           filter_group_id::operator<() - we only need a consistent order so we
3883           can use it as the key to a std::map.
3885 Fri Mar 15 06:36:32 GMT 2013  Dan Colish <dcolish@gmail.com>
3887         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
3888           common/pretty.h: Avoid needlessly casting away const-ness in
3889           debug logging.
3891 Fri Mar 15 06:31:32 GMT 2013  Olly Betts <olly@survex.com>
3893         * matcher/multiandpostlist.cc,matcher/multixorpostlist.cc: Add a
3894           couple more LOGCALL annotations.
3896 Fri Mar 15 06:27:42 GMT 2013  Dan Colish <dcolish@gmail.com>
3898         * api/registry.cc,common/pretty.h: Fix incorrect LOGCALL return value.
3900 Fri Mar 15 06:24:11 GMT 2013  Olly Betts <olly@survex.com>
3902         * api/registry.cc,common/Makefile.mk,common/registryinternal.h:
3903           common/registryinternal.h is only included by api/registry.cc so
3904           just inline its contents.
3906 Fri Mar 15 06:11:14 GMT 2013  Olly Betts <olly@survex.com>
3908         * api/registry.cc: No need to explicitly default initialise std::map
3909           members or the base class.
3911 Fri Mar 08 04:05:31 GMT 2013  Olly Betts <olly@survex.com>
3913         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc: Fix
3914           multipass compaction not to damage document values, and to merge the
3915           database stats correctly.  (fixes #615)
3916         * tests/api_compact.cc: Add regression test compactmultipass1.
3918 Thu Mar 07 00:34:46 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3920         * tests/api_anydb.cc: Added tradweight4 testcase to test TradWeight
3921           with an RSet for weighting documents.
3923 Wed Mar 06 08:55:12 GMT 2013  Olly Betts <olly@survex.com>
3925         * HACKING: gs package has been replaced by ghostscript package in
3926           current Debian and Ubuntu releases.
3928 Tue Feb 19 04:17:19 GMT 2013  Olly Betts <olly@survex.com>
3930         * common/Tokeniseise.pm: Add the ability to append lines to the
3931           header.
3933 Fri Feb 15 05:37:09 GMT 2013  Olly Betts <olly@survex.com>
3935         * common/realtime.h: Fix RealTime::sleep() to calculate the delta to
3936           the time we want to sleep to the right way round.  Previously we
3937           wouldn't sleep if we were before the deadline, but would sleep if
3938           the deadline had already passed (and by the amount the deadline had
3939           passed)!  And on Windows, fix the sleep to be for the delta rather
3940           than 43+ years (the time elapsed since the start of 1970).  (Fixes
3941           #472)
3943 Fri Feb 15 04:09:28 GMT 2013  Olly Betts <olly@survex.com>
3945         * api/queryinternal.cc: Need <functional> for mem_fun().
3947 Fri Feb 15 03:56:32 GMT 2013  Olly Betts <olly@survex.com>
3949         * tests/harness/testsuite.cc: Don't provide explicit template types to
3950           make_pair - it isn't useful, and breaks with C++11.  Fixes build
3951           error with MSVC2012.
3953 Thu Jan 31 23:39:08 GMT 2013  Olly Betts <olly@survex.com>
3955         * common/Tokeniseise.pm: Put the binary chop tables with the larger
3956           ones last, so the offsets to the start of them are more likely to
3957           fit into a byte.
3959 Wed Jan 30 04:17:07 GMT 2013  Olly Betts <olly@survex.com>
3961         * common/Makefile.mk,common/Tokeniseise.pm,languages/Makefile.mk,
3962           languages/collate-sbl: Factor out the generic code to create a
3963           string-to-enum mapping table into a perl module so we can reuse
3964           it elsewhere.
3966 Mon Jan 28 01:44:53 GMT 2013  Olly Betts <olly@survex.com>
3968         * examples/quest.cc: Fix to build with Sun Studio 12 compiler.
3969           (ticket#611)
3971 Thu Jan 24 22:40:12 GMT 2013  Olly Betts <olly@survex.com>
3973         * common/Makefile.mk,common/keyword.cc,common/keyword.h: Commit new
3974           keyword lookup function needed by previous commit.
3976 Thu Jan 24 22:26:19 GMT 2013  Olly Betts <olly@survex.com>
3978         * languages/: Generate a compact and efficient table to convert
3979           language names to enum codes, which we can then use a C switch
3980           statement to dispatch.  The table first checks the token length,
3981           and then does a binary chop on tokens of the same length.  This
3982           is both faster and smaller than the approach we were using, with
3983           the benefit that the table is auto-generated.
3985 Wed Jan 23 00:51:42 GMT 2013  Olly Betts <olly@survex.com>
3987         * matcher/selectpostlist.cc,matcher/selectpostlist.h: Check document
3988           matches weight threshold before checking positional information,
3989           which speeds up slow phrase searches (tweaked version of
3990           positional-query-weight-check-first.patch from #394).
3992 Thu Jan 17 06:48:41 GMT 2013  Olly Betts <olly@survex.com>
3994         * tests/api_stem.cc: Extend stem2 to ensure description of the stemmer
3995           isn't the same as the description of Stem("none").  Fix description
3996           of testcase stemlangs2.
3998 Thu Jan 17 02:32:31 GMT 2013  Olly Betts <olly@survex.com>
4000         * HACKING: Update link to new home of autotools tutorial.
4002 Wed Jan 16 02:40:20 GMT 2013  Olly Betts <olly@survex.com>
4004         * HACKING,Makefile.am: Rename CHK_SOURCES to check_sources - variables
4005           ending _SOURCES usually have a special meaning in automake, so it's
4006           confusing to have one which doesn't.
4008 Wed Jan 16 01:55:50 GMT 2013  Olly Betts <olly@survex.com>
4010         * api/omenquire.cc: Don't cache documents retrieved by
4011           MSet::get_document() unless they were requested with fetch().  This
4012           avoids using a lot of memory when many MSet entries are retrieved.
4013           (Fixes #604)
4015 Wed Jan 09 11:49:58 GMT 2013  Olly Betts <olly@survex.com>
4017         * NEWS: Update from ChangeLog and 1.2 branch.
4019 Fri Jan 04 23:14:33 GMT 2013  Olly Betts <olly@survex.com>
4021         * net/progclient.cc: Fix typo so we actually use SOCK_CLOEXEC.
4023 Fri Jan 04 23:14:01 GMT 2013  Olly Betts <olly@survex.com>
4025         * common/safesyssocket.h: We need the same workaround for socket() too.
4027 Fri Jan 04 04:41:17 GMT 2013  Olly Betts <olly@survex.com>
4029         * common/safesyssocket.h: On Linux at least, sometimes SOCK_CLOEXEC is
4030           defined but the kernel doesn't handle it in socketpair(), so add a
4031           wrapper which will retry without SOCK_CLOEXEC in this case.  Noticed
4032           on Ubuntu precise.
4034 Sat Dec 29 17:53:30 GMT 2012  Olly Betts <olly@survex.com>
4036         * docs/quickstart.rst: Fix seriously outdated statement that Xapian
4037           doesn't create the database directory - that changed in 0.7.2
4038           (release 2003-07-11), pointed out by aarsh on #xapian.
4040 Thu Dec 27 06:06:30 GMT 2012  Olly Betts <olly@survex.com>
4042         * queryparser/queryparser.lemony: Adjust handling of Unicode
4043           opening/closing double quotes - if a quoted boolean term was started
4044           with ASCII double quote, then only ASCII double quote can end it, as
4045           otherwise it's impossible to quote a term containing Unicode double
4046           quotes.
4047         * tests/queryparsertest.cc: Update testcases.
4049 Sun Dec 23 18:16:52 GMT 2012  Olly Betts <olly@survex.com>
4051         * configure.ac: Fix typo in previous commit.
4053 Sun Dec 23 18:06:45 GMT 2012  Olly Betts <olly@survex.com>
4055         * configure.ac: Use the new flock()-based flint-compatible locking
4056           under DJGPP, and remove special cases to disable chert and brass
4057           under DJGPP (untested, as I no longer have a DJGPP setup or
4058           cross-compiler).
4060 Sun Dec 23 17:51:36 GMT 2012  Olly Betts <olly@survex.com>
4062         * backends/flint_lock.cc,backends/flint_lock.h: Add flock() based
4063           locking implementation, which is much simpler than using fcntl() due
4064           to saner semantics around releasing locks when closing other
4065           descriptors on the same file (at least on platforms where flock()
4066           isn't just a compatibility wrapper around fcntl()).  We can't simply
4067           switch to this without breaking locking compatibility with previous
4068           releases, though it might be useful for porting to platforms without
4069           fcntl() locking.  Also, flock() apparently doesn't work over NFS -
4070           perhaps that's OK, but we should at least check the failure mode.
4072 Sat Dec 22 06:29:23 GMT 2012  Olly Betts <olly@survex.com>
4074         * backends/flint_lock.cc: Only set close-on-exec on the lockfile fd if
4075           we are able to clear it in the child process, and clear it in the
4076           child process if we set it when we opened it.
4078 Sat Dec 22 06:14:40 GMT 2012  Olly Betts <olly@survex.com>
4080         * backends/flint_lock.cc,net/progclient.cc: Use SOCK_CLOEXEC with
4081           socketpair(), and then clear the close-on-exec flag for child process
4082           end of the pair before we call exec.
4084 Sat Dec 22 06:13:44 GMT 2012  Olly Betts <olly@survex.com>
4086         * net/progclient.cc: Remove O_CLOEXEC where we open stderr on /dev/null
4087           before calling exec as we want that fd to survive the exec!
4089 Sat Dec 22 05:53:12 GMT 2012  Olly Betts <olly@survex.com>
4091         * HACKING,backends/flint_lock.cc,common/Makefile.mk,
4092           common/safesyssocket.h,net/progclient.cc,net/tcpclient.cc,
4093           net/tcpserver.cc,tests/harness/backendmanager_remotetcp.cc:
4094           Use SOCK_CLOEXEC where available, and try FD_CLOEXEC if SOCK_CLOEXEC
4095           isn't available.
4097 Sat Dec 22 04:09:23 GMT 2012  Olly Betts <olly@survex.com>
4099         * backends/brass/,backends/chert/,backends/flint_lock.cc,
4100           common/debuglog.cc,common/replicate_utils.cc,common/safefcntl.h,
4101           net/progclient.cc,net/remoteconnection.cc,
4102           tests/harness/testsuite.cc: If O_CLOEXEC is supported, pass it to
4103           open() so fds we open are closed if the application using us calls
4104           exec().
4106 Fri Dec 21 03:48:36 GMT 2012  Olly Betts <olly@survex.com>
4108         * configure.ac: Don't autodisable the remote backend if we fail to find
4109           a required function.  It's more likely the user needs to pass
4110           LIBS=-lfoo and it's more helpful to error out so they can do that, or
4111           pass --disable-backend-remote if they really don't want it, rather
4112           than having them not notice the automatic disabling until after
4113           they've built.  This also matches what we do for the disk based
4114           backends.
4116 Fri Dec 21 03:48:11 GMT 2012  Olly Betts <olly@survex.com>
4118         * configure.ac: Expand comment about DJGPP.
4120 Fri Dec 21 03:47:13 GMT 2012  Olly Betts <olly@survex.com>
4122         * configure.ac: Update comment - we've supported the prog backend on
4123           Windows for more than 5 years now!
4125 Fri Dec 21 03:32:13 GMT 2012  Olly Betts <olly@survex.com>
4127         * tests/api_replicate.cc: Use O_BINARY in replication tests.
4129 Fri Dec 21 03:24:37 GMT 2012  Olly Betts <olly@survex.com>
4131         * common/replicate_utils.cc: Make posixy_open() always use O_BINARY.
4132         * backends/brass/brass_btreebase.cc,backends/brass/brass_database.cc,
4133           backends/brass/brass_databasereplicator.cc,
4134           backends/chert/chert_btreebase.cc,
4135           backends/chert/chert_databasereplicator.cc,common/posixy_wrapper.cc:
4136           Don't pass O_BINARY to posixy_open() in the places where we were
4137           (which wasn't everywhere, probably causing replication bugs under
4138           __WIN32__).
4140 Fri Dec 21 02:57:56 GMT 2012  Olly Betts <olly@survex.com>
4142         * net/remoteconnection.cc,net/remoteconnection.h: Only "outline"
4143           RemoteConnection dtor under __WIN32__.
4145 Fri Dec 21 02:56:28 GMT 2012  Olly Betts <olly@survex.com>
4147         * backends/remote/remote-database.cc: Make the UnimplementedError for a
4148           MatchSpy which doesn't implement name() clearer that it's this
4149           particular subclass which can't be used remotely, not all MatchSpy
4150           objects.
4152 Thu Dec 20 22:27:40 GMT 2012  Olly Betts <olly@survex.com>
4154         * configure.ac: Use user-specified LIBS for configure tests, which is
4155           what's expected, and provides a way for the user to tell configure
4156           where to find library functions which configure can't find for
4157           itself.
4159 Thu Dec 20 22:07:19 GMT 2012  Olly Betts <olly@survex.com>
4161         * api/compactor.cc,api/replication.cc,backends/brass/,backends/chert/,
4162           common/,net/remoteconnection.cc: Rename msvc_posix_rename(), etc to
4163           posixy_rename() (avoid a posix_ prefix as that's used by some library
4164           functions, and these aren't necessarily 100% POSIX compatible), and
4165           provide macro versions on Unix, so we can avoid a #ifdef at every
4166           call site.
4168 Thu Dec 20 20:57:18 GMT 2012  Olly Betts <olly@survex.com>
4170         * configure.ac: socketpair() needs -lnetwork on Haiku.
4172 Thu Dec 20 02:30:12 GMT 2012  Olly Betts <olly@survex.com>
4174         * backends/brass/brass_databasereplicator.cc,
4175           backends/chert/chert_databasereplicator.cc: Simplify how we open the
4176           .DB file on the replication slave to just call open() once with
4177           O_CREAT, rather than once without, than stat() if that fails, and
4178           then again with O_CREAT|O_TRUNC if stat() doesn't show an ordinary
4179           file exists.
4181 Thu Dec 20 02:05:12 GMT 2012  Olly Betts <olly@survex.com>
4183         * api/compactor.cc,common/,languages/compiler/syswords2.h,
4184           tests/api_compact.cc: Remove extra blank lines at end of files.
4186 Thu Dec 20 01:54:47 GMT 2012  Olly Betts <olly@survex.com>
4188         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
4189           Fix "if (fd > 0)" tests to be "if (fd >= 0)" in code related to
4190           replication.  In practice this is unlikely to actually have caused
4191           problems in real world cases.
4193 Sun Dec 16 23:10:13 GMT 2012  Olly Betts <olly@survex.com>
4195         * bin/Makefile.mk: INCLUDES is always used, AM_CPPFLAGS isn't if there
4196           are per-executable CPPFLAGS, so add AM_CPPFLAGS explicitly when we
4197           use per-executable CPPFLAGS.
4199 Fri Dec 14 21:25:58 GMT 2012  Olly Betts <olly@survex.com>
4201         * Makefile.am,languages/Makefile.mk,queryparser/Makefile.mk,
4202           tests/Makefile.am: In automake, INCLUDES is now deprecated in favour
4203           of AM_CPPFLAGS so update to use the latter.
4205 Tue Nov 27 05:39:30 GMT 2012  Olly Betts <olly@survex.com>
4207         * examples/quest.cc: Need <algorithm> for lower_bound().
4209 Mon Nov 26 23:46:43 GMT 2012  Olly Betts <olly@survex.com>
4211         * examples/quest.cc: Align option descriptions in --help output, and
4212           make the initial letter of such descriptions consistently lowercase.
4214 Mon Nov 26 19:52:50 GMT 2012  Olly Betts <olly@survex.com>
4216         * examples/quest.cc: Add --flags command line option to allow setting
4217           arbitrary QueryParser flags.
4219 Mon Nov 26 03:02:03 GMT 2012  Olly Betts <olly@survex.com>
4221         * api/valuerangeproc.cc: Move 3 declarations to where we first use the
4222           variables.
4224 Mon Nov 26 02:59:41 GMT 2012  Olly Betts <olly@survex.com>
4226         * matcher/multimatch.cc: We no longer use the highest weighted
4227           MSet entry to calculate percentages, so stop searching for it.
4228           (Spotted by cppcheck)
4230 Mon Nov 26 02:59:02 GMT 2012  Olly Betts <olly@survex.com>
4232         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
4233           Remove unused variables (spotted by cppcheck).
4235 Mon Nov 26 02:12:19 GMT 2012  Olly Betts <olly@survex.com>
4237         * api/maptermlist.h,api/matchspy.cc,api/omdatabase.cc,
4238           backends/inmemory/inmemory_database.cc,
4239           backends/inmemory/inmemory_positionlist.cc,
4240           backends/multi/multi_postlist.cc,backends/remote/net_termlist.cc,
4241           bin/xapian-delve.cc,matcher/exactphrasepostlist.cc,
4242           matcher/mergepostlist.cc,matcher/phrasepostlist.cc,
4243           tests/harness/backendmanager.cc: Prefer ++i to i++.
4245 Fri Nov 23 03:38:39 GMT 2012  Olly Betts <olly@survex.com>
4247         * HACKING,Makefile.am: With lcov 1.10, we no longer need any of our
4248           hacky workarounds, so make this a requirement and simplify the rules
4249           in the makefile.
4251 Thu Nov 22 23:34:09 GMT 2012  Olly Betts <olly@survex.com>
4253         * Makefile.am: Pass -f to lcov, which should avoid the need for the
4254           patch we've been applying to lcov.
4256 Thu Nov 22 01:34:05 GMT 2012  Olly Betts <olly@survex.com>
4258         * backends/flint_lock.cc: Close excess file handles before we get the
4259           fcntl() lock, just in case one of those file handles is open on the
4260           lock file.
4261         * tests/api_backend.cc: Add regression test lockfilealreadyopen1.
4263 Thu Nov 22 00:35:51 GMT 2012  Olly Betts <olly@survex.com>
4265         * common/closefrom.cc,configure.ac: On platforms with the F_MAXFD
4266           fcntl but without closefrom(), we were failing to close the highest
4267           numbered open fd in our closefrom() replacement.  We now also work
4268           around valgrind not hiding some extra fds it has open, but then
4269           complaining if we try to close them.
4271 Wed Nov 21 22:50:21 GMT 2012  Olly Betts <olly@survex.com>
4273         * tests/harness/testsuite.cc: When reporting valgrind error, skip any
4274           warnings.
4276 Tue Nov 20 07:26:24 GMT 2012  Olly Betts <olly@survex.com>
4278         * tests/api_anydb.cc: msetweights1 makes multidb1 and multidb2
4279           redundant, so remove them.
4281 Tue Nov 20 07:21:46 GMT 2012  Olly Betts <olly@survex.com>
4283         * tests/api_backend.cc: Extend msetweights1 to test the case where
4284           only even docids match, so in the multi_* case, only docids from
4285           one subdatabase match.
4287 Tue Nov 20 07:04:55 GMT 2012  Olly Betts <olly@survex.com>
4289         * tests/api_backend.cc: Add testcase msetweights1 which checks we
4290           get the weights we expect for a two term query.
4292 Mon Nov 19 21:17:33 GMT 2012  Olly Betts <olly@survex.com>
4294         * queryparser/termgenerator.cc: TermGenerator internal member can
4295           never be NULL, so drop NULL test.
4297 Sat Nov 17 20:54:50 GMT 2012  Olly Betts <olly@survex.com>
4299         * tests/harness/testsuite.cc: Remove compatibility code for valgrind <
4300           3.3.0, since we reject such old versions at configure time.
4302 Sat Nov 17 00:05:36 GMT 2012  Olly Betts <olly@survex.com>
4304         * matcher/localsubmatch.cc: Optimise an unweighted query term which
4305           matches all the documents in a subdatabase to use the "MatchAll"
4306           postlist.  (ticket#387)
4308 Fri Nov 16 23:36:34 GMT 2012  Olly Betts <olly@survex.com>
4310         * tests/api_weight.cc: New testcase checkstatsweight1 which checks a
4311           weight subclass gets the correct values for all the stats.
4313 Fri Nov 16 07:30:18 GMT 2012  Olly Betts <olly@survex.com>
4315         * include/xapian/version_h.cc: Generate a check for compatible _DEBUG
4316           settings if built with MSVC.  (ticket#389)
4318 Fri Nov 16 01:28:55 GMT 2012  Olly Betts <olly@survex.com>
4320         * queryparser/queryparser.lemony: Improve a couple of comments.
4322 Fri Nov 16 01:25:28 GMT 2012  Olly Betts <olly@survex.com>
4324         * queryparser/queryparser.lemony: Implicitly close any unclosed brackets
4325           at the end of the query string.  Patch from Sehaj Singh Kalra.
4326         * tests/queryparsertest.cc: Adjust existing testcases and feature tests.
4328 Thu Nov 15 23:57:10 GMT 2012  Olly Betts <olly@survex.com>
4330         * tests/api_query.cc: Add testcase xor3 to ensure that XOR handles all
4331           remaining subqueries running out at the same time.
4333 Thu Nov 15 10:57:32 GMT 2012  Olly Betts <olly@survex.com>
4335         * tests/api_query.cc: One test here does need a backend, and it seems
4336           a more useful category, so drop the "don't need a backend" part from
4337           the @brief documentation comment.
4339 Thu Nov 15 09:29:47 GMT 2012  Olly Betts <olly@survex.com>
4341         * matcher/multimatch.cc: Fix calculation of 0.0/0.0 in some cases.
4342           This then got used as a minimum weight, but it seems this gives -nan
4343           (at least on x86-64 Linux) so it may have been harmless in practice.
4345 Thu Nov 15 05:39:47 GMT 2012  Olly Betts <olly@survex.com>
4347         * tests/api_anydb.cc: Eliminate workarounds for egcs 1.1.2 (certainly
4348           we no longer support a compiler that old, but maybe some newer
4349           compilers have the same issue, so I've rewritten the code to iterate
4350           backwards over one MSet, which is a useful feature to have coverage
4351           for).
4353 Thu Nov 15 05:28:40 GMT 2012  Olly Betts <olly@survex.com>
4355         * tests/api_anydb.cc: Fix reversebool1 and reversebool2 to actually
4356           use the result when they check an MSetIterator against end().
4358 Thu Nov 15 01:55:15 GMT 2012  Olly Betts <olly@survex.com>
4360         * bin/xapian-replicate.cc: Add --quiet option to xapian-replicate, and
4361           be a little more verbose by default.
4363 Thu Nov 15 01:54:14 GMT 2012  Olly Betts <olly@survex.com>
4365         * bin/xapian-replicate.cc: xapian-replicate --force-copy now only
4366           forces a single copy, and then attempts to replicate incrementally.
4368 Thu Nov 15 00:51:50 GMT 2012  Olly Betts <olly@survex.com>
4370         * bin/xapian-replicate.cc: Tweak code layout.
4372 Wed Nov 14 21:40:45 GMT 2012  Olly Betts <olly@survex.com>
4374         * net/remoteconnection.cc: Allow files > 32G to be be copied by
4375           replication.
4377 Tue Nov 13 03:44:03 GMT 2012  Olly Betts <olly@survex.com>
4379         * tests/api_replicate.cc: Pass 'true' or 'false' for 'bool' parameter,
4380           not '0' or '1' (especially confusing as the two previous parameters
4381           were integers which were often 0 or 1...)
4383 Tue Nov 13 03:34:42 GMT 2012  Olly Betts <olly@survex.com>
4385         * bin/xapian-replicate.cc,net/replicatetcpclient.cc,
4386           net/replicatetcpclient.h: Add --full-copy option to xapian-replicate.
4387         * tests/api_replicate.cc: New testcase replicate6 which tests the same
4388           code path used by 'xapian-replicate --full-copy'.
4390 Tue Nov 13 02:55:44 GMT 2012  Olly Betts <olly@survex.com>
4392         * tests/api_replicate.cc: Use '++' instead of '+= 1'.  Drop superfluous
4393           'return;' at end of function returning void.
4395 Tue Nov 13 01:12:33 GMT 2012  Olly Betts <olly@survex.com>
4397         * tests/harness/unixcmds.cc: Tweak to avoid default initialisation of
4398           string.
4400 Mon Nov 12 23:25:14 GMT 2012  Olly Betts <olly@survex.com>
4402         * include/xapian/unicode.h: GCC 4.6.3 doesn't optimise the asr idion
4403           either.  Add links to the PR I filed and the GCC documentation that
4404           signed right shift does sign extension.
4406 Mon Nov 12 10:21:19 GMT 2012  Olly Betts <olly@survex.com>
4408         * include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
4409           character database to 6.2.0.
4410         * tests/api_unicode.cc: Add tests for U+20BA, added in 6.2.0.
4412 Sat Nov 10 05:39:16 GMT 2012  Olly Betts <olly@survex.com>
4414         * api/leafpostlist.cc,matcher/multiandpostlist.cc: Improved fix for
4415           #590 - count all matching LeafPostList objects with a Weight object
4416           rather than trying to prune at the MultiAndPostList level based on
4417           max_wt (if wdf is always zero for a term, BM25 gives max_wt of 0,
4418           which leads to us never counting that subquery.
4419         * tests/api_percentages.cc: Add regression test topercent7.
4421 Fri Nov 09 04:25:32 GMT 2012  Olly Betts <olly@survex.com>
4423         * tests/api_percentages.cc: Note bug number in regression test for
4424           #590.
4426 Tue Nov 06 22:42:31 GMT 2012  Olly Betts <olly@survex.com>
4428         * backends/brass/brass_table.cc: Restore two missing lines in database
4429           checking where we report a block with the wrong level.
4431 Tue Oct 16 11:19:42 GMT 2012  Olly Betts <olly@survex.com>
4433         * api/compactor.cc,backends/dbcheck.cc,backends/dbfactory.cc,
4434           common/Makefile.mk: Fix to build when configured with
4435           --disable-backend-brass --disable-backend-chert.  (ticket#586)
4437 Mon Oct 15 04:07:30 GMT 2012  Olly Betts <olly@survex.com>
4439         * HACKING: automake 1.12.4 is now used to generate snapshots and
4440           releases.
4442 Sat Oct 13 09:34:21 GMT 2012  Olly Betts <olly@survex.com>
4444         * weight/weightinternal.h: Revert addition of "#include <config.h>" in
4445           r16820.
4446         * HACKING: Document that we don't include <config.h> from header
4447           files, and the reason why.
4449 Sat Oct 13 09:00:23 GMT 2012  Olly Betts <olly@survex.com>
4451         * include/xapian/queryparser.h: Fix documentation comment typos:
4452           "covert" -> "convert".
4454 Thu Oct 11 12:28:30 GMT 2012  Olly Betts <olly@survex.com>
4456         * docs/valueranges.rst: Update documentation to reflect change in
4457           Xapian 1.1.2 - DateValueRangeProcessor and StringValueRangeProcessor
4458           now support a prefix or suffix.
4460 Mon Oct 01 05:05:54 GMT 2012  Olly Betts <olly@survex.com>
4462         * HACKING: Try to make it clearer we're looking for a dual-licence
4463           on submitted patches.
4465 Tue Sep 25 08:09:08 GMT 2012  Olly Betts <olly@survex.com>
4467         * common/Makefile.mk,common/append_filename_arg.h,
4468           tests/harness/unixcmds.cc: Split out append_filename_argument() into
4469           its own file so it can be used elsewhere.
4471 Tue Sep 25 06:46:03 GMT 2012  Olly Betts <olly@survex.com>
4473         * include/xapian/enquire.h: Mark MSetIterator::at_end() and
4474           ESetIterator::at_end() as @private @internal so that they don't
4475           appear in the API docs.
4477 Tue Sep 25 06:45:07 GMT 2012  Olly Betts <olly@survex.com>
4479         * include/xapian/enquire.h: Remove FIXMEs about converting MSetIterator
4480           and ESetIterator to use Internal classes - as HACKING notes, the
4481           current implementation is that way for performance reasons.
4483 Tue Sep 25 06:36:37 GMT 2012  Olly Betts <olly@survex.com>
4485         * tests/harness/unixcmds.cc: Escape filenames on POSIX platforms by
4486           wrapping in single quotes and specially handling single quotes in
4487           the filename - previously newlines in filenames got eaten by the
4488           shell.
4490 Tue Sep 25 06:32:36 GMT 2012  Olly Betts <olly@survex.com>
4492         * tests/harness/unixcmds.cc: Protect filenames which start with '-' on
4493           MS Windows like we already do on other platforms.  The built-in
4494           commands generally only interpret '/' as the character introducing a
4495           command line option (which we already convert to '\'), but many
4496           ported programs understand '-' too/instead.
4498 Sat Aug 25 16:09:50 GMT 2012  Dan Colish <dcolish@gmail.com>
4500         * include/xapian/enquire.h: Add function to test MSetIterator and
4501           ESetIterator exhaustion against the size of the underlying interee
4502           since comparison against an empty Itor is not suitable for an
4503           exhaustion test. Add FIXME that these Iterators should use an Internal
4504           class. 
4506 Thu Aug 09 21:50:52 GMT 2012  Dan Colish <dcolish@gmail.com>
4508         * weight/weightinternal.h: Include config.h since macros are used
4509           from it. 
4511 Wed Aug 08 15:40:38 GMT 2012  Dan Colish <dcolish@gmail.com>
4513         * api/queryvector.h: Backout previous fix. When compiling with -O0,
4514           increase the stack limit to > 8M when running scalability tests.
4516 Wed Aug 08 02:10:21 GMT 2012  Dan Colish <dcolish@gmail.com>
4518         * api/queryvector.h: Fix SIGBUS when clearing QueryVectors
4520 Wed Aug 01 15:25:25 GMT 2012  Dan Colish <dcolish@gmail.com>
4522         * HACKING,Makefile.am,tests/Makefile.am: Fix non-portable warnings
4523         from automake, add HACKING doc for check-syntax make target
4525 Wed Aug 01 04:54:18 GMT 2012  Dan Colish <dcolish@gmail.com>
4527         * Makefile.am,api/Makefile,backends/Makefile,backends/brass/Makefile,
4528           backends/chert/Makefile,backends/inmemory/Makefile,
4529           backends/multi/Makefile,backends/remote/Makefile,bin/Makefile,
4530           common/Makefile,examples/Makefile,expand/Makefile,
4531           geospatial/Makefile,include/Makefile,include/xapian/Makefile,
4532           languages/Makefile,matcher/Makefile,net/Makefile,
4533           queryparser/Makefile,tests/harness/Makefile,unicode/Makefile,
4534           weight/Makefile: Add check-syntax target to Makefiles to support
4535           editor syntax checks
4537 Sun Jul 29 15:32:00 GMT 2012  Olly Betts <olly@survex.com>
4539         * configure.ac: Bump LIBRARY_VERSION_INFO so I can package a snapshot
4540           cleanly.
4542 Tue Jul 24 01:35:17 GMT 2012  Olly Betts <olly@survex.com>
4544         * include/xapian/queryparser.h,queryparser/queryparser.cc,
4545           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
4546           tests/queryparsertest.cc: Add FieldProcessor class (ticket#128) -
4547           currently marked as an experimental API while we sort out how best
4548           to sort out exactly how it interacts with other QueryParser features.
4550 Tue Jul 24 01:19:03 GMT 2012  Olly Betts <olly@survex.com>
4552         * include/xapian/queryparser.h: Add extra DateValueRangeProcessor
4553           constructor overloaded form so that in DateValueRangeProcessor(1,
4554           "date:"), the const char * gets interpreted as std::string rather
4555           than bool.
4556         * tests/queryparsertest.cc: Add regression test.
4558 Thu Jul 19 05:32:04 GMT 2012  Olly Betts <olly@survex.com>
4560         * backends/brass/brass_dbcheck.h,
4561           backends/inmemory/inmemory_alltermslist.cc,bin/xapian-delve.cc: Fix
4562           filenames in comments which mismatch actual name of file.
4564 Thu Jul 19 05:27:38 GMT 2012  Olly Betts <olly@survex.com>
4566         * queryparser/termgenerator_internal.cc: Remove "FIXME: Add API to
4567           allow control of how stemming is used?", as we have now added such
4568           an API.
4570 Thu Jul 19 05:24:49 GMT 2012  Olly Betts <olly@survex.com>
4572         * include/xapian/termgenerator.h,queryparser/termgenerator.cc,
4573           queryparser/termgenerator_internal.cc,
4574           queryparser/termgenerator_internal.h,tests/termgentest.cc: Add new
4575           method TermGenerator::set_max_word_length() to allow this limit to
4576           be adjusted by the user.
4578 Mon Jul 16 03:34:27 GMT 2012  Olly Betts <olly@survex.com>
4580         * include/xapian/enquire.h: Clarify that the "reverse" parameter of
4581           set_sort_by_relevance_then_value() and
4582           set_sort_by_relevance_then_key() only affects the ordering of the
4583           value/key part of the sort.
4585 Fri Jul 13 04:55:26 GMT 2012  Dan Colish <dcolish@gmail.com>
4587         * matcher/multimatch.cc: Remove duplicate import
4589 Thu Jul 12 05:13:57 GMT 2012  Olly Betts <olly@survex.com>
4591         * common/debuglog.cc: Preserve errno over debug logging calls, so they
4592           can safely be added to code which expects errno not to change.
4594 Mon Jul 02 05:27:43 GMT 2012  Dan Colish <dcolish@gmail.com>
4596         * backends/brass/brass_databasereplicator.cc: Use new/delete to avoid
4597           variable length array gcc extension and comply with c++98
4599 Mon Jul 02 05:02:14 GMT 2012  Dan Colish <dcolish@gmail.com>
4601         * api/omdatabase.cc,tests/api_wrdb.cc: Prefer container.empty() to
4602           container.size() == 0.
4604 Sun Jul 01 10:46:19 GMT 2012  Olly Betts <olly@survex.com>
4606         * NEWS: Update from ChangeLog, 1.2.11 and 1.2.12.
4608 Fri Jun 29 15:32:11 GMT 2012  Dan Colish <dcolish@>
4610         * tests/harness/testsuite.cc: Add safeunistd.h unconditionally for
4611           isatty, required by GCC 4.7
4613 Wed Jun 27 10:45:13 GMT 2012  Olly Betts <olly@survex.com>
4615         * AUTHORS: Add GSoC students.
4617 Tue Jun 26 08:45:03 GMT 2012  Olly Betts <olly@survex.com>
4619         * include/xapian.h: Add check for Qt headers being included before us
4620           and defining 'slots' as a macro - if they are, give a clear error
4621           advising how to work around this.
4623 Thu Jun 14 23:48:15 GMT 2012  Olly Betts <olly@survex.com>
4625         * docs/admin_notes.rst: Correction - we don't "create a lock file", we
4626           "lock a file".
4628 Tue Jun 12 13:08:58 GMT 2012  Olly Betts <olly@survex.com>
4630         * tests/api_replicate.cc: Make sure XAPIAN_MAX_CHANGESETS gets unset
4631           after testcases which set it, so further testcases don't waste time
4632           generating changesets.
4634 Tue Jun 12 12:11:51 GMT 2012  Olly Betts <olly@survex.com>
4636         * docs/replication.rst: The value of XAPIAN_MAX_CHANGESETS does now
4637           actually determine how many changesets we keep.
4639 Tue Jun 12 01:20:59 GMT 2012  Olly Betts <olly@survex.com>
4641         * configure.ac: Force link_all_deplibs_CXX=no for Solaris.
4643 Tue Jun 12 01:08:17 GMT 2012  Olly Betts <olly@survex.com>
4645         * xapian-config.in: Don't interpret a missing .la file as meaning that
4646           we only have static libraries.
4648 Sun Jun 10 12:57:16 GMT 2012  Olly Betts <olly@survex.com>
4650         * backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
4651           backends/brass/brass_check.cc: Remove is_empty(), tweak
4652           calculate_last_block() to calculate the bit map size correctly in
4653           the case of an empty table, and use the bit map size instead of
4654           is_empty() in xapian-check.
4655         * backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h,
4656           backends/chert/chert_check.cc: Make equivalent changes for chert.
4658 Sun Jun 10 11:27:52 GMT 2012  Olly Betts <olly@survex.com>
4660         * backends/brass/brass_table.cc,backends/brass/brass_table.h: We don't
4661           need the workaround for existing tables which were built with a 32
4662           bit item count for brass, since that bug was fixed in 1.1.4, which
4663           is the same version which brass was added in.
4665 Sun Jun 10 11:20:58 GMT 2012  Olly Betts <olly@survex.com>
4667         * backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
4668           backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h:
4669           Remove unused copy constructors for BrassTable_base and
4670           ChertTable_base.
4672 Wed Jun 06 11:10:26 GMT 2012  Olly Betts <olly@survex.com>
4674         * include/xapian/queryparser.h: Note that STEM_ALL_Z was added in
4675           1.2.11.  Change already made on 1.2 branch.
4677 Tue Jun 05 06:51:12 GMT 2012  Olly Betts <olly@survex.com>
4679         * common/compression_stream.cc,common/compression_stream.h: Move the
4680           default argument to the CompressionStream constructor to the header
4681           and mark the constructor as explicit, since it has a single argument
4682           form.
4684 Tue Jun 05 06:41:22 GMT 2012  Olly Betts <olly@survex.com>
4686         * api/queryvector.h: Fix somewhat dubious warning from clang.
4688 Tue Jun 05 06:33:09 GMT 2012  Olly Betts <olly@survex.com>
4690         * configure.ac: Overhaul handling of compilers which pretend to be GCC,
4691           using a simple "case" on the preprocessed output of '__INTEL_COMPILER
4692           __clang__' to tell which is in use.  We now explicitly check for
4693           clang, and only pass it warning flags it actually understands.  GCC
4694           4.0 is now lumped in with 3.*, since we handle it exactly the same.
4695           Enable -Wdouble-promotion for GCC >= 4.6.  Check for symbol
4696           visibility support under any GCC-alike (which means we now run the
4697           test with Intel's compiler).  Move the check for -Bsymbolic-functions 
4698           to be run for all compilers.
4700 Mon Jun 04 06:21:02 GMT 2012  Olly Betts <olly@survex.com>
4702         * backends/dbfactory.cc: Test if we fail to open a stub database file
4703           in Xapian::Auto::open_stub() and throw an exception if so.
4704         * tests/api_backend.cc: Add regression test stubdb7.
4706 Sun Jun 03 11:43:44 GMT 2012  Olly Betts <olly@survex.com>
4708         * include/xapian/query.h: Add second fake specialised form of the
4709           templated iterator Query constructor, for use in the Java bindings.
4711 Sat Jun 02 12:15:11 GMT 2012  Olly Betts <olly@survex.com>
4713         * docs/scalability.rst: Update gmane size, fix a typo, tweak wording.
4715 Sat Jun 02 12:10:55 GMT 2012  Olly Betts <olly@survex.com>
4717         * Makefile.am,api/omdocument.cc,api/omenquire.cc,backends/brass/,
4718           backends/chert/,bin/xapian-delve.cc,common/getopt.cc,configure.ac,
4719           docs/,m4-macros/xapian-1.3.m4,matcher/multimatch.cc,preautoreconf,
4720           tests/Makefile.am,tests/api_db.cc,tests/harness/testsuite.h,
4721           tests/harness/testutils.h: Change `...' quoting in prose to '...'.
4723 Fri Jun 01 07:40:48 GMT 2012  Olly Betts <olly@survex.com>
4725         * HACKING,Makefile.am: If you run "make coverage-check" by hand, the
4726           default of compressed HTML is unhelpful, so don't default to passing
4727           --html-gzip to genhtml, but instead add support for GENHTML_ARGS.
4729 Thu May 31 11:41:19 GMT 2012  Olly Betts <olly@survex.com>
4731         * tests/api_weight.cc: Add test that init() is now called for the
4732           term-independent weight contribution.
4734 Thu May 31 11:23:05 GMT 2012  Olly Betts <olly@survex.com>
4736         * weight/bm25weight.cc: Avoid use of undefined values when k1 or b are
4737           zero.
4739 Wed May 30 21:50:54 GMT 2012  Olly Betts <olly@survex.com>
4741         * tests/api_matchspy.cc: Use a cached generated database for matchspy2
4742           and matchspy4.
4744 Wed May 30 13:22:54 GMT 2012  Olly Betts <olly@survex.com>
4746         * include/xapian/weight.h,weight/weight.cc: We were failing to call
4747           init() for Weight objects providing the term-independent weight.
4748           These now get called with init(0.0).
4750 Wed May 30 13:13:03 GMT 2012  Olly Betts <olly@survex.com>
4752         * include/xapian/weight.h: Remove duplicate "need_stat(WDF);" calls,
4753           accidentally added by merge of opsynonym branch in r12609.
4755 Wed May 30 07:44:23 GMT 2012  Olly Betts <olly@survex.com>
4757         * weight/bm25weight.cc: Fix use of uninitialised value found by new
4758           bm25weight4 testcase.
4760 Wed May 30 05:38:58 GMT 2012  Olly Betts <olly@survex.com>
4762         * tests/api_weight.cc: Add tests for BM25 parameter combinations where
4763           doclen shouldn't affect the weights.
4765 Wed May 30 05:11:34 GMT 2012  Olly Betts <olly@survex.com>
4767         * tests/Makefile.am: Move api_geospatial.cc into alphabetical order.
4769 Wed May 30 05:07:51 GMT 2012  Olly Betts <olly@survex.com>
4771         * weight/bm25weight.cc,weight/tradweight.cc: Throw SerialisationError
4772           not NetworkError if unserialise() fails.
4773         * tests/.gitignore,tests/Makefile.am,tests/api_weight.cc: Add test
4774           coverage for this.
4776 Wed May 30 05:01:33 GMT 2012  Olly Betts <olly@survex.com>
4778         * weight/tradweight.cc: BM25Weight -> TradWeight in exception message.
4780 Wed May 30 04:28:43 GMT 2012  Olly Betts <olly@survex.com>
4782         * tests/queryparsertest.cc: Fix feature test added for STEM_ALL_Z.
4784 Tue May 29 07:29:01 GMT 2012  Olly Betts <olly@survex.com>
4786         * tests/harness/testutils.cc,tests/harness/testutils.h: Remove unused
4787           test helper mset_range_is_same_percents() (thanks, lcov!)
4789 Tue May 29 04:10:07 GMT 2012  Olly Betts <olly@survex.com>
4791         * tests/generate-api_generated: Test that the string returned by a
4792           get_description() method isn't empty.
4794 Tue May 29 03:54:15 GMT 2012  Olly Betts <olly@survex.com>
4796         * generate-exceptions: Use function attributes in generated error.h.
4798 Tue May 29 02:10:23 GMT 2012  Olly Betts <olly@survex.com>
4800         * configure.ac,tests/runsrv.in: In the testsuite, only run remote
4801           servers under valgrind if x87 FP instructions are in use.
4803 Tue May 29 00:24:42 GMT 2012  Olly Betts <olly@survex.com>
4805         * include/xapian/: Use the new function attributes on various API
4806           methods.
4807         * tests/api_wrdb.cc: get_termfreq() is now marked as pure, so the
4808           testsuite needs to actually use the return value to check its
4809           exception behaviour.
4811 Mon May 28 22:31:21 GMT 2012  Olly Betts <olly@survex.com>
4813         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
4814           include/xapian/query.h: Pass vector<pair<Xapian::termpos>, string> >&
4815           argument to Query::Internal::gather_terms() as a void* to avoid
4816           having to include <vector> in query.h.
4818 Mon May 28 05:07:02 GMT 2012  Olly Betts <olly@survex.com>
4820         * include/xapian/attributes.h: Remove unused XAPIAN_NOTHROW_API_METHOD
4821           as we're handling that a different way instead.
4823 Mon May 28 00:41:55 GMT 2012  Olly Betts <olly@survex.com>
4825         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Hide new
4826           function attribute macros from doxygen.
4828 Sun May 27 14:04:34 GMT 2012  Olly Betts <olly@survex.com>
4830         * include/xapian/query.h: Use "Internal" instead of "Query::Internal"
4831           in constructor prototype argument list for consistency with other
4832           cosntructors, and so this constructor gets ignored by SWIG.
4834 Sun May 27 07:38:56 GMT 2012  Olly Betts <olly@survex.com>
4836         * exception_data.pm: Fix typo to fix warning and so that XAPIAN_NOTHROW
4837           on a method will work.
4839 Sun May 27 01:43:30 GMT 2012  Olly Betts <olly@survex.com>
4841         * exception_data.pm,include/Makefile.mk,include/xapian.h,
4842           include/xapian/attributes.h,include/xapian/unicode.h: Add
4843           XAPIAN_CONST_FUNCTION, XAPIAN_PURE_FUNCTION, and XAPIAN_NOTHROW
4844           macros for marking functions and methods with those attributes.
4845           (tickets #151, #454)
4847 Fri May 25 06:42:35 GMT 2012  Olly Betts <olly@survex.com>
4849         * include/xapian/weight.h: Fix documentation comment typo ("k1" ->
4850           "k").
4852 Fri May 25 05:44:05 GMT 2012  Olly Betts <olly@survex.com>
4854         * backends/flint_lock.h: Mark FlintLock::throw_databaselockerror() as
4855           XAPIAN_NORETURN.
4857 Thu May 24 12:28:35 GMT 2012  Olly Betts <olly@survex.com>
4859         * include/xapian/termgenerator.h,queryparser/termgenerator.cc,
4860           queryparser/termgenerator_internal.cc,
4861           queryparser/termgenerator_internal.h: Add
4862           TermGenerator::set_stemming_strategy() method, with strategies which
4863           correspond to those of QueryParser.  Based on patch from Sehaj Singh
4864           Kalra, with some tweaks for adding term positions in more cases.
4865           (Fixes ticket#563)
4866         * tests/termgentest.cc: Add test coverage for the new features.
4868 Thu May 24 01:37:31 GMT 2012  Olly Betts <olly@survex.com>
4870         * include/xapian/queryparser.h: Add doc comment for stem_strategy
4871           typedef.
4873 Wed May 23 11:33:08 GMT 2012  Olly Betts <olly@survex.com>
4875         * include/xapian/queryparser.h,queryparser/queryparser.lemony:
4876           Add new QueryParser::STEM_ALL_Z stemming strategy, which stems all
4877           terms and adds a Z prefix.  (Patch from Sehaj Singh Kalra, fixes
4878           ticket#562)
4879         * tests/queryparsertest.cc: Add test coverage for
4880           QueryParser::STEM_ALL_Z.
4882 Wed May 23 05:37:20 GMT 2012  Olly Betts <olly@survex.com>
4884         * api/valuesetmatchdecider.cc,include/xapian/valuesetmatchdecider.h:
4885           "Limited" to "Ltd" in (C) two statements, for consistency (and with
4886           Charlie's agreement on IRC).
4888 Wed May 23 02:25:53 GMT 2012  Olly Betts <olly@survex.com>
4890         * api/,include/xapian/query.h: Rework QueryBranch to use a special
4891           QueryVector class rather than std::vector<Xapian::Query>.  The
4892           special class is no bigger than std::vector<Xapian::Query>, and
4893           handles up to two entries by holding them within the object (at
4894           least GCC's std::vector doesn't currently do this space optimisation)
4895           which significantly reduces the memory used by a pairwise operator,
4896           which is very desirable as we no longer flatten a tree of the same
4897           pairwise operator as we build the query.
4899 Tue May 22 06:25:10 GMT 2012  Olly Betts <olly@survex.com>
4901         * api/queryinternal.cc: Handle the left side of AND_NOT and
4902           AND_MAYBE being MatchNothing in add_subquery() rather than
4903           in done().
4905 Tue May 22 02:40:45 GMT 2012  Olly Betts <olly@survex.com>
4907         * api/queryinternal.cc: Handle QueryAndLike with a MatchNothing
4908           subquery in add_subquery() rather than done().
4910 Tue May 22 02:01:00 GMT 2012  Olly Betts <olly@survex.com>
4912         * api/queryinternal.cc,api/queryinternal.h: Drop MatchNothing
4913           subqueries in OR-like situations in add_subquery() rather than
4914           adding them and then handling it later.
4916 Sat May 19 00:27:23 GMT 2012  Olly Betts <olly@survex.com>
4918         * tests/runsrv.in: Add explanation of why we have this script.
4920 Sat May 19 00:27:10 GMT 2012  Olly Betts <olly@survex.com>
4922         * tests/runtest.in: Fix comment typo.
4924 Fri May 18 12:50:08 GMT 2012  Olly Betts <olly@survex.com>
4926         * backends/inmemory/inmemory_database.cc: Check if the database is
4927           closed when asked to iterate metadata keys.  Fixes recently added
4928           testcase closedb10 for inmemory.
4930 Fri May 18 12:34:24 GMT 2012  Olly Betts <olly@survex.com>
4932         * tests/Makefile.am: Pass -ldl last when compiling zlib-vg.so, as that
4933           seems to be needed on Ubuntu 12.04.
4935 Fri May 18 04:54:09 GMT 2012  Olly Betts <olly@survex.com>
4937         * tests/api_closedb.cc: We now test almost all methods of Database
4938           and WritableDatabase after calling close().  (ticket#337)
4940 Thu May 17 14:26:11 GMT 2012  Olly Betts <olly@survex.com>
4942         * backends/brass/,backends/chert/: After closing the database, methods
4943           which try to use the termlist would throw FeatureUnavailableError
4944           with message "Database has no termlist", assuming that the termlist
4945           table not being open meant it wasn't present.  Fix to check if the
4946           postlist_table is open to determine which case we're in.
4947         * tests/api_closedb.cc: Improve test coverage for closed databases.
4948           (ticket#337)
4950 Tue May 15 11:24:34 GMT 2012  Olly Betts <olly@survex.com>
4952         * NEWS: Update from ChangeLog and 1.2.10.
4954 Tue May 15 11:12:42 GMT 2012  Olly Betts <olly@survex.com>
4956         * backends/chert/chert_cursor.cc: Fix incorrect use of "delete" to
4957           "delete []".  The type is POD, so I suspect this mistake didn't
4958           actually cause any problems, and it only happens when a cursor
4959           gets rebuilt because the B-tree has gained a level, so it's
4960           a rather rare occurrence.
4962 Tue May 15 11:09:44 GMT 2012  Olly Betts <olly@survex.com>
4964         * backends/brass/brass_cursor.cc: Fix incorrect use of "delete" to
4965           "delete []".  The type is POD, so I suspect this mistake didn't
4966           actually cause any problems, and it only happens when a cursor
4967           gets rebuilt because the B-tree has gained a level, so it's
4968           a rather rare occurrence.
4970 Thu May 10 02:16:21 GMT 2012  Olly Betts <olly@survex.com>
4972         * HACKING: Update Debian/Ubuntu packaging instructions.
4974 Thu May 10 02:14:48 GMT 2012  Olly Betts <olly@survex.com>
4976         * HACKING: freshmeat -> freecode.
4978 Wed May 09 02:54:40 GMT 2012  Olly Betts <olly@survex.com>
4980         * tests/api_wrdb.cc: Add "safeunistd.h", required for GCC 4.7.
4982 Wed May 09 00:09:17 GMT 2012  Olly Betts <olly@survex.com>
4984         * api/query.cc: Construct MatchAll using constructor rather than
4985           assignment syntax.
4987 Wed May 09 00:08:29 GMT 2012  Olly Betts <olly@survex.com>
4989         * backends/brass/brass_cursor.h: Whitespace tweaks.
4991 Tue May 08 23:51:01 GMT 2012  Olly Betts <olly@survex.com>
4993         * docs/admin_notes.rst: Document xapian-check for fixing corrupted
4994           databases.
4996 Tue May 08 11:30:06 GMT 2012  Olly Betts <olly@survex.com>
4998         * common/fileutils.cc: Add safeunistd.h for mkdir, required by GCC
4999           4.7 (reported by Gaurav Arora).
5001 Wed May 02 03:44:25 GMT 2012  Olly Betts <olly@survex.com>
5003         * weight/weightinternal.cc: Using AssertEq() on NULL doesn't compile,
5004           at least with recent GCC.
5006 Wed May 02 02:58:37 GMT 2012  Olly Betts <olly@survex.com>
5008         * common/omassert.cc: Fix warning with GCC in build with assertions
5009           enabled.
5011 Wed May 02 02:55:54 GMT 2012  Olly Betts <olly@survex.com>
5013         * HACKING: We're now using automake 1.12 to generate snapshots and
5014           releases.
5016 Mon Apr 23 13:16:36 GMT 2012  Olly Betts <olly@survex.com>
5018         * tests/api_anydb.cc: Fix tradweight1 to test that TradWeight(0)
5019           means that wdf and doc length don't affect the weight of a term.
5021 Mon Apr 23 03:44:02 GMT 2012  Olly Betts <olly@survex.com>
5023         * backends/chert/,backends/dbcheck.cc,bin/xapian-check.cc,
5024           include/xapian/database.h: Add "fix" option to xapian-check, which
5025           currently will regenerate iamchert if it isn't valid, and will
5026           regenerate base files from the .DB files (only really tested on
5027           databases which have just been compacted).
5029 Mon Apr 23 03:40:35 GMT 2012  Olly Betts <olly@survex.com>
5031         * common/filetests.h: Add new function file_size() to get the size
5032           of a file from a path or file descriptor.
5033         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
5034           net/remoteconnection.cc,tests/api_replicate.cc: Use this new
5035           function.
5037 Wed Apr 18 01:35:21 GMT 2012  Olly Betts <olly@survex.com>
5039         * weight/bm25weight.cc,weight/tradweight.cc: Fix comment typo.
5041 Wed Apr 11 08:26:42 GMT 2012  Olly Betts <olly@survex.com>
5043         * HACKING: Update section on patches to mention git (git diff and git
5044           format-patch), and using "-r" with normal diff, and also that
5045           ptardiff offers a nice way to diff against an unpacked tarball.
5047 Wed Apr 04 02:22:04 GMT 2012  Olly Betts <olly@survex.com>
5049         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
5050           If the output database is empty, don't write a metainfo tag out.
5051           Take care not to divide by zero when computing the percentage
5052           size change for a table.
5053         * tests/api_compact.cc: Add new testcase compactempty1 to provide
5054           regression tests.
5056 Wed Apr 04 01:48:34 GMT 2012  Olly Betts <olly@survex.com>
5058         * backends/dbcheck.cc: If the database couldn't be opened, don't try
5059           to reserve space for cross-checking doclens, as that just results in
5060           us reporting a confusing warning about there being too many documents
5061           to cross-check doclens.
5063 Fri Mar 30 22:23:53 GMT 2012  Olly Betts <olly@survex.com>
5065         * backends/document.h: "An string" -> "A string" in internal doc
5066           comment.
5068 Fri Mar 30 22:20:11 GMT 2012  Olly Betts <olly@survex.com>
5070         * include/xapian/weight.h: Fix switched lower and upper in doc comments
5071           for Weight methods get_doclength_lower_bound() and
5072           get_doclength_upper_bound().  Correct maximum to minimum in
5073           get_doclength_lower_bound() comment and note that this excludes zero
5074           length documents.  Fix "An lower" to "A lower".
5076 Wed Mar 28 09:54:33 GMT 2012  Olly Betts <olly@survex.com>
5078         * NEWS: Fix typos in another old entry.
5080 Wed Mar 28 09:53:00 GMT 2012  Olly Betts <olly@survex.com>
5082         * NEWS: DatabaseCoruptError -> DatabaseCorruptError in old entries.
5084 Wed Mar 28 08:05:13 GMT 2012  Olly Betts <olly@survex.com>
5086         * tests/termgentest.cc: Add test coverage for discarding of terms > 64
5087           bytes by TermGenerator.
5089 Tue Mar 27 21:07:07 GMT 2012  Olly Betts <olly@survex.com>
5091         * include/xapian/database.h: Note when Database::close() was added.
5093 Tue Mar 27 13:03:22 GMT 2012  Olly Betts <olly@survex.com>
5095         * api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h,
5096           include/xapian/errorhandler.h: Deprecate Xapian::ErrorHandler.
5097           (ticket#3)
5099 Tue Mar 27 13:01:53 GMT 2012  Olly Betts <olly@survex.com>
5101         * HACKING,docs/deprecation.rst,docs/doxygen_api.conf.in,
5102           docs/doxygen_source.conf.in: Updates for addition of
5103           XAPIAN_DEPRECATED_EX() and XAPIAN_DEPRECATED_CLASS_EX.
5105 Tue Mar 27 10:11:23 GMT 2012  Olly Betts <olly@survex.com>
5107         * HACKING,include/xapian.h,include/xapian/deprecated.h: Add
5108           XAPIAN_DEPRECATED_EX() and XAPIAN_DEPRECATED_CLASS_EX macros which
5109           mark a feature as deprecated externally but not when building the
5110           library.
5112 Tue Mar 27 08:46:29 GMT 2012  Olly Betts <olly@survex.com>
5114         * api/compactor.cc: Include the xapian sub-headers we actually use
5115           rather than xapian.h, to avoid needless rebuilds.
5117 Tue Mar 27 08:33:28 GMT 2012  Olly Betts <olly@survex.com>
5119         * HACKING: Add example of deprecating a pure virtual method.
5121 Tue Mar 27 08:30:17 GMT 2012  Olly Betts <olly@survex.com>
5123         * NEWS: Update from ChangeLog.
5125 Sat Mar 24 12:33:44 GMT 2012  Olly Betts <olly@survex.com>
5127         * backends/brass/brass_databasereplicator.cc: Fix signed vs unsigned
5128           comparison warning with GCC 4.4.3.
5130 Sat Mar 24 12:26:13 GMT 2012  Olly Betts <olly@survex.com>
5132         * include/xapian/queryparser.h,queryparser/queryparser_internal.h:
5133           Change the default stemming strategy to STEM_SOME, to eliminate
5134           the API gotcha that setting a stemmer is ignored until you also
5135           set a strategy.
5136         * tests/queryparsertest.cc: Add testcase qp_defaultstrategysome1 to
5137           check that the default is STEM_SOME.
5139 Fri Mar 23 04:29:32 GMT 2012  Olly Betts <olly@survex.com>
5141         * tests/perftest/perftest.cc: Fix comment cut-and-paste error.
5143 Fri Mar 23 04:28:24 GMT 2012  Olly Betts <olly@survex.com>
5145         * Makefile.am: Use git commit hash in the title of a coverage report
5146           generated from a git tree.
5148 Thu Mar 22 04:29:38 GMT 2012  Olly Betts <olly@survex.com>
5150         * xapian-core.spec.in: Remove xapian-chert-update.
5152 Mon Mar 19 05:42:50 GMT 2012  Olly Betts <olly@survex.com>
5154         * matcher/multiandpostlist.cc: Don't count unweighted subqueries of
5155           MultiAndPostList for percentage calculations, as OP_FILTER maps to
5156           MultiAndPostList now.  (ticket#590)
5157         * tests/api_percentages.cc: Regression test topercent6.
5159 Sun Mar 18 23:24:04 GMT 2012  Dan Colish <dcolish@>
5161         * backends/brass/brass_databasereplicator.cc: size out buffer to the
5162           incoming blocksize
5164 Sun Mar 18 17:02:14 GMT 2012  Dan Colish <dcolish@>
5166         * .gitignore: ignore /.deps as well
5168 Sun Mar 18 16:46:45 GMT 2012  Dan Colish <dcolish@>
5170         * .gitignore:Update gitignore for bump to libxapian-1.3
5172 Sun Mar 18 04:37:37 GMT 2012  Olly Betts <olly@survex.com>
5174         * configure.ac: Set LIBRARY_VERSION_SUFFIX to -1.3.
5176 Sun Mar 18 00:48:05 GMT 2012  Dan Colish <dcolish@gmail.com>
5178         * backends/brass/,common/Makefile.mk, common/compression_stream.h,
5179           common/compression_stream.cc: Compress changesets in brass
5180           replication. Increments the changeset version. Ticket #348
5182 Sun Mar 18 00:39:23 GMT 2012  Dan Colish <dcolish@gmail.com>
5184         * tests/.gitignore,tests/soaktest/.gitignore: Add additional ignores
5185           for test artifacts
5187 Fri Mar 16 05:23:54 GMT 2012  Olly Betts <olly@survex.com>
5189         * common/Makefile.mk: Missing part of previous change.
5191 Fri Mar 16 04:59:53 GMT 2012  Olly Betts <olly@survex.com>
5193         * Makefile.am,m4-macros/xapian.m4: Rename libxapian to libxapian-1.3
5194           and xapian.m4 to xapian-1.3.m4.
5196 Wed Mar 14 04:58:55 GMT 2012  Olly Betts <olly@survex.com>
5198         * NEWS,tests/api_unicode.cc,unicode/tclUniData.cc: Update
5199           Unicode character database to 6.1.0.
5201 Wed Mar 14 02:23:27 GMT 2012  Olly Betts <olly@survex.com>
5203         * NEWS: Update for 1.3.0.
5205 Tue Mar 13 07:44:32 GMT 2012  Olly Betts <olly@survex.com>
5207         * NEWS: Update from 1.2.9 and ChangeLog.
5209 Tue Mar 13 00:28:58 GMT 2012  Olly Betts <olly@survex.com>
5211         * docs/geospatial.rst: Fix typo - it's LatLongCoords::append() not
5212           LatLongCoords::insert().
5214 Mon Mar 12 23:14:20 GMT 2012  Olly Betts <olly@survex.com>
5216         * docs/admin_notes.rst: Fix typo - need "1.2.x" not "1.0.x" to get
5217           both flint and chert support.
5219 Mon Mar 12 11:54:19 GMT 2012  Olly Betts <olly@survex.com>
5221         * docs/Makefile.am: doxygen no longer generates any GIF files, so
5222           stop trying to ship or install them.
5224 Thu Mar 08 10:21:51 GMT 2012  Olly Betts <olly@survex.com>
5226         * docs/index.rst: Add link to new "getting started" guide.
5228 Mon Mar 05 06:05:28 GMT 2012  Olly Betts <olly@survex.com>
5230         * tests/queryparsertest.cc: Fix curly double quote testcase.
5232 Mon Mar 05 00:36:33 GMT 2012  Olly Betts <olly@survex.com>
5234         * matcher/: Fix issue with AND, OR, and XOR queries against a database
5235           with no documents in it - this was causing a divide by zero, which led
5236           to MSet::get_matches_estimated() reporting 2147483648 on i386.
5237         * tests/api_backend.cc: Add regression test emptydb1.
5239 Sun Mar 04 23:05:17 GMT 2012  Olly Betts <olly@survex.com>
5241         * matcher/multimatch.cc: Fix comment typo.
5243 Fri Mar 02 04:00:19 GMT 2012  Olly Betts <olly@survex.com>
5245         * tests/harness/testsuite.cc: Address new warnings from GCC 4.6.
5247 Wed Feb 29 22:36:26 GMT 2012  Olly Betts <olly@survex.com>
5249         * include/xapian/database.h: Improve documentation of Database::close()
5250           and ~WritableDatabase().
5252 Thu Jan 26 03:49:24 GMT 2012  Olly Betts <olly@survex.com>
5254         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow
5255           Unicode curly double quote characters to start and/or end phrases.
5257 Sun Jan 22 13:28:30 GMT 2012  Olly Betts <olly@survex.com>
5259         * bin/xapian-delve.cc: Send errors to stderr not stdout.
5261 Sun Jan 22 13:16:21 GMT 2012  Olly Betts <olly@survex.com>
5263         * HACKING: Update details of versions of doxygen, automake and libtool
5264           used to bootstrap snapshots and releases.
5266 Fri Jan 20 21:35:38 GMT 2012  Olly Betts <olly@survex.com>
5268         * tests/Makefile.am: unittest needs getopt for non-glibc platforms.
5270 Fri Jan 20 21:33:59 GMT 2012  Olly Betts <olly@survex.com>
5272         * include/xapian/query.h: GCC 4.2.1 on Mac OS X seems to need a copy
5273           ctor for InvertedQuery_ - unclear why, but it's easy to add one.
5275 Wed Jan 18 13:13:07 GMT 2012  Olly Betts <olly@survex.com>
5277         * include/xapian/matchspy.h,include/xapian/postingsource.h,
5278           include/xapian/weight.h: Document that you can define a static
5279           operator delete method in your subclass if deallocation needs to be
5280           handled specially.  (Closes ticket#554)
5282 Wed Jan 18 12:27:20 GMT 2012  Olly Betts <olly@survex.com>
5284         * include/xapian/geospatial.h: Mark as experimental for now.
5286 Wed Jan 18 12:22:39 GMT 2012  Olly Betts <olly@survex.com>
5288         * docs/geospatial.rst: Say "haversine" rather than "Haversine"
5289           consistently.
5291 Wed Jan 18 12:01:28 GMT 2012  Olly Betts <olly@survex.com>
5293         * include/xapian/geospatial.h: Change empty() to return bool not
5294           size_t.
5296 Wed Jan 18 10:44:16 GMT 2012  Olly Betts <olly@survex.com>
5298         * docs/geospatial.rst: Fix minor typos in geospatial docs.
5300 Wed Jan 18 10:39:53 GMT 2012  Olly Betts <olly@survex.com>
5302         * Makefile.am,api/postingsource.cc,api/queryinternal.cc,
5303           api/registry.cc,common/output.h,common/registryinternal.h,
5304           docs/geospatial.rst,geospatial/,include/Makefile.mk,include/xapian.h,
5305           include/xapian/geospatial.h,include/xapian/postingsource.h,
5306           include/xapian/registry.h,tests/.gitignore,tests/Makefile.am,
5307           tests/api_geospatial.cc: Merge geotomerge2 branch from github.
5308           Closes ticket#481.
5310 Tue Jan 17 22:29:10 GMT 2012  Olly Betts <olly@survex.com>
5312         * api/errorhandler.cc: Reorder header includes.
5314 Mon Jan 16 22:59:02 GMT 2012  Olly Betts <olly@survex.com>
5316         * include/xapian/queryparser.h,queryparser/queryparser.lemony: Fix
5317           FLAG_AUTO_SYNONYMS not to enable auto multi-word synonyms too.
5318         * tests/queryparsertest.cc: Extend testcase qp_synonym1 to include a
5319           regression test for this bug.
5321 Sun Jan 15 12:41:35 GMT 2012  Olly Betts <olly@survex.com>
5323         * .gitignore,backends/Makefile.mk,backends/brass/,backends/chert/,
5324           backends/dbcheck.cc,bin/,common/bitstream.h,
5325           include/xapian/database.h: Add a (currently experimental) API for
5326           checking the integrity of databases (partly addresses ticket#238).
5327           This means we can remove XAPIAN_VISIBILITY_DEFAULT from a number of
5328           functions which aren't in the public API (partly addresses
5329           ticket#63).
5331 Fri Jan 13 12:07:39 GMT 2012  Olly Betts <olly@survex.com>
5333         * tests/stemtest.cc: Include <xapian.h> rather than <xapian/stem.h> -
5334           we're trying to test the public API, so including the public API
5335           header is better.
5337 Thu Jan 12 13:15:27 GMT 2012  Olly Betts <olly@survex.com>
5339         * tests/unittest.cc: Add new testcases simple_exceptions_work1 and
5340           class_exceptions_work1 which perform sanity tests of exception
5341           handling.
5342         * tests/internaltest.cc: Remove testcase test_except1 which is now
5343           redundant.
5345 Thu Jan 12 13:09:25 GMT 2012  Olly Betts <olly@survex.com>
5347         * common/str.cc: Special cases for 0 in tostring() templates aren't
5348           actually needed, but special casing single digit numbers may be
5349           worthwhile anyway, so change comments to FIXME ones about checking
5350           this.
5351         * tests/internaltest.cc: Test str() on unsigned 0, and some negative,
5352           signed positive, and unsigned positive single digits values.
5354 Wed Jan 11 13:03:54 GMT 2012  Olly Betts <olly@survex.com>
5356         * backends/multi/multi_alltermslist.h: Fix filename in @file.
5358 Wed Jan 11 12:53:44 GMT 2012  Olly Betts <olly@survex.com>
5360         * api/documentterm.h,api/maptermlist.h,api/omenquireinternal.h,
5361           backends/brass/,backends/chert/,backends/database.h,
5362           backends/document.h,backends/inmemory/inmemory_alltermslist.h,
5363           backends/inmemory/inmemory_database.h,
5364           backends/inmemory/inmemory_positionlist.h,
5365           backends/multi/multi_postlist.h,backends/multi/multi_termlist.h,
5366           backends/positionlist.h,backends/remote/net_termlist.h,
5367           backends/valuestats.h,common/,include/xapian/query.h,matcher/,
5368           queryparser/queryparser_internal.h,tests/harness/,
5369           tests/perftest/freemem.h,tests/perftest/runprocess.h: Convert
5370           comments at the start of files to @file and @brief doxygen comments.
5372 Wed Jan 11 11:36:55 GMT 2012  Olly Betts <olly@survex.com>
5374         * matcher/phrasepostlist.h: Remove lone "----START-LICENCE----" -
5375           the rest got removed ages ago.
5377 Wed Jan 11 11:23:04 GMT 2012  Olly Betts <olly@survex.com>
5379         * common/replicate_utils.h: Fix "@raises" to "@exception".
5381 Wed Jan 11 11:21:31 GMT 2012  Olly Betts <olly@survex.com>
5383         * matcher/multiandpostlist.h: Fix "@parameter" to "@param".
5385 Wed Jan 11 11:20:11 GMT 2012  Olly Betts <olly@survex.com>
5387         * common/debuglog.h: Fix "@msg" to "@a msg" in doxygen comment.
5389 Wed Jan 11 11:18:50 GMT 2012  Olly Betts <olly@survex.com>
5391         * matcher/multiandpostlist.h: Correct @exceptions to @exception.
5393 Wed Jan 11 10:48:05 GMT 2012  Olly Betts <olly@survex.com>
5395         * HACKING: We no longer have any uses of \ to introduce doxygen
5396           directives, so update HACKING to reflect that.
5398 Wed Jan 11 10:46:01 GMT 2012  Olly Betts <olly@survex.com>
5400         * api/omdatabase.cc: Change \todo to @todo.
5402 Wed Jan 11 10:09:29 GMT 2012  Olly Betts <olly@survex.com>
5404         * api/replication.h,api/valuesetmatchdecider.cc,
5405           common/output-internal.h,common/output.h,include/xapian/,
5406           tests/harness/testrunner.cc,tests/harness/testrunner.h,
5407           tests/perftest/perftest.cc,tests/perftest/perftest.h: Change the
5408           instances of \file and \brief in doxygen comments to @file and
5409           @brief.
5411 Wed Jan 11 10:08:19 GMT 2012  Olly Betts <olly@survex.com>
5413         * tests/internaltest.cc: Remove serialisedoc1 from the list of
5414           testcases to run too.
5416 Wed Jan 11 09:50:22 GMT 2012  Olly Betts <olly@survex.com>
5418         * matcher/multixorpostlist.h: Remove "using namespace std;" which we
5419           don't need here.
5421 Wed Jan 11 09:38:27 GMT 2012  Olly Betts <olly@survex.com>
5423         * common/filetests.h: Remove "using namespace std;" which we don't
5424           need here.
5426 Wed Jan 11 09:36:27 GMT 2012  Olly Betts <olly@survex.com>
5428         * common/filetests.h: Add documentation comments.
5430 Wed Jan 11 09:28:26 GMT 2012  Olly Betts <olly@survex.com>
5432         * tests/api_serialise.cc: Extend serialise_document1 to test
5433           serialising and unserialising an empty document, which is an
5434           interesting edge case.
5435         * tests/internaltest.cc: Remove testcase serialisedoc1, which
5436           now doesn't add useful additional coverage over serialise_document1.
5438 Wed Jan 11 08:29:04 GMT 2012  Olly Betts <olly@survex.com>
5440         * tests/internaltest.cc: Test document serialisation via the public
5441           API (which was added after the tests were).
5442         * net/serialise.h: Remove XAPIAN_VISIBILITY_DEFAULT from
5443           serialise_document() and unserialise_document().
5445 Wed Jan 11 05:57:14 GMT 2012  Olly Betts <olly@survex.com>
5447         * api/replication.cc,common/,tests/unittest.cc: Move removedir() from
5448           utils.{cc,h} to fileutils.{cc,h}, and remove the now empty
5449           utils.{cc,h}.
5451 Wed Jan 11 05:44:38 GMT 2012  Olly Betts <olly@survex.com>
5453         * tests/harness/unixcmds.cc: Check return values from system() calls
5454           and throw a std::string exception if non-zero.
5456 Wed Jan 11 05:20:30 GMT 2012  Olly Betts <olly@survex.com>
5458         * common/Makefile.mk,common/omassert.cc,common/omassert.h,
5459           common/utils.cc: Change the sense of the bool returned by
5460           within_DBL_EPSILON() to match what the name suggests instead of being
5461           the opposite, and change the use of it too.  Move
5462           within_DBL_EPSILON() implementation from utils.cc to new file
5463           omassert.cc, only compile it when assertions are on, and prototype it
5464           in omassert.h rather than utils.h.
5466 Wed Jan 11 05:09:39 GMT 2012  Olly Betts <olly@survex.com>
5468         * api/compactor.cc,api/replication.cc,backends/brass/,backends/chert/,
5469           backends/dbfactory.cc,common/utils.cc,common/utils.h,
5470           tests/api_backend.cc,tests/api_wrdb.cc,
5471           tests/harness/backendmanager.cc,tests/harness/unixcmds.cc: Remove
5472           std::string wrappers for C library functions from utils.h and just
5473           explicitly call c_str() when we need to.  These wrappers are
5474           problematic as they suppress warnings from _FORTIFY_SOURCE about
5475           ignored return values, and I can't see an easy way to avoid that.
5477 Wed Jan 11 03:35:35 GMT 2012  Olly Betts <olly@survex.com>
5479         * api/replication.cc,backends/brass/brass_databasereplicator.cc,
5480           backends/brass/brass_table.cc,
5481           backends/chert/chert_databasereplicator.cc,
5482           backends/chert/chert_table.cc,backends/databasereplicator.cc,
5483           backends/dbfactory.cc,common/utils.cc,common/utils.h: Use
5484           file_exists() and dir_exists() from common/filetests.h everywhere and
5485           remove the old versions in common/utils.h and common/utils.cc.
5487 Wed Jan 11 02:20:45 GMT 2012  Olly Betts <olly@survex.com>
5489         * common/utils.h: Remove XAPIAN_VISIBILITY_DEFAULT from old
5490           file_exists() and dir_exists().
5492 Wed Jan 11 02:19:58 GMT 2012  Olly Betts <olly@survex.com>
5494         * tests/api_compact.cc: Convert to use filetests.h.
5496 Wed Jan 11 02:14:07 GMT 2012  Olly Betts <olly@survex.com>
5498         * bin/xapian-check.cc,bin/xapian-inspect.cc: Convert to use
5499           filetests.h.
5501 Wed Jan 11 02:13:02 GMT 2012  Olly Betts <olly@survex.com>
5503         * common/filetests.h: Rename directory_exists() to dir_exists().
5505 Wed Jan 11 02:10:06 GMT 2012  Olly Betts <olly@survex.com>
5507         * common/Makefile.mk,common/filetests.h,tests/api_replicate.cc,
5508           tests/harness/backendmanager_multi.cc,tests/harness/testsuite.cc:
5509           Add new inline versions of file_exists() and directory_exists() and
5510           use these from the testsuite, as a step towards making these internal
5511           to the library.
5513 Tue Jan 10 23:37:36 GMT 2012  Olly Betts <olly@survex.com>
5515         * tests/api_serialise.cc: Change the rather odd "operator delete(p);"
5516           to the more natural "delete p;".
5518 Tue Jan 10 22:45:01 GMT 2012  Olly Betts <olly@survex.com>
5520         * tests/unittest.cc: Fix message typo in recent unittest change.
5522 Tue Jan 10 13:48:38 GMT 2012  Olly Betts <olly@survex.com>
5524         * common/safesysstat.h: The S_ISDIR and S_ISREG macros for MSVC are
5525           unlikely to work on other platforms (_S_IFMT vs S_IFMT, etc) so
5526           split them.  Tweak a few comments.
5528 Tue Jan 10 13:10:25 GMT 2012  Olly Betts <olly@survex.com>
5530         * net/: Split encode_length() and decode_length() out of
5531           serialise.{cc,h} into new file length.{cc,h}, and remove
5532           XAPIAN_VISIBILITY_DEFAULT from decode_length().
5533         * api/,backends/brass/brass_database.cc,
5534           backends/chert/chert_database.cc,backends/remote/net_postlist.cc,
5535           backends/remote/remote-database.cc,net/: Update headers which need
5536           to be included.
5537         * tests/internaltest.cc,tests/unittest.cc: Move serialiselength1 and
5538           serialiselength2 from internaltest to unittest.
5540 Mon Jan 09 02:16:22 GMT 2012  Olly Betts <olly@survex.com>
5542         * tests/api_compact.cc: Actually add test coverage for
5543           ByteLengthPrefixedStringItor - the previous attempt didn't cause
5544           merging of synonym lists to happen.
5546 Mon Jan 09 00:21:25 GMT 2012  Olly Betts <olly@survex.com>
5548         * tests/api_replicate.cc: Fix comment typo.
5550 Sun Jan 08 14:47:19 GMT 2012  Olly Betts <olly@survex.com>
5552         * tests/api_compact.cc: Add test coverage for
5553           ByteLengthPrefixedStringItor.
5555 Sun Jan 08 14:05:19 GMT 2012  Olly Betts <olly@survex.com>
5557         * common/fd.h,tests/api_db.cc,tests/harness/backendmanager.cc: Add
5558           missing explicit header includes, uncovered by compiling with
5559           STLport.
5561 Sat Jan 07 11:45:00 GMT 2012  Olly Betts <olly@survex.com>
5563         * INSTALL,configure.ac,m4/rjb_find_stlport.m4,xapian-config.in: Remove
5564           configure's --with-stlport and --with-stlport-compiler options, as
5565           they don't allow you to actually specify what you need (at least to
5566           use the Debian STLport package), and instead document what to pass
5567           to configure to enable building with STLport (though it seems to no
5568           longer be actively maintained, and the debug mode (which is probably
5569           the most interesting feature now) doesn't seem to work on Debian
5570           stable).
5572 Sat Jan 07 10:24:25 GMT 2012  Olly Betts <olly@survex.com>
5574         * HACKING: Update STLPort URL to point to the more active fork on
5575           SourceForge.
5577 Fri Jan 06 20:07:06 GMT 2012  Olly Betts <olly@survex.com>
5579         * tests/api_sorting.cc: Add check that NeverUseMeKeyMaker::operator()
5580           would actually cause a test failure if called.
5582 Fri Jan 06 20:01:27 GMT 2012  Olly Betts <olly@survex.com>
5584         * tests/api_stem.cc: Test get_description() on a user-implemented
5585           stemmer.
5587 Fri Jan 06 14:34:16 GMT 2012  Olly Betts <olly@survex.com>
5589         * tests/Makefile.am,tests/harness/,tests/queryparsertest.cc,
5590           tests/termgentest.cc,tests/unittest.cc: Make unittest use the test
5591           harness, so it gets all the valgrind and fd leak checks, and other
5592           handy features all the other tests have.  Currently this is done in
5593           a bit of a hacky way, but it's a starting point for abstracting out
5594           the Xapian-specific parts of the test harness.
5596 Fri Jan 06 08:42:26 GMT 2012  Olly Betts <olly@survex.com>
5598         * Makefile.am: Delete generated lcov directory before running genhtml.
5599           Pass --demangle-cpp and --html-gzip to genhtml.
5601 Fri Jan 06 08:14:05 GMT 2012  Olly Betts <olly@survex.com>
5603         * Makefile.am: Trim `pwd` off all paths in coverage report.
5605 Fri Jan 06 02:29:04 GMT 2012  Olly Betts <olly@survex.com>
5607         * common/pretty.h: Add support for AndContext and OrContext.
5609 Fri Jan 06 02:28:07 GMT 2012  Olly Betts <olly@survex.com>
5611         * common/pretty.h: Use XAPIAN_PRETTY_AS_CLASSNAME for classes in
5612           namespace Xapian::Internal too.
5614 Thu Jan 05 12:23:10 GMT 2012  Olly Betts <olly@survex.com>
5616         * tests/internaltest.cc,tests/unittest.cc: Move tests of
5617           serialise_double() and unserialise_double() from internaltest to
5618           unittest.
5619         * common/serialise-double.h: This means serialise_double() and
5620           unserialise_double() no longer need external visibility, so make
5621           them internal only.
5623 Thu Jan 05 12:08:15 GMT 2012  Olly Betts <olly@survex.com>
5625         * common/bitstream.h: BitWriter doesn't need public visibility.
5627 Thu Jan 05 10:53:23 GMT 2012  Olly Betts <olly@survex.com>
5629         * common/output-internal.h,common/pretty.h: Fix include paths for two
5630           cases which are only used in a logging build.
5632 Fri Dec 30 09:17:50 GMT 2011  Olly Betts <olly@survex.com>
5634         * tests/queryparsertest.cc: Update expected results (mostly because we
5635           no longer flatten groups of the same operator at Query construction
5636           time).
5638 Thu Dec 29 13:47:04 GMT 2011  Olly Betts <olly@survex.com>
5640         * api/Makefile.mk: Add missing backslash so various headers actually
5641           get shipped.
5643 Thu Dec 29 11:29:04 GMT 2011  Olly Betts <olly@survex.com>
5645         * include/xapian/query.h: Add fake templated ctor for SWIG.
5647 Thu Dec 29 00:23:25 GMT 2011  Olly Betts <olly@survex.com>
5649         * tests/api_scalability.cc: Add regression test querypairwise1 for
5650           ticket#273.
5652 Thu Dec 29 00:03:17 GMT 2011  Olly Betts <olly@survex.com>
5654         * api/,backends/remote/remote-database.cc,
5655           backends/remote/remote-database.h,docs/deprecation.rst,
5656           include/xapian/query.h,matcher/,net/remoteserver.cc,
5657           queryparser/queryparser.lemony,tests/,weight/weightinternal.h: Merge
5658           query-internal-reimplementation git branch which reimplements
5659           Query::Internal. (ticket#280).  These are the most notable changes:
5660           + Query objects are smaller and should be faster.
5661           + More readable format for Query::get_description().
5662           + More compact serialisation format for Query objects.
5663           + Query operators are no longer flattened as you build up a tree (but
5664             the query optimiser still combines groups of the same operator).
5665             This means that Query objects are truly immutable, and so we don't
5666             need to copy Query objects when composing them.  This should also
5667             fix a few O(n*n) cases when building up an n-way query pair-wise.
5668             (ticket#273)
5669           + The Query optimiser can do a few extra optimisations.
5671 Mon Dec 26 12:13:36 GMT 2011  Olly Betts <olly@survex.com>
5673         * include/xapian/queryparser.h,queryparser/queryparser.cc: Change
5674           QueryParser::set_default_op() to reject operators which don't make
5675           sense to set, and explicitly document all the operators which are
5676           allowed.
5677         * tests/queryparsertest.cc: Check that bad operators are rejected in
5678           existing testcase qp_default_op2.  Add new testcase qp_default_op3 to
5679           check that good operators can be set and work in a simple testcase.
5681 Mon Dec 26 09:12:09 GMT 2011  Olly Betts <olly@survex.com>
5683         * tests/harness/backendmanager_brass.h,
5684           tests/harness/backendmanager_chert.h: Remove superfluous "private:"
5685           access specifiers.
5687 Sat Dec 24 12:34:19 GMT 2011  Olly Betts <olly@survex.com>
5689         * HACKING: Recommend installing valgrind, ccache, and eatmydata.
5691 Sat Dec 24 12:28:44 GMT 2011  Olly Betts <olly@survex.com>
5693         * HACKING: Make it clear "Building from SVN" applies to git too, and
5694           mention that git-svn is needed when building from git.
5696 Thu Dec 22 11:18:17 GMT 2011  Olly Betts <olly@survex.com>
5698         * languages/compiler/generator.c: Initialise variable which can
5699           be used uninitialised.
5701 Thu Dec 22 03:14:02 GMT 2011  Olly Betts <olly@survex.com>
5703         * bin/Makefile.mk: Link $(libxapian_la) after libbrasscheck.la and
5704           libchertcheck.la to fix mingw build.  Probably closes ticket#567.
5706 Thu Dec 22 02:45:45 GMT 2011  Olly Betts <olly@survex.com>
5708         * include/xapian/query.h: Document that OP_ELITE_SET with non-term
5709           subqueries might pick subqueries which don't match anything.
5710           Closes ticket#49.
5712 Thu Dec 22 02:37:10 GMT 2011  Olly Betts <olly@survex.com>
5714         * include/xapian/query.h: Improve documentation of OP_ELITE_SET.
5716 Wed Dec 21 12:26:00 GMT 2011  Olly Betts <olly@survex.com>
5718         * api/errorhandler.cc: Rearrange code in ErrorHandler::operator() to
5719           be clearer.
5721 Wed Dec 21 11:23:28 GMT 2011  Olly Betts <olly@survex.com>
5723         * include/xapian/errorhandler.h: Fix typo: 'APU' -> 'API'.
5725 Wed Dec 21 09:57:32 GMT 2011  Olly Betts <olly@survex.com>
5727         * api/,backends/brass/brass_postlist.cc,
5728           backends/brass/brass_postlist.h,backends/chert/,
5729           backends/contiguousalldocspostlist.cc,
5730           backends/contiguousalldocspostlist.h,
5731           backends/inmemory/inmemory_database.cc,
5732           backends/inmemory/inmemory_database.h,
5733           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
5734           backends/remote/,docs/,expand/,include/xapian/,matcher/,
5735           net/remoteserver.cc,net/serialise.cc,tests/,weight/bm25weight.cc,
5736           weight/boolweight.cc,weight/tradweight.cc: Deprecate Xapian::weight
5737           typedef in favour of just using double, and make the replacement
5738           everywhere.  Closes ticket#560.
5740 Tue Dec 20 13:31:21 GMT 2011  Olly Betts <olly@survex.com>
5742         * net/remoteconnection.cc: Include "safesysstat.h" for fstat().
5744 Fri Dec 16 03:05:17 GMT 2011  Olly Betts <olly@survex.com>
5746         * backends/brass/brass_termlisttable.cc,
5747           backends/chert/chert_termlisttable.cc,
5748           backends/multi/multi_postlist.cc,net/replicatetcpclient.cc,
5749           net/serialise.cc,net/tcpserver.cc,tests/,
5750           tests/harness/backendmanager_remoteprog.cc,tests/queryparsertest.cc,
5751           tests/soaktest/soaktest_queries.cc,tests/termgentest.cc: Remove
5752           unnecessary includes on "utils.h".
5754 Fri Dec 16 02:57:49 GMT 2011  Olly Betts <olly@survex.com>
5756         * backends/brass/brass_btreebase.cc,backends/brass/brass_database.cc,
5757           backends/brass/brass_databasereplicator.cc,
5758           backends/chert/chert_btreebase.cc,backends/chert/chert_database.cc,
5759           backends/chert/chert_databasereplicator.cc,
5760           net/remoteconnection.cc,tests/api_replicate.cc: Replace uses of
5761           fdcloser class with new FD class.
5762         * common/utils.h: Remove fdcloser class.
5764 Fri Dec 16 00:56:45 GMT 2011  Olly Betts <olly@survex.com>
5766         * tests/api_replicate.cc: Use a const int rather than a #define for
5767           BUFSIZE.
5769 Fri Dec 16 00:50:57 GMT 2011  Olly Betts <olly@survex.com>
5771         * tests/api_replicate.cc: Avoid leaking fds on exceptions in
5772           truncated_copy().
5774 Fri Dec 16 00:42:11 GMT 2011  Olly Betts <olly@survex.com>
5776         * common/fd.h: Oops, fix to actually compile.
5778 Thu Dec 15 23:54:44 GMT 2011  Olly Betts <olly@survex.com>
5780         * common/Makefile.mk,common/fd.h: Add new FD class which wraps a file
5781           descriptor and ensures it gets released when we exit the scope.
5783 Thu Dec 15 22:44:16 GMT 2011  Olly Betts <olly@survex.com>
5785         * weight/Makefile: Add forwarding Makefile.
5787 Thu Dec 15 22:17:18 GMT 2011  Olly Betts <olly@survex.com>
5789         * weight/Makefile.mk: Ship dir_contents and Makefile.
5791 Tue Dec 13 10:33:21 GMT 2011  Olly Betts <olly@survex.com>
5793         * NEWS: Update from ChangeLog and branches/1.2.
5795 Fri Dec 09 10:33:25 GMT 2011  Olly Betts <olly@survex.com>
5797         * tests/soaktest/soaktest.cc,tests/soaktest/soaktest.h,
5798           tests/soaktest/soaktest_queries.cc: "boulton" -> "Boulton" in
5799           copyright statements.
5801 Fri Dec 09 10:31:18 GMT 2011  Olly Betts <olly@survex.com>
5803         * tests/soaktest/soaktest.cc: With Sun's compiler, random() and
5804           srandom() aren't in <cstdlib> so we need to use <stdlib.h> instead.
5806 Fri Dec 09 07:51:44 GMT 2011  Olly Betts <olly@survex.com>
5808         * include/xapian/types.h: Set BAD_VALUENO to 0xffffffff rather than
5809           static_cast<valueno>(-1) - it's the same value currently, but more
5810           robust to valueno being set a wider type.
5812 Fri Dec 09 07:49:07 GMT 2011  Olly Betts <olly@survex.com>
5814         * include/xapian/types.h: Explicitly document which value slot numbers
5815           are valid.  Fixes ticket#555.
5817 Sat Dec 03 09:32:55 GMT 2011  Olly Betts <olly@survex.com>
5819         * tests/api_opsynonym.cc: Fix typo in comment.
5821 Thu Dec 01 04:41:24 GMT 2011  Olly Betts <olly@survex.com>
5823         * include/xapian/database.h: Remove bogus paragraph in
5824           replace_document() documentation comment, cut and pasted from
5825           delete_document() documentation comment.  (Fixes bug#579)
5827 Tue Nov 08 01:50:25 GMT 2011  Olly Betts <olly@survex.com>
5829         * include/xapian/enquire.h: Add missing doxygen @param commands.
5831 Tue Nov 08 01:33:34 GMT 2011  Olly Betts <olly@survex.com>
5833         * include/xapian/database.h,include/xapian/document.h: Add missing
5834           doxygen @param commands.
5836 Mon Nov 07 10:31:04 GMT 2011  Olly Betts <olly@survex.com>
5838         * include/xapian/queryparser.h: Address doxygen warnings.
5840 Mon Nov 07 02:40:50 GMT 2011  Olly Betts <olly@survex.com>
5842         * include/xapian/postingsource.h: Document undocumented parameters,
5843           fixing doxygen warnings.
5844         * include/xapian/queryparser.h: Escape < and > in doxygen comments.
5846 Mon Nov 07 02:38:18 GMT 2011  Olly Betts <olly@survex.com>
5848         * include/xapian/enquire.h: Enquire::get_eset() doesn't take a min_wt
5849           parameter, so remove @param documentation for it.
5851 Mon Nov 07 01:59:54 GMT 2011  Olly Betts <olly@survex.com>
5853         * include/xapian/: Document lots of parameters, fixing doxygen
5854           warnings.
5856 Sun Nov 06 22:05:09 GMT 2011  Olly Betts <olly@survex.com>
5858         * generate-exceptions: Document all parameters to fix doxygen
5859           warnings.
5861 Sun Nov 06 22:03:50 GMT 2011  Olly Betts <olly@survex.com>
5863         * include/xapian/: Fix doxygen warnings.
5865 Sun Nov 06 21:00:08 GMT 2011  Olly Betts <olly@survex.com>
5867         * include/xapian/queryparser.h: Document value parameter of
5868           sortable_serialise() and sortable_unserialise().
5870 Sun Nov 06 17:53:31 GMT 2011  Olly Betts <olly@survex.com>
5872         * include/xapian/document.h: Improve Document get_data() and set_data()
5873           documentation comments.
5875 Sun Nov 06 17:14:39 GMT 2011  Olly Betts <olly@survex.com>
5877         * tests/Makefile.am: Add -I$(top_srcdir) so api/replication.h is found
5878           in a VPATH build.
5880 Sun Nov 06 16:06:52 GMT 2011  Olly Betts <olly@survex.com>
5882         * api/,backends/database.h,backends/document.h,
5883           backends/multi/multi_alltermslist.h,backends/positionlist.h,common/,
5884           tests/harness/: More more headers out of common.
5886 Sun Nov 06 14:55:25 GMT 2011  Olly Betts <olly@survex.com>
5888         * api/maptermlist.h,backends/inmemory/Makefile.mk,
5889           backends/inmemory/inmemory_positionlist.h,
5890           backends/remote/Makefile.mk,backends/remote/remote-database.cc,
5891           backends/remote/remote-database.h,common/Makefile.mk,
5892           common/inmemory_positionlist.h,common/remote-database.h,
5893           matcher/multimatch.cc,matcher/remotesubmatch.cc,
5894           matcher/remotesubmatch.h,net/progclient.h,net/remotetcpclient.h:
5895           Move two more headers out of common.
5897 Sun Nov 06 11:56:46 GMT 2011  Olly Betts <olly@survex.com>
5899         * tests/internaltest.cc: Fix for VPATH build.
5901 Sun Nov 06 11:26:18 GMT 2011  Olly Betts <olly@survex.com>
5903         * common/,tests/api_replicate.cc: Factor internal classes out of
5904           output.h into new output-internal.h to fix build failures in VPATH
5905           due to move of weightinternal.h out of common (since the test harness
5906           uses output.h).
5908 Sun Nov 06 00:49:45 GMT 2011  Olly Betts <olly@survex.com>
5910         * api/,backends/brass/,backends/chert/,backends/dbfactory_remote.cc,
5911           backends/inmemory/inmemory_database.cc,
5912           backends/multi/multi_termlist.cc,backends/remote/net_postlist.cc,
5913           backends/remote/net_termlist.h,backends/remote/remote-database.cc,
5914           bin/,common/,expand/,matcher/,net/,tests/internaltest.cc,
5915           weight/Makefile.mk,weight/weightinternal.h: Move even more headers
5916           out of common and next to their corresponding C++ file.
5918 Sat Nov 05 23:55:55 GMT 2011  Olly Betts <olly@survex.com>
5920         * api/replication.cc,backends/Makefile.mk,
5921           backends/brass/brass_databasereplicator.h,
5922           backends/chert/chert_databasereplicator.h,
5923           backends/databasereplicator.h,common/Makefile.mk,
5924           common/databasereplicator.h: Move databasereplicator.h from common to
5925           backends.
5927 Sat Nov 05 23:51:40 GMT 2011  Olly Betts <olly@survex.com>
5929         * backends/Makefile.mk: Fix sort order of noinst_HEADERS.
5931 Sat Nov 05 23:50:33 GMT 2011  Olly Betts <olly@survex.com>
5933         * api/documentvaluelist.h,api/omdatabase.cc,api/valueiterator.cc,
5934           backends/Makefile.mk,backends/brass/,backends/chert/,
5935           backends/inmemory/inmemory_database.cc,
5936           backends/multi/multi_valuelist.cc,backends/multivaluelist.h,
5937           backends/valuelist.h,backends/valuestats.h,bin/xapian-check-brass.cc,
5938           bin/xapian-check-chert.cc,common/,matcher/valuerangepostlist.h,
5939           matcher/valuestreamdocument.h: Move multivaluelist.h, valuelist.h and
5940           valuestats.h from common to backends.
5942 Sat Nov 05 23:40:49 GMT 2011  Olly Betts <olly@survex.com>
5944         * api/,backends/brass/brass_postlist.h,backends/chert/chert_postlist.h,
5945           backends/contiguousalldocspostlist.h,backends/database.cc,
5946           backends/inmemory/inmemory_database.h,
5947           backends/multi/multi_postlist.h,backends/remote/net_postlist.h,
5948           backends/remote/remote-database.cc,common/,matcher/: Move
5949           emptypostlist.h, leafpostlist.h and postlist.h from common to api.
5951 Sat Nov 05 23:31:14 GMT 2011  Olly Betts <olly@survex.com>
5953         * backends/Makefile.mk,backends/brass/brass_database.cc,
5954           backends/chert/chert_database.cc,
5955           backends/contiguousalldocspostlist.h,common/Makefile.mk,
5956           common/contiguousalldocspostlist.h: Move contiguousalldocspostlist.h
5957           from common to backends.
5959 Sat Nov 05 23:28:49 GMT 2011  Olly Betts <olly@survex.com>
5961         * api/omdatabase.cc,backends/Makefile.mk,backends/alltermslist.h,
5962           backends/brass/,backends/chert/,
5963           backends/inmemory/inmemory_alltermslist.h,common/Makefile.mk,
5964           common/alltermslist.h,common/multialltermslist.h: Move alltermslist.h
5965           from common to backends.
5967 Sat Nov 05 23:20:05 GMT 2011  Olly Betts <olly@survex.com>
5969         * common/safesysselect.h: Fix typo (FDSET -> FD_SET).
5971 Sat Nov 05 23:12:09 GMT 2011  Olly Betts <olly@survex.com>
5973         * common/safesysselect.h: Enhance to provide portability for __WIN32__
5974           too.
5975         * net/remoteconnection.cc,net/tcpclient.cc: Update to make use of this.
5977 Sat Nov 05 22:39:51 GMT 2011  Olly Betts <olly@survex.com>
5979         * common/safesysselect.h: Add wrapper around FD_SET() under __WIN32__
5980           which casts the fd parameter to unsigned to avoid a warning on mingw.
5981         * net/tcpclient.cc: Remove __WIN32__-specific case here which was
5982           working around this warning.
5984 Sat Nov 05 21:58:12 GMT 2011  Olly Betts <olly@survex.com>
5986         * bin/.gitignore,bin/Makefile.mk,bin/xapian-delve.cc,
5987           docs/admin_notes.rst,examples/,xapian-core.spec.in: Move delve from
5988           examples to bin and rename to xapian-delve.
5990 Sat Nov 05 15:18:37 GMT 2011  Olly Betts <olly@survex.com>
5992         * docs/overview.rst: Fix a few things which were out of date and
5993           improve wording in various places.
5995 Sat Nov 05 12:07:14 GMT 2011  Olly Betts <olly@survex.com>
5997         * docs/quickstart.rst: Fix some factual errors, and tweak .rst
5998           source layout a little (":\n::\n" -> "::\n").
6000 Thu Nov 03 20:53:49 GMT 2011  Richard Boulton <richard@tartarus.org>
6002         * common/msvc_posix_wrapper.cc,common/safe.cc,net/tcpclient.cc:
6003           Some fixes for warnings when cross-compiling with mingw; missing
6004           includes to get declarations of functions in windows support
6005           code, and change to use the windows SOCKET type to avoid a
6006           signed/unsigned comparison warning in tcpclient.
6008 Sun Oct 30 23:31:09 GMT 2011  Olly Betts <olly@survex.com>
6010         * NEWS: Update from ChangeLog.
6012 Sun Oct 30 13:16:12 GMT 2011  Olly Betts <olly@survex.com>
6014         * include/xapian/queryparser.h: List which flags FLAG_DEFAULT includes
6015           in the doxygen documentation comments.
6017 Sat Oct 29 14:47:04 GMT 2011  Olly Betts <olly@survex.com>
6019         * include/xapian/enquire.h: Add note to API docs to discourage use
6020           of percentage scores.
6022 Sat Oct 29 14:40:39 GMT 2011  Olly Betts <olly@survex.com>
6024         * docs/quickstart.rst,docs/quickstartexpand.cc.html,
6025           docs/quickstartsearch.cc.html,examples/quest.cc,
6026           examples/simpleexpand.cc,examples/simplesearch.cc: Use get_weight()
6027           instead of get_percent() in examples, since percentages are rather
6028           old fashioned and you probably don't want to use them in new
6029           applications.
6031 Sat Oct 29 13:29:37 GMT 2011  Olly Betts <olly@survex.com>
6033         * api/omenquire.cc,common/omenquireinternal.h,docs/deprecation.rst,
6034           include/xapian/enquire.h,include/xapian/types.h,tests/api_anydb.cc:
6035           Deprecate Xapian::percent and use int instead in the API and our
6036           own code.
6038 Sat Oct 29 12:30:05 GMT 2011  Olly Betts <olly@survex.com>
6040         * docs/quickstart.rst: Fix indentation of example code.
6042 Sat Oct 29 10:04:24 GMT 2011  Olly Betts <olly@survex.com>
6044         * docs/overview.rst: Fix typo in example code.
6046 Fri Oct 28 14:39:09 GMT 2011  Olly Betts <olly@survex.com>
6048         * include/xapian/database.h: Note that commit() was new in 1.1.0.
6050 Fri Oct 14 12:38:45 GMT 2011  Olly Betts <olly@survex.com>
6052         * common/realtime.h: Use safesysselect.h.
6054 Mon Oct 03 00:53:13 GMT 2011  Olly Betts <olly@survex.com>
6056         * queryparser/lemon.c: Incorporate changes from latest upstream
6057           version.  I'm failing to follow branch structure upstream to work
6058           out which changesets to merge so it's simpler to just compare the
6059           latest version with what we currently have.
6061 Sun Oct 02 23:31:52 GMT 2011  Olly Betts <olly@survex.com>
6063         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/d8bab8cf0b:
6064           'Added %expect directive, to consider a certain number of conflicts
6065           "correct." This has the side effect of changing the process exit
6066           code to never overflow.'
6068 Sun Oct 02 23:26:34 GMT 2011  Olly Betts <olly@survex.com>
6070         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/e6cbe1e5ee:
6071           "Added -T option, to specify a template filename on the command
6072           line.  The default is still "lempar.c", though."  Not currently
6073           useful to us, but trying to minimise differences with upstream
6074           lemon.
6076 Sun Oct 02 23:14:32 GMT 2011  Olly Betts <olly@survex.com>
6078         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/e22c090f35:
6079           "Another attempt at fixing the table generator in lemon. Again, this
6080           does not effect the SQLite grammar."  No change to generated grammar
6081           for QueryParser.
6083 Sun Oct 02 22:59:28 GMT 2011  Olly Betts <olly@survex.com>
6085         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/077a6bee2d:
6086           "Fix an issue with lemon generating incorrect grammars. This issue
6087           does not effect SQLite."  This means we now get the same tables
6088           generated as before the previous change.
6090 Sun Oct 02 22:25:54 GMT 2011  Olly Betts <olly@survex.com>
6092         * queryparser/lemon.c,queryparser/queryparser.lt: Merge
6093           http://www.sqlite.org/src/info/27d8e684db: Enhancements to lemon to
6094           generate more compact action tables and to avoid making array bounds
6095           tests that can never fail on action table calculations.  This
6096           reduces the size of QueryParser's tables a little.
6098 Sun Oct 02 21:47:36 GMT 2011  Olly Betts <olly@survex.com>
6100         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/d66a0f31eb:
6101           Adjust the lemon implementation so that it always computes the same
6102           PDA regardless of qsort() implementation on the host platform. In
6103           other words, make all sorts in lemon stable.
6105 Thu Sep 29 12:11:28 GMT 2011  Olly Betts <olly@survex.com>
6107         * tests/queryparsertest.cc: Add cases to ensure a quoted boolean
6108           prefix accepts an empty value or a single space.
6110 Wed Sep 14 04:48:57 GMT 2011  Olly Betts <olly@survex.com>
6112         * docs/quickstart.rst: Correct link which was to
6113           quickstartsearch.cc.html but should be to quickstartindex.cc.html.
6115 Tue Sep 13 08:51:34 GMT 2011  Olly Betts <olly@survex.com>
6117         * backends/flint_lock.cc: Fix comment typo.
6119 Thu Sep 01 12:50:43 GMT 2011  Olly Betts <olly@survex.com>
6121         * include/xapian/enquire.h: Clarify "sort by date" with BoolWeight
6122           example.
6124 Tue Aug 30 13:51:48 GMT 2011  Olly Betts <olly@survex.com>
6126         * docs/index.rst: Add link to apidoc.pdf.
6128 Wed Aug 24 14:12:05 GMT 2011  Olly Betts <olly@survex.com>
6130         * queryparser/queryparser.lemony: Fix memory leak (caught by existing
6131           testcase queryparser1 when run under valgrind).
6133 Wed Aug 24 12:47:49 GMT 2011  Olly Betts <olly@survex.com>
6135         * queryparser/,tests/queryparsertest.cc,tests/termgentest.cc: Add
6136           support for indexing and searching CJK text using n-grams.  Currently
6137           this is only enabled if environmental variable XAPIAN_CJK_NGRAM is
6138           set to a non-empty value.
6140 Tue Aug 23 03:49:27 GMT 2011  Olly Betts <olly@survex.com>
6142         * api/vectortermlist.cc,api/vectortermlist.h: Change so that p == NULL
6143           represents at_end, and p == data.data() means we've yet to start.
6145 Mon Aug 22 15:30:51 GMT 2011  Olly Betts <olly@survex.com>
6147         * api/vectortermlist.cc: Add new source file missed from last commit.
6149 Mon Aug 22 14:32:50 GMT 2011  Olly Betts <olly@survex.com>
6151         * api/,backends/brass/brass_synonym.cc,backends/chert/chert_synonym.cc,
6152           common/Makefile.mk,common/vectortermlist.h,
6153           queryparser/queryparser.cc: Reimplement VectorTermList to store the
6154           list of terms encoded into a single std::string, which is a lot more
6155           memory efficient that std::vector<std::string>.
6157 Mon Aug 22 12:22:49 GMT 2011  Olly Betts <olly@survex.com>
6159         * common/Makefile.mk,common/const_database_wrapper.cc,
6160           common/const_database_wrapper.h,matcher/Makefile.mk,
6161           matcher/const_database_wrapper.cc,matcher/const_database_wrapper.h:
6162           Move const_database_wrapper.h and const_database_wrapper.cc from
6163           common/ to matcher/.
6165 Sun Aug 21 12:43:38 GMT 2011  Olly Betts <olly@survex.com>
6167         * Makefile.am: Since we require GNU find for the coverage-check target,
6168           make use of its -delete option, so we no longer also need GNU xargs.
6170 Thu Aug 18 06:28:11 GMT 2011  Olly Betts <olly@survex.com>
6172         * queryparser/queryparser.lemony: Reorder header includes to be more
6173           standard.
6175 Thu Aug 18 01:06:00 GMT 2011  Olly Betts <olly@survex.com>
6177         * queryparser/queryparser.lemony: <cstring> not <string.h>.
6179 Tue Aug 16 04:56:20 GMT 2011  Olly Betts <olly@survex.com>
6181         * bin/xapian-check.cc: Throw Xapian::FeatureUnavailableError if
6182           backends are disabled, rather than const char *.
6184 Tue Aug 16 04:49:05 GMT 2011  Olly Betts <olly@survex.com>
6186         * backends/brass/brass_check.cc,backends/brass/brass_check.h,
6187           backends/chert/chert_check.cc,backends/chert/chert_check.h,
6188           bin/xapian-check.cc: Instead of giving cryptic numeric codes for
6189           B-tree errors and then throwing const char *, throw
6190           Xapian::DatabaseError() exceptions with string descriptions.
6192 Fri Aug 12 23:11:51 GMT 2011  Olly Betts <olly@survex.com>
6194         * NEWS: Update from 1.2.7 and ChangeLog.
6196 Fri Aug 12 06:38:45 GMT 2011  Olly Betts <olly@survex.com>
6198         * backends/remote/remote-database.cc: Factor out throw_bad_message().
6200 Fri Aug 12 06:22:14 GMT 2011  Olly Betts <olly@survex.com>
6202         * net/remoteconnection.cc: Factor out throw_database_closed().
6204 Fri Aug 12 06:17:43 GMT 2011  Olly Betts <olly@survex.com>
6206         * net/remoteserver.cc: Factor out throw_read_only() function.
6208 Fri Aug 12 06:17:01 GMT 2011  Olly Betts <olly@survex.com>
6210         * common/noreturn.h: Add comment showing how to use XAPIAN_NORETURN
6211           macro.
6213 Sat Aug 06 05:15:53 GMT 2011  Olly Betts <olly@survex.com>
6215         * api/positioniterator.cc,api/postingsource.cc,api/valueiterator.cc,
6216           common/serialise.h,include/xapian/positioniterator.h,
6217           include/xapian/postingsource.h: Fix new warnings from -Wshadow with
6218           GCC 4.6.  These warnings are when a variable name "shadows" a
6219           typename, which doesn't seem problematic in general, but the only
6220           alternative seems to be to disable -Wshadow entirely, and it is
6221           useful in other cases.
6223 Thu Aug 04 07:57:09 GMT 2011  Olly Betts <olly@survex.com>
6225         * backends/dbfactory_remote.cc,docs/deprecation.rst,
6226           include/xapian/dbfactory.h,include/xapian/types.h: Deprecate
6227           Xapian::timeout in favour of POSIX type useconds_t.
6229 Thu Aug 04 04:04:45 GMT 2011  Olly Betts <olly@survex.com>
6231         * include/xapian/termgenerator.h,
6232           queryparser/termgenerator_internal.cc: Rename weight parameter to
6233           wdf_inc, which much better describes what it does, and avoids a
6234           -Wshadow warning with GCC 4.6.
6236 Thu Aug 04 04:03:37 GMT 2011  Olly Betts <olly@survex.com>
6238         * api/registry.cc: Rename weight variable to weighting_scheme to avoid
6239           -Wshadow warning.
6241 Wed Aug 03 23:13:36 GMT 2011  Olly Betts <olly@survex.com>
6243         * configure.ac: -Wshadow gives bogus warnings with 4.0 (at least on Mac
6244           OS X), so disable it for GCC < 4.1 (like the comments suggest we
6245           already did!)
6247 Wed Aug 03 22:53:55 GMT 2011  Olly Betts <olly@survex.com>
6249         * configure.ac: Enable -fshow-column for GCC - things like vim's
6250           quickfix mode will then jump to the appropriate column for a
6251           compiler error or warning, not just the appropriate line.
6253 Wed Aug 03 22:13:26 GMT 2011  Olly Betts <olly@survex.com>
6255         * api/omdocument.cc,backends/brass/brass_database.cc,
6256           backends/chert/chert_database.cc,common/document.h: Document objects
6257           now track if term positions might have been modified, so we can avoid
6258           having to consider them at all if you take a document and add or
6259           remove a boolean filter term.  This gives an 18% speedup for adding
6260           tags in notmuch.
6262 Mon Aug 01 15:15:17 GMT 2011  Olly Betts <olly@survex.com>
6264         * api/Makefile.mk,api/ompostlistiterator.cc,api/postingiterator.cc,
6265           include/xapian/postingiterator.h,tests/api_db.cc: Redo
6266           PostingIterator based on TermIterator with efficient end iterator
6267           checks.
6269 Mon Aug 01 13:34:44 GMT 2011  Olly Betts <olly@survex.com>
6271         * api/,backends/brass/brass_database.cc,
6272           backends/chert/chert_database.cc,
6273           backends/inmemory/inmemory_database.cc,common/positionlist.h,
6274           examples/delve.cc,include/xapian/positioniterator.h,
6275           include/xapian/termiterator.h,include/xapian/valueiterator.h: Take
6276           the old SVN end-iterator-proxies branch and rework the TermIterator
6277           and PositionIterator reimplementations there to use the same
6278           approach as ValueIterator now uses.
6280 Sun Jul 31 15:24:55 GMT 2011  Olly Betts <olly@survex.com>
6282         * include/xapian/valueiterator.h: Fix comment typo.
6284 Sun Jul 31 14:45:46 GMT 2011  Olly Betts <olly@survex.com>
6286         * api/omenquire.cc,tests/api_anydb.cc: Previously,
6287           Enquire::get_matching_terms_begin() threw InvalidArgumentError if
6288           the query was empty.  Now we just return an end iterator, which is
6289           more consistent with how empty queries behave elsewhere.
6291 Sun Jul 31 13:44:06 GMT 2011  Olly Betts <olly@survex.com>
6293         * api/valueiterator.cc,include/xapian/valueiterator.h: Rename private
6294           ValueIterator::deref() method to decref() (since dereference has
6295           another meaning to the intended "remove a reference").
6297 Sun Jul 31 11:27:33 GMT 2011  Olly Betts <olly@survex.com>
6299         * api/valueiterator.cc,include/xapian/database.h,
6300           include/xapian/document.h,include/xapian/valueiterator.h: Don't use
6301           intrusive_ptr to reference count ValueIterator internals, but
6302           instead update the reference count in hand-written code.  This is
6303           less good in itself, but it means we can inline ValueIterator's
6304           default constructor and its destructor in the case where the
6305           internal is NULL, which should mean a comparison with the end
6306           iterator optimises to a NULL pointer check but without needing
6307           the ValueIteratorEnd_ class, which doesn't work as ValueIterator()
6308           would in templates or some cases of overload resolution.
6310 Sat Jul 30 12:07:52 GMT 2011  Olly Betts <olly@survex.com>
6312         * docs/doxygen_api.conf.in: Don't generate XML from doxygen for the
6313           bindings - the bindings now do this for themselves.  (ticket#262)
6315 Fri Jul 29 01:33:37 GMT 2011  Olly Betts <olly@survex.com>
6317         * include/xapian/enquire.h: Just forward declare "class KeyMaker"
6318           rather than including <xapian/keymaker.h>.
6320 Fri Jul 29 01:28:08 GMT 2011  Olly Betts <olly@survex.com>
6322         * api/omdatabase.cc,backends/slowvaluelist.cc,
6323           include/xapian/database.h,matcher/valuestreamdocument.cc: Change
6324           Database::get_document_lazily_() to return void* so we don't need
6325           to include xapian/document.h from xapian/database.h just to get
6326           Document::Internal declared.  This doesn't affect user code, but
6327           reduces the number of files which need to be rebuilt in the library
6328           when xapian/document.h changes.
6330 Wed Jul 27 05:59:32 GMT 2011  Olly Betts <olly@survex.com>
6332         * include/xapian/matchspy.h: Remove unnecessary header includes.
6334 Wed Jul 27 02:11:08 GMT 2011  Olly Betts <olly@survex.com>
6336         * docs/index.rst: Add links to Omega and bindings docs.
6338 Tue Jul 26 05:36:50 GMT 2011  Olly Betts <olly@survex.com>
6340         * docs/deprecation.rst: Add Omega's OLDP CGI parameter.
6342 Fri Jul 22 15:37:48 GMT 2011  Olly Betts <olly@survex.com>
6344         * include/xapian/queryparser.h: Reword documentation of
6345           add_boolean_prefix()'s exclusive parameter to talk about terms and
6346           prefixes rather than values and fields (which was confusing since
6347           "document value" has a particular meaning in Xapian).
6349 Thu Jul 21 03:37:49 GMT 2011  Olly Betts <olly@survex.com>
6351         * matcher/mergepostlist.cc: Another debug logging fix.
6353 Thu Jul 21 03:16:39 GMT 2011  Olly Betts <olly@survex.com>
6355         * api/omenquire.cc,api/ompostlistiterator.cc,
6356           backends/brass/brass_database.cc,
6357           backends/brass/brass_positionlist.cc,
6358           backends/brass/brass_postlist.cc,backends/chert/chert_database.cc,
6359           backends/chert/chert_positionlist.cc,
6360           backends/chert/chert_postlist.cc: More debug logging fixes.
6362 Thu Jul 21 02:55:00 GMT 2011  Olly Betts <olly@survex.com>
6364         * api/omdatabase.cc,api/omenquire.cc,api/replication.cc,
6365           backends/brass/brass_alldocspostlist.cc,
6366           backends/brass/brass_database.cc,
6367           backends/brass/brass_spellingwordslist.cc,backends/chert/,
6368           matcher/mergepostlist.cc,matcher/msetpostlist.cc,
6369           matcher/synonympostlist.cc: Fix various incorrect LOGCALL lines.
6371 Thu Jul 21 02:12:25 GMT 2011  Olly Betts <olly@survex.com>
6373         * backends/brass/brass_postlist.cc,backends/chert/chert_postlist.cc,
6374           common/documentterm.h,net/progclient.cc: Fix uses of LOGCALL_VOID
6375           which should be LOGCALL_CTOR.
6377 Wed Jul 20 07:00:48 GMT 2011  Olly Betts <olly@survex.com>
6379         * tests/api_matchspy.cc: Remove checks for remote dbtype in matchspy2
6380           and matchspy4 testcases - these were checking for values which would
6381           never match, and the testcases should and do work with remote
6382           backends.
6384 Wed Jul 20 01:19:46 GMT 2011  Olly Betts <olly@survex.com>
6386         * docs/facets.rst: Minor clarification.
6388 Wed Jul 20 00:22:38 GMT 2011  Olly Betts <olly@survex.com>
6390         * bin/xapian-check.cc: Document in --help that checking a whole
6391           database performs additional cross-checks between the tables.
6393 Tue Jul 19 18:29:51 GMT 2011  Richard Boulton <richard@tartarus.org>
6395         * docs/facets.rst: Expand descriptions for indexing and finding
6396           facets to hopefully be more helpful to newcomers.
6398 Tue Jul 19 17:52:25 GMT 2011  Richard Boulton <richard@tartarus.org>
6400         * docs/facets.rst: Fix example calls to add_matchspy() to be passed
6401           pointers, and example call to get_termfreq().
6403 Sat Jul 16 10:54:39 GMT 2011  Olly Betts <olly@survex.com>
6405         * tests/collate-test: Now understand use of "#if 0" to disable
6406           testcases.
6407         * tests/api_db.cc: Remove comment in front of
6408           "DEFINE_TESTCASE(multierrhandler1, [...]" which is no longer needed.
6410 Wed Jul 13 15:07:27 GMT 2011  Olly Betts <olly@survex.com>
6412         * include/xapian/database.h: Improve the documentation comment for
6413           Database::close().  (ticket#504)
6415 Sat Jul 09 14:00:08 GMT 2011  Olly Betts <olly@survex.com>
6417         * include/xapian/stem.h,languages/stem.cc: Stem::operator= now returns
6418           a reference to the assigned-to object.
6420 Sat Jul 09 07:08:03 GMT 2011  Olly Betts <olly@survex.com>
6422         * languages/compiler/analyser.c: Change reporting of line number for
6423           repeated string in among to use "FILE:LINE:" prefix.
6425 Sat Jul 09 01:04:18 GMT 2011  Olly Betts <olly@survex.com>
6427         * common/pretty.h: Don't dereference a NULL pointer.
6429 Fri Jul 08 14:28:42 GMT 2011  Olly Betts <olly@survex.com>
6431         * common/output.h,common/pretty.h: Fix invalid templates in pretty.h.
6433 Fri Jul 08 12:55:19 GMT 2011  Olly Betts <olly@survex.com>
6435         * common/pretty.h: Fix template for pretty printing a std::list.
6437 Thu Jul 07 10:40:53 GMT 2011  Olly Betts <olly@survex.com>
6439         * api/omenquire.cc: Add assertions that the index is in range when
6440           dereferencing MSetIterator and ESetIterator.
6442 Wed Jul 06 08:20:56 GMT 2011  Olly Betts <olly@survex.com>
6444         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Trust
6445           new to throw std::bad_alloc rather than returning NULL.
6447 Wed Jul 06 05:50:38 GMT 2011  Olly Betts <olly@survex.com>
6449         * tests/internaltest.cc: Remove testcase serialisequery1.
6450         * tests/api_serialise.cc: Extend serialise_query1 to cover equivalent
6451           cases via the API.
6453 Tue Jul 05 01:20:59 GMT 2011  Olly Betts <olly@survex.com>
6455         * common/debuglog.h: Add QUERY category for debug logging.
6457 Fri Jul 01 04:55:02 GMT 2011  Olly Betts <olly@survex.com>
6459         * common/unordered_map.h: Add my <unordered_map> portability wrapper
6460           which was used by the JNI java bindings.  It's not currently used
6461           here, but is likely to be useful (two of the GSoC projects are
6462           using unordered_map).
6464 Wed Jun 29 12:16:59 GMT 2011  Richard Boulton <richard@tartarus.org>
6466         * languages/compiler/tokeniser.c: Fix memory leak (of file name) in
6467           snowball compiler introduced by last commit.
6469 Wed Jun 29 07:49:36 GMT 2011  Olly Betts <olly@survex.com>
6471         * languages/compiler/: Report "FILE:LINE:" before each error so tools
6472           like vim's quickfix mode can parse this and bring up the line with
6473           the error automatically.
6475 Wed Jun 29 07:49:10 GMT 2011  Olly Betts <olly@survex.com>
6477         * languages/compiler/header.h: Add comments to note that struct input
6478           must be a prefix of struct tokeniser.
6480 Wed Jun 29 07:47:30 GMT 2011  Olly Betts <olly@survex.com>
6482         * languages/basque.sbl: Use stringdef instead of literal accented
6483           characters in the code.
6485 Wed Jun 29 07:13:30 GMT 2011  Olly Betts <olly@survex.com>
6487         * docs/stemming.rst,include/xapian/stem.h,languages/: Add stemmers
6488           for Armenian (hy), Basque (eu), and Catalan (ca).
6490 Mon Jun 27 08:16:55 GMT 2011  Olly Betts <olly@survex.com>
6492         * include/xapian/query.h: Add a fake specialised form of the templated
6493           ctor for SWIG.
6495 Sat Jun 25 11:27:00 GMT 2011  Olly Betts <olly@survex.com>
6497         * include/xapian/enquire.h: Fix doc comment typo which reversed the
6498           intended sense.
6500 Sat Jun 25 06:20:34 GMT 2011  Olly Betts <olly@survex.com>
6502         * api/omenquire.cc,common/omenquireinternal.h: Remove unused method
6503           Enquire::Internal::register_match_decider().
6505 Sat Jun 25 06:05:22 GMT 2011  Olly Betts <olly@survex.com>
6507         * include/xapian/enquire.h: MSet(MSet::Internal *) -> MSet(Internal *)
6508           for consistency with other classes.
6510 Fri Jun 24 16:15:00 GMT 2011  Olly Betts <olly@survex.com>
6512         * api/omdatabase.cc,backends/slowvaluelist.cc,
6513           include/xapian/database.h,matcher/valuestreamdocument.cc: Rename
6514           Database::get_document_lazily() to get_document_lazily_() to conform
6515           to our convention for naming methods for internal use which have
6516           "public" visibility.
6518 Wed Jun 22 23:51:15 GMT 2011  Richard Boulton <richard@tartarus.org>
6520         * configure.ac: Correct tiny typo in error message when zlib isn't
6521           found.
6523 Tue Jun 21 04:08:29 GMT 2011  Olly Betts <olly@survex.com>
6525         * common/autoptr.h: Update comment about why we have this file.  It's
6526           no longer a concern that we might need our own AutoPtr implementation
6527           but we are likely to want to be able to migrate to unique_ptr easily
6528           as C++0x features become more widely available.
6530 Tue Jun 21 02:26:36 GMT 2011  Olly Betts <olly@survex.com>
6532         * HACKING,common/pretty.h,configure.ac,tests/internaltest.cc: Fix a
6533           few lingering references to RefCntPtr and RefCntBase.
6535 Tue Jun 21 02:01:25 GMT 2011  Olly Betts <olly@survex.com>
6537         * api/,backends/brass/,backends/chert/,backends/database.cc,
6538           backends/inmemory/inmemory_alltermslist.h,
6539           backends/inmemory/inmemory_database.cc,
6540           backends/inmemory/inmemory_database.h,
6541           backends/multi/multi_alltermslist.cc,
6542           backends/multi/multi_valuelist.cc,backends/remote/,common/,
6543           docs/doxygen_api.conf.in,include/Makefile.mk,include/xapian/,
6544           matcher/msetpostlist.h,matcher/multimatch.cc,
6545           queryparser/queryparser_internal.h,
6546           queryparser/termgenerator_internal.h,tests/internaltest.cc: Convert
6547           to use xapian/intrusive_ptr.h instead of xapian/base.h.
6549 Mon Jun 20 23:55:10 GMT 2011  Olly Betts <olly@survex.com>
6551         * include/xapian/intrusive_ptr.h: Unmodified version of
6552           boost/smart_ptr/intrusive_ptr.hpp as of Boost 1.42 (committed to aid
6553           merging changes in the future).
6555 Mon Jun 20 12:46:47 GMT 2011  Olly Betts <olly@survex.com>
6557         * common/databasereplicator.h,languages/steminternal.h,tests/harness/:
6558           Remove inclusions of xapian/base.h from files which don't use
6559           RefCntPtr or RefCntBase.
6561 Mon Jun 20 11:33:03 GMT 2011  Olly Betts <olly@survex.com>
6563         * include/xapian/base.h: Remove unnecessary check for self-assignment
6564           as it isn't a common case and the current code copes gracefully with
6565           it anyway.
6567 Mon Jun 20 05:25:05 GMT 2011  Olly Betts <olly@survex.com>
6569         * backends/brass/brass_postlist.cc,backends/brass/brass_postlist.h,
6570           backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h:
6571           Reduce size of BrassPostList/ChertPostList objects by moving bool
6572           members together (168->160 bytes for ChertPostList on x86-64 Linux).
6574 Sun Jun 19 13:44:32 GMT 2011  Olly Betts <olly@survex.com>
6576         * tests/internaltest.cc: Fix typo in comment and verbose output.
6578 Sun Jun 19 12:23:43 GMT 2011  Olly Betts <olly@survex.com>
6580         * api/error.cc,generate-exceptions: Rearrange members of Xapian::Error
6581           to reduce its size (from 48 to 40 bytes on x86-64 Linux).
6583 Sun Jun 19 12:22:53 GMT 2011  Olly Betts <olly@survex.com>
6585         * common/pretty.h: Fix comment typo.
6587 Sun Jun 19 04:45:26 GMT 2011  Olly Betts <olly@survex.com>
6589         * INSTALL: Update GCC details - we now recommend 4.3 or newer (was 4.1)
6590           and note that while 3.1 is the hard minimum requirement, the oldest
6591           we've tested with at all recently was 3.3.
6593 Sat Jun 18 14:27:14 GMT 2011  Olly Betts <olly@survex.com>
6595         * queryparser/queryparser.lemony,
6596           queryparser/termgenerator_internal.cc: Fix warning from GCC 3.3.
6598 Sat Jun 18 06:27:03 GMT 2011  Olly Betts <olly@survex.com>
6600         * api/,expand/ortermlist.cc,include/xapian/: Use TermIterator() instead
6601           of TermIterator(NULL), and similarly for other Xapian iterator
6602           classes.
6604 Sat Jun 18 05:16:23 GMT 2011  Olly Betts <olly@survex.com>
6606         * tests/zlib-vg.so: Remove file committed accidentally.
6608 Sat Jun 18 05:07:56 GMT 2011  Olly Betts <olly@survex.com>
6610         * api/,include/xapian/positioniterator.h,
6611           include/xapian/termiterator.h: Reimplementations of PositionIterator
6612           and TermIterator from the end-iterator-proxies branch.  Assignment
6613           operators for these classes now return *this rather than void.
6615 Sat Jun 18 01:49:02 GMT 2011  Olly Betts <olly@survex.com>
6617         * tests/perftest/Makefile.mk: Make sure that perftest isn't run with
6618           libeatmydata preloaded.
6620 Fri Jun 17 07:39:35 GMT 2011  Olly Betts <olly@survex.com>
6622         * docs/deprecation.rst: Tabs to spaces.
6624 Fri Jun 17 07:38:06 GMT 2011  Olly Betts <olly@survex.com>
6626         * docs/deprecation.rst: Add flush() -> commit().
6628 Thu Jun 16 14:40:35 GMT 2011  Olly Betts <olly@survex.com>
6630         * tests/: Add TEST( ) or TEST(! ) around existing reopen() calls to
6631           check that we get true or false returned as we would expect.
6632           (ticket#548)
6634 Thu Jun 16 05:15:28 GMT 2011  Olly Betts <olly@survex.com>
6636         * README: Note licence is GPL *2+*.  Say "SVN/git".  Use trac URL for
6637           wiki.
6639 Wed Jun 15 23:31:03 GMT 2011  Olly Betts <olly@survex.com>
6641         * xapian-core/api/error.cc: Don't include the magic code byte at the
6642           start of Error::get_description()'s return value.
6644 Wed Jun 15 15:51:42 GMT 2011  Olly Betts <olly@survex.com>
6646         * exception_data.pm,generate-exceptions,net/serialise.cc: When
6647           propagating exceptions from a remote backend server, use a numeric
6648           code to represent which exception is being transferred rather than
6649           the name of the type as that can be turned back into an exception
6650           with a simple switch statement.  It's also less data to transfer.
6651           (ticket#471)
6653 Wed Jun 15 14:03:49 GMT 2011  Olly Betts <olly@survex.com>
6655         * backends/remote/remote-database.cc,common/remote-database.h,
6656           common/remoteprotocol.h,docs/remote_protocol.rst,net/remoteserver.cc:
6657           Propagate the return value of Database::reopen() across the link.
6658           (ticket#548)
6660 Wed Jun 15 13:03:56 GMT 2011  Olly Betts <olly@survex.com>
6662         * backends/remote/remote-database.cc,common/remote-database.h,
6663           common/remoteprotocol.h,docs/remote_protocol.rst,net/remoteserver.cc:
6664           Unify REPLY_GREETING and REPLY_UPDATE; send (last_docid - doccount)
6665           instead of last_docid; send (doclen_ubound - doclen_lbound) instead
6666           of doclen_ubound.  This requires a remote protocol major version
6667           bump.  Fix out of date documentation for what's in a REPLY_UPDATE
6668           message.
6670 Wed Jun 15 12:24:07 GMT 2011  Olly Betts <olly@survex.com>
6672         * backends/remote/remote-database.cc: Remove special check which gives
6673           a more helpful error message when a modern client is used against a
6674           remote server running Xapian <= 0.9.6.
6676 Wed Jun 15 11:07:19 GMT 2011  Olly Betts <olly@survex.com>
6678         * net/remoteserver.cc: Remove unnecessary call to reopen() - either we
6679           just called it or we're a writable database and it doesn't do
6680           anything.
6682 Wed Jun 15 09:03:06 GMT 2011  Olly Betts <olly@survex.com>
6684         * xapian-core/backends/remote/remote-database.cc,
6685           xapian-core/common/remote-database.h: Factor out the code to decode
6686           the returned stats into a new apply_stats_update() method.
6688 Wed Jun 15 08:57:12 GMT 2011  Olly Betts <olly@survex.com>
6690         * xapian-core/Makefile.am: Remove check-* from .PHONY as that doesn't
6691           work with a pattern rule.  Fix check-% pattern rule to actually work.
6693 Tue Jun 14 15:11:38 GMT 2011  Olly Betts <olly@survex.com>
6695         * docs/remote_protocol.rst: Fixed typo which reversed the intended
6696           sense.
6698 Tue Jun 14 02:01:42 GMT 2011  Olly Betts <olly@survex.com>
6700         * Makefile.am,configure.ac: Avoid portability warning from automake
6701           about GNU make %-style pattern rules.
6703 Tue Jun 14 01:42:01 GMT 2011  Olly Betts <olly@survex.com>
6705         * configure.ac: Add unnecessary AC_LANG_SOURCE wrapper to shut up
6706           autoconf warning.
6708 Tue Jun 14 01:18:54 GMT 2011  Olly Betts <olly@survex.com>
6710         * configure.ac: Reset LIBRARY_VERSION_INFO to 0:0:0 for the
6711           development series, since the library name is different (it has a
6712           -1.3 suffix).
6714 Mon Jun 13 16:24:20 GMT 2011  Olly Betts <olly@survex.com>
6716         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
6717           docs/deprecation.rst,include/xapian/enquire.h,matcher/multimatch.cc,
6718           net/remoteserver.cc,tests/api_backend.cc: Remove the deprecated
6719           old-style match spy approach of using a MatchDecider.
6721 Mon Jun 13 15:47:57 GMT 2011  Olly Betts <olly@survex.com>
6723         * api/keymaker.cc,docs/deprecation.rst,include/xapian/keymaker.h,
6724           tests/Makefile.am,tests/api_sortingold.cc: Remove deprecated Sorter
6725           class and MultiValueSorter subclass.
6726         * tests/Makefile.mk,tests/perftest/Makefile.mk,
6727           tests/soaktest/Makefile.mk: Make the generated "*_all.h" depend on
6728           the Makefile.am or Makefile.mk which contains the list of files it
6729           is generated from so that it gets regenerated when a file is
6730           removed from that list.
6732 Mon Jun 13 13:18:29 GMT 2011  Olly Betts <olly@survex.com>
6734         * common/omenquireinternal.h: Remove a FIXME - caching the Document
6735           object in MSetItem isn't a replacement for storing the sort_key
6736           now that sort_keys can be computed.
6738 Mon Jun 13 13:07:31 GMT 2011  Olly Betts <olly@survex.com>
6740         * include/xapian/queryparser.h,queryparser/queryparser.cc: Fold the
6741           two forms of QueryParser::add_boolean_prefix() into one method
6742           with a default parameter now that changing the ABI isn't a worry.
6744 Mon Jun 13 12:00:36 GMT 2011  Olly Betts <olly@survex.com>
6746         * docs/deprecation.rst: Non-pythonic iterators have been removed.
6747           (ticket#255)
6749 Mon Jun 13 10:40:30 GMT 2011  Olly Betts <olly@survex.com>
6751         * docs/deprecation.rst: Python Stem_get_available_languages() has now
6752           been removed.
6754 Mon Jun 13 10:38:49 GMT 2011  Olly Betts <olly@survex.com>
6756         * docs/deprecation.rst,include/xapian/enquire.h: Remove deprecated
6757           default value for second parameter to Enquire::set_sort_by_value()
6758           and friends.
6760 Mon Jun 13 09:30:15 GMT 2011  Olly Betts <olly@survex.com>
6762         * api/omdatabase.cc,backends/brass/brass_database.cc,
6763           backends/brass/brass_database.h,backends/chert/chert_database.cc,
6764           backends/chert/chert_database.h,backends/database.cc,
6765           backends/inmemory/inmemory_database.cc,
6766           backends/inmemory/inmemory_database.h,
6767           backends/remote/remote-database.cc,common/,
6768           include/xapian/database.h: Database::reopen() now returns true if
6769           the database may have been reopened.  (ticket#548)
6771 Mon Jun 13 09:01:33 GMT 2011  Olly Betts <olly@survex.com>
6773         * docs/admin_notes.rst: Add note about xapian-chert-update.
6775 Mon Jun 13 08:47:06 GMT 2011  Olly Betts <olly@survex.com>
6777         * bin/xapian-check-flint.cc,bin/xapian-check-flint.h: Remove two
6778           flint-specific files I missed.
6780 Mon Jun 13 08:42:11 GMT 2011  Olly Betts <olly@survex.com>
6782         * HACKING,INSTALL,Makefile.am,api/compactor.cc,api/replication.cc,
6783           backends/Makefile.mk,backends/brass/brass_compact.cc,
6784           backends/chert/chert_compact.cc,backends/databasereplicator.cc,
6785           backends/dbfactory.cc,backends/dir_contents,backends/flint/,
6786           backends/slowvaluelist.h,bin/,common/database.h,common/pretty.h,
6787           common/unaligned.h,configure.ac,docs/,include/xapian/dbfactory.h,
6788           include/xapian/valueiterator.h,include/xapian/version_h.cc,tests/,
6789           tests/harness/,tests/queryparsertest.cc,tests/termgentest.cc,
6790           tests/testdata/flint-0.9.9/,tests/testdata/flint-1.0.1/,
6791           tests/testdata/flint-1.0.2/: Remove flint backend.
6793 Mon Jun 13 06:09:29 GMT 2011  Olly Betts <olly@survex.com>
6795         * bin/Makefile.mk: Remove lingering reference to quartz (rules to
6796           generate man pages for quartzdump, etc).
6798 Mon Jun 13 05:46:00 GMT 2011  Olly Betts <olly@survex.com>
6800         * Makefile.am,tests/Makefile.am: Just use a GNU-make-specific pattern
6801           rules to forward check-* targets from the top level to the tests
6802           subdirectory.  It's clear we aren't keeping the explicit list of
6803           target forwarding rules up to date, and this is just a convenience
6804           so not worth a lot of maintenance effort.
6806 Mon Jun 13 05:01:33 GMT 2011  Olly Betts <olly@survex.com>
6808         * configure.ac: Update version to 1.3.0 and add -1.3 suffix for
6809           library and /xapian-1.3 suffix to include file installation
6810           directory.
6812 Mon Jun 13 04:56:13 GMT 2011  Olly Betts <olly@survex.com>
6814         * unicode/tclUniData.cc: Upgrade to Unicode 6.0.0 (ticket#497).
6815         * tests/api_unicode.cc: Extend testcases to check for assorted changes
6816           and additions in Unicode 6.0.0.
6818 Sun Jun 12 11:54:45 GMT 2011  Olly Betts <olly@survex.com>
6820         * NEWS: Final update for 1.2.6.
6822 Sat Jun 11 10:11:23 GMT 2011  Olly Betts <olly@survex.com>
6824         * api/omdocument.cc: Update LOGCALL(MATCH, ...) to LOGCALL(DB, ...).
6825           Convert LOGLINE() at start of method to LOGCALL().
6827 Sat Jun 11 09:57:00 GMT 2011  Olly Betts <olly@survex.com>
6829         * api/omdatabase.cc: Remove self-assignment check from
6830           Database::operator= since this is an uncommon code path and
6831           RefCntPtr ensures that self-assignment of the internals is
6832           safe.
6834 Sat Jun 11 08:48:10 GMT 2011  Olly Betts <olly@survex.com>
6836         * api/omdatabase.cc,backends/brass/brass_cursor.h,
6837           backends/chert/chert_cursor.h,backends/flint/flint_cursor.h,
6838           backends/flint/flint_table.cc,backends/flint/flint_values.cc,
6839           backends/inmemory/inmemory_database.cc,bin/xapian-check-brass.cc,
6840           bin/xapian-check-chert.cc,bin/xapian-chert-update.cc,
6841           matcher/queryoptimiser.cc,matcher/valuegepostlist.h: Use string() or
6842           std::string() rather than "".
6843         * common/remoteconnection.h,net/tcpserver.cc: Use 2 parameter form of
6844           Error subclass ctors when the context is "".
6845         * api/replication.cc,backends/flint/flint_database.cc,
6846           common/remoteconnection.h,net/replicatetcpclient.cc,
6847           net/replicatetcpserver.cc: Make context parameter of
6848           RemoteConnection ctor optional.
6849         * common/leafpostlist.h: Say 'empty' rather than '""' in a
6850           documentation comment.
6851         * examples/simpleindex.cc: Use '.resize(0)' rather than '= ""'.
6853 Sat Jun 11 07:01:41 GMT 2011  Olly Betts <olly@survex.com>
6855         * api/,backends/brass/,backends/chert/,backends/flint/,
6856           backends/remote/remote-database.cc,common/,include/xapian/,matcher/,
6857           net/remoteserver.cc,net/serialise.cc: Consistently use "slot" in
6858           variable names for value slots, rather than valueno, valno, valueid
6859           or value.  The only exception remaining is a protected member of
6860           Xapian::StringValueRangeProcessor since that's really part of the
6861           public API.
6863 Fri Jun 10 11:55:45 GMT 2011  Olly Betts <olly@survex.com>
6865         * NEWS,configure.ac: Update in preparation for 1.2.6.
6867 Fri Jun 10 09:05:38 GMT 2011  Olly Betts <olly@survex.com>
6869         * examples/NEWS,examples/TODO: Remove files which are unused since the
6870           examples were merged into xapian-core.
6872 Fri Jun 10 09:03:33 GMT 2011  Olly Betts <olly@survex.com>
6874         * Makefile.am: Ship ChangeLog.0 in the tarball.
6876 Fri Jun 10 05:19:24 GMT 2011  Olly Betts <olly@survex.com>
6878         * tests/Makefile.am: Actually include soaktest/Makefile.mk.
6880 Thu Jun 09 23:26:52 GMT 2011  Olly Betts <olly@survex.com>
6882         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Define
6883           XAPIAN_DEPRECATED_CLASS to empty for doxygen.
6885 Thu Jun 09 22:21:29 GMT 2011  Olly Betts <olly@survex.com>
6887         * docs/overview.rst: Document "remote" in stub databases.
6889 Thu Jun 09 15:23:12 GMT 2011  Olly Betts <olly@survex.com>
6891         * HACKING,docs/deprecation.rst,include/xapian/deprecated.h,
6892           include/xapian/keymaker.h: Add XAPIAN_DEPRECATED_CLASS macro
6893           for marking a class as deprecated, so we don't have to call
6894           XAPIAN_DEPRECATED() with no parameters.
6896 Thu Jun 09 14:03:17 GMT 2011  Olly Betts <olly@survex.com>
6898         * HACKING: Clarify wording about PATH.
6900 Thu Jun 09 13:04:53 GMT 2011  Olly Betts <olly@survex.com>
6902         * docs/queryparser.rst,include/xapian/queryparser.h,
6903           queryparser/queryparser.cc,queryparser/queryparser.lemony,
6904           queryparser/queryparser_internal.h,tests/queryparsertest.cc: Add
6905           QueryParser::set_max_wildcard_expansion() method to allow limiting
6906           the number of terms a wildcard can expand to.  Implementation mostly
6907           from a patch by Adam Sjøgren in ticket#350.
6909 Tue Jun 07 23:16:33 GMT 2011  Dan Colish <dcolish@gmail.com>
6911         * backends/brass/brass_changesetapplier.h,
6912           backends/chert/chert_changesetapplier.h,
6913           backends/flint/flint_changesetapplier.h: Remove dead code
6915 Thu Jun 02 13:21:28 GMT 2011  Olly Betts <olly@survex.com>
6917         * AUTHORS: Add recent bug reporters.
6919 Thu Jun 02 11:03:57 GMT 2011  Olly Betts <olly@survex.com>
6921         * queryparser/queryparser.lemony: If default_op is OP_NEAR or
6922           OP_PHRASE then disable stemming of the terms, since we don't index
6923           positional information for stemmed terms by default.
6924         * tests/queryparsertest.cc: Adjust near1 and phrase1 to act as
6925           regression tests for this fix.
6927 Thu Jun 02 02:58:58 GMT 2011  Olly Betts <olly@survex.com>
6929         * backends/brass/brass_spelling.cc,backends/brass/brass_spelling.h,
6930           backends/chert/chert_spelling.cc,backends/chert/chert_spelling.h,
6931           backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h:
6932           Fix bug Nikita Smetanin spotted with adding a word which has the
6933           same trigram in an even number of times.
6934         * tests/api_spelling.cc: Add regression test spell8.
6936 Wed Jun 01 14:11:38 GMT 2011  Olly Betts <olly@survex.com>
6938         * backends/flint_lock.cc: Kill the child process which holds the lock
6939           with SIGKILL as that can't be ignored, whereas SIGHUP can be in some
6940           cases it seems.
6942 Wed Jun 01 12:12:14 GMT 2011  Olly Betts <olly@survex.com>
6944         * docs/quickstartexpand.cc.html,docs/quickstartindex.cc.html,
6945           docs/quickstartsearch.cc.html: Reinstate the old HTML versions
6946           of these files.
6948 Wed Jun 01 12:09:55 GMT 2011  Olly Betts <olly@survex.com>
6950         * docs/queryparser.rst,docs/remote_protocol.rst: Fix literal hard
6951           spaces in input to just be spaces.
6953 Wed Jun 01 12:06:26 GMT 2011  Olly Betts <olly@survex.com>
6955         * docs/quickstart.rst: Fix sub-heading run in to previous paragraph.
6957 Wed Jun 01 12:04:52 GMT 2011  Olly Betts <olly@survex.com>
6959         * docs/remote.rst: Replace out-dated list of xapian-tcpsrv's command
6960           line options with a reference to --help and the man page.  Tweak
6961           wording in a few places.
6963 Wed Jun 01 11:54:37 GMT 2011  Olly Betts <olly@survex.com>
6965         * docs/overview.rst: Change omrset to rset.  Remove some bogus `` left
6966           over from fixing definition list formatting.
6968 Wed Jun 01 11:38:09 GMT 2011  Olly Betts <olly@survex.com>
6970         * docs/stemming.rst: Comment out bogus claim that there are stopword
6971           lists in xapian-data (the lack of stopword lists is already
6972           ticket#269).
6974 Wed Jun 01 11:29:58 GMT 2011  Olly Betts <olly@survex.com>
6976         * docs/matcherdesign.rst,docs/stemming.rst: Convert more arrows to
6977           Unicode.
6978         * docs/stemming.rst: Fix some missing paragraph breaks.
6980 Wed Jun 01 11:18:25 GMT 2011  Olly Betts <olly@survex.com>
6982         * docs/intro_ir.rst: Use Unicode right arrow.
6984 Wed Jun 01 10:38:27 GMT 2011  Olly Betts <olly@survex.com>
6986         * docs/: Revert quickstart*.cc.html to being HTML rather than .rst as
6987           the .rst version lose the syntax highlighting.  Update svn:ignore.
6989 Wed Jun 01 10:27:11 GMT 2011  Olly Betts <olly@survex.com>
6991         * docs/intro_ir.rst: Sort out the remaining formatting issues.
6993 Wed Jun 01 08:05:05 GMT 2011  Olly Betts <olly@survex.com>
6995         * docs/intro_ir.rst: More markup fixes.
6997 Wed Jun 01 06:16:56 GMT 2011  Olly Betts <olly@survex.com>
6999         * docs/tests.rst: Use generated contents list instead of manual one.
7001 Wed Jun 01 06:16:13 GMT 2011  Olly Betts <olly@survex.com>
7003         * docs/index.rst,docs/internals.rst: Centre links at top; Sort out
7004           <hr> to be full width.
7006 Wed Jun 01 03:23:20 GMT 2011  Olly Betts <olly@survex.com>
7008         * docs/bm25.rst: Sort out inline equations.
7010 Tue May 31 15:21:10 GMT 2011  Olly Betts <olly@survex.com>
7012         * docs/spelling.rst: Add link to Omega documentation.
7014 Tue May 31 07:52:19 GMT 2011  Olly Betts <olly@survex.com>
7016         * docs/overview.rst,docs/quickstart.rst,docs/remote_protocol.rst: More
7017           .rst formatting fixes.
7019 Tue May 31 05:02:48 GMT 2011  Olly Betts <olly@survex.com>
7021         * docs/overview.rst: More .rst fixes.
7023 Tue May 31 04:32:52 GMT 2011  Olly Betts <olly@survex.com>
7025         * docs/: More .rst fixes.
7027 Tue May 31 04:11:27 GMT 2011  Olly Betts <olly@survex.com>
7029         * docs/Makefile.am,docs/code_structure.rst: Revert code_structure.html
7030           conversion - this file is generated by a script.
7032 Tue May 31 03:56:39 GMT 2011  Olly Betts <olly@survex.com>
7034         * docs/install.rst,docs/stemming.rst,docs/tests.rst: Fix up some .rst
7035           conversion issues.
7037 Tue May 31 03:36:49 GMT 2011  Dan Colish <dcolish@gmail.com>
7039         * docs/remote_protocol.rst docs/quickstart.rst docs/remote.rst
7040         docs/internals.rst docs/scalability.rst
7041         docs/quickstartsearch.cc.rst
7042         docs/bm25.rst docs/install.rst docs/quickstartindex.cc.rst
7043         docs/index.rst docs/matcherdesign.rst docs/quickstartexpand.cc.rst
7044         docs/queryparser.rst docs/stemming.rst docs/intro_ir.rst
7045         docs/code_structure.rst docs/Makefile.am docs/tests.rst
7046         docs/overview.rst: Bulk port all remaining documentation to RST.
7048 Sun May 29 07:04:42 GMT 2011  Olly Betts <olly@survex.com>
7050         * docs/postingsource.rst: Add PostingSource example.  (ticket#503)
7052 Sun May 29 05:19:40 GMT 2011  Olly Betts <olly@survex.com>
7054         * include/xapian/database.h: Add @exception InvalidArgumentError for
7055           Database::get_document() (ticket#542).
7057 Fri May 27 05:36:28 GMT 2011  Olly Betts <olly@survex.com>
7059         * NEWS: Update from ChangeLog.
7061 Thu May 26 02:44:07 GMT 2011  Olly Betts <olly@survex.com>
7063         * include/xapian/queryparser.h: FIXME:1.1.3 -> FIXME:1.3.
7065 Wed May 25 14:58:37 GMT 2011  Olly Betts <olly@survex.com>
7067         * docs/queryparser.html: Document the precedence order of operators.
7069 Fri May 20 04:13:54 GMT 2011  Olly Betts <olly@survex.com>
7071         * examples/simpleindex.cc: Add short description to usage message.
7073 Tue May 17 21:44:55 GMT 2011  Olly Betts <olly@survex.com>
7075         * docs/scalability.html: Bring up-to-date.
7077 Wed May 11 01:34:34 GMT 2011  Olly Betts <olly@survex.com>
7079         * AUTHORS: Add Scott Zhang for mingw fixes.
7081 Wed May 11 01:30:54 GMT 2011  Olly Betts <olly@survex.com>
7083         * net/progclient.cc,net/tcpserver.cc: Need <cstdio> for sprintf on
7084           __WIN32__ and cygwin.
7086 Wed May 11 01:22:07 GMT 2011  Olly Betts <olly@survex.com>
7088         * configure.ac: Define __MSVCRT_VERSION__ to 0x0601 under mingw so
7089           we get _ftime64().
7091 Wed May 11 01:19:14 GMT 2011  Olly Betts <olly@survex.com>
7093         * common/closefrom.cc,common/closefrom.h: We don't need closefrom()
7094           under __WIN32__ currently, so disable it there as it doesn't
7095           compile under mingw.
7097 Mon May 09 20:13:17 GMT 2011  Olly Betts <olly@survex.com>
7099         * examples/delve.cc: Report has_positions().
7101 Thu Apr 07 05:38:36 GMT 2011  Dan Colish <dcolish@gmail.com>
7103         * matcher/phrasepostlist.cc, matcher/queryoptimiser.cc,
7104           matcher/exactphrasepostlist.cc, matcher/exactphrasepostlist.h,
7105           matcher/phrasepostlist.h: Remove temporary vector in queryoptimiser
7106           and replace with iterators.
7108 Wed Apr 06 10:27:41 GMT 2011  Richard Boulton <richard@tartarus.org>
7110         * docs/admin_notes.rst: Remove the word "also", which makes sense
7111           when read in context of the previous section, but is confusing if
7112           the paragraph is read standalone, and isn't necessary.
7114 Mon Apr 04 14:41:33 GMT 2011  Olly Betts <olly@survex.com>
7116         * NEWS: Final update for 1.2.5.
7118 Mon Apr 04 14:06:56 GMT 2011  Olly Betts <olly@survex.com>
7120         * backends/brass/brass_version.cc: Remove ? from comment - the brass
7121           version change is definitely going to be in 1.2.5.
7123 Mon Apr 04 13:57:23 GMT 2011  Olly Betts <olly@survex.com>
7125         * NEWS: Bump release date.
7127 Sat Mar 26 14:49:41 GMT 2011  Olly Betts <olly@survex.com>
7129         * INSTALL: Fix typo in previous commit.
7131 Sat Mar 26 14:03:15 GMT 2011  Olly Betts <olly@survex.com>
7133         * INSTALL: Note how to build for a non-default arch on a multi-arch
7134           platform.
7136 Sat Mar 26 13:22:49 GMT 2011  Olly Betts <olly@survex.com>
7138         * NEWS,configure.ac: Update for 1.2.5.
7140 Sat Mar 26 12:28:38 GMT 2011  Olly Betts <olly@survex.com>
7142         * AUTHORS: Update.
7144 Sat Mar 26 10:33:19 GMT 2011  Olly Betts <olly@survex.com>
7146         * backends/brass/brass_postlist.cc,backends/brass/brass_postlist.h,
7147           backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h,
7148           backends/inmemory/inmemory_database.h: Address issues highlighted
7149           by clang++ warnings.
7151 Fri Mar 25 05:36:41 GMT 2011  Olly Betts <olly@survex.com>
7153         * docs/tests.html: Slight tweak to improve up-to-date-ness, but more
7154           work would be useful.
7156 Fri Mar 25 05:30:56 GMT 2011  Olly Betts <olly@survex.com>
7158         * docs/matcherdesign.html: Update - quite a bit has changed in the
7159           matcher since this was last updated!
7161 Thu Mar 24 23:31:57 GMT 2011  Olly Betts <olly@survex.com>
7163         * api/replication.cc,common/replication.h: Pass reader_close_time as
7164           double everywhere, rather than truncating it to int.  Include
7165           reader_close_time parameters in debug logging.  Document
7166           reader_close_time in doxygen comments.
7168 Tue Mar 22 15:36:25 GMT 2011  Dan Colish <dcolish@gmail.com>
7170         * backends/brass/brass_database.h:
7171           Remove left over copyright.
7173 Tue Mar 22 04:54:12 GMT 2011  Dan Colish <dcolish@gmail.com>
7175         * backends/brass/brass_btreebase.cc,backends/chert/chert_btreebase.cc,
7176           backends/flint/flint_btreebase.cc:
7177           Correct comments for which revision is packed when writing base files
7179 Tue Mar 22 03:18:19 GMT 2011  Dan Colish <dcolish@gmail.com>
7181         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7182           backends/flint/flint_database.cc,include/xapian/database.h:
7183           Remove FIXME and comments for DB_OVERWRITE.
7185 Tue Mar 22 01:18:38 GMT 2011  Dan Colish <dcolish@gmail.com>
7187         * backends/brass/,backends/chert/chert_database.cc,
7188           backends/flint/flint_database.cc,tests/api_replicate.cc:
7189           Clean up changesets when replicating. Add test coverage for this
7190           feature. Allow XAPIAN_MAX_CHANGESETS to be altered without reopening
7191           the database. Closes Ticket #278.
7193 Mon Mar 21 01:50:41 GMT 2011  Olly Betts <olly@survex.com>
7195         * docs/bm25.html: Add a link to the 1976 Robertson/Sparck Jones paper.
7197 Wed Mar 16 05:56:58 GMT 2011  Dan Colish <dcolish@gmail.com>
7199         * bin/xapian-check-flint.cc: Initialize did and current_wdf to prevent
7200           uninitalized usage and compiler warnings.
7202 Mon Mar 14 03:20:18 GMT 2011  Olly Betts <olly@survex.com>
7204         * common/debuglog.cc,common/debuglog.h: Rename indent member to
7205           indent_level so it doesn't clash with indent() method.
7207 Mon Mar 14 02:44:24 GMT 2011  Olly Betts <olly@survex.com>
7209         * common/debuglog.cc,common/debuglog.h: Use an integer counter for the
7210           indent rather than a std::string which we add/remove spaces to/from.
7211           This is cleaner, but also there seems to be an issue with having a
7212           std::string member in a global static object on OS X.
7214 Fri Mar 11 01:12:04 GMT 2011  Olly Betts <olly@survex.com>
7216         * HACKING: Document using '{ }' rather than ';' for empty loop bodies.
7218 Fri Mar 11 01:02:47 GMT 2011  Olly Betts <olly@survex.com>
7220         * HACKING: Remove bogus ; after method definition in code example.
7222 Fri Mar 11 00:07:22 GMT 2011  Olly Betts <olly@survex.com>
7224         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7225           backends/flint/flint_database.cc: Factor out literal constant as
7226           MAX_OPEN_RETRIES.
7228 Wed Mar 09 14:54:06 GMT 2011  Olly Betts <olly@survex.com>
7230         * tests/api_anydb.cc: Improve the new testcases a bit.
7232 Wed Mar 09 14:11:59 GMT 2011  Olly Betts <olly@survex.com>
7234         * api/omenquire.cc,common/esetinternal.h,common/omenquireinternal.h,
7235           expand/esetinternal.cc,expand/expandweight.cc,
7236           include/xapian/enquire.h,tests/api_anydb.cc: Enquire::get_eset() now
7237           accepts a min_wt argument to allow the minimum wanted weight to be
7238           specified.  Default is 0, which gives the previous behaviour.
7240 Wed Mar 09 00:00:25 GMT 2011  Olly Betts <olly@survex.com>
7242         * include/xapian/termiterator.h: Fix misspelling in doc comment.
7244 Tue Mar 08 06:58:14 GMT 2011  Olly Betts <olly@survex.com>
7246         * backends/brass/brass_table.cc,backends/brass/brass_table.h,
7247           backends/chert/chert_table.cc,backends/chert/chert_table.h,
7248           backends/flint/flint_table.cc,backends/flint/flint_table.h: Use
7249           defined constant BLOCK_CAPACITY instead of hardcoded 4 (ticket#536).
7251 Tue Mar 08 05:56:42 GMT 2011  Olly Betts <olly@survex.com>
7253         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
7254           backends/flint/flint_table.cc: If we try to delete an old base file
7255           and it isn't there, just continue rather than throwing an exception.
7256           We wanted to get rid of it anyway, and it may be NFS issues telling
7257           us the wrong thing.  In particular, DatabaseCoruptError was rather
7258           a pessimistic assessment.
7260 Tue Mar 08 05:55:48 GMT 2011  Olly Betts <olly@survex.com>
7262         * common/io_utils.h: Note that io_unlink() may return false when it
7263           should have returned true on NFS.
7265 Sun Mar 06 23:25:47 GMT 2011  Olly Betts <olly@survex.com>
7267         * common/io_utils.cc,common/io_utils.h: Add io_unlink().
7268         * backends/brass/brass_database.cc,backends/brass/brass_table.cc,
7269           backends/chert/chert_database.cc,backends/chert/chert_table.cc,
7270           backends/flint/flint_database.cc,backends/flint/flint_table.cc:
7271           Use io_unlink() instead of sys_unlink_if_exists().
7273 Sun Mar 06 22:26:36 GMT 2011  Olly Betts <olly@survex.com>
7275         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7276           backends/flint/flint_database.cc: If DANGEROUS mode is turned on,
7277           then actually set the flag for this in replication changes files
7278           (the reader will currently throw an exception, but that's better
7279           than quietly handling them incorrectly).
7281 Sat Mar 05 12:58:31 GMT 2011  Olly Betts <olly@survex.com>
7283         * NEWS: Update from ChangeLog.
7285 Sat Mar 05 12:49:16 GMT 2011  Olly Betts <olly@survex.com>
7287         * NEWS: Fix a few typos.
7289 Sat Mar 05 06:19:25 GMT 2011  Olly Betts <olly@survex.com>
7291         * NEWS: Fix typo in old entry.
7293 Sat Mar 05 06:16:41 GMT 2011  Olly Betts <olly@survex.com>
7295         * common/remoteconnection.h: Internal doc comment improvements: Fix
7296           typo, finish truncated sentence, wrap lines to 80 columns.
7298 Sat Mar 05 02:59:35 GMT 2011  Olly Betts <olly@survex.com>
7300         * bin/xapian-replicate.cc: Make sure port number is specified.  Add
7301           "(required)" after --host and --port in help.
7303 Sat Mar 05 02:50:04 GMT 2011  Olly Betts <olly@survex.com>
7305         * docs/replication.rst: Mention new defaulting of -m.
7307 Sat Mar 05 02:44:37 GMT 2011  Olly Betts <olly@survex.com>
7309         * bin/xapian-replicate.cc: If --master isn't specified, default to
7310           DATABASE.
7312 Sat Mar 05 00:14:21 GMT 2011  Olly Betts <olly@survex.com>
7314         * bin/xapian-replicate.cc: Give an error if the host isn't set, rather
7315           than trying to connect to an empty hostname, which gives the error
7316           "Couldn't resolve host  (Unknown server error)", which might confuse
7317           if you fail to notice the double space and realise what it means.
7319 Fri Mar 04 17:20:13 GMT 2011  Richard Boulton <richard@tartarus.org>
7321         * docs/replication.rst: Update documentation to make it clear that
7322           users shouldn't try to create the destination directory for
7323           replication themselves.
7325 Thu Mar 03 11:10:10 GMT 2011  Olly Betts <olly@survex.com>
7327         * docs/intro_ir.html: Fix typo in author's name.
7329 Thu Mar 03 11:06:30 GMT 2011  Olly Betts <olly@survex.com>
7331         * docs/intro_ir.html: Update link to a paper.  Update text about book
7332           "to be published in 2008".
7334 Tue Mar 01 11:39:40 GMT 2011  Olly Betts <olly@survex.com>
7336         * NEWS: Update from ChangeLog.
7338 Mon Feb 28 12:40:24 GMT 2011  Olly Betts <olly@survex.com>
7340         * matcher/multimatch.cc: Avoid leaking postlist tree if an exception
7341           is thrown during the match.
7343 Wed Feb 23 15:26:56 GMT 2011  Olly Betts <olly@survex.com>
7345         * docs/Makefile.am,docs/index.html: Process collapsing.rst and link
7346           it into the documentation.
7348 Wed Feb 23 15:22:06 GMT 2011  Olly Betts <olly@survex.com>
7350         * docs/collapsing.rst: Add missing document (for some reason this file
7351           was empty in SVN, but present in my tree under a different name, and
7352           not checked in).
7354 Mon Feb 21 14:49:06 GMT 2011  Olly Betts <olly@survex.com>
7356         * docs/deprecation.rst: Deprecate MSet.items and ESet.items.
7358 Mon Feb 21 14:06:21 GMT 2011  Olly Betts <olly@survex.com>
7360         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7361           backends/flint/flint_database.cc,common/remoteconnection.h,
7362           net/remoteconnection.cc: Pass a file descriptor to
7363           RemoteConnection::send_file() to avoid a race between the caller
7364           checking if a file exists and send_file() trying to open it to send
7365           it.
7367 Mon Feb 21 13:50:06 GMT 2011  Olly Betts <olly@survex.com>
7369         * queryparser/lemon.c: Fix issues detected by DACA cppcheck run on the
7370           Debian archive.
7372 Mon Feb 21 13:30:55 GMT 2011  Olly Betts <olly@survex.com>
7374         * tests/api_anydb.cc: Fix spaceterms1 which was never running one part
7375           of the testcase (and had been that way for years).  Fix an
7376           off-by-one error in the enabled code.
7378 Mon Feb 21 13:05:36 GMT 2011  Olly Betts <olly@survex.com>
7380         * tests/api_backend.cc: Add some test coverage for
7381           DatabaseModifiedError in get_mset().
7383 Mon Feb 21 12:03:35 GMT 2011  Olly Betts <olly@survex.com>
7385         * NEWS: Fix typo in old entry.
7387 Mon Feb 21 11:36:07 GMT 2011  Olly Betts <olly@survex.com>
7389         * examples/quest.cc: Report any spelling correction (requires the
7390           database contains spelling data of course).
7392 Wed Feb 16 13:11:03 GMT 2011  Olly Betts <olly@survex.com>
7394         * include/xapian/enquire.h: Add doxygen markup so alternative
7395           overloaded forms of Enquire::get_mset() appear in the API
7396           documentation.
7398 Wed Feb 09 14:24:57 GMT 2011  Olly Betts <olly@survex.com>
7400         * docs/admin_notes.rst: Up to darte for 1.2.5.  Minor wording
7401           improvements.  Mention copydatabase --no-renumber.
7403 Wed Feb 09 14:06:55 GMT 2011  Olly Betts <olly@survex.com>
7405         * examples/copydatabase.cc: Add --no-renumber option.
7407 Tue Feb 01 11:17:58 GMT 2011  Olly Betts <olly@survex.com>
7409         * configure.ac: -Wstrict-null-sentinel was added in GCC 4.0.1 so
7410           doesn't work with GCC 4.0.0.  For simplicity, only enable it for
7411           GCC >= 4.1.
7413 Tue Feb  1 08:22:52 GMT 2011  Olly Betts <olly@survex.com>
7415         * docs/deprecation.rst: Add $set{spelling,true}.
7417 Thu Jan 20 14:52:53 GMT 2011  Olly Betts <olly@survex.com>
7419         * backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h,
7420           backends/flint/flint_table.cc: Don't read the bitmaps from the base
7421           files when opening a database for reading (cross-port of equivalent
7422           change to chert).
7424 Thu Jan 20 14:37:10 GMT 2011  Olly Betts <olly@survex.com>
7426         * backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
7427           backends/brass/brass_table.cc: Don't read the bitmaps from the base
7428           files when opening a database for reading (cross-port of equivalent
7429           change to chert).
7431 Thu Jan 20 14:21:10 GMT 2011  Olly Betts <olly@survex.com>
7433         * backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h,
7434           backends/chert/chert_table.cc: Don't read the bitmaps from the base
7435           files when opening a database for reading.
7437 Thu Jan 20 01:57:02 GMT 2011  Olly Betts <olly@survex.com>
7439         * backends/brass/brass_database.cc: Optimise not to update doclength
7440           when it hasn't changed (cross-port of equivalent change to chert).
7442 Thu Jan 20 01:36:51 GMT 2011  Olly Betts <olly@survex.com>
7444         * backends/chert/chert_database.cc: Optimise not to update doclength
7445           when it hasn't changed.
7447 Wed Jan 19 03:50:18 GMT 2011  Olly Betts <olly@survex.com>
7449         * tests/api_compact.cc: Close ofstream objects used to write out stub
7450           files for testing before we run the actual compaction, to avoid
7451           issues on Microsoft Windows (ticket#525).
7453 Wed Jan 19 01:01:38 GMT 2011  Olly Betts <olly@survex.com>
7455         * HACKING: Snapshots and releases are now bootstrapped with autoconf
7456           2.68 and libtool 2.4.  Prune information about reasons for needing
7457           really old autotools versions when there's a reason to need a newer
7458           version anyway.
7460 Sat Jan 15 11:10:26 GMT 2011  Olly Betts <olly@survex.com>
7462         * NEWS: Update from ChangeLog and 1.0.23.
7464 Sat Jan 15 10:28:10 GMT 2011  Olly Betts <olly@survex.com>
7466         * bin/xapian-chert-update.cc: Fix to handle value slot entries in the
7467           termlist table.
7469 Wed Jan 12 23:49:21 GMT 2011  Olly Betts <olly@survex.com>
7471         * bin/xapian-chert-update.cc: Adjust keys for doclength chunks too.
7473 Wed Jan 12 13:37:30 GMT 2011  Olly Betts <olly@survex.com>
7475         * AUTHORS,bin/xapian-chert-update.cc: Fix to also rewrite docids in
7476           value chunk keys (reported by Luca Barbieri on xapian-discuss).
7478 Tue Jan 11 08:41:02 GMT 2011  Olly Betts <olly@survex.com>
7480         * docs/deprecation.rst: Note removal of if idx in mset.
7482 Tue Jan 11 08:30:29 GMT 2011  Olly Betts <olly@survex.com>
7484         * docs/deprecation.rst: PostingSource now offers a replacement for
7485           Enquire::set_bias().
7487 Mon Jan 10 09:40:24 GMT 2011  Olly Betts <olly@survex.com>
7489         * api/compactor.cc: Add missing header <ctime> for time() (ticket#530).
7491 Sun Jan 09 23:14:02 GMT 2011  Olly Betts <olly@survex.com>
7493         * api/compactor.cc: Use msvc_posix_rename() under __WIN32__ to
7494           atomically update stub file after compaction (ticket#525).
7496 Thu Dec 23 13:00:43 GMT 2010  Olly Betts <olly@survex.com>
7498         * queryparser/queryparser.lemony: Whitespace consistency tweak.
7500 Thu Dec 23 11:01:26 GMT 2010  Olly Betts <olly@survex.com>
7502         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Handle
7503           NEAR/<offset> and ADJ/<offset> where offset isn't an integer the same
7504           way at the end of the query as in the middle.
7506 Tue Dec 21 10:28:08 GMT 2010  Olly Betts <olly@survex.com>
7508         * net/tcpserver.cc: If we can't bind to the specified port because it
7509           is a privileged one, exit with code 77 (EX_NOPERM) to make it easier
7510           to automatically handle failure when starting the server from a
7511           script.
7513 Tue Dec 21 07:43:52 GMT 2010  Olly Betts <olly@survex.com>
7515         * docs/index.html: Add link to main website.
7517 Tue Dec 21 07:40:57 GMT 2010  Olly Betts <olly@survex.com>
7519         * docs/index.html,docs/overview.html: Update links to wiki.xapian.org
7520           to point to trac.xapian.org/wiki instead.
7522 Mon Dec 20 10:02:06 GMT 2010  Richard Boulton <richard@tartarus.org>
7524         * docs/deprecation.rst: Add note about botched removal of python's
7525           Enquire.get_matching_terms (now fully removed).
7527 Sun Dec 19 12:40:12 GMT 2010  Olly Betts <olly@survex.com>
7529         * NEWS: Update release date.
7531 Sat Dec 18 13:17:52 GMT 2010  Olly Betts <olly@survex.com>
7533         * NEWS,configure.ac: Update for 1.2.4.
7535 Wed Dec 15 11:56:22 GMT 2010  Olly Betts <olly@survex.com>
7537         * NEWS: Update.
7539 Tue Dec 14 12:46:36 GMT 2010  Olly Betts <olly@survex.com>
7541         * HACKING,tests/runtest.in: Add XAPIAN_TESTSUITE_LD_PRELOAD hook to
7542           allow libeatmydata to easily be used when running the testsuite.
7544 Mon Dec 13 14:28:19 GMT 2010  Olly Betts <olly@survex.com>
7546         * include/xapian/: Make it more explicitly clear that PostingIterator,
7547           PositionIterator, and TermIterator's skip_to methods advance (and
7548           hence shouldn't be expected to allow you to "rewind" the stream).
7550 Mon Dec 13 14:18:18 GMT 2010  Olly Betts <olly@survex.com>
7552         * include/xapian/database.h: "network databases" -> "remote databases".
7554 Mon Dec 13 14:10:08 GMT 2010  Olly Betts <olly@survex.com>
7556         * net/remoteserver.cc: If the message parameter only contains a
7557           string then we can just use it as is.
7559 Mon Dec 13 13:34:30 GMT 2010  Olly Betts <olly@survex.com>
7561         * backends/remote/remote-database.cc,common/remote-database.h,
7562           common/remoteprotocol.h,common/remoteserver.h,
7563           docs/remote_protocol.html,net/remoteserver.cc,tests/api_metadata.cc:
7564           Add support for iterating metadata keys with the remote backend.
7565           This change necessitated a minor version bump in the remote protocol.
7567 Sun Dec 12 12:24:48 GMT 2010  Olly Betts <olly@survex.com>
7569         * weight/tradweight.cc: Fix calculation order to avoid inconsistent
7570           weights due to rounding for TradWeight(0).
7571         * tests/api_backend.cc: Add regression test tradweight2.
7573 Sat Dec 11 11:38:32 GMT 2010  Olly Betts <olly@survex.com>
7575         * AUTHORS: Update thanks list with bug reporters and patch submitters.
7577 Thu Dec 09 03:59:42 GMT 2010  Olly Betts <olly@survex.com>
7579         * NEWS: Update from ChangeLog.
7581 Thu Dec 09 03:58:20 GMT 2010  Olly Betts <olly@survex.com>
7583         * net/remoteconnection.cc: Add FIXME note about using sendfile() or
7584           similar.
7586 Tue Dec 07 10:16:31 GMT 2010  Olly Betts <olly@survex.com>
7588         * tests/queryparsertest.cc: Note 1.0.x version #515 was fixed in.
7590 Mon Dec 06 05:26:01 GMT 2010  Olly Betts <olly@survex.com>
7592         * net/replicatetcpclient.cc: Rearrange loop to avoid duplicating code.
7594 Mon Dec 06 01:39:23 GMT 2010  Olly Betts <olly@survex.com>
7596         * queryparser/queryparser.lemony: Fix typo so we test for OP_NEAR or
7597           OP_PHRASE, not twice for OP_NEAR, which fixes a bug with not setting
7598           the correct window size for default_op of OP_PHRASE in some cases.
7599           Factor out the "is_positional(op)" test into an inlined function to
7600           help avoid repeating this error.
7601         * tests/queryparsertest.cc: Add regression test coverage.
7603 Mon Dec 06 01:01:03 GMT 2010  Olly Betts <olly@survex.com>
7605         * tests/queryparsertest.cc: Add coverage for OP_PHRASE as default_op.
7607 Sun Dec 05 12:35:32 GMT 2010  Olly Betts <olly@survex.com>
7609         * weight/bm25weight.cc: Fix calculation order to avoid inconsistent
7610           weights due to rounding when BM25Weight is used with certain
7611           non-default parameter combinations.
7612         * tests/api_backend.cc: Add regression test bm25weight2.
7614 Sun Dec 05 12:10:36 GMT 2010  Olly Betts <olly@survex.com>
7616         * backends/chert/chert_compact.cc: Add FIXME comment regarding
7617           resolve_duplicate_metadata() getting called multiple times for the
7618           same key in multipass mode.
7620 Sun Dec 05 12:09:32 GMT 2010  Olly Betts <olly@survex.com>
7622         * include/xapian/compactor.h: Add documentation comments.
7624 Sun Dec 05 04:54:03 GMT 2010  Olly Betts <olly@survex.com>
7626         * HACKING: Omega now wants libmagic-dev (though it's optional
7627           currently).
7629 Wed Nov 17 10:56:10 GMT 2010  Olly Betts <olly@survex.com>
7631         * examples/quest.cc: Add command line options to allow prefixes to
7632           be specified for the QueryParser.
7634 Tue Nov 09 23:18:36 GMT 2010  Olly Betts <olly@survex.com>
7636         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
7637           backends/flint/flint_compact.cc: Fix access to empty priority_queue
7638           while merging synonyms (found with _GLIBCXX_DEBUG).
7640 Tue Nov 09 03:23:49 GMT 2010  Olly Betts <olly@survex.com>
7642         * HACKING: Drop list of platforms valgrind supports, as it takes
7643           effort to keep up to date.  People can check valgrind.org for an
7644           accurate list of currently supported platforms.
7646 Sun Nov 07 14:13:44 GMT 2010  Olly Betts <olly@survex.com>
7648         * api/compactor.cc,backends/brass/brass_compact.cc,
7649           backends/chert/chert_compact.cc,backends/flint/flint_compact.cc,
7650           bin/xapian-compact.cc,include/xapian/compactor.h:
7651           Compactor::resolve_duplicate_metadata() callback method is now passed
7652           an array of std::string plus the array length, which allows for more
7653           efficient merging that the series of pairwise merges which was
7654           required before.
7656 Mon Nov 01 14:47:37 GMT 2010  Richard Boulton <richard@tartarus.org>
7658         * matcher/multimatch.cc,matcher/multixorpostlist.cc,
7659           matcher/multixorpostlist.h: Add debugging to print out the
7660           postlist description after recalculation of maxweight, and to
7661           MultiXorPostList methods.  Fix problem shown by soaktest where
7662           the matcher was not told to recalculate the maxweight after a
7663           MultiXorPostList child reached end, which was causing an
7664           assertion failure in debug builds.  (This could also have been
7665           causing some performance problems, but I have not measurements.)
7667 Mon Nov 01 10:34:30 GMT 2010  Richard Boulton <richard@tartarus.org>
7669         * tests/soaktest/soaktest_queries.cc: Fix compilation: call c_str()
7670           on argument to atoi, now that util.h no longer defines a string
7671           wrapper.
7673 Sun Oct 31 10:51:12 GMT 2010  Olly Betts <olly@survex.com>
7675         * queryparser/queryparser.lemony: Don't delete this in TermGroup, etc
7676           until after we have successfully constructed the Query object to
7677           return to avoid a double free in the Query construction throws an
7678           exception.  Fixes ticket#515.
7680 Fri Oct 29 12:46:15 GMT 2010  Olly Betts <olly@survex.com>
7682         * tests/api_backend.cc: Fix comment typo in previous commit.
7684 Fri Oct 29 12:32:47 GMT 2010  Olly Betts <olly@survex.com>
7686         * matcher/multimatch.cc: Empty query now return MSet with firstitem
7687           set correctly.
7688         * tests/api_backend.cc: Extend msetfirst2 to be a regression test for
7689           this issue too.
7691 Fri Oct 29 12:13:51 GMT 2010  Olly Betts <olly@survex.com>
7693         * api/omenquire.cc: If first is larger than get_doccount() then clamp
7694           it to avid pointlessly trying to allocate far too much memory.
7695         * tests/api_backend.cc: Regression test msetfirst2.
7697 Thu Oct 21 09:38:44 GMT 2010  Richard Boulton <richard@tartarus.org>
7699         * tests/Makefile.am: Add zlib-vg.c to distribution tarballs.
7701 Wed Oct 20 11:38:13 GMT 2010  Olly Betts <olly@survex.com>
7703         * examples/delve.cc: Add '-z' option to count zero-length documents.
7705 Mon Oct 18 10:35:46 GMT 2010  Olly Betts <olly@survex.com>
7707         * bin/xapian-compact.cc: Add --quiet/-q option to suppress progress
7708           output.
7710 Thu Oct 14 03:51:02 GMT 2010  Olly Betts <olly@survex.com>
7712         * tests/api_unicode.cc: Fix typo in previous change.
7714 Thu Oct 14 01:16:31 GMT 2010  Olly Betts <olly@survex.com>
7716         * tests/api_unicode.cc: Expand tested cases to (hopefully) cover all
7717           conditional combinations in unicode/utf8itor.cc.
7719 Mon Oct 11 11:46:30 GMT 2010  Olly Betts <olly@survex.com>
7721         * Makefile.am: Remove xapian-config on "make distclean" rather than
7722           "make clean", since configure builds it.  Never remove man pages
7723           under "make clean".
7725 Mon Oct 11 11:41:32 GMT 2010  Olly Betts <olly@survex.com>
7727         * tests/Makefile.am: Fix typo - CLEAN_FILES should be CLEANFILES.
7728           This means that where zlib-vg.so is used, it now gets cleaned up.
7730 Sun Oct 10 11:00:31 GMT 2010  Olly Betts <olly@survex.com>
7732         * Makefile.am: Fix so coverage-reconfigure-maintainer-mode adds
7733           --enable-maintainer-mode rather than coverage-reconfigure!
7735 Sun Oct 10 10:45:38 GMT 2010  Olly Betts <olly@survex.com>
7737         * Makefile.am: Factor out COVERAGE_CONFIGURE to make future changes
7738           easier.
7740 Sun Oct 10 09:59:01 GMT 2010  Olly Betts <olly@survex.com>
7742         * Makefile.am: Add coverage-reconfigure-maintainer-mode target which
7743           is just like coverage-reconfigure except it also passes
7744           --enable-maintainer-mode.
7746 Sun Oct 10 07:29:23 GMT 2010  Olly Betts <olly@survex.com>
7748         * tests/api_nodb.cc: Check Stem("none") too.  Check
7749           Stem("").get_description().  No need to check a bogus language name
7750           here as stemlangs2 now does that.
7752 Sun Oct 10 07:22:41 GMT 2010  Olly Betts <olly@survex.com>
7754         * tests/api_stem.cc: Test an invalid languages name with each possible
7755           byte value at the start to improve coverage of the switch in
7756           api/stem.cc.
7758 Sun Oct 10 06:14:42 GMT 2010  Olly Betts <olly@survex.com>
7760         * unicode/utf8itor.cc: Correct comments and use bad_cont() in another
7761           place (no change to code once inlining is taken into account).
7763 Sun Oct 10 06:11:05 GMT 2010  Olly Betts <olly@survex.com>
7765         * tests/api_unicode.cc: Improve test coverage for
7766           Utf8Iterator::calculate_sequence_length().
7768 Sun Oct 10 00:33:49 GMT 2010  Olly Betts <olly@survex.com>
7770         * tests/api_unicode.cc: Tweak testcase utf8iterator2 to add coverage
7771           for Utf8Iterator(const char *).
7773 Fri Oct 08 13:10:08 GMT 2010  Olly Betts <olly@survex.com>
7775         * matcher/selectpostlist.cc,matcher/selectpostlist.h: Implement
7776           SelectPostList::check() so that check() on OP_NEAR and OP_PHRASE
7777           subqueries won't end up checking potentially huge numbers of
7778           documents.
7780 Fri Oct 08 12:29:50 GMT 2010  Olly Betts <olly@survex.com>
7782         * tests/api_backend.cc: Add testcase phrase3 to provide coverage for
7783           SelectPostList::skip_to().
7785 Fri Oct 08 10:36:18 GMT 2010  Olly Betts <olly@survex.com>
7787         * matcher/orpostlist.cc,matcher/orpostlist.h: Fix performance
7788           regression in some cases caused by the introduction of
7789           OrPostList::check().
7791 Thu Oct 07 03:53:11 GMT 2010  Olly Betts <olly@survex.com>
7793         * tests/api_anydb.cc: Clear tout before each iteration in scaleweight1.
7795 Wed Oct 06 14:30:34 GMT 2010  Olly Betts <olly@survex.com>
7797         * NEWS: Update from 1.0.22 and ChangeLog.
7799 Wed Oct 06 12:39:36 GMT 2010  Olly Betts <olly@survex.com>
7801         * tests/queryparsertest.cc: Add two more testcases for having a phrase
7802           generator between prefix and term.
7804 Wed Oct 06 12:37:32 GMT 2010  Olly Betts <olly@survex.com>
7806         * include/xapian/matchspy.h,include/xapian/postingsource.h: Remove
7807           "experimental" marker from PostingSource and ValueCountMatchSpy.
7809 Wed Oct 06 12:31:01 GMT 2010  Olly Betts <olly@survex.com>
7811         * docs/index.html: Add links to replication and facets documents, and
7812           fix typo in serialistion document link.
7814 Wed Oct 06 12:12:51 GMT 2010  Olly Betts <olly@survex.com>
7816         * docs/Makefile.am,docs/categorisation.rst,docs/facets.rst: Change the
7817           categorisation document to talk about facets, since that's the
7818           terminology that seems to be most widely used these days, and
7819           "categorisation" can also mean automatically assigning categories to
7820           documents.  Fix up references to features which were removed or
7821           changed during development.
7823 Wed Oct 06 12:11:21 GMT 2010  Olly Betts <olly@survex.com>
7825         * docs/internals.html: Add link to replication protocol.
7827 Wed Oct 06 08:36:50 GMT 2010  Olly Betts <olly@survex.com>
7829         * examples/simplesearch.cc: Fix cut and paste error in usage message.
7831 Wed Oct 06 00:12:40 GMT 2010  Olly Betts <olly@survex.com>
7833         * api/emptypostlist.cc,matcher/queryoptimiser.cc: In the query
7834           optimiser, use value range bounds to check for value ranges which
7835           must be empty.
7836         * tests/api_opvalue.cc: Add testcase valuerange5 to check this
7837           optimisation actually fires.
7839 Tue Oct 05 03:43:02 GMT 2010  Olly Betts <olly@survex.com>
7841         * examples/simplesearch.cc: Fix cut-and-paste error - --version now
7842           reports simplesearch not simpleexpand.
7844 Tue Oct 05 03:41:48 GMT 2010  Olly Betts <olly@survex.com>
7846         * docs/categorisation.rst: Update to use the current ValueCountMatchSpy
7847           API.
7849 Fri Oct 01 09:53:50 GMT 2010  Olly Betts <olly@survex.com>
7851         * configure.ac: Simplify defaulting enable_documentation a little.
7853 Fri Oct 01 09:29:03 GMT 2010  Olly Betts <olly@survex.com>
7855         * configure.ac: Default enable_sse to yes to fix build on x86.
7857 Fri Oct 01 09:10:34 GMT 2010  Olly Betts <olly@survex.com>
7859         * configure.ac: Fix typo in SSE handling code which stopped it
7860           defaulting as intended.
7862 Fri Oct 01 02:00:49 GMT 2010  Olly Betts <olly@survex.com>
7864         * NEWS: Update from ChangeLog.
7866 Fri Oct 01 01:54:41 GMT 2010  Olly Betts <olly@survex.com>
7868         * backends/Makefile.mk,backends/brass/brass_compact.cc,
7869           backends/byte_length_strings.h,backends/chert/chert_compact.cc,
7870           backends/flint/flint_compact.cc: Factor out 3 copies of
7871           ByteLengthPrefixedStringItor and ByteLengthPrefixedStringItorGt into
7872           their own file.
7874 Fri Oct 01 01:28:57 GMT 2010  Olly Betts <olly@survex.com>
7876         * backends/Makefile.mk,backends/brass/brass_compact.cc,
7877           backends/brass/brass_spelling.cc,backends/chert/chert_compact.cc,
7878           backends/chert/chert_spelling.cc,backends/flint/flint_compact.cc,
7879           backends/flint/flint_spelling.cc,
7880           backends/prefix_compressed_strings.h: Factor out 6 copies of
7881           PrefixCompressedStringItor and PrefixCompressedStringWriter and 3
7882           copies of PrefixCompressedStringItorGt into their own file.
7884 Thu Sep 30 15:28:49 GMT 2010  Olly Betts <olly@survex.com>
7886         * NEWS: Update from ChangeLog.
7888 Thu Sep 30 15:26:52 GMT 2010  Olly Betts <olly@survex.com>
7890         * api/compactor.cc: Need utils.h for stat with a std::string argument.
7892 Thu Sep 30 15:23:50 GMT 2010  Olly Betts <olly@survex.com>
7894         * tests/api_compact.cc: Remove unwanted check left over from cut and
7895           pasting code from a previous testcase.
7897 Thu Sep 30 15:21:02 GMT 2010  Olly Betts <olly@survex.com>
7899         * tests/api_compact.cc: Convert compaction tests to use the new API.
7901 Thu Sep 30 14:54:27 GMT 2010  Olly Betts <olly@survex.com>
7903         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
7904           backends/flint/flint_compact.cc: Correct filenames in @file doxygen
7905           comments.
7907 Thu Sep 30 14:46:02 GMT 2010  Olly Betts <olly@survex.com>
7909         * api/compactor.cc: Use the ChertVersion, etc classes to make sure that
7910           the new database has a new UUID rather than creating a "donor"
7911           database and then stealing its version/uuid file.
7913 Thu Sep 30 14:33:46 GMT 2010  Olly Betts <olly@survex.com>
7915         * api/Makefile.mk,api/compactor.cc,backends/brass/Makefile.mk,
7916           backends/brass/brass_compact.cc,backends/brass/brass_compact.h,
7917           backends/chert/Makefile.mk,backends/chert/chert_compact.cc,
7918           backends/chert/chert_compact.h,backends/flint/Makefile.mk,
7919           backends/flint/flint_compact.cc,backends/flint/flint_compact.h,bin/,
7920           include/Makefile.mk,include/xapian.h,include/xapian/compactor.h:
7921           Convert compaction code into a Xapian::Compactor class, and make
7922           xapian-compact a simple wrapper around this new class.  (ticket#175)
7924 Thu Sep 30 06:16:11 GMT 2010  Olly Betts <olly@survex.com>
7926         * bin/: Eliminate uses of <iostream> in bin/xapian-compact-*.cc.
7928 Thu Sep 30 05:44:06 GMT 2010  Olly Betts <olly@survex.com>
7930         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc,
7931           bin/xapian-compact-flint.cc: Fix indentation of table data
7932           arrays.
7934 Thu Sep 30 05:32:44 GMT 2010  Olly Betts <olly@survex.com>
7936         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Only
7937           skip producing an output table when there are only some inputs
7938           for the termlist - for spellings and synonyms, we want to produce
7939           an output in this case.
7940         * tests/api_compact.cc: Add regression test compactmissingtables1.
7942 Wed Sep 29 11:13:18 GMT 2010  Olly Betts <olly@survex.com>
7944         * common/document.h: Initialise docid to 0 when creating a document
7945           from scratch, as documented.
7946         * tests/api_none.cc: Add regression test document2.
7947         * include/xapian/document.h: Document that return value is unreliable
7948           in this case prior to the next 1.0 and 1.2 releases.
7950 Wed Sep 29 07:06:10 GMT 2010  Olly Betts <olly@survex.com>
7952         * configure.ac: FreeBSD and OpenBSD don't need explicit dependency
7953           libraries, so set link_all_deplibs_CXX=no there.
7955 Wed Sep 29 07:04:20 GMT 2010  Olly Betts <olly@survex.com>
7957         * xapian-config.in: Just check @link_all_deplibs_CXX@ which we adjust
7958           in configure rather than duplicating configure's list of platforms
7959           where explicit dependencies aren't required.
7961 Mon Sep 27 04:28:46 GMT 2010  Olly Betts <olly@survex.com>
7963         * bin/xapian-compact.cc: Convert error messages to stdout/stderr to
7964           exceptions, in preparation for turning this into an API class.
7966 Mon Sep 27 03:50:54 GMT 2010  Olly Betts <olly@survex.com>
7968         * bin/xapian-compact.cc: Add support for compacting to a stub database,
7969           which can be one of the inputs (for atomic update).
7970         * tests/api_compact.cc: Add testcases compactstub3 and compactstub4 as
7971           feature tests for this.
7973 Mon Sep 27 03:50:00 GMT 2010  Olly Betts <olly@survex.com>
7975         * tests/api_compact.cc: Suppress output from xapian-compact in
7976           compactstub2 (which I'd disabled for debugging).
7978 Sun Sep 26 13:59:20 GMT 2010  Olly Betts <olly@survex.com>
7980         * bin/xapian-compact.cc: Extend to work on stub database files too.
7981         * tests/api_compact.cc: Add feature test compactstub2.
7983 Sun Sep 26 13:28:45 GMT 2010  Olly Betts <olly@survex.com>
7985         * bin/xapian-compact.cc: Inputs can now be stub database directories,
7986           in which case the databases in the stub are used as inputs.
7987         * tests/api_compact.cc: Add feature test compactstub1.
7989 Sun Sep 26 11:11:49 GMT 2010  Olly Betts <olly@survex.com>
7991         * xapian-config.in: Add --static option which makes other options
7992           report values for static linking.
7994 Tue Sep 21 10:43:17 GMT 2010  Olly Betts <olly@survex.com>
7996         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow phrase
7997           generators between a probabilistic prefix and the term itself.
7999 Thu Sep 09 11:18:47 GMT 2010  Olly Betts <olly@survex.com>
8001         * INSTALL: Raise recommended GCC version from 3.3 to 4.1, since that's
8002           the oldest we regularly test with.
8004 Thu Sep 09 11:14:03 GMT 2010  Olly Betts <olly@survex.com>
8006         * HACKING: Debian etch was discontinued 6 months ago, so it's no longer
8007           useful to document packages for developing Xapian on it.
8009 Thu Sep 09 03:15:00 GMT 2010  Olly Betts <olly@survex.com>
8011         * docs/deprecation.rst: Actually write down our guidelines for
8012           supporting other software.
8014 Thu Sep 09 00:20:16 GMT 2010  Olly Betts <olly@survex.com>
8016         * docs/replication.rst: Adjust text to reflect conclusions about the
8017           issues in ticket#434.
8019 Thu Sep 09 00:10:03 GMT 2010  Olly Betts <olly@survex.com>
8021         * docs/replication.rst: Don't suggest using a symlink to switch between
8022           databases - a stub database is much better.
8024 Thu Sep 09 00:07:02 GMT 2010  Olly Betts <olly@survex.com>
8026         * docs/replication.rst: Assume xapian tools are installed on PATH not
8027           in the current directory for example commands.
8029 Thu Sep 09 00:05:22 GMT 2010  Olly Betts <olly@survex.com>
8031         * docs/replication.rst: Fix a typo.
8033 Mon Sep 06 07:10:02 GMT 2010  Olly Betts <olly@survex.com>
8035         * configure.ac: Add support for --enable-sse=sse and --enable-sse=sse2
8036           to allow control of which SSE instructions to use.
8038 Fri Sep 03 13:08:53 GMT 2010  Richard Boulton <richard@tartarus.org>
8040         * bin/xapian-replicate.cc: If a fullcopy was attempted, but was not
8041           put live, display an explanatory message (if verbose is true).
8043 Fri Sep 03 05:54:09 GMT 2010  Olly Betts <olly@survex.com>
8045         * backends/chert/chert_modifiedpostlist.h,
8046           backends/flint/flint_modifiedpostlist.h,tests/: Fixes required to
8047           build on OpenBSD 4.5 with GCC 3.3.5.
8049 Tue Aug 31 14:37:44 GMT 2010  Olly Betts <olly@survex.com>
8051         * include/xapian/queryparser.h: Document cases where FLAG_WILDCARD and
8052           FLAG_PARTIAL aren't currently supported.
8054 Mon Aug 30 06:27:46 GMT 2010  Olly Betts <olly@survex.com>
8056         * configure.ac: Actaully make autoconf 2.64 a hard minimum requirement
8057           (as HACKING already documented).
8058         * HACKING,NEWS,configure.ac: autoconf 2.67 is now used to bootstrap.
8060 Mon Aug 30 06:26:03 GMT 2010  Olly Betts <olly@survex.com>
8062         * NEWS: Update from ChangeLog.
8064 Mon Aug 30 06:04:13 GMT 2010  Olly Betts <olly@survex.com>
8066         * configure.ac: Enable use of SSE maths on x86 by default with Sun's
8067           compiler.
8069 Sat Aug 28 16:04:45 GMT 2010  Olly Betts <olly@survex.com>
8071         * api/omdatabase.cc,include/xapian/queryparser.h,
8072           tests/harness/backendmanager.h: None of the workarounds we have
8073           which are conditional on __SUNPRO_CC are needed with Sun C++
8074           version 5.8, so only enable them for older versions (which will
8075           mean we can drop these workarounds with confidence once older
8076           versions are dropped by Sun/Oracle, or once we can find out that
8077           they have been - currently all I've managed to discover is that
8078           version 5.0 reached "end of service life" in 6/2006).
8080 Sat Aug 28 15:33:14 GMT 2010  Olly Betts <olly@survex.com>
8082         * configure.ac,tests/api_replicate.cc: Solaris < 10 doesn't have
8083           setenv() so we have to use putenv() there.  And the value we set
8084           XAPIAN_MAX_CHANGESETS to is always constant currently, so set it
8085           using constant strings generated by a macro.
8087 Sat Aug 28 12:35:25 GMT 2010  Olly Betts <olly@survex.com>
8089         * configure.ac: Beef up the test for whether -lm is required and add
8090           a special case to force it to be for Sun's C++ compiler - there's
8091           some interaction with libtool and/or shared objects which means
8092           that the configure test doesn't think -lm is needed here when it
8093           is.
8095 Sat Aug 28 10:59:11 GMT 2010  Olly Betts <olly@survex.com>
8097         * api/matchspy.cc,common/const_database_wrapper.cc,net/tcpclient.cc,
8098           tests/api_replicate.cc,tests/harness/backendmanager_remotetcp.cc,
8099           tests/harness/testsuite.cc,tests/perftest/runprocess.cc,
8100           unicode/utf8itor.cc: Fix to compile with Sun C++.
8102 Sat Aug 28 10:30:08 GMT 2010  Olly Betts <olly@survex.com>
8104         * HACKING,PLATFORMS: Move PLATFORMS information to the wiki and replace
8105           with a pointer.
8107 Sat Aug 28 03:15:47 GMT 2010  Olly Betts <olly@survex.com>
8109         * matcher/queryoptimiser.cc: Need to avoid excess precision on m68k
8110           when targeting models 68010, 68020, 68030 as well as 68000.
8112 Tue Aug 24 05:54:27 GMT 2010  Olly Betts <olly@survex.com>
8114         * configure.ac: Update for 1.2.3.
8116 Tue Aug 24 05:52:47 GMT 2010  Olly Betts <olly@survex.com>
8118         * NEWS: Update from ChangeLog.
8120 Mon Aug 16 16:46:19 GMT 2010  Olly Betts <olly@survex.com>
8122         * common/closefrom.cc: Use /dev/fd on Mac OS X.
8124 Mon Aug 16 16:18:26 GMT 2010  Olly Betts <olly@survex.com>
8126         * common/closefrom.cc: Need safeerrno.h and safeunistd.h on non-Linux
8127           platforms too.
8129 Mon Aug 16 15:47:48 GMT 2010  Olly Betts <olly@survex.com>
8131         * backends/flint_lock.cc,common/Makefile.mk,common/closefrom.cc,
8132           common/closefrom.h,configure.ac,net/progclient.cc: Use closefrom()
8133           if available, otherwise provide our own implementation (optimised
8134           to some extent for many platforms).
8136 Sun Aug 15 12:43:04 GMT 2010  Olly Betts <olly@survex.com>
8138         * AUTHORS: Update.
8140 Sun Aug 15 12:11:26 GMT 2010  Olly Betts <olly@survex.com>
8142         * xapian-core.spec.in: Update BuildRequires to specify libuuid-devel
8143           instead of e2fsprogs-devel.
8145 Sun Aug 15 11:30:05 GMT 2010  Olly Betts <olly@survex.com>
8147         * HACKING,INSTALL,common/safeuuid.h,common/win32_uuid.cc,
8148           common/win32_uuid.h,configure.ac: libuuid moved from e2fsprogs to
8149           util-linux-ng about a year ago, so update documentation, comments,
8150           and configure error messages to reflect this.  Issue reported by
8151           David Jeske on xapian-devel list.
8153 Sun Aug 15 07:58:51 GMT 2010  Olly Betts <olly@survex.com>
8155         * tests/harness/backendmanager_remotetcp.cc: Under __WIN32__, we need
8156           <io.h> for _open_osfhandle() (ticket#495).
8158 Sun Aug 15 07:10:25 GMT 2010  Olly Betts <olly@survex.com>
8160         * common/realtime.h: MSVC doesn't cope with a prototype at function
8161           scope with a global namespace qualification (ticket#495).
8163 Wed Aug 04 10:44:08 GMT 2010  Olly Betts <olly@survex.com>
8165         * backends/flint_lock.cc,backends/multi/multi_alltermslist.cc,
8166           bin/xapian-chert-update.cc,queryparser/termgenerator.cc,
8167           queryparser/termgenerator_internal.cc: Fix more incorrect @file
8168           directives.
8170 Wed Aug 04 09:19:10 GMT 2010  Olly Betts <olly@survex.com>
8172         * matcher/localsubmatch.h,queryparser/termgenerator_internal.h: Fix
8173           incorrect @file doxygen directives.
8175 Tue Aug 03 14:42:56 GMT 2010  Olly Betts <olly@survex.com>
8177         * tests/harness/fdtracker.h: Fix filename in @file.
8179 Tue Aug 03 14:32:45 GMT 2010  Olly Betts <olly@survex.com>
8181         * common/contiguousalldocspostlist.h,common/unaligned.h: Fix include
8182           guards to match header filename (cosmetic issues only).
8184 Mon Aug 02 12:38:59 GMT 2010  Olly Betts <olly@survex.com>
8186         * backends/brass/brass_table.cc,backends/brass/brass_values.cc,
8187           backends/chert/chert_table.cc,backends/chert/chert_values.cc,
8188           backends/flint/flint_alldocspostlist.cc,
8189           backends/remote/remote-document.cc,matcher/multimatch.cc,
8190           matcher/remotesubmatch.cc,net/progclient.cc: Use new Literal()
8191           feature in debug logging of function calls.
8193 Mon Aug 02 12:08:42 GMT 2010  Olly Betts <olly@survex.com>
8195         * common/pretty.h: Add Literal() class to allow bypassing the pretty
8196           printer for interspersing literal strings.
8198 Sun Aug 01 10:19:38 GMT 2010  Olly Betts <olly@survex.com>
8200         * api/omdatabase.cc: Database::get_spelling_suggestion() will now
8201           suggest a correction even if the passed word is in the dictionary,
8202           provided the correction has at least the same frequency.  Partly
8203           addresses #225.
8204         * queryparser/queryparser.lemony: Check spelling even if term is in
8205           the database.
8206         * docs/spelling.rst: Update to reflect these changes.
8207         * tests/api_spelling.cc,tests/queryparsertest.cc: Add test coverage for
8208           these changes.
8210 Tue Jul 27 15:24:56 GMT 2010  Tim Brody <tdb2@ecs.soton.ac.uk>
8212         * xapian-core.spec.in: Add xapian-metadata and cmake related files to
8213           RPM packaging.
8215 Thu Jul 22 07:13:12 GMT 2010  Olly Betts <olly@survex.com>
8217         * net/remoteconnection.cc: Wrap line.
8219 Thu Jul 22 07:11:23 GMT 2010  Olly Betts <olly@survex.com>
8221         * common/remoteserver.h,net/remoteserver.cc: Pass 1.0 for the end time
8222           when relaying a NetworkTimeoutError, not RealTime::now() - any time
8223           in the past will do, we just want the operation to time out if it
8224           would block.  Removed related FIXME which is already resolved.
8226 Wed Jul 21 18:00:08 GMT 2010  Olly Betts <olly@survex.com>
8228         * unicode/tclUniData.cc: Fix comment - this is Unicode 5.2 data, not
8229           5.1.
8231 Thu Jul 15 13:45:05 GMT 2010  Olly Betts <olly@survex.com>
8233         * common/realtime.h:Explicitly specify global namespace for
8234           xapian_sleep_milliseconds prototype as MSVC seems to need this.
8236 Thu Jul 15 13:03:13 GMT 2010  Olly Betts <olly@survex.com>
8238         * queryparser/queryparser.lemony: Fix handling of groups of terms which
8239           are all stopwords - in situations where this causes a problem we now
8240           disable stopword checks for such groups.  (ticket#245)
8241         * tests/queryparsertest.cc: Add regression testcases.
8243 Thu Jul 15 08:13:03 GMT 2010  Olly Betts <olly@survex.com>
8245         * common/fileutils.cc: Fix reversed memcmp() test.
8247 Sun Jul 11 14:59:06 GMT 2010  Olly Betts <olly@survex.com>
8249         * common/fileutils.cc: Factor out UNCW path check into a helper
8250           function.
8252 Sun Jul 11 14:56:27 GMT 2010  Olly Betts <olly@survex.com>
8254         * common/fileutils.cc,tests/Makefile.am,tests/unittest.cc: Move the
8255           tests of resolve_relative_path() into a new "unittest" program so
8256           they actually are run by "make check".  (ticket#243)
8258 Sun Jul 11 13:14:24 GMT 2010  Olly Betts <olly@survex.com>
8260         * common/fileutils.cc: Support the \\?\ path syntax.
8262 Sat Jul 10 15:49:08 GMT 2010  Olly Betts <olly@survex.com>
8264         * common/fileutils.cc,common/fileutils.h: Fix resolve_relative_path()
8265           to handle UNC paths.
8267 Sat Jul 10 15:27:48 GMT 2010  Olly Betts <olly@survex.com>
8269         * common/fileutils.cc: -D__WIN32__ on the g++ command line works for
8270           testing on Linux, so no need to have that in the code.  Add a couple
8271           of UNC path test cases which pass, and a commented-out one which
8272           fails.
8274 Sat Jul 10 14:58:35 GMT 2010  Olly Betts <olly@survex.com>
8276         * common/fileutils.cc,common/fileutils.h: We use these routines to
8277           resolve a relative path (in a stub database file) in terms of a
8278           second path (the filename of that file), so just instead a
8279           routine to do exactly that, which is easier to code and more
8280           efficient.  The new implementation fixes several bugs with
8281           Microsoft Windows paths.  Some testcases (currently not used)
8282           are now present in fileutils.cc (ticket#243).
8283         * backends/dbfactory.cc: Use the new API.
8285 Fri Jul 09 07:42:31 GMT 2010  Olly Betts <olly@survex.com>
8287         * tests/perftest/perftest.cc: I missed a use of atoi() on std::string
8288           but just call .cstr() on the string instead of dragging in utils.h.
8290 Fri Jul 09 04:39:40 GMT 2010  Olly Betts <olly@survex.com>
8292         * common/utils.cc,common/utils.h: Remove unused std::string to const
8293           char * wrappers for standard functions, and remove the only use of
8294           rmdir()'s wrapper.
8296 Thu Jul 08 15:18:04 GMT 2010  Olly Betts <olly@survex.com>
8298         * api/omenquire.cc: Xapian::ESet is a reference counted handle, so it
8299           is efficient to return by value - remove FIXME which suggests we
8300           should avoid doing so.
8302 Thu Jul 08 15:17:20 GMT 2010  Olly Betts <olly@survex.com>
8304         * api/omqueryinternal.cc: Update FIXMEs - it's too late to fix stuff
8305           in 1.1.x!
8307 Thu Jul 08 15:13:47 GMT 2010  Olly Betts <olly@survex.com>
8309         * api/omenquire.cc: Remove FIXMEs about debug logging which have been
8310           addressed by the fairly recent debug logging improvements.
8312 Thu Jul 08 15:07:07 GMT 2010  Olly Betts <olly@survex.com>
8314         * api/keymaker.cc: Fix comment typos.
8316 Thu Jul 08 14:50:59 GMT 2010  Olly Betts <olly@survex.com>
8318         * api/replication.cc,backends/brass/,backends/chert/,
8319           backends/dbfactory_remote.cc,backends/flint/,
8320           backends/remote/remote-database.cc,bin/xapian-progsrv.cc,
8321           bin/xapian-tcpsrv.cc,common/,net/,tests/perftest/perftest.cc,
8322           tests/perftest/perftest.h: Replace use of OmTime with a double
8323           holding a count in seconds since the epoch.
8325 Thu Jul 08 12:35:40 GMT 2010  Olly Betts <olly@survex.com>
8327         * net/tcpclient.cc: Retry select() if it fails with EINTR while waiting
8328           for connect(), and discriminate cases with same failure message to
8329           aid debugging.
8331 Thu Jul 08 05:09:18 GMT 2010  Olly Betts <olly@survex.com>
8333         * queryparser/queryparser.lemony: Remove comment left over from the
8334           "boolean exclusive" work.
8336 Wed Jul 07 13:18:17 GMT 2010  Olly Betts <olly@survex.com>
8338         * include/xapian/types.h: Fix documentation comment for Xapian::timeout
8339           type - it holds a time interval in milliseconds not microseconds
8340           (the API docs for the methods which use it explicitly document this
8341           correctly).
8343 Tue Jul 06 15:17:09 GMT 2010  Olly Betts <olly@survex.com>
8345         * tests/queryparsertest.cc: Fix formatting.
8347 Tue Jul 06 14:13:03 GMT 2010  Olly Betts <olly@survex.com>
8349         * tests/perftest/perftest.cc: Use str(OmTime::as_double()) rather than
8350           trying to assemble a string of a floating point number from strings
8351           of the sec and usec values.
8353 Tue Jul 06 14:03:30 GMT 2010  Olly Betts <olly@survex.com>
8355         * common/debuglog.h,common/remote-database.h: Remove unused '#include
8356           "omtime.h"'.
8357         * backends/remote/remote-database.cc: Add explicit '#include
8358           "omtime.h"'.
8360 Mon Jul 05 11:40:42 GMT 2010  Olly Betts <olly@survex.com>
8362         * queryparser/queryparser.lemony: Restore iterator to start of
8363           where we tried to parse a range if we decide it might be a filter
8364           term instead.  Clear the error if we decide it is a filter.
8365         * tests/queryparsertest.cc: Fix expected test output from
8366           qp_value_range4 testcase.
8368 Mon Jul 05 06:46:16 GMT 2010  Olly Betts <olly@survex.com>
8370         * queryparser/queryparser.lemony: Fix to be smarter about handling a
8371           boolean filter term containing ".." in the presence of
8372           valuerangeprocessors.
8373         * tests/queryparsertest.cc: Add regression test qp_value_range4.
8375 Mon Jul 05 04:10:08 GMT 2010  Olly Betts <olly@survex.com>
8377         * queryparser/queryparser.lemony,queryparser/queryparser.lt: Clean up
8378           how value ranges are handled to do the checking of the range in the
8379           lexer, which then passes a single token (RANGE) to the parser
8380           (instead of a RANGE_START token which is always followed by a
8381           RANGE_END token).
8383 Fri Jul 02 12:32:37 GMT 2010  Olly Betts <olly@survex.com>
8385         * configure.ac: Don't pass -mtune=generic unless GCC >= 4.2 is in use
8386           (ticket#492).
8388 Wed Jun 30 10:54:15 GMT 2010  Olly Betts <olly@survex.com>
8390         * backends/brass/brass_postlist.cc: Remove unnecessary NULL check.
8391           Identified by Coverity's Scan.
8392         * backends/chert/chert_postlist.cc: Same change for chert.
8394 Tue Jun 29 12:17:16 GMT 2010  Olly Betts <olly@survex.com>
8396         * backends/brass/brass_chunkedlisttable.h,
8397           backends/chert/chert_chunkedlisttable.h: Remove unused files.
8399 Sun Jun 27 04:31:06 GMT 2010  Olly Betts <olly@survex.com>
8401         * NEWS: Update for 1.2.2.
8403 Sun Jun 27 04:22:28 GMT 2010  Olly Betts <olly@survex.com>
8405         * examples/delve.cc: Show the database's UUID.
8407 Sun Jun 27 03:30:16 GMT 2010  Olly Betts <olly@survex.com>
8409         * NEWS.SKELETON: Add "tools" section.
8411 Sun Jun 27 03:03:57 GMT 2010  Olly Betts <olly@survex.com>
8413         * configure.ac: Update for 1.2.2.
8415 Sat Jun 26 15:55:45 GMT 2010  Olly Betts <olly@survex.com>
8417         * NEWS: Create from ChangeLog.
8419 Sat Jun 26 15:36:37 GMT 2010  Olly Betts <olly@survex.com>
8421         * NEWS.SKELETON: Add template for NEWS entry.
8423 Sat Jun 26 11:09:03 GMT 2010  Olly Betts <olly@survex.com>
8425         * backends/brass/brass_table.cc: Sync the table right after the base
8426           file, which allows more time for the table changes to be written,
8427           and doing the sync together may be more efficient with some Linux
8428           kernel versions.
8429         * backends/chert/chert_table.cc: Same change for chert.
8431 Sat Jun 26 06:46:39 GMT 2010  Olly Betts <olly@survex.com>
8433         * HACKING: Reorder the release checklist.
8435 Thu Jun 24 08:03:18 GMT 2010  Olly Betts <olly@survex.com>
8437           bin/xapian-check.cc: Don't try to check doclengths are consistent
8438           between the postlist and termlist tables if it would use more than
8439           1GB of memory, and handle std::bad_alloc or std::length_error.  This
8440           issue affects sup users, as sup allocates docids such that they are
8441           sparse and large docids can easily occur.
8443 Wed Jun 23 15:38:25 GMT 2010  Olly Betts <olly@survex.com>
8445         * include/xapian/weight.h: Revert Xapian::Weight's copy ctor back
8446           to protected as GCC 4.1 fails to compile subclasses when it is
8447           private (this appears to be a compiler bug).
8449 Wed Jun 23 07:31:19 GMT 2010  Olly Betts <olly@survex.com>
8451         * AUTHORS: Thank people who reported bugs fixed in 1.2.1.
8453 Wed Jun 23 06:52:54 GMT 2010  Olly Betts <olly@survex.com>
8455         * xapian-core.spec.in: Update for 1.2.x - add e2fsprogs-devel to
8456           BuildRequires and add new files.
8458 Wed Jun 23 05:00:34 GMT 2010  Olly Betts <olly@survex.com>
8460         * HACKING: Wording tweak.
8462 Wed Jun 23 04:11:30 GMT 2010  Olly Betts <olly@survex.com>
8464         * tests/harness/testsuite.cc: Need <cstdio> for sprintf().  Fixes
8465           compilation error for some platforms and/or compilers (my guess would
8466           be GCC 4.5 - it builds OK with GCC 4.4).  (ticket#489)
8468 Tue Jun 22 14:45:37 GMT 2010  Olly Betts <olly@survex.com>
8470         * NEWS,configure.ac: Update for 1.2.1.
8472 Mon Jun 21 16:00:22 GMT 2010  Olly Betts <olly@survex.com>
8474         * NEWS: Sync with 1.0.21 and update from ChangeLog.
8476 Mon Jun 21 15:15:50 GMT 2010  Olly Betts <olly@survex.com>
8478         * tests/api_replicate.cc: Unix putenv() requires the buffer passed to
8479           remain valid, as it stores it directly in the environment.  It's
8480           unclear from MSDN if _putenv() does the same, but _putenv_s() must
8481           allocate a copy since it needs to have an '=' in, so use that
8482           instead.  It also has an interface much like setenv(), so the code
8483           looks more similar.
8485 Mon Jun 21 06:07:42 GMT 2010  Olly Betts <olly@survex.com>
8487         * queryparser/queryparser.cc: Add missing const.
8489 Mon Jun 21 05:21:32 GMT 2010  Olly Betts <olly@survex.com>
8491         * queryparser/queryparser.cc: Update to match header ABI fix.
8493 Mon Jun 21 03:52:41 GMT 2010  Olly Betts <olly@survex.com>
8495         * include/xapian/queryparser.h: QueryParser::add_boolean_prefix() now
8496           uses two overloaded forms instead of a default parameter so that we
8497           don't break the ABI.
8499 Fri Jun 18 16:56:59 GMT 2010  Olly Betts <olly@survex.com>
8501         * AUTHORS: Add 1.0.21 bug reporters.
8503 Fri Jun 18 05:52:00 GMT 2010  Olly Betts <olly@survex.com>
8505         * include/xapian/queryparser.h,queryparser/queryparser.cc,
8506           queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
8507           Add new optional parameter to QueryParser::add_boolean_prefix() to
8508           allow the user to indicate a prefix isn't "exclusive" and that
8509           OP_AND should be used to combine multiple instances.  Fixes
8510           ticket#402.  This change should also improve efficiency as it
8511           avoids copying the lists of prefixes and compares them more
8512           efficiently.
8514 Fri Jun 18 02:51:11 GMT 2010  Olly Betts <olly@survex.com>
8516         * include/xapian/queryparser.h: Fix doccomment typo.
8518 Thu Jun 17 14:04:35 GMT 2010  Olly Betts <olly@survex.com>
8520         * include/xapian/weight.h: Xapian::Weight's copy ctor is now
8521           private rather than protected.  This is an API and ABI compatible
8522           change since there's no definition so a subclass which tried to
8523           access it before would fail to link.
8525 Thu Jun 17 13:00:47 GMT 2010  Olly Betts <olly@survex.com>
8527         * queryparser/queryparser.lemony: Missing changes from previous commit.
8529 Thu Jun 17 11:37:30 GMT 2010  Olly Betts <olly@survex.com>
8531         * api/valuerangeproc.cc: Add support for open-ended ranges
8532           (ticket#480).
8533         * docs/queryparser.html,docs/valueranges.rst: Document.
8534         * tests/queryparsertest.cc: Add feature tests.
8536 Thu Jun 17 06:15:24 GMT 2010  Olly Betts <olly@survex.com>
8538         * queryparser/queryparser.lemony: Switch out of IN_GROUP mode when we
8539           emit a WILDCARD.  Fixeds bug#484.
8540         * tests/queryparsertest.cc: Add regression testcase to wildcard1.
8542 Thu Jun 17 02:42:16 GMT 2010  Olly Betts <olly@survex.com>
8544         * tests/api_backend.cc: Rename failedadd1 to failedreplace1 as it's the
8545           replace which fails really.  Add failedreplace2 which adds explicit
8546           coverage for the case of a failed replace when the database isn't
8547           empty to start with.
8549 Tue Jun 15 12:45:36 GMT 2010  Olly Betts <olly@survex.com>
8551         * include/xapian/queryparser.h: Note in the description of
8552           set_database() what the database is used for.
8554 Tue Jun 15 12:26:12 GMT 2010  Olly Betts <olly@survex.com>
8556         * include/xapian/queryparser.h: Fix formatting of bullet list.
8558 Mon Jun 14 17:02:10 GMT 2010  Olly Betts <olly@survex.com>
8560         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
8561           backends/flint/flint_table.cc: cancel() now marks the Btree as
8562           unmodified.
8563         * tests/api_backend.cc: Add regression test failedadd1.
8565 Sun Jun 13 16:07:49 GMT 2010  Olly Betts <olly@survex.com>
8567         * common/Makefile.mk,common/safeuuid.h,configure.ac: Fix mingw build to
8568           use __WIN32__ UUID API.
8570 Sun Jun 13 12:25:24 GMT 2010  Olly Betts <olly@survex.com>
8572         * tests/perftest/freemem.cc: Fix whitespace to match Omega's version.
8574 Sun Jun 13 11:52:24 GMT 2010  Olly Betts <olly@survex.com>
8576         * tests/perftest/freemem.cc: Merge in changes from omega's version.
8577           Clean up whitespace issues.  Put the __WIN32__ case last, as we
8578           tend to elsewhere (since most people reading the code probably
8579           want to see the other version).
8581 Sun Jun 13 11:32:30 GMT 2010  Olly Betts <olly@survex.com>
8583         * tests/perftest/perftest.cc: "MSWin32" isn't the OS name.  Also,
8584           prefer += to build up a string.
8586 Sat Jun 12 09:31:28 GMT 2010  Olly Betts <olly@survex.com>
8588         * tests/api_percentages.cc: Note that 1.0.x returned 4% for the top hit
8589           in topercent5, so checking it gets at least 50% is a regression test
8590           for that issue.
8592 Fri Jun 11 15:38:26 GMT 2010  Olly Betts <olly@survex.com>
8594         * configure.ac: -march=pentium4 doesn't seem to give a measurable
8595           speed-up or size reduction (from Richard's tests) and it carries a
8596           small risk of introducing instructions which don't work on some
8597           obscure CPU which implements SSE2, so drop it.
8599 Fri Jun 11 15:25:16 GMT 2010  Olly Betts <olly@survex.com>
8601         * weight/bm25weight.cc: Stop forcing the wdf_max value to be at least
8602           one in BM25Weight::get_maxpart() - this is no longer needed now we
8603           calculate percentages based on the number of matching subqueries, and
8604           it is more natural for a non-existent term to get zero weight (ditto
8605           for a term which always has wdf = 0.
8606         * tests/api_anydb.cc: Change qterminfo1 to check that a non-existent
8607           term gets zero weight (previously we checked that it got a non-zero
8608           weight, but really we want to ensure that it contributes to
8609           percentage calculations, which new test topercent5 now does).
8611 Fri Jun 11 15:19:29 GMT 2010  Olly Betts <olly@survex.com>
8613         * tests/api_percentages.cc: Add topercent5 testcase which checks that
8614           an OR search including an non-existent term doesn't get 100%, and
8615           that the non-existent term doesn't score more than terms which do
8616           exist.
8618 Fri Jun 11 14:15:07 GMT 2010  Olly Betts <olly@survex.com>
8620         * matcher/queryoptimiser.cc: When using SSE FP instructions on x86 we
8621           can disable the use of volatile since there are no excess precision
8622           issues to work around.
8624 Fri Jun 11 08:21:04 GMT 2010  Olly Betts <olly@survex.com>
8626         * configure.ac: Put SSE flags in AM_CXXFLAGS not CXXFLAGS.
8628 Fri Jun 11 07:08:01 GMT 2010  Olly Betts <olly@survex.com>
8630         * configure.ac: Default to building with SSE FP instructions for x86.
8631           This avoids issues with excess precision and it a bit faster too.
8632           Should fix ticket#487.
8634 Thu Jun 10 15:15:33 GMT 2010  Olly Betts <olly@survex.com>
8636         * NEWS: Update from ChangeLog.
8638 Thu Jun 10 15:00:12 GMT 2010  Olly Betts <olly@survex.com>
8640         * HACKING: Capitalise "Fedora".
8642 Thu Jun 10 11:27:18 GMT 2010  Olly Betts <olly@survex.com>
8644         * INSTALL: Reword UUID section - list platforms where we make use of
8645           built-in APIs first, give the URL for e2fsprogs home page, and
8646           give the package name for Debian and Ubuntu.
8648 Thu Jun 10 01:08:21 GMT 2010  Olly Betts <olly@survex.com>
8650         * HACKING: libtool 2.2.10 used for snapshots and releases now.
8652 Thu Jun 10 00:21:49 GMT 2010  Olly Betts <olly@survex.com>
8654         * configure.ac,include/xapian/version_h.cc,
8655           include/xapian/visibility.h: We do need to have the visibility
8656           annotations on for code compiling against the library, so substitute
8657           the probed value of XAPIAN_ENABLE_VISIBILITY into <xapian/version.h>
8658           so it is available.
8660 Wed Jun 09 11:31:14 GMT 2010  Olly Betts <olly@survex.com>
8662         * INSTALL,configure.ac,include/xapian/visibility.h: Control use of
8663           GCC's visibility support with defined(XAPIAN_ENABLE_VISIBILITY)
8664           instead of !defined(XAPIAN_DISABLE_VISIBILITY), so it is only used
8665           when building the library, not when building code which uses it.
8666           Add check to configure that GCC actually supports visibility for
8667           the platform being built for, which fixes compiler warnings with
8668           platforms which don't (such as Mac OS X and mingw).
8670 Wed Jun 09 11:17:58 GMT 2010  Olly Betts <olly@survex.com>
8672         * HACKING: "private", etc as "access specifiers", not "visibility
8673           specifiers".
8675 Wed Jun 09 11:04:55 GMT 2010  Olly Betts <olly@survex.com>
8677         * HACKING: Note flex and bison needed to build doxygen.
8679 Wed Jun 09 05:25:10 GMT 2010  Olly Betts <olly@survex.com>
8681         * common/win32_uuid.cc: Fix signed/unsigned comparison warning on
8682           mingw.
8684 Tue Jun 08 16:56:26 GMT 2010  Olly Betts <olly@survex.com>
8686         * common/safewinsock2.h: Reword #error to avoid single quote which
8687           gives compilation warning with some GCC 4.2.1 on mingw.
8689 Tue Jun 08 14:32:28 GMT 2010  Olly Betts <olly@survex.com>
8691         * backends/brass/brass_check.h,backends/chert/chert_check.h,
8692           backends/flint/flint_check.h: Remove mutable from std::ostream &
8693           member - mutable doesn't make sense for a reference.
8695 Tue Jun 08 13:03:56 GMT 2010  Olly Betts <olly@survex.com>
8697         * common/,matcher/,weight/weightinternal.cc: Replace the still rather
8698           contorted mechanism for accumulating rel termfreqs for local
8699           databases with a simpler mechanism which is more efficient in both
8700           space and time.
8702 Mon Jun 07 16:31:24 GMT 2010  Olly Betts <olly@survex.com>
8704         * api/maptermlist.h,api/matchspy.cc,api/termlist.cc,backends/brass/,
8705           backends/chert/,backends/flint/,
8706           backends/inmemory/inmemory_database.cc,
8707           backends/inmemory/inmemory_database.h,
8708           backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
8709           backends/remote/net_termlist.cc,backends/remote/net_termlist.h,
8710           common/ortermlist.h,common/termlist.h,expand/ortermlist.cc: Remove
8711           default OrTermList::skip_to() implementation and implement skip_to()
8712           in each class instead, as this allows a slightly more efficient
8713           implementation, and also avoids problems with calling skip_to() as
8714           the first operation for the many subclasses which have a "started"
8715           flag, which OrTermList::skip_to() won't set.
8717 Mon Jun 07 06:08:53 GMT 2010  Olly Betts <olly@survex.com>
8719         * queryparser/queryparser.lemony: Rename TermList class to Terms to
8720           avoid confusion with the TermList typedef used elsewhere.  Add
8721           documentation comments for Terms and TermGroup classes.
8723 Mon Jun 07 02:18:05 GMT 2010  Olly Betts <olly@survex.com>
8725         * backends/brass/: Switch to using io_utils instead of brass_io.
8727 Mon Jun 07 02:16:30 GMT 2010  Olly Betts <olly@survex.com>
8729         * AUTHORS: Add Arvid Ephraim Picciani for help fixing bootstrap for
8730           BusyBox sha1sum.
8732 Mon Jun 07 01:16:57 GMT 2010  Olly Betts <olly@survex.com>
8734         * common/io_utils.cc: Whitespace tweak.
8736 Mon Jun 07 00:58:26 GMT 2010  Olly Betts <olly@survex.com>
8738         * common/io_utils.h: Fix header guard macro name to follow convention.
8740 Sun Jun 06 15:07:55 GMT 2010  Olly Betts <olly@survex.com>
8742         * HACKING,configure.ac: Upgrade to using libtool 2.2.8.
8744 Sun Jun 06 04:34:13 GMT 2010  Olly Betts <olly@survex.com>
8746         * bin/Makefile.mk,configure.ac: Fix build failures with some
8747           combinations of backends disabled (partially addresses ticket#361).
8749 Sat Jun 05 16:30:57 GMT 2010  Olly Betts <olly@survex.com>
8751         * matcher/remotesubmatch.cc: Add missing parameter of
8752           RemoteSubMatch::start_match() to debug logging.
8754 Sat Jun 05 15:03:56 GMT 2010  Olly Betts <olly@survex.com>
8756         * matcher/queryoptimiser.h: Make QueryOptimiser::optimise_query()'s
8757           argument const pointer, since we only pass it to do_subquery() which
8758           takes a const pointer.
8760 Fri Jun 04 16:05:01 GMT 2010  Olly Betts <olly@survex.com>
8762         * common/rset.h: Just keep a reference to the set<docid> from the
8763           Xapian::RSet object rather than copying it (since we now only
8764           create the RSetI object transiently, so the Xapian::RSet object
8765           is definitely valid for its whole lifetime).
8767 Fri Jun 04 15:57:50 GMT 2010  Olly Betts <olly@survex.com>
8769         * api/omenquire.cc,matcher/localmatch.cc,matcher/localmatch.h: Keep
8770           a Xapian::RSet handle in the LocalSubMatch object and only create
8771           an RSetI object briefly in LocalSubMatch::prepare_match().
8773 Fri Jun 04 15:36:45 GMT 2010  Olly Betts <olly@survex.com>
8775         * common/pretty.h: RSetI objects are no longer passed as parameters
8776           or return values, so we no longer need to handle them.
8778 Fri Jun 04 15:28:21 GMT 2010  Olly Betts <olly@survex.com>
8780         * api/omenquire.cc,common/esetinternal.h,common/omenquireinternal.h,
8781           common/rset.h,expand/esetinternal.cc,matcher/rset.cc: RSetI is used
8782           when collating statistics prior to performing the match, and when
8783           generating an ESet.  The second use is entirely unnecessary and just
8784           ends up with us copying the std::set<Xapian::docid> from inside the
8785           Xapian::RSet object, so eliminate it and just use the Xapian::RSet
8786           object directly.  This allows RSetI to be simplified somewhat too.
8788 Fri Jun 04 14:22:38 GMT 2010  Olly Betts <olly@survex.com>
8790         * tests/api_backend.cc: Make arrays static const.
8792 Fri Jun 04 13:25:20 GMT 2010  Olly Betts <olly@survex.com>
8794         * backends/Makefile.mk: Note need to update include/xapian/version_h.cc
8795           when adding a new backend.
8796         * AUTHORS: Thanks to Conrad Hoffmann for pointing this omission out.
8798 Thu Jun 03 15:01:44 GMT 2010  Richard Boulton <richard@tartarus.org>
8800         * tests/soaktest/soaktest_queries.cc: Add missing include of str.h
8802 Thu Jun 03 12:09:35 GMT 2010  Richard Boulton <richard@tartarus.org>
8804         * tests/Makefile.am: Fix building of zlib-vg.so in VPATH builds.
8806 Thu Jun 03 11:49:31 GMT 2010  Richard Boulton <richard@tartarus.org>
8808         * matcher/orpostlist.cc,tests/api_backend.cc: Fix several bugs in
8809           OrPostList::check() (introduced since 1.2.0).  Fixes ticket #485.
8810           Specifically, we have to check a sub-postlist even if head=did,
8811           because we need to know if that sub-postlist is valid.  Also, if
8812           a sub-postlist is not valid, set its head to did+1, since we know
8813           that we're no longer interested in matches before did, and this
8814           allows the OrPostList to assume that the minimum docid of its
8815           children is the current docid.
8817 Thu Jun 03 07:15:24 GMT 2010  Olly Betts <olly@survex.com>
8819         * matcher/: Implement MultiXorPostList which returns correct weights
8820           for XOR of more than 2 subqueries, and drop XorPostList completely.
8821           (ticket#475)
8822         * tests/api_anydb.cc: Add regression test xor2.
8824 Thu Jun 03 04:38:56 GMT 2010  Olly Betts <olly@survex.com>
8826         * tests/api_replicate.cc: Tweak loop end test to be a normal while.
8828 Thu Jun 03 01:22:20 GMT 2010  Olly Betts <olly@survex.com>
8830         * tests/api_stem.cc: Note stem2's feature was backported to 1.0.21.
8832 Tue Jun 01 13:49:44 GMT 2010  Olly Betts <olly@survex.com>
8834         * backends/brass/brass_database.cc,backends/brass/brass_termlist.cc,
8835           backends/chert/chert_database.cc,backends/chert/chert_termlist.cc,
8836           backends/flint/flint_database.cc,backends/flint/flint_document.cc,
8837           backends/flint/flint_termlist.cc,matcher/: Fix LOGCALL_VOID uses
8838           for ctors and dtors to be LOGCALL_CTOR and LOGCALL_DTOR respectively.
8840 Tue Jun 01 13:33:07 GMT 2010  Olly Betts <olly@survex.com>
8842         * api/omdocument.cc: Use LOGCALL_VOID instead of LOGCALL with a void
8843           return type.
8845 Tue Jun 01 13:08:02 GMT 2010  Olly Betts <olly@survex.com>
8847         * matcher/multimatch.cc: The debug logging now copes with being passed
8848           RSet* so remove special casing with ?:.
8850 Tue Jun 01 10:17:27 GMT 2010  Olly Betts <olly@survex.com>
8852         * HACKING,configure.ac: Drop support for --enable-log=profile -
8853           dedicated profiling tools are likely to return more useful results.
8854         * common/debuglog.cc,common/debuglog.h: Rename xapian_debuglogger__
8855           global to xapian_debuglogger_ to avoid reserved __ in the name.
8856         * common/omdebug.cc,common/omdebug.h: Remove in favour of debuglog.h.
8857         * common/pretty.h: New PrettyOStream<> template class for pretty
8858           printing types in debug logs (and eventually the testsuite).
8859         * api/,backends/brass/,backends/chert/,
8860           backends/dbfactory_remote.cc,backends/flint/,
8861           backends/inmemory/inmemory_database.cc,
8862           backends/inmemory/inmemory_document.cc,
8863           backends/inmemory/inmemory_positionlist.cc,
8864           backends/multi/multi_postlist.cc,backends/multi/multi_termlist.cc,
8865           common/,expand/esetinternal.cc,expand/expandweight.cc,
8866           expand/ortermlist.cc,matcher/,net/progclient.cc,
8867           net/remoteconnection.cc: Migrate all remaining uses of omdebug.h to
8868           debuglog.h.  Write more parameters to the debug log.  Retire the
8869           barely used APICALL category and use API instead (reflecting actual
8870           current use).  Add new REPLICA category.  Fix names logged for ctors
8871           and dtors which have "::" in the class name.
8873 Sun May 30 13:45:12 GMT 2010  Olly Betts <olly@survex.com>
8875         * api/omenquire.cc: Remove bogus "Data::" from debug logging for two
8876           methods.
8878 Sun May 30 08:49:22 GMT 2010  Olly Betts <olly@survex.com>
8880         * include/xapian/stem.h,languages/stem.cc: Xapian::Stem now recognises
8881           "nb" and "nn" as codes for the Norwegian stemmer.
8882         * tests/api_stem.cc: Add feature test stem2 to check that these new
8883           codes work.
8885 Sat May 29 10:12:40 GMT 2010  Olly Betts <olly@survex.com>
8887         * common/debuglog.h: Add overload of operator| which writes ", " and
8888           then a value to std::ostream.
8889         * api/omdatabase.cc,api/replication.cc,
8890           backends/brass/brass_alldocspostlist.cc,
8891           backends/brass/brass_metadata.cc,backends/brass/brass_table.cc,
8892           backends/chert/,backends/dbfactory.cc,
8893           backends/flint/flint_alldocspostlist.cc,expand/esetinternal.cc,
8894           expand/expandweight.cc,matcher/,net/remoteconnection.cc,
8895           weight/bm25weight.cc,weight/weight.cc: Use this in LOGCALL uses to
8896           make them shorter and more readable.
8898 Fri May 28 06:47:57 GMT 2010  Olly Betts <olly@survex.com>
8900         * api/leafpostlist.cc,api/omdatabase.cc,backends/brass/brass_table.cc,
8901           backends/chert/chert_table.cc,backends/dbfactory.cc,
8902           backends/flint/flint_alldocspostlist.cc: Put LOGCALL macro use all on
8903           one line so we can more easily mechanise use and update.
8905 Fri May 28 04:22:35 GMT 2010  Olly Betts <olly@survex.com>
8907         * api/replication.cc,api/valueiterator.cc,
8908           backends/brass/brass_alltermslist.cc,
8909           backends/chert/chert_alltermslist.cc,backends/dbfactory.cc,
8910           backends/inmemory/inmemory_document.cc,
8911           backends/remote/remote-document.cc,matcher/synonympostlist.cc,
8912           net/remoteconnection.cc,weight/bm25weight.cc: Use NO_ARGS instead of
8913           "" and LOGCALL_VOID instead of LOGCALL with void return type.
8915 Fri May 28 04:12:35 GMT 2010  Olly Betts <olly@survex.com>
8917         * matcher/valuerangepostlist.cc: Add missing inclusions of
8918           "debuglog.h".
8919         * backends/brass/brass_metadata.h,backends/brass/brass_postlist.h,
8920           backends/brass/brass_synonym.h,backends/chert/chert_metadata.h,
8921           backends/chert/chert_postlist.h,backends/chert/chert_synonym.h,
8922           backends/dbfactory_remote.cc,backends/flint/flint_metadata.h,
8923           backends/flint/flint_synonym.h,common/database.h,common/rset.h:
8924           Remove unused inclusions of "omassert.h" and "omdebug.h".
8925         * common/rset.h: Remove unused inclusion of "weightinternal.h".
8926         * api/omdatabase.cc,api/registry.cc,api/replication.cc,backends/brass/,
8927           backends/chert/,backends/dbfactory.cc,backends/flint/: Add missing
8928           explicit inclusions of "debuglog.h". Fix LOGCALL markup of ctors and
8929           dtors.  Use LOGCALL instead of DEBUGCALL.
8931 Fri May 28 04:06:08 GMT 2010  Olly Betts <olly@survex.com>
8933         * backends/flint/flint_alldocspostlist.h: Add missing explicit
8934           inclusions of "autoptr.h", "flint_database.h", and forward
8935           declaration of class FlintCursor.
8937 Fri May 28 03:52:40 GMT 2010  Olly Betts <olly@survex.com>
8939         * common/const_database_wrapper.h,common/databasereplicator.h,
8940           common/gnu_getopt.h: Add "(C)" to copyright statements for
8941           consistency with other files.
8943 Fri May 28 03:45:26 GMT 2010  Olly Betts <olly@survex.com>
8945         * queryparser/queryparser.lt: Include "debuglog.h" instead of
8946           "omdebug.h".
8948 Fri May 28 03:45:03 GMT 2010  Olly Betts <olly@survex.com>
8950         * queryparser/queryparser.cc: Remove unused inclusion of "omdebug.h".
8952 Fri May 28 03:40:50 GMT 2010  Olly Betts <olly@survex.com>
8954         * expand/esetinternal.cc,matcher/localmatch.cc,matcher/multimatch.cc,
8955           matcher/rset.cc: Add missing explicit inclusions of "omassert.h".
8957 Thu May 27 23:39:57 GMT 2010  Olly Betts <olly@survex.com>
8959         * common/Makefile.mk,common/expand.h: Remove unused header.
8961 Thu May 27 06:45:27 GMT 2010  Olly Betts <olly@survex.com>
8963         * include/xapian/stem.h: Update the list of languages that the
8964           Xapian::Stem constructor recognises.
8966 Thu May 27 05:20:42 GMT 2010  Olly Betts <olly@survex.com>
8968         * include/xapian/stem.h,languages/Makefile.mk,
8969           languages/compiler/generator.c,languages/stem.cc,
8970           languages/steminternal.cc,languages/steminternal.h,tests/Makefile.am,
8971           tests/api_stem.cc: Add the ability to specify your own stemming
8972           algorithm by subclassing Xapian::StemImplementation, mostly based on
8973           patch from Evgeny Sizikov in ticket#448.
8975 Thu May 27 04:50:31 GMT 2010  Olly Betts <olly@survex.com>
8977         * tests/api_opvalue.cc: Use TEST_REL() instead of tout and TEST() with
8978           an inequality.
8980 Thu May 27 04:28:07 GMT 2010  Olly Betts <olly@survex.com>
8982         * api/replication.cc,backends/databasereplicator.cc,common/debuglog.h,
8983           common/omdebug.h,expand/esetinternal.cc,expand/ortermlist.cc,
8984           matcher/,net/remoteconnection.cc: Partial mass conversion of files
8985           from omdebug.h to debuglog.h (this takes care off all the files
8986           without BSN copyright).
8988 Thu May 27 04:24:36 GMT 2010  Olly Betts <olly@survex.com>
8990         * common/output.h: Use <ostream> not <fstream>.
8992 Thu May 27 04:09:25 GMT 2010  Olly Betts <olly@survex.com>
8994         * matcher/orpostlist.cc: Prefer ++x to x += 1 for consistency.
8996 Wed May 26 13:32:20 GMT 2010  Olly Betts <olly@survex.com>
8998         * matcher/exactphrasepostlist.cc: Separate (C) notice from @file
8999           doccomment.
9001 Wed May 26 13:11:57 GMT 2010  Olly Betts <olly@survex.com>
9003         * backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h:
9004           Move virtual method FlintPostList::get_doclength() definition out
9005           of header, which also means the header no longer needs omdebug.h.
9007 Wed May 26 13:03:22 GMT 2010  Olly Betts <olly@survex.com>
9009         * common/debuglog.h: Strip out commented out RETURN_VOID machinery.
9010           This case is automatically handled provided LOGCALL_VOID is used.
9012 Wed May 26 12:33:04 GMT 2010  Olly Betts <olly@survex.com>
9014         * common/debuglog.h: Don't check the category more than once in ctors
9015           and dtors.  Don't convert the return value to a string in RETURN()
9016           unless we want to log it.
9018 Wed May 26 02:33:00 GMT 2010  Olly Betts <olly@survex.com>
9020         * tests/api_opvalue.cc: Convert file description to doccomment.
9021           Remove unused headers and reorder remainder more standardly.
9023 Tue May 25 10:17:42 GMT 2010  Olly Betts <olly@survex.com>
9025         * tests/api_backend.cc: Note ordecay1 and ordecay2 fixes now also in
9026           1.0.21.  Whitespace tweak.
9028 Tue May 25 04:11:53 GMT 2010  Olly Betts <olly@survex.com>
9030         * tests/api_backend.cc: make_ordecay1_db and make_ordecay2_db end up
9031           looping over at least 4 billion values (or possibly infinitely) on
9032           platforms where sizeof(long) == 8.  The two databases are very
9033           similar and the latter one works for the former test, so use the
9034           same db for both tests, and rewrite the generator to work
9035           portably.
9037 Sun May 23 07:30:58 GMT 2010  Olly Betts <olly@survex.com>
9039         * tests/api_backend.cc: Note XOR decay bug also fixed in 1.0.21.
9041 Sat May 22 13:31:38 GMT 2010  Olly Betts <olly@survex.com>
9043         * configure.ac,tests/Makefile.am: Only try to build zlib-vg.so if we
9044           are found a suitable valgrind installed (otherwise it's a waste of
9045           effort to build it, and the build will fail without the valgrind
9046           headers).
9048 Sat May 22 13:18:33 GMT 2010  Olly Betts <olly@survex.com>
9050         * configure.ac,tests/Makefile.am,tests/runtest.in,tests/zlib-vg.c: zlib
9051           can produce "uninitialised" output from "initialised" input - the
9052           output does decode to the input, so this is presumably just some
9053           unused bits in the output, so we use an LD_PRELOAD hack to get
9054           valgrind to check the input is initialised and then tell it that the
9055           output is initialised.
9057 Wed May 19 14:34:52 GMT 2010  Richard Boulton <richard@tartarus.org>
9059         * matcher/andmaybepostlist.cc,matcher/andmaybepostlist.h,
9060           matcher/orpostlist.cc: Fix a bug causing documents to be skipped
9061           when OR decayed to AND_MAYBE, if the new RHS was behind the LHS
9062           at the time of the decay.  Fixes #476.
9063         * tests/api_backend.cc: Add test case ordecay2 as a regression test
9064           of this.  Also, remove some debug output in ordecay1, to speed it
9065           up quite a bit.
9067 Wed May 19 11:48:07 GMT 2010  Richard Boulton <richard@tartarus.org>
9069         * matcher/orpostlist.cc,tests/api_backend.cc: Fix a bug in the
9070           decay from OR to AND: if the decay happened when the two
9071           sub-postlists were on different docids, but the higher of those
9072           docids actually occurred in both postlists, the higher docid
9073           would be incorrectly skipped.  Add regression test ordecay1 to
9074           test this.
9076 Wed May 19 10:36:55 GMT 2010  Richard Boulton <richard@tartarus.org>
9078         * tests/api_backend.cc,tests/api_compact.cc,
9079           tests/harness/testrunner.cc,tests/harness/testrunner.h: Add new
9080           test backend selection flag "generated", to select only backends
9081           which support generated test databases.
9083 Wed May 19 03:14:15 GMT 2010  Olly Betts <olly@survex.com>
9085         * api/,backends/brass/,backends/chert/,
9086           backends/contiguousalldocspostlist.cc,backends/flint/,
9087           backends/inmemory/inmemory_database.cc,
9088           backends/remote/remote-database.cc,backends/slowvaluelist.cc,
9089           common/utils.h,expand/esetinternal.cc,matcher/phrasepostlist.cc,
9090           net/remoteserver.cc,net/remotetcpclient.cc,
9091           queryparser/termgenerator.cc,tests/,
9092           tests/harness/backendmanager_multi.cc,
9093           tests/harness/backendmanager_remote.cc,
9094           tests/harness/backendmanager_remotetcp.cc,tests/internaltest.cc,
9095           tests/perftest/perftest.cc,tests/perftest/perftest_matchdecider.cc,
9096           tests/perftest/perftest_randomidx.cc,tests/queryparsertest.cc,
9097           tests/termgentest.cc: Fully migrate from om_tostring() to str().
9099 Wed May 19 03:13:43 GMT 2010  Olly Betts <olly@survex.com>
9101         * cmake/xapian-config-version.cmake,cmake/xapian-config.cmake: Remove
9102           generated files from SVN.
9104 Wed May 19 02:59:47 GMT 2010  Olly Betts <olly@survex.com>
9106         * bin/xapian-inspect.cc: Add misisng explicit '#include <utils.h>'.
9108 Tue May 18 14:24:03 GMT 2010  Olly Betts <olly@survex.com>
9110         * bin/Makefile.mk,bin/xapian-check.cc,bin/xapian-compact.cc: Improve
9111           building with flint, chert and/or brass disabled (partially addresses
9112           ticket#361).
9114 Tue May 18 00:42:08 GMT 2010  Olly Betts <olly@survex.com>
9116         * matcher/multimatch.cc: Fix warnings with --disable-backend-remote
9117           (partially addresses ticket#361).
9119 Sat May 15 06:56:26 GMT 2010  Olly Betts <olly@survex.com>
9121         * net/progclient.cc: Read the max fd with sysconf() instead of using
9122           a hardcoded value of 256.  Work even if stdin and stdout have been
9123           closed.
9125 Thu May 13 10:53:24 GMT 2010  Richard Boulton <richard@tartarus.org>
9127         * matcher/orpostlist.cc: Correct some debugging lines.
9129 Thu May 13 09:57:12 GMT 2010  Richard Boulton <richard@tartarus.org>
9131         * matcher/xorpostlist.cc,matcher/xorpostlist.h: Pass a minweight
9132           value of 0 to children of XOR postlists, because we need to know
9133           about all matching documents from the children even if they have
9134           a low weight.
9135         * tests/api_backend.cc: Regression test for this: xordecay1.
9137 Thu May 13 08:47:22 GMT 2010  Richard Boulton <richard@tartarus.org>
9139         * tests/soaktest/soaktest_queries.cc: Add more code comments,
9140           increase the number of repetitions from 100 to 10000, remove
9141           accidentally added semicolons after some braces, remove "return
9142           false" at end of test which was added for debugging purposes,
9143           clear tout before testing each query, and display the query
9144           number, the query, and the msets in the event of failure.
9146 Tue May 11 10:16:05 GMT 2010  Richard Boulton <richard@tartarus.org>
9148         * tests/soaktest/soaktest_queries.cc: Don't fail for empty result
9149           sets.
9151 Tue May 11 10:13:08 GMT 2010  Richard Boulton <richard@tartarus.org>
9153         * tests/soaktest/: Add a "soaktest" testsuite, intended to contain
9154           long-running tests with random data.  Currently contains a single
9155           test which builds and runs random queries, checking that the
9156           results returned are consistent when asking for different result
9157           ranges.
9159 Mon May 10 16:57:29 GMT 2010  Richard Boulton <richard@tartarus.org>
9161         * tests/api_opvalue.cc: Add tests for OP_VALUE_RANGE to get
9162           coverage of the skip_to() and check() methods of
9163           ValueRangePostList.
9165 Mon May 10 16:51:14 GMT 2010  Richard Boulton <richard@tartarus.org>
9167         * tests/api_opvalue.cc: Add a test to get coverage of
9168           ValueGePostList::skip_to().
9170 Sun May 09 21:22:50 GMT 2010  Richard Boulton <richard@tartarus.org>
9172         * tests/api_nodb.cc,tests/api_opvalue.cc: Move test "opvaluege1"
9173           from api_nodb.cc to api_opvalue.cc, and rename to valuege3 for
9174           consistency with other tests of OP_VALUE_GE.
9176 Sun May 09 21:19:43 GMT 2010  Richard Boulton <richard@tartarus.org>
9178         * tests/Makefile.am,tests/api_anydb.cc,tests/api_opvalue.cc: Move
9179           the tests for OP_VALUE_* query operators from api_anydb.cc to
9180           api_opvalue.cc.  Remove copyright statements earlier than 2007,
9181           since OP_VALUE_* wasn't added until 2007.
9183 Sun May 09 21:04:06 GMT 2010  Richard Boulton <richard@tartarus.org>
9185         * matcher/valuegepostlist.cc: Initialise valuelist in check() if
9186           necessary.
9187         * tests/api_anydb.cc: Add regression test for this.
9189 Thu May 06 15:03:43 GMT 2010  Richard Boulton <richard@tartarus.org>
9191         * tests/api_replicate.cc: Add some extra debugging, to help
9192           identify the problem with ticket #472.
9194 Thu May 06 13:38:25 GMT 2010  Olly Betts <olly@survex.com>
9196         * common/safeuuid.h,configure.ac,INSTALL: Make use of built-in UUID API
9197           on FreeBSD and NetBSD.  (ticket#470)
9199 Thu May 06 13:10:30 GMT 2010  Olly Betts <olly@survex.com>
9201         * AUTHORS,Makefile.am,cmake/,configure.ac: Install files to make Xapian
9202           easier to use with cmake.  Thanks to Sune Vuorela for providing the
9203           desired output.
9205 Thu May 06 11:42:16 GMT 2010  Olly Betts <olly@survex.com>
9207         * tests/harness/fdtracker.cc: Don't pass NULL to closedir().
9209 Thu May 06 11:19:41 GMT 2010  Olly Betts <olly@survex.com
9211         * tests/api_anydb.cc: Test UUID is 36 characters long.
9213 Thu May 06 10:41:21 GMT 2010  Olly Betts <olly@survex.com>
9215         * matcher/valuegepostlist.cc: Use "str.h" and str().
9217 Thu May 06 10:01:48 GMT 2010  Olly Betts <olly@survex.com>
9219         * matcher/valuegepostlist.cc: Remove unused headers.
9221 Thu May 06 09:55:27 GMT 2010  Richard Boulton <richard@tartarus.org>
9223         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc:
9224           Keep return value from valuelist->get_value() as a const string &
9225           rather than a string - could be more efficient on some compilers,
9226           though testing with gcc 4.1 revealed no difference.
9228 Thu May 06 09:49:12 GMT 2010  Richard Boulton <richard@tartarus.org>
9230         * matcher/valuegepostlist.cc: "while(" -> "while (" in recent patch.
9232 Thu May 06 09:30:27 GMT 2010  Olly Betts <olly@survex.com>
9234         * docs/replication.rst: Remove experimental warning.
9236 Thu May 06 05:05:57 GMT 2010  Olly Betts <olly@survex.com>
9238         * matcher/valuerangepostlist.cc: Use "str.h" and str().
9240 Thu May 06 05:03:22 GMT 2010  Olly Betts <olly@survex.com>
9242         * matcher/valuerangepostlist.cc: Remove '#include "leafpostlist.h"'
9243           and '#include "document.h"' which are no longer used.
9245 Thu May 06 04:53:07 GMT 2010  Olly Betts <olly@survex.com>
9247         * matcher/valuerangepostlist.cc: Remove '#include "autoptr.h"' which is
9248           no longer required.
9250 Thu May 06 04:18:25 GMT 2010  Olly Betts <olly@survex.com>
9252         * matcher/valuerangepostlist.cc: "while(" -> "while (" in recent patch.
9254 Wed May 05 16:44:17 GMT 2010  Richard Boulton <richard@tartarus.org>
9256         * matcher/orpostlist.cc,matcher/orpostlist.h: Add
9257           OrPostList::check() method, which calls check() on the
9258           sub-postlists, rather than falling back to skip_to().  This is
9259           particularly helpful when a sub-postlist is one for which
9260           skip_to() can be significantly more expensive than check(), such
9261           as a ValueRangePostList.  I've observed a speedup of 10 times for
9262           such a subquery with this change.
9264 Wed May 05 16:34:30 GMT 2010  Richard Boulton <richard@tartarus.org>
9266         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
9267           matcher/valuerangepostlist.h: Implement ValueRangePostList and
9268           ValueGePostList using a ValueList streaming values for the value
9269           slot of interest, rather than using an AllDocsPostList to get all
9270           documents, using that to open temporary documents for each
9271           document being considered, and then using that to get the value.
9272           I've observed a speedup of more than 70 times for range queries
9273           in a real-world situation with this change (a 29 second search
9274           became a 0.4 second search). (ticket#432)
9276 Wed May 05 06:44:31 GMT 2010  Olly Betts <olly@survex.com>
9278         * NEWS: Update from ChangeLog.
9280 Wed May 05 05:42:56 GMT 2010  Olly Betts <olly@survex.com>
9282         * backends/brass/brass_cursor.cc,backends/chert/chert_cursor.cc,
9283           backends/flint/flint_cursor.cc: If we have to rebuild the cursor
9284           on next() because the table changed underneath us, we need to
9285           advance it because find_entry() will put the cursor on the entry
9286           we were already on, or the one before if the entry we were on
9287           has been removed.  Bug uncovered by notmuch testsuite, but I'm
9288           unable to reduce it to a sane testcase for our testsuite.
9289           (Debian#579951)
9291 Tue May 04 19:38:31 GMT 2010  Richard Boulton <richard@tartarus.org>
9293         * api/replication.cc,bin/xapian-replicate.cc,
9294           common/replicatetcpclient.h,common/replication.h,
9295           net/replicatetcpclient.cc,tests/api_replicate.cc: Fix a bug in
9296           replication, which triggered when multiple modifications were
9297           made to a database while a full copy of the database was in
9298           progress.  In this situation, the client would fail to apply more
9299           than one changeset before trying (and failing) to make the
9300           database live, due to an incorrect assignment of the new revision
9301           number to "offline_needed_revision" instead of
9302           "offline_revision".  Also, replication now only sleeps for a
9303           period (to allow reader to catch up) after a changeset has been
9304           applied to a live database - previously, it would sleep
9305           unnecessarily after a changeset had been applied to an offline
9306           database.  Also, make the period for which replication sleeps in
9307           this situation configurable with the "-r" command line option to
9308           xapian-replicate.
9309           A test for these changes will be committed to xapian-bindings
9310           shortly.
9312 Sat May 01 15:25:48 GMT 2010  Olly Betts <olly@survex.com>
9314         * Merge change accidentally committed to brass-btree branch:
9315         * tests/perftest/runprocess.cc: Use safesyswait.h, fixing build failure
9316           on "make check" on FreeBSD.
9318 Fri Apr 30 12:33:25 GMT 2010  Richard Boulton <richard@tartarus.org>
9320         * backends/brass/brass_databasereplicator.cc,
9321           backends/chert/chert_databasereplicator.cc,
9322           backends/flint/flint_databasereplicator.cc,tests/api_replicate.cc:
9323           If a DB file doesn't exist when applying a changeset, try
9324           creating it - this happens with lazy tables which aren't created
9325           in the initial revision copied.  Add replicate4 test to check
9326           that this works correctly with a lazily created position table.
9327           Fixes ticket #468.
9329 Fri Apr 30 07:09:31 GMT 2010  Olly Betts <olly@survex.com>
9331         * docs/deprecation.rst: Replication and PostingSource aren't
9332           experimental in 1.2.x.
9334 Fri Apr 30 00:52:22 GMT 2010  Olly Betts <olly@survex.com>
9336         * tests/harness/testsuite.cc: Fix typo in previous commit.
9338 Thu Apr 29 23:46:09 GMT 2010  Olly Betts <olly@survex.com>
9340         * tests/harness/testsuite.cc: Check is SA_SIGINFO is defined before
9341           using it as it isn't available everywhere.  Fixes FTBFS on GNU Hurd.
9343 Thu Apr 29 12:11:48 GMT 2010  Olly Betts <olly@survex.com>
9345         * configure.ac: Install headers under PREFIX/include not
9346           PREFIX/include/xapian.  This broke compiling code which didn't use
9347           XO_LIB_XAPIAN or xapian-config.
9349 Wed Apr 28 12:05:23 GMT 2010  Olly Betts <olly@survex.com>
9351         * Makefile.am,m4-macros/xapian-1.1.m4: Remove -1.1 suffix from
9352           xapian-1.1.m4 and libxapian-1.1.la.
9354 Wed Apr 28 06:15:45 GMT 2010  Olly Betts <olly@survex.com>
9356         * NEWS: Sync with 1.0.20.
9357         * NEWS,configure.ac: 1.2.0!
9359 Tue Apr 27 12:45:29 GMT 2010  Olly Betts <olly@survex.com>
9361         * AUTHORS: Add bug reporter.
9363 Mon Apr 26 08:26:26 GMT 2010  Olly Betts <olly@survex.com>
9365         * common/getopt.cc,common/gnu_getopt.h: On Cygwin, #include <getopt.h>
9366           for declarations of optind, etc rather than providing our own
9367           declarations.  Should fix warnings in Cygwin build reported by Reini
9368           Urban on xapian-devel list.
9370 Mon Apr 26 06:27:07 GMT 2010  Olly Betts <olly@survex.com>
9372         * common/getopt.cc,common/gnu_getopt.h: Revert previous 2
9373           getopt-related patches.  The latest state was breaking on Solaris
9374           which (contrary to what its man pages say) prototypes getopt() stuff
9375           in stdlib.h.  This seems to be a rabbit hole we don't want to head
9376           further down.
9378 Sat Apr 24 02:12:53 GMT 2010  Olly Betts <olly@survex.com>
9380         * examples/delve.cc: Update --help output for -v to cover all terms
9381           case.
9383 Sat Apr 24 01:58:00 GMT 2010  Olly Betts <olly@survex.com>
9385         * examples/delve.cc: Add -a option to list all terms in a database.
9387 Sat Apr 24 01:51:01 GMT 2010  Olly Betts <olly@survex.com>
9389         * examples/copydatabase.cc: Prefer string() to "" converted to string.
9391 Thu Apr 22 14:21:30 GMT 2010  Olly Betts <olly@survex.com>
9393         * matcher/multimatch.cc: Fix bug related to ticket#464 (the previous
9394           fix doesn't fix some similar cases).
9395         * tests/api_backend.cc: Add regression test msize2.
9397 Thu Apr 22 11:02:11 GMT 2010  Olly Betts <olly@survex.com>
9399         * tests/: Hook up --abort-on-error fix for termgentest, stemtest,
9400           queryparsertest, and internaltest.
9402 Thu Apr 22 06:06:53 GMT 2010  Olly Betts <olly@survex.com>
9404         * HACKING: Add a hyphen.
9406 Wed Apr 21 11:16:50 GMT 2010  Olly Betts <olly@survex.com>
9408         * tests/harness/testrunner.cc: Exit with status 1 not 0 if we caught an
9409           exception from the harness itself.
9411 Wed Apr 21 11:11:10 GMT 2010  Olly Betts <olly@survex.com>
9413         * tests/harness/testrunner.cc,tests/harness/testsuite.cc: Fix
9414           --abort-on-error to actually work.
9416 Tue Apr 20 12:53:29 GMT 2010  Olly Betts <olly@survex.com>
9418         * docs/deprecation.rst: Note how to disable deprecation warnings.
9420 Tue Apr 20 07:27:23 GMT 2010  Olly Betts <olly@survex.com>
9422         * api/omenquire.cc,matcher/multimatch.cc: Fix incorrect estimate and
9423           bounds on matches when sorting and collapsing in a particular case
9424           (ticket#464).
9425         * tests/api_backend.cc: Add regression test msize1.
9427 Mon Apr 19 01:59:59 GMT 2010  Olly Betts <olly@survex.com>
9429         * examples/delve.cc: Use strtoul() instead of atoi() to decode document
9430           id and value slot numbers passed on the command line.  Report out of
9431           range and invalid values.
9433 Sat Apr 17 09:17:25 GMT 2010  Olly Betts <olly@survex.com>
9435         * common/getopt.cc,common/gnu_getopt.h: Fix getopt code to work on
9436           platforms without GNU getopt but with getopt().
9438 Fri Apr 16 14:23:49 GMT 2010  Olly Betts <olly@survex.com>
9440         * NEWS,configure.ac: Update for 1.1.5.
9441         * NEWS: Sync changes from 1.0.19.
9443 Fri Apr 16 12:29:14 GMT 2010  Olly Betts <olly@survex.com>
9445         * tests/harness/testsuite.cc: Handle NULL in the const char * catch.
9447 Fri Apr 16 05:47:43 GMT 2010  Olly Betts <olly@survex.com>
9449         * api/postingsource.cc: Fix wrapping.
9451 Thu Apr 15 09:07:40 GMT 2010  Richard Boulton <richard@tartarus.org>
9453         * tests/api_replicate.cc: Use a fixed size buffer for copying a
9454           file, rather than a dynamically sized buffer; avoids using the
9455           GCC extension allowing dynamically sized arrays.
9457 Thu Apr 15 04:02:34 GMT 2010  Olly Betts <olly@survex.com>
9459         * AUTHORS: Update with bug reporters.
9461 Thu Apr 15 00:30:45 GMT 2010  Olly Betts <olly@survex.com>
9463         * include/xapian/termgenerator.h: Note how TermGenerator handles
9464           stopwords.
9466 Wed Apr 14 23:41:55 GMT 2010  Olly Betts <olly@survex.com>
9468         * common/getopt.cc,common/gnu_getopt.h: Put our optarg, etc in a
9469           namespace and then pull them in to avoid linking to versions in the C
9470           library.  Fixes warnings on Cygwin.
9472 Wed Apr 14 15:33:39 GMT 2010  Olly Betts <olly@survex.com>
9474         * tests/api_backend.cc: Remove already fixed FIXME comment.
9476 Wed Apr 14 14:13:10 GMT 2010  Olly Betts <olly@survex.com>
9478         * queryparser/queryparser.lemony: Use const reference to avoid a
9479           needless handle copy.
9481 Wed Apr 14 14:00:21 GMT 2010  Olly Betts <olly@survex.com>
9483         * backends/brass/brass_alltermslist.cc,
9484           backends/brass/brass_alltermslist.h,
9485           backends/chert/chert_alltermslist.cc,
9486           backends/chert/chert_alltermslist.h,
9487           backends/flint/flint_alltermslist.cc,
9488           backends/flint/flint_alltermslist.h: Fix memory leak if Database
9489           throws an exception in XXXAllTermsList constructor.  Fixes bug#462.
9490         * tests/api_backend.cc: Enable qpmemoryleak1 for non-remote backends as
9491           a regression test for this fix.
9493 Tue Apr 13 12:38:08 GMT 2010  Olly Betts <olly@survex.com>
9495         * backends/flint/flint_table.cc: Don't memcpy() a block to itself -
9496           it's a waste of effort, and (probably) undefined behaviour (as a
9497           block overlaps itself).
9499 Tue Apr 13 12:36:53 GMT 2010  Olly Betts <olly@survex.com>
9501         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Don't
9502           memcpy() a block to itself - it's a waste of effort, and (probably)
9503           undefined behaviour (as a block overlaps itself).
9505 Tue Apr 13 08:38:40 GMT 2010  Olly Betts <olly@survex.com>
9507         * queryparser/queryparser.lemony: Add a ParserHandler class to take
9508           care of releasing the yyParser object.
9510 Tue Apr 13 07:49:33 GMT 2010  Olly Betts <olly@survex.com>
9512         * common/autoptr.h: Fix comment typo.
9514 Tue Apr 13 07:47:40 GMT 2010  Olly Betts <olly@survex.com>
9516         * api/replication.cc: "autoptr.h" not <autoptr.h> (it's an in-tree
9517           header).
9519 Tue Apr 13 07:25:11 GMT 2010  Olly Betts <olly@survex.com>
9521         * queryparser/queryparser.lemony: Fix leak of yyParser if an exception
9522           is thrown during parsing.   Partly fixes ticket#462.
9523         * tests/api_backend.cc: Add regression test qpmemoryleak1.
9525 Tue Apr 13 01:37:08 GMT 2010  Olly Betts <olly@survex.com>
9527         * common/utils.cc,common/utils.h: Revert change to make removedir()
9528           recurse into subdirectories - it doesn't fix a bug, so isn't
9529           appropriate when we're trying to get 1.2.0 out (backends don't
9530           currently put files in subdirectories, which was the justification
9531           in the commit message).
9533 Mon Apr 12 11:50:37 GMT 2010  Olly Betts <olly@survex.com>
9535         * Backport change from brass:
9536         * backends/flint/: Fix to rebuild cursors if the table gains or loses a
9537           level.  Fixes ticket#455.
9539 Mon Apr 12 09:29:39 GMT 2010  Olly Betts <olly@survex.com>
9541         * Backport change from brass:
9542         * backends/chert/: Fix to rebuild cursors if the table gains or loses a
9543           level.  Fixes ticket#455.
9545 Mon Apr 12 09:26:53 GMT 2010  Olly Betts <olly@survex.com>
9547         * backends/brass/: Fix to rebuild cursors if the table gains or loses a
9548           level.  Fixes ticket#455.
9550 Mon Apr 12 08:27:29 GMT 2010  Olly Betts <olly@survex.com>
9552         * tests/api_none.cc: Work around compilation failure on OpenBSD.  Fixes
9553           ticket#458.
9555 Fri Apr 02 04:03:04 GMT 2010  Olly Betts <olly@survex.com>
9557         * m4-macros/xapian-1.1.m4: Give a more specific error message for the
9558           cases where XAPIAN_CONFIG isn't found, is a directory, or isn't
9559           executable.
9561 Thu Mar 25 14:43:57 GMT 2010  Olly Betts <olly@survex.com>
9563         * tests/api_backend.cc: Add databasemodified1 testcase to provide some
9564           test coverage for DatabaseModifiedError.
9566 Thu Mar 25 06:32:44 GMT 2010  Olly Betts <olly@survex.com>
9568         * bin/xapian-check-flint.cc: Report docid for doclength mismatch.
9570 Thu Mar 25 06:23:26 GMT 2010  Olly Betts <olly@survex.com>
9572         * bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Report docid for
9573           doclength mismatch.
9575 Sat Mar 20 15:04:18 GMT 2010  Olly Betts <olly@survex.com>
9577         * docs/spelling.rst: Add a note about removing automatically added
9578           spelling dictionary entries.
9580 Sat Mar 20 09:30:44 GMT 2010  Olly Betts <olly@survex.com>
9582         * docs/spelling.rst: Add section on indexing.  Move the "algorithm"
9583           section to the end, as it is really just background information for
9584           the curious.
9586 Wed Mar 17 01:33:39 GMT 2010  Olly Betts <olly@survex.com>
9588         * INSTALL: Add a hyphen.
9590 Wed Mar 17 01:30:34 GMT 2010  Olly Betts <olly@survex.com>
9592         * INSTALL: Correct description of --enable-assertions.  It does NOT
9593           enable debugging symbols, and shouldn't control checks on bad data
9594           passed to API calls (if it does anywhere, that's a bug).  Note that
9595           Xapian will run more slowly with assertions on.
9597 Wed Mar 17 01:10:13 GMT 2010  Olly Betts <olly@survex.com>
9599         * backends/brass/brass_values.cc: Put ValueUpdater in Brass namespace
9600           to avoid cross-linking issues with ValueUpdater class in chert
9601           (change taken from brass-btree branch).
9603 Sun Mar 14 10:05:36 GMT 2010  Olly Betts <olly@survex.com>
9605         * Backport change from chert:
9606         * backends/flint/flint_database.cc,
9607           backends/flint/flint_positionlist.cc,
9608           backends/flint/flint_positionlist.h: When updating a document, rather
9609           than decoding the old positions, comparing with the new, and then
9610           encoding the new if different, we now just encode the new and then
9611           compare the encoded forms.  (ticket#428)  This change also avoids
9612           calling FlintPositionListTable::del() when we know the entry doesn't
9613           already exist.
9614         * backends/flint/flint_positionlist.cc: Minor refactor to improve
9615           code clarity and to only create std::string variable when it
9616           is needed.
9618 Sun Mar 14 09:45:34 GMT 2010  Olly Betts <olly@survex.com>
9620         * Backport change from brass:
9621         * backends/chert/chert_positionlist.cc: Minor refactor to improve
9622           code clarity and to only create std::string variable when it
9623           is needed.
9625 Sun Mar 14 09:29:54 GMT 2010  Olly Betts <olly@survex.com>
9627         * backends/brass/brass_positionlist.cc: Minor refactor to improve
9628           code clarity and to only create std::string variable when it
9629           is needed.
9631 Sun Mar 14 07:37:03 GMT 2010  Olly Betts <olly@survex.com>
9633         * api/replication.cc,tests/api_closedb.cc,tests/api_metadata.cc,
9634           tests/internaltest.cc: Catch by const reference rather than just
9635           reference, unless we actually need to modify the caught object.
9637 Sun Mar 14 06:45:11 GMT 2010  Olly Betts <olly@survex.com>
9639         * api/replication.cc: Check live_db only has a single sub-database even
9640           if we just lazily opened it.
9642 Sun Mar 14 05:00:21 GMT 2010  Olly Betts <olly@survex.com>
9644         * backends/flint/flint_database.cc,
9645           backends/flint/flint_databasereplicator.cc: Add missing explicit
9646           '#include "str.h"'.
9648 Sat Mar 13 09:22:24 GMT 2010  Richard Boulton <richard@tartarus.org>
9650         * tests/api_replicate.cc: Always use off_t to refer to the size of a
9651           file: fixes warnings about comparting a signed value to an unsigned
9652           value.
9654 Thu Mar 11 16:07:10 GMT 2010  Richard Boulton <richard@tartarus.org>
9656         * api/replication.cc: Open the livedb lazily if it gets left in a
9657           closed state (due to an exception when applying a changeset),
9658           rather than reopening it straight away in an exception handler.
9659           This requires the livedb to become a mutable member, but is safer
9660           in the event that an exception is thrown by the WritableDatabase
9661           constructor.
9663 Thu Mar 11 15:17:12 GMT 2010  Richard Boulton <richard@tartarus.org>
9665         * tests/api_replicate.cc: Uncomment the rmtmpdir() at the end of
9666           replicate3; it was accidentally committed debugging code.
9668 Thu Mar 11 13:03:57 GMT 2010  Richard Boulton <richard@tartarus.org>
9670         * api/replication.cc: If an exception is thrown, mark that the
9671           offline revision needed is unknown (represented by being empty);
9672           ensures that a database isn't put live incorrectly in this case.
9673           Also, actually read the message for REPL_REPLY_END_OF_CHANGES, so
9674           that we get an error if the message is truncated.  Also, if an
9675           attempt to apply a changeset to the live database fails with an
9676           exception while the live database is closed, reopen the live
9677           database before allowing the exception to propagate.
9678         * tests/api_replicate.cc: Split replicate() helper function into
9679           two parts, to separate getting the changeset messages, and
9680           applying them. Add replicate3 test, which checks that
9681           replications which are provided with truncated messages raise
9682           appropriate errors.
9684 Thu Mar 11 00:46:39 GMT 2010  Olly Betts <olly@survex.com>
9686         * common/replicate_utils.cc: Avoid creating temporary string objects
9687           to reduce bloat in compiled code.  Remove explicit std:: qualifiers.
9689 Thu Mar 11 00:38:00 GMT 2010  Olly Betts <olly@survex.com>
9691         * common/replicate_utils.cc: The directory we're writing changesets
9692           to will always exist, so no need to ensure it does.
9694 Thu Mar 11 00:10:19 GMT 2010  Olly Betts <olly@survex.com>
9696         * backends/chert/chert_databasereplicator.cc,
9697           backends/flint/flint_databasereplicator.cc: Fix calculation of end
9698           pointer for changes file.  Since the merge, it has been off by
9699           CONST_STRLEN(CHANGES_MAGIC_STRING).
9701 Wed Mar 10 23:59:38 GMT 2010  Olly Betts <olly@survex.com>
9703         * backends/chert/chert_database.cc,
9704           backends/chert/chert_databasereplicator.cc: Add missing explicit
9705           '#include "str.h"'.
9707 Wed Mar 10 13:07:41 GMT 2010  Richard Boulton <richard@tartarus.org>
9709         * common/Makefile.mk,common/replicate_utils.cc,
9710           common/replicate_utils.h: Add some utility functions for
9711           replication to create changeset files, and append content to
9712           them, to avoid duplicating the code in each backend.
9713         * backends/chert/chert_database.cc,
9714           backends/chert/chert_databasereplicator.cc,
9715           backends/chert/chert_databasereplicator.h,
9716           backends/flint/flint_database.cc,
9717           backends/flint/flint_databasereplicator.cc,
9718           backends/flint/flint_databasereplicator.h: Make the
9719           DatabaseReplicator subclasses respect the XAPIAN_MAX_CHANGESETS
9720           environment variable, such that they write the changesets they're
9721           applying to disk if the value is non-zero.  Enables replication
9722           from a replicated copy.
9723         * tests/api_replicate.cc: Refactor some common code, and add
9724           replicate2, which tests replication from a replicated copy.  Skip
9725           this test for brass, since brass doesn't support this.
9727 Wed Mar 10 12:11:41 GMT 2010  Richard Boulton <richard@tartarus.org>
9729         * common/utils.cc,common/utils.h: Make removedir() recurse into
9730           subdirectories; this ensures that replication works if backends
9731           put some files in subdirectories of their replicas (eg, if the
9732           replica is itself a replicated database).
9734 Wed Mar 10 12:07:40 GMT 2010  Richard Boulton <richard@tartarus.org>
9736         * backends/chert/,backends/flint/,common/Makefile.mk,
9737           common/io_utils.cc,common/io_utils.h: Refactor duplicated code
9738           from {flint,chert}_io.{cc,h} into common/io_utils.{cc,h}.  Rename
9739           flint_io_read() to io_read(); do similar for flint_io_write()
9740           and flint_io_sync(), and for the chert versions.  Leave brass
9741           alone to avoid conflicting with the new brass backend development
9742           branch.
9744 Mon Mar 08 02:32:35 GMT 2010  Olly Betts <olly@survex.com>
9746         * bin/xapian-check-chert.cc: Check that the doclen initial chunk
9747           exists.
9749 Tue Mar 02 13:28:50 GMT 2010  Olly Betts <olly@survex.com>
9751         * Backport change from brass:
9752         * backends/chert/chert_database.cc,
9753           backends/chert/chert_positionlist.cc,
9754           backends/chert/chert_positionlist.h: When updating a document, rather
9755           than decoding the old positions, comparing with the new, and then
9756           encoding the new if different, we now just encode the new and then
9757           compare the encoded forms.  (ticket#428)  This change also avoids
9758           calling ChertPositionListTable::del() when we know the entry doesn't
9759           already exist.
9761 Tue Mar 02 04:00:22 GMT 2010  Olly Betts <olly@survex.com>
9763         * tests/harness/testsuite.cc: Harness now catches const char *
9764           exceptions explicitly so it can show their contents.
9766 Tue Mar 02 03:59:27 GMT 2010  Olly Betts <olly@survex.com>
9768         * include/xapian/valueiterator.h: Comment tweak.
9770 Tue Mar 02 03:57:55 GMT 2010  Olly Betts <olly@survex.com>
9772         * include/xapian/queryparser.h: Add missing forward declaration of
9773           "class Database".
9775 Tue Mar 02 01:51:33 GMT 2010  Olly Betts <olly@survex.com>
9777         * NEWS: Update partially from ChangeLog.
9779 Mon Mar 01 05:38:41 GMT 2010  Olly Betts <olly@survex.com>
9781         * backends/brass/brass_database.cc,
9782           backends/brass/brass_positionlist.cc,
9783           backends/brass/brass_positionlist.h: When updating a document, rather
9784           than decoding the old positions, comparing with the new, and then
9785           encoding the new if different, we now just encode the new and then
9786           compare the encoded forms.  (ticket#428)  This change also avoids
9787           calling BrassPositionListTable::del() when we know the entry doesn't
9788           already exist.
9790 Mon Mar 01 02:09:40 GMT 2010  Olly Betts <olly@survex.com>
9792         * net/serialise.cc: Don't call Document::values_count() twice when we
9793           can trivially avoid doing so.  Ditto for termlist_count() and
9794           positionlist_count().
9796 Mon Mar 01 01:53:58 GMT 2010  Olly Betts <olly@survex.com>
9798         * bin/: Rename tot_off to last_docid when it is actually holding the
9799           last_docid value.
9801 Sun Feb 28 23:47:49 GMT 2010  Olly Betts <olly@survex.com>
9803         * backends/flint/flint_table.cc: Whitespace tweak.
9805 Sun Feb 28 23:44:58 GMT 2010  Olly Betts <olly@survex.com>
9807         * tests/dbcheck.cc: Tweak whitespace to match standard usage.  Catch
9808           exceptions by const reference.
9809         * HACKING: Discuss why exceptions should be caught by const reference.
9810           Tweak markup of blockquotes.
9812 Sun Feb 28 22:50:50 GMT 2010  Olly Betts <olly@survex.com>
9814         * HACKING: Add note about "new SomePODType()" not being the same as
9815           "new SomePODType".
9817 Sun Feb 28 22:29:31 GMT 2010  Olly Betts <olly@survex.com>
9819         * HACKING: Quote ``cat`` and ``more``.
9821 Sun Feb 28 14:00:39 GMT 2010  Richard Boulton <richard@tartarus.org>
9823         * tests/api_compact.cc: Clarify comment about regression test for
9824           1.1.4, and remove a test line which is implicit in the following
9825           dbcheck() line anyway.
9827 Sun Feb 28 11:07:33 GMT 2010  Olly Betts <olly@survex.com>
9829         * tests/harness/fdtracker.cc,tests/harness/fdtracker.h: Add GPL
9830           boilerplate and copyright notices which I failed to do before
9831           committing these new files.
9833 Thu Feb 25 10:34:15 GMT 2010  Olly Betts <olly@survex.com>
9835         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
9836           Initialise z_stream members zalloc, zfree, and opaque with Z_NUL
9837           rather than 0 cast to the appropriate type, as that's what the zlib
9838           documentation says to do.  Add missing initialisation of opaque for
9839           the inflate z_stream which the docs say is needed, though reading
9840           the zlib code, isn't actually for current versions.
9842 Wed Feb 24 14:24:05 GMT 2010  Olly Betts <olly@survex.com>
9844         * backends/remote/remote-database.cc: Fix indentation.
9846 Wed Feb 24 14:18:25 GMT 2010  Olly Betts <olly@survex.com>
9848         * backends/remote/remote-database.cc,common/remote-database.h,
9849           common/remoteprotocol.h,common/remoteserver.h,
9850           docs/remote_protocol.html,net/remoteserver.cc,tests/api_spelling.cc:
9851           Add remote backend support for WritableDatabase::add_spelling() and
9852           WritableDatabase::remove_spelling().  This bumps the remote protocol
9853           to version 35.0 (so both client and servers will need updating).
9854           Suggesting spelling corrections isn't yet supported.  (ticket#178)
9856 Wed Feb 24 09:09:27 GMT 2010  Olly Betts <olly@survex.com>
9858         * examples/delve.cc: "lastdocid" -> "highest document id ever used"
9859           in output so it's clearer what this number means.
9861 Tue Feb 23 14:03:47 GMT 2010  Olly Betts <olly@survex.com>
9863         * api/postingsource.cc: Fix incorrect classname in error message.
9865 Tue Feb 23 13:16:11 GMT 2010  Olly Betts <olly@survex.com>
9867         * configure.ac: For -fno-strict-aliasing for GCC 4.2 to avoid bad code
9868           being generated due to a bug in that compiler version.  Fixes
9869           ticket#449.
9871 Tue Feb 23 03:08:02 GMT 2010  Olly Betts <olly@survex.com>
9873         * configure.ac,tests/harness/testsuite.cc: Use sigsetjmp() and
9874           siglongjmp() where available so that the set of blocked signals
9875           get restored and the test harness can catch a second incidence
9876           of a particular signal in a run.  Use sigaction() instead of
9877           signal() where available, which allows us to report the address
9878           associated with SIGSEGV, SIGFPE, SIGILL, and SIGBUS.
9880 Mon Feb 22 14:29:50 GMT 2010  Olly Betts <olly@survex.com>
9882         * backends/brass/brass_databasereplicator.cc,
9883           backends/chert/chert_databasereplicator.cc,
9884           backends/flint/flint_databasereplicator.cc: Fix exception message
9885           if we get an unsupported changeset type.
9887 Mon Feb 22 01:49:03 GMT 2010  Richard Boulton <richard@tartarus.org>
9889         * tests/dbcheck.cc: Check the wdf, doclen, and value bounds
9890           reported by the database against correct (tight) bounds
9891           calculated by iterating through the database contents.
9893 Mon Feb 22 01:47:20 GMT 2010  Richard Boulton <richard@tartarus.org>
9895         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
9896           Ensure that wdfs are reported to the stats object correctly when
9897           replacing documents.  These checks were absent entirely in chert,
9898           and incorrectly skipped in some cases in brass.
9900 Mon Feb 22 00:59:57 GMT 2010  Olly Betts <olly@survex.com>
9902         * tests/api_valuestream.cc: Reset tout before testing each interval.
9903           Prefer string() to "".
9905 Mon Feb 22 00:57:59 GMT 2010  Olly Betts <olly@survex.com>
9907         * docs/deprecation.rst,examples/delve.cc: Remove delve's -k option,
9908           accepted as an undocumented alias for -V since 0.9.10 for
9909           compatibility with 0.9.9 and earlier.  Just use -V instead.
9911 Mon Feb 22 00:45:37 GMT 2010  Olly Betts <olly@survex.com>
9913         * examples/delve.cc: If documents are specified, change "-V<valueno>"
9914           to only show calues for those documents.
9916 Sun Feb 21 14:11:58 GMT 2010  Olly Betts <olly@survex.com>
9918         * common/stringutils.h: Factor out looking up a character in the table
9919           into a separate inlined function.  Add C_islcxdigit() to check for
9920           an lower case hex digit.
9922 Sun Feb 21 11:10:10 GMT 2010  Olly Betts <olly@survex.com>
9924         * examples/Makefile.mk,examples/xapian-metadata.cc: Add new example
9925           "xapian-metadata" which allows you to get and set individual user
9926           metadata entries.
9928 Sun Feb 21 10:31:56 GMT 2010  Olly Betts <olly@survex.com>
9930         * configure.ac: Belatedly update version number to 1.1.4.
9932 Sat Feb 20 01:09:45 GMT 2010  Olly Betts <olly@survex.com>
9934         * tests/runtest.in: Now we have fd leak checking in the test harness,
9935           remove the ulimit as it doesn't add anything, and has caused problems
9936           on some Debian buildds.
9938 Fri Feb 19 02:08:25 GMT 2010  Olly Betts <olly@survex.com>
9940         * tests/harness/backendmanager.h,tests/harness/testsuite.cc:
9941           Call backendmanager->clean_up() before checking for fd leaks
9942           to avoid finding the sockets/pipes as leaks.  This means that
9943           clean_up() needs to handle being called more than once for
9944           a test sometimes (which the current versions do) so document
9945           that.
9947 Thu Feb 18 02:31:17 GMT 2010  Olly Betts <olly@survex.com>
9949         * examples/simpleindex.cc: Explicitly call commit() on the database,
9950           as that is good practice (since you see any exceptions).
9952 Thu Feb 18 01:52:10 GMT 2010  Olly Betts <olly@survex.com>
9954         * tests/api_wrdb.cc: Clear tout on each pass of the loop to avoid a
9955           lot of irrelevant output under --verbose if the test fails.
9957 Thu Feb 18 01:33:53 GMT 2010  Olly Betts <olly@survex.com>
9959         * tests/harness/testsuite.cc: Fix fd tracking change to work when
9960           HAVE_VALGRIND isn't defined.
9962 Thu Feb 18 00:46:20 GMT 2010  Olly Betts <olly@survex.com>
9964         * include/xapian/queryparser.h: Document the possible exception
9965           messages from QueryParser::parse_query().
9967 Thu Feb 18 00:20:18 GMT 2010  Olly Betts <olly@survex.com>
9969         * tests/harness/backendmanager.cc: Also explicitly commit after
9970           indexing for flint and chert.
9972 Wed Feb 17 15:58:04 GMT 2010  Olly Betts <olly@survex.com>
9974         * tests/harness/: Add machinery to check for leaked FDs.  Currently
9975           requires /proc/self/fd to work (so it works on at least Linux), but
9976           should do nothing on platforms without this directory.
9978 Wed Feb 17 15:53:30 GMT 2010  Olly Betts <olly@survex.com>
9980         * tests/harness/backendmanager.cc: Explicitly commit after indexing
9981           for brass, so we see any exceptions from the commit (commit from
9982           the dtor swallows any exceptions).
9984 Tue Feb 16 16:23:30 GMT 2010  Richard Boulton <richard@tartarus.org>
9986         * bin/xapian-compact.cc: Fix failure to set lastdocid to an
9987           appropriate value when using --no-renumber.
9988         * tests/api_compact.cc: Add regression test for this.
9990 Tue Feb 16 16:10:49 GMT 2010  Richard Boulton <richard@tartarus.org>
9992         * examples/delve.cc: Display the lastdocid value when displaying
9993           general database statistics.
9995 Tue Feb 16 15:39:50 GMT 2010  Richard Boulton <richard@tartarus.org>
9997         * bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Correct typo
9998           in error message.
10000 Mon Feb 15 13:59:45 GMT 2010  Olly Betts <olly@survex.com>
10002         * configure.ac: Update for 1.1.4.
10004 Mon Feb 15 13:58:44 GMT 2010  Olly Betts <olly@survex.com>
10006         * PLATFORMS: We don't support GCC < 3.1, so remove discussion of
10007           issues with GCC 2.95.
10009 Mon Feb 15 13:55:10 GMT 2010  Olly Betts <olly@survex.com>
10011         * PLATFORMS: Update from 1.0.18.
10013 Mon Feb 15 11:51:15 GMT 2010  Olly Betts <olly@survex.com>
10015         * NEWS: Update from ChangeLog.  Update from 1.0.18.
10017 Sun Feb 14 05:47:30 GMT 2010  Olly Betts <olly@survex.com>
10019         * queryparser/queryparser.lemony: Fix QueryParser to handle an explicit
10020           AND before a hated term (foo AND -bar).  (ticket#447)
10021         * tests/queryparsertest.cc: Add regression test cases.
10023 Fri Feb 12 01:27:32 GMT 2010  Olly Betts <olly@survex.com>
10025         * queryparser/termgenerator_internal.cc: Only include trailing '+' or
10026           '#' on a term if it isn't followed by a word character (makes more
10027           sense and matches QueryParser's behaviour).  (ticket#446)
10028         * tests/termgentest.cc: Add regression test.
10030 Thu Feb 11 04:30:56 GMT 2010  Olly Betts <olly@survex.com>
10032         * bin/xapian-inspect.cc: Add new "open" command to allow easy switching
10033           between tables.
10035 Wed Feb 10 02:40:36 GMT 2010  Olly Betts <olly@survex.com>
10037         * include/xapian/document.h: Rewrite the note about Document being a
10038           lazy handle to fix a few details and avoid nailing down the
10039           exact implementation.
10041 Wed Feb 10 00:37:54 GMT 2010  Olly Betts <olly@survex.com>
10043         * docs/admin_notes.rst: Update for chert and other recent changes.
10045 Wed Feb 10 00:37:04 GMT 2010  Olly Betts <olly@survex.com>
10047         * docs/replication_protocol.rst: Update.
10049 Mon Feb 08 12:05:05 GMT 2010  Olly Betts <olly@survex.com>
10051         * backends/brass/brass_version.cc: Fix comments about BRASS_VERSION
10052           which were previously just cut-and-pasted from those about
10053           CHERT_VERSION.
10055 Mon Feb 08 11:54:04 GMT 2010  Olly Betts <olly@survex.com>
10057         * backends/brass/brass_metadata.cc: Include missing headers.
10059 Mon Feb 08 09:23:00 GMT 2010  Olly Betts <olly@survex.com>
10061         * backends/brass/brass_document.h,backends/chert/chert_document.h:
10062           Fix typos in documentation comments.
10064 Mon Feb 08 08:27:09 GMT 2010  Olly Betts <olly@survex.com>
10066         * tests/harness/testsuite.cc: Remove unused headers <streambuf> and
10067           "omdebug.h".
10069 Mon Feb 08 01:28:48 GMT 2010  Olly Betts <olly@survex.com>
10071         * common/debuglog.h: Use std::boolalpha so bool is logged as "true"
10072           or "false" (instead of "1" or "0").
10074 Sat Feb 06 10:04:42 GMT 2010  Olly Betts <olly@survex.com>
10076         * AUTHORS: Sync with 1.0 branch.
10078 Sat Feb 06 08:20:31 GMT 2010  Olly Betts <olly@survex.com>
10080         * tests/api_closedb.cc: Avoid trying to create a database where
10081           an already open one exists (which fails on Microsoft Windows).
10082           (ticket#443).
10084 Fri Feb 05 13:28:08 GMT 2010  Olly Betts <olly@survex.com>
10086         * examples/simpleexpand.cc,examples/simpleindex.cc,
10087           examples/simplesearch.cc: Handle --help and --version.
10089 Fri Feb 05 13:25:37 GMT 2010  Olly Betts <olly@survex.com>
10091         * bin/xapian-compact.cc: Fix not to assign elements off the end of a
10092           vector (ticket#440).
10094 Fri Feb 05 11:41:05 GMT 2010  Richard Boulton <richard@tartarus.org>
10096         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
10097           Remove ValueCountMatchSpy::get_values().  values_begin() should
10098           be used instead to iterate over the values.
10100 Fri Feb 05 07:39:46 GMT 2010  Olly Betts <olly@survex.com>
10102         * configure.ac: Enable automake's std-options feature to check all
10103           installed programs support --help and --version.
10105 Fri Feb 05 01:45:49 GMT 2010  Olly Betts <olly@survex.com>
10107         * include/xapian/document.h: Add Document::add_boolean_term().
10108         * tests/api_none.cc: Add testcase document1 as a feature test.
10110 Fri Feb 05 00:27:52 GMT 2010  Olly Betts <olly@survex.com>
10112         * backends/chert/chert_btreebase.cc,backends/flint/flint_btreebase.cc:
10113           Add missing SEQUENTIAL entry to documentation of base file format.
10115 Thu Feb 04 03:06:26 GMT 2010  Olly Betts <olly@survex.com>
10117         * tests/api_compact.cc: Fix to work with MSVC makefiles (ticket#440).
10119 Thu Feb 04 03:04:43 GMT 2010  Olly Betts <olly@survex.com>
10121         * HACKING,common/Makefile.mk,common/safesyswait.h: Add wrapper
10122           for <sys/wait.h> which defines macros for WEXITSTATUS and
10123           WIFEXITED when required.
10125 Wed Feb 03 15:01:36 GMT 2010  Richard Boulton <richard@tartarus.org>
10127         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
10128           Add ValueCountMatchSpy::values_begin() and values_end() to allow
10129           iteration over all the values in a ValueCountMatchSpy without
10130           needing to handle the dict.  Move the contents of
10131           ValueCountMatchSpy into a reference counted internal object, so
10132           that the iterator can ensure that the contents aren't deleted
10133           before it finishes.
10135 Wed Feb 03 15:01:02 GMT 2010  Richard Boulton <richard@tartarus.org>
10137         * tests/generate-api_generated: Add ValueCountMatchSpy to the list
10138           of non-copyable API classes.
10140 Wed Feb 03 13:18:03 GMT 2010  Richard Boulton <richard@tartarus.org>
10142         * include/xapian/matchspy.h,tests/api_matchspy.cc: Provide an
10143           iterator for accessing the top values found by a matchspy, rather
10144           than using a method which takes a vector reference as a
10145           parameter.  Should be wrappable much more nicely (and get wrapped
10146           automatically), and be easier to use: the testcase for this is
10147           significantly shorter than for the old API.  Remove
10148           StringAndFrequency from API - it's now just an internal class.
10149         * api/matchspy.cc: Test new access method for top_values.
10151 Wed Feb 03 06:46:37 GMT 2010  Olly Betts <olly@survex.com>
10153         * AUTHORS: Add Emmanuel Engelhart for reporting problems indexing
10154           Burmese text.
10156 Wed Feb 03 06:32:03 GMT 2010  Olly Betts <olly@survex.com>
10158         * include/xapian/unicode.h,queryparser/queryparser.lemony,
10159           queryparser/termgenerator_internal.cc: Add ENCLOSING_MARK and
10160           COMBINING_SPACING_MARK categories to is_wordchar().  Make
10161           TermGenerator and QueryParser ignore several zero-width space
10162           characters.
10163         * tests/queryparsertest.cc,tests/termgentest.cc: Add test coverage for
10164           the changes.
10166 Wed Feb 03 03:14:30 GMT 2010  Olly Betts <olly@survex.com>
10168         * queryparser/queryparser.lemony: Fix apostrophe abuse in comment.
10170 Wed Feb 03 01:23:04 GMT 2010  Olly Betts <olly@survex.com>
10172         * queryparser/queryparser.lemony: Make TermList::as_opwindow_query()
10173           private.
10175 Wed Feb 03 01:19:19 GMT 2010  Olly Betts <olly@survex.com>
10177         * common/replication.h: Use "" not <> for including API headers.
10179 Wed Feb 03 01:08:58 GMT 2010  Olly Betts <olly@survex.com>
10181         * common/replication.h: Remove warnings about this being an
10182           experimental API, which no longer make sense now it is internal.
10184 Tue Feb 02 21:59:59 GMT 2010  Olly Betts <olly@survex.com>
10186         * tests/generate-api_generated: Remove DatabaseReplica.
10188 Tue Feb 02 17:01:23 GMT 2010  Richard Boulton <richard@tartarus.org>
10190         * include/xapian/document.h: Add a note to the API documentation
10191           for the Document class about the potential issues involved in
10192           lazy loading.  Fixes ticket #421.
10194 Tue Feb 02 16:21:39 GMT 2010  Richard Boulton <richard@tartarus.org>
10196         * docs/categorisation.rst: Remove documentation of NumericRanges
10197           stuff for now, since the NumericRanges is no longer on trunk.
10199 Tue Feb 02 15:59:14 GMT 2010  Richard Boulton <richard@tartarus.org>
10201         * common/replication.h: Put the ReplicationInfo, DatabaseMaster and
10202           DatabaseReplica symbols back into public visibility - they're
10203           needed for the tests, and for the command line scripts.
10205 Tue Feb 02 15:06:44 GMT 2010  Richard Boulton <richard@tartarus.org>
10207         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
10208           Remove NumericRanges from trunk - their API is still uncertain,
10209           so I want to do a bit more development work on them on the
10210           matchspy branch before committing to support them for several
10211           years.
10213 Tue Feb 02 13:45:24 GMT 2010  Richard Boulton <richard@tartarus.org>
10215         * api/replication.cc,backends/brass/brass_database.cc,
10216           backends/chert/chert_database.cc,backends/flint/flint_database.cc,
10217           common/,include/Makefile.mk,include/xapian/replication.h,
10218           net/replicatetcpclient.cc,net/replicatetcpserver.cc,
10219           tests/generate-api_generated: Move replication support out of the
10220           public API headers and public symbol visibility.  Access to
10221           replication, for now, is via the command-line scripts: this is
10222           similar to the access to running a remote database server, and
10223           the access to database compaction and checking.  See ticket #347
10224           for some commentary.
10226 Tue Feb 02 07:22:28 GMT 2010  Olly Betts <olly@survex.com>
10228         * Backport change from chert:
10229         * backends/flint/flint_alltermslist.h,backends/flint/flint_spelling.h,
10230           backends/flint/flint_spellingwordslist.h: Add missing std::
10231           qualifiers.
10233 Tue Feb 02 07:12:51 GMT 2010  Olly Betts <olly@survex.com>
10235         * docs/doxygen_api.conf.in: Add generated include/xapian/error.h so
10236           that Xapian::Error and subclass API docs are collated for a VPATH
10237           build.
10238         * docs/Makefile.am: Add regression test to make sure doxygen collated
10239           API docs for Xapian::RuntimeError.
10241 Tue Feb 02 06:52:55 GMT 2010  Olly Betts <olly@survex.com>
10243         * Backport change from brass:
10244         * backends/chert/chert_alltermslist.h,backends/chert/chert_spelling.h,
10245           backends/chert/chert_spellingwordslist.h: Add missing std::
10246           qualifiers.
10248 Tue Feb 02 01:34:52 GMT 2010  Richard Boulton <richard@tartarus.org>
10250         * docs/replication.rst: Add note about not using reopen() with
10251           databases being updated by the replication client.
10253 Tue Feb 02 01:17:34 GMT 2010  Richard Boulton <richard@tartarus.org>
10255         * api/matchspy.cc,docs/categorisation.rst,include/xapian/matchspy.h,
10256           tests/api_matchspy.cc: Remove score_evenness(), since it turned
10257           out to be of little or no use in practical situations.  See
10258           ticket #435 for more details.
10260 Mon Feb 01 21:53:41 GMT 2010  Olly Betts <olly@survex.com>
10262         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Use
10263           LOGCALL_VOID for add() methods which now return void.
10265 Mon Feb 01 21:50:05 GMT 2010  Olly Betts <olly@survex.com>
10267         * Backport change from brass:
10268         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
10269           Fix documentation comments for FlintTable::add() and
10270           FlintTable::del() - errors actually cause exceptions, not a false
10271           return value, and del() returns true if it actually removed an entry.
10272           Fix FlintTable::add() to throw an exception for the (hopefully never
10273           hit) case when the tag value is too insanely large to handle.  With
10274           that FlintTable::add() always returns true, and we never check the
10275           return value anyway, so just make it return void.
10277 Mon Feb 01 21:37:33 GMT 2010  Olly Betts <olly@survex.com>
10279         * Backport change from brass:
10280         * backends/chert/chert_table.cc,backends/chert/chert_table.h:
10281           Fix documentation comments for ChertTable::add() and
10282           ChertTable::del() - errors actually cause exceptions, not a false
10283           return value, and del() returns true if it actually removed an entry.
10284           Fix ChertTable::add() to throw an exception for the (hopefully never
10285           hit) case when the tag value is too insanely large to handle.  With
10286           that ChertTable::add() always returns true, and we never check the
10287           return value anyway, so just make it return void.
10289 Mon Feb 01 16:02:27 GMT 2010  Richard Boulton <richard@tartarus.org>
10291         * bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Fix checking
10292           of the METAINFO key in chert and brass.  For small databases, the
10293           statistics fit in few enough bytes that the trailing
10294           unpack_uint_last() moved to end, so errors weren't being
10295           reported, but for large databases the check was incorrectly
10296           reporting an error.
10298 Mon Feb 01 09:24:14 GMT 2010  Olly Betts <olly@survex.com>
10300         * backends/brass/brass_table.cc,backends/brass/brass_table.h:
10301           Fix documentation comments for BrassTable::add() and
10302           BrassTable::del() - errors actually cause exceptions, not a false
10303           return value, and del() returns true if it actually removed an entry.
10304           Fix BrassTable::add() to throw an exception for the (hopefully never
10305           hit) case when the tag value is too insanely large to handle.  With
10306           that BrassTable::add() always returns true, and we never check the
10307           return value anyway, so just make it return void.
10309 Mon Feb 01 01:45:09 GMT 2010  Olly Betts <olly@survex.com>
10311         * backends/brass/brass_alltermslist.h,backends/brass/brass_spelling.h,
10312           backends/brass/brass_spellingwordslist.h: Add missing std::
10313           qualifiers.
10315 Mon Feb 01 00:57:21 GMT 2010  Olly Betts <olly@survex.com>
10317         * backends/flint/flint_spelling.h: Add missing std:: qualifier.
10319 Mon Feb 01 00:52:27 GMT 2010  Olly Betts <olly@survex.com>
10321         * backends/brass/brass_spelling.h,backends/chert/chert_spelling.h:
10322           Add missing std:: qualifier.
10324 Sun Jan 31 23:35:52 GMT 2010  Olly Betts <olly@survex.com>
10326         * backends/chert/chert_termlisttable.cc,
10327           backends/chert/chert_termlisttable.h: Remove
10328           ChertTermListTable::get_doclength() as it is no longer used.
10330 Sun Jan 31 23:19:50 GMT 2010  Olly Betts <olly@survex.com>
10332         * backends/brass/brass_termlisttable.cc,
10333           backends/brass/brass_termlisttable.h: Remove
10334           BrassTermListTable::get_doclength() as it is no longer used.
10336 Sun Jan 31 09:19:39 GMT 2010  Olly Betts <olly@survex.com>
10338         * bin/xapian-inspect.cc: "until" improvements:
10339           + No longer reports the current key and tag.
10340           + If passed a key before the current one, no longer silently advances
10341             to the next key.
10342           + Explicitly says if the specified key doesn't exist, including where
10343             we ended up.
10345 Sun Jan 31 00:19:41 GMT 2010  Olly Betts <olly@survex.com>
10347         * tests/api_compact.cc: Use a single Document object rather than
10348           creating the same one 10000 times.
10350 Sun Jan 31 00:08:38 GMT 2010  Olly Betts <olly@survex.com>
10352         * tests/api_compact.cc: Move make_multichunk_db() before the testcase
10353           which uses it, rather than between two helper functions for another
10354           testcase.
10356 Sun Jan 31 00:07:03 GMT 2010  Olly Betts <olly@survex.com>
10358         * tests/api_compact.cc: Remove confusing comment, cut-and-pasted from
10359           elsewhere and not relevant here.
10361 Fri Jan 29 06:13:18 GMT 2010  Olly Betts <olly@survex.com>
10363         * backends/brass/brass_metadata.cc,backends/chert/chert_metadata.cc,
10364           backends/flint/flint_metadata.cc: Correct filenames in @file.
10366 Thu Jan 28 22:34:03 GMT 2010  Richard Boulton <richard@tartarus.org>
10368         * tests/api_compact.cc: Add check that xapian-compact works
10369           correctly on a database with multiple chunks for a single term;
10370           this is a regression test for ticket #427
10372 Thu Jan 28 22:33:16 GMT 2010  Richard Boulton <richard@tartarus.org>
10374         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Don't
10375           cut the extra byte of doclen chunk keys.
10377 Thu Jan 28 21:23:48 GMT 2010  Richard Boulton <richard@tartarus.org>
10379         * bin/xapian-compact-flint.cc: Revert previous patch for flint - it
10380           only applies to new key format used by chert and brass.
10382 Thu Jan 28 21:13:38 GMT 2010  Richard Boulton <richard@tartarus.org>
10384         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc,
10385           bin/xapian-compact-flint.cc: Partial fix for #427: truncate
10386           follow-on keys for postlist chunks fully (was leaving the
10387           trailing 0-byte, causing the code for chert and brass to
10388           incorrectly think a new chunk had started, resulting in a
10389           truncated posting list.
10391 Thu Jan 28 20:42:47 GMT 2010  Richard Boulton <richard@tartarus.org>
10393         * bin/xapian-inspect.cc: Add "until" command to display keys until
10394           a specified one.  Useful for seeing all keys for a particular
10395           posting list, etc.
10397 Thu Jan 28 01:31:54 GMT 2010  Olly Betts <olly@survex.com>
10399         * tests/dbcheck.cc: Whitespace tweak.
10401 Wed Jan 27 06:29:21 GMT 2010  Olly Betts <olly@survex.com>
10403         * tests/dbcheck.cc: <config.h> not "config.h".
10405 Wed Jan 27 04:20:42 GMT 2010  Olly Betts <olly@survex.com>
10407         * backends/brass/brass_inverter.h: Make two getters const.
10409 Wed Jan 27 04:01:17 GMT 2010  Olly Betts <olly@survex.com>
10411         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
10412           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10413           Add ChertWritableDatabase::insert_mod_plist() to handle the simpler
10414           case where we know the document doesn't already exist, to avoid
10415           adding extra code to that common path over the code we had before
10416           the #250-related changes.
10418 Tue Jan 26 03:25:59 GMT 2010  Olly Betts <olly@survex.com>
10420         * tests/internaltest.cc: In testcase pack_uint_preserving_sort1, use
10421           data() not c_str(), calculate the end position just once, and use
10422           swap to copy the current packed to prev_packed.
10424 Fri Jan 15 12:51:38 GMT 2010  Olly Betts <olly@survex.com>
10426         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
10427           Fix to use 'M' as the flag character for modified entries in
10428           modplists (not 'U').  We never explicitly check for 'M' (we check for
10429           'A' vs 'D' vs something else), so this isn't a functional change,
10430           but rather making the values consistent (as they were before the
10431           fix for #250).
10433 Fri Jan 15 08:25:14 GMT 2010  Olly Betts <olly@survex.com>
10435         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
10436           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10437           Use Xapian::termcount_diff instead of Xapian::termcount for
10438           parameters of add_freq_delta() which can be signed.  Fix parameter
10439           docs to say "change" instead of "increase".
10441 Fri Jan 15 06:05:28 GMT 2010  Olly Betts <olly@survex.com>
10443         * tests/api_replacedoc.cc: Just test that begin == end when we expect
10444           no positions rather than generating a string representation and
10445           then testing if it is empty.
10447 Thu Jan 14 11:17:36 GMT 2010  Olly Betts <olly@survex.com>
10449         * HACKING: Auto-enabling of -Werror is now done for GCC 4.1 or newer.
10451 Thu Jan 14 05:06:42 GMT 2010  Olly Betts <olly@survex.com>
10453         * HACKING: Include the MIT licence text in HACKING itself.
10454         * COPYING_MIT: Remove external copy of text - it could mislead users
10455           into thinking that this is the current licence of Xapian.
10457 Sun Jan 10 07:36:16 GMT 2010  Olly Betts <olly@survex.com>
10459         * configure.ac:With --enable-maintainer-mode, enable -Werror for GCC
10460           >= 4.1 rather than >= 4.0 as Apple's GCC 4.0 gives bogus
10461           uninitialised variable warnings for pack.h.
10463 Sat Jan 09 00:56:06 GMT 2010  Olly Betts <olly@survex.com>
10465         * queryparser/queryparser.lemony: Add support for quoting boolean terms
10466           so they can contain arbitrary characters (partly addresses
10467           ticket#128).
10468         * tests/queryparsertest.cc: Add test coverage.
10470 Fri Jan 08 13:25:25 GMT 2010  Richard Boulton <richard@tartarus.org>
10472         * tests/api_compact.cc: Add copyright note for my changes committed
10473           earlier today.
10475 Fri Jan 08 12:19:07 GMT 2010  Olly Betts <olly@survex.com>
10477         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Fix merging
10478           of databases by xapian-compact for brass and chert.
10479         * tests/api_compact.cc: Enable test compactmerge1 for brass and chert
10480           as a regression test.
10482 Fri Jan 08 11:26:41 GMT 2010  Olly Betts <olly@survex.com>
10484         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
10485           backends/flint/flint_database.cc: Rearrange comparison between old
10486           and new termlists to avoid double check of termlist.at_end().
10488 Fri Jan 08 11:22:30 GMT 2010  Richard Boulton <richard@tartarus.org>
10490         * tests/api_compact.cc: Add test of xapian-compact when merging
10491           databases.  Currently, the generated databases are broken for
10492           chert and brass, so skipping the test for those to avoid breaking
10493           the snapshotter.
10495 Fri Jan 08 11:13:13 GMT 2010  Richard Boulton <richard@tartarus.org>
10497         * tests/: Move routines for helping to check database contents and
10498           consistency into dbcheck.cc, with headers in dbcheck.h.
10500 Fri Jan 08 10:07:09 GMT 2010  Richard Boulton <richard@tartarus.org>
10502         * tests/internaltest.cc: Add test_pack_uint_preserving_sort1()
10503           which I wrote when suspicious of that function - passes fine, but
10504           probably worth keeping the test coverage.
10506 Fri Jan 08 00:23:06 GMT 2010  Olly Betts <olly@survex.com>
10508         * AUTHORS: Add Henry Combrinck for Search::Xapian patches.
10510 Thu Jan 07 15:51:57 GMT 2010  Richard Boulton <richard@tartarus.org>
10512         * api/postingsource.cc: For ValueWeightPostingSources for which
10513           there are no entries, the upper bound returned will be an empty
10514           string, which translated to -inf when passed to
10515           sortable_unserialise().  This was causing the matcher to get
10516           confused and return no results in some queries involving such a
10517           posting source.  This commit fixes this.
10518         * tests/api_postingsource.cc: Add emptyvalwtsource1 as a regression
10519           test for this, and a general test of this area of code.
10521 Thu Jan 07 09:17:58 GMT 2010  Olly Betts <olly@survex.com>
10523         * backends/brass/brass_inverter.h: Fix comment typo.
10525 Wed Dec 30 11:46:45 GMT 2009  Richard Boulton <richard@tartarus.org>
10527         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
10528           backends/flint/flint_database.cc: When updating documents, don't
10529           update posting entries which havn't changed.  Largely fixes
10530           ticket #250.
10531         * AUTHORS: Add Kan-Ru Chen, since his patch attached to ticket #250
10532           was the basis of this fix.
10534 Wed Dec 30 11:44:18 GMT 2009  Richard Boulton <richard@tartarus.org>
10536         * backends/brass/brass_inverter.h: Add methods for updating an
10537           existing posting, so we don't have to remove then re-add it.
10539 Wed Dec 30 11:41:57 GMT 2009  Richard Boulton <richard@tartarus.org>
10541         * backends/brass/brass_database.h: Remove old unused members:
10542           total_length and lastdocid.
10544 Wed Dec 30 01:07:04 GMT 2009  Richard Boulton <richard@tartarus.org>
10546         * backends/chert/chert_database.h: Remove old unused members:
10547           total_length and lastdocid.
10549 Wed Dec 30 00:21:03 GMT 2009  Richard Boulton <richard@tartarus.org>
10551         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
10552           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10553           Move frequently repeated code for updating the freq_deltas and
10554           mod_plists items into separate functions.  Makes the code
10555           considerably clearer, and prepares the way for applying the patch
10556           to fix ticket #250.
10558 Wed Dec 30 00:07:33 GMT 2009  Richard Boulton <richard@tartarus.org>
10560         * tests/api_replacedoc.cc: Add a few more sequences of operations
10561           which look worth testing, after looking at the code implementing
10562           replace_document().
10564 Tue Dec 29 22:29:08 GMT 2009  Richard Boulton <richard@tartarus.org>
10566         * tests/api_replacedoc.cc: Check consistency of the posting lists
10567           with the termlists, and consistency of the statistics, at each
10568           step of modtermwdf1.  Also, add some other terms to the document,
10569           so we can check the stored doclength for terms which haven't been
10570           modified.
10572 Sun Dec 27 14:56:16 GMT 2009  Richard Boulton <richard@tartarus.org>
10574         * backends/chert/chert_modifiedpostlist.cc,
10575           backends/flint/flint_modifiedpostlist.cc: Report the wdf from the
10576           modifications, rather the sum of the wdf from the modifications
10577           and the old wdf.  The old behaviour was just wrong, but we had no
10578           test coverage for this until the last commit.
10580 Sun Dec 27 13:34:06 GMT 2009  Richard Boulton <richard@tartarus.org>
10582         * tests/api_replacedoc.cc: Add test of the contents of the
10583           postlist of a term which is being modified.  Also, tidy up the
10584           output of docterms_to_string() to skip any empty position lists.
10586 Sat Dec 26 19:21:19 GMT 2009  Richard Boulton <richard@tartarus.org>
10588         * tests/api_replacedoc.cc: Extend test to cover removing a term but
10589           not deleting it, and finally deleting the document.
10591 Thu Dec 24 19:18:41 GMT 2009  Richard Boulton <richard@tartarus.org>
10593         * tests/api_replacedoc.cc: Expand test to cover some modification
10594           to the positional information.
10596 Thu Dec 24 19:06:32 GMT 2009  Richard Boulton <richard@tartarus.org>
10598         * tests/api_replacedoc.cc: Add some more sets of modification
10599           operations to the tests.
10601 Thu Dec 24 18:55:37 GMT 2009  Richard Boulton <richard@tartarus.org>
10603         * tests/api_replacedoc.cc: Add test modtermwdf1, which tests a lot
10604           more cases where documents are modified.
10606 Thu Dec 24 14:36:38 GMT 2009  Olly Betts <olly@survex.com>
10608         * tests/: Canonicalise the conditions on testcases.
10610 Thu Dec 24 14:08:59 GMT 2009  Olly Betts <olly@survex.com>
10612         * tests/api_closedb.cc: Fix typo in last commit.
10614 Thu Dec 24 13:39:28 GMT 2009  Olly Betts <olly@survex.com>
10616         * tests/api_closedb.cc: Check WritableDatabase::close() during a
10617           transaction does *NOT* implicitly call commit().
10619 Thu Dec 24 13:07:09 GMT 2009  Olly Betts <olly@survex.com>
10621         * backends/brass/brass_database.cc,backends/brass/brass_database.h,
10622           backends/chert/chert_database.cc,backends/chert/chert_database.h,
10623           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10624           Fix WritableDatabase::close() to commit() changes (unless a
10625           transaction is in progress).
10626         * tests/api_closedb.cc: Add regression test closedb4.
10628 Wed Dec 23 00:26:34 GMT 2009  Olly Betts <olly@survex.com>
10630         * backends/brass/brass_database.cc,backends/brass/brass_inverter.cc,
10631           backends/brass/brass_inverter.h: For allterms iteration of a
10632           WritableDatabase, if a prefix is specified only flush changes for
10633           terms with that prefix.  Also, don't flush document lengths for
10634           allterms iteration.
10636 Tue Dec 22 22:48:55 GMT 2009  Olly Betts <olly@survex.com>
10638         * bin/xapian-check.cc: Fixed reversed checks for chert and flint being
10639           enabled in r13781.
10641 Tue Dec 22 14:20:24 GMT 2009  Olly Betts <olly@survex.com>
10643         * tests/harness/testrunner.cc: Add brass variants of multi and remote
10644           backends.
10646 Tue Dec 22 14:15:43 GMT 2009  Olly Betts <olly@survex.com>
10648         * bin/: Implement xapian-check and xapian-compact support for brass.
10650 Tue Dec 22 13:41:08 GMT 2009  Olly Betts <olly@survex.com>
10652         * bin/: Split the chert-specific checking code into a separate file
10653           so xapian-check.cc is just the driver code.
10655 Tue Dec 22 12:47:59 GMT 2009  Olly Betts <olly@survex.com>
10657         * backends/brass/: Add new Inverter class to encapsulate the inversion
10658           data structures and associated code.  Instead of carefully iterating
10659           modified posting lists and document length lists, just flush the
10660           particular list needed to disk and iterate that.  This is much
10661           simpler and more obviously free of subtle bugs, and means we don't
10662           need to use data structures which allow such iteration.
10664 Tue Dec 22 12:25:04 GMT 2009  Olly Betts <olly@survex.com>
10666         * backends/brass/,backends/dbfactory.cc,include/xapian/dbfactory.h,
10667           include/xapian/valueiterator.h,include/xapian/version_h.cc,
10668           tests/harness/Makefile.mk: Fix to actually build brass.  Testsuite
10669           doesn't currently all pass.
10671 Tue Dec 22 04:26:17 GMT 2009  Olly Betts <olly@survex.com>
10673         * HACKING,INSTALL,backends/Makefile.mk,backends/brass/,
10674           backends/chert/dir_contents,backends/databasereplicator.cc,
10675           backends/dbfactory.cc,common/pack.h,configure.ac,docs/,tests/,
10676           tests/harness/: Add new development backend called "brass" and
10677           promote "chert" to being the stable backend.
10679 Mon Dec 21 09:41:57 GMT 2009  Olly Betts <olly@survex.com>
10681         * backends/chert/chert_database.cc: Update comment about
10682           MAX_SAFE_TERM_LENGTH to reflect the key format changes.
10684 Mon Dec 21 08:12:55 GMT 2009  Olly Betts <olly@survex.com>
10686         * backends/chert/chert_alldocsmodifiedpostlist.cc,
10687           backends/chert/chert_alldocsmodifiedpostlist.h: Change reference
10688           parameter to const reference.
10690 Mon Dec 21 03:19:09 GMT 2009  Olly Betts <olly@survex.com>
10692         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
10693           Replacing a document deleted since the last flush failed to update
10694           the collection frequency and wdf, and caused an assertion failure
10695           when assertions were enabled.
10696         * tests/api_backend.cc: Add regression test replacedoc8.
10698 Sun Dec 20 07:26:30 GMT 2009  Olly Betts <olly@survex.com>
10700         * configure.ac: Divert to AS_MESSAGE_LOG_FD rather than literal fd 5.
10701           Divert more output to AS_MESSAGE_LOG_FD rather than /dev/null.
10703 Thu Dec 17 13:53:31 GMT 2009  Olly Betts <olly@survex.com>
10705         * NEWS: Update from ChangeLog.
10707 Thu Dec 17 13:36:54 GMT 2009  Olly Betts <olly@survex.com>
10709         * Backport change from chert:
10710         * backends/flint/flint_alltermslist.cc: Tweak to not apply the
10711           prefix test in the "at end" case.
10712         * backends/flint/flint_alltermslist.cc: There's no point checking
10713           follow-on chunks match the prefix - the first chunk we'll hit
10714           which doesn't match has to be an initial chunk for a term.
10716 Thu Dec 17 11:57:31 GMT 2009  Olly Betts <olly@survex.com>
10718         * tests/api_replacedoc.cc: Fix to test the right variable.
10720 Thu Dec 17 11:16:51 GMT 2009  Olly Betts <olly@survex.com>
10722         * tests/api_wrdb.cc: The regression test replacedoc5 no longer actually
10723           checks for the situation it was written for, due to the shortcutting
10724           we now do in flint and chert when replacing a document with itself,
10725           so extend it with a check with that behaviour suppressed (fortunately
10726           it still passes).
10728 Wed Dec 16 12:03:13 GMT 2009  Olly Betts <olly@survex.com>
10730         * backends/chert/,bin/Makefile.mk,common/pack.h: Change the packing
10731           of uints and strings into sortable keys in chert databases, which
10732           reduces database size by 2.5% in tests.  This means an incompatible
10733           change in the chert format.
10734         * bin/xapian-chert-update.cc: Utility to update a chert database from
10735           the old format to the new format.  It works much like xapian-compact
10736           so should take a similar amount of time (and results in a compact
10737           database).
10738         * tests/api_wrdb.cc: Adjust the test which checks a string of zero
10739           bytes fails in the correct way - 126 zero bytes is now handled, so
10740           we need 127 to check the failure mode.
10742 Wed Dec 16 11:52:27 GMT 2009  Olly Betts <olly@survex.com>
10744         * bin/xapian-compact.cc: Ensure that the resultant database has a
10745           fresh UUID (previously chert copied the UUID from the first input,
10746           while flint didn't set a UUID so one was generated on demand when
10747           next requested, if the database is writable.
10748         * tests/api_compact.cc: Add tests that a UUID is set and that it is
10749           different from that of the input.
10751 Wed Dec 16 09:57:27 GMT 2009  Olly Betts <olly@survex.com>
10753         * examples/quest.cc: If no database is specified, still parse the query
10754           and report get_description() on it as this provides a useful way to
10755           see how a query parses.
10757 Wed Dec 16 00:40:51 GMT 2009  Olly Betts <olly@survex.com>
10759         * languages/german.sbl,languages/german2.sbl: Update the german and
10760           german2 stemming algorithms to the latest versions from Snowball.
10761           These add an extra rule for the "-nisse" ending.
10763 Tue Dec 15 13:08:33 GMT 2009  Olly Betts <olly@survex.com>
10765         * bin/: Split apart the flint and chert compaction code.  Should be
10766           no change in functionality.
10768 Tue Dec 15 10:11:10 GMT 2009  Olly Betts <olly@survex.com>
10770         * backends/chert/chert_alltermslist.cc: Tweak to not apply the
10771           prefix test in the "at end" case.
10773 Tue Dec 15 09:40:19 GMT 2009  Olly Betts <olly@survex.com>
10775         * backends/chert/chert_alltermslist.cc: There's no point checking
10776           follow-on chunks match the prefix - the first chunk we'll hit
10777           which doesn't match has to be an initial chunk for a term.
10779 Tue Dec 15 08:24:04 GMT 2009  Olly Betts <olly@survex.com>
10781         * include/xapian/: Convert DerefStringWrapper_ to a templated
10782           DerefWrapper_ and use it instead of DocIDWrapper and TermPosWrapper.
10784 Tue Dec 15 08:23:08 GMT 2009  Olly Betts <olly@survex.com>
10786         * include/xapian/query.h: Mark Query::Internal as @private for doxygen.
10788 Tue Dec 15 03:59:44 GMT 2009  Olly Betts <olly@survex.com>
10790         * common/pack.h: Return false not true if
10791           unpack_string_preserving_sort() fails.  Add assertions that the
10792           source pointer isn't NULL to all the functions.
10794 Tue Dec 15 02:30:24 GMT 2009  Olly Betts <olly@survex.com>
10796         * examples/delve.cc: Improve phrasing ("unique terms" -> "distinct
10797           terms").
10799 Sat Dec 12 13:07:51 GMT 2009  Richard Boulton <richard@tartarus.org>
10801         * tests/Makefile.am,tests/api_posdb.cc,tests/api_replacedoc.cc:
10802           Split my recently added replacedoc test out into a new file.
10804 Sat Dec 12 12:58:22 GMT 2009  Richard Boulton <richard@tartarus.org>
10806         * tests/api_posdb.cc: Extend test of document modification to cover
10807           removing the last term in the document, too.
10809 Sat Dec 12 12:57:43 GMT 2009  Richard Boulton <richard@tartarus.org>
10811         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
10812           Fix comparison of old term with new.
10814 Sat Dec 12 11:30:23 GMT 2009  Richard Boulton <richard@tartarus.org>
10816         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
10817           tests/api_posdb.cc: Delete old positionlist chunks in
10818           replace_document().  Uncomment part of test which tested this.
10820 Sat Dec 12 04:24:42 GMT 2009  Olly Betts <olly@survex.com>
10822         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
10823           common/document.h: If a document is replaced with itself unmodified,
10824           we no longer increase the automatic flush counter.
10825         * tests/api_backend.cc: Add regression test replacedoc7.
10827 Fri Dec 11 19:39:34 GMT 2009  Richard Boulton <richard@tartarus.org>
10829         * tests/api_posdb.cc: Add a basic test of adding a document, and
10830           modifying its positions.  Found one bug already, but the line
10831           which triggers this is commented out for now so that we don't
10832           break the snapshotters until it's fixed.
10834 Fri Dec 11 16:51:22 GMT 2009  Richard Boulton <richard@tartarus.org>
10836         * common/documentterm.h: Fix some documentation comments which were
10837           trivially incorrect or incomplete.
10839 Fri Dec 11 11:05:19 GMT 2009  Richard Boulton <richard@tartarus.org>
10841         * COPYING_MIT,HACKING: Add details of our policy for accepting
10842           patches.  This has informally been true for a while, but it
10843           probably helps to tell people about it!
10845 Tue Dec 08 13:15:28 GMT 2009  Olly Betts <olly@survex.com>
10847         * backends/chert/chert_cursor.h: Fix to build with --enable-assertions.
10849 Tue Dec 08 13:05:36 GMT 2009  Olly Betts <olly@survex.com>
10851         * backends/chert/chert_cursor.cc,backends/chert/chert_cursor.h,
10852           backends/chert/chert_postlist.cc: Add MutableChertCursor subclass of
10853           ChertCursor and implement del() there rather than in ChertCursor.
10854           This means we can use the C++ type system to track whether we got
10855           a const or non-const ChertTable * and so whether it is safe to
10856           cast away that const and delete the entry the cursor points to.
10858 Tue Dec 08 12:03:08 GMT 2009  Olly Betts <olly@survex.com>
10860         * backends/chert/chert_database.cc,backends/chert/chert_table.cc,
10861           backends/chert/chert_table.h,backends/flint/flint_database.cc,
10862           backends/flint/flint_table.cc,backends/flint/flint_table.h,
10863           bin/xapian-compact.cc,bin/xapian-inspect.cc: Add empty() method to
10864           FlintTable and ChertTable which works completely reliably even if
10865           the item count has wrapped.
10866         * tests/api_closedb.cc: Add closedb3 for coverage of get_doccount() and
10867           has_positions().
10869 Tue Dec 08 08:23:12 GMT 2009  Olly Betts <olly@survex.com>
10871         * backends/chert/chert_cursor.h: Tweak whitespace in comment.
10873 Mon Dec 07 04:56:42 GMT 2009  Olly Betts <olly@survex.com>
10875         * backends/flint/flint_database.cc,backends/flint/flint_synonym.h:
10876           Eliminate "size" private member of FlintSynonymTermList which is set
10877           but never used.
10879 Mon Dec 07 04:49:54 GMT 2009  Olly Betts <olly@survex.com>
10881         * backends/chert/chert_database.cc,backends/chert/chert_synonym.h:
10882           Eliminate "size" private member of ChertSynonymTermList which is set
10883           but never used.
10885 Mon Dec 07 04:32:46 GMT 2009  Olly Betts <olly@survex.com>
10887         * backends/chert/: Use > 32 bit type to keep count of items in a
10888           table.  This fixes misreporting by xapian-check, and in the very
10889           unlikely case where the counter has just wrapped to 0, makes
10890           xapian-compact not mistakenly think tables are empty and the
10891           matcher ignore positional information.
10893 Thu Dec 03 10:08:28 GMT 2009  Richard Boulton <richard@tartarus.org>
10895         * tests/api_compact.cc: Cast character value in string constructor
10896           to a char; without this we were getting a stack overflow and
10897           general nastiness on i386, which we hypothesise was due to the
10898           wrong overload for string() being picked.
10900 Wed Dec 02 23:10:50 GMT 2009  Olly Betts <olly@survex.com>
10902         * backends/flint_lock.cc: Add missing include of xapian/error.h.
10903           This was causing the snapshot builder to fail, but worked OK
10904           in my tree for reasons I don't understand.
10906 Wed Dec 02 14:30:40 GMT 2009  Olly Betts <olly@survex.com>
10908         * backends/chert/chert_database.cc,
10909           backends/chert/chert_databasereplicator.cc,
10910           backends/flint/flint_database.cc,
10911           backends/flint/flint_databasereplicator.cc,backends/flint_lock.cc,
10912           backends/flint_lock.h: Factor out 4 copies of the same code to
10913           report why Xapian failed to get a lock.
10915 Wed Dec 02 10:05:27 GMT 2009  Olly Betts <olly@survex.com>
10917         * backends/Makefile.mk,backends/chert/,backends/flint/,
10918           backends/flint_lock.cc,backends/flint_lock.h: Factor out a single
10919           version of the "flint-compatible locking code" and use it from both
10920           flint and chert.
10922 Wed Dec 02 02:49:14 GMT 2009  Olly Betts <olly@survex.com>
10924         * tests/api_compact.cc,tests/apitest.cc,tests/apitest.h,
10925           tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Add
10926           get_database_path() variant which takes a generator function and use
10927           it so that the right database names are used in compactnorenumber1.
10929 Tue Dec 01 12:37:24 GMT 2009  Olly Betts <olly@survex.com>
10931         * tests/apitest.cc,tests/harness/backendmanager.cc,
10932           tests/harness/backendmanager.h: Move generator function variant of
10933           get_database() to BackendManager, and tweak it to build the database
10934           under a temporary path and rename it once built, to avoid leaving a
10935           partial database in place if interrupted.
10936         * tests/perftest/perftest_matchdecider.cc: Use this mechanism to lazily
10937           generate test databases.
10938         * tests/harness/: Remove the optional name parameter from various
10939           BackendManager methods as it was only used by perftest and is no
10940           longer needed.
10942 Tue Dec 01 11:00:35 GMT 2009  Olly Betts <olly@survex.com>
10944         * tests/apitest.cc,tests/apitest.h: Add mechanism for caching databases
10945           generated by a function.
10946         * tests/api_compact.cc: Use it for compactnorenumber1.
10948 Tue Dec 01 10:59:50 GMT 2009  Olly Betts <olly@survex.com>
10950         * tests/api_db.cc: Rename matchfunctor<n> to matchdecider<n> to match
10951           current terminology.
10953 Tue Dec 01 10:51:23 GMT 2009  Olly Betts <olly@survex.com>
10955         * tests/api_db.cc: Don't run matchfunctor3 under remote backends as
10956           MatchDecider isn't actually supported there (uncovered by recent
10957           change to throw UnimplementedError in this case).
10959 Tue Dec 01 09:35:53 GMT 2009  Richard Boulton <richard@tartarus.org>
10961         * include/xapian/matchspy.h: Remove out-of-date reference to
10962           add_slot(), which no longer exists: users are expected to use
10963           multiple ValueCountMatchSpies if they need to monitor more than
10964           one slot.
10966 Tue Dec 01 08:04:17 GMT 2009  Olly Betts <olly@survex.com>
10968         * tests/Makefile.am,tests/api_compact.cc: Add test coverage for
10969           xapian-compact --no-renumber with multiple databases.
10971 Tue Dec 01 06:25:47 GMT 2009  Olly Betts <olly@survex.com>
10973         * tests/api_backend.cc: Clean up matchdecider4.
10975 Tue Dec 01 06:12:29 GMT 2009  Olly Betts <olly@survex.com>
10977         * HACKING: A couple more std::string efficiency tips.
10979 Tue Dec 01 05:51:52 GMT 2009  Olly Betts <olly@survex.com>
10981         * api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
10982           net/remoteserver.cc: Throw UnimplementedError if a matchdecider or
10983           "legacy" matchspy is used with the remote backend.
10984         * tests/api_backend.cc: Add regression test matchdecider4.
10986 Mon Nov 30 05:42:43 GMT 2009  Olly Betts <olly@survex.com>
10988         * backends/remote/remote-database.cc,common/remote-database.h,
10989           common/remoteprotocol.h,common/remoteserver.h,
10990           docs/remote_protocol.html,net/remoteserver.cc,tests/api_metadata.cc,
10991           tests/harness/testrunner.cc: Add support for
10992           WritableDatabase::set_metadata() and Database::get_metadata() to the
10993           remote backend (based largely on patch in #178).
10994         * AUTHORS: Thanks to Paul Rudin for patch.
10996 Thu Nov 26 07:25:15 GMT 2009  Olly Betts <olly@survex.com>
10998         * NEWS: Start to update from ChangeLog.
11000 Thu Nov 26 02:26:43 GMT 2009  Olly Betts <olly@survex.com>
11002         * common/str.cc: Tweak the length calculation for the buffer used by
11003           str() when converting integers to strings so that the buffer is
11004           exactly the minimum required size for integers of size 1, 2, 4,
11005           and 8 bytes, and only a byte extra for 16 byte integers.
11007 Wed Nov 25 05:59:13 GMT 2009  Olly Betts <olly@survex.com>
11009         * bin/xapian-compact.cc: In the --no-renumber case, just set offset[]
11010           entries to zero to start with rather than fixing them up later.
11012 Wed Nov 25 05:49:37 GMT 2009  Olly Betts <olly@survex.com>
11014         * bin/xapian-compact.cc: Extend --no-renumber to support merging
11015           databases, but only if they have disjoint ranges of used document
11016           ids.
11018 Wed Nov 25 04:37:38 GMT 2009  Olly Betts <olly@survex.com>
11020         * bin/xapian-compact.cc: Fix typos in --help output.
11022 Wed Nov 25 04:22:26 GMT 2009  Olly Betts <olly@survex.com>
11024         * bin/xapian-compact.cc: Prune unused docids off the end of database
11025           when merging multiple databases with renumbering.
11027 Wed Nov 25 03:12:24 GMT 2009  Olly Betts <olly@survex.com>
11029         * bin/xapian-compact.cc: Use string() instead of "" and string(1, '\0')
11030           instead of string("", 1).
11032 Wed Nov 25 02:34:10 GMT 2009  Olly Betts <olly@survex.com>
11034         * backends/chert/chert_lock.cc: Fix locking code to work if stdin
11035           and/or stdout have been closed.
11036         * backends/flint/flint_lock.cc: Backport fix to flint.
11037         * tests/api_backend.cc: Add regression test lockfilefd0or1.
11039 Wed Nov 25 00:59:05 GMT 2009  Olly Betts <olly@survex.com>
11041         * backends/chert/chert_database.cc,backends/chert/chert_lock.cc,
11042           backends/chert/chert_lock.h: Add "FDLIMIT" reason code for why
11043           locking failing.
11045 Tue Nov 24 12:44:56 GMT 2009  Olly Betts <olly@survex.com>
11047         * api/omdatabase.cc: Factor out throwing an exception for docid 0 not
11048           being valid.
11050 Tue Nov 24 12:39:10 GMT 2009  Olly Betts <olly@survex.com>
11052         * tests/api_none.cc: Note previous fix was ticket#415.
11054 Tue Nov 24 12:33:12 GMT 2009  Olly Betts <olly@survex.com>
11056         * api/omdatabase.cc: Fix many Xapian::Database methods to behave better
11057           on a database with no subdatabases, such as is constructed by
11058           Database().
11059         * tests/Makefile.am,tests/api_nodb.cc,tests/api_none.cc: Expand
11060           emptydb_metadata1 to also regression test these other cases, and
11061           rename to nosubdatabases1.
11063 Mon Nov 23 14:01:51 GMT 2009  Olly Betts <olly@survex.com>
11065         * common/debuglog.h: Add "NO_ARGS" which can be used for debug logging
11066           when a function or method takes no arguments.  The main advantage
11067           over "" is that no extra code is generated for it.
11068         * api/omdatabase.cc: Convert to use debuglog.h fully.
11069         * api/matchspy.cc,api/omdatabase.cc: Make use of NO_ARGS.
11071 Mon Nov 23 09:10:55 GMT 2009  Olly Betts <olly@survex.com>
11073         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc,
11074           common/debuglog.cc,common/debuglog.h,common/omdebug.h,configure.ac,
11075           matcher/multimatch.cc,queryparser/queryparser.lt: Rename
11076           XAPIAN_DEBUG_VERBOSE macro to XAPIAN_DEBUG_LOG to better match the
11077           user-visible "--enable-log" configure option which controls it.
11079 Mon Nov 23 08:08:45 GMT 2009  Olly Betts <olly@survex.com>
11081         * backends/chert/chert_database.cc,backends/chert/chert_lock.cc,
11082           backends/chert/chert_table.cc,backends/flint/: Use string() or
11083           s.resize(0) instead of "".  Use string(1, '\0') instead of
11084           string("", 1).
11086 Sun Nov 22 14:20:51 GMT 2009  Olly Betts <olly@survex.com>
11088         * backends/chert/chert_postlist.cc: When skipping through a chunk of
11089           postings to find the one we want, don't bother to unpack the wdf
11090           values we're skipping over, which should save a significant amount
11091           of time in certain cases where the profile data shows we spend
11092           something like 1/3 of the time in the function where this happens.
11094 Sun Nov 22 13:12:39 GMT 2009  Olly Betts <olly@survex.com>
11096         * api/matchspy.cc,backends/chert/chert_values.cc,
11097           languages/steminternal.cc: Tweak whitespace after while to be
11098           consistent.
11100 Sat Nov 21 17:39:23 GMT 2009  Richard Boulton <richard@tartarus.org>
11102         * backends/chert/chert_values.cc,backends/chert/chert_values.h:
11103           Make ValueChunkReader::skip_to() assign the value to a string
11104           only when the target has been reached.  Saves a lot of
11105           unnecessary string copying - on a benchmark of mydeco data,
11106           improves time for 100 queries from 3.66s to 3.10s.
11108 Sat Nov 21 01:13:26 GMT 2009  Olly Betts <olly@survex.com>
11110         * tests/: Make arrays which don't need to be modified const.
11112 Sat Nov 21 00:01:04 GMT 2009  Olly Betts <olly@survex.com>
11114         * tests/api_matchspy.cc: The default parameter for
11115           get_writable_database() is string(), so don't explicitly pass "".
11117 Fri Nov 20 16:19:13 GMT 2009  Richard Boulton <richard@tartarus.org>
11119         * tests/api_matchspy.cc: Add regression test for underflow in
11120           numeric ranges (based on python version in ticket #321).
11122 Fri Nov 20 10:54:08 GMT 2009  Olly Betts <olly@survex.com>
11124         * matcher/valuestreamdocument.cc: Use check() instead of skip_to() in
11125           ValueStreamDocument.
11127 Fri Nov 20 09:57:12 GMT 2009  Olly Betts <olly@survex.com>
11129         * common/document.h,matcher/: Implement ValueStreamDocument subclass
11130           of Xapian::Document::Internal which provides a way to connect up
11131           valuestreams to uses of values during the match.  Other
11132           (non-recommended) uses of the Document passed to MatchDecider, etc
11133           are passed through to a lazily created backend Document::Internal
11134           subclass.  This should be a lot more efficient for chert.  It's
11135           unclear how it will affect performance for backends which don't store
11136           values in streams - profiling is required.
11138 Fri Nov 20 02:35:14 GMT 2009  Olly Betts <olly@survex.com>
11140         * backends/inmemory/inmemory_document.cc: Fix closedb1 on InMemory
11141           backend, broken by recent commit.
11143 Thu Nov 19 12:03:52 GMT 2009  Olly Betts <olly@survex.com>
11145         * backends/multi/multi_valuelist.cc: Fix to handle the case where all
11146           the sublists turn out to be empty when we first call next().
11148 Thu Nov 19 11:12:53 GMT 2009  Olly Betts <olly@survex.com>
11150         * backends/inmemory/: Set the document data and values lazily for the
11151           inmemory backend too.  They're much less costly to fetch than if
11152           a disk access may be needed, but it avoids a copy of the respective
11153           data if they aren't needed, and either could potentially be large.
11154           Consistency here also makes things easier to understand.
11156 Thu Nov 19 08:47:24 GMT 2009  Olly Betts <olly@survex.com>
11158         * api/omdocument.cc: Prefer string() to "".
11160 Thu Nov 19 07:38:29 GMT 2009  Olly Betts <olly@survex.com>
11162         * api/omdatabase.cc,backends/multi/Makefile.mk,
11163           backends/multi/multi_valuelist.cc,common/Makefile.mk,
11164           common/multivaluelist.h,tests/api_valuestream.cc: Implement support
11165           for iterating valuestreams for multidatabases.
11167 Thu Nov 19 06:19:05 GMT 2009  Olly Betts <olly@survex.com>
11169         * bin/xapian-check.cc: Rework the checking of postlist chunks into
11170           a cleaner approach which should report errors better, and
11171           eliminate the (probably) impossible "did might not be initialised"
11172           path which GCC 4.2 spotted.
11174 Thu Nov 19 01:15:03 GMT 2009  Olly Betts <olly@survex.com>
11176         * common/pack.h: Remove incorrect assertion and document what NULL
11177           parameter value means in this case.
11179 Wed Nov 18 16:33:01 GMT 2009  Richard Boulton <richard@tartarus.org>
11181         * bin/xapian-check.cc: Fix compiler warning (with gcc-4.2) that did
11182           could be used uninitialised: it couldn't be, but it's hard for a
11183           compiler to see that.
11185 Wed Nov 18 12:48:17 GMT 2009  Richard Boulton <richard@tartarus.org>
11187         * AUTHORS: Update my email address.
11189 Wed Nov 18 12:21:09 GMT 2009  Olly Betts <olly@survex.com>
11191         * common/valuelist.h: Fix internal documentation comment.
11193 Wed Nov 18 10:40:54 GMT 2009  Olly Betts <olly@survex.com>
11195         * configure.ac: Use <cstdlib>, <cmath>, <cstdio>, <cstring> for
11196           configure tests since we use these forms in the code and want
11197           consistency between what configure tests and what the code
11198           uses.
11199         * NEWS,configure.ac: Update for 1.1.3.
11201 Wed Nov 18 10:39:59 GMT 2009  Olly Betts <olly@survex.com>
11203         * PLATFORMS: Update from 1.0.17.
11205 Wed Nov 18 10:31:49 GMT 2009  Olly Betts <olly@survex.com>
11207         * INSTALL: Improve text about zlib dependency.
11209 Wed Nov 18 10:13:59 GMT 2009  Olly Betts <olly@survex.com>
11211         * INSTALL: Note the package to install for building against libuuid on
11212           Fedora, and note that libuuid isn't required on Microsoft Windows.
11214 Wed Nov 18 02:34:30 GMT 2009  Olly Betts <olly@survex.com>
11216         * NEWS: Update from 1.0.17 and ChangeLog.
11218 Mon Nov 16 08:35:52 GMT 2009  Olly Betts <olly@survex.com>
11220         * queryparser/queryparser.lemony: Fix interaction of FLAG_PARTIAL and
11221           FLAG_SYNONYM.  (ticket#407)
11222         * tests/Makefile.am,tests/api_qpbackend.cc: Add regression test
11223           qpsynonympartial1.
11225 Mon Nov 16 02:15:14 GMT 2009  Olly Betts <olly@survex.com>
11227         * backends/flint/flint_version.cc: Add "using namespace std;" and drop
11228           the explicit std:: qualifiers.
11230 Fri Nov 13 02:27:48 GMT 2009  Olly Betts <olly@survex.com>
11232         * backends/chert/chert_spelling.h,backends/chert/chert_table.h,
11233           backends/flint/flint_spelling.h,backends/flint/flint_table.h,
11234           common/getopt.cc,common/stringutils.h,languages/steminternal.h:
11235           Add missing std:: qualifiers for functions in <cstring>, <cstdlib>,
11236           etc.
11238 Fri Nov 13 02:25:50 GMT 2009  Olly Betts <olly@survex.com>
11240         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Add
11241           "using namespace std;" and drop the explicit std:: qualifiers.
11243 Fri Nov 13 02:11:18 GMT 2009  Olly Betts <olly@survex.com>
11245         * common/str.cc: Use assignment to initialise a size_t - the current
11246           code was turning a missing snprintf() prototype into a confusing
11247           error message with Sun's C++, and is less clear anyway.
11249 Fri Nov 13 02:03:28 GMT 2009  Olly Betts <olly@survex.com>
11251         * HACKING,backends/chert/chert_lock.cc,backends/flint/flint_lock.cc,
11252           backends/remote/remote-database.cc,net/remoteserver.cc,
11253           net/tcpserver.cc,tests/harness/backendmanager_remotetcp.cc,
11254           tests/harness/testsuite.cc: Sun C++'s <csignal> (not unreasonably)
11255           excludes non-ISO-C functions which are in <signal.h> - for example,
11256           kill() (which POSIX specifies).  So revert <csignal> to <signal.h>
11257           and document this as a global exception.
11259 Thu Nov 12 08:30:07 GMT 2009  Olly Betts <olly@survex.com>
11261         * matcher/collapser.h: Remove spurious comma after last entry in enum,
11262           which Sun's C++ compiler warns about.
11264 Thu Nov 12 00:24:55 GMT 2009  Olly Betts <olly@survex.com>
11266         * matcher/multimatch.cc: Sorter -> KeyMaker in an exception message.
11268 Thu Nov 12 00:01:55 GMT 2009  Olly Betts <olly@survex.com>
11270         * include/xapian/database.h: Tweak documentation comments about
11271           committing changes.
11273 Wed Nov 11 12:23:48 GMT 2009  Olly Betts <olly@survex.com>
11275         * queryparser/queryparser.lemony: Fix handling of a group of stopwords
11276           which notably caused issues when default_op was OP_AND, but could
11277           probably manifest in other cases too.  Fixes ticket#406.
11278         * tests/queryparsertest.cc: Add regression test qp_stopword_group1.
11280 Wed Nov 11 10:54:58 GMT 2009  Olly Betts <olly@survex.com>
11282         * backends/chert/chert_version.h,common/safeuuid.h: Fix workaround for
11283           uuid.h headers which lack const to actually work on Solaris.
11285 Wed Nov 11 10:53:50 GMT 2009  Olly Betts <olly@survex.com>
11287         * common/Makefile.mk: Need to ship new pack.h header.
11289 Tue Nov 10 22:27:47 GMT 2009  Olly Betts <olly@survex.com>
11291         * bin/xapian-check.cc: Fix compiler warning introduced by previous
11292           change.
11294 Tue Nov 10 12:24:34 GMT 2009  Olly Betts <olly@survex.com>
11296         * backends/chert/,bin/xapian-check.cc,common/pack.h: Rewrite the
11297           packing and unpacking functions more efficiently.  As well as being
11298           generally faster, the pack functions now take a reference to a string
11299           to append to, which avoids creating a lot of temporary string
11300           objects.  Indexing HTML files with omindex is 5-10% faster.
11301           Searching for "The" on gmane (which results in a lot of unpacking of
11302           postings and document lengths) is about 35% faster.  (ticket#326)
11304 Thu Nov 05 03:55:37 GMT 2009  Olly Betts <olly@survex.com>
11306         * common/safeuuid.h: Fix to work with uuid libraries which lack const
11307           qualifiers.  Fixes build failure on Solaris.
11309 Thu Nov 05 00:15:24 GMT 2009  Olly Betts <olly@survex.com>
11311         * HACKING: Update details of debian packaging.
11313 Wed Nov 04 04:11:38 GMT 2009  Olly Betts <olly@survex.com>
11315         * common/output.h: Use C++ syntax for NULL with a type in log output.
11317 Wed Nov 04 04:02:09 GMT 2009  Olly Betts <olly@survex.com>
11319         * queryparser/lemon.c: Avoid trivial memory leak.
11321 Wed Nov 04 00:13:00 GMT 2009  Olly Betts <olly@survex.com>
11323         * include/xapian/database.h: Reword to avoid somewhat ambiguous "this
11324           method".
11326 Tue Nov 03 12:12:09 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11328         * include/xapian/database.h: Make it more clear that you need to
11329           add the unique term to the document if you want to use
11330           replace_document() to use external unique IDs for documents.
11332 Tue Nov 03 06:08:43 GMT 2009  Olly Betts <olly@survex.com>
11334         * tests/generate-api_generated: Update MultiValueSorter to
11335           MultiValueKeyMaker.
11337 Tue Nov 03 05:51:23 GMT 2009  Olly Betts <olly@survex.com>
11339         * tests/api_sorting.cc,tests/api_sortingold.cc: Fix changesorter1 and
11340           oldchangesorter1 to not be run for the remote backend where they will
11341           now fail with UnimplementedError.
11343 Tue Nov 03 02:43:12 GMT 2009  Olly Betts <olly@survex.com>
11345         * matcher/multimatch.cc: Xapian::Sorter isn't supported with the remote
11346           backend so throw UnimplementedError rather than giving incorrect
11347           results.  (ticket#384)
11348         * tests/api_sorting.cc: Add sortfunctorremote1 test this exception is
11349           actually thrown.
11351 Tue Nov 03 01:26:57 GMT 2009  Olly Betts <olly@survex.com>
11353         * common/database.h: Fix vertical whitespace glitch.
11355 Mon Nov 02 08:10:03 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11357         * api/omdatabase.cc: Check that internal is not empty before
11358           referencing its first element, in get_metadata() and
11359           metadata_keys_begin(), to avoid a potential segfault.
11360         * tests/api_nodb.cc: Add emptydb_metadata1, a regression test for
11361           this bug.
11363 Sun Nov 01 22:10:54 GMT 2009  Olly Betts <olly@survex.com>
11365         * examples/delve.cc,examples/quest.cc: Extend exception handling to the
11366           whole of main.  Xapian::Stem("english") can't actually throw, but
11367           that's not obvious to static analysis tools, and it is more robust
11368           to wrap the whole of main, and reduces indentation.
11370 Sun Nov 01 21:27:05 GMT 2009  Olly Betts <olly@survex.com>
11372         * bin/xapian-compact.cc: Add missing exception catch for const char *.
11373           The only case which currently throws this is an "impossible"
11374           situation, but if we're going to check for it, the reporting of
11375           failure should actually work.  Identified by Coverity's Scan.
11377 Sun Nov 01 07:56:38 GMT 2009  Olly Betts <olly@survex.com>
11379         * examples/quest.cc: Tighten up the type of the error we catch to
11380           detect an unknown stemming language.
11382 Sat Oct 31 07:16:11 GMT 2009  Olly Betts <olly@survex.com>
11384         * NEWS: Update from ChangeLog.
11386 Sat Oct 31 06:59:19 GMT 2009  Olly Betts <olly@survex.com>
11388         * include/xapian/enquire.h: Fix deprecation warnings when building with
11389           recent GCC.
11391 Sat Oct 31 02:46:04 GMT 2009  Olly Betts <olly@survex.com>
11393         * tests/queryparsertest.cc: Add another test query string to cover a
11394           case we didn't previously check.
11396 Tue Oct 27 00:42:59 GMT 2009  Olly Betts <olly@survex.com>
11398         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Don't
11399           try to close the fd one more than the maximum allowable.
11400           (ticket#408)
11401         * AUTHORS: Add Carl Worth for the patch.
11403 Mon Oct 05 09:00:58 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11405         * configure.ac: Mention e2fsprogs-devel in the message thrown up by
11406           configure, too.
11408 Mon Oct 05 08:53:05 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11410         * HACKING: Note the command needed to get the uuid library
11411           installed on fedora, since it's rather non-obvious.
11413 Sat Oct 03 20:11:48 GMT 2009  Olly Betts <olly@survex.com>
11415         * unicode/tclUniData.cc: Update Unicode character database to Unicode
11416           5.2.  (ticket#351)
11417         * tests/api_unicode.cc: Add tests for some characters added in Unicode
11418           5.2.
11420 Thu Oct 01 21:19:34 GMT 2009  Olly Betts <olly@survex.com>
11422         * xapian-config.in: Need to quote ^ for Solaris /bin/sh.
11424 Fri Sep 18 13:23:00 GMT 2009  Olly Betts <olly@survex.com>
11426         * configure.ac: Actually use any flags we determine are needed to
11427           switch the compiler to proper ANSI C++ mode, when building
11428           xapian-core - this stopped working in 1.0.12, breaking support for
11429           HP's aCC, Compaq's cxx, Sun's CC, and SGI's CC.
11431 Fri Sep 18 12:40:37 GMT 2009  Olly Betts <olly@survex.com>
11433         * include/xapian/matchspy.h: Mark ValueCountMatchSpy, NumericRange,
11434           NumericRanges, and score_evenness() as experimental.
11436 Fri Sep 18 08:36:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11438         * include/xapian/weight.h,weight/weight.cc: Remove default
11439           implementation of Weight::clone() which returns NULL - we always
11440           need clone() to be implemented because it's called for every term
11441           in the query, not just used for the remote backend.
11443 Fri Sep 18 08:02:08 GMT 2009  Olly Betts <olly@survex.com>
11445         * api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h: Mark
11446           and document the matchspy parameter of Enquire::get_mset() as
11447           deprecated in favour of the new MatchSpy class and
11448           Enquire::add_matchspy().
11450 Fri Sep 18 07:58:11 GMT 2009  Olly Betts <olly@survex.com>
11452         * tests/perftest/perftest_matchdecider.cc: Don't pass default values
11453           for optional parameters to Enquire::get_mset().
11455 Fri Sep 18 02:36:43 GMT 2009  Olly Betts <olly@survex.com>
11457         * queryparser/queryparser.lemony: If FLAG_PARTIAL is specified, don't
11458           try to spell correct a term at the end of the query which we attempt
11459           to expand as partial.
11460         * tests/queryparsertest.cc: Add regression test qp_spellpartial1.
11462 Fri Sep 18 02:33:55 GMT 2009  Olly Betts <olly@survex.com>
11464         * tests/queryparsertest.cc: For testcase qp_spellwild1: Fix the dbdir
11465           to qp_spellwild1 to match the testname;  Fix the ordering of
11466           TESTCASE macros to match the order of the test functions;  Note that
11467           this is a regression test and the versions the bug will be fixed in.
11469 Fri Sep 18 01:25:37 GMT 2009  Olly Betts <olly@survex.com>
11471         * tests/queryparsertest.cc: Fix to work with the old scoping rules for
11472           variables declared in for().
11474 Thu Sep 17 19:17:30 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11476         * queryparser/queryparser.lemony: Don't apply spelling correction
11477           to wildcard terms if FLAG_WILDCARD and FLAG_SPELLING_CORRECTION
11478           are both specified.
11479         * tests/queryparsertest.cc: Add qp_spellwild1 as a test for this.
11481 Thu Sep 17 12:08:17 GMT 2009  Olly Betts <olly@survex.com>
11483         * NEWS: Update from ChangeLog.
11485 Thu Sep 17 10:20:35 GMT 2009  Olly Betts <olly@survex.com>
11487         * api/keymaker.cc: Implement Richard's idea of not encoding any
11488           trailing, forward sorted, empty values which is a generalisation
11489           of encoding all forward sorted, empty values as an empty string.
11490         * tests/api_sorting.cc: Add new testcase multivaluekeymaker1 to
11491           check encodings are as expected.
11493 Thu Sep 17 07:15:10 GMT 2009  Olly Betts <olly@survex.com>
11495         * api/,common/multimatch.h,common/omenquireinternal.h,
11496           docs/deprecation.rst,docs/sorting.rst,include/Makefile.mk,
11497           include/xapian.h,include/xapian/enquire.h,include/xapian/keymaker.h,
11498           include/xapian/sorter.h,matcher/multimatch.cc,tests/Makefile.am,
11499           tests/api_sorting.cc,tests/api_sortingold.cc: Rename Sorter to
11500           KeyMaker, paving the way for using it to build collapse keys too.
11501           Resolve the inconsistency in MultiValueSorter::add()'s "forward"
11502           parameter by replacing it with MultiKeyMaker::add_value() with a
11503           "reverse" parameter.  (ticket#359)
11505 Thu Sep 17 07:13:25 GMT 2009  Olly Betts <olly@survex.com>
11507         * api/valuesetmatchdecider.cc,include/xapian/valuesetmatchdecider.h:
11508           Inline trivial constructor from header.  Add explicit '#include
11509           "xapian/document.h"'.
11511 Thu Sep 17 05:22:50 GMT 2009  Olly Betts <olly@survex.com>
11513         * HACKING: Document how to use the XAPIAN_DEPRECATED() macro to
11514           mark a class as deprecated.
11516 Wed Sep 16 02:40:13 GMT 2009  Olly Betts <olly@survex.com>
11518         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
11519           Eliminate a couple of assertions which can never fire.
11521 Sat Sep 12 04:05:35 GMT 2009  Olly Betts <olly@survex.com>
11523         * matcher/msetpostlist.cc: Fix MSetPostList not to read off the end of
11524           the MSet if get_maxweight() is called when at_end().  This can
11525           happen but the testcase was too large to send so sadly no
11526           regression test I'm afraid.
11528 Sat Sep 12 03:41:04 GMT 2009  Olly Betts <olly@survex.com>
11530         * backends/chert/chert_values.cc: Fix code to find the first docid in
11531           the net chunk (ticket#399).
11532         * tests/api_backend.cc: Add regression test from Rich Lane.
11534 Fri Sep 11 11:14:49 GMT 2009  Olly Betts <olly@survex.com>
11536         * backends/chert/,bin/xapian-check.cc,bin/xapian-compact.cc: Add
11537           support for chert databases without a termlist table (ticket#181).
11538           Currently the only way to create such a database is to create a
11539           chert database and do "rm termlist.*".
11541 Fri Sep 11 10:07:35 GMT 2009  Olly Betts <olly@survex.com>
11543         * bin/xapian-compact.cc: Don't report an absent lazy input table as 0
11544           size.
11546 Fri Sep 11 03:17:17 GMT 2009  Olly Betts <olly@survex.com>
11548         * backends/chert/chert_table.h: Improve documentation of "handle"
11549           member.
11551 Thu Sep 10 13:24:29 GMT 2009  Olly Betts <olly@survex.com>
11553         * m4-macros/xapian-1.1.m4: Report the default xapian-config
11554           basename in configure's --help output.
11556 Thu Sep 10 12:55:48 GMT 2009  Olly Betts <olly@survex.com>
11558         * m4-macros/xapian-1.1.m4: Add optional third parameter to
11559           XO_LIB_XAPIAN which specifies the basename for the "xapian-config"
11560           script (defaults to "xapian-config" to give the current behaviour).
11562 Thu Sep 10 06:39:17 GMT 2009  Olly Betts <olly@survex.com>
11564         * NEWS: Update with changes in 1.0.16 and from ChangeLog.
11566 Thu Sep 10 02:17:56 GMT 2009  Olly Betts <olly@survex.com>
11568         * include/xapian/queryparser.h: Clarify the documentation comments for
11569           QueryParser::set_default_op() and QueryParser::get_default_op().
11571 Wed Sep 09 13:36:58 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11573         * matcher/andmaybepostlist.cc,tests/Makefile.am,tests/api_queryopt.cc:
11574           Back out patch from r13440 which introduced a new optimisation
11575           for AND_MAYBE when the maximum weight of the RHS becomes zero,
11576           due to various undesirable side effects.  I've put the patch into
11577           ticket #400 with an explanation.
11579 Wed Sep 09 01:54:05 GMT 2009  Olly Betts <olly@survex.com>
11581         * backends/chert/chert_postlist.cc,tests/api_backend.cc: Fix
11582           WritableDatabase::get_doclength() to work properly after a call to
11583           commit for the chert backend (ticket#397).
11585 Wed Sep 09 00:28:09 GMT 2009  Olly Betts <olly@survex.com>
11587         * AUTHORS: Add Dmitry Liakh for fix for #398.
11589 Wed Sep 09 00:02:47 GMT 2009  Olly Betts <olly@survex.com>
11591         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Fix a
11592           typo which stopped this fix in 1.0.12 from working (ticket #398):
11594           If we fail to get the lock after we spawn the child lock process
11595           (the common case is because the database is already open for
11596           writing) then we now clean up the child process properly.
11598 Fri Sep 04 11:24:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11600         * docs/categorisation.rst: Remove out-of-date call to get_mset()
11601           which passed a MatchSpy in - spies are now set with
11602           add_matchspy() before get_mset() is called.
11604 Thu Sep 03 00:29:27 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11606         * matcher/andmaybepostlist.cc: For AndMaybe, if the RHS has a
11607           maximum possible weight of 0, we now decay to just the LHS.
11608         * tests/Makefile.am,tests/api_queryopt.cc: Test coverage that this
11609           optimisation doesn't break anything.
11611 Tue Sep 01 12:04:13 GMT 2009  Olly Betts <olly@survex.com>
11613         * configure.ac: Send stderr output from ldconfig to config.log.
11615 Tue Sep 01 10:35:51 GMT 2009  Olly Betts <olly@survex.com>
11617         * AUTHORS,common/safeuuid.h: Fix uuid_unparse_lower() replacement for
11618           older libuuid to actually compile (really fixes ticket#368).
11620 Mon Aug 31 05:58:55 GMT 2009  Olly Betts <olly@survex.com>
11622         * NEWS: Sync with 1.0.15.
11624 Mon Aug 31 05:48:13 GMT 2009  Olly Betts <olly@survex.com>
11626         * NEWS: Start to format entries for 1.1.3.
11628 Mon Aug 31 04:14:58 GMT 2009  Olly Betts <olly@survex.com>
11630         * PLATFORMS: Sync with 1.0.15.
11632 Mon Aug 31 01:30:01 GMT 2009  Olly Betts <olly@survex.com>
11634         * common/getopt.cc: Use USE_GLIBC_GNUGETOPT from gnu_getopt.h rather
11635           than repeating the conditionals used to determine it here.  Rename
11636           __getopt_initialized to getopt_initialized and make it static.
11637           Rename _getopt_initialize() to getopt_initialize().
11639 Mon Aug 31 01:24:29 GMT 2009  Olly Betts <olly@survex.com>
11641         * common/gnu_getopt.h: Update (C) dates.  Markup file description for
11642           doxygen.  Fix comment reference to ctype.h as we now use <cctype>.
11644 Sun Aug 30 23:28:25 GMT 2009  Olly Betts <olly@survex.com>
11646         * common/gnu_getopt.h: Make optarg, optind, opterr, and optopt extern
11647           "C" to avoid linkage clash with these symbols on Mac OS X 10.6.
11649 Thu Aug 27 03:05:33 GMT 2009  Olly Betts <olly@survex.com>
11651         * HACKING: Add note to document the reason for any exceptions to the
11652           rule to use C++ forms of ISO C headers.
11654 Wed Aug 26 13:07:07 GMT 2009  Olly Betts <olly@survex.com>
11656         * AUTHORS,INSTALL,docs/install.html: Drop .php from xapian.org URLs.
11658 Wed Aug 26 12:58:51 GMT 2009  Olly Betts <olly@survex.com>
11660         * HACKING: Update URLs.  Remove duplicated text about updating RoadMap
11661           from the release checklist.
11663 Wed Aug 26 10:56:07 GMT 2009  Olly Betts <olly@survex.com>
11665         * configure.ac: Update various URLs.
11667 Tue Aug 25 01:52:51 GMT 2009  Olly Betts <olly@survex.com>
11669         * tests/harness/testsuite.cc: Fix not to report heaps of bogus errors
11670           under valgrind 3.5.0.
11672 Mon Aug 24 02:19:06 GMT 2009  Olly Betts <olly@survex.com>
11674         * include/xapian/enquire.h: Also update the documentation comment for
11675           set_sort_by_relevance_then_value() to mention sortable_serialise().
11677 Fri Aug 21 14:35:35 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11679         * Makefile.am: Add generate-exceptions to EXTRA_DIST - was missing
11680           from tarballs.
11682 Fri Aug 21 12:21:59 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11684         * AUTHORS: Add Michael Vogt, who suggested adding a comment about
11685           sortable_serialise to set_sort_by_value().
11687 Fri Aug 21 12:14:13 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11689         * include/xapian/enquire.h: Update documentation comments for
11690           set_sort_by_value() and set_sort_by_value_then_relevance() to
11691           mention sortable_serialise() as a good way to store values if you
11692           want to sort by them.
11694 Mon Aug 17 16:51:10 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11696         * matcher/multimatch.cc: When sorting by non-pure-relevance, ensure
11697           that the document is shown to the matchspy even if it couldn't
11698           get in the mset.
11699         * tests/api_matchspy.cc: Extend matchspy4 to include a regression
11700           test for this.
11702 Mon Aug 17 11:51:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11704         * api/matchspy.cc,include/xapian/matchspy.h: Add overload for
11705           score_evenness to allow a NumericRanges object to be passed to
11706           it.
11708 Mon Aug 17 07:36:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11710         * api/matchspy.cc,include/xapian/matchspy.h: Replace
11711           build_numeric_ranges() function with a NumericRanges object,
11712           whose constructor is passed the values and which exposes the
11713           calculated ranges via a getter.
11714         * tests/api_matchspy.cc: Update tests to use new NumericRanges
11715           object instead of build_numeric_ranges().
11717 Wed Aug 12 17:33:53 GMT 2009  Olly Betts <olly@survex.com>
11719         * Makefile.am: Fix generate-exceptions change to work in a VPATH
11720           build.
11722 Wed Aug 12 15:57:44 GMT 2009  Olly Betts <olly@survex.com>
11724         * exception_data.pm: Add new SerialisationError.
11725         * common/serialise-double.cc: Throw SerialisationError or InternalError
11726           instead of NetworkError.
11728 Wed Aug 12 15:19:05 GMT 2009  Olly Betts <olly@survex.com>
11730         * Makefile.am,configure.ac,generate-exceptions,generate-exceptions.in:
11731           It's not very useful to be able to run generate-exceptions outside
11732           the build system, and it only gets the #! line substituted, so just
11733           move those runes into Makefile.am and reduce the number of files that
11734           configure needs to generate by one.
11736 Mon Aug 10 13:25:22 GMT 2009  Olly Betts <olly@survex.com>
11738         * api/matchspy.cc: Use <cfloat> and <cmath> rather than <float.h> and
11739           <math.h> (regression from merging the matchspy branch).
11741 Mon Aug 10 13:01:57 GMT 2009  Olly Betts <olly@survex.com>
11743         * api/,bin/xapian-tcpsrv.cc,common/,docs/postingsource.rst,
11744           docs/serialisation.rst,include/Makefile.mk,include/xapian.h,
11745           include/xapian/,net/remoteserver.cc,tests/: Rename
11746           SerialisationContext to Registry.
11748 Mon Aug 10 11:23:23 GMT 2009  Olly Betts <olly@survex.com>
11750         * NEWS: Start to update from ChangeLog.
11752 Mon Aug 10 10:29:13 GMT 2009  Olly Betts <olly@survex.com>
11754         * api/omenquire.cc,include/xapian/weight.h,matcher/localmatch.cc:
11755           Make Weight::clone() public, and remove Weight::clone_() as it is
11756           no longer required.
11758 Mon Aug 10 07:55:04 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11760         * HACKING: Add section on ordering of include files, and fix a few
11761           formatting issues to make this file into valid restructured text
11762           again.
11764 Mon Aug 10 06:55:45 GMT 2009  Olly Betts <olly@survex.com>
11766         * api/serialisationcontext.cc,common/serialisationcontextinternal.h:
11767           Refactor to use a template function to implement the exception safe
11768           approach I implemented for PostingSource, and use it for MatchSpy
11769           and Weight too.
11770         * tests/api_serialise.cc: Add tests for exception safety of MatchSpy
11771           and Weight with SerialisationContext.
11773 Mon Aug 10 06:15:23 GMT 2009  Olly Betts <olly@survex.com>
11775         * include/xapian/weight.h,weight/weight.cc: Add default implementations
11776           of Weight methods name(), serialise(), unserialise(), and clone() for
11777           consistency with PostingSource and MatchSpy.
11779 Mon Aug 10 03:29:12 GMT 2009  Olly Betts <olly@survex.com>
11781         * tests/api_postingsource.cc: Tweak header include order.
11783 Tue Aug 04 15:49:54 GMT 2009  Olly Betts <olly@survex.com>
11785         * include/xapian/queryparser.h: Explicitly document that an empty
11786           prefix argument to QueryParser::add_prefix() means "no prefix".
11788 Tue Aug 04 13:11:26 GMT 2009  Olly Betts <olly@survex.com>
11790         * api/postingsource.cc: Throw UnimplementedError rather than
11791           InvalidOperationError from PostingSource::serialise() and
11792           PostingSource::unserialise() for consistency with MatchSpy.
11793         * include/xapian/postingsource.h: Document this behaviour (previously
11794           we didn't say what the default implementation actually did).
11795         * tests/api_serialise.cc: Add test coverage.
11797 Mon Aug 03 11:40:31 GMT 2009  Olly Betts <olly@survex.com>
11799         * api/serialisationcontext.cc: Fix to handle the clone() method or dtor
11800           of a PostingSource subclass throwing exceptions.
11801         * tests/api_serialise.cc: Add new testcase serialisationcontext1 as a
11802           regression test for this.
11804 Mon Aug 03 06:40:28 GMT 2009  Olly Betts <olly@survex.com>
11806         * tests/api_serialise.cc: Fix copy-and-pasted @brief.
11808 Sun Aug 02 16:21:54 GMT 2009  Olly Betts <olly@survex.com>
11810         * common/remoteprotocol.h: Correction: protocol version 33 will debut
11811           in 1.1.3 not 1.1.4.
11813 Sun Aug 02 16:20:28 GMT 2009  Olly Betts <olly@survex.com>
11815         * docs/remote_protocol.html: Update to document protocol version 33.
11817 Sun Aug 02 16:17:24 GMT 2009  Olly Betts <olly@survex.com>
11819         * backends/remote/remote-database.cc,net/remoteserver.cc: We were
11820           ignoring any trailing junk after the matchspies in MSG_GETMSET, so
11821           change to not send a count of them and just unpack until we run out
11822           of data.
11824 Sun Aug 02 15:47:30 GMT 2009  Olly Betts <olly@survex.com>
11826         * common/remoteprotocol.h: Note the versions in which recent protocol
11827           versions were introduced.
11829 Sun Aug 02 15:09:13 GMT 2009  Olly Betts <olly@survex.com>
11831         * backends/remote/remote-database.cc,common/serialise.h,
11832           net/remoteserver.cc,net/serialise.cc: Put the serialised MSet last in
11833           REPLY_RESULTS as then it doesn't need to know its own length (so the
11834           encoding is the same size it used to be in the non-matchspy case),
11835           and we avoid having to check for there being "junk" data left over
11836           after unserialising.
11838 Sun Aug 02 14:39:18 GMT 2009  Olly Betts <olly@survex.com>
11840         * matcher/remotesubmatch.h: Fix to build with GCC 4.4.1.
11842 Sun Aug 02 14:27:44 GMT 2009  Olly Betts <olly@survex.com>
11844         * backends/remote/remote-database.cc: Don't assign a temporary string
11845           object.
11847 Sun Aug 02 13:50:14 GMT 2009  Olly Betts <olly@survex.com>
11849         * include/xapian/matchspy.h: Add missing documentation comments.
11851 Sun Aug 02 12:15:43 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11853         Merge from matchspy branch.
11854         * api/,backends/remote/remote-database.cc,common/,docs/Makefile.am,
11855           docs/categorisation.rst,include/Makefile.mk,include/xapian.h,
11856           include/xapian/enquire.h,include/xapian/matchspy.h,
11857           include/xapian/serialisationcontext.h,matcher/multimatch.cc,
11858           matcher/remotesubmatch.cc,matcher/remotesubmatch.h,
11859           net/remoteserver.cc,net/serialise.cc,tests/Makefile.am,
11860           tests/api_matchspy.cc: Add new-style Xapian::MatchSpy class,
11861           which is a pure "spy" class, rather than being able to take a
11862           decision on whether a spy is applied before or after a result.
11863           This class is also designed to work with remote databases,
11864           passing the results back in serialised form.  Also, add
11865           ValueCountMatchSpy, which counts the occurrences of each value in
11866           a slot in the search results seen (useful for faceted or
11867           categorisation systems).
11869 Fri Jul 31 12:50:57 GMT 2009  Olly Betts <olly@survex.com>
11871         * tests/api_backend.cc,tests/api_wrdb.cc: Move new test
11872           modifiedpostlist1 from api_wrdb.cc to api_backend.cc - we're trying
11873           not to make api-wrdb.cc any larger.  Also note the ticket number and
11874           the release this will be fixed in.
11876 Thu Jul 30 16:30:06 GMT 2009  Olly Betts <olly@survex.com>
11878         * backends/chert/chert_modifiedpostlist.cc: Fix ChertModifiedPostList
11879           to skip added-but-then-deleted-before-flush documents.  (ticket#392)
11880           backends/flint/flint_modifiedpostlist.cc: Same fix for flint.
11881         * tests/api_wrdb.cc: Add regression test modifiedpostlist1.
11882         * AUTHORS: Add Rich Lane for patch.
11884 Wed Jul 29 09:44:15 GMT 2009  Olly Betts <olly@survex.com>
11886         * NEWS: Update from ChangeLog.
11888 Wed Jul 29 09:29:45 GMT 2009  Olly Betts <olly@survex.com>
11890         * include/xapian/valueiterator.h: Fix typos ("again" -> "and").
11892 Wed Jul 29 06:18:41 GMT 2009  Olly Betts <olly@survex.com>
11894         * tests/Makefile.am: Actually distribute testdata/apitest_declen.txt
11895           - new test data from the postingsources branch merge.
11897 Tue Jul 28 16:38:55 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11899         Merge from postingsources branch:
11900         * tests/generate-api_generated: Test get_description() methods of
11901           Xapian::PostingSource subclasses.
11903 Tue Jul 28 16:35:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11905         Merge from postingsources branch:
11906         * api/Makefile.mk,api/decvalwtsource.cc,api/serialisationcontext.cc,
11907           include/xapian/postingsource.h: Add
11908           DecreasingValueWeightPostingSource class, which reads weights
11909           from a value slot in which a significant range of the values are
11910           in decreasing order.  This functions similarly to
11911           ValueWeightPostingSource, but can be much more efficient.
11912         * tests/api_valuestream.cc,tests/testdata/apitest_declen.txt:
11913           Tests, and some associated constructed test data, for
11914           DecreasingValueWeightPostingSource.
11916 Mon Jul 27 04:50:45 GMT 2009  Olly Betts <olly@survex.com>
11918         * HACKING: Now using autoconf 2.64.
11920 Mon Jul 27 04:46:17 GMT 2009  Olly Betts <olly@survex.com>
11922         * HACKING: Add note about preferring std::string::assign(), and also
11923           one about building up strings using +=.
11925 Mon Jul 27 04:45:15 GMT 2009  Olly Betts <olly@survex.com>
11927         * backends/chert/chert_lock.cc,backends/chert/chert_utils.h,
11928           backends/flint/flint_lock.cc,backends/flint/flint_utils.h,
11929           backends/remote/remote-database.cc: Use std::string::assign() rather
11930           than constructing a temporary string object to assign.
11932 Sun Jul 26 16:08:10 GMT 2009  Olly Betts <olly@survex.com>
11934         * AUTHORS: Update for bugs fixed in 1.0.14.
11936 Sun Jul 26 16:03:54 GMT 2009  Olly Betts <olly@survex.com>
11938         * HACKING: Update the release checklist.
11940 Sun Jul 26 14:28:25 GMT 2009  Olly Betts <olly@survex.com>
11942         * docs/doxygen_source.conf.in: Update roughly in-line with apidoc
11943           changes.  I've not looked at the output much though.
11945 Sun Jul 26 14:00:14 GMT 2009  Olly Betts <olly@survex.com>
11947         * include/xapian/database.h: Remove documentation comment for namespace
11948           Xapian - this is now documented in xapian.h.
11950 Sun Jul 26 13:59:42 GMT 2009  Olly Betts <olly@survex.com>
11952         * include/xapian/unicode.h: Add documentation comment for namespace
11953           Unicode.
11955 Sun Jul 26 13:58:44 GMT 2009  Olly Betts <olly@survex.com>
11957         * include/xapian/dbfactory.h: Add documentation comments for the
11958           backend namespaces (InMemory, etc).
11960 Sun Jul 26 13:57:29 GMT 2009  Olly Betts <olly@survex.com>
11962         * include/xapian/version_h.cc: Add documentation comments for the
11963           generated version.h, and all the preprocessor defines it contains.
11965 Sun Jul 26 13:56:15 GMT 2009  Olly Betts <olly@survex.com>
11967         * include/xapian.h: Consistently say "linked with" rather than "linked
11968           to" in some cases.  Put documentation comment for namespace Xapian
11969           in this file.
11971 Sun Jul 26 13:06:45 GMT 2009  Olly Betts <olly@survex.com>
11973         * docs/doxygen_api.conf.in: More fettling to try to get better output:
11974           + Wrap long comments.
11975           + Quote arguments containing @...@ substitutions as they could
11976             conceivably contain spaces.
11977           + ALWAYS_DETAILED_SEC = NO: since a detailed section with no extra
11978             information is pointless.
11979           + STRIP_FROM_PATH, INCLUDE_PATH: Add "@top_builddir@/include" for
11980             VPATH builds.
11981           + HIDE_UNDOC_MEMBERS = YES: otherwise @internal members show up
11982             (with no documentation).
11983           + HIDE_FRIEND_COMPOUNDS = YES: as friend declarations in the API
11984             headers are implementation details.
11985           + SHOW_INCLUDE_FILES = NO: users should just include <xapian.h>
11986             for all their API needs.
11987           + GENERATE_TODOLIST, GENERATE_TESTLIST, GENERATE_BUGLIST: all set to
11988             NO as we don't want these in the API documentation.
11989           + SHOW_NAMESPACES = YES: We have several sub-namespaces so these are
11990             useful to document.
11991           + INPUT: Prepend "@top_builddir@/include/xapian/version.h" so that
11992             XAPIAN_HAS_FLINT_BACKEND, etc are defined before parsing other
11993             headers.
11994           + EXCLUDE: remove all entries and use EXCLUDE_PATTERNS instead.
11995           + EXCLUDE_PATTERNS: Include entries corresponding to those in EXCLUDE
11996             and add */derefwrapper.h and */.* (the latter avoids trying to look
11997             in .svn or any other hidden files or directories).
11998           + REFERENCES_LINK_SOURCE = NO: Improves output.
11999           + VERBATIM_HEADERS = NO: The verbatim headers aren't very
12000             interesting.
12001           + PREDEFINED: Define XAPIAN_VISIBILITY_DEFAULT and
12002             XAPIAN_DEPRECATED(D)=D as doxygen seem reluctant to parse included
12003             files.
12004           + EXPAND_AS_DEFINED: Remove XAPIAN_VISIBILITY_DEFAULT and
12005             XAPIAN_DEPRECATED as these are now handled by PREDEFINED.
12006           + EXTERNAL_GROUPS = NO, GROUP_GRAPHS = NO: We don't use groups so
12007             disable these.
12009 Sun Jul 26 10:14:32 GMT 2009  Olly Betts <olly@survex.com>
12011         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Change
12012           @PACKAGE@ to @PACKAGE_NAME@ and @VERSION@ to @PACKAGE_VERSION@ to
12013           reflect modern autotools usage.
12015 Fri Jul 24 16:23:31 GMT 2009  Olly Betts <olly@survex.com>
12017         * configure.ac,docs/: Rename doxygen configuration files from "_conf"
12018           to ".conf".  Rename doxygen_full.conf to doxygen_source.conf, etc.
12020 Fri Jul 24 16:02:39 GMT 2009  Olly Betts <olly@survex.com>
12022         * HACKING: Update to note that doxygen is now installed in-tree, and
12023           that we now use 1.5.9 for 1.1.x snapshots and releases, and that
12024           graphviz ">1.8.10" is now required.
12026 Fri Jul 24 16:01:31 GMT 2009  Olly Betts <olly@survex.com>
12028         * include/xapian/: Documentation comment tweaks.
12030 Fri Jul 24 15:34:03 GMT 2009  Olly Betts <olly@survex.com>
12032         * include/xapian/unicode.h: Fix @param names to match parameter names.
12034 Fri Jul 24 15:33:12 GMT 2009  Olly Betts <olly@survex.com>
12036         * docs/doxygen_api_conf.in: Major doxygen config overhaul:
12037           + STRIP_FROM_PATH: Strip include from header names.
12038           + JAVADOC_AUTOBRIEF: Re-enable as we have lost most of our brief
12039             descriptions - we can fix up the few cases where this caused
12040             problems with an explicit @brief.
12041           + BUILTIN_STL_SUPPORT: Enable for slightly STL-related stuff.
12042           + DISTRIBUTE_GROUP_DOC: Enable so group members get the group's
12043             comments.
12044           + EXTRACT_STATIC, EXTRACT_LOCAL_CLASSES: Disable since we don't
12045             need these.
12046           + SHOW_NAMESPACES: Disable to hide the "Xapian" namespace.
12047           + QUIET: Enable for less doxygen chatter.
12048           + WARN_LOGFILE: Unset so warnings go to stderr to encourage us to
12049             actually fix them!
12050           + EXCLUDE: Hide base.h, deprecated.h, errordispatch.h, visibility.h.
12051           + HTML_DYNAMIC_SECTIONS: Enable so the class diagrams are hidden by
12052             default but can be "expanded" to be viewed.
12053           + COLLABORATION_GRAPH: Disable as these don't ever seem useful in
12054             the API docs.
12055           + TEMPLATE_RELATIONS: Disable as we don't want to see template
12056             instantiations in inheritance diagrams.
12057           + DOT_MULTI_TARGETS: Enable for faster dot processsing.  Needs
12058             graphviz ">1.8.10", but that's really old now.
12060 Fri Jul 24 13:00:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12062         * bin/xapian-compact.cc: Fix to work with the metainfo key stored
12063           in the latest format of chert databases.
12065 Fri Jul 24 10:32:32 GMT 2009  Olly Betts <olly@survex.com>
12067         * backends/chert/chert_values.cc: Avoid doing pointless work by trying
12068           to delete non-existent lists of values when we're just adding
12069           documents.
12071 Fri Jul 24 05:32:34 GMT 2009  Olly Betts <olly@survex.com>
12073         * docs/doxygen_api_conf.in: Update with "doxygen -u" using doxygen
12074           1.5.9 and then trim trailing whitespace.
12076 Thu Jul 23 04:10:49 GMT 2009  Olly Betts <olly@survex.com>
12078         * NEWS,configure.ac: Update for 1.1.2.
12080 Wed Jul 22 13:58:13 GMT 2009  Olly Betts <olly@survex.com>
12082         * backends/chert/chert_databasereplicator.cc,
12083           backends/flint/flint_databasereplicator.cc: Prefer += to + for
12084           building up strings.
12086 Wed Jul 22 09:01:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12088         * backends/chert/chert_databasereplicator.cc,
12089           backends/flint/flint_databasereplicator.cc: Check result of
12090           ::open() for -1, and throw an error immediately if this happens,
12091           rather than leaving it to a later call to fail with EBADF.
12092           Should make it easier to diagnose problems, since we'll now see
12093           the reason that the open() failed.
12095 Tue Jul 21 17:08:41 GMT 2009  Olly Betts <olly@survex.com>
12097         * NEWS: Update from ChangeLog and sync with 1.0.14.
12099 Mon Jul 20 04:48:32 GMT 2009  Olly Betts <olly@survex.com>
12101         * matcher/queryoptimiser.cc: Fix build with assertions enabled.
12103 Mon Jul 20 04:47:33 GMT 2009  Olly Betts <olly@survex.com>
12105         * include/xapian/query.h: Update doc comment - OP_SYNONYM can take any
12106           number of subqueries too.
12108 Sun Jul 19 17:26:53 GMT 2009  Olly Betts <olly@survex.com>
12110         * api/omqueryinternal.cc,include/xapian/query.h,matcher/localmatch.cc:
12111           Remove wqf member of Xapian::Query::Internal and store the wqf in
12112           the parameter member instead.  (ticket#280)
12114 Sun Jul 19 17:24:02 GMT 2009  Olly Betts <olly@survex.com>
12116         * api/omqueryinternal.cc,include/xapian/query.h: Remove unused
12117           method Xapian::Query::Internal::swap().
12119 Sun Jul 19 16:22:01 GMT 2009  Olly Betts <olly@survex.com>
12121         * api/valuerangeproc.cc,include/xapian/queryparser.h: Move support for
12122           a prefix/suffix from NumberValueRangeProcessor to
12123           StringValueRangeProcessor, and change NumberValueRangeProcessor and
12124           DateValueRangeProcessor to inherit from StringValueRangeProcessor so
12125           all three now support a prefix/suffix.  (ticket#220)
12126         * tests/queryparsertest.cc: Add test coverage for new features.
12128 Sun Jul 19 16:05:04 GMT 2009  Olly Betts <olly@survex.com>
12130         * tests/queryparsertest.cc: Reenable tests which require the inmemory
12131           backend to be enabled by fixing typo XAPIAN_HAS_BACKEND_INMEMORY ->
12132           XAPIAN_HAS_INMEMORY_BACKEND.
12134 Sun Jul 19 14:56:16 GMT 2009  Olly Betts <olly@survex.com>
12136         * api/documentvaluelist.cc: Use str() instead of om_tostring().
12138 Sun Jul 19 14:42:15 GMT 2009  Olly Betts <olly@survex.com>
12140         * matcher/msetcmp.cc: Eliminate two more relocations.
12142 Sun Jul 19 13:46:08 GMT 2009  Olly Betts <olly@survex.com>
12144         * api/omqueryinternal.cc: Factor out "is_distributable()" function.
12146 Sun Jul 19 11:11:06 GMT 2009  Olly Betts <olly@survex.com>
12148         * include/xapian/version_h.cc: Fix "dummy" -> "dummy[]" so the code
12149           here is valid C - we only preprocess it, but since the reason for
12150           having the dummy stuff at all is to avoid problems with "smart"
12151           preprocessors which moan if the code isn't valid, this seems worth
12152           fixing.
12154 Sun Jul 19 10:21:41 GMT 2009  Olly Betts <olly@survex.com>
12156         * backends/flint/flint_database.cc: Backport the previous change to
12157           flint.
12159 Sun Jul 19 08:04:48 GMT 2009  Olly Betts <olly@survex.com>
12161         * backends/chert/chert_database.cc: Instead of dynamically building a
12162           std::list of the leafnames we need to replicate, just list them in a
12163           compact format in the source file.  Results in smaller code and
12164           should be faster and smaller at runtime.
12166 Sat Jul 18 17:12:58 GMT 2009  Olly Betts <olly@survex.com>
12168         * languages/compiler/generator.c: Merge among table entries which are
12169           substrings of others in the same among.  We could be much cleverer
12170           and merge between amongs, and allow overlaps, etc, but this get us
12171           a nice size reduction for a small amount of effort, so it'll do for
12172           now.
12174 Sat Jul 18 15:42:48 GMT 2009  Olly Betts <olly@survex.com>
12176         * languages/compiler/generator.c,languages/steminternal.cc,
12177           languages/steminternal.h: Change how snowball generates the data used
12178           by among - instead of using pointers to the strings in struct among,
12179           store an offset into a constant pool, as this reduces the number of
12180           relocations from 5001 to 2706, which should decrease the time taken
12181           by the dynamic linker when loading the library.  This also results
12182           in slightly smaller code.
12184 Fri Jul 17 16:32:02 GMT 2009  Olly Betts <olly@survex.com>
12186         * tests/api_nodb.cc: Check output of Stem::get_description() for each
12187           supported language.
12189 Thu Jul 16 04:34:57 GMT 2009  Olly Betts <olly@survex.com>
12191         * common/fileutils.h: Remove unnecessary XAPIAN_VISIBILITY_DEFAULT
12192           (ticket#63).
12193         * common/fileutils.cc,common/fileutils.h: Make isabspath() static
12194           since it is only used by other functions in the same file.
12196 Thu Jul 16 04:13:48 GMT 2009  Olly Betts <olly@survex.com>
12198         * queryparser/queryparser.lemony: Fix comment typo.
12200 Thu Jul 16 03:59:49 GMT 2009  Olly Betts <olly@survex.com>
12202         * api/sorter.cc,include/xapian/sorter.h: MultiValueSorter doesn't
12203           need an explicit dtor - it's enough that Sorter has a virtual dtor.
12205 Thu Jul 16 03:29:41 GMT 2009  Olly Betts <olly@survex.com>
12207         * AUTHORS: Add Andreas Flöter for the Solaris package howto.
12209 Wed Jul 15 14:37:19 GMT 2009  Olly Betts <olly@survex.com>
12211         * matcher/rset.cc: Just pass pointer as AutoPtr constructor parameter
12212           rather constructing a temporary AutoPtr and invoking the assignment
12213           operator.
12215 Wed Jul 15 03:43:35 GMT 2009  Olly Betts <olly@survex.com>
12217         * common/omenquireinternal.h: "class" -> "object" in doc comment.
12219 Wed Jul 15 03:38:55 GMT 2009  Olly Betts <olly@survex.com>
12221         * tests/runtest.in: Raise the fd limit from 32 to 64 - multi_flint
12222           tests need more than 32 fds.
12224 Tue Jul 14 20:32:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12226         * api/omenquire.cc,common/omenquireinternal.h: Revert r13052, which
12227           changed Enquire::Internal::weight not to be mutable.  Expand the
12228           comment explaining why it's mutable.
12230 Tue Jul 14 18:40:43 GMT 2009  Olly Betts <olly@survex.com>
12232         * tests/runtest.in: Use "ulimit -n" where available to limit the
12233           number of available file descriptors to 32 so we catch file
12234           descriptor leaks sooner.
12236 Tue Jul 14 16:53:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12238         * api/omenquire.cc,common/omenquireinternal.h: Tidy up mutable
12239           Weight member on Enquire::Internal class; make it non-mutable,
12240           and just make a temporary BM25Weight object if the weight member
12241           was NULL.
12243 Tue Jul 14 12:36:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12245         * common/output.h: Display a "<NULL $CLASSNAME>" message in debug
12246           output when a pointer being output is NULL.  Previously, NULL
12247           Query::Internal pointers were causing segfaults with debug
12248           logging for many tests (eg, emptyquery1).
12250 Sun Jul 12 14:56:18 GMT 2009  Olly Betts <olly@survex.com>
12252         * backends/chert/chert_database.cc: We no longer have a "value" table
12253           (values are now stored in the postlist and termlist tables) so fix
12254           comments not to refer to it.
12256 Sun Jul 12 14:47:17 GMT 2009  Olly Betts <olly@survex.com>
12258         * backends/chert/: Add new ChertLazyTable class and subclass lazy
12259           tables from it so that we only need to implement the common
12260           differences once.
12262 Sun Jul 12 13:41:27 GMT 2009  Olly Betts <olly@survex.com>
12264         * api/replication.cc: No point using join_paths() to append a literal
12265           leaf name, especially as we already don't elsewhere.
12267 Sun Jul 12 12:01:25 GMT 2009  Olly Betts <olly@survex.com>
12269         * queryparser/queryparser.lemony: Fix memory leak accidentally
12270           introduced in r13005.
12272 Sun Jul 12 11:40:26 GMT 2009  Olly Betts <olly@survex.com>
12274         * tests/api_opsynonym.cc: Remove debug "cout" calls.
12276 Sun Jul 12 09:43:06 GMT 2009  Olly Betts <olly@survex.com>
12278         * matcher/queryoptimiser.cc: Don't just skip counting subqueries which
12279           are the RHS of OP_AND_NOT - skip based on factor == 0.0, which means
12280           we get the RHS of OP_FILTER too.
12281         * tests/api_percentages.cc: Add topercent4 as a regression test for
12282           this.
12284 Sun Jul 12 09:32:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12286         * matcher/andmaybepostlist.cc: Add DEBUGCALL macro to
12287           count_matching_subqs() to fix build with assertions.
12289 Sun Jul 12 08:17:02 GMT 2009  Olly Betts <olly@survex.com>
12291         * matcher/remotesubmatch.cc: Percentage scaling for remote results is
12292           handled in a different way, so replace FIXME with comment noting
12293           this.
12295 Sun Jul 12 05:48:17 GMT 2009  Olly Betts <olly@survex.com>
12297         * matcher/multimatch.cc: Fix handling of percentage weights in various
12298           cases when we're searching multiple remote databases or a mix of
12299           local and remote databases.
12300         * tests/api_percentages.cc: Add regression test topercent3.
12302 Sat Jul 11 13:35:02 GMT 2009  Olly Betts <olly@survex.com>
12304         * matcher/mergepostlist.cc: Fix file description - MergePostList can
12305           merge any number of posting lists, not just two.
12307 Sat Jul 11 13:09:40 GMT 2009  Olly Betts <olly@survex.com>
12309         * matcher/extraweightpostlist.h:
12310           ExtraWeightPostList::read_position_list() and
12311           ExtraWeightPostList::open_position_list() aren't used, so remove
12312           them.
12314 Sat Jul 11 12:54:30 GMT 2009  Olly Betts <olly@survex.com>
12316         * api/leafpostlist.cc,api/postlist.cc,common/leafpostlist.h,
12317           common/postlist.h,common/submatch.h,matcher/,tests/api_anydb.cc,
12318           tests/api_opsynonym.cc: Count how many leaf subqueries match for the
12319           document with the highest weight when calculating the percentage
12320           weights, instead of using the termlist of that document (ticket#363).
12321           Also fixes XOR with a SYNONYM subquery which could achieve 100%
12322           weight before.
12324 Fri Jul 10 08:02:18 GMT 2009  Olly Betts <olly@survex.com>
12326         * api/omdatabase.cc,backends/chert/chert_spelling.cc,
12327           backends/flint/flint_spelling.cc,common/database.h: Deal with the
12328           case of get_spelling_suggestion() with an empty or single character
12329           word up front.
12331 Thu Jul 09 16:20:47 GMT 2009  Olly Betts <olly@survex.com>
12333         * tests/harness/backendmanager_remotetcp.cc: In clean_up(), only scan
12334           through the pid_to_fd array once, and disable the signal handler
12335           and call waitpid() for any remaining pids ourselves, rather than
12336           calling sleep(1) and rechecking.  This should avoid pointless delays
12337           when the child hasn't exited when we first check.
12339 Thu Jul 09 12:40:52 GMT 2009  Olly Betts <olly@survex.com>
12341         * tests/harness/: BackendManager has a virtual dtor, so we don't need
12342           empty virtual dtors in its subclasses.
12344 Thu Jul 09 11:40:20 GMT 2009  Olly Betts <olly@survex.com>
12346         * tests/harness/backendmanager_remotetcp.cc,
12347           tests/harness/backendmanager_remotetcp.h: Move the
12348           BackendManagerRemoteTcp ctor back into the header now it is trivial
12349           again.
12351 Wed Jul 08 16:56:53 GMT 2009  Olly Betts <olly@survex.com>
12353         * backends/flint/flint_io.h: Backport change to use F_FULLSYNC from
12354           chert.
12356 Wed Jul 08 15:30:22 GMT 2009  Olly Betts <olly@survex.com>
12358         * configure.ac: Check that we can find the valgrind/memcheck.h header
12359           as well as the valgrind binary.
12361 Wed Jul 08 14:30:53 GMT 2009  Olly Betts <olly@survex.com>
12363         * tests/harness/backendmanager_remotetcp.cc: Sort out the clash
12364           between two different patches to fix leaking file descriptors.
12365           Also, call clean_up() from the destructor to correctly handle the
12366           case when a BackendManagerRemoteTcp is created by a test case
12367           directly.
12369 Wed Jul 08 14:17:43 GMT 2009  Olly Betts <olly@survex.com>
12371         * tests/harness/: Rename "posttest()" method to "clean_up()" - I keep
12372           thinking "power-on self-test".
12374 Wed Jul 08 05:08:09 GMT 2009  Olly Betts <olly@survex.com>
12376         * backends/chert/chert_io.h: Use F_FULLFSYNC where available (Mac OS X
12377           currently).  (ticket#288)
12379 Tue Jul 07 09:31:35 GMT 2009  Olly Betts <olly@survex.com>
12381         * queryparser/queryparser.lemony: If default_op is OP_NEAR or OP_PHRASE
12382           then make the default window size (9 + no_of_terms), like it would be
12383           for an explicit NEAR or PHRASE without an explicit window size.
12384           (ticket#254)
12385         * tests/queryparsertest.cc: Add feature tests for this.
12387 Tue Jul 07 07:18:15 GMT 2009  Olly Betts <olly@survex.com>
12389         * HACKING,api/,backends/chert/,backends/flint/,
12390           backends/remote/remote-database.cc,common/,languages/steminternal.h,
12391           net/,queryparser/queryparser.cc,tests/harness/,tests/internaltest.cc,
12392           tests/perftest/freemem.cc,tests/perftest/perftest_randomidx.cc,
12393           tests/stemtest.cc,unicode/utf8itor.cc: Update to use C++ forms for
12394           ISO C standard headers (ticket#330).
12396 Tue Jul 07 05:30:58 GMT 2009  Olly Betts <olly@survex.com>
12398         * backends/inmemory/inmemory_database.h: Use "omassert.h" not
12399           <omassert.h>.
12401 Mon Jul 06 04:30:59 GMT 2009  Olly Betts <olly@survex.com>
12403         * AUTHORS: Add Rolf Köhling for fixes for Omega on MS Windows.
12405 Sun Jul 05 16:28:54 GMT 2009  Olly Betts <olly@survex.com>
12407         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
12408           Backport the lazyupdate changes from chert to flint.
12410 Sun Jul 05 13:12:53 GMT 2009  Olly Betts <olly@survex.com>
12412         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Move
12413           virtual destructor definition out of the header.
12415 Sun Jul 05 04:09:04 GMT 2009  Olly Betts <olly@survex.com>
12417         * common/documentterm.h: Add const to OmDocumentTerm::get_wdf() method
12418           (ticket#139).
12420 Sat Jul 04 16:45:43 GMT 2009  Olly Betts <olly@survex.com>
12422         * queryparser/lemon.c: Merge upstream "Check-in Number: 6757" - no
12423           functional changes in generated code for our parser.
12425 Sat Jul 04 16:39:41 GMT 2009  Olly Betts <olly@survex.com>
12427         * queryparser/lemon.c: Merge upstream "Check-in Number: 6756" - no
12428           functional changes in generated code for our parser.
12430 Sat Jul 04 16:36:59 GMT 2009  Olly Betts <olly@survex.com>
12432         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
12433           "Check-in Number: 6755" - no functional changes in generated code for
12434           our parser.
12436 Sat Jul 04 16:29:24 GMT 2009  Olly Betts <olly@survex.com>
12438         * queryparser/lemon.c: Merge upstream "Check-in Number: 6754" - no
12439           changes in generated code for our parser.
12441 Sat Jul 04 16:24:45 GMT 2009  Olly Betts <olly@survex.com>
12443         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6749" -
12444           only changes are in code which isn't compiled due to preprocessor
12445           conditionals.
12447 Sat Jul 04 16:02:08 GMT 2009  Olly Betts <olly@survex.com>
12449         * api/editdistance.cc: Add const to is_transposed() method
12450           (ticket#139).
12452 Sat Jul 04 15:19:55 GMT 2009  Olly Betts <olly@survex.com>
12454         * backends/chert/chert_lock.h,backends/flint/flint_lock.h: Make
12455           ChertLock::operator bool() and FlintLock::operator bool() const
12456           (ticket#139).
12458 Sat Jul 04 14:56:42 GMT 2009  Olly Betts <olly@survex.com>
12460         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
12461           backends/flint/flint_database.cc,backends/flint/flint_database.h:
12462           Make ChertDatabase::get_changeset_revisions() and
12463           FlintDatabase::get_changeset_revisions() const (ticket#139).
12465 Sat Jul 04 14:10:55 GMT 2009  Olly Betts <olly@survex.com>
12467         * backends/chert/chert_changesetapplier.h,
12468           backends/flint/flint_changesetapplier.h: "the the" -> "the" in
12469           comments.
12471 Sat Jul 04 14:06:39 GMT 2009  Olly Betts <olly@survex.com>
12473         * backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h:
12474           Make ChertTable_base::do_unpack_uint() just a static non-class
12475           function.  Use string::+= to build up the error string in it, and
12476           mark the error case as rare.
12478 Wed Jul 01 04:12:22 GMT 2009  Olly Betts <olly@survex.com>
12480         * docs/spelling.rst: Omega now supports spelling correction.
12482 Mon Jun 29 08:16:13 GMT 2009  Olly Betts <olly@survex.com>
12484         * queryparser/queryparser.lemony: Reset the begin and end strings
12485           before trying the next ValueRangeProcessor in case they've been
12486           modified.
12487         * tests/queryparsertest.cc: Add regression tests and general coverage
12488           for this area.
12490 Mon Jun 29 06:33:45 GMT 2009  Olly Betts <olly@survex.com>
12492         * backends/remote/net_postlist.cc: Remove unused '#include
12493           "serialise-double.h"'.
12495 Mon Jun 29 06:32:52 GMT 2009  Olly Betts <olly@survex.com>
12497         * backends/remote/net_postlist.cc: Build up description string using
12498           +=.
12500 Sun Jun 28 14:50:56 GMT 2009  Olly Betts <olly@survex.com>
12502         * backends/remote/net_postlist.h: Fix internal doc comment.
12504 Sat Jun 27 13:35:45 GMT 2009  Olly Betts <olly@survex.com>
12506         * configure.ac: -Wshadow produces false positives with GCC 4.0, so
12507           only enable  it for >= 4.1 since we enable -Werror for
12508           maintainer-mode builds for GCC >= 4.0.
12510 Sat Jun 27 13:30:22 GMT 2009  Olly Betts <olly@survex.com>
12512         * backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h:
12513           Fix return type of MultiTermList::positionlist_count() to be
12514           Xapian::termcount rather than Xapian::termpos.
12516 Sat Jun 27 12:50:17 GMT 2009  Olly Betts <olly@survex.com>
12518         * backends/flint/flint_alltermslist.h,backends/flint/flint_postlist.cc,
12519           backends/flint/flint_postlist.h: Fix to use Xapian::doccount for
12520           termfreq in flint too.
12522 Sat Jun 27 12:28:47 GMT 2009  Olly Betts <olly@survex.com>
12524         * backends/chert/chert_alltermslist.cc: Prefer 'str.resize(0)' to
12525           'str = ""'.
12527 Sat Jun 27 12:16:17 GMT 2009  Olly Betts <olly@survex.com>
12529         * backends/chert/chert_alltermslist.h,backends/chert/chert_postlist.h:
12530           Fix to use Xapian::doccount for termfreq in more places.
12532 Sat Jun 27 11:51:25 GMT 2009  Olly Betts <olly@survex.com>
12534         * backends/chert/chert_table.cc: Change so add_item_to_block() can
12535           always assume there is another contiguous space in the block
12536           (previously it could assume that there was enough space, but not
12537           that it was necessarily contiguous).
12539 Sat Jun 27 09:55:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12541         * include/xapian/postingsource.h,include/xapian/weight.h: Add note
12542           that PostingSource and Weight objects returned by clone() and
12543           unserialise() methods will be deallocated with "delete".
12545 Sat Jun 27 07:26:41 GMT 2009  Olly Betts <olly@survex.com>
12547         * backends/chert/chert_postlist.cc: Adjust use of Xapian::doccount vs
12548           Xapian::termcount for consistency so things work better when these
12549           types aren't identical.
12551 Sat Jun 27 01:48:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12553         * api/matchspy.cc: Remove unused matchspy.cc - there is an updated
12554           version of this on the matchspy branch; having an old copy here
12555           is just likely to lead to confusion.
12557 Fri Jun 26 05:42:26 GMT 2009  Olly Betts <olly@survex.com>
12559         * api/documentvaluelist.cc,api/documentvaluelist.h: Change
12560           DocumentValueList::skip_to()'s parameter type from Xapian::valueno
12561           to Xapian::docid to agree with the type in ValueList::skip_to().
12562           This is a latent bug - it doesn't matter provided the types are
12563           actually the same (ticket#385).
12565 Thu Jun 25 11:20:07 GMT 2009  Olly Betts <olly@survex.com>
12567         * matcher/phrasepostlist.cc: Use Xapian::termcount(1) instead of 1u
12568           so that the code doesn't assume Xapian::termcount is unsigned int.
12570 Sun Jun 21 12:09:55 GMT 2009  Olly Betts <olly@survex.com>
12572         * backends/chert/chert_check.cc,backends/chert/chert_table.cc,
12573           backends/chert/chert_table.h: Replace duplicated macros with
12574           a single version in chert_table.h, and use DIR_START instead of
12575           a literal 11 in that header.
12576         * backends/chert/chert_table.h: Add more assertions.  Use
12577           BYTES_PER_BLOCK_NUMBER instead of a literal 4 in more places.
12579 Sat Jun 20 07:38:56 GMT 2009  Olly Betts <olly@survex.com>
12581         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: Fix
12582           misspelling in comment (neccessary -> necessary).
12584 Sat Jun 20 07:38:06 GMT 2009  Olly Betts <olly@survex.com>
12586         * backends/chert/chert_table.cc: Don't reconstruct Item(p, c) when we
12587           already have it as a local variable.
12589 Wed Jun 17 01:23:16 GMT 2009  Olly Betts <olly@survex.com>
12591         * common/str.cc: Fix potential warning in signed version of str().
12593 Tue Jun 16 11:20:43 GMT 2009  Olly Betts <olly@survex.com>
12595         * tests/harness/testsuite.cc,tests/harness/testsuite.h: Factor out
12596           writing out what was sent to tout and clearing it into a new
12597           method test_driver::write_and_clear_tout().
12598         * tests/harness/testsuite.cc: Prefer string() to "".  When sending a
12599           colour change code, do it before the preceding space when that allows
12600           string literals to be merged.  Always give the full exception message
12601           (was conditional on --verbose).  Tidy up output for reporting the
12602           various different exception types and other failures to give more
12603           consistent output.
12605 Tue Jun 16 11:01:14 GMT 2009  Olly Betts <olly@survex.com>
12607         * tests/harness/scalability.cc: Increase the number of tests until the
12608           first sample takes more than 0.001 seconds to avoid trying to base
12609           calculations on a length of time we probably can't reliably measure
12610           to start with.
12612 Tue Jun 16 10:58:34 GMT 2009  Olly Betts <olly@survex.com>
12614         * tests/harness/cputimer.cc: Don't bother trying to count CPU time
12615           for child processes, as it's hard to ensure that the child processes
12616           have finished with the current framework, and just counting time in
12617           the current process checks most things (the local backend tests cover
12618           much of the work done by the server part of the remote backend).
12620 Tue Jun 16 02:15:31 GMT 2009  Olly Betts <olly@survex.com>
12622         * tests/harness/cputimer.h: Don't need '#include <ctime>'.
12624 Tue Jun 16 02:10:29 GMT 2009  Olly Betts <olly@survex.com>
12626         * tests/harness/cputimer.h: Fix naming of header multiple-inclusion
12627           protection macro.
12629 Sun Jun 14 14:11:51 GMT 2009  Olly Betts <olly@survex.com>
12631         * tests/internaltest.cc: In testcase serialisequery1, use a helper
12632           function rather than wasting effort building a std::list with all the
12633           testcases in just so we can iterate over them.
12635 Sun Jun 14 13:52:22 GMT 2009  Olly Betts <olly@survex.com>
12637         * tests/harness/testsuite.cc: <iomanip> isn't used so remove it.
12639 Sun Jun 14 13:30:34 GMT 2009  Olly Betts <olly@survex.com>
12641         * tests/harness/testsuite.h: Fix comment typo.
12643 Sat Jun 13 06:30:57 GMT 2009  Olly Betts <olly@survex.com>
12645         * tests/api_anydb.cc: Fix reversed conditional in last but one change.
12647 Sat Jun 13 04:42:27 GMT 2009  Olly Betts <olly@survex.com>
12649         * tests/api_anydb.cc: Use TEST_EQUAL_DOUBLE() when comparing
12650           get_max_attained() to allow for rounding differences.
12652 Sat Jun 13 04:39:49 GMT 2009  Olly Betts <olly@survex.com>
12654         * tests/api_anydb.cc: Use "startswith()" rather than comparing an
12655           extracted substring.
12657 Fri Jun 12 12:45:37 GMT 2009  Olly Betts <olly@survex.com>
12659         * tests/harness/backendmanager_remotetcp.cc: Fix the mechanism for
12660           closing the file descriptors used by child xapian-tcpsrv processes
12661           once they exit, which has been broken ever since it was added nearly
12662           two years ago (sigh).  Fixes fd leaking which caused "apitest
12663           -bremotetcp" to fail on OpenBSD (ticket#382).
12665 Fri Jun 12 03:37:13 GMT 2009  Olly Betts <olly@survex.com>
12667         * tests/harness/backendmanager_remotetcp.cc: Fix comment typo.
12669 Wed Jun 10 04:29:43 GMT 2009  Olly Betts <olly@survex.com>
12671         * common/serialise-double.cc,common/serialise-double.h: Relicense as
12672           MIT/X rather than GPLv2+ as these are low level routines which other
12673           projects may find useful.
12675 Tue Jun 09 14:34:20 GMT 2009  Olly Betts <olly@survex.com>
12677         * NEWS: Update for 1.1.1.
12679 Tue May 26 14:55:05 GMT 2009  Olly Betts <olly@survex.com>
12681         * configure.ac: Update version to 1.1.1.
12683 Tue May 26 14:49:23 GMT 2009  Olly Betts <olly@survex.com>
12685         * NEWS: Lick into shape.
12687 Mon May 25 11:55:59 GMT 2009  Olly Betts <olly@survex.com>
12689         * PLATFORMS: Sync with changes in 1.0 version.
12691 Mon May 25 10:57:59 GMT 2009  Olly Betts <olly@survex.com>
12693         * common/weightinternal.h: Remove declarations of unimplemented
12694           constructors (ticket#379).
12696 Sat May 23 16:06:05 GMT 2009  Olly Betts <olly@survex.com>
12698         * NEWS: Update from 1.0.13 and ChangeLog.
12700 Sat May 23 15:35:39 GMT 2009  Olly Betts <olly@survex.com>
12702         * HACKING: ValueIterator is now a PIMPL class like TermIterator, etc.
12704 Sat May 23 05:24:33 GMT 2009  Olly Betts <olly@survex.com>
12706         * docs/postingsource.rst: Since we are sticking with an recursive
12707           maxweight recalculation for now, add back a warning about the
12708           potential overhead from calling set_maxweight() very frequently,
12709           with an informed estimate for the worst case overhead.
12711 Fri May 22 11:44:04 GMT 2009  Olly Betts <olly@survex.com>
12713         * backends/inmemory/inmemory_database.cc: We can trivially make
12714           Database::metadata_keys_begin() work for inmemory in the special
12715           case when there are no keys, so do so.
12716         * tests/api_metadata.cc: Add test coverage for this case.
12718 Fri May 22 09:31:07 GMT 2009  Olly Betts <olly@survex.com>
12720         * configure.ac: Only bother passing -Winit-self for GCC >= 4.3, as it
12721           doesn't do anything for GCC <= 4.4 anyway.
12723 Fri May 22 07:00:29 GMT 2009  Olly Betts <olly@survex.com>
12725         * backends/flint/flint_version.h: Initialise filename using + not +=.
12726           Fix odd whitespace in recent change.
12728 Fri May 22 05:27:56 GMT 2009  Olly Betts <olly@survex.com>
12730         * AUTHORS: Update.
12732 Fri May 22 05:24:19 GMT 2009  Olly Betts <olly@survex.com>
12734         * api/postingsource.cc,common/multimatch.h,matcher/multimatch.cc:
12735           Replace MultiMatch::reduce_maxweight_by() with a call to
12736           MultiMatch::recalc_maxweight() and inline the later from the header.
12738 Fri May 22 05:16:03 GMT 2009  Olly Betts <olly@survex.com>
12740         * configure.ac: Enable more GCC warnings - "-Woverloaded-virtual" for
12741           all versions, "-Wstrict-null-sentinel" for 4.0+, "-Wlogical-op
12742           -Wmissing-declarations" for 4.3+.  Notably "-Wmissing-declarations"
12743           caught that consistency2 wasn't being run.
12745 Fri May 22 05:15:08 GMT 2009  Olly Betts <olly@survex.com>
12747         * languages/steminternal.cc,languages/steminternal.h: Inline simple
12748           Stem::Internal::Internal() constructor from header.
12750 Thu May 21 16:23:26 GMT 2009  Olly Betts <olly@survex.com>
12752         * tests/harness/backendmanager_remotetcp.cc: Make on_SIGCHLD() static.
12754 Thu May 21 16:22:56 GMT 2009  Olly Betts <olly@survex.com>
12756         * tests/api_wrdb.cc: Fix testcase consistency2 to actually be run.
12758 Thu May 21 16:22:30 GMT 2009  Olly Betts <olly@survex.com>
12760         * tests/api_transdb.cc: Add missing '#include "api_transdb.h"'.
12762 Thu May 21 12:58:22 GMT 2009  Olly Betts <olly@survex.com>
12764         * backends/databasereplicator.cc: Don't bother to check if the
12765           database path works in stat() and is a directory - the case we want
12766           to be fast is when the database does exist, and if path +
12767           "/iamflint" (or "iamchert") exists, then the check for path being a
12768           directory is redundant.  If the path isn't a flint or chert database
12769           then a generic message including the path seems sufficient.
12771 Thu May 21 09:17:15 GMT 2009  Olly Betts <olly@survex.com>
12773         * backends/databasereplicator.cc,common/databasereplicator.h: Inline
12774           empty DatabaseReplicator default ctor.
12776 Thu May 21 08:25:24 GMT 2009  Olly Betts <olly@survex.com>
12778         * api/replication.cc: Cache the result of get_replica_path() when we
12779           are going to need it again.
12781 Thu May 21 08:09:51 GMT 2009  Olly Betts <olly@survex.com>
12783         * backends/chert/chert_databasereplicator.h,
12784           backends/flint/flint_databasereplicator.h: Correct parent class name
12785           in doxygen comments.
12787 Thu May 21 08:08:06 GMT 2009  Olly Betts <olly@survex.com>
12789         * HACKING: Update list of Debian/Ubuntu packages needed to for a
12790           development environment.
12792 Thu May 21 06:28:00 GMT 2009  Olly Betts <olly@survex.com>
12794         * backends/databasereplicator.cc: Fix nested comment start introduced
12795           by the previous commit.
12797 Thu May 21 06:21:39 GMT 2009  Olly Betts <olly@survex.com>
12799         * api/replication.cc,backends/databasereplicator.cc,
12800           common/databasereplicator.h: We only keep one pointer to a
12801           DatabaseReplicator, so use AutoPtr not RefCntPtr.
12803 Thu May 21 05:00:17 GMT 2009  Olly Betts <olly@survex.com>
12805         * api/replication.cc: Fix SEGV when calling get_description() on a
12806           default constructed DatabaseReplica.
12807         * tests/generate-api_generated: Test DatabaseReplica (regression test
12808           for the above bug) and SerialisationContext.   Fix @file in the
12809           generated api_generated.cc.  Update (C) dates in generated
12810           api_generated.cc.
12812 Thu May 21 03:58:59 GMT 2009  Olly Betts <olly@survex.com>
12814         * tests/generate-api_generated: Call get_description() on the default
12815           constructed object to make sure that works (and doesn't try to
12816           dereference NULL, or fail some assertion, etc).  All currently
12817           checked classes are fine - this is to avoid future regressions or
12818           such problems with new classes.
12820 Wed May 20 14:19:54 GMT 2009  Olly Betts <olly@survex.com>
12822         * net/tcpclient.cc,net/tcpserver.cc: Fix xapian-tcpsrv --interface
12823           option to work on MacOS X (ticket#373).
12825 Wed May 20 13:58:09 GMT 2009  Olly Betts <olly@survex.com>
12827         * api/omdatabase.cc,api/sortable-serialise.cc,backends/chert/,
12828           backends/flint/,backends/remote/remote-database.cc,
12829           common/serialise-double.cc,common/str.cc,
12830           matcher/exactphrasepostlist.cc,net/remoteconnection.cc,
12831           net/remoteserver.cc: Replace C-style casts.  Add a few missing casts.
12832           Tweak types used in a few places.
12834 Wed May 20 13:55:41 GMT 2009  Olly Betts <olly@survex.com>
12836         * backends/chert/chert_databasereplicator.cc,
12837           backends/flint/flint_databasereplicator.cc: Need <cstdio> for
12838           rename().  Replace C-style cast to off_t.
12840 Wed May 20 13:53:25 GMT 2009  Olly Betts <olly@survex.com>
12842         * api/editdistance.cc: Make edist_state class uncopyable and
12843           unassignable.  Initialise maxdist in the initialiser list.
12845 Wed May 20 11:19:53 GMT 2009  Olly Betts <olly@survex.com>
12847         * languages/steminternal.cc,languages/steminternal.h: Change C-style
12848           casts to C++-style ones.
12850 Wed May 20 10:40:03 GMT 2009  Olly Betts <olly@survex.com>
12852         * common/str.h: Add static_cast<char>() to suppress bogus MSVC
12853           warning (ticket#377).
12855 Tue May 19 15:26:39 GMT 2009  Olly Betts <olly@survex.com>
12857         * backends/chert/,backends/flint/,common/rset.h,tests/api_anydb.cc:
12858           Pass std::string by const reference rather than value (except in
12859           a few cases where we need a modifiable copy anyway) as benchmarking
12860           shows this is better even with GCC's reference counted std::string
12861           implementation (ticket#140).
12862         * tests/api_anydb.cc: Use string() instead of "" for an empty string.
12864 Tue May 19 08:47:55 GMT 2009  Olly Betts <olly@survex.com>
12866         * api/omquery.cc,include/xapian/query.h: Make Xapian::Query::MatchAll
12867           and Xapian::Query::MatchNothing const since they're immutable.  All
12868           the public methods are const, so this should be completely API
12869           compatible.
12871 Tue May 19 06:25:26 GMT 2009  Olly Betts <olly@survex.com>
12873         * include/xapian/enquire.h: Document what passing maxitems=0 to
12874           get_mset() does.
12876 Mon May 18 13:32:49 GMT 2009  Olly Betts <olly@survex.com>
12878         * include/xapian/database.h: Correct doxygen comments for user
12879           metadata functions: get_metadata() can't throw UnimplementedError
12880           but set_metadata() can.
12881         * include/xapian/database.h,tests/api_metadata.cc: Document that
12882           metadata_keys_begin() returns an end iterator if the backend doesn't
12883           support metadata, and add test coverage for this case.
12884         * backends/inmemory/inmemory_database.cc,
12885           backends/inmemory/inmemory_database.h,include/xapian/database.h,
12886           tests/api_metadata.cc,tests/harness/testrunner.cc: The test harness
12887           didn't have the inmemory backend flagged as supporting
12888           user-specified metadata, and so it's perhaps not a great surprise to
12889           discover that inmemory doesn't support it fully - you can't iterate
12890           over metadata keys, but instead get an empty iteration.  Fix this
12891           to at least throw UnimplementedError and document that this is the
12892           situation.
12894 Mon May 18 11:29:10 GMT 2009  Olly Betts <olly@survex.com>
12896         * tests/Makefile.am,tests/api_metadata.cc,tests/api_wrdb.cc: Split out
12897           tests of user metadata into their own file.
12899 Sun May 17 12:52:41 GMT 2009  Olly Betts <olly@survex.com>
12901         * matcher/: Add a new constructor to MultiAndPostList for the "decay
12902           from OrPostList or AndMaybePostList" case which takes the already
12903           know max weights to avoid having to refetch them.  Also, we know
12904           that the subpostlists of OrPostList are ordered a particular way
12905           so can avoid needing to check the order in that case.
12907 Sat May 16 05:02:35 GMT 2009  Olly Betts <olly@survex.com>
12909         * backends/flint/flint_version.cc: Fix comment - this file doesn't
12910           use memcpy() now.
12912 Thu May 14 04:38:47 GMT 2009  Olly Betts <olly@survex.com>
12914         * tests/api_percentages.cc: Remove superfluous explicit std::
12915           qualifiers.
12917 Thu May 14 04:36:29 GMT 2009  Olly Betts <olly@survex.com>
12919         * tests/api_percentages.cc: Update for the PostingSource
12920           get_maxweight() API changes.
12922 Tue May 12 14:50:57 GMT 2009  Olly Betts <olly@survex.com>
12924         * matcher/multimatch.cc: Rename "max_weight" variable to "max_possible"
12925           since that is what it is referred to via the MSet API.
12927 Tue May 12 12:38:11 GMT 2009  Olly Betts <olly@survex.com>
12929         * common/safeuuid.h: Fix length of buffer to lower case - it's
12930           36, not sizeof(uuid_t).
12932 Tue May 12 02:49:34 GMT 2009  Olly Betts <olly@survex.com>
12934         * common/safeuuid.h,configure.ac: Older versions of libuuid don't have
12935           uuid_unparse_lower() so probe for it in configure, and if it isn't
12936           present provide an inline version in safeuuid.h (ticket#368).
12938 Mon May 11 13:07:47 GMT 2009  Olly Betts <olly@survex.com>
12940         * tests/api_postingsource.cc: In changemaxweightsource1, set
12941           descending docid order so that the matcher isn't able to terminate
12942           early after 4 documents just because weight == maxweight.
12944 Mon May 11 12:00:04 GMT 2009  Olly Betts <olly@survex.com>
12946         * net/serialise.cc: Build up string using +=.
12948 Mon May 11 11:39:49 GMT 2009  Olly Betts <olly@survex.com>
12950         * docs/postingsource.rst: Improve documentation for get_maxweight().
12952 Mon May 11 11:26:02 GMT 2009  Olly Betts <olly@survex.com>
12954         * include/xapian/postingsource.h: Initialise max_weight_ to 0 in the
12955           PostingSource constructor in case nobody else sets a value for it.
12957 Mon May 11 10:54:47 GMT 2009  Olly Betts <olly@survex.com>
12959         * tests/api_postingsource.cc: Fix class name in FAIL_TEST message.
12961 Mon May 11 10:41:31 GMT 2009  Olly Betts <olly@survex.com>
12963         * tests/api_postingsource.cc: Fix get_termfreq_min(), etc for
12964           ChangeMaxweightPostingSource to return 4 not 5.
12966 Mon May 11 09:03:14 GMT 2009  Olly Betts <olly@survex.com>
12968         * api/postingsource.cc: Remove assertion checking that set_maxweight()
12969           doesn't set a lower weight - it legitimately can when we call init()
12970           on a non-clone-able PostingSource for reuse.
12972 Mon May 11 03:12:00 GMT 2009  Olly Betts <olly@survex.com>
12974         * api/postingsource.cc,common/multimatch.h,docs/postingsource.rst,
12975           include/xapian/postingsource.h,matcher/externalpostlist.cc,
12976           matcher/externalpostlist.h,matcher/msetpostlist.cc,
12977           tests/api_postingsource.cc: Replace PostingSource's
12978           notify_new_maxweight() and virtual get_maxweight() mechanism with a
12979           non-virtual set_maxweight() and get_maxweight().  Currently the
12980           plumbing at the matcher end is much as before, but this API seems
12981           more obvious to the user and will allow the matcher to simply reduce
12982           its maximum weight value rather than having to recursively call
12983           recalc_maxweight() in response to this situation (ticket#340).
12985 Mon May 11 02:38:26 GMT 2009  Olly Betts <olly@survex.com>
12987         * docs/postingsource.rst: Fix a typo and reword to avoid "namespaced".
12989 Mon May 11 02:30:59 GMT 2009  Olly Betts <olly@survex.com>
12991         * matcher/msetpostlist.cc: Fix typo - MSetPostList::get_maxweight()
12992           with a sort ordered primarily by decreasing relevance was returning
12993           the docid for the maxweight!  This could have led to wrong results
12994           when searching multiple databases with the remote backend, but
12995           probably usually didn't matter as with BM25 the weights are usually
12996           small (often all < 1) while docids are inevitably >= 1.  No
12997           regression test for this (currently anyway).
12999 Sun May 10 07:49:11 GMT 2009  Olly Betts <olly@survex.com>
13001         * backends/dbfactory.cc: Fix comment typo.
13003 Sat May 09 14:15:38 GMT 2009  Olly Betts <olly@survex.com>
13005         * tests/api_collapse.cc,tests/perftest/runprocess.cc: Remove unused
13006           include of <iostream>.
13008 Sat May 09 14:03:34 GMT 2009  Olly Betts <olly@survex.com>
13010         * api/omquery.cc,matcher/andnotpostlist.cc,
13011           queryparser/termgenerator_internal.cc,tests/api_wrdb.cc: Remove
13012           unused inclusions of <algorithm>.
13014 Sat May 09 13:47:54 GMT 2009  Olly Betts <olly@survex.com>
13016         * matcher/multimatch.cc: Remove unused inclusion of <queue>.
13018 Sat May 09 13:38:02 GMT 2009  Olly Betts <olly@survex.com>
13020         * api/omquery.cc,api/omqueryinternal.cc,api/replication.cc,
13021           backends/alltermslist.cc,backends/chert/chert_table.cc,
13022           backends/flint/flint_table.cc,bin/xapian-compact.cc,
13023           common/bitstream.cc,common/inmemory_positionlist.h,
13024           common/positionlist.h,matcher/localmatch.h,matcher/queryoptimiser.cc,
13025           matcher/queryoptimiser.h,tests/api_wrdb.cc: Remove unused inclusions
13026           of <list>, <map>, <string>, and <vector>.
13028 Sat May 09 12:48:18 GMT 2009  Olly Betts <olly@survex.com>
13030         * api/documentvaluelist.cc,matcher/queryoptimiser.cc: Remove unused
13031           '#include "autoptr.h"'.
13033 Sat May 09 09:41:03 GMT 2009  Olly Betts <olly@survex.com>
13035         * queryparser/queryparser.lemony,queryparser/termgenerator.cc,
13036           weight/bm25weight.cc,weight/boolweight.cc,weight/tradweight.cc:
13037           Remove unneeded explicit "std::" qualifiers.
13039 Sat May 09 09:35:32 GMT 2009  Olly Betts <olly@survex.com>
13041         * weight/weight.cc: Doesn't use '#include "autoptr.h"'.
13043 Fri May 08 19:59:00 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13045         * configure.ac: Change source file which autoconf looks for, since
13046           I've just removed the old one that it looked for!
13048 Fri May 08 19:28:31 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13050         * matcher/andmaybepostlist.cc,matcher/branchpostlist.h: Call
13051           check() instead of skip_to() on the optional branch of AND_MAYBE.
13052           This can be much faster if that branch is a posting source.
13054 Fri May 08 18:31:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13056         * matcher/: Remove AndPostList, in favour of MultiAndPostList.
13057           AndPostList was only used as a decay product (by AndMaybePostList
13058           and OrPostList); for most queries, MultiAnd has pretty much
13059           indistinguishable performance as far as I can test; however, it
13060           uses check() when possible, which makes performance much better
13061           with searches involving external posting sources.  Removal also
13062           reduces the amount of code cluttering up the caches during a
13063           search, so may help speed things up in some other situations.
13065 Fri May 08 16:00:42 GMT 2009  Olly Betts <olly@survex.com>
13067         * api/postingsource.cc,backends/inmemory/inmemory_database.cc,
13068           examples/delve.cc,include/xapian/postingsource.h: Don't store an
13069           end iterator in a variable just to compare against it - it's now
13070           definitely more efficient to compare against the return value of
13071           the relevant _end() method.
13073 Fri May 08 15:44:07 GMT 2009  Olly Betts <olly@survex.com>
13075         * api/valueiterator.cc,include/xapian/database.h,
13076           include/xapian/document.h,include/xapian/valueiterator.h: Create a
13077           new proxy object class ValueIteratorEnd_ which is returned instead
13078           of ValueIterator(NULL) for end iterators.  This class will be
13079           converted to ValueIterator(NULL) if assigned to or passed as
13080           ValueIterator, but operator== and operator!= are overloaded to
13081           handle it directly which means that the compiler no longer calls
13082           ~ValueIterator for each call which returns ValueIterator(NULL).
13084 Fri May 08 15:42:12 GMT 2009  Olly Betts <olly@survex.com>
13086         * backends/chert/chert_values.cc: Swap two statements for cosmetic
13087           reasons.
13089 Fri May 08 14:42:49 GMT 2009  Olly Betts <olly@survex.com>
13091         * api/postingsource.cc,include/xapian/postingsource.h: It is actually
13092           better not to store the end iterator in a member variable - if we
13093           explicitly call db.postlist_end(string()) then that just gets
13094           optimised to PostingSource(NULL).
13096 Fri May 08 14:02:21 GMT 2009  Olly Betts <olly@survex.com>
13098         * tests/api_postingsource.cc: We've decided that "going back" with
13099           skip_to() or check() should have unspecified behaviour, so stop
13100           testing how this case behaves!
13102 Fri May 08 12:37:33 GMT 2009  Olly Betts <olly@survex.com>
13104         * common/Makefile.mk: Ship common/win32_uuid.cc and common/win32_uuid.h
13105           (ticket#367).
13107 Fri May 08 12:30:45 GMT 2009  Olly Betts <olly@survex.com>
13109         * tests/harness/cputimer.cc: Fix typo in the "ftime" case.
13111 Fri May 08 10:25:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13113         * matcher/andpostlist.cc: Fix a swap which was the wrong way round,
13114           so that we call next() on the subpostlist with the lower
13115           frequency, rather than the one with the higher frequency.  This
13116           should improve performance in many situations, and I don't think
13117           it's likely to slow anything down.  It also fixes some cases
13118           where optimisation of an AND_MAYBE to an AND results in a slower
13119           search, such that search times went down when more hits were
13120           requested.
13122 Fri May 08 08:48:14 GMT 2009  Olly Betts <olly@survex.com>
13124         * matcher/externalpostlist.cc: ExternalPostList::get_doclength()
13125           should never get called, so make it "Assert(false)".
13127 Fri May 08 05:16:50 GMT 2009  Olly Betts <olly@survex.com>
13129         * api/postingsource.cc: Another string concatention.
13131 Fri May 08 05:04:55 GMT 2009  Olly Betts <olly@survex.com>
13133         * api/postingsource.cc: Use str() instead of om_tostring() and build
13134           up strings using +=.
13136 Fri May 08 04:37:05 GMT 2009  Olly Betts <olly@survex.com>
13138         * api/postingsource.cc: "using namespace std;".
13140 Thu May 07 16:46:14 GMT 2009  Olly Betts <olly@survex.com>
13142         * matcher/: Check for collection_size == 0 up front so we don't need
13143           to repeatedly special case it when implementing
13144           get_termfreq_est_using_stats().
13146 Thu May 07 16:28:07 GMT 2009  Olly Betts <olly@survex.com>
13148         * matcher/xorpostlist.cc: Fix typo bug - collection_size should be
13149           rset_size.  This would have lead to a floating point division by
13150           zero when XOR was used under a synonym without an RSet, but that
13151           would just give infinity, and so just give a bogus value for the
13152           rel_termfreq rather than aborting instantly.
13154 Thu May 07 16:19:52 GMT 2009  Olly Betts <olly@survex.com>
13156         * HACKING: Update auto_ptr information.  Mention constructor syntax as
13157           an alternative replacement for some C-style casts.
13159 Thu May 07 15:25:00 GMT 2009  Olly Betts <olly@survex.com>
13161         * matcher/localmatch.cc,matcher/localmatch.h: Don't rebuild the
13162           termname -> termfreq and weight map for every subdatabase - just do
13163           it once for the first one.  Also eliminate a copy of this map.
13164           This should speed up searches a little, especially those over
13165           multiple databases.
13167 Thu May 07 15:01:24 GMT 2009  Olly Betts <olly@survex.com>
13169         * api/omdatabase.cc,api/omqueryinternal.cc,
13170           backends/remote/remote-database.cc,common/autoptr.h,
13171           expand/esetinternal.cc,matcher/localmatch.cc: Make our AutoPtr just
13172           a macro wrapper for std::auto_ptr.  Since std::auto_ptr doesn't
13173           allow assignment from a raw pointer, this requires changing such
13174           assignments into calls to auto_ptr::reset().
13176 Thu May 07 14:19:22 GMT 2009  Olly Betts <olly@survex.com>
13178         * api/leafpostlist.cc: Add an assertion that the term in the stats.
13179           Add "using namespace std;" so we can avoid explicit std:: qualifiers.
13181 Thu May 07 13:26:21 GMT 2009  Olly Betts <olly@survex.com>
13183         * matcher/: Eliminate EmptySubMatch - we can just store NULL for a
13184           submatch which has failed but which ErrorHandler told us to continue
13185           without.
13187 Thu May 07 12:52:24 GMT 2009  Olly Betts <olly@survex.com>
13189         * common/database.h: Update internal documentation comment -
13190           Database::Internal::open_post_list() can no longer return
13191           EmptyPostList as it is no longer a subclass of LeafPostList.
13193 Thu May 07 12:13:50 GMT 2009  Olly Betts <olly@survex.com>
13195         * api/leafpostlist.cc,backends/chert/chert_postlist.cc,
13196           backends/chert/chert_postlist.h,
13197           backends/flint/flint_alldocspostlist.h,
13198           backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h,
13199           backends/inmemory/inmemory_database.cc,
13200           backends/inmemory/inmemory_database.h,backends/remote/net_postlist.h,
13201           common/contiguousalldocspostlist.h,common/leafpostlist.h: Squash
13202           TermBasedLeafPostList into LeafPostList since there are no longer
13203           any other subclasses.
13205 Thu May 07 11:49:06 GMT 2009  Olly Betts <olly@survex.com>
13207         * api/Makefile.mk,api/emptypostlist.cc,common/emptypostlist.h:
13208           Reimplement EmptyPostList from scratch, and inherit from PostList
13209           not LeafPostList.
13211 Thu May 07 11:19:34 GMT 2009  Olly Betts <olly@survex.com>
13213         * matcher/mergepostlist.cc: Add explicit '#include "omassert.h"'.
13215 Thu May 07 10:28:33 GMT 2009  Olly Betts <olly@survex.com>
13217         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
13218           Subclass MultiPostList directly from PostList instead of from
13219           LeafPostList.  This gets rid of two unused data members per
13220           MultiPostList in exchange for having to define 5 extra "never
13221           called" methods, but 4 of these just tailcall.
13223 Thu May 07 10:26:39 GMT 2009  Olly Betts <olly@survex.com>
13225         * backends/inmemory/inmemory_alltermslist.cc,
13226           backends/inmemory/inmemory_database.cc: Fix assertion failures and
13227           a SEGV in an assertion test.
13229 Thu May 07 09:27:35 GMT 2009  Olly Betts <olly@survex.com>
13231         * backends/inmemory/inmemory_alltermslist.cc,
13232           backends/inmemory/inmemory_alltermslist.h,
13233           backends/inmemory/inmemory_database.cc:
13234           Keep a dummy entry in InMemoryDatabase::postlists so that the
13235           implementation of InMemoryAllTermsList doesn't need a "started"
13236           flag, and we can use an InMemoryPostList on the dummy item for
13237           the "term not in database" case.
13239 Thu May 07 05:45:48 GMT 2009  Olly Betts <olly@survex.com>
13241         * tests/api_backend.cc: Add tset coverage for alldocs iterator on an
13242           empty database.
13243         * backends/inmemory/inmemory_database.cc: No need to special case an
13244           empty database as InMemoryAllDocsPostList handles this case
13245           correctly.
13247 Thu May 07 05:08:07 GMT 2009  Olly Betts <olly@survex.com>
13249         * weight/weightinternal.cc: Use str() instead of om_tostring(), += to
13250           build up strings, and fix a cut-and-paste comment error.
13252 Wed May 06 13:03:40 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13254         * net/serialise.cc: Better serialisation - don't include the
13255           reltermfreqs if the rset_size is 0, since they'll all be 0 too.
13257 Wed May 06 12:13:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13259         * common/remoteprotocol.h,net/serialise.cc: When serialising stats,
13260           serialise the termfreq and reltermfreq together, rather than in
13261           separate lists.  Results in a smaller serialised form, and
13262           matches the in-memory structure now used better. Fixes ticket
13263           #362.  This is an incompatible remote protocol change, however,
13264           so bump the major version to 32.
13266 Wed May 06 04:02:43 GMT 2009  Olly Betts <olly@survex.com>
13268         * matcher/multimatch.cc: Check termfreqandwts for MatchAll queries
13269           before we check terms from the document so that the "terminate
13270           early once we've seen all the query terms" test when checking the
13271           document terms can fire in this case.
13273 Wed May 06 03:26:05 GMT 2009  Olly Betts <olly@survex.com>
13275         * matcher/multimatch.cc: Remove incorrect comment accidentally
13276           committed in r12623.
13278 Wed May 06 03:18:42 GMT 2009  Olly Betts <olly@survex.com>
13280         * tests/api_opsynonym.cc: Fix comment typo.
13282 Wed May 06 01:35:14 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13284         * tests/api_postingsource.cc: changemaxweightsource1 uses
13285           ChangeMaxweightPostingSource, which doesn't work with multi or
13286           remote, so mark the test accordingly.
13288 Wed May 06 01:11:25 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13290         * include/xapian/postingsource.h,api/postingsource.cc: Add
13291           notify_new_maxweight() method to be called by subclasses when they
13292           want to notify the matcher that their maxweight has changed
13293           significantly.  Add ExternalPostList as a friend and add
13294           register_externalpl() to be used to associate the ExternalPostList
13295           with the PostingSource.
13296         * matcher/externalpostlist.cc,matcher/externalpostlist.h,
13297           matcher/queryoptimiser.cc: Register the externalpostlist with the
13298           PostingSource it's iterating through.  Add
13299           ExternalPostList::notify_new_maxweight() method for
13300           PostingSource::notify_new_maxweight() to call.
13301         * docs/postingsource.rst: Document notify_new_maxweight() and the
13302           reasons for calling it.
13303         * tests/api_postingsource.cc: Test the handling of maxweight.
13305 Tue May 05 19:37:56 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13307         * tests/Makefile.am,tests/api_db.cc,tests/api_postingsource.cc:
13308           Split the tests of PostingSource subclasses out of api_db.cc; I'm
13309           about to add some more, and bloating api_db.cc further is
13310           unworkable.
13312 Tue May 05 18:23:02 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13314         * docs/postingsource.rst,include/xapian/postingsource.h:
13315           Documentation updates to describe way that init() is called
13316           again if a PostingSource is reused.  Fixes #352.
13318 Tue May 05 16:05:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13320         * tests/api_opsynonym.cc: Test that the top document has a weight
13321           of 100%, which is should do for all the current examples here.
13323 Tue May 05 16:03:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13325         * matcher/multimatch.cc: Add logging to keep track of the weights
13326           being added to percent_scale.  If the percent_scale total is 0.0,
13327           which can happen if the top document only matches synonym terms,
13328           force percent_scale to 1.0, to avoid an assertion failure.
13330 Tue May 05 13:41:57 GMT 2009  Olly Betts <olly@survex.com>
13332         * common/str.h: Fix swapped parameters in string ctor in code for
13333           str(bool) overload which lead to us returning 48 or 49 \x01
13334           characters instead of "0" or "1".
13335         * tests/internaltest.cc: Add regression test strbool1.
13336         * AUTHORS: Thank Peter Kelm for helping us spot this.
13338 Tue May 05 12:54:36 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13340         Merge from opsynonym branch:
13341         * queryparser/queryparser.lemony: Use OP_SYNONYM instead of OP_OR
13342           for synonyms, wildcards, and partial queries.
13343         * tests/queryparsertest.cc: Test use of OP_SYNONYM by query parser.
13345 Tue May 05 12:18:06 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13347         Merge from opsynonym branch:
13348         * api/omqueryinternal.cc,include/xapian/query.h,matcher/,
13349           weight/weight.cc: Implement a new OP_SYNONYM query operator,
13350           which behaves similarly to OP_OR, but produces weights for the
13351           combined set of terms as if they were a single term (by merging
13352           their wdfs).
13353         * tests/Makefile.am,tests/api_opsynonym.cc: Add tests for the
13354           OP_SYNONYM operator.
13355         * include/xapian/weight.h: Add a Weight::init_() method for
13356           synonym, since there isn't a single term involved.  Also,
13357           requires a method get_sumpart_needs_wdf_() to check if wdfs are
13358           needed, since the synonym weight calculation requires fetching
13359           the doclength, which is potentially expensive, in order that the
13360           wdf returned can be clamped to a sane range.  Mark the weighting
13361           methods which require WDF with need_stat(WDF).
13363 Tue May 05 12:04:33 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13365         * common/remoteprotocol.h: Add comment to remind use to do the
13366           FIXME in serialise_stats() when next breaking remote protocol
13367           compatibility.
13369 Tue May 05 10:53:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13371         * common/output.h: Add output function for TermFreqs.
13373 Tue May 05 08:23:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13375         * api/leafpostlist.cc,api/postlist.cc,common/emptypostlist.h,
13376           common/leafpostlist.h,common/postlist.h,matcher/: Add
13377           PostList::get_termfreq_est_using_stats() method, with default
13378           implementation which raises an InvalidOperationError.  Implement
13379           this for those postlists which it makes sense for.  Also,
13380           implement get_wdf() for postlists used by the matcher for
13381           implementing various query operators.  This isn't currently used
13382           or tested on trunk, but is used for the opsynonym branch.
13384 Tue May 05 07:37:04 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13386         * common/rset.h,common/weightinternal.h,matcher/rset.cc,
13387           net/serialise.cc,weight/weightinternal.cc: Store termfreqs and
13388           reltermfreqs in a Weight::Internal in a single map; introduce a
13389           new struct (TermFreqs) for the values stored here.
13390           Remove now unused Xapian::TermFreqMap typedef.
13392 Tue May 05 07:19:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13394         * backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h,
13395           backends/flint/flint_alldocspostlist.h,
13396           backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h,
13397           backends/inmemory/inmemory_database.cc,
13398           backends/inmemory/inmemory_database.h,backends/remote/net_postlist.h,
13399           common/contiguousalldocspostlist.h,common/leafpostlist.h:
13400           Introduce TermBasedLeafPostList, as a new common base class for
13401           postlists which are derived from a term in the query (including
13402           alldocs postlists which are derived from the empty term).
13404 Tue May 05 06:47:11 GMT 2009  Olly Betts <olly@survex.com>
13406         * backends/chert/,backends/flint/flint_modifiedpostlist.cc,
13407           backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h:
13408           Rename "tname" parameters to LeafPostList subclasses to "term".
13409         * backends/inmemory/inmemory_database.cc,
13410           backends/inmemory/inmemory_database.h: Rename term parameter of
13411           type InMemoryTerm to imterm ready for opsynonym branch changes.
13413 Tue May 05 04:51:28 GMT 2009  Olly Betts <olly@survex.com>
13415         * backends/chert/chert_alldocspostlist.h,matcher/multimatch.cc:
13416           Remove unused '#include "leafpostlist.h"'.
13418 Tue May 05 02:15:35 GMT 2009  Olly Betts <olly@survex.com>
13420         * common/contiguousalldocspostlist.h: Wrap comment.
13422 Tue May 05 02:04:02 GMT 2009  Olly Betts <olly@survex.com>
13424         * common/Makefile.mk: Move str.h into alphabetical order.
13426 Mon May 04 12:04:16 GMT 2009  Olly Betts <olly@survex.com>
13428         * tests/queryparsertest.cc: Rename qp_stem_scale1 to qp_scale1 as it
13429           has no connection with stemming.  Factor out a helper function to
13430           do the timing comparison, and update time_query_parse() to use
13431           CPUTimer rather than OmTime.  Tweak the "fudge factor" up from
13432           2 to 2.15 to allow for non-equal ticks due to rounding of an
13433           interval which isn't an exact multiple of 1/CLK_TCK (ticket#308).
13435 Mon May 04 12:02:32 GMT 2009  Olly Betts <olly@survex.com>
13437         * tests/harness/cputimer.cc: If we don't have rusage() or times(), but
13438           do have ftime(), use that instead of time() so we at least get
13439           subsecond resolution (as we do currently with OmTime).
13441 Mon May 04 03:31:51 GMT 2009  Olly Betts <olly@survex.com>
13443         * docs/queryparser.html: Add examples of using a prefix on a phrase
13444           or subexpression.
13446 Sun May 03 14:58:42 GMT 2009  Olly Betts <olly@survex.com>
13448         * tests/api_valuestats.cc: Testcase valuestats4 requires transactions,
13449           so indicate that and remove the explicit SKIP for inmemory.
13451 Sun May 03 12:34:30 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13453         * common/rset.h,common/weightinternal.h,matcher/rset.cc,
13454           weight/weightinternal.cc: Typedef std::map<string, Xapian::doccount>
13455           as TermFreqMap; tidies up code a little here, but mainly useful
13456           for keeping code tidy on branches/opsynonym.
13458 Sun May 03 11:49:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13460         * common/multimatch.h: Remove unused include of <map>
13462 Sun May 03 05:23:32 GMT 2009  Olly Betts <olly@survex.com>
13464         * tests/api_db.cc: Protect tests which assume Flint is enabled with
13465           #ifdef XAPIAN_HAS_FLINT_BACKEND.
13467 Sat May 02 15:49:46 GMT 2009  Olly Betts <olly@survex.com>
13469         * configure.ac,tests/Makefile.am,tests/api_scalability.cc,
13470           tests/api_wrdb.cc,tests/harness/: Add new "test_scalability()" helper
13471           function which checks that an operation scales in CPU time used in
13472           the desired way.  Use this to reimplement bigoaddvalue (and rename
13473           to bigoaddvalue1 for consistency).
13475 Fri May 01 04:58:41 GMT 2009  Olly Betts <olly@survex.com>
13477         * bin/xapian-check.cc: For chert, check value stats are the correct
13478           format and that the streamed values are consistent with their stats
13479           (ticket#277).
13481 Fri May 01 04:53:22 GMT 2009  Olly Betts <olly@survex.com>
13483         * api/omdocument.cc: Don't ever store empty values explicitly, which
13484           eliminates an inconsistently handled corner case which was causing
13485           the "value frequency" to be wrong from at least one point of view.
13486           This is consistent with how user metadata works too.
13487         * include/xapian/document.h: Explicitly document this behaviour.
13488         * tests/api_valuestats.cc: Add regression test for the above change.
13490 Fri May 01 03:11:25 GMT 2009  Olly Betts <olly@survex.com>
13492         * bin/xapian-check.cc: Chert doesn't store termlist entries for
13493           documents without terms, which resulted in us reporting an error when
13494           we found document ids in the doclength "postlist" which were greater
13495           than any with an entry in the termlist.  Instead compare these
13496           entries against db.get_last_docid() if we are checking a whole db
13497           and able to call it.  If not, suppress this check.
13499 Thu Apr 30 15:02:41 GMT 2009  Olly Betts <olly@survex.com>
13501         * common/valuestats.h: Fix comment typo.
13503 Tue Apr 28 14:01:41 GMT 2009  Olly Betts <olly@survex.com>
13505         * api/omdatabase.cc: Use <cstdlib> rather than <stdlib.h> which means
13506           that there's an overload for abs(long).
13508 Tue Apr 28 13:17:48 GMT 2009  Olly Betts <olly@survex.com>
13510         * HACKING,INSTALL,configure.ac,include/xapian/deprecated.h,
13511           include/xapian/version_h.cc,tests/harness/testsuite.cc: Actually,
13512           let's require GCC 3.1 as doing so eliminates some preprocessor
13513           conditionals which we aren't able to test regularly as we don't
13514           have easy access to such old GCC versions.  GCC 3.1 is nearly 7
13515           years old now, and GCC3 didn't get widespread use until later
13516           versions anyway.
13518 Tue Apr 28 12:47:11 GMT 2009  Olly Betts <olly@survex.com>
13520         * common/debuglog.h: Add missing initialisation of uncaught_exception
13521           in a couple of places.
13523 Tue Apr 28 11:24:02 GMT 2009  Olly Betts <olly@survex.com>
13525         * INSTALL: Note that Xapian 1.0.x should build with GCC 2.95.3.
13527 Tue Apr 28 11:20:51 GMT 2009  Olly Betts <olly@survex.com>
13529         * HACKING,INSTALL,backends/chert/chert_database.h,
13530           backends/flint/flint_database.h,
13531           backends/inmemory/inmemory_database.h,configure.ac,
13532           include/xapian/version_h.cc,tests/harness/testsuite.cc: Drop support
13533           for GCC 2.95.3 - we now require at least 3.0.
13535 Mon Apr 27 12:20:25 GMT 2009  Olly Betts <olly@survex.com>
13537         * include/xapian/weight.h: Add "need_stat(WDF);" for Weight subclasses
13538           which use wdf.  Currently this is never actually checked by trunk
13539           (so a regression test for this omission isn't really feasible), but
13540           the opsynonym branch uses it.
13542 Sun Apr 26 14:47:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13544         * weight/bm25weight.cc: Add call debugging.
13546 Sun Apr 26 10:57:48 GMT 2009  Olly Betts <olly@survex.com>
13548         * tests/api_db.cc: stubdb6 is "inmemory" not "flint || chert || multi".
13550 Sun Apr 26 10:51:50 GMT 2009  Olly Betts <olly@survex.com>
13552         * tests/queryparsertest.cc: Fix to build with the inmemory backend
13553           disabled.
13555 Sun Apr 26 07:28:47 GMT 2009  Olly Betts <olly@survex.com>
13557         * tests/generate-api_generated: Fix so generated api_generated.cc
13558           builds with the inmemory backend disabled.
13560 Sun Apr 26 06:30:57 GMT 2009  Olly Betts <olly@survex.com>
13562         * tests/api_anydb.cc: Fix to build with the inmemory backend disabled.
13564 Sat Apr 25 01:10:49 GMT 2009  Olly Betts <olly@survex.com>
13566         * bin/xapian-check.cc: Fix to build with the flint and/or chert
13567           backends disabled.
13569 Sat Apr 25 01:06:00 GMT 2009  Olly Betts <olly@survex.com>
13571         * matcher/multimatch.cc: Fix to build with the remote backend
13572           disabled.
13574 Sat Apr 25 00:57:41 GMT 2009  Olly Betts <olly@survex.com>
13576         * backends/dbfactory.cc: Fix to build with the inmemory backend
13577           disabled.
13579 Fri Apr 24 22:59:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13581         * weight/weight.cc: Add debug logging to Weight::init_() methods.
13582         * net/remoteserver.cc: Fix bounds returned by Weight::Internal
13583           object in get_mset() in remote submatches, by setting the
13584           database used to read the bounds.
13586 Fri Apr 24 13:14:50 GMT 2009  Olly Betts <olly@survex.com>
13588         * matcher/branchpostlist.cc,matcher/branchpostlist.h: Remove
13589           BranchPostList::get_wdf() which isn't currently used, and isn't
13590           wanted on branches/opsynonym.
13592 Fri Apr 24 12:46:18 GMT 2009  Olly Betts <olly@survex.com>
13594         * queryparser/queryparser.lemony: Apply doxygen comment improvement
13595           from branches/opsynonym.
13597 Fri Apr 24 12:31:15 GMT 2009  Olly Betts <olly@survex.com>
13599         * matcher/localmatch.cc: Apply assertion and debug logging
13600           improvements from branches/opsynonym.
13602 Thu Apr 23 06:16:05 GMT 2009  Olly Betts <olly@survex.com>
13604         * Makefile.am,configure.ac,docs/Makefile.am,tests/Makefile.am: Fix
13605           things up so that in a bootstrapped SVN tree, automatic regeneration
13606           of autotools-generated files uses the in-tree versions of the
13607           autotools.
13609 Thu Apr 23 04:37:31 GMT 2009  Olly Betts <olly@survex.com>
13611         * AUTHORS: Add another bug reporter.
13613 Thu Apr 23 04:26:25 GMT 2009  Olly Betts <olly@survex.com>
13615         * Makefile.am,languages/Makefile.mk,queryparser/Makefile.mk,
13616           tests/Makefile.am,tests/perftest/Makefile.mk: Don't remove any
13617           built sources in "make clean" even under --make-maintainer-mode
13618           as that breaks switching a tree away from maintainer-mode with:
13619           make distclean;./configure
13621 Thu Apr 23 03:51:03 GMT 2009  Olly Betts <olly@survex.com>
13623         * Makefile.am: Use "--coverage" instead of "-fprofile-arcs
13624           -ftest-coverage" in the test coverage build.
13626 Wed Apr 22 14:32:56 GMT 2009  Olly Betts <olly@survex.com>
13628         * PLATFORMS: Sync with 1.0.12; add entry for atreus for 1.1.0.
13630 Wed Apr 22 14:27:36 GMT 2009  Olly Betts <olly@survex.com>
13632         * AUTHORS: Add more bug reporters and patch contributors.  Remove a
13633           duplicate entry.
13635 Wed Apr 22 13:58:31 GMT 2009  Olly Betts <olly@survex.com>
13637         * NEWS: Set release date.
13639 Wed Apr 22 13:36:04 GMT 2009  Olly Betts <olly@survex.com>
13641         * NEWS: Update, perhaps even ready for release now.
13643 Wed Apr 22 11:00:50 GMT 2009  Olly Betts <olly@survex.com>
13645         * NEWS: More work.
13647 Tue Apr 21 17:59:13 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13649         * docs/queryparser.html: Add closing <code> tag.
13651 Tue Apr 21 11:05:17 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13653         * NEWS: A few minor corrections and adjustments.
13655 Tue Apr 21 07:49:49 GMT 2009  Olly Betts <olly@survex.com>
13657         * include/xapian/weight.h: Don't use the term "term" to talk about the
13658           extra weight component as it already has a strong meaning in Xapian.
13660 Tue Apr 21 07:16:18 GMT 2009  Olly Betts <olly@survex.com>
13662         * queryparser/lemon.c: Merge upstream "Check-in Number: 6451".
13664 Tue Apr 21 06:54:00 GMT 2009  Olly Betts <olly@survex.com>
13666         * matcher/queryoptimiser.h: '#include <map>' isn't required.
13668 Tue Apr 21 06:45:14 GMT 2009  Olly Betts <olly@survex.com>
13670         * matcher/queryoptimiser.cc,matcher/queryoptimiser.h: Eliminate
13671           QueryOptimiser::do_leaf() as it is only called from one place
13672           and if only two lines of code.
13674 Mon Apr 20 14:10:08 GMT 2009  Olly Betts <olly@survex.com>
13676         * NEWS: Update from ChangeLog and start to lick into shape for a
13677           release.
13679 Mon Apr 20 13:06:17 GMT 2009  Olly Betts <olly@survex.com>
13681         * HACKING: XAPIAN_DEBUG_LOG=- send output to stderr, not stdout.
13683 Mon Apr 20 11:53:07 GMT 2009  Olly Betts <olly@survex.com>
13685         * common/output.h: Add new macro XAPIAN_OUTPUT_FUNCTION_PTR and use it
13686           so that debug logging of Xapian::Query::Internal* doesn't just
13687           report the pointer value.
13689 Mon Apr 20 06:39:42 GMT 2009  Olly Betts <olly@survex.com>
13691         * matcher/multimatch.cc: Apply debug logging change lifted from
13692           branches/opsynonym.
13694 Mon Apr 20 05:22:24 GMT 2009  Olly Betts <olly@survex.com>
13696         * tests/harness/testutils.cc: Add FIXME comments about use of internal
13697           macro from a different header.
13699 Mon Apr 20 05:08:34 GMT 2009  Olly Betts <olly@survex.com>
13701         * HACKING: Update release checklist.
13703 Sun Apr 19 14:50:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13705         * tests/api_nodb.cc: Stick the reciprocal of "factor" into a
13706           volatile double temporary variable to stop compiler using
13707           extended precision calculation on x86, and coming up an answer of
13708           exactly 1.0 when multiplying by "factor" again.
13710 Sun Apr 19 14:26:09 GMT 2009  Olly Betts <olly@survex.com>
13712         * NEWS: Sync with 1.0.12 and update from ChangeLog.
13714 Sun Apr 19 12:12:19 GMT 2009  Olly Betts <olly@survex.com>
13716         * AUTHORS: Update for 1.0 branch.
13718 Thu Apr 16 12:08:24 GMT 2009  Olly Betts <olly@survex.com>
13720         * backends/chert/chert_values.cc: When copying the tail of a value
13721           chunk because did > last_allowed_did, we don't need to check if
13722           the docids being copied are < did, since they should all be <=
13723           last_allowed_did, so just assert the latter.
13725 Tue Apr 14 20:32:41 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13727         * tests/api_wrdb.cc: patch from james to move logging in
13728           modifyvalues1 so it reports the values it's rewriting correctly,
13729           rather than the empty string.  Also display the expected value in
13730           tout when checking the value.  Also, pull the setting of the random
13731           seed out to the start of the function, and set it to 7 (which
13732           exposed the bug fixed with the previous commit, which that the old
13733           value of 42 didn't, on my machine, at least).
13735 Tue Apr 14 18:12:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13737         * backends/chert/chert_values.cc: When we move the reader to a new
13738           chunk, write any trailing values left in it to the stream first.
13740 Thu Apr 09 05:01:04 GMT 2009  Olly Betts <olly@survex.com>
13742         * docs/admin_notes.rst: Document the child process used for locking
13743           which exec-s "cat" (ticket #258).
13745 Thu Apr 09 03:49:13 GMT 2009  Olly Betts <olly@survex.com>
13747         * bin/: Use C++ forms of C headers in bin (ticket#330).
13749 Thu Apr 09 03:47:42 GMT 2009  Olly Betts <olly@survex.com>
13751         * examples/: Use C++ forms of C headers in examples (ticket#330).
13753 Mon Apr 06 06:35:03 GMT 2009  Olly Betts <olly@survex.com>
13755         * include/xapian/unicode.h: Fix documentation comment typos.
13757 Mon Apr 06 06:03:45 GMT 2009  Olly Betts <olly@survex.com>
13759         * AUTHORS: Add Muayyad Alsadi for reporting #355.
13761 Mon Apr 06 05:59:38 GMT 2009  Olly Betts <olly@survex.com>
13763         * tests/api_unicode.cc: Note which characters in the new
13764           unicodepredicate1 testcase are new in Unicode 5.1.0.
13766 Sun Apr 05 14:24:47 GMT 2009  Olly Betts <olly@survex.com>
13768         * include/xapian/unicode.h: Add NON_SPACING_MARK to is_wordchar() for
13769           better tokenisation of Arabic, for example.  (ticket#355)
13770         * tests/queryparsertest.cc: Add test that this has the desired effect.
13771         * tests/api_unicode.cc: Add feature tests of Unicode::is_wordchar(),
13772           Unicode::is_currency(), and Unicode::is_whitespace().
13774 Sat Apr 04 05:41:47 GMT 2009  Olly Betts <olly@survex.com>
13776         * NEWS: Update from ChangeLog.
13778 Wed Apr 01 00:18:02 GMT 2009  Olly Betts <olly@survex.com>
13780         * bin/xapian-compact.cc: Fix totlen overflow test.  Refactor lightly
13781           to reduce indenting.
13783 Tue Mar 31 17:01:20 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13785         * bin/xapian-compact.cc: Handle databases which contain no
13786           documents (and hence have no METAINFO item), but do contain some
13787           metadata (so the postlist table is not empty).  Fixes ticket
13788           #356.
13790 Tue Mar 31 13:49:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13792         * api/postingsource.cc,include/xapian/postingsource.h: Change
13793           return types of clone() and unserialise() methods to be of the
13794           subclass returned; this is a bit more flexible, but the main
13795           reason is to be consistent: previously, the clone() methods
13796           returned the subclass, but the unserialise() methods returned
13797           PostingSource.
13799 Tue Mar 31 12:10:03 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13801         * include/xapian/postingsource.h: Add comment on PostingSource base
13802           class listing it as an experimental feature.
13803         * docs/deprecation.rst: Describe what "experimental" features are,
13804           and why replication and posting sources are currently
13805           experimental.
13807 Tue Mar 31 11:34:25 GMT 2009  Olly Betts <olly@survex.com>
13809         * include/xapian/matchspy.h: Removed currently unused header to stop
13810           doxygen from generating documentation for it.
13812 Tue Mar 31 11:27:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13814         * docs/replication.rst,include/xapian/replication.h: Note that
13815           replication is currently "experimental".
13817 Fri Mar 27 14:29:05 GMT 2009  Olly Betts <olly@survex.com>
13819         * backends/chert/chert_spelling.cc,backends/chert/chert_spelling.h,
13820           backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h:
13821           Fix WritableDatabase::remove_spelling() to not be very broken in
13822           several ways.
13823         * tests/api_spelling.cc: Add test coverage for it.
13825 Fri Mar 27 10:43:34 GMT 2009  Olly Betts <olly@survex.com>
13827         * xapian-config.in: Add @LIBRARY_VERSION_SUFFIX@ to -lxapian too.
13829 Fri Mar 27 08:22:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13831         * include/xapian/postingsource.h: Update documentation comments to
13832           refer to init() instead of the old name of reset().
13834 Fri Mar 27 08:10:48 GMT 2009  Olly Betts <olly@survex.com>
13836         * HACKING: Document the lcov make targets.
13838 Fri Mar 27 07:44:59 GMT 2009  Olly Betts <olly@survex.com>
13840         * Makefile.am: Add two new targets to assist generating test coverage
13841           reports with lcov: coverage-reconfigure which reruns configure in
13842           the source tree and coverage-check which runs "make check" and
13843           generates an HTML report in a directory called "lcov".
13845 Thu Mar 26 23:59:36 GMT 2009  Olly Betts <olly@survex.com>
13847         * Makefile.am,m4-macros/xapian.m4,xapian-core.spec.in: Rename
13848           xapian.m4 to xapian-1.1.m4 to avoid clash with Xapian 1.0.x.  Both
13849           xapian.m4 and xapian-1.1.m4 will contain XO_LIB_XAPIAN, but aclocal
13850           copes and only copies one of them.  We need to avoid incompatible
13851           changes to XO_LIB_XAPIAN though.
13853 Thu Mar 26 14:29:54 GMT 2009  Olly Betts <olly@survex.com>
13855         * configure.ac,include/Makefile.mk,xapian-config.in: Install headers
13856           in $prefix/include/xapian-1.1/ so they don't clash with 1.0.
13858 Thu Mar 26 13:46:06 GMT 2009  Olly Betts <olly@survex.com>
13860         * configure.ac: Default program suffix to -1.1 if not specified.  If
13861           you really want no suffix, "./configure --program-suffix=" will
13862           achieve that.
13864 Thu Mar 26 12:49:10 GMT 2009  Olly Betts <olly@survex.com>
13866         * Makefile.am,api/Makefile.mk,backends/Makefile.mk,
13867           backends/chert/Makefile.mk,backends/flint/Makefile.mk,
13868           backends/inmemory/Makefile.mk,backends/multi/Makefile.mk,
13869           backends/remote/Makefile.mk,bin/Makefile.mk,common/Makefile.mk,
13870           configure.ac,examples/Makefile.mk,expand/Makefile.mk,
13871           languages/Makefile.mk,matcher/Makefile.mk,net/Makefile.mk,
13872           queryparser/Makefile.mk,tests/Makefile.am,tests/perftest/Makefile.mk,
13873           unicode/Makefile.mk,weight/Makefile.mk,xapian-config.in,
13874           xapian-core.spec.in: Change library name to libxapian-1.1 as a first
13875           step towards allowing parallel installation with 1.0.x.
13877 Thu Mar 26 06:53:27 GMT 2009  Olly Betts <olly@survex.com>
13879         * NEWS: Update from ChangeLog.
13881 Thu Mar 26 06:50:44 GMT 2009  Olly Betts <olly@survex.com>
13883         * backends/chert/chert_values.h: Fix class name in file doc comment.
13885 Thu Mar 26 00:13:48 GMT 2009  Olly Betts <olly@survex.com>
13887         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
13888           Call ChertDatabase::close() rather than repeating its code.
13890 Wed Mar 25 17:39:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13892         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
13893           Release the lock when the database is closed (either due to a
13894           call to close() or due to a serious error during modifications).
13895           Should fix ticket #354.
13897 Wed Mar 25 16:42:58 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13899         * tests/harness/testutils.cc: Use TEST_EQUAL_DOUBLE_ for comparison
13900           of weights in mset, to fix test failures due to floating point
13901           differences.  (Currently only manifests in some tests in the
13902           matchspy branch, but it's a generally useful fix.)
13904 Wed Mar 25 11:44:36 GMT 2009  Olly Betts <olly@survex.com>
13906         * configure.ac: Only put ANSI_CXXFLAGS in CXXFLAGS for the duration of
13907           configure - put it in AM_CXXFLAGS for substituting so that the user
13908           can safely override CXXFLAGS at make-time: "make CXXFLAGS=-Os"
13910 Wed Mar 25 10:50:44 GMT 2009  Olly Betts <olly@survex.com>
13912         * configure.ac: Fix comment typo.
13914 Wed Mar 25 04:48:50 GMT 2009  Olly Betts <olly@survex.com>
13916         * api/omdatabase.cc,backends/chert/chert_database.h,
13917           backends/flint/flint_database.h,
13918           backends/inmemory/inmemory_database.h,
13919           backends/remote/remote-database.cc,common/const_database_wrapper.h,
13920           common/database.h: Drop the default value of the lazy parameter to
13921           Database::open_document() - it's better to force us to consider
13922           whether a new call should be lazy or not.
13923         * common/database.h: Better description of lazy parameter.
13924         * backends/remote/remote-database.cc: Update comment about when lazy
13925           is set to true.
13927 Wed Mar 25 04:20:34 GMT 2009  Olly Betts <olly@survex.com>
13929         * backends/inmemory/inmemory_database.cc: Don't "return false" when
13930           the return type is a pointer!
13932 Tue Mar 24 17:42:22 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13934         * backends/database.cc: Open documents lazily in
13935           collect_document().
13937 Tue Mar 24 11:10:57 GMT 2009  Olly Betts <olly@survex.com>
13939         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
13940           MultiPostList::read_position_list() is never used, so remove it.
13942 Tue Mar 24 10:04:03 GMT 2009  Olly Betts <olly@survex.com>
13944         * backends/multi/multi_postlist.cc: Remove "[" and "]" from the output
13945           of MultiPostList::get_description().  Remove excess "," from output
13946           of MultiPostList::get_description().
13947         * tests/api_db.cc: Add some test coverage of
13948           PostingIterator::get_wdf() and PostingIterator::get_description().
13950 Tue Mar 24 10:00:23 GMT 2009  Olly Betts <olly@survex.com>
13952         * api/ompostlistiterator.cc: Remove "[" and "]" from
13953           Xapian::PostingIterator::get_description() as they don't add
13954           anything useful.
13956 Tue Mar 24 09:57:39 GMT 2009  Olly Betts <olly@survex.com>
13958         * backends/inmemory/inmemory_database.cc: Add a space in the output
13959           of InMemoryPostList::get_description() and
13960           InMemoryAllDocsPostList::get_description().
13962 Tue Mar 24 08:52:46 GMT 2009  Olly Betts <olly@survex.com>
13964         * api/leafpostlist.cc,include/xapian/weight.h,tests/api_db.cc,weight/:
13965           Get rid of the virtual Weight::get_sumpart_needs_doclength() method
13966           - subclasses can call need_stat(DOC_LENGTH) in their constructor if
13967           they need doc lengths.
13969 Tue Mar 24 07:55:06 GMT 2009  Olly Betts <olly@survex.com>
13971         * weight/weight.cc: Check stats_needed for stats which aren't just a
13972           simple member variable lookup.
13974 Tue Mar 24 06:46:24 GMT 2009  Olly Betts <olly@survex.com>
13976         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
13977           MultiPostList::get_termfreq() is never used, so remove it.
13979 Mon Mar 23 14:09:33 GMT 2009  Olly Betts <olly@survex.com>
13981         * tests/api_unicode.cc: Add test coverage for
13982           Xapian::Unicode::append_utf8().
13984 Mon Mar 23 11:40:09 GMT 2009  Olly Betts <olly@survex.com>
13986         * api/postingsource.cc,docs/postingsource.rst,
13987           include/xapian/postingsource.h,matcher/externalpostlist.cc,
13988           tests/api_db.cc,tests/api_percentages.cc,tests/api_valuestream.cc:
13989           Rename PostingSource::reset() to PostingSource::init().
13991 Mon Mar 23 11:01:02 GMT 2009  Olly Betts <olly@survex.com>
13993         * tests/harness/testsuite.h: Fix documentation comment in line with
13994           the corrected --help output from "Sat Feb 21 08:18:21 GMT 2009".
13996 Mon Mar 23 02:24:44 GMT 2009  Olly Betts <olly@survex.com>
13998         * api/omqueryinternal.cc: Fix handling of empty and single subquery
13999           OP_NEAR and OP_PHRASE (was breaking queryparsertest).
14001 Sun Mar 22 10:23:37 GMT 2009  Olly Betts <olly@survex.com>
14003         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
14004           backends/inmemory/inmemory_database.cc,
14005           backends/inmemory/inmemory_positionlist.cc,
14006           common/inmemory_positionlist.h,docs/deprecation.rst,
14007           tests/api_posdb.cc: Change Database::positionlist_begin() not to
14008           throw exceptions if the term or document doesn't exist.
14010 Sun Mar 22 09:02:46 GMT 2009  Olly Betts <olly@survex.com>
14012         * docs/deprecation.rst: Fix typo.
14014 Sun Mar 22 07:54:30 GMT 2009  Olly Betts <olly@survex.com>
14016         * api/omqueryinternal.cc,include/xapian/query.h,tests/api_nodb.cc,
14017           tests/api_query.cc: Fix valgrind errors on nearsubqueries1
14018           (ticket#349) and enhance distribution of OP_NEAR/OP_PHRASE over
14019           non-leaf subqueries to work when there are multiple non-leaf
14020           subqueries (ticket#201).  Extend nearsubqueries1 to test that
14021           trying to distribute OP_NEAR/OP_PHRASE over OP_NEAR/OP_PHRASE
14022           throws UnimplementedError.
14024 Fri Mar 20 08:43:20 GMT 2009  Olly Betts <olly@survex.com>
14026         * tests/api_query.cc: Add coverage for OP_AND with MatchNothing
14027           subquery (new testcase matchnothing1).
14029 Fri Mar 20 05:16:18 GMT 2009  Olly Betts <olly@survex.com>
14031         * api/omqueryinternal.cc: Fix assertions in previous check-in to
14032           verify the right condition.  And return the simplified query in
14033           the case the assertion would have failed, as that means a small
14034           memory leak rather than unpredictable behaviour in a non-assertion
14035           build.
14037 Fri Mar 20 04:26:29 GMT 2009  Olly Betts <olly@survex.com>
14039         * api/omqueryinternal.cc: Check that end_construction() returns NULL
14040           when unserialising queries.
14042 Fri Mar 20 02:51:32 GMT 2009  Olly Betts <olly@survex.com>
14044         * api/omqueryinternal.cc: Fix return type of
14045           Xapian::Query::Internal::simplify_query() in a debug build.  Since
14046           RETURN() isn't used by this function, this is only a cosmetic issue
14047           in the log file.
14049 Wed Mar 18 09:26:02 GMT 2009  Olly Betts <olly@survex.com>
14051         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
14052           docs/deprecation.rst: Move just returning an empty PositionIterator
14053           from Database::positionlist_begin() when the docs or term isn't
14054           present from 1.2.0 to 1.1.0 (has to be 1.1.0 or 1.3.0 really).
14056 Wed Mar 18 09:24:27 GMT 2009  Olly Betts <olly@survex.com>
14058         * docs/glossary.rst: Chert as the default backend in 1.2.0 is pretty
14059           much definite.
14061 Wed Mar 18 06:42:09 GMT 2009  Olly Betts <olly@survex.com>
14063         * NEWS: Update from ChangeLog.
14065 Wed Mar 18 04:36:59 GMT 2009  Olly Betts <olly@survex.com>
14067         * xapian-core.spec.in: Tweak reference to "1.1.0 branch" to make more
14068           sense.
14070 Wed Mar 18 04:30:18 GMT 2009  Olly Betts <olly@survex.com>
14072         * api/postingsource.cc,include/xapian/postingsource.h: Remove the
14073           optional "max_weight_" parameter to ValuePostingSource's ctor.
14074         * include/xapian/postingsource.h: Correct a few errors in
14075           documentation comments.
14077 Wed Mar 18 04:29:22 GMT 2009  Olly Betts <olly@survex.com>
14079         * docs/postingsource.rst: "ctx" -> "context" in example code.
14081 Tue Mar 17 23:45:52 GMT 2009  Olly Betts <olly@survex.com>
14083         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: If the
14084           locking attempt fails after we spawn the child process, call
14085           waitpid() in the parent process to avoid creating a zombie process.
14086         * AUTHORS: Add Jim Spath for reporting this.
14088 Tue Mar 17 23:34:16 GMT 2009  Olly Betts <olly@survex.com>
14090         * common/Makefile.mk,common/str.cc,common/str.h: New family of
14091           overloaded str() functions for converting types to std::string.
14092           The integer conversion are much faster than the existing
14093           om_tostring().
14094         * common/omassert.h,common/omdebug.h: Use str() instead of
14095           om_tostring().
14096         * common/utils.cc,common/utils.h: Make om_tostring() a macro wrapping
14097           str() for now to avoid introducing a lot of conflicts with other
14098           branches and unapplied patches.
14100 Tue Mar 17 21:28:54 GMT 2009  Olly Betts <olly@survex.com>
14102         * configure.ac: Fix comment typo.
14104 Tue Mar 17 00:47:26 GMT 2009  Olly Betts <olly@survex.com>
14106         * common/utils.cc: Fix previous change to actually compile...
14108 Mon Mar 16 20:10:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14110         * common/utils.cc,common/utils.h: Add om_tostring() version of
14111           unsigned long long int, to fix debug build on i686.
14113 Mon Mar 16 14:01:02 GMT 2009  Olly Betts <olly@survex.com>
14115         * NEWS: Sync with 1.0.11.
14117 Fri Mar 13 06:59:29 GMT 2009  Olly Betts <olly@survex.com>
14119         * weight/weightinternal.cc: Need "utils.h" for om_tostring().
14121 Fri Mar 13 05:47:24 GMT 2009  Olly Betts <olly@survex.com>
14123         * include/xapian/queryparser.h: Note that QueryParser::FLAG_DEFAULT
14124           was new in 1.0.11.
14126 Fri Mar 13 04:36:19 GMT 2009  Olly Betts <olly@survex.com>
14128         * weight/weightinternal.cc: Implement
14129           Weight::Internal::get_description().
14131 Thu Mar 12 11:57:02 GMT 2009  Olly Betts <olly@survex.com>
14133         * common/output.h: Fix last commit.
14135 Thu Mar 12 11:29:58 GMT 2009  Olly Betts <olly@survex.com>
14137         * common/output.h: Define operator<< for Xapian::Weight::Internal.
14139 Thu Mar 12 11:21:09 GMT 2009  Olly Betts <olly@survex.com>
14141         * net/remoteserver.cc: Fix overlooked case which was still sending
14142           REPLY_DOCLENGTH as a double.
14144 Wed Mar 11 22:56:59 GMT 2009  Olly Betts <olly@survex.com>
14146         * backends/chert/chert_valuelist.cc: Fix comment typo.
14148 Wed Mar 11 22:50:49 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14150         * tests/api_valuestream.cc: Enable valuestream3 for chert.
14151         * backends/chert/chert_valuelist.cc: Fix return value of
14152           ChertValueList::check() when it needs to move to a new chunk.
14153           Fixes valuestream3 test.
14155 Wed Mar 11 13:17:58 GMT 2009  Olly Betts <olly@survex.com>
14157         * include/xapian/weight.h: Mark Weight::init_() methods as "@private
14158           @internal" for doxygen API docs.
14160 Wed Mar 11 13:13:32 GMT 2009  Olly Betts <olly@survex.com>
14162         * include/xapian/weight.h,tests/api_db.cc,tests/api_nodb.cc,
14163           weight/bm25weight.cc,weight/boolweight.cc,weight/tradweight.cc:
14164           Make Weight::name() return std::string to allow sane wrapping
14165           with SWIG directors.
14167 Wed Mar 11 05:46:40 GMT 2009  Olly Betts <olly@survex.com>
14169         * api/,backends/chert/,backends/contiguousalldocspostlist.cc,
14170           backends/flint/,backends/inmemory/inmemory_database.cc,
14171           backends/inmemory/inmemory_database.h,
14172           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
14173           backends/remote/,common/,docs/remote_protocol.html,
14174           include/xapian/database.h,include/xapian/postingiterator.h,matcher/,
14175           net/remoteserver.cc: Internally, pass around non-normalised document
14176           lengths as Xapian::termcount (unsigned integer) not Xapian::doclength
14177           (double).
14179 Wed Mar 11 05:25:40 GMT 2009  Olly Betts <olly@survex.com>
14181         * tests/api_anydb.cc: Use TEST_REL; wrap long comment.
14183 Wed Mar 11 04:52:41 GMT 2009  Olly Betts <olly@survex.com>
14185         * Makefile.am,api/,backends/chert/,backends/database.cc,
14186           backends/flint/flint_database.cc,backends/flint/flint_database.h,
14187           backends/inmemory/inmemory_database.cc,
14188           backends/inmemory/inmemory_database.h,
14189           backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
14190           examples/delve.cc,include/Makefile.mk,include/xapian.h,
14191           include/xapian/database.h,include/xapian/enquire.h,
14192           include/xapian/weight.h,matcher/,net/remoteserver.cc,
14193           net/serialise.cc,tests/,weight/: Reimplementation of weighting
14194           schemes which allows user subclasses to access the same stats which
14195           built in schemes can (bug#213) and which also can use lower and
14196           upper bounds of doclength and upper bounds on wdf to give a tighter
14197           maxweight, which should allow the matcher weight-based optimisations
14198           to be more effective.  Chert now tracks doclength bounds and a
14199           global (rather than per term) bound on wdf.  Other backends
14200           return much less good bounds, but these still lead to better
14201           maxweight bounds.
14203 Wed Mar 11 00:13:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14205         * include/xapian/query.h: Rename parameter name from "ctx" to the
14206           more human-friendly "context".
14208 Tue Mar 10 14:03:33 GMT 2009  Olly Betts <olly@survex.com>
14210         * tests/harness/testutils.cc: If mset_range_is_same_percents() fails
14211           because the percentages differ, report what they were to tout.
14213 Mon Mar 09 12:27:28 GMT 2009  Olly Betts <olly@survex.com>
14215         * matcher/localmatch.cc: Remove special case handling for empty string
14216           being returned from the TermIterator returned by
14217           Query::Internal::get_terms() as this should no longer happen.
14219 Mon Mar 09 12:09:21 GMT 2009  Olly Betts <olly@survex.com>
14221         * api/omqueryinternal.cc: Don't return "" from a TermIterator from
14222           Query::get_terms_begin() (happened when Query contained or was
14223           Query::MatchAll).
14224         * tests/Makefile.am,tests/api_query.cc: Add regression testcase
14225           queryterms1.
14227 Sun Mar 08 06:16:24 GMT 2009  Olly Betts <olly@survex.com>
14229         * tests/api_backend.cc: Add check that backends don't truncate total
14230           document length to 32 bits.
14232 Sun Mar 08 06:02:43 GMT 2009  Olly Betts <olly@survex.com>
14234         * tests/api_backend.cc: Disable lockfileumask1 on Cygwin and on OS/2.
14236 Sun Mar 08 05:36:54 GMT 2009  Olly Betts <olly@survex.com>
14238         * matcher/extraweightpostlist.h: Add forward declaration of
14239           Xapian::Weight since we use "Xapian::Weight *".
14241 Sun Mar 08 04:39:22 GMT 2009  Olly Betts <olly@survex.com>
14243         * backends/chert/chert_types.h,backends/flint/flint_types.h,
14244           bin/xapian-check-flint.cc,bin/xapian-check.cc,bin/xapian-compact.cc,
14245           common/Makefile.mk,common/database.h,common/internaltypes.h:
14246           Move totlen_t to a new header (internaltypes.h) to avoid needing to
14247           pull in database.h in when we want to use it.  Also move int4 and
14248           uint4 there to avoid duplicated definitions and abstract out a
14249           new uint8 from defining totlen_t.
14251 Sun Mar 08 00:50:38 GMT 2009  Olly Betts <olly@survex.com>
14253         * backends/chert/chert_database.h,backends/chert/chert_types.h,
14254           backends/flint/flint_database.h,backends/flint/flint_types.h,
14255           bin/xapian-check-flint.cc,bin/xapian-check.cc,bin/xapian-compact.cc,
14256           common/database.h: Replace flint_totlen_t and chert_totlen_t with
14257           a common totlen_t.
14259 Sat Mar 07 08:35:27 GMT 2009  Olly Betts <olly@survex.com>
14261         * backends/chert/chert_database.cc: Wrap comment.
14263 Sat Mar 07 08:28:17 GMT 2009  Olly Betts <olly@survex.com>
14265         * backends/inmemory/inmemory_database.h: Fix file description
14266           ("multiple database" -> "inmemory database").
14268 Sat Mar 07 08:25:11 GMT 2009  Olly Betts <olly@survex.com>
14270         * backends/inmemory/inmemory_database.cc,
14271           backends/inmemory/inmemory_database.h: Store non-normalised document
14272           lengths as Xapian::termcount (unsigned int) rather than
14273           Xapian::doclength (double).
14275 Sat Mar 07 06:56:26 GMT 2009  Olly Betts <olly@survex.com>
14277         * common/database.h: Removed unused forward declarations of classes.
14279 Sat Mar 07 06:52:11 GMT 2009  Olly Betts <olly@survex.com>
14281         * common/database.h: Fix comment typo.
14283 Sat Mar 07 05:44:18 GMT 2009  Olly Betts <olly@survex.com>
14285         * net/serialise.cc: Fix top of file to actually be a doxygen comment.
14286           Tweak layout of definition of serialise_stats().
14288 Sat Mar 07 05:40:58 GMT 2009  Olly Betts <olly@survex.com>
14290         * net/serialise.cc: c_str() -> data() since we don't need the
14291           nul-termination.
14293 Thu Mar 05 11:49:45 GMT 2009  Olly Betts <olly@survex.com>
14295         * tests/api_db.cc,tests/api_nodb.cc: Back out accidentally committed
14296           changes 2 commits ago.
14298 Thu Mar 05 10:28:07 GMT 2009  Olly Betts <olly@survex.com>
14300         * AUTHORS: Add Frank J. Bruzzaniti for omindex patches.
14302 Thu Mar 05 10:20:38 GMT 2009  Olly Betts <olly@survex.com>
14304         * tests/Makefile.am: If both chert and flint are enabled, run
14305           remoteprog_chert and remotetcp_flint but not the other two
14306           combinations as they don't buy us any useful extra test
14307           coverage, but cost a lot of extra time per testrun.
14309 Thu Mar 05 07:51:52 GMT 2009  Olly Betts <olly@survex.com>
14311         * docs/deprecation.rst: Update to reflect that odd minor versions are
14312           now development series.
14314 Thu Mar 05 04:20:43 GMT 2009  Olly Betts <olly@survex.com>
14316         * common/serialisationcontextinternal.h: Fix forward declarations.
14318 Thu Mar 05 02:11:26 GMT 2009  Olly Betts <olly@survex.com>
14320         * api/omdatabase.cc: "new_uuid" -> "sub_uuid" - it's not really new.
14322 Wed Mar 04 22:53:13 GMT 2009  Olly Betts <olly@survex.com>
14324         * include/xapian/queryparser.h,include/xapian/termgenerator.h: Make
14325           default empty std::string parameters use std::string() rather than
14326           "".
14328 Wed Mar 04 16:06:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14330         * api/omdatabase.cc: If a sub-database of a multi-database has no
14331           uuid, we cannot return a uuid for the database, so return
14332           string() instead.
14333         * tests/api_anydb.cc: Test for this.
14335 Wed Mar 04 13:45:41 GMT 2009  Olly Betts <olly@survex.com>
14337         * HACKING: Conversion to C++ names for ISO C headers will happen in
14338           1.1.x, not 1.1.0.
14340 Wed Mar 04 13:37:47 GMT 2009  Olly Betts <olly@survex.com>
14342         * api/omdatabase.cc,backends/database.cc,
14343           backends/remote/remote-database.cc,common/database.h,
14344           include/xapian/database.h,net/remoteserver.cc,tests/api_anydb.cc:
14345           Return an empty string from Database::get_uuid() when then backend
14346           doesn't support UUIDs for consistency with flint when the database
14347           has no UUID.  For a multiple database, build a string from the UUIDs
14348           of each subdatabase and return this as the UUID.  If there are no
14349           subdatabases return the empty string.
14351 Wed Mar 04 11:34:04 GMT 2009  Olly Betts <olly@survex.com>
14353         * backends/remote/remote-database.cc,common/remoteprotocol.h,
14354           common/remoteserver.h,docs/remote_protocol.html,net/remoteserver.cc:
14355           Change the remote server to always default to opening a Database and
14356           having the client request write access explicitly.  This allows a
14357           single server to support multiple readers and one writer
14358           simultaneously.  (bug#145)
14359         * net/remoteserver.cc,backends/remote/remote-database.cc: For constant
14360           empty string parameters, pass string() rather than "".
14361         * common/remoteserver.h: Remove unused '#include <map>'.  Remove
14362           'using namespace std;' and explicitly qualify the few bare mentions
14363           of 'string'.
14365 Wed Mar 04 07:24:39 GMT 2009  Olly Betts <olly@survex.com>
14367         * queryparser/queryparser.lt: Sync with latest upstream lempar.c
14368           (only changes were in code which isn't in our version).
14370 Wed Mar 04 04:03:44 GMT 2009  Olly Betts <olly@survex.com>
14372         * tests/Makefile.am,tests/api_percentages.cc,
14373           tests/testdata/apitest_sortconsist.txt: Apply regression test patch
14374           from bug#216.
14376 Wed Mar 04 03:41:49 GMT 2009  Olly Betts <olly@survex.com>
14378         * include/xapian/enquire.h,matcher/multimatch.cc: Fix inconsistent
14379           percentage scores when sorting primarily by valuei, except when
14380           a MatchDecider is also being used; document this remaining problem
14381           case.  (bug#216)
14383 Wed Mar 04 01:58:07 GMT 2009  Olly Betts <olly@survex.com>
14385         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: No need
14386           to initialise inflate_zstream->next_out and avail_out twice.
14388 Wed Mar 04 01:16:32 GMT 2009  Olly Betts <olly@survex.com>
14390         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: If
14391           deflateReset() or inflateReset() fails, just delete the zstream
14392           take the initialisation codepath - that should mean we recover
14393           if the stream does somehow end up in a bad state and is less
14394           code than throwing an exception.  Annotate tests with rare()
14395           or usual() if they are for exceptional conditions.  Fix bug
14396           introduced by the laziness patch which was adding an int error
14397           code to a const char * message.  If deflateInit2() or inflateInit2()
14398           fails, delete and zero the stream so there's no risk of ending up
14399           wedged on a partly initialised stream.
14401 Tue Mar 03 15:32:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14403         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
14404           Check for errors from deflateReset() and inflateReset() - there
14405           shouldn't be any if we've given them a valid stream, so just
14406           raise InternalError if we get one.
14408 Tue Mar 03 09:43:34 GMT 2009  Olly Betts <olly@survex.com>
14410         * NEWS: Updated from ChangeLog.
14412 Tue Mar 03 05:52:16 GMT 2009  Olly Betts <olly@survex.com>
14414         * tests/api_closedb.cc: Fix testcase closedb2 not to create a test
14415           database named closedb3.
14417 Tue Mar 03 04:31:48 GMT 2009  Olly Betts <olly@survex.com>
14419         * include/xapian/queryparser.h: Add QueryParser::FLAG_DEFAULT to make
14420           it easier to add flags to those set by default.
14421         * tests/queryparsertest.cc: Use FLAG_DEFAULT in a few places to serve
14422           as a feature test.
14424 Tue Mar 03 03:45:53 GMT 2009  Olly Betts <olly@survex.com>
14426         * docs/index.html: Add link to new serialisation topic document.
14427         * docs/serialisation.rst: Reword to avoid pluralising class names.
14428           Add link to postingsource document where we reference it.
14430 Tue Mar 03 03:35:29 GMT 2009  Olly Betts <olly@survex.com>
14432         * tests/runsrv.in: Use @top_builddir@ rather than relying on it
14433           coming from the environment.
14435 Tue Mar 03 03:05:47 GMT 2009  Olly Betts <olly@survex.com>
14437         * tests/api_wrdb.cc: Clear tout regularly in modifyvalues1 as
14438           otherwise the output builds up.  Some string stream implementations
14439           get very inefficient with large strings, and also this seems to
14440           interact badly with valgrind's leak detection resulting in the
14441           test having to be rerun to check if it really leaks.  Prefer
14442           tout.str(string()) to tout.str("") in existing uses too.
14444 Tue Mar 03 01:41:07 GMT 2009  Olly Betts <olly@survex.com>
14446         * backends/flint/flint_table.cc: Update handling of shutting down
14447           the zstream objects in the dtor to match chert.
14449 Mon Mar 02 23:57:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14451         * backends/chert/chert_table.h,backends/flint/flint_table.h: Add
14452           documentation comments for the lazy allocation methods, and
14453           separate comments for the zstream members.
14455 Mon Mar 02 23:40:20 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14457         * AUTHORS,backends/chert/chert_table.cc,backends/chert/chert_table.h,
14458           backends/flint/flint_table.cc,backends/flint/flint_table.h:
14459           Reduce allocation of zstreams by allocating them lazily, keeping
14460           them in the table objects, and reuse them, rather than allocating
14461           a new one each time it's wanted.  Heavily based on a patch from
14462           Todd Lipcon.  Apparently improves performance significantly on
14463           some systems; on my tests it has no perceptible negative impact,
14464           but it makes sense that it could help in some situations, so
14465           let's apply it.  Fixes #325.
14467 Mon Mar 02 21:10:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14469         * docs/deprecation.rst: Deprecate Stem_get_available_languages()
14470           from the python bindings.
14472 Mon Mar 02 19:56:20 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14474         * common/Makefile.mk,common/const_database_wrapper.cc,
14475           common/const_database_wrapper.h,matcher/queryoptimiser.cc: Avoid
14476           const_cast() on Database::Internal, and exposing
14477           compiler-dependent behaviour if non-const methods are called, by
14478           adding a ConstDatabaseWrapper class, which is a subclass of
14479           Database::Internal, and also takes a Database::Internal as a
14480           parameter, to be wrapped.  This class proxies all const methods
14481           to the wrapped Database::Internal, and raises
14482           InvalidOperationError on non-const methods.  Fixes #332.
14484 Mon Mar 02 18:27:00 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14486         * include/xapian/postingsource.h: Documentation comment
14487           improvements.  Be explicit that Xapian will call reset() before
14488           various methods, and will call next, skip_to or check before
14489           at_end.
14490         * include/xapian/query.h: Wrap over-long line.
14492 Mon Mar 02 18:26:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14494         * docs/Makefile.am,docs/serialisation.rst: Add topic document about
14495           serialisation.
14497 Mon Mar 02 17:58:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14499         * docs/postingsource.rst: Update documentation with new design.
14501 Mon Mar 02 17:16:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14503         * api/omqueryinternal.cc: Change serialisation of queries to use
14504           encode_length() rather than om_tostring(), for a more compact and
14505           easier to parse representation.
14507 Mon Mar 02 14:48:08 GMT 2009  Olly Betts <olly@survex.com>
14509         * backends/multi/multi_alltermslist.cc: Fix memory leak which
14510           was causing allterms6 to fail.
14512 Mon Mar 02 14:15:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14514         * matcher/externalpostlist.cc: Fix memory leak in external source
14515           postlist (fixes fixedweightsource1).
14517 Mon Mar 02 13:41:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14519         * api/postingsource.cc: Don't set max_weight in
14520           ValueMapPostingSource::set_default_weight() - it's set in
14521           reset() before being used, and it's not been set here yet, so
14522           accessing it in std::max() was making valgrind complain.
14524 Mon Mar 02 12:23:01 GMT 2009  Olly Betts <olly@survex.com>
14526         * HACKING,configure.ac,tests/runtest.in: Don't use valgrind if it's
14527           < 3.3.0 as that's well over a year old and greatly simplifies the
14528           configure tests.  Fix options passed to valgrind so that the
14529           testsuite harness actually reports problems detected by newer
14530           valgrind versions.
14532 Mon Mar 02 10:08:25 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14534         * api/,bin/xapian-tcpsrv.cc,common/Makefile.mk,common/remoteserver.h,
14535           common/serialisationcontextinternal.h,include/Makefile.mk,
14536           include/xapian.h,include/xapian/enquire.h,include/xapian/query.h,
14537           include/xapian/serialisationcontext.h,net/remoteserver.cc,
14538           tests/api_serialise.cc,tests/internaltest.cc: Add
14539           SerialisationContext.  This object is used to register
14540           PostingSource or Weight subclasses, so that they can be
14541           serialised and unserialised, and therefore used in remote
14542           searches.  Add two-argument form for Query::unserialise() which
14543           takes a serialisation context.  Fixes #206.
14545 Mon Mar 02 07:13:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14547         * include/xapian/database.h: Further tweak to wording of
14548           documentation about close().
14550 Mon Mar 02 07:05:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14552         * backends/chert/chert_table.cc,backends/chert/chert_table.h,
14553           backends/flint/flint_table.cc,backends/flint/flint_table.h:
14554           Factor out more "throw Xapian::DatabaseError("Database has been
14555           closed")" bits into separate functions: knocks another 20KB off
14556           the shared library size.
14558 Mon Mar 02 05:46:15 GMT 2009  Olly Betts <olly@survex.com>
14560         * include/xapian/enquire.h: Document how to get all matches from
14561           Enquire::get_mset().
14563 Mon Mar 02 04:52:17 GMT 2009  Olly Betts <olly@survex.com>
14565         * backends/inmemory/inmemory_alltermslist.cc,
14566           backends/inmemory/inmemory_database.cc,
14567           backends/inmemory/inmemory_database.h: Factor out "throw
14568           Xapian::DatabaseError("Database has been closed") into a separate
14569           function which knocks over 100KB off the shared library size (just
14570           over 0.5%).
14572 Mon Mar 02 03:57:17 GMT 2009  Olly Betts <olly@survex.com>
14574         * matcher/phrasepostlist.h: Remove blank line from end of file.
14576 Mon Mar 02 03:52:10 GMT 2009  Olly Betts <olly@survex.com>
14578         * api/replication.cc,common/msvc_posix_wrapper.cc: Cuddle braces for
14579           "if" and "switch".
14581 Mon Mar 02 03:32:32 GMT 2009  Olly Betts <olly@survex.com>
14583         * tests/api_closedb.cc: Use more conventional uppercase macro parameter
14584           names.  Wrap long comments.  Remove another unused exception name.
14586 Mon Mar 02 03:21:39 GMT 2009  Olly Betts <olly@survex.com>
14588         * api/replication.cc,backends/chert/chert_databasereplicator.cc,
14589           backends/flint/flint_databasereplicator.cc,net/remoteserver.cc,
14590           tests/api_closedb.cc,tests/perftest/perftest_matchdecider.cc:
14591           Don't name the exception being caught if we don't look at it.  While
14592           GCC doesn't currently warn "unused variable" here, I'm fairly sure
14593           there are compilers which do.
14595 Mon Mar 02 03:20:52 GMT 2009  Olly Betts <olly@survex.com>
14597         * tests/perftest/perftest.cc: Wrap overlong comment.
14599 Mon Mar 02 03:17:48 GMT 2009  Olly Betts <olly@survex.com>
14601         * matcher/mergepostlist.cc: Change "do { ... } while (true);" to the
14602           more usual "while (true) { ... }".
14604 Sun Mar 01 19:41:16 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14606         * tests/api_closedb.cc: Merge closedb1 and closedb2 into a single
14607           test, and add lots more checking to it.  Rename closedb3 to
14608           closedb2, to avoid leaving an odd gap.  closedb1 needs more work,
14609           but is a useful start; committing now, rather than once I've done
14610           this work, since the old test is failing in buildbot, and I don't
14611           want to get in the way of snapshot tarballs.
14613 Sun Mar 01 19:27:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14615         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
14616           Add a few guards to throw DatabaseError when the database has
14617           been permanently closed, rather than behaving as if the table is
14618           empty in that situation.  Also, don't delete the resources in the
14619           table when Database::close() is called, because they may still be
14620           used to attempt to look up cached content.
14622 Sun Mar 01 18:22:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14624         * include/xapian/database.h: Update documentation comments for
14625           reopen() and close() to document the API we're aiming for (ie,
14626           that closed databases either return the right result from cache,
14627           or raise a DatabaseError).
14629 Sun Mar 01 18:20:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14631         * backends/inmemory/inmemory_alltermslist.cc,
14632           backends/inmemory/inmemory_database.cc,
14633           backends/inmemory/inmemory_database.h: Add a flag to mark whether
14634           the database is closed, and add guards before all methods which
14635           access content which goes away when the database is closed, to
14636           raise an exception if the database is closed.
14638 Sun Mar 01 18:20:03 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14640         * backends/inmemory/inmemory_document.h: Fix a typo in a comment.
14642 Sun Mar 01 17:49:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14644         * matcher/mergepostlist.cc: Fix ticket #336 by calling
14645           recalc_maxweight when a sub-posting list finishes (other than
14646           after the last one, where there is no point in calling
14647           recalc_maxweight).
14649 Sun Mar 01 15:34:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14651         * tests/api_db.cc: Fix MyDontAskWeightPostingSource to use the
14652           database passed to reset(), rather than one passed to its
14653           constructor.  This allows externalsource4 to be enabled for
14654           multidatabases.
14656 Sun Mar 01 13:07:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14658         * include/xapian/postingsource.h: Add comments as discussed in
14659           ticket #295 to make clear that in a multi-database search,
14660           PostingSources are passed a single sub-database.  Also mention
14661           that the returned value of clone() will be deallocated with
14662           delete.
14664 Sat Feb 28 08:21:33 GMT 2009  Olly Betts <olly@survex.com>
14666         * api/omdatabase.cc,backends/chert/chert_database.cc,
14667           backends/chert/chert_database.h,backends/database.cc,
14668           backends/flint/flint_database.cc,backends/flint/flint_database.h,
14669           backends/inmemory/inmemory_database.cc,
14670           backends/inmemory/inmemory_database.h,
14671           backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
14672           examples/copydatabase.cc,include/xapian/database.h,
14673           net/remoteserver.cc,tests/,tests/perftest/perftest_matchdecider.cc,
14674           tests/perftest/perftest_randomidx.cc,tests/queryparsertest.cc: Add
14675           WritableDatabase::commit() as a new, preferred alias for
14676           WritableDatabase::flush().  (bug#266)
14678 Fri Feb 27 01:59:31 GMT 2009  Olly Betts <olly@survex.com>
14680         * include/xapian/database.h: WritableDatabase::flush() can't throw
14681           DatabaseLockError.  WritableDatabase's ctor can throw at least
14682           DatabaseCorruptError or DatabaseLockError.
14684 Thu Feb 26 14:54:28 GMT 2009  Olly Betts <olly@survex.com>
14686         * tests/api_db.cc,tests/api_valuestream.cc: Update comments about why
14687           certain tests are disabled for certain backends.  Enable
14688           valueweightsource5 for multi and valuemapsource2 for remote.
14690 Thu Feb 26 14:53:19 GMT 2009  Olly Betts <olly@survex.com>
14692         * matcher/multiandpostlist.cc: Use AssertRelParanoid() instead
14693           of AssertParanoid() so the values get reported if the assertion
14694           fails.
14696 Thu Feb 26 14:18:21 GMT 2009  Olly Betts <olly@survex.com>
14698         * include/xapian/postingsource.h: Tweak word order.
14700 Thu Feb 26 12:48:16 GMT 2009  Olly Betts <olly@survex.com>
14702         * tests/api_db.cc: Make the PostingSource subclass ctors which are
14703           only called from clone() private to set a good example for users.
14705 Thu Feb 26 12:28:34 GMT 2009  Olly Betts <olly@survex.com>
14707         * include/xapian/postingsource.h: Fix doc comment typo.
14709 Thu Feb 26 12:08:40 GMT 2009  Olly Betts <olly@survex.com>
14711         * api/omqueryinternal.cc,include/xapian/query.h: Avoid copying
14712           Query::Internal objects needlessly when unserialising Query
14713           objects.
14715 Thu Feb 26 10:07:18 GMT 2009  Olly Betts <olly@survex.com>
14717         * tests/api_db.cc: A couple more uncollapsed tests.
14719 Thu Feb 26 08:28:42 GMT 2009  Olly Betts <olly@survex.com>
14721         * tests/api_anydb.cc,tests/api_wrdb.cc,tests/harness/testsuite.h,
14722           tests/perftest/perftest_matchdecider.cc,tests/queryparsertest.cc:
14723           Update to use new TEST_REL() macro.  Remove old TEST_LESSER(),
14724           etc.
14726 Thu Feb 26 07:51:43 GMT 2009  Olly Betts <olly@survex.com>
14728         * matcher/multimatch.cc: Fix the new
14729           Enquire::get_uncollapsed_matches_lower_bound(), etc methods for
14730           certain cases.
14731         * tests/api_anydb.cc,tests/api_db.cc: Extend existing tests to also
14732           check Enquire::get_uncollapsed_matches_lower_bound(), etc.
14734 Thu Feb 26 07:49:23 GMT 2009  Olly Betts <olly@survex.com>
14736         * tests/harness/Makefile.mk,tests/harness/testmacros.h,
14737           tests/harness/testsuite.h: Add new "TEST_REL" macro which can test
14738           for a condition using any relational operator and report a failure
14739           clearly yet concisely.
14741 Wed Feb 25 13:43:41 GMT 2009  Olly Betts <olly@survex.com>
14743         * matcher/multimatch.cc: Fix adjustment of the uncollapse bounds and
14744           estimate.
14746 Wed Feb 25 12:32:13 GMT 2009  Olly Betts <olly@survex.com>
14748         * configure.ac: GCC --version keeps changing format, and as a result
14749           we were currently getting "g++" as the version.  So change to the
14750           (hopefully) more robust technique of using g++ -E to pull out
14751           __GNUC__ and __GNUC_MINOR__.
14753 Wed Feb 25 03:14:08 GMT 2009  Olly Betts <olly@survex.com>
14755         * api/omdatabase.cc: Fix for compiling with Sun's compiler
14756           (untested as I no longer have access to it).
14758 Mon Feb 23 14:11:12 GMT 2009  Olly Betts <olly@survex.com>
14760         * docs/sorting.rst: Clarify meaning.
14762 Mon Feb 23 14:04:50 GMT 2009  Olly Betts <olly@survex.com>
14764         * docs/deprecation.rst,include/xapian/enquire.h,tests/: Rename the
14765           wrongly named "ascending" parameter of the set_sort_by*() methods
14766           of Enquire to "reverse" and deprecate the default value since
14767           defaulting to "reverse=true" is confusing.  (bug#311)
14769 Mon Feb 23 01:24:23 GMT 2009  Olly Betts <olly@survex.com>
14771         * api/omenquire.cc,backends/remote/remote-database.cc,
14772           common/multimatch.h,common/omenquireinternal.h,
14773           common/remote-database.h,docs/collapsing.rst,
14774           docs/remote_protocol.html,include/xapian/enquire.h,matcher/,
14775           net/remoteserver.cc,net/serialise.cc,tests/Makefile.am,
14776           tests/api_collapse.cc: Replace the collapsing code in the matcher
14777           with a separate Collapser class.  This new class can keep more than
14778           one document with each collapse key.  Also track bounds and an
14779           estimate of the total number of matches if collapsing wasn't in use.
14781 Mon Feb 23 00:52:16 GMT 2009  Olly Betts <olly@survex.com>
14783         * api/omdatabase.cc: Fix AssertionError from apitest testcases
14784           fixedweightsource2 and valueweightsource1.
14786 Sun Feb 22 11:02:24 GMT 2009  Olly Betts <olly@survex.com>
14788         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Check for
14789           fork failing *after* we check if we're now the child process.
14791 Sun Feb 22 10:06:13 GMT 2009  Olly Betts <olly@survex.com>
14793         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Note
14794           explicitly why we now have the strange empty if (not) checking the
14795           return value of chdir("/") (it's actually newer glibc and
14796           _FORTIFY_SOURCE rather than newer GCC).  Retry closing filehandle if
14797           it returns EINTR.  Whitespace tweaks.
14799 Sat Feb 21 11:04:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14801         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Fix
14802           warning about ignoring result of chdir (with GCC 4.2)
14804 Sat Feb 21 08:18:21 GMT 2009  Olly Betts <olly@survex.com>
14806         * tests/harness/testsuite.cc: Fix option usage in --help - "-x=foo"
14807           doesn't work - "-x foo" does.
14809 Sat Feb 21 07:37:01 GMT 2009  Olly Betts <olly@survex.com>
14811         * tests/perftest/perftest_randomidx.cc: Use two argument version of
14812           rand_int() where applicable.  Reserve length of result string in
14813           gen_word().  Fix truncated comment.
14815 Sat Feb 21 04:27:45 GMT 2009  Olly Betts <olly@survex.com>
14817         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: In the
14818           locking child process, before we exec /bin/cat change directory to
14819           / so that we don't block unmounting of any partitions and close
14820           any open file descriptors (apart from those we're using) so that if
14821           the files are closed by our parent and deleted the disk space gets
14822           released right away.
14824 Sat Feb 21 02:06:56 GMT 2009  Olly Betts <olly@survex.com>
14826         * api/postingsource.cc,include/xapian/postingsource.h: Pass string as
14827           const string &; drop trailing "_" from parameters which don't clash
14828           with member variables; fix brace formatting on a couple of for
14829           loops.
14831 Fri Feb 20 14:32:46 GMT 2009  Olly Betts <olly@survex.com>
14833         * tests/api_closedb.cc: Fix testcase closedb3 not to create a test
14834           database named closedb2.
14836 Fri Feb 20 01:38:32 GMT 2009  Olly Betts <olly@survex.com>
14838         * include/xapian/enquire.h: Documentation comment improvements.
14840 Wed Feb 18 06:48:43 GMT 2009  Olly Betts <olly@survex.com>
14842         * matcher/multimatch.cc: Use AssertRel rather than Assert with an
14843           inequality so that we see the arguments if the assertion fails.
14845 Wed Feb 18 06:39:33 GMT 2009  Olly Betts <olly@survex.com>
14847         * matcher/multimatch.cc: "items" -> "rsetitems" to distinguish from
14848           items used elsewhere for the MSet items.
14850 Wed Feb 18 06:20:38 GMT 2009  Olly Betts <olly@survex.com>
14852         * matcher/multimatch.cc: Drop superfluous "std::".
14854 Wed Feb 18 05:46:59 GMT 2009  Olly Betts <olly@survex.com>
14856         * NEWS: Update from ChangeLog.
14858 Tue Feb 17 23:53:54 GMT 2009  Olly Betts <olly@survex.com>
14860         * include/xapian/document.h,include/xapian/query.h: "xapian" ->
14861           "Xapian".
14863 Tue Feb 17 15:02:49 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14865         * include/xapian/document.h,include/xapian/query.h: Soften comment
14866           warning about changes in serialised format between xapian
14867           versions; note that the format won't change unless the remote
14868           database protocol has changed.
14870 Tue Feb 17 14:59:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14872         * api/omquery.cc: Return std::string() rather than "" to encourage
14873           compilers to use special empty string representation.
14875 Mon Feb 16 14:27:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14877         * api/postingsource.cc: Change the name() methods of the built-in
14878           posting sources to return a full name (starting with Xapian:: and
14879           ending with PostingSource), as documented in the API
14880           documentation comments.
14882 Mon Feb 16 13:32:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14884         * api/omqueryinternal.cc,common/remoteserver.h,
14885           matcher/externalpostlist.cc,matcher/externalpostlist.h,
14886           matcher/queryoptimiser.cc,net/remoteserver.cc,
14887           tests/api_percentages.cc,tests/api_valuestream.cc: Add some
14888           copyright lines missed in changeset [11838].
14890 Mon Feb 16 11:56:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14892         * matcher/queryoptimiser.cc: Add another reference from a FIXME to
14893           a ticket number.
14895 Mon Feb 16 11:47:21 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14897         * api/omqueryinternal.cc: Update two FIXMEs to reference the
14898           appropriate ticket.
14900 Mon Feb 16 10:11:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14902         * Add support for multi and remote backends with posting sources,
14903           from ticket #295:
14904         * include/xapian/postingsource.h: Add some clarifying comments
14905           about the interface of PostingSources, and add clone(), name(),
14906           serialise() and unserialise() methods to PostingSources, for
14907           remote and multidatabase support.
14908         * include/xapian/query.h: Add internal member to track ownership of
14909           external posting sources, and update some comments.
14910         * api/postingsource.cc: Add implementations of the new methods, so
14911           that all standard PostingSources support remote and multi
14912           database searches.
14913         * api/omquery.cc: Clone external PostingSources if possible.
14914         * api/omqueryinternal.cc: Add serialisation and unserialisation
14915           support for posting sources, and support for keeping track of
14916           whether an external posting source is owned by the query object
14917           or not (ie, whether it needs to be deleted by the destructor).
14918         * matcher/externalpostlist.cc,matcher/externalpostlist.h: (Attempt
14919           to) clone external posting sources at start, and call the reset()
14920           method with the database in use.  Delete the posting source
14921           afterwards, if the clone was successful.
14922         * matcher/queryoptimiser.cc: Pass the database to ExternalPostList.
14923           Sadly, this currently requires a const_cast.
14924         * tests/: Update tests of PostingSources to take the db parameter
14925           on the reset() method, and to test behaviour with multi and
14926           remote backends where appropriate.  Also, add regression test for
14927           segfault in FixedWeightPostingSource::skip_to() when database is
14928           empty.
14929         * net/remoteserver.cc,common/remoteserver.h: Add the built-in
14930           posting sources to the remote server, and add
14931           register_posting_source() to the remoteserver, for use in
14932           xapian-tcpsrv.cc for user posting sources, analogously to
14933           register_weighting_scheme().
14935 Fri Feb 13 20:09:10 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14937         * api/postingsource.cc: Fix segfaults which occur if an empty
14938           ValuePostingSource subclass has the skip_to() or check() methods
14939           called on it first.
14940         * tests/api_db.cc tests/api_valuestream.cc: Move valuemapsource1 to
14941           api_valuestream.cc, since that seems like a better place (and
14942           api_db.cc is already rather over-large).  Add regression test
14943           "valuemapsource2" to check the behaviour of ValuePostingSource
14944           subclasses on empty lists.
14946 Fri Feb 13 19:29:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14948         * api/postingsource.cc,include/xapian/postingsource.h: Add
14949           ValuePostingSource, which is a base class for implementing
14950           posting sources based on reading from a value slot.  Convert
14951           ValueWeightPostingSource to be a subclass of this, and add
14952           ValueMapPostingSource, which is a posting source which uses a map
14953           to convert values to weights.
14954         * tests/api_db.cc: Add valuemapsource1, testing the
14955           ValueMapPostingSource.
14957 Fri Feb 13 15:14:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14959         * tests/harness/index_utils.cc: Add value 13, containing the first
14960           3 letters of the paragraph - needed for some tests I'm going to
14961           commit shortly.
14963 Fri Feb 13 14:05:44 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14965         * tests/api_sorting.cc: Change slot number used to get an empty
14966           slot from 13 to 100 - we're getting close to using slot 13 now!
14968 Sat Feb 07 00:31:12 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14970         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc:
14971           Return accidentally changed "XAPIAN_ASSERTIONS_VERBOSE" ifdefs to
14972           "XAPIAN_DEBUG_VERBOSE".
14974 Sat Feb 07 00:16:43 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14976         * api/omdocument.cc,api/omquery.cc,include/xapian/document.h,
14977           include/xapian/query.h: Add methods for serialising documents and
14978           queries into strings, and unserialising back from strings.  Fixes
14979           most of ticket #206 - missing part is that serialising queries
14980           containing PostingSources doesn't work.
14981         * tests/Makefile.am,tests/api_serialise.cc: Add tests of document
14982           and query serialisation.
14984 Fri Feb 06 16:06:50 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14986         * configure.ac: Set HAVE_PREAD and HAVE_PWRITE if pread and pwrite
14987           are found; turns use of pread and pwrite back on.  This improves
14988           the speed of a test case of 10,000 (fully cached) searches from
14989           1.84 seconds to 1.78 seconds for me (on ubuntu hardy) - ie, about
14990           3% speed increase.
14992 Tue Jan 20 06:22:20 GMT 2009  Olly Betts <olly@survex.com>
14994         * tests/api_db.cc: Prefer value.empty() to value == "".
14996 Mon Jan 19 05:08:48 GMT 2009  Olly Betts <olly@survex.com>
14998         * AUTHORS,queryparser/Makefile.mk: Fix "#line" directives in generated
14999           file queryparser/queryparser_internal.cc to give a relative path -
15000           previously they had a full path when generated by a VPATH build, and
15001           this confused GCC 2.95 and depcomp.
15003 Sun Jan 18 23:34:22 GMT 2009  Olly Betts <olly@survex.com>
15005         * api/omenquire.cc: Throw UnimplementedError from Enquire::get_mset()
15006           if we're asked for a percentage cutoff and to sort primarily by
15007           value - this has never been correctly supported and it's better to
15008           warn people than give incorrect results.
15009         * tests/api_percentages.cc: Add test that this error gets thrown.
15011 Tue Jan 13 08:20:36 GMT 2009  Olly Betts <olly@survex.com>
15013         * common/omenquireinternal.h: Swap the items vector into the
15014           MSet::Internal object rather than copying it to avoid the overhead
15015           of the copy.
15017 Thu Jan 08 05:14:47 GMT 2009  Olly Betts <olly@survex.com>
15019         * backends/chert/chert_cursor.cc,backends/chert/chert_postlist.cc,
15020           backends/flint/flint_cursor.cc,backends/flint/flint_postlist.cc,
15021           backends/multi/multi_postlist.cc,common/omassert.h,configure.ac,
15022           matcher/multimatch.cc: Change preprocessor defines controlling
15023           assertions from XAPIAN_DEBUG->XAPIAN_ASSERTIONS and
15024           XAPIAN_DEBUG_PARANOID->XAPIAN_ASSERTIONS_PARANOID so their purpose
15025           is clearer.
15027 Thu Jan 08 02:23:21 GMT 2009  Olly Betts <olly@survex.com>
15029         * NEWS: Update from ChangeLog.
15031 Wed Jan 07 03:43:07 GMT 2009  Olly Betts <olly@survex.com>
15033         * api/matchspy.cc: Fix FP rounding bug (bug#321).
15034         * AUTHORS: Add Shane Evans for bug report.
15036 Tue Jan 06 22:08:12 GMT 2009  Olly Betts <olly@survex.com>
15038         * backends/inmemory/inmemory_database.cc: Fix comment typo.
15040 Tue Jan 06 21:39:30 GMT 2009  Olly Betts <olly@survex.com>
15042         * api/matchspy.cc: Add assertions to try to track down what's causing
15043           bug#321.
15045 Tue Jan 06 03:20:27 GMT 2009  Olly Betts <olly@survex.com>
15047         * matcher/exactphrasepostlist.cc,matcher/phrasepostlist.cc: Fix
15048           comment typos.
15050 Mon Jan 05 04:42:04 GMT 2009  Olly Betts <olly@survex.com>
15052         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6016" -
15053           only change is to comment noting the synced version as the changed
15054           code has been deleted in our version.
15056 Fri Dec 26 15:05:05 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15058         * include/xapian/database.h: Add Database.close() method, used to
15059           close the resources (in particular, the filehandles) held by a
15060           database before the destructor is called.  Particularly useful
15061           for the bindings from other languages.
15062         * api/omdatabase.cc,backends/chert/chert_database.cc,
15063           backends/chert/chert_database.h,backends/flint/flint_database.cc,
15064           backends/flint/flint_database.h,
15065           backends/inmemory/inmemory_database.cc,
15066           backends/inmemory/inmemory_database.h,
15067           backends/remote/remote-database.cc,common/database.h,
15068           common/remote-database.h,net/remoteconnection.cc: Implementation
15069           of close() methods.
15070         * tests/Makefile.am,tests/api_closedb.cc: New test file, for
15071           testing the close method.  Could do with being expanded to test
15072           many more methods of databases in the closed state, and to test
15073           the behaviour after the close of objects created from databases
15074           before the database was closed.
15076 Fri Dec 26 13:42:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15078         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
15079           Raise error if database has been closed permanently when
15080           cursor_get() is called - a NULL return type isn't checked in
15081           various places (for tables which are never closed temporarily),
15082           so this is the easiest place to add a check to avoid a segfault
15083           without incurring extra overhead.
15085 Tue Dec 23 13:42:21 GMT 2008  Olly Betts <olly@survex.com>
15087         * languages/compiler/analyser.c: Fix GCC 4.3 warning.
15089 Tue Dec 23 06:35:11 GMT 2008  Olly Betts <olly@survex.com>
15091         * PLATFORMS: Sync with 1.0 branch.
15092         * PLATFORMS: Remove 0.9.x build reports; move 1.0.x build reports
15093           to the "old version" section.
15094         * INSTALL: Adapt old footnotes from PLATFORMS about HP's aCC and IRIX
15095           into new paragraphs here.
15097 Tue Dec 23 05:19:52 GMT 2008  Olly Betts <olly@survex.com>
15099         * HACKING,configure.ac: Make automake 1.10.2 a hard minimum
15100           requirement.
15102 Tue Dec 23 04:36:27 GMT 2008  Olly Betts <olly@survex.com>
15104         * NEWS: Update from ChangeLog.
15106 Mon Dec 22 16:02:58 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15108         * backends/chert/chert_databasereplicator.cc,
15109           backends/databasereplicator.cc,
15110           backends/flint/flint_databasereplicator.cc: Fix some missing bits
15111           for debug compilation.
15113 Mon Dec 22 13:30:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15115         * api/replication.cc,backends/Makefile.mk,backends/chert/,
15116           backends/database.cc,backends/databasereplicator.cc,backends/flint/,
15117           common/Makefile.mk,common/database.h,common/databasereplicator.h:
15118           Add DatabaseReplicator base class, and subclasses for flint and
15119           chert, to hold parts of database replication code which need to
15120           be applied to a partially replicated database which may not be a
15121           valid database.  Move the code for applying changesets and
15122           comparing revision numbers into here, and add code for getting
15123           uuids which simply returns "" if the database is too broken to
15124           have a uuid associated with it.  Update the replication code to
15125           use DatabaseReplicator subclasses instead of Database classes
15126           where necessary, to avoid failing if a partial database is
15127           transmitted.  Add additional checks to ensure that the UUID of a
15128           replicated databse is equal to that sent in the replication
15129           protocol message introducing a full database copy; if they
15130           differ, a retry of the copy is needed, so ensure that the next
15131           message sent is a new copy of the database.
15133 Mon Dec 22 11:24:43 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15135         * docs/replication.rst: Warning about a possible way to confuse the
15136           replication process.
15138 Sat Dec 20 14:00:34 GMT 2008  Olly Betts <olly@survex.com>
15140         * tests/api_percentages.cc: Update (C) too.
15142 Sat Dec 20 13:51:35 GMT 2008  Olly Betts <olly@survex.com>
15144         * matcher/multimatch.cc: If we're using values for sorting and for
15145           another purpose, cache the Document::Internal object from getting
15146           the value for sorting like we do between other uses.
15148 Sat Dec 20 13:09:13 GMT 2008  Olly Betts <olly@survex.com>
15150         * tests/api_percentages.cc: Make formatting of MyPostingSource code
15151           more self-consistent.  Remove a superfluous block scope.  Wrap a
15152           long comment.
15154 Sat Dec 20 12:25:40 GMT 2008  Olly Betts <olly@survex.com>
15156         * exception_data.pm: Build a hash mapping a class to a list of its
15157           subclasses and export this as %subclasses.
15159 Sat Dec 20 05:51:50 GMT 2008  Olly Betts <olly@survex.com>
15161         * HACKING: Wrap a long line.
15163 Sat Dec 20 05:28:57 GMT 2008  Olly Betts <olly@survex.com>
15165         * queryparser/lemon.c: Merge upstream "Check-in Number: 6016".
15167 Fri Dec 19 14:25:10 GMT 2008  Olly Betts <olly@survex.com>
15169         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6015".
15171 Fri Dec 19 14:07:52 GMT 2008  Olly Betts <olly@survex.com>
15173         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6006".
15175 Fri Dec 19 13:51:33 GMT 2008  Olly Betts <olly@survex.com>
15177         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5919"
15178           - code changes are in deleted code, so no actual code changes for
15179           us.
15181 Fri Dec 19 13:46:22 GMT 2008  Olly Betts <olly@survex.com>
15183         * queryparser/lemon.c: Merge upstream "Check-in Number: 6008".
15185 Fri Dec 19 11:15:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15187         * tests/api_replicate.cc: Fix comment describing test.
15189 Thu Dec 18 23:38:50 GMT 2008  Olly Betts <olly@survex.com>
15191         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: Tidy up
15192           comment wrapping and indenting of code wrapped in try blocks by the
15193           previous commit.
15195 Thu Dec 18 14:26:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15197         * backends/chert/chert_database.cc,backends/chert/chert_table.cc,
15198           backends/chert/chert_table.h,backends/flint/flint_database.cc,
15199           backends/flint/flint_table.cc,backends/flint/flint_table.h:
15200           Improve resilience to unexpected errors during commit.  Firstly,
15201           fix FlintTable and ChertTable to close the table if an error
15202           occurs during commit - this avoids the table being left in an
15203           inconsistent state (instead, the table is reopened in a
15204           consistent state the next time it is used).  Secondly, add a
15205           "permanent" close state for tables (indicated by handle being set
15206           to -2), which will raise an error if anything tries to do an
15207           action which needs the table to be opened, and set the tables to
15208           this state if we fail to recover the database after error in
15209           commit().  This prevents further actions on the database if we
15210           couldn't recover the state (eg, because we're out of disk space),
15211           avoiding risk of corruption.
15213 Thu Dec 18 01:28:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15215         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
15216           backends/flint/flint_database.cc,backends/flint/flint_database.h:
15217           Improve the error reporting when modifications fail and we cannot
15218           set the revision numbers in the table to consistent values, to
15219           report the original error too.
15221 Wed Dec 17 17:27:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15223         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
15224           Fix construction of the error message when a base can't be
15225           re-read: used to do pointer arithmetic by mistake - now does the
15226           correct string concatenation.
15228 Wed Dec 17 15:18:10 GMT 2008  Olly Betts <olly@survex.com>
15230         * tests/api_valuestream.cc: Skip valuestream3 on chert for now so that
15231           snapshots and the tinderbox work again.
15233 Wed Dec 17 15:17:07 GMT 2008  Olly Betts <olly@survex.com>
15235         * tests/api_wrdb.cc: Need omassert.h for STATIC_ASSERT.
15237 Wed Dec 17 10:45:45 GMT 2008  Olly Betts <olly@survex.com>
15239         * api/omqueryinternal.cc,tests/api_nodb.cc: A NEAR of 2 OR subqueries
15240           shouldn't throw AssertionError - instead throw UnimplementedError.
15241           Addresses the worst aspect of bug#201, but this should really be
15242           implemented.
15244 Wed Dec 17 04:44:10 GMT 2008  Olly Betts <olly@survex.com>
15246         * backends/chert/chert_database.cc,backends/chert/chert_database.h:
15247           Implement ChertWritableDatabase::open_value_list().
15248         * tests/api_valuestream.cc: Add valueweightsource5 testcase which is a
15249           regression test for bug#299 and also exercises the above method.
15251 Tue Dec 16 13:30:47 GMT 2008  Olly Betts <olly@survex.com>
15253         * common/expandweight.h,expand/expandweight.cc: Overhaul ExpandWeight
15254           - now we use the "official" formula and don't return terms which it
15255           would give a negative weight to (since that means they are expected
15256           to be harmful not helfpul).
15257         * tests/api_anydb.cc,tests/api_db.cc: Fix unwarranted assumptions in
15258           existing testcases broken by this change.
15260 Thu Dec 11 01:02:41 GMT 2008  Olly Betts <olly@survex.com>
15262         * examples/delve.cc: Add missing "and" to --help output.  Report
15263           termfreq and collection freq for each term we're asked about.
15265 Mon Dec 08 00:52:51 GMT 2008  Olly Betts <olly@survex.com>
15267         * AUTHORS: Add Daniel Andersson for reporting the flintlock
15268           permissions issue.
15270 Sun Dec 07 22:50:32 GMT 2008  Olly Betts <olly@survex.com>
15272         * api/sorter.cc,tests/api_sorting.cc: Fix an empty MultiValueSorter
15273           not to SEGV/hang.
15275 Fri Dec 05 21:08:08 GMT 2008  Olly Betts <olly@survex.com>
15277         * backends/chert/chert_database.cc,tests/api_backend.cc: Use
15278           "flintlock" rather than "chertlock" for the lockfile in chert.
15279           The locking is compatible and this avoids the possibility of
15280           creating a chert and flint database in the same directory (which
15281           will result in one being corrupt since the Btree filenames overlap).
15283 Thu Dec 04 09:00:04 GMT 2008  Olly Betts <olly@survex.com>
15285         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Create
15286           the lockfile with permissions 0666 so that the umask is honoured
15287           just like we do for the other files (previously we used 0600).
15288         * tests/Makefile.am,tests/api_backend.cc: Add regression test
15289           lockfileumask1.
15291 Thu Dec 04 08:56:54 GMT 2008  Olly Betts <olly@survex.com>
15293         * tests/stemtest.cc: Use str.resize(0) instead of str = "".
15295 Thu Dec 04 04:56:55 GMT 2008  Olly Betts <olly@survex.com>
15297         * tests/queryparsertest.cc: No need to explicitly initialise a
15298           std::string to "".
15300 Thu Dec 04 04:55:47 GMT 2008  Olly Betts <olly@survex.com>
15302         * tests/api_db.cc: Prefer str.empty() to str == "".
15304 Thu Dec 04 01:50:10 GMT 2008  Olly Betts <olly@survex.com>
15306         * tests/api_wrdb.cc: Make helper function static.  Use STATIC_ASSERT
15307           to ensure a constant is coprime with 13.
15309 Wed Dec 03 22:56:19 GMT 2008  Olly Betts <olly@survex.com>
15311         * api/omdatabase.cc: Fix API logging.
15313 Wed Dec 03 03:11:45 GMT 2008  Olly Betts <olly@survex.com>
15315         * INSTALL: Note that libuuid is required for Xapian 1.1.0 and higher.
15317 Wed Dec 03 03:10:59 GMT 2008  Olly Betts <olly@survex.com>
15319         * INSTALL: Remove ':' from the end of headings.
15321 Mon Dec 01 08:59:04 GMT 2008  Olly Betts <olly@survex.com>
15323         * HACKING: Explicitly give the commands to install the required
15324           packages for developing on recent Debian or Ubuntu for added
15325           convenience.  Update the Debian/Ubuntu packages needed for
15326           documentation to reflect the change from tetex to texlive.  Fix
15327           unfinished paragraph about requiring a newline at the end of a
15328           source file and note that this is actually undefined behaviour in
15329           C++.
15331 Sun Nov 30 21:46:59 GMT 2008  Olly Betts <olly@survex.com>
15333         * bin/,examples/quest.cc,tests/harness/testsuite.cc: Pull out lists of
15334           short options next to list of long options to help make sure they
15335           are kept in step.  xapian-tcpsrv and xapian-progsrv now accept -w
15336           as a short form of --writable, as their long option table had, but
15337           their short option string didn't.
15339 Sun Nov 30 20:44:48 GMT 2008  Olly Betts <olly@survex.com>
15341         * docs/postingsource.rst: Wrap a long line.  Note that the remote
15342           backend isn't supported yet.
15344 Wed Nov 19 11:36:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15346         * docs/postingsource.rst: Make it clear that PostingSources must
15347           always return documents in increasing document ID order.
15349 Wed Nov 19 08:43:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15351         * bin/,examples/delve.cc,examples/quest.cc,tests/harness/testsuite.cc:
15352           Test return type of gnu_getopt_long for being != -1, rather than
15353           == 0, since there are a wide variety of return types other than 0
15354           which may be returned in the successful case (with the builtin
15355           implementation in common/getopt.cc, at least).
15357 Tue Nov 18 23:22:09 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15359         * api/omdatabase.cc: Change unknown "DATABASE" debug type to "DB".
15361 Mon Nov 17 13:00:12 GMT 2008  Olly Betts <olly@survex.com>
15363         * docs/queryparser.html: Add link to valueranges.html.
15365 Fri Nov 14 22:23:10 GMT 2008  Olly Betts <olly@survex.com>
15367         * NEWS: Update revision we're current to.
15369 Fri Nov 14 17:43:15 GMT 2008  Olly Betts <olly@survex.com>
15371         * backends/chert/chert_alldocsmodifiedpostlist.cc,
15372           backends/chert/chert_modifiedpostlist.cc,
15373           backends/flint/flint_modifiedpostlist.cc: Correct comments.
15375 Fri Nov 14 17:38:33 GMT 2008  Olly Betts <olly@survex.com>
15377         * tests/harness/testsuite.cc: Update comment about valgrind and C++
15378           STL allocators.
15380 Fri Nov 14 17:36:47 GMT 2008  Olly Betts <olly@survex.com>
15382         * bin/,examples/delve.cc,examples/quest.cc,tests/harness/testsuite.cc:
15383           Don't compare return value of gnu_getopt_long() with EOF - it's
15384           documented to simply return -1 or 0, and EOF requires inclusion of
15385           stdio.h.
15387 Fri Nov 14 17:30:39 GMT 2008  Olly Betts <olly@survex.com>
15389         * common/serialise-double.cc: Fix "#elif" with no argument to
15390           "#else" - the former surprisingly compiles with most compilers, but
15391           GCC 4.4 snapshots reject it.
15393 Fri Nov 14 16:54:15 GMT 2008  Olly Betts <olly@survex.com>
15395         * common/win32_uuid.cc: A few code clean-ups.
15397 Fri Nov 14 13:09:16 GMT 2008  Olly Betts <olly@survex.com>
15399         * common/Makefile.mk: Ship common/safeuuid.h to unbreak tarball
15400           snapshot building.
15402 Sun Nov 09 13:31:19 GMT 2008  Olly Betts <olly@survex.com>
15404         * api/omquery.cc,api/omqueryinternal.cc,bin/xapian-tcpsrv.cc,
15405           common/omenquireinternal.h,matcher/,net/remoteserver.cc:
15406           Prefer "" to <> for including Xapian API headers from within the
15407           library.  Remove so unused xapian/enquire.h inclusions.
15409 Fri Nov 07 12:50:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15411         * backends/chert/chert_version.cc,backends/chert/chert_version.h,
15412           backends/flint/flint_version.cc,backends/flint/flint_version.h,
15413           common/safeuuid.h,common/win32_uuid.cc,common/win32_uuid.h: Add
15414           implementation of UUID functions for windows (using the built-in
15415           UUID methods in the windows API). Fixes bug #303.
15417 Sat Nov 01 01:47:44 GMT 2008  Olly Betts <olly@survex.com>
15419         * NEWS: Sync with 1.0.9 release.
15421 Fri Oct 31 18:55:03 GMT 2008  Olly Betts <olly@survex.com>
15423         * include/xapian/database.h: Document XAPIAN_FLUSH_THRESHOLD
15424           (bug#306).
15426 Fri Oct 31 18:30:11 GMT 2008  Olly Betts <olly@survex.com>
15428         * configure.ac: Fix whitespace inconsistency with omega's
15429           configure.ac.
15431 Fri Oct 31 10:51:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15433         * api/postingsource.cc,include/xapian/postingsource.h: Add a new
15434           built-in posting source, FixedWeightSource, which returns every
15435           document in the database, but with a fixed weight.  In
15436           particular, this is useful to add a constant weight to every item
15437           in a subquery.  Also, in ValueWeightPostingSource, refactor the
15438           "last_docid" member to a bool "started", since this is all it's
15439           used for.
15440         * tests/api_db.cc: Add fixedweightsource1, to test FixedWeightSource.
15442 Mon Oct 27 17:05:39 GMT 2008  Olly Betts <olly@survex.com>
15444         * tests/queryparsertest.cc: Skip test if the timer granularity is too
15445           coarse in all cases.
15447 Mon Oct 27 08:12:16 GMT 2008  Olly Betts <olly@survex.com>
15449         * tests/api_valuestream.cc: Disable valuestream1 for multi backends.
15451 Sun Oct 26 00:30:54 GMT 2008  Olly Betts <olly@survex.com>
15453         * backends/chert/chert_valuelist.cc: Remove incorrect assertions.
15455 Sat Oct 25 06:18:37 GMT 2008  Olly Betts <olly@survex.com>
15457         * api/Makefile.mk: Fix typo so we once again ship editdistance.h and
15458           maptermlist.h.
15460 Thu Oct 23 17:34:13 GMT 2008  Olly Betts <olly@survex.com>
15462         * tests/queryparsertest.cc: Skip test if the timer granularity is too
15463           coarse.
15465 Tue Oct 21 05:00:59 GMT 2008  Olly Betts <olly@survex.com>
15467         * NEWS: Sync with branches/1.0.
15469 Tue Oct 21 02:09:18 GMT 2008  Olly Betts <olly@survex.com>
15471         * tests/api_valuestream.cc: Add feature test of ValueIterator::check().
15473 Tue Oct 21 01:36:45 GMT 2008  Olly Betts <olly@survex.com>
15475         * backends/inmemory/inmemory_database.cc,
15476           backends/inmemory/inmemory_database.h: Prefer string() to "", slot
15477           to valno, and not using else after return.
15479 Tue Oct 21 01:32:37 GMT 2008  Olly Betts <olly@survex.com>
15481         * tests/api_anydb.cc,tests/api_db.cc: Remove '#include <iomanip>'
15482           which aren't used.
15484 Mon Oct 20 13:30:37 GMT 2008  Olly Betts <olly@survex.com>
15486         * api/postingsource.cc,api/valueiterator.cc,
15487           include/xapian/postingsource.h,include/xapian/valueiterator.h: Add
15488           new API method ValueIterator::check() and use it in PostingIterator.
15490 Mon Oct 20 12:28:16 GMT 2008  Olly Betts <olly@survex.com>
15492         * tests/api_valuestream.cc: Add test for skip_to() on valuestream
15493           iterator.
15495 Mon Oct 20 11:19:12 GMT 2008  Olly Betts <olly@survex.com>
15497         * tests/Makefile.am,tests/api_valuestream.cc: Add a simple test of
15498           valuestream iteration.
15500 Mon Oct 20 11:01:26 GMT 2008  Olly Betts <olly@survex.com>
15502         * tests/Makefile.am,tests/collate-test,tests/perftest/Makefile.mk:
15503           Generate the header listing the collated tests so that we can avoid
15504           updating its timestamp when the contents are unchanged, such as in
15505           the common case where you modify tests but don't add, remove, or
15506           change the conditions on any tests.
15508 Mon Oct 20 10:01:56 GMT 2008  Olly Betts <olly@survex.com>
15510         * examples/delve.cc: Use valuestream iterator to implement "-V<slot>".
15512 Mon Oct 20 02:19:09 GMT 2008  Olly Betts <olly@survex.com>
15514         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
15515           Remove unused members of MultiPostList: tname, collfreq_initialised,
15516           collfreq, and termweight.
15518 Sun Oct 19 14:01:15 GMT 2008  Olly Betts <olly@survex.com>
15520         * api/postingsource.cc,include/xapian/postingsource.h: Update
15521           ValueWeightPostingSource to use a value stream iterator.
15523 Sun Oct 19 13:53:51 GMT 2008  Olly Betts <olly@survex.com>
15525         * backends/database.cc: Make use of SlowValueList by default.
15527 Sun Oct 19 13:47:10 GMT 2008  Olly Betts <olly@survex.com>
15529         * api/documentvaluelist.cc,api/documentvaluelist.h: Fix so that a
15530           DocumentValueList starts before the first value.
15532 Sun Oct 19 13:09:39 GMT 2008  Olly Betts <olly@survex.com>
15534         * api/omdatabase.cc,api/omdocument.cc: Use ValueIterator() instead of
15535           ValueIterator(NULL).
15537 Sun Oct 19 11:15:15 GMT 2008  Olly Betts <olly@survex.com>
15539         * NEWS: Update from ChangeLog.
15541 Sat Oct 18 01:31:25 GMT 2008  Olly Betts <olly@survex.com>
15543         * NEWS: Update from ChangeLog.
15545 Fri Oct 17 15:54:57 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15547         * bin/xapian-compact.cc: Check that pq is not empty before calling
15548           top() on it - if it's empty, we only have one database, so we can
15549           use the code path which doesn't worry about merging tags.  Fixes
15550           bug #305.
15552 Fri Oct 17 14:22:18 GMT 2008  Olly Betts <olly@survex.com>
15554         * backends/chert/chert_valuelist.cc: Fix ChertValueList to start on
15555           the right key.
15557 Fri Oct 17 14:14:14 GMT 2008  Olly Betts <olly@survex.com>
15559         * include/xapian/database.h,include/xapian/document.h: Inline
15560           ValueIterator end iterator as ValueIterator() rather than
15561           ValueIterator(NULL).
15562         * api/valueiterator.cc: Need to call next() on a ValueList to get it
15563           to the first position, so do this in ValueIterator's constructor.
15564         * api/valueiterator.cc,include/xapian/valueiterator.h: Add
15565           ValueIterator::get_docid() method.
15567 Fri Oct 17 13:53:26 GMT 2008  Olly Betts <olly@survex.com>
15569         * backends/slowvaluelist.cc,backends/slowvaluelist.h: Add missing
15570           SlowValueList::get_valueno() method.
15572 Fri Oct 17 13:16:01 GMT 2008  Olly Betts <olly@survex.com>
15574         * api/omdatabase.cc,include/xapian/database.h: Add
15575           Database::valuestream_begin() and Database::valuestream_end() to
15576           allow iterating over the values in a given slot for each document
15577           in the database (untested so far).
15579 Thu Oct 16 13:20:26 GMT 2008  Olly Betts <olly@survex.com>
15581         * backends/multi/multi_postlist.cc: Remove unused '#include <list>'
15582           and uninformative comment.
15584 Thu Oct 16 12:47:00 GMT 2008  Olly Betts <olly@survex.com>
15586         * api/omdocument.cc,include/xapian/document.h: Inline
15587           Xapian::Document::values_end() into user code.
15589 Thu Oct 16 12:26:29 GMT 2008  Olly Betts <olly@survex.com>
15591         * api/,backends/chert/chert_valuelist.cc,
15592           backends/chert/chert_valuelist.h,common/document.h,
15593           common/valuelist.h,include/Makefile.mk,include/xapian/derefwrapper.h,
15594           include/xapian/termiterator.h,include/xapian/valueiterator.h:
15595           Reimplement ValueIterator to have reference counted internals.  One
15596           benefit is that Document::Internal no longer need its value_nos map
15597           member.
15599 Thu Oct 16 11:22:13 GMT 2008  Olly Betts <olly@survex.com>
15601         * backends/inmemory/inmemory_database.cc: Fix incorrect method name in
15602           debug messages.
15604 Thu Oct 16 01:34:07 GMT 2008  Olly Betts <olly@survex.com>
15606         * HACKING: Note preference for @ rather than \ to introduce doxygen
15607           commands.
15609 Thu Oct 16 01:21:19 GMT 2008  Olly Betts <olly@survex.com>
15611         * HACKING: Expand section on public/protected/private a little.
15613 Wed Oct 15 11:34:15 GMT 2008  Olly Betts <olly@survex.com>
15615         * include/xapian/database.h: Use std::string() instead of "" as the
15616           default value for std::string method parameters.
15618 Wed Oct 15 03:20:01 GMT 2008  Olly Betts <olly@survex.com>
15620         * backends/Makefile.mk,backends/slowvaluelist.cc,
15621           backends/slowvaluelist.h: Support for (slowly) iterating along a
15622           value stream for backends which don't support streamed values
15623           internally (currently unused).
15625 Tue Oct 14 11:43:42 GMT 2008  Olly Betts <olly@survex.com>
15627         * api/postingsource.cc,backends/inmemory/inmemory_database.cc,
15628           matcher/multimatch.cc: Database::get_document_lazily() now returns
15629           NULL if the document isn't found for an inmemory database.
15630         * include/xapian/database.h: Document the return value better.
15632 Tue Oct 14 03:20:38 GMT 2008  Olly Betts <olly@survex.com>
15634         * api/omdatabase.cc,api/postingsource.cc,include/xapian/database.h,
15635           matcher/multimatch.cc: Add internal
15636           Xapian::Database::get_document_lazily() method and use it in the
15637           matcher and Xapian::PostingSource classes to avoid repeating the
15638           same code lots of times.
15640 Mon Oct 13 23:38:34 GMT 2008  Olly Betts <olly@survex.com>
15642         * HACKING: Rename "Miscellaneous Portability Issues" to "C++
15643           Portability Issues", and add a subsection of that for "Miscellaneous
15644           Portability Issues" with a new note about needing to terminate the
15645           last line of a source file, and a new subsection heading "Header
15646           Portability Issues" for all the header-related stuff.
15648 Sat Oct 11 12:19:38 GMT 2008  Olly Betts <olly@survex.com>
15650         * tests/api_wrdb.cc: If the timer for the first test for bigoaddvalue
15651           reports 0.0 seconds, skip the test as the timer doesn't have fine
15652           enough granularity for this test to be useful (bug#300).
15654 Fri Oct 10 20:40:14 GMT 2008  Olly Betts <olly@survex.com>
15656         * tests/api_wrdb.cc: Reuse XAPIAN_BIN_PATH to avoid hardcoding more
15657           paths, and so this works in a debug build too.
15659 Fri Oct 10 17:52:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15661         * tests/api_wrdb.cc: Patch to use a different path in win32 build
15662           to match the different place that the compiled xapian-check is
15663           placed in.  Should fix bug #301.
15665 Thu Oct 09 05:20:32 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15667         * configure.ac: Change -Wstrict-overflow level to 1 - even level 2
15668           causes a few warnings (notably in chert_table.cc) to appear with
15669           GCC 4.3 which are unreasonably difficult to avoid.
15671 Thu Oct 09 05:04:49 GMT 2008  Olly Betts <olly@survex.com>
15673         * HACKING,configure.ac: Raise autoconf requirement to 2.63.
15675 Wed Oct 08 14:52:03 GMT 2008  Olly Betts <olly@survex.com>
15677         * docs/valueranges.rst: Fix typos in example code.
15678         * docs/valueranges.rst,tests/queryparsertest.cc: Drop superfluous
15679           empty destructor from ValueRangeProcessor subclass.
15681 Wed Oct 08 14:00:04 GMT 2008  Olly Betts <olly@survex.com>
15683         * common/valuelist.h: Add missing get_docid() method.
15685 Wed Oct 08 12:11:57 GMT 2008  Olly Betts <olly@survex.com>
15687         * NEWS: Update from ChangeLog.
15689 Wed Oct 08 12:00:39 GMT 2008  Olly Betts <olly@survex.com>
15691         * backends/Makefile.mk,backends/chert/,backends/database.cc,
15692           backends/valuelist.cc,common/Makefile.mk,common/database.h,
15693           common/valuelist.h,include/xapian/valueiterator.h: The start of
15694           support for iterating along a value stream (currently unused).
15696 Tue Oct 07 10:19:48 GMT 2008  Olly Betts <olly@survex.com>
15698         * configure.ac: Disable -Wconversion for now - it's not useful for
15699           older GCC and is buggy in GCC 4.3.
15701 Tue Oct 07 04:53:41 GMT 2008  Olly Betts <olly@survex.com>
15703         * matcher/queryoptimiser.h: Query::MatchAll no longer gives match
15704           results ranked by increasing document length.
15705         * tests/api_db.cc: Extend matchall1 to be a regression test for this.
15707 Tue Oct 07 01:04:51 GMT 2008  Olly Betts <olly@survex.com>
15709         * matcher/queryoptimiser.cc: Rewrite comment explaining the excess
15710           precision fix.  Drop unnecessary brackets from return to minimise
15711           the diff.
15713 Mon Oct 06 07:24:40 GMT 2008  Olly Betts <olly@survex.com>
15715         * matcher/queryoptimiser.cc: Change the excess precision fix to pass
15716           both values through "volatile double" rather than "float" on
15717           platforms where this matters since the former gives better generated
15718           code as well as more consistent results with other platforms.
15720 Mon Oct 06 07:24:07 GMT 2008  Olly Betts <olly@survex.com>
15722         * tests/internaltest.cc: Fix comment typo.
15724 Mon Oct 06 02:46:39 GMT 2008  Olly Betts <olly@survex.com>
15726         * api/editdistance.cc,api/editdistance.h,api/omdatabase.cc: Pass the
15727           largest edit distance we currently care about into the edit distance
15728           algorithm so it can terminate early once it knows the edit distance
15729           exceeds this.  This shortcut is used quite a lot, but there's no
15730           measurable speed-up in tests on the real world data I have to hand.
15732 Sun Oct 05 12:34:09 GMT 2008  Olly Betts <olly@survex.com>
15734         * matcher/multimatch.cc: Adjust percent_factor instead of min_weight
15735           so that we don't miss some cases, and make the adjustment actually
15736           correspond with the adjustment in omenquire.cc.
15738 Wed Oct 01 14:11:49 GMT 2008  Olly Betts <olly@survex.com>
15740         * backends/alltermslist.cc,common/alltermslist.h: We don't need an
15741           explicit virtual dtor for AllTermsList as it is empty and
15742           AllTermsList inherits from TermList which has one.
15744 Wed Oct 01 13:21:22 GMT 2008  Olly Betts <olly@survex.com>
15746         * common/postlist.h,common/termlist.h: Fix comment typo.
15748 Wed Oct 01 00:12:02 GMT 2008  Olly Betts <olly@survex.com>
15750         * bin/xapian-compact.cc: Add a comment for the previous fix.
15752 Tue Sep 30 22:41:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15754         * bin/xapian-compact.cc: Fix bug: if there are both valuestats and
15755           metadata, don't overwrite the last metadata value with the first
15756           valuestats tag.
15758 Tue Sep 30 20:31:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15760         * configure.ac: Set -Wstrict-overflow to 2 instead of 5, to avoid
15761           unreasonable warnings under GCC 4.3.
15763 Tue Sep 30 09:45:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15765         * api/omdatabase.cc: Add missing include, to compile on GCC 4.3.0.
15767 Mon Sep 29 13:06:42 GMT 2008  Olly Betts <olly@survex.com>
15769         * NEWS: Update from ChangeLog.
15771 Mon Sep 29 05:04:57 GMT 2008  Olly Betts <olly@survex.com>
15773         * backends/chert/chert_version.cc: Add VERSIONFILE_SIZE_LITERAL and
15774           use CompileTimeAssert() to ensure it matches the expression in
15775           VERSIONFILE_SIZE.  It's very rare for the size to change (it's
15776           happened once ever) and allows us to build the error string
15777           literally at compile time.
15779 Sun Sep 28 15:13:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15781         * backends/chert/chert_values.cc: Fix bug in lazy update - ensure
15782           that the document has loaded its values before deleting the old
15783           one (previously, there was an assertion to this effect, but it
15784           didn't actually compile, and was also incorrect).
15785         * tests/api_wrdb.cc: Check that replacing a document with itself
15786           doesn't lose the values - regression test for the bug fixed by
15787           this commit.
15789 Sun Sep 28 14:04:01 GMT 2008  Olly Betts <olly@survex.com>
15791         * backends/chert/chert_values.cc: Fix bug in value updating -
15792           modifyvalues1 now passes for chert.
15794 Sun Sep 28 12:15:14 GMT 2008  Olly Betts <olly@survex.com>
15796         * tests/collate-test: Avoid perl warning when generating files which
15797           don't already exist.
15799 Sat Sep 27 10:36:09 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15801         * tests/api_wrdb.cc: Add test "modifyvalues1" - regression test for
15802           a bug in the streaming values implementation, and also a fairly
15803           thorough test of adding and modifying values in databases.
15805 Fri Sep 26 19:12:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15807         * api/omdatabase.cc: Fix warning with gcc 4.2 about possible signed
15808           overflow, by using an unsigned type for the total.
15810 Fri Sep 26 15:48:39 GMT 2008  Olly Betts <olly@survex.com>
15812         * api/omdatabase.cc: Fixed version of: Avoid the relatively expensive
15813           edit distance computation for a candidate spelling correction when
15814           we can reject the candidate as less good than one we've already seen
15815           by looking at the character frequency histograms.  In a test on
15816           real-world data, this gave an 15% speed-up in queryparsing time
15817           with FLAG_SPELLING_CORRECTION set.  The cheap check rejects 90%
15818           of the words it handles (without the cheap check, the edit distance
15819           check rejects 92%).
15821 Fri Sep 26 14:40:50 GMT 2008  Olly Betts <olly@survex.com>
15823         * bin/xapian-check.cc: Check the structure of the value stream chunks.
15825 Fri Sep 26 12:21:32 GMT 2008  Olly Betts <olly@survex.com>
15827         * tests/api_spelling.cc: Add a regression test for the bug my recently
15828           added and reverted spelling optimisation introduced.
15830 Fri Sep 26 11:55:18 GMT 2008  Olly Betts <olly@survex.com>
15832         * tests/Makefile.am,tests/api_spelling.cc,tests/api_wrdb.cc: Split the
15833           spelling tests out into a separate file.
15835 Fri Sep 26 11:53:45 GMT 2008  Olly Betts <olly@survex.com>
15837         * tests/api_unicode.cc: Capitalise brief file description.
15839 Fri Sep 26 11:31:46 GMT 2008  Olly Betts <olly@survex.com>
15841         * backends/inmemory/inmemory_document.cc,
15842           backends/inmemory/inmemory_document.h: New simpler InMemoryDocument
15843           class with slightly reduced memory footprint, based on
15844           RemoteDocument class.
15846 Fri Sep 26 10:36:02 GMT 2008  Olly Betts <olly@survex.com>
15848         * backends/remote/remote-document.cc,backends/remote/remote-document.h,
15849           common/document.h: Add new files for RemoteDocument class missed
15850           from recent commit.  Pass parameter to set_all_values() by non-const
15851           reference so we can just efficiently swap() the value maps rather
15852           than copying.
15854 Fri Sep 26 10:31:21 GMT 2008  Olly Betts <olly@survex.com>
15856         * api/omdocument.cc,common/document.h: Remove unused method
15857           Xapian::Document::Index::get_all_values().
15859 Fri Sep 26 10:03:17 GMT 2008  Olly Betts <olly@survex.com>
15861         * backends/remote/,common/document.h: Replace NetDocument with a new
15862           simpler RemoteDocument class which just sets the values and data in
15863           its Document::Internal base class.
15865 Fri Sep 26 06:21:08 GMT 2008  Olly Betts <olly@survex.com>
15867         * backends/chert/chert_database.cc,backends/chert/chert_document.cc,
15868           backends/chert/chert_document.h,common/document.h: Overhaul
15869           ChertDocument:  Avoid having a reference-counted pointer to the
15870           database in the subclass as well as the one now in the base class.
15871           Also check the lazy flag before we create a ChertDocument object to
15872           avoid a memory allocation in that code path.  And make the
15873           now-simple constructor inline-able.
15875 Thu Sep 25 17:38:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15877         * Merge lazyupdate branch:
15878         * api/omdocument.cc,backends/chert/chert_database.cc,
15879           backends/chert/chert_database.h,backends/chert/chert_values.cc,
15880           backends/database.cc,common/database.h,common/document.h: Add a
15881           shortcut for calling replace_document() with a document which was
15882           just read from the database.  If the document terms were never
15883           accessed, don't bother updating the termlist, postings and
15884           position lists.  If the data was never accessed, don't bother
15885           updating the data.  If the values were never accessed, don't
15886           bother updating them.  Only fires if we know that the document
15887           hasn't been modified (or deleted) since it was read from the
15888           database, to ensure that the lazy access of the data doesn't have
15889           a visible effect - we enforce this by keeping track of the last
15890           document read with open_document(), and only using the shortcut
15891           if this is the document passed to replace_document, and that
15892           document ID hasn't been passed to replace_document or
15893           delete_document since.
15895           Add a method Database::Internal::invalidate_doc_object() which is
15896           called from the destructor of a document, so that we can reset
15897           the pointer to modify_shortcut_document in ChertWritableDatabase
15898           when this happens.
15900           Document::Internal now keeps a ref-count pointer to the database,
15901           to ensure that the database is valid when invalidate_doc_object()
15902           is called on it.
15904 Thu Sep 25 17:35:07 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15906         * Forward-port from branches/lazyupdate:
15907         * tests/api_wrdb.cc: Extend deldoc5 slightly, to check that the
15908           DocNotFoundError for a deleted document is raised before the
15909           flush, as well as after.  Also, test a few more cases which are
15910           relevant in the lazyupdate scenario.
15912 Thu Sep 25 17:33:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15914         * Forward-port from branches/lazyupdate:
15915         * backends/chert/chert_document.cc,backends/chert/chert_document.h:
15916           Check for existence of a document when opening it by searching
15917           for the document length entry, rather than by reading the record
15918           for the document.  Probably slightly slower if the record is
15919           going to be accessed anyway, but much faster if it isn't (though
15920           benchmarking of this is needed).
15922 Thu Sep 25 14:27:07 GMT 2008  Olly Betts <olly@survex.com>
15924         * Merge valuestreams branch:
15925         * backends/chert/,bin/xapian-check.cc,bin/xapian-compact.cc,
15926           docs/admin_notes.rst: Change the chert backend to store values in a
15927           chunked stream for each value slot to make access more efficient.
15928           The chunked streams and value stats are now stored in the postlist
15929           table while the list of used value slots for each document is stored
15930           in the termlist table, so we no longer need a special table for
15931           values.
15932         * bin/xapian-check.cc,bin/xapian-check-flint.cc:  Don't stop checking
15933           a table after an error in certain cases - instead increment the
15934           error counter and try to continue checking from the next item.
15936 Thu Sep 25 13:50:15 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15938         * matcher/queryoptimiser.cc,tests/api_anydb.cc: Apply fix for
15939           platforms with excess precision - this fixes a potential segfault
15940           on x86 architecture when doing OP_ELITE_SET queries.  Also, add a
15941           regression test.
15943 Thu Sep 25 03:38:24 GMT 2008  Olly Betts <olly@survex.com>
15945         * examples/copydatabase.cc: Also copy user metadata.
15947 Wed Sep 24 17:27:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15949         * api/omdatabase.cc: Back out, for now, Olly's change from
15950           yesterday to avoid some edit distance checks; counting the
15951           frequency of letters doesn't take into account the number of
15952           substitutions, so spelling corrections which involve
15953           substitutions are missed.
15955 Wed Sep 24 12:48:39 GMT 2008  Olly Betts <olly@survex.com>
15957         * unicode/tclUniData.cc: Update to Unicode 5.1 (bug#265).
15958         * tests/api_unicode.cc: Add tests for some of the changes
15959           in Unicode 5.1.
15961 Tue Sep 23 14:58:54 GMT 2008  Olly Betts <olly@survex.com>
15963         * api/omdatabase.cc: Avoid the relatively expensive edit distance
15964           computation for a candidate spelling correction when we can reject
15965           the candidate as less good than one we've already seen by looking
15966           at the character frequency histograms.
15968 Mon Sep 22 09:21:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15970         * Forward-port from branches/lazyupdate:
15971         * backends/chert/chert_postlist.cc: Fix return value of jump_to()
15972           to be true only if the exact item specified was found in the
15973           doclen list (previously also returned true if an item following
15974           the item being searched for was found in the chunk).  Note that
15975           there is no test for this fix included in this forward-port, but
15976           an implicit test is included in the lazyupdate branch, and will
15977           be here when that branch is merged to trunk.
15979 Mon Sep 22 07:58:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15981         * HACKING: Mention that setting XAPIAN_DEBUG_LOG to '-' has a
15982           special effect.
15984 Mon Sep 22 06:27:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15986         * docs/remote_protocol.html: Update documentation of remote
15987           protocol to mention UUID being passed in REPLY_GREETING and
15988           REPLY_UPDATE (added in revision [11369]).
15990 Thu Sep 18 11:52:05 GMT 2008  Olly Betts <olly@survex.com>
15992         * tests/api_wrdb.cc: Fix cursordelbug1 to hopefully work on Microsoft
15993           Windows.
15995 Thu Sep 18 11:50:04 GMT 2008  Olly Betts <olly@survex.com>
15997         * backends/chert/chert_cursor.cc,backends/chert/chert_table.cc,
15998           backends/chert/chert_table.h: More assertions and improved debug
15999           logging coverage.  Use rare() to mark a couple of checks which
16000           almost always have the same result.  Make an assertion about the
16001           level of a Btree block into an always-compiled-in check which throws
16002           an exception, as this isn't a sanity check of internal state.
16004 Thu Sep 18 05:26:27 GMT 2008  Olly Betts <olly@survex.com>
16006         * backends/chert/chert_postlist.cc,backends/flint/flint_postlist.cc:
16007           Fix comment describing format of postlist chunk (collection freq
16008           was missing).
16010 Wed Sep 17 12:38:51 GMT 2008  Olly Betts <olly@survex.com>
16012         * HACKING: Fix typos in XAPIAN_DEBUG_FLAGS documentation.
16014 Sat Sep 13 11:14:02 GMT 2008  Olly Betts <olly@survex.com>
16016         * HACKING,configure.ac: Upgrade libtool requirement to 2.2.6a.
16018 Fri Sep 05 11:40:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16020         * tests/api_replicate.cc: Test that the UUID of a replica is equal
16021           to the UUID of the original database.
16023 Fri Sep 05 09:38:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16025         * include/xapian/database.h,api/omdatabase.cc: Add
16026           Database.get_uuid() which returns a unique identifier for the
16027           database.
16028         * tests/api_anydb.cc: Add test uuid1 to test basic get_uuid()
16029           behaviour.
16030         * common/database.h: Extend documentation comment for get_uuid() a
16031           bit.
16032         * backends/remote/remote-database.cc,common/remote-database.h,
16033           net/remoteserver.cc: Add support for get_uuid() to remote
16034           databases.
16036 Thu Sep 04 11:37:54 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16038         * tests/Makefile.am: Remove accidentally committed reference to
16039           apitest_sortconsist.txt, which only exists in my local checkout
16040           and in a patch in ticket #216.
16042 Thu Sep 04 04:39:32 GMT 2008  Olly Betts <olly@survex.com>
16044         * HACKING,configure.ac: We now hard require autoconf 2.62, so it's
16045           safe to use AC_TYPE_SSIZE_T.  (bug#135)
16047 Thu Sep 04 04:26:59 GMT 2008  Olly Betts <olly@survex.com>
16049         * configure.ac: Set version to 1.1.0.
16051 Thu Sep 04 03:32:06 GMT 2008  Olly Betts <olly@survex.com>
16053         * AUTHORS,NEWS,configure.ac: Sync with 1.0.8.
16055 Wed Sep 03 15:23:54 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16057         * tests/Makefile.am,tests/api_percentages.cc: Add new test file for
16058           tests related to percentage weights (there are a few around which
16059           could be moved here, and there's another one in the patch in
16060           ticket #216).  Add test in this file which uses a PostingSource
16061           with carefully constructed weights to check the rounding
16062           behaviour for percentage cutoffs.
16064 Wed Sep 03 07:58:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16066         * matcher/multimatch.cc: Adjust min_weight values calculated for
16067           percent_cutoff in the same manner as in omenquire.cc, to allow
16068           for excess precision in the same way.
16070 Wed Sep 03 07:15:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16072         * backends/chert/chert_version.cc: Display numerical value of
16073           correct size of chert version file in error message if size is
16074           incorrect, rather than a complicated expression giving the
16075           correct size.
16077 Tue Sep 02 10:41:46 GMT 2008  Olly Betts <olly@survex.com>
16079         * matcher/multimatch.cc: Remove FIXME for pushing check_at_least
16080           handling into the remote backend, which was done for 1.0.2.
16082 Tue Sep 02 06:48:50 GMT 2008  Olly Betts <olly@survex.com>
16084         * bin/xapian-inspect.cc: Show the help message on start-up.  Correct
16085           the alias for next from ' ' to ''.  Avoid reading outside of input
16086           string when it is empty.  Bug#286.
16088 Tue Sep 02 04:19:34 GMT 2008  Olly Betts <olly@survex.com>
16090         * tests/stemtest.cc: Handle the new supplemental stemming data.
16092 Tue Sep 02 03:05:10 GMT 2008  Olly Betts <olly@survex.com>
16094         * tests/stemtest.cc: Update for new xapian-data directory structure.
16096 Tue Aug 26 09:26:49 GMT 2008  Olly Betts <olly@survex.com>
16098         * common/debuglog.h: Handle logging from ctor, dtor, and
16099           void-returning functions/methods with a separate class
16100           (DebugLogFuncVoid).  Fix outdent handling for non-logged message
16101           types.  Fix detection of active exceptions to check if the exception
16102           was already active when we entered the current function.  This
16103           probably means that "RETURN_VOID" is no longer needed, so comment
16104           it out.
16106 Tue Aug 26 07:34:16 GMT 2008  Olly Betts <olly@survex.com>
16108         * HACKING: Document explicitly that XAPIAN_DEBUG_FLAGS=- gives you all
16109           debug messages.
16111 Tue Aug 26 00:57:32 GMT 2008  Olly Betts <olly@survex.com>
16113         * bin/xapian-check.cc: Fix reversed check for whether a table is in a
16114           flint or chert database.
16116 Mon Aug 25 12:03:36 GMT 2008  Olly Betts <olly@survex.com>
16118         * backends/flint/flint_termlisttable.cc: Remove FIXME about dropping
16119           something if we make an incompatible database version bump - that's
16120           not going to happen now for flint.  Avoid packing doclen for an
16121           empty termlist.  Add explicit cast for char for prev_term.size().
16123 Sun Aug 24 11:42:21 GMT 2008  Olly Betts <olly@survex.com>
16125         * common/Makefile.mk: Fix build with --enable-log=profile.
16127 Sun Aug 24 12:41:22 BST 2008  Olly Betts <olly@survex.com>
16129         * HACKING: Add a bit of discussion of --enable-log=profile.  Tweak
16130           formatting in one place and wording in another.
16132 Sat Aug 23 00:48:40 GMT 2008  Olly Betts <olly@survex.com>
16134         * tests/collate-test: Only update files which have changed to avoid
16135           rebuilding all apitest's source files when only one has changed.
16137 Fri Aug 22 01:02:57 GMT 2008  Olly Betts <olly@survex.com>
16139         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5571"
16140           (no code changes in our modified version).
16142 Fri Aug 22 01:00:15 GMT 2008  Olly Betts <olly@survex.com>
16144         * queryparser/lemon.c: Fix comment typo.
16146 Fri Aug 22 00:55:26 GMT 2008  Olly Betts <olly@survex.com>
16148         * queryparser/lemon.c: Merge upstream "Check-in Number: 5564".
16150 Fri Aug 22 00:44:14 GMT 2008  Olly Betts <olly@survex.com>
16152         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
16153           "Check-in Number: 5488" and "5563".
16154         * queryparser/queryparser.lt: Fix compilation for previous merge
16155           (I fixed it in the generated file before!)
16157 Fri Aug 22 00:07:22 GMT 2008  Olly Betts <olly@survex.com>
16159         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5472".
16161 Thu Aug 21 04:15:41 GMT 2008  Olly Betts <olly@survex.com>
16163         * configure.ac: Remove code which checks for --enable-debug and
16164           --enable-debug-verbose (deprecated since 1.0.0) and gives an error
16165           pointing to the replacements.
16166         * docs/deprecation.rst: Document the replacements here.
16168 Thu Aug 21 00:57:52 GMT 2008  Olly Betts <olly@survex.com>
16170         * common/omdebug.h: Remove DEBUGLINE completely.
16171         * backends/flint/flint_table.cc,backends/inmemory/inmemory_database.cc,
16172           queryparser/queryparser.lt: Replace remaining DEBUGLINE uses.
16173         * backends/inmemory/inmemory_database.cc: Don't need <list>.
16175 Thu Aug 21 00:37:08 GMT 2008  Olly Betts <olly@survex.com>
16177         * common/debuglog.h,common/omdebug.h: Define LOGLINE, etc to no-op
16178           versions when XAPIAN_DEBUG_VERBOSE isn't defined.
16179         * api/,backends/chert/,backends/flint/,
16180           backends/inmemory/inmemory_database.cc,
16181           backends/multi/multi_postlist.cc,backends/multi/multi_termlist.cc,
16182           expand/esetinternal.cc,expand/expandweight.cc,matcher/,
16183           net/remoteconnection.cc: Use LOGLINE or LOGVALUE instead of
16184           DEBUGLINE.
16186 Wed Aug 20 13:33:56 GMT 2008  Olly Betts <olly@survex.com>
16188         * common/debuglog.h: Don't need omtime.h.
16190 Wed Aug 20 06:11:31 GMT 2008  Olly Betts <olly@survex.com>
16192         * examples/quest.cc: Fix to catch QueryParserError instead of const
16193           char * which Xapian < 1.0.0 threw instead.
16195 Wed Aug 20 05:50:26 GMT 2008  Olly Betts <olly@survex.com>
16197         * docs/valueranges.rst: Expand on some sections.
16199 Wed Aug 20 04:43:07 GMT 2008  Olly Betts <olly@survex.com>
16201         * tests/api_nodb.cc: Clarify in comments that this affected 1.0.7.
16203 Wed Aug 20 04:33:22 GMT 2008  Olly Betts <olly@survex.com>
16205         * api/omenquire.cc: Simplify RSet::remove_document() and
16206           RSet::contains() a little.  Fix output of RSet::get_description().
16207         * tests/api_nodb.cc: Add regression test rset4 for
16208           RSet::get_description() fix.
16210 Wed Aug 20 02:45:04 GMT 2008  Olly Betts <olly@survex.com>
16212         * common/omdebug.h: Remove DebugMsg() macro which is no longer used.
16214 Tue Aug 12 05:03:34 GMT 2008  Olly Betts <olly@survex.com>
16216         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
16217           Backport elimination of find_tag() to flint.
16219 Tue Aug 12 04:10:41 GMT 2008  Olly Betts <olly@survex.com>
16221         * backends/chert/chert_table.cc,backends/chert/chert_table.h:
16222           ChertTable::find_tag() is only used by ChertTable::get_exact_entry()
16223           so remove the former folding its code into the latter.
16225 Mon Aug 11 03:06:10 GMT 2008  Olly Betts <olly@survex.com>
16227         * backends/chert/chert_spelling.h,backends/chert/chert_synonym.h:
16228           Remove random closing bracket from a couple of comments.
16230 Mon Aug 11 03:03:19 GMT 2008  Olly Betts <olly@survex.com>
16232         * api/postingsource.cc: Always initialise max_value in the constructor
16233           body for consistency.
16235 Sat Aug 09 09:56:06 GMT 2008  Olly Betts <olly@survex.com>
16237         * tests/api_valuestats.cc: Add valuestats4 as a regression test for
16238           the previous fix.
16240 Sat Aug 09 06:10:49 GMT 2008  Olly Betts <olly@survex.com>
16242         * backends/chert/chert_database.cc,backends/chert/chert_database.h:
16243           Write cached valuestats changes to disk when we automatically flush
16244           changes due to the number of documents indexed.
16246 Wed Aug 06 11:27:29 GMT 2008  Olly Betts <olly@survex.com>
16248         * api/omdocument.cc,backends/chert/chert_document.cc,
16249           backends/chert/chert_document.h,backends/flint/flint_document.cc,
16250           backends/flint/flint_document.h,
16251           backends/inmemory/inmemory_document.cc,
16252           backends/inmemory/inmemory_document.h,
16253           backends/remote/net_document.cc,backends/remote/net_document.h,
16254           common/document.h: Change do_get_all_values() to pass a reference
16255           to the std::map to return the result in rather than returning the
16256           std::map.
16258 Wed Aug 06 07:39:08 GMT 2008  Olly Betts <olly@survex.com>
16260         * docs/replication.rst: Adding missing (C) for new section addded
16261           recently.
16263 Wed Aug 06 06:27:59 GMT 2008  Olly Betts <olly@survex.com>
16265         * backends/alltermslist.cc,backends/chert/,backends/flint/,
16266           backends/inmemory/inmemory_alltermslist.cc,
16267           backends/inmemory/inmemory_alltermslist.h,
16268           backends/multi/multi_alltermslist.cc,common/alltermslist.h,
16269           common/multialltermslist.h: Add a default "not implemented"
16270           implementation of AllTermsList::get_approx_size() and remove the
16271           "not implemented" versions in all the subclasses.  Remove empty
16272           destructors for ChertSpellingTermList, and FlintSpellingTermList.
16273         * api/maptermlist.h,api/omdocument.cc: MapTermList::get_approx_size()
16274           should never be used, so make it "Assert(false); return 0;".
16276 Wed Aug 06 02:24:48 GMT 2008  Olly Betts <olly@survex.com>
16278         * api/omdatabase.cc,backends/multi/multi_alltermslist.cc,
16279           common/multialltermslist.h: Reimplement MultiAllTermsList to use a
16280           heap rather than linearly scanning - operations during iteration
16281           should now be O(log(n)) rather than O(n) where n is the number of
16282           databases.
16284 Tue Aug 05 23:50:19 GMT 2008  Olly Betts <olly@survex.com>
16286         * tests/Makefile.am: Fix "make clean" to remove cached databases again
16287           and "make check" to remove cached databases like the previous change
16288           aimed to do.
16290 Tue Aug 05 23:48:52 GMT 2008  Olly Betts <olly@survex.com>
16292         * tests/api_db.cc: Use TEST_EQUAL(a, b) rather than TEST(a == b).
16294 Tue Aug 05 12:44:58 GMT 2008  Olly Betts <olly@survex.com>
16296         * common/alltermslist.h: Fix parameter name in doxygen comment.
16298 Tue Aug 05 06:28:15 GMT 2008  Olly Betts <olly@survex.com>
16300         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
16301           Don't generate a changeset file for the first revision of a database
16302           (since we might as well just send the whole database) - addresses
16303           part of bug#278.  Clean up exceptions to pass errno in the errno
16304           parameter rather than incorporating strerror(errno) in the message
16305           parameter.
16307 Tue Aug 05 06:00:11 GMT 2008  Olly Betts <olly@survex.com>
16309         * tests/api_replicate.cc: Remove "sleep(1);" from testcase replicate1
16310           which is no longer required now we generate proper UUIDs.
16312 Tue Aug 05 03:07:11 GMT 2008  Olly Betts <olly@survex.com>
16314         * api/replication.cc,include/xapian/replication.h: Remove
16315           DatabaseReplica::get_parameter() and set_parameter() as they're no
16316           longer used for storing the database UUID, and Richard said the
16317           thinking behind wanting them was "flawed".
16319 Tue Aug 05 02:03:24 GMT 2008  Olly Betts <olly@survex.com>
16321         * backends/chert/chert_version.cc: Comment tweak.
16323 Tue Aug 05 02:02:29 GMT 2008  Olly Betts <olly@survex.com>
16325         * api/replication.cc,backends/flint/flint_database.cc,common/utils.cc,
16326           common/utils.h: Use the UUID stored by the backend rather than
16327           storing it ourselves as a database replica parameter.
16329 Mon Aug 04 14:58:21 GMT 2008  Olly Betts <olly@survex.com>
16331         * backends/flint/flint_database.cc,backends/flint/flint_version.cc,
16332           backends/flint/flint_version.h: Generate a UUID when a new flint
16333           database is created, and lazily generate one for existing flint
16334           databases which don't have one.  Store the UUID in a new "uuid"
16335           file in the database directory to avoid having to change the
16336           flint database format incompatibly.
16338 Mon Aug 04 14:13:53 GMT 2008  Olly Betts <olly@survex.com>
16340         * backends/chert/chert_database.cc,backends/chert/chert_version.cc,
16341           backends/chert/chert_version.h,configure.ac: Generate a UUID when
16342           a chert database is created, and store it in the version file.
16344 Mon Aug 04 12:16:54 GMT 2008  Olly Betts <olly@survex.com>
16346         * backends/chert/chert_version.cc: Make exception messages more
16347           consistent.
16349 Mon Aug 04 12:15:14 GMT 2008  Olly Betts <olly@survex.com>
16351         * backends/chert/chert_database.cc,backends/chert/chert_version.cc,
16352           backends/chert/chert_version.h: Remove the code to handle upgrading
16353           flint versions >= 200704230 and < 200709120 as it's just dead code
16354           for chert.
16356 Sun Aug 03 14:34:31 GMT 2008  Olly Betts <olly@survex.com>
16358         * api/replication.cc: Track the replica numbers using an int rather
16359           than two strings.  Eliminate two racey uses of file_exists().
16361 Sun Aug 03 11:37:06 GMT 2008  Olly Betts <olly@survex.com>
16363         * docs/replication.rst: Add section on backend support.  Make FIXME a
16364           comment.  Fix erroneous reference to '"-h" parameter'.
16366 Sun Aug 03 11:28:27 GMT 2008  Olly Betts <olly@survex.com>
16368         * api/replication.cc,tests/harness/testrunner.cc: Make replication
16369           work for the chert backend.
16371 Sat Aug 02 16:47:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16373         * include/xapian/enquire.h: Correct documentation comment (iterator
16374           doesn't return terms, it returns mset items).
16376 Sat Aug 02 14:16:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16378         * docs/admin_notes.rst: Fix a typo.
16380 Sat Aug 02 14:06:37 GMT 2008  Olly Betts <olly@survex.com>
16382         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc:
16383           Fix comment typo in previous commit.
16385 Sat Aug 02 13:04:05 GMT 2008  Olly Betts <olly@survex.com>
16387         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc: Fix
16388           FlintCursor::del() and ChertCursor::del() to leave the cursor on the
16389           next key when iterating over the unflushed revision (previously the
16390           cursor would end up an extra key along in this case).  (Bug#287)
16391         * tests/api_wrdb.cc: Add regression test cursordelbug1.
16393 Sat Aug 02 05:09:38 GMT 2008  Olly Betts <olly@survex.com>
16395         * api/replication.cc,common/utils.cc,common/utils.h: Change
16396           removedir() to just return if passed a non-existent path and
16397           document this.  Make use of this to avoid having to call
16398           dir_exists() before remove_dir().
16400 Sat Aug 02 04:43:45 GMT 2008  Olly Betts <olly@survex.com>
16402         * tests/api_db.cc,tests/apitest.cc: Make use of new
16403           BackendManager::get_database_path() to eliminate knowledge of
16404           BackendManagerFlint's implementation from test stubdb1.  Put the
16405           stubdb files in a .stub subdirectory and don't remove them after
16406           each test to aid debugging failing tests.  Also now run stubdb tests
16407           under chert and multi backends.  Add more stubdb tests for the
16408           recently added features.
16410 Sat Aug 02 04:39:08 GMT 2008  Olly Betts <olly@survex.com>
16412         * tests/harness/: Adjust the BackendManager interface to reduce code
16413           duplication in subclasses - for backends where the concept of a
16414           path to the database makes sense, we now support a
16415           get_database_path() method and use this in the default
16416           implementation of get_database() in the base class.
16418 Sat Aug 02 04:36:48 GMT 2008  Olly Betts <olly@survex.com>
16420         * tests/apitest.h: Use std::string() in preference to "".
16422 Sat Aug 02 04:35:13 GMT 2008  Olly Betts <olly@survex.com>
16424         * backends/dbfactory.cc: Fix handling of new "inmemory" type in stub
16425           databases.
16427 Sat Aug 02 01:49:35 GMT 2008  Olly Betts <olly@survex.com>
16429         * tests/Makefile.am: Remove the cached test databases in before
16430           running the testsuite by making check-local do the same as
16431           clean-local.
16433 Sat Aug 02 01:42:36 GMT 2008  Olly Betts <olly@survex.com>
16435         * backends/dbfactory.cc: Add support for "inmemory" to stub database
16436           files (it's useful now they can be writable).  Don't just ignore
16437           lines with no spaces in in stub database files.
16439 Thu Jul 31 13:13:30 GMT 2008  Olly Betts <olly@survex.com>
16441         * backends/Makefile.mk,backends/database.cc,backends/dbfactory.cc,
16442           common/database.h,include/xapian/dbfactory.h: Add new
16443           Auto::open_stub() overload which opens a stub database file
16444           containing a single entry as a WritableDatabase.  Move the
16445           non-remote database factory API functions from backends/database.cc
16446           to new file backends/dbfactory.cc, leaving the former solely for
16447           methods of Database::Internal.  A stub database file is now allowed
16448           to contain no database entries, which results in an empty Database
16449           object (this avoids user code having to special case to handle "0 or
16450           more" databases).
16451         * tests/api_nodb.cc: Tidy up #include directives.  Enhance nosuchdb1
16452           to check that we get a reasonable error message - previously we
16453           got "Couldn't detect type of database".
16454         * include/xapian/dbfactory.h: Improve doxygen comment for
16455           InMemory::open().
16457 Thu Jul 31 09:36:41 GMT 2008  Olly Betts <olly@survex.com>
16459         * tests/api_replicate.cc: This is a new file, so use <cstdlib> rather
16460           than <stdlib.h>.
16462 Wed Jul 30 23:10:19 GMT 2008  Olly Betts <olly@survex.com>
16464         * backends/database.cc: Bad lines in a stub file were being ignored
16465           after we'd seen a good entry.
16466         * tests/api_db.cc: Add regression test.
16468 Wed Jul 30 14:42:04 GMT 2008  Olly Betts <olly@survex.com>
16470         * generate-exceptions.in: Use std::string() in preference to "".
16472 Tue Jul 29 23:55:21 GMT 2008  Olly Betts <olly@survex.com>
16474         * AUTHORS: Add Henrik Brix Andersen.
16476 Tue Jul 22 06:01:44 GMT 2008  Olly Betts <olly@survex.com>
16478         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
16479           Eliminate other_base_letter member of FlintTable - its value can
16480           always be easily determined from base_letter.
16482 Mon Jul 21 12:33:54 GMT 2008  Olly Betts <olly@survex.com>
16484         * xapian-config.in: Add bug report URL to xapian-config --help output.
16486 Mon Jul 21 11:55:18 GMT 2008  Olly Betts <olly@survex.com>
16488         * configure.ac: Put the bug report URL as the third parameter to
16489           AC_INIT.  Add proper m4 quoting in a few places (nowhere that
16490           should actually change behaviour).
16492 Mon Jul 21 01:03:12 GMT 2008  Olly Betts <olly@survex.com>
16494         * tests/apitest.cc,tests/harness/testsuite.cc,
16495           tests/harness/testsuite.h: Report subtotals per backend, rather than
16496           per testgroup per backend to make the output much clearer to scan.
16498 Mon Jul 21 00:36:07 GMT 2008  Olly Betts <olly@survex.com>
16500         * tests/apitest.cc: Use startswith().
16502 Sun Jul 20 14:16:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16504         * tests/harness/testsuite.h: Add missing "iomanip" header needed
16505           for setprecision calls.
16507 Sun Jul 20 11:35:35 GMT 2008  Olly Betts <olly@survex.com>
16509         * include/xapian/enquire.h,include/xapian/matchspy.h,
16510           include/xapian/valueiterator.h: Remove explicit empty non-virtual
16511           destructors since the compiler will create them by default anyway.
16513 Sun Jul 20 10:18:52 GMT 2008  Olly Betts <olly@survex.com>
16515         * NEWS: Update from ChangeLog.
16517 Sun Jul 20 10:09:36 GMT 2008  Olly Betts <olly@survex.com>
16519         * Forward-port change from branches/1.0:
16520         * api/omenquire.cc: Fix percentage calculation to cope with excess
16521           precision on x86.  Fix method name for convert_to_percent_internal
16522           in debug logging.
16524 Sun Jul 20 09:13:32 GMT 2008  Olly Betts <olly@survex.com>
16526         * backends/flint/,bin/xapian-check-flint.cc,bin/xapian-check-flint.h,
16527           bin/xapian-compact.cc: Store the tablename in FlintTable as a const
16528           char * - it's a constant string and std::string adds a needless
16529           space overhead.
16531 Sun Jul 20 09:10:49 GMT 2008  Olly Betts <olly@survex.com>
16533         * bin/xapian-check.cc: Follow-on fix for last change - we need to use
16534           strcmp() to compare C strings.
16536 Sun Jul 20 07:09:38 GMT 2008  Olly Betts <olly@survex.com>
16538         * backends/chert/,bin/xapian-check.cc: Store the tablename in
16539           ChertTable as a const char * - it's a constant string and
16540           std::string adds a needless space overhead.
16542 Sat Jul 19 14:19:58 GMT 2008  Olly Betts <olly@survex.com>
16544         * backends/chert/chert_database.cc,backends/chert/chert_values.cc,
16545           backends/chert/chert_values.h: Fix WritableDatabase::add_document()
16546           and replace_document() not to be O(n*n) in the number of values in
16547           the new document.
16548         * backends/flint/flint_database.cc,backends/flint/flint_values.cc,
16549           backends/flint/flint_values.h: Backport fix to flint.
16550         * tests/api_wrdb.cc: Add testcase bigoaddvalue to make sure we don't
16551           regress to O(n*n) (or worse!)
16553 Fri Jul 18 13:24:43 GMT 2008  Olly Betts <olly@survex.com>
16555         * tests/api_wrdb.cc: Rewrite lazytablebug1 testcase to avoid having
16556           to run xapian-compact.
16558 Fri Jul 18 11:59:42 GMT 2008  Olly Betts <olly@survex.com>
16560         * backends/chert/chert_table.cc: Fix handling of a table created
16561           lazily after the database has had commits, and which is then
16562           cursored while still in sequential mode.
16563         * backends/flint/flint_table.cc: Backport fix to flint.
16564         * tests/api_wrdb.cc: Add testcase lazytablebug1.
16566 Fri Jul 18 02:52:55 GMT 2008  Olly Betts <olly@survex.com>
16568         * tests/api_wrdb.cc: Enable test crashrecovery1 for chert.  Finish off
16569           unfinished comment.
16571 Fri Jul 18 02:38:22 GMT 2008  Olly Betts <olly@survex.com>
16573         * tests/api_wrdb.cc,tests/harness/testrunner.cc,
16574           tests/harness/testrunner.h: Add "synonyms" test backend property
16575           and use it to decide where to run synonym tests so they get run on
16576           chert too.  Move virtual TestRunner destructor out of the header.
16577           Don't skip all the spelling tests on chert.
16579 Fri Jul 18 00:56:17 GMT 2008  Olly Betts <olly@survex.com>
16581         * tests/api_wrdb.cc: Eliminate literal top-bit-set characters.
16583 Fri Jul 18 00:40:06 GMT 2008  Olly Betts <olly@survex.com>
16585         * backends/chert/chert_values.cc: Kill superfluous else tokens.
16587 Thu Jul 17 13:00:55 GMT 2008  Olly Betts <olly@survex.com>
16589         * backends/chert/chert_table.cc,backends/chert/chert_table.h:
16590           Eliminate other_base_letter member of ChertTable - its value can
16591           always be easily determined from base_letter.
16593 Thu Jul 17 12:24:19 GMT 2008  Olly Betts <olly@survex.com>
16595         * backends/chert/chert_database.cc: Add space after catch for
16596           consistency.
16598 Thu Jul 17 11:51:57 GMT 2008  Olly Betts <olly@survex.com>
16600         * examples/copydatabase.cc: Use C++ forms of C headers.  Only treat
16601           '\' as a directory separator on platforms where it is.  Update
16602           counter every 13 counting up to the end so that the digits all
16603           "rotate" and the counter ends up on the exact total.
16605 Wed Jul 16 10:10:32 GMT 2008  Olly Betts <olly@survex.com>
16607         * tests/perftest/perftest.cc: Use uname() or gethostname() to get the
16608           hostname on Unix, rather than piping output from uname -n.  Use
16609           startswith() where appropriate.  Prefer resize() and erase() to
16610           assigning a string a substring of itself.  Make internal functions
16611           static.  Prefer string() to "".  Fold sed | sed and grep | sed into
16612           single sed invocations.
16614 Wed Jul 16 05:16:00 GMT 2008  Olly Betts <olly@survex.com>
16616         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
16617           "Check-in Number: 5404" and "5405".
16619 Wed Jul 16 04:48:45 GMT 2008  Olly Betts <olly@survex.com>
16621         * NEWS: Sync with 1.0.7 release.  Start to clean up ChangeLog entry
16622           pile.
16624 Mon Jul 14 05:13:55 GMT 2008  Olly Betts <olly@survex.com>
16626         * queryparser/lemon.c: Fix a typo, remove "\n" from the end of
16627           ErrorMsg() calls since it will get stripped anyway, and escape
16628           literal '%' in ErrorMsg() third arguments.
16630 Sun Jul 13 13:04:58 GMT 2008  Olly Betts <olly@survex.com>
16632         * queryparser/lemon.c: Update note of upstream version we're synced
16633           against.
16635 Sun Jul 13 12:56:58 GMT 2008  Olly Betts <olly@survex.com>
16637         * queryparser/lemon.c: Tweak previous merged patch so that we still
16638           get #line directives for code in %include directives.
16640 Sun Jul 13 12:54:03 GMT 2008  Olly Betts <olly@survex.com>
16642         * queryparser/lemon.c: Merge upstream "Check-in Number: 5335".
16643           Reduces the size of the stripped object file for
16644           queryparser_internal.cc by about 0.5%.
16646 Sun Jul 13 12:32:06 GMT 2008  Olly Betts <olly@survex.com>
16648         * queryparser/lemon.c: Fix typo in comment.
16650 Sun Jul 13 12:30:38 GMT 2008  Olly Betts <olly@survex.com>
16652         * queryparser/lemon.c: Merge upstream "Check-in Number: 5334".  No
16653           change to the generated code in our case.
16655 Sun Jul 13 12:24:13 GMT 2008  Olly Betts <olly@survex.com>
16657         * configure.ac: Add missing hard requirement for libtool 2.2.4.
16659 Sun Jul 13 12:09:40 GMT 2008  Olly Betts <olly@survex.com>
16661         * configure.ac,HACKING: Hard require autoconf 2.62 and automake 1.10.1.
16662           Move all information about particular autoconf and automake versions
16663           to HACKING.
16664         * configure.ac: Use LT_INIT in preference to AC_PROG_LIBTOOL.  On
16665           Linux and k*bsd-gnu, override libtool's link_all_deplibs_CXX to
16666           "no".  On Linux, override libtool's sys_lib_dlsearch_path_spec to a
16667           list generated in a more reliable way which includes *all* the
16668           default directories.  Remove workaround which sets docdir for
16669           autoconf < 2.60 since we now require 2.62.
16670         * xapian-core.spec.in: We no longer need to run autoreconf to work
16671           around libtool's incomplete sys_lib_dlsearch_path_spec or to pick
16672           up distro-specific patches for link_all_deplibs.
16674 Sun Jul 13 11:33:33 GMT 2008  Olly Betts <olly@survex.com>
16676         * Makefile.am: No need to explicitly list m4/*.m4 in EXTRA_DIST as
16677           automake will automatically ship any such files which are needed.
16679 Sun Jul 13 09:15:34 GMT 2008  Olly Betts <olly@survex.com>
16681         * api/omenquire.cc: Back out the rounding of percentages change (at
16682           least for now), as it makes percentage cut-offs work inconsistently.
16683         * tests/api_anydb.cc: Add test pctcutoff3 which demonstrates the issue.
16685 Sun Jul 13 07:01:02 GMT 2008  Olly Betts <olly@survex.com>
16687         * include/xapian/enquire.h: Fix documentation comment for
16688           MSet::get_rank() - the 'document judged "most relevant" will have
16689           rank of 0' only when ordering primarily by relevance.
16691 Sun Jul 13 06:17:13 GMT 2008  Olly Betts <olly@survex.com>
16693         * matcher/multimatch.cc: Tweak layout (makes the backport diff
16694           much smaller and clearer, and reduces indentation by a level for a
16695           chunk of code).
16697 Fri Jul 11 13:44:56 GMT 2008  Olly Betts <olly@survex.com>
16699         * tests/harness/testutils.cc: Fix typos in recent improved output.
16701 Fri Jul 11 13:04:41 GMT 2008  Olly Betts <olly@survex.com>
16703         * matcher/multimatch.cc: Collect up all the scaling factors we apply
16704           to the estimated number of matches and apply them in one go to avoid
16705           rounding the result more than once.
16707 Fri Jul 11 12:21:11 GMT 2008  Olly Betts <olly@survex.com>
16709         * tests/api_anydb.cc: Add testcase for percent cutoff plus collapsing
16710           which most likely would have failed before Richard's recent fix
16711           for the lower bound with collapsing and a matchdecider.
16713 Fri Jul 11 05:30:02 GMT 2008  Olly Betts <olly@survex.com>
16715         * backends/database.cc: Add support for XAPIAN_PREFER_CHERT
16716           environmental variable.
16718 Thu Jul 10 22:21:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16720         * api/postingsource.cc: Fix skip_to() so that it doesn't advance if
16721           it's already in a suitable position.
16722         * include/xapian/postingsource.h: Specify that skip_to() should
16723           stay in the same position if the current position is equal to
16724           the docid argument of skip_to().
16725         * tests/api_db.cc: Add valueweightsource3 to check that skip_to()
16726           stays in the same position in this case.
16728 Thu Jul 10 13:14:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16730         * api/postingsource.cc: Performance improvement - open documents
16731           lazily (using the internal interface) so that we don't access
16732           the record table for each one - we now just access the value
16733           table.  Leads to considerable speed up for me (of the order of 5
16734           times faster).
16736 Thu Jul 10 09:49:39 GMT 2008  Olly Betts <olly@survex.com>
16738         * HACKING: Overhaul the sections on building from SVN.  Remove ':'
16739           from the end of headings.
16741 Wed Jul 09 10:43:01 GMT 2008  Olly Betts <olly@survex.com>
16743         * configure.ac: The workaround to avoid probe code for F77, GCJ, and
16744           RC being added to configure is no longer required now that we're
16745           using libtool 2.2 so remove it.
16747 Wed Jul 09 09:40:43 GMT 2008  Olly Betts <olly@survex.com>
16749         * Makefile.am,acinclude.m4,autoconf/dir_contents,
16750           autoconf/rjb_find_stlport.m4,autoconf/type_socklen_t.m4,
16751           m4/dir_contents,m4/rjb_find_stlport.m4,m4/type_socklen_t.m4: Move
16752           the m4 macros which we ship for building configure from into the m4
16753           subdirectory and remove acinclude.m4 - now aclocal will pull in the
16754           required macros automatically.
16756 Wed Jul 09 09:14:31 GMT 2008  Olly Betts <olly@survex.com>
16758         * Makefile.am: Update for m4 -> m4-macros change.
16760 Wed Jul 09 09:11:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16762         * matcher/externalpostlist.cc: Fix segfault if get_maxweight() is
16763           called when the postlist has reached end.  This happens if the
16764           end is reached during decay of an AND_MAYBE postlist to an AND.
16765         * common/postlist.h,matcher/: Add comments documenting that
16766           recalc_maxweight() may be called after the postlist has reached
16767           the end, and noting why this is safe in various cases.
16769 Wed Jul 09 09:02:08 GMT 2008  Olly Betts <olly@survex.com>
16771         * m4-macros/dir_contents,m4-macros/xapian.m4,m4/dir_contents,
16772           m4/xapian.m4: Move xapain.m4 to a new subdirectory (m4-macros) since
16773           libtoolize now installs m4 files into subdirectory m4 which we don't
16774           really want picking up by applications building against an
16775           uninstalled xapian-core.
16777 Wed Jul 09 08:03:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16779         * Makefile.am,m4/dir_contents,xapian.m4: Move xapian.m4 back into
16780           the m4 subdirectory.  For uninstalled builds, we need xapian.m4
16781           to be in a directory without any other .m4 files, or we'll be
16782           likely to pull in the wrong versions of other macros.  The top
16783           level directory contains aclocal.m4 and acinclude.m4, so isn't
16784           suitable for this.  Also, the xapian-bindings and omega
16785           compilations hadn't been updated with the new xapian.m4 location,
16786           so this fixes the build for them.
16788 Wed Jul 09 07:17:38 GMT 2008  Olly Betts <olly@survex.com>
16790         * Makefile.am,configure.ac: Use AC_CONFIG_MACRO_DIR and
16791           ACLOCAL_AMFLAGS as libtoolize 2.2.4 recommends.
16793 Wed Jul 09 06:37:21 GMT 2008  Olly Betts <olly@survex.com>
16795         * acinclude.m4: Remove reference to definedir.m4.
16797 Wed Jul 09 05:32:24 GMT 2008  Olly Betts <olly@survex.com>
16799         * Makefile.am,m4/dir_contents,m4/xapian.m4,xapian.m4: Move xapian.m4
16800           to the top level rather than devoting a whole directory to a single
16801           file.
16803 Wed Jul 09 05:23:02 GMT 2008  Olly Betts <olly@survex.com>
16805         * Makefile.am,autoconf/definedir.m4,configure.ac: AC_DEFINE_DIR()
16806           hasn't been used for years so remove it.
16808 Wed Jul 09 02:32:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16810         * api/postingsource.cc,include/xapian/postingsource.h: Add an
16811           alternative constructor for ValueWeightPostingSource which allows
16812           the upper bound on the weights stored to be specified manually.
16813           This is useful for database formats like flint which don't have
16814           an upper bound available.  It could conceivably also be useful if
16815           you know that a query will only be accessing a subset of
16816           documents for which you know a more precise upper bound than the
16817           database-wide upper bound.
16819 Wed Jul 09 01:59:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16821         * matcher/externalpostlist.cc: Add DEBUGCALL macros to enable
16822           easier debugging.
16824 Mon Jul 07 12:40:20 GMT 2008  Olly Betts <olly@survex.com>
16826         * HACKING,NEWS: Update to reflect the autotools now being in the SVN
16827           tree, and the versions we are now bootstrapping with.
16828         * NEWS: Update from ChangeLog.
16830 Sun Jul 06 22:59:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16832         * matcher/multimatch.cc,matcher/remotesubmatch.cc,
16833           matcher/remotesubmatch.h: Apply patch from ticker #279 to improve
16834           performance of matches with multiple remote databases.  This adds
16835           a special case for the top match being from a remote database, to
16836           avoid accessing the termlist to calculate the percentage scaling
16837           factor.
16839 Sun Jul 06 22:55:17 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16841         * api/omenquire.cc: When calculating percentages, round to the
16842           nearest integer, rather than rounding down.  There was a FIXME
16843           about this, but no explanation of why it hadn't already been
16844           done, and I can see no bad side effects so far.  The most obvious
16845           positive effect is that queries which should get precisely 100%
16846           will no longer be assigned 99% due to rounding errors.
16848 Sun Jul 06 22:48:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16850         * tests/api_anydb.cc: Add new test, topercent2, checking the
16851           percentage values returned by standard searches, both against
16852           known current values for some of the hits, and against a search
16853           with a "local" backend.  Also, in rsetmultidb1, test the return
16854           value of mset_range_is_same_weights().
16855         * tests/api_db.cc: In rsetmultidb2, test the return value of
16856           mset_range_is_same_weights().
16858 Sun Jul 06 22:46:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16860         * tests/harness/testutils.cc,tests/harness/testutils.h: Add
16861           function to test if two mset ranges have the same percentages,
16862           and slightly improve the messages on failure of the mset range
16863           comparison tests.
16865 Fri Jul 04 23:31:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16867         * NEWS: Swap two words to make a sentence make sense.
16869 Fri Jul 04 11:40:13 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16871         * matcher/multimatch.cc: Fix calculation of lower bound when
16872           collapsing and match deciders are used.  (Only tended to manifest
16873           when the collapsing threw away a lot of documents, and when also
16874           using a custom sort order, but I don't think that was required.)
16875           Also, perform the adjustments due to percentage cutoffs after the
16876           other adjustments, to avoid the lower bound setting for
16877           collapsing overriding the lower bound from the percentage cutoff.
16878         * tests/harness/index_utils.cc: Add a value to value slot 12, which
16879           only has 5 different values, for testing this bug.
16880         * tests/api_db.cc: Add regression test for calculation of the lower
16881           bound.
16883 Fri Jul 04 10:24:16 GMT 2008  Olly Betts <olly@survex.com>
16885         * Makefile.am,bin/Makefile.mk,examples/Makefile.mk: Remove
16886           extra_cleandirs as automake 1.10.1 fixes the bug which it was working
16887           around.
16889 Fri Jul 04 04:36:59 GMT 2008  Olly Betts <olly@survex.com>
16891         * HACKING: Synchronise tiny change from branches/1.0 which isn't
16892           on trunk for some reason.
16894 Fri Jul 04 04:35:19 GMT 2008  Olly Betts <olly@survex.com>
16896         * HACKING: Bootstrap with newer versions of the autotools:
16897           + autoconf 2.61 -> 2.62: faster
16898           + automake 1.10 -> 1.10.1: "make clean" cleans all .libs
16899             directories.
16900           + libtool 1.5.24 -> 2.2.4: many improvements; faster.
16902 Thu Jul 03 03:17:42 GMT 2008  Olly Betts <olly@survex.com>
16904         * docs/glossary.rst,docs/intro_ir.html: Improve intro_ir a bit, and
16905           link to the definition of RSet in the glossary.
16907 Thu Jul 03 01:30:56 GMT 2008  Olly Betts <olly@survex.com>
16909         * examples/quest.cc: Output get_description() of the parsed query.
16911 Sun Jun 29 18:56:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16913         * matcher/multimatch.cc: Rename percent_factor variable, used here
16914           as part of the percent_cutoff mechanism, to make its purpose
16915           clearer, and to avoid confusing it with percent_scale in this
16916           file, and percent_factor used elsewhere in matcher/.
16918 Sat Jun 28 21:51:42 GMT 2008  Olly Betts <olly@survex.com>
16920         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Disable
16921           "JAVADOC_AUTOBRIEF" since we always try to write a brief
16922           description explicitly, and it causes problems in some cases.
16924 Sat Jun 28 21:32:21 GMT 2008  Olly Betts <olly@survex.com>
16926         * common/: Fix typos in doxygen comments.
16928 Sat Jun 28 10:33:06 GMT 2008  Olly Betts <olly@survex.com>
16930         * languages/stem.cc: Add "nl" for selecting the Dutch stemmer, which
16931           was accidentally missing from the list of language codes recognised.
16932           Reported by Joey Hess in Debian bug #484458.
16933         * tests/api_nodb.cc: Extend stemlangs1 to check that all the language
16934           codes work, and so does Stem("").
16936 Fri Jun 27 00:27:31 GMT 2008  Olly Betts <olly@survex.com>
16938         * NEWS: Update from ChangeLog and against 1.0 branch.
16940 Thu Jun 26 17:17:41 GMT 2008  Olly Betts <olly@survex.com>
16942         * net/remoteconnection.cc: The "already done" check in do_close() is
16943           no longer useful, so remove it.  Shrink the try block to only cover
16944           the call to send_message().
16946 Thu Jun 26 08:19:41 GMT 2008  Olly Betts <olly@survex.com>
16948         * net/remoteconnection.cc: Don't bother to send MSG_SHUTDOWN for a
16949           read-only Database - just closing the connection is enough.
16951 Thu Jun 26 04:49:06 GMT 2008  Olly Betts <olly@survex.com>
16953         * backends/chert/chert_btreebase.cc: Don't need <string.h> as well as
16954           <cstring>.
16955         * backends/flint/flint_btreebase.cc,bin/xapian-replicate-server.cc:
16956           Prefer <cXXX> to <XXX.h>.
16958 Tue Jun 24 04:31:10 GMT 2008  Olly Betts <olly@survex.com>
16960         * tests/harness/testsuite.cc: Use resize() to truncate a string.
16962 Tue Jun 24 04:23:59 GMT 2008  Olly Betts <olly@survex.com>
16964         * net/remoteconnection.cc: Fill in a guess at the __WIN32__ version of
16965           the code needed in RemoteConnection::do_close().
16967 Tue Jun 24 04:06:02 GMT 2008  Olly Betts <olly@survex.com>
16969         * net/progclient.cc: Fix debug logging for __WIN32__.
16971 Tue Jun 24 03:11:09 GMT 2008  Olly Betts <olly@survex.com>
16973         * net/remoteserver.cc: Just delete the Database * pointer db.  The
16974           Database dtor is virtual, so it's fine to delete a WritableDatabase
16975           via a Database * pointer.
16977 Tue Jun 24 01:29:12 GMT 2008  Olly Betts <olly@survex.com>
16979         * backends/remote/remote-database.cc,common/remoteconnection.h,
16980           net/remoteconnection.cc,net/replicatetcpclient.cc: Wait for the
16981           connection to close rather than using a different shutdown message
16982           which requires a reply.  Mostly this is more backport-friendly, but
16983           it also avoids a message reply (albeit it not in a performance
16984           sensitive situation).  Needs implementing for __WIN32__.
16986 Tue Jun 24 01:07:16 GMT 2008  Olly Betts <olly@survex.com>
16988         * net/remoteserver.cc: Unwrap comment.
16990 Tue Jun 24 00:52:02 GMT 2008  Olly Betts <olly@survex.com>
16992         * net/remoteserver.cc: Kill a blank line.
16994 Tue Jun 24 00:49:50 GMT 2008  Olly Betts <olly@survex.com>
16996         * backends/remote/remote-database.cc,common/remoteconnection.h,
16997           common/remoteprotocol.h,docs/remote_protocol.html,
16998           net/remoteconnection.cc,net/remoteserver.cc,
16999           net/replicatetcpclient.cc: Revert r10713 in preparation for applying
17000           an alternative fix.
17002 Mon Jun 23 21:51:42 GMT 2008  Olly Betts <olly@survex.com>
17004         * HACKING: Expand list of keywords for brace cuddling.  Add rationale.
17006 Mon Jun 23 01:53:03 GMT 2008  Olly Betts <olly@survex.com>
17008         * tests/queryparsertest.cc: Cuddle braces after for loops for
17009           consistency with the rest of the code.  Use string::resize() to
17010           shrink a string rather than assigning the result of substr(0, x).
17011         * HACKING: Explicitly document that braces should be cuddled after
17012           control flow structures.
17014 Mon Jun 23 01:34:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17016         * tests/perftest/perftest_matchdecider.cc: Reworked performance
17017           test to include a test of an alldocspostingiterator, and to only
17018           rebuild the database involved if it's not up-to-date.
17020 Mon Jun 23 01:20:25 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17022         * common/valuestats.h: Add missing #include.
17024 Mon Jun 23 01:10:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17026         * bin/xapian-compact.cc: Add support for the valuestats which are
17027           now held in the value table for chert.
17029 Sun Jun 22 23:44:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17031         * backends/chert/: Change ChertAllDocsPostList to inherit from
17032           ChertPostList and use the doclen list from the posting table
17033           rather than using the termlist table.  This helps towards making
17034           the termlist table optional, reduces the amount of data read in
17035           the process of iterating through an alldocs postlist, and can
17036           make a massive difference in performance: I've measured the time
17037           to iterate through all the documents in a 1000000 document
17038           database, and the patch speeds this operation up by a factor of
17039           6.
17041           Add `keep_reference` parameter to the ChertPostList constructor,
17042           instead of not keeping a reference if the term is empty.
17043           ChertAllDocsPostList uses this to keep a reference to the
17044           database while using an empty term.
17046           Add ChertAllDocsModifiedPostList class, inspired by
17047           ChertModifiedPostList, (with corresponding new source files) to
17048           handle alldocs postlist with modifications: this wasn't needed
17049           before since the termlist is updated immediately after changes.
17051 Sun Jun 22 21:37:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17053         * tests/harness/: Add "name" parameter to
17054           BackendManager::get_writable_database_as_database(), and
17055           BackendManager::get_writable_database_again(), (and subclasses)
17056           so that old databases can be revived.  Useful for the performance
17057           tests.
17059 Sun Jun 22 09:30:44 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17061         * tests/api_anydb.cc: Expand tests for alldocspostlist, covering
17062           iteration of modified databases.
17064 Fri Jun 20 08:28:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17066         * backends/remote/remote-database.cc,common/remoteconnection.h,
17067           common/remoteprotocol.h,docs/remote_protocol.html,
17068           net/remoteconnection.cc,net/remoteserver.cc,
17069           net/replicatetcpclient.cc: Add new message
17070           "MSG_SHUTDOWNANDCONFIRM" which causes a reply of
17071           "REPLY_SHUTDOWNCONFIRMATION" to be sent after the database has
17072           been closed.  Use this message when closing a writable database,
17073           to ensure that the destructor doesn't return until the lock on
17074           the database has been released.
17076 Tue Jun 17 14:28:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17078         * tests/perftest/freemem.cc,tests/perftest/perftest.cc: Patches
17079           from Charlie to allow perftest to compile on windows.
17081 Tue Jun 17 13:23:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17083         * backends/chert/chert_btreebase.cc,backends/chert/chert_lock.cc,
17084           backends/flint/flint_btreebase.cc,backends/flint/flint_lock.cc,
17085           bin/xapian-replicate-server.cc: Add some missing includes, needed
17086           for GCC 4.3.
17088 Tue Jun 17 11:00:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17090         * tests/perftest/get_machine_info.in: Updates to hopefully get
17091           useful version information on windows.
17093 Mon Jun 16 12:13:48 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17095         * tests/harness/testsuite.cc: Don't call backendmanager->posttest()
17096           if no backendmanager is in use.
17098 Sun Jun 15 02:19:03 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17100         * tests/harness/: Wait for subprocesses to finish at end of tests,
17101           with remotetcp backend, to avoid test failures due to final flush
17102           of a subprocess writing to the database used for the next test.
17104 Thu Jun 12 09:09:44 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17106         * common/unaligned.h: Add some casts to make GCC 4.3.0 happy.
17108 Thu Jun 12 09:06:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17110         * backends/chert/chert_btreebase.cc: Add missing #include (needed
17111           for compilation with GCC 4.3.0).
17113 Tue Jun 10 17:38:07 GMT 2008  Olly Betts <olly@survex.com>
17115         * tests/harness/testrunner.cc: Use startswith().  Fix memory leak.
17117 Fri Jun 06 11:02:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17119         * Makefile.am,tests/Makefile.am: Fix make check-* targets to match
17120           the current set of backends.  Add .multichert and .multiflint to
17121           the clean-local hook in tests/.  Leave .multi there for now, to
17122           clean up existing .multi directories in the automated build trees.
17124 Fri Jun 06 08:26:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17126         * common/Makefile.mk: Add valuestats.h to distribution.
17128 Thu Jun 05 23:37:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17130         * backends/chert/chert_values.cc: Fix compile error in assertion in
17131           recently added code for calculating value statistics.
17133 Thu Jun 05 21:38:01 GMT 2008  Olly Betts <olly@survex.com>
17135         * queryparser/queryparser.lemony: Use std::vector<Term *> rather than
17136           std::list<Term *> so that size() is O(1) with any (sane) compiler
17137           and because a list of pointers isn't space efficient (and we don't
17138           need to splice here).  Factor out common code in if branches in
17139           TermGroup::as_group().
17141 Thu Jun 05 17:04:23 GMT 2008  Olly Betts <olly@survex.com>
17143         * queryparser/queryparser.lemony: Use "startswith()" to avoid creating
17144           a new string object.
17146 Thu Jun 05 09:09:54 GMT 2008  Olly Betts <olly@survex.com>
17148         * queryparser/queryparser.lemony: Remove variable which is set but
17149           never otherwise used.
17151 Thu Jun 05 09:08:22 GMT 2008  Olly Betts <olly@survex.com>
17153         * api/omqueryinternal.cc: Don't call find() twice - reuse the result
17154           we just got.  Use AssertEq() rather than Assert() on an equality
17155           test.  Clarify a comment.
17157 Wed Jun 04 21:32:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17159         * queryparser/queryparser.lemony: Fix more O(N*N) scaling, this
17160           time in the way in which auto multiword synonyms are detected.
17161           Instead of trying all possible sub-sequences of terms for
17162           synonyms, use synonym_keys and the skip_to() method to check for
17163           synonyms which actually exist in the synonyms table.
17164         * tests/queryparsertest.cc: Extend the scaling test to check this
17165           case.
17167 Wed Jun 04 12:42:32 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17169         * queryparser/queryparser.lemony: Fix various cases where queries
17170           were constructed pair-wise within a loop, which leads to O(N*N)
17171           scaling behaviour (because each intermediate query construction
17172           is O(M) where M is the size of that query, and there are N of
17173           them).
17174         * tests/queryparsertest.cc: Add test to check that parsing of a
17175           query scales roughly linearly with query size.
17176         * common/omtime.h: Add method to get an OmTime as a double - used
17177           by the new query parser test.
17179 Wed Jun 04 12:18:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17181         * tests/harness/testsuite.h: Fix TEST_LESSER_OR_EQUAL and
17182           TEST_LESSER macros to compare in the right direction (these
17183           macros are, so far, unused).
17185 Mon Jun 02 18:19:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17187         * api/postingsource.cc: Make ValueWeightPostingSource use value
17188           statistics, if they're available, to return accurate term
17189           frequency statistics, and a better maxweight.
17190         * tests/api_db.cc: Add valueweightsource2, to test the bounds and
17191           maxweight returned by a ValueWeightPostingSource for backends
17192           with valuestats support.  Replace !multi condition in
17193           valueweightsource1 with a SKIP_TEST_FOR_BACKEND invocation, since
17194           this is a shortcoming we should fix at some point.
17196 Mon Jun 02 18:16:52 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17198         * tests/harness/testrunner.cc,tests/harness/testrunner.h: Replace
17199           DO_TESTS_FOR_BACKEND macro with a do_tests_for_backend method;
17200           the method version takes a BackendManager * and gets the backend
17201           name from that, rather than requiring it to be specified.
17202           Requires addition of a couple of extra private members to the
17203           TestRunner class.
17205 Mon Jun 02 10:27:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17207         * include/xapian/database.h: Add get_value_freq(),
17208           get_value_lower_bound() and get_value_upper_bound() methods to
17209           Database, to get statistics about the values stored in a slot.
17210         * api/omdatabase.cc,backends/chert/,backends/database.cc,
17211           backends/inmemory/inmemory_database.cc,
17212           backends/inmemory/inmemory_database.h,
17213           backends/remote/remote-database.cc,common/,
17214           net/remoteserver.cc: Add support for the value statistics methods
17215           to chert, inmemory, multi and remote databases.
17216         * tests/Makefile.am,tests/api_valuestats.cc,
17217           tests/harness/testrunner.cc,tests/harness/testrunner.h: Add test
17218           of the value statistics code, and a "valuestats" backend property
17219           to select only backends supporting this.
17221 Mon Jun 02 10:26:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17223         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
17224           Move implementation of get_dbtype() method out of header.
17226 Mon Jun 02 09:44:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17228         * rests/harness/: Make flint and chert subtypes for the remote and
17229           multi backend types.  These are specified (on the command line
17230           and elsewhere) by the main type (multi, remotetcp or remoteprog),
17231           followed by an underscore, followed by the subtype (flint or
17232           chert).  Change return type of BackendManager::get_dbtype() to a
17233           string instead of a const char *, to allow backend managers which
17234           have subtypes to generate the result dynamically.
17235         * tests/harness/backendmanager_remote.cc,
17236           tests/harness/backendmanager_remote.h,
17237           tests/harness/backendmanager_remoteprog.cc,
17238           tests/harness/backendmanager_remoteprog.h,
17239           tests/harness/backendmanager_remotetcp.cc,
17240           tests/harness/backendmanager_remotetcp.h: Add new
17241           BackendManagerRemote class as a common base for the two remote
17242           backend managers, and move duplicated code into it.  Add
17243           parameter to its constructor, and to the constructors of the
17244           remote backend manager subclasses, to control the type of
17245           database to use at the remote end.
17246         * tests/harness/backendmanager_multi.cc,
17247           tests/harness/backendmanager_multi.h: Add parameter to
17248           constructor of BackendManagerMulti, controlling the type of
17249           database to use for sub databases.  Put the generated database
17250           files in ".multiflint" and ".multichert" instead of ".multi".
17251         * tests/harness/testrunner.cc: Update list of backend properties to
17252           contain the new subtypes.  Modify use_backend() to allow either
17253           the full backend type, or just the main part of the backend type,
17254           to be specified, so that, for example "-b multi" will run both
17255           the multi_chert and multi_flint tests.  Add test runs for all the
17256           subtypes now supported.  Catch string exceptions thrown by the
17257           test runner - these can currently occur when neither flint or
17258           chert are compiled in.
17259         * tests/apitest.cc,tests/apitest.h: Adjust return type of
17260           get_dbtype(), implement skip_test_*_backend functions which just
17261           check the prefix of the type, and implement SKIP_TEST_*_BACKEND
17262           macros using these.
17263         * tests/api_anydb.cc: Modify check for running on a multi backend
17264           to copy with getting a string back from get_dbtype().
17266 Sat May 31 00:55:03 GMT 2008  Olly Betts <olly@survex.com>
17268         * tests/Makefile.am,tests/perftest/Makefile.mk: Remove unnecessary
17269           quotes.
17271 Thu May 29 16:04:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17273         * tests/perftest/: Update svn:ignore property for perftest changes.
17275 Thu May 29 14:33:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17277         * tests/perftest/perftest.cc: Include the xapian version string in
17278           the test output.  For runs from SVN, also include the subversion
17279           revision number and branch in the output.
17281 Wed May 28 21:47:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17283         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
17284           matcher/valuerangepostlist.h: Apply patch from ticket #270 to
17285           implement ValueRangePostList::next() by using an alldocs posting
17286           list, instead of trying docids in turn.  This is much more
17287           efficient if document IDs are sparse.  Since both methods require
17288           accessing the termlist table to check for the next document, and
17289           some cursory performance tests don't show a measurable difference
17290           in speed, I think this approach is at least safe, and probably
17291           superior.
17293 Wed May 28 21:28:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17295         * tests/perftest/perftest.cc: Log the flush threshold for indexing
17296           runs.
17297         * tests/perftest/perftest_randomidx.cc: Set the run size back to a
17298           reasonably large value.
17300 Wed May 28 20:48:10 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17302         * configure.ac,tests/,tests/perftest/,tests/perftest_matchdecider.cc,
17303           tests/perftest_randomidx.cc: Move performance test source files
17304           into a subdirectory.  Modify output of performance tests to
17305           include some basic system information, and also to include
17306           details of the parameters used to perform indexing tests.
17308 Wed May 28 20:42:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17310         * HACKING: Fix numbering in checklist for developers so that it
17311           doesn't repeat section 5.
17313 Sun May 25 14:21:40 GMT 2008  Olly Betts <olly@survex.com>
17315         * NEWS: Update to match 1.0 branch.
17317 Sun May 25 00:24:09 GMT 2008  Olly Betts <olly@survex.com>
17319         * NEWS: Start to update from ChangeLog, stripping out backported
17320           changes.
17322 Sat May 24 16:38:49 GMT 2008  Olly Betts <olly@survex.com>
17324         * NEWS,configure.ac: Update to match 1.0 branch.
17326 Sat May 24 16:33:19 GMT 2008  Olly Betts <olly@survex.com>
17328         * tests/termgentest.cc: Pass Xapian::Document by const reference.
17330 Sat May 24 14:30:59 GMT 2008  Olly Betts <olly@survex.com>
17332         * bin/xapian-compact.cc: Only warn about duplicate user metadata keys
17333           if the tags aren't the same.
17335 Sat May 24 12:14:55 GMT 2008  Olly Betts <olly@survex.com>
17337         * bin/Makefile.am: Put special -I options in foo_CPPFLAGS not
17338           foo_CXXFLAGS.  As well as being the more correct place, this also
17339           means that AM_CXXFLAGS is now used when compiling xapian-check and
17340           xapian-compact, which in particular enables compiler warnings.
17341         * bin/xapian-check.cc,bin/xapian-compact.cc,bin/xapian-check-flint.cc:
17342           Fix warnings (one unused variable and a few cases of a variable
17343           masking another with the same name - none problematic in practice).
17345 Fri May 23 09:22:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17347         * backends/inmemory/inmemory_database.cc: Fix bug in inmemory
17348           database, which resulted in the values not being stored correctly
17349           if document IDs were sparse.
17350         * matcher/valuerangepostlist.cc: Fix the next() method not to
17351           return document IDs which aren't present in the database - this
17352           used to happen if the document IDs were sparse.
17353         * tests/api_anydb.cc: Add "valuerange2", a regression test for
17354           OP_VALUE_LE returning document IDs which aren't present in the
17355           database, and "alldocspl1", which does a generic test of an
17356           alldocs postlist in a sparse database (this passed before the
17357           above changes, but might as well be added anyway).
17359 Wed May 21 19:33:12 GMT 2008  Olly Betts <olly@survex.com>
17361         * docs/Makefile.am: test == isn't portable - use test = instead.
17363 Wed May 21 13:22:23 GMT 2008  Olly Betts <olly@survex.com>
17365         * HACKING: Fix path for atreus.
17367 Wed May 21 13:21:08 GMT 2008  Olly Betts <olly@survex.com>
17369         * HACKING: Fix search&replace error - the CVS module is still called
17370           www.xapian.org.
17372 Wed May 21 13:16:39 GMT 2008  Olly Betts <olly@survex.com>
17374         * HACKING: Reword, since environmental variable PATH isn't "set by
17375           $PATH".
17377 Wed May 21 13:16:21 GMT 2008  Olly Betts <olly@survex.com>
17379         * HACKING: ixion -> atreus.
17381 Wed May 21 13:12:07 GMT 2008  Olly Betts <olly@survex.com>
17383         * include/xapian/database.h: Improve documentation comment.
17385 Sun May 18 05:20:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17387         * docs/remote_protocol.html: Remove spurious "i" at end of line.
17389 Sat May 17 11:53:54 GMT 2008  Olly Betts <olly@survex.com>
17391         * tests/harness/testutils.h: Layout and macro parameter name tweaks.
17393 Fri May 16 20:42:05 GMT 2008  Olly Betts <olly@survex.com>
17395         * bin/xapian-compact.cc: Check that all source databases are the same
17396           type (flint or chert).  Copy over "iamchert" for chert.  Update
17397           terminology - the "meta file" is now called the "version file".
17399 Fri May 16 17:33:22 GMT 2008  Olly Betts <olly@survex.com>
17401         * backends/chert/chert_database.cc,backends/chert/chert_version.cc:
17402           Need <cstdio> for rename().
17404 Fri May 16 17:27:56 GMT 2008  Olly Betts <olly@survex.com>
17406         * backends/chert/chert_database.cc: Correct FIXME comment and mark
17407           as "FIXME:1.2.0".
17409 Fri May 16 17:21:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17411         * tests/harness/testrunner.cc,tests/harness/testrunner.h: Add
17412           condition to test if the backend is "inmemory".
17413         * tests/perftest_randomidx.cc: Change the run size from 1000
17414           documents to 1000000.  Disable this test for the inmemory
17415           backend, because it will quickly use up all the memory on the
17416           machine.
17418 Fri May 16 16:56:25 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17420         * HACKING: Add note about some more PDF generation tools which are
17421           needed, and that doxygen requires them to be on PATH.
17423 Fri May 16 16:38:40 GMT 2008  Olly Betts <olly@survex.com>
17425         * HACKING: Ubuntu now needs tetex-extra too.
17427 Fri May 16 10:05:30 GMT 2008  Olly Betts <olly@survex.com>
17429         * bin/xapian-compact.cc: Fix to not reject chert databases during the
17430           "up front" check.
17432 Thu May 15 20:20:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17434         * net/progclient.cc: Set namespace for close methods (to avoid
17435           conflicting with the close method I'm working on adding to
17436           database internal).
17438 Wed May 14 17:14:53 GMT 2008  Olly Betts <olly@survex.com>
17440         * backends/database.cc: Default to flint not chert for a new database.
17442 Wed May 14 17:11:56 GMT 2008  Olly Betts <olly@survex.com>
17444         * api/postingsource.cc,docs/postingsource.rst,
17445           include/xapian/postingsource.h,matcher/externalpostlist.cc:
17446           PostingSource::check() now returns the valid flag rather than
17447           passing it in by reference to be set.  Change "should" to "must"
17448           for the get_termfreq_est() requirement at Richard's suggestion.
17449           Add parameter names to PostingSource method prototypes and update
17450           documentation comments to match.
17452 Wed May 14 15:34:38 GMT 2008  Olly Betts <olly@survex.com>
17454         * docs/Makefile.am,docs/index.html,docs/postingsource.rst: Add
17455           topic document for PostingSource.
17457 Mon May 12 17:27:13 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17459         * include/xapian/postingsource.h: Add documentation comments for
17460           ValueWeightPostingSource, and tweak
17461           PostingSource::get_maxweight() comment a bit more.
17463 Mon May 12 16:51:01 GMT 2008  Olly Betts <olly@survex.com>
17465         * include/xapian/postingsource.h: Clarify get_maxweight() if the
17466           maximum from now on.
17468 Mon May 12 06:51:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17470         * api/postingsource.cc,include/xapian/postingsource.h,tests/api_db.cc,
17471           tests/harness/index_utils.cc: Add ValueWeightPostingSource, which
17472           reads a value, applies sortable_unserialise() to it, and returns
17473           that as the weight for each document.
17475 Sun May 11 23:49:07 GMT 2008  Olly Betts <olly@survex.com>
17477         * queryparser/lemon.c,queryparser/queryparser.lt: Do a final sync by
17478           comparing our versions to the latest vanilla upstream.  Add a note
17479           to each file of the latest revision sync-ed against.
17480         * queryparser/lemon.c: Enable '#define PRIVATE static'.
17482 Sun May 11 22:48:27 GMT 2008  Olly Betts <olly@survex.com>
17484         * NEWS: Add a note of the speed-up that the recent QueryParser changes
17485           have given.
17487 Sun May 11 22:10:19 GMT 2008  Olly Betts <olly@survex.com>
17489         * queryparser/lemon.c: Merge upstream "Check-in Number: 5053".
17491 Sun May 11 22:01:48 GMT 2008  Olly Betts <olly@survex.com>
17493         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5052".
17495 Sun May 11 21:56:03 GMT 2008  Olly Betts <olly@survex.com>
17497         * queryparser/queryparser.lt: Fix a comment typo.
17499 Sun May 11 21:52:30 GMT 2008  Olly Betts <olly@survex.com>
17501         * queryparser/lemon.c: Merge upstream "Check-in Number: 4751".
17503 Sun May 11 21:51:18 GMT 2008  Olly Betts <olly@survex.com>
17505         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 4745".
17507 Sun May 11 21:47:03 GMT 2008  Olly Betts <olly@survex.com>
17509         * queryparser/queryparser.lt: Comment out memset() call added by
17510           one of the earlier merged upstream changes - a later comment on
17511           the ticket referred to notes that this was actually a bug in the
17512           grammar of the people who reported it.
17514 Sun May 11 21:44:46 GMT 2008  Olly Betts <olly@survex.com>
17516         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 4743".
17518 Sun May 11 21:41:55 GMT 2008  Olly Betts <olly@survex.com>
17520         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 4738".
17522 Sun May 11 21:33:13 GMT 2008  Olly Betts <olly@survex.com>
17524         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17525           "Check-in Number: 4736".
17526         * queryparser/lemon.c: Add %syntax_error directive since lemon has
17527           changed it's error recovery strategy if you don't have one.
17529 Sun May 11 20:54:31 GMT 2008  Olly Betts <olly@survex.com>
17531         * queryparser/queryparser.lemony: If we hit a syntax error, don't
17532           bother feeding further tokens to the parser!
17534 Sat May 10 21:42:44 GMT 2008  Olly Betts <olly@survex.com>
17536         * queryparser/lemon.c: Merge upstream "Check-in Number: 4641".
17538 Sat May 10 21:33:10 GMT 2008  Olly Betts <olly@survex.com>
17540         * queryparser/lemon.c: Merge upstream "Check-in Number: 4473".
17542 Sat May 10 21:31:25 GMT 2008  Olly Betts <olly@survex.com>
17544         * queryparser/lemon.c: Merge upstream "Check-in Number: 4439".
17546 Sat May 10 21:28:27 GMT 2008  Olly Betts <olly@survex.com>
17548         * queryparser/lemon.c: Merge upstream "Check-in Number: 4274".
17550 Sat May 10 21:25:35 GMT 2008  Olly Betts <olly@survex.com>
17552         * queryparser/lemon.c: Merge upstream "Check-in Number: 4190".
17554 Sat May 10 21:20:16 GMT 2008  Olly Betts <olly@survex.com>
17556         * queryparser/lemon.c: Merge upstream "Check-in Number: 4160".
17558 Sat May 10 21:07:15 GMT 2008  Olly Betts <olly@survex.com>
17560         * queryparser/lemon.c: Merge upstream "Check-in Number: 3753".
17562 Sat May 10 21:03:19 GMT 2008  Olly Betts <olly@survex.com>
17564         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17565           "Check-in Number: 3738".
17567 Sat May 10 20:00:09 GMT 2008  Olly Betts <olly@survex.com>
17569         * queryparser/lemon.c: Merge upstream "Check-in Number: 3654".
17571 Sat May 10 19:55:32 GMT 2008  Olly Betts <olly@survex.com>
17573         * queryparser/lemon.c: Merge upstream "Check-in Number: 3594".
17575 Sat May 10 19:46:05 GMT 2008  Olly Betts <olly@survex.com>
17577         * queryparser/lemon.c: Merge upstream "Check-in Number: 3593".
17579 Sat May 10 19:44:15 GMT 2008  Olly Betts <olly@survex.com>
17581         * queryparser/lemon.c: Merge upstream "Check-in Number: 3591".
17583 Sat May 10 19:40:12 GMT 2008  Olly Betts <olly@survex.com>
17585         * queryparser/lemon.c: Merge upstream "Check-in Number: 3528".
17587 Sat May 10 19:38:36 GMT 2008  Olly Betts <olly@survex.com>
17589         * queryparser/lemon.c: Merge upstream "Check-in Number: 3476".
17591 Sat May 10 19:36:06 GMT 2008  Olly Betts <olly@survex.com>
17593         * queryparser/lemon.c: Merge upstream "Check-in Number: 3333".
17595 Sat May 10 19:33:33 GMT 2008  Olly Betts <olly@survex.com>
17597         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 3244".
17599 Sat May 10 19:29:18 GMT 2008  Olly Betts <olly@survex.com>
17601         * queryparser/lemon.c: Merge upstream "Check-in Number: 3226".
17603 Sat May 10 19:19:48 GMT 2008  Olly Betts <olly@survex.com>
17605         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 3224".
17607 Sat May 10 19:14:18 GMT 2008  Olly Betts <olly@survex.com>
17609         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17610           "Check-in Number: 3210".
17612 Sat May 10 18:56:50 GMT 2008  Olly Betts <olly@survex.com>
17614         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 3181".
17616 Sat May 10 17:05:35 GMT 2008  Olly Betts <olly@survex.com>
17618         * queryparser/lemon.c: Merge upstream "Check-in Number: 3126".
17620 Sat May 10 16:51:31 GMT 2008  Olly Betts <olly@survex.com>
17622         * queryparser/lemon.c: Merge upstream "Check-in Number: 2764".
17624 Sat May 10 16:40:48 GMT 2008  Olly Betts <olly@survex.com>
17626         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17627           "Check-in Number: 2761".
17629 Sat May 10 16:32:45 GMT 2008  Olly Betts <olly@survex.com>
17631         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 2458".
17633 Sat May 10 16:29:55 GMT 2008  Olly Betts <olly@survex.com>
17635         * queryparser/lemon.c: Merge upstream "Check-in Number: 2345".
17637 Sat May 10 16:08:28 GMT 2008  Olly Betts <olly@survex.com>
17639         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 2302".
17641 Sat May 10 15:50:23 GMT 2008  Olly Betts <olly@survex.com>
17643         * queryparser/lemon.c: Merge upstream "Check-in Number: 2208".
17645 Sat May 10 15:03:59 GMT 2008  Olly Betts <olly@survex.com>
17647         * tests/harness/testsuite.cc: Prefer `str.assign(ptr)' to `str =
17648           string(ptr)'.
17650 Sat May 10 14:48:38 GMT 2008  Olly Betts <olly@survex.com>
17652         * api/matchspy.cc,api/replication.cc: Prefer `str.assign(ptr, len)' to
17653           `str = string(ptr, len)'.
17655 Fri May 09 16:53:19 GMT 2008  Olly Betts <olly@survex.com>
17657         * net/remoteserver.cc: No entries in dispatch[] are NULL, so there's
17658           no point testing for it.
17660 Fri May 09 16:51:10 GMT 2008  Olly Betts <olly@survex.com>
17662         * net/remoteconnection.cc: Remove pointless conversion to size_t which
17663           breaks GCC 2.95 build.
17665 Fri May 09 16:22:46 GMT 2008  Olly Betts <olly@survex.com>
17667         * api/replication.cc: Needs <cstdio> for rename().
17669 Fri May 09 15:41:08 GMT 2008  Olly Betts <olly@survex.com>
17671         * tests/harness/testutils.cc: No need for an explicit std::endl when
17672           calling TEST_AND_EXPLAIN().
17674 Fri May 09 15:38:22 GMT 2008  Olly Betts <olly@survex.com>
17676         * api/replication.cc: Use '\n' rather than endl in the middle of
17677           writing stuff, since endl forces a flush which just adds useless
17678           overhead.
17680 Fri May 09 15:24:42 GMT 2008  Olly Betts <olly@survex.com>
17682         * common/omdebug.h: Fix RETURN macro to work on GCC 2.95 for the case
17683           `RETURN(string())'.
17685 Fri May 09 08:33:35 GMT 2008  Olly Betts <olly@survex.com>
17687         * include/xapian/postingsource.h: Add a protected default ctor so that
17688           code subclassing PostingSource actually compiles!
17690 Thu May 08 16:41:59 GMT 2008  Olly Betts <olly@survex.com>
17692         * include/xapian/postingsource.h: Add doxygen comments for
17693           Xapian::PostingSource.  Add private assignment operator and
17694           copy constructor to prevent copying.
17696 Thu May 08 16:40:49 GMT 2008  Olly Betts <olly@survex.com>
17698         * common/postlist.h: Fix one doxygen comment and improve another.
17700 Mon May 05 15:22:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17702         * tests/Makefile.am: Clean up .chert in clean-local.
17704 Mon May 05 14:52:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17706         * docs/Makefile.am: Adapt the dist-check hook to work with a VPATH
17707           build in non-maintainer mode.
17709 Mon May 05 13:18:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17711         * docs/Makefile.am: Fix "make distcheck" by using dist-hook to
17712           install generated files, with the appropriate dependency, instead
17713           of wildcards in EXTRA_DIST which don't give the correct expansion
17714           unless the files happened to be generated already by another
17715           rule. Also, ensure that the documentation is generated before
17716           attempting to install it.
17718 Sun May 04 09:30:53 GMT 2008  Olly Betts <olly@survex.com>
17720         * backends/chert/chert_version.cc,backends/flint/flint_version.cc,
17721           common/stringutils.h: Move CONST_STRLEN() into stringutils.h.
17722         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
17723           Use CONST_STRLEN().
17725 Sat May 03 18:56:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17727         * api/omenquire.cc: Reset the internal sorter pointer to NULL when
17728           changing to a sort by value. Fixes #256.
17729         * tests/api_sorting.cc: Add regression test.
17731 Sat May 03 18:52:27 GMT 2008  Olly Betts <olly@survex.com>
17733         * include/xapian/unicode.h: Mark internal functions as @internal.
17735 Sat May 03 18:43:12 GMT 2008  Olly Betts <olly@survex.com>
17737         * docs/doxygen_api_conf.in: Disable header and directory relationship
17738           graphs in the API documentation as they aren't interesting to users.
17740 Sat May 03 18:12:30 GMT 2008  Olly Betts <olly@survex.com>
17742         * docs/gen_codestructure_doc.in: Link to trac instead of viewvc.
17744 Sat May 03 17:25:02 GMT 2008  Olly Betts <olly@survex.com>
17746         * docs/replication_protocol.rst: Fix a few typos.
17748 Sat May 03 15:53:24 GMT 2008  Olly Betts <olly@survex.com>
17750         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
17751           If Database::reopen() is called and the database revision on disk
17752           hasn't changed, then do as little work as possible.  Even if it
17753           has changed, don't bother to recheck the version file (bug#261).
17755 Sat May 03 10:28:30 GMT 2008  Olly Betts <olly@survex.com>
17757         * configure.ac: Improve code to prevent probing for f77, etc.
17759 Sat May 03 10:17:05 GMT 2008  Olly Betts <olly@survex.com>
17761         * matcher/rset.cc: Missing change from last commit.
17763 Sat May 03 09:25:29 GMT 2008  Olly Betts <olly@survex.com>
17765         * api/omenquire.cc,common/,expand/Makefile.mk,expand/esetinternal.cc,
17766           expand/expand.cc: Rewrite class ESet::Internal, incorporating the
17767           functionality which used to be in the internal OmExpand class.  The
17768           expand operation now uses a min heap rather than calling
17769           nth_element() repeatedly - this should reduce the complexity of the
17770           expand operation by a factor of n/log(n) where n is the requested
17771           ESet size.
17773 Fri May 02 15:51:29 GMT 2008  Olly Betts <olly@survex.com>
17775         * common/ortermlist.h,expand/ortermlist.cc: Kill FreqAdderOrTermList's
17776           explicit empty dtor.
17778 Thu May 01 16:38:40 GMT 2008  Olly Betts <olly@survex.com>
17780         * api/omqueryinternal.cc,api/replication.cc,backends/chert/,
17781           backends/flint/,backends/inmemory/inmemory_positionlist.cc,
17782           common/utils.cc,matcher/stats.cc,tests/perftest_matchdecider.cc,
17783           tests/perftest_randomidx.cc: Assorted formatting tweaks.
17785 Thu May 01 16:32:58 GMT 2008  Olly Betts <olly@survex.com>
17787         * common/unaligned.h: Fix ";;" to ";" after AssertRel calls.
17789 Thu May 01 16:12:05 GMT 2008  Olly Betts <olly@survex.com>
17791         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Tell doxygen to
17792           expand XAPIAN_VISIBILITY_DEFAULT so it doesn't appear in collated
17793           API documentation.
17795 Wed Apr 30 10:57:53 GMT 2008  Olly Betts <olly@survex.com>
17797         * HACKING: Update bugzilla references and URLs to reflect the move
17798           to trac.  Update the "fixing a bug" checklist to mention backporting
17799           and updating the release notes.
17801 Wed Apr 30 10:40:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17803         * backends/remote/remote-database.cc: Fix error message displayed
17804           when remote protocol version doesn't match to display the minor
17805           part of the version number supplied by the server correctly.
17807 Tue Apr 29 17:37:10 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17809         * AUTHORS: Add Alexandre Gauthier, for supplying a method for doing
17810           python packaging for Windows.
17812 Tue Apr 29 16:20:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17814         * common/fileutils.cc: Fix variable name for windows compilation.
17816 Tue Apr 29 06:50:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17818         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
17819           Remove some debugging code, left over from writing the
17820           replication code.
17822 Mon Apr 28 12:11:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17824         * backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc,
17825           backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc:
17826           Fix issue #259 - update the last_block value whenever allocating
17827           a new value, so that next_for_sequential doesn't give up too
17828           early.  Also, in both next_for_sequential and
17829           prev_for_sequential, for writable databases, check the built-in
17830           cursor at all levels for the new block rather than just reading
17831           from disk, since newly allocated blocks won't have been written
17832           to disk yet.  Also, test the return type of next() when reading
17833           subsequent parts of tags, and raise DatabaseCorruptError if it
17834           returns false; this prevents incorrect data being returned,
17835           leading to a zlib error.
17836         * tests/api_wrdb.cc: Add regression test.
17838 Fri Apr 25 08:39:28 GMT 2008  Olly Betts <olly@survex.com>
17840         * api/postingsource.cc: Missed change from last but one commit.
17842 Thu Apr 24 13:44:48 GMT 2008  Olly Betts <olly@survex.com>
17844         * matcher/queryoptimiser.cc: Reserve size of postlists vector.
17846 Thu Apr 24 13:38:51 GMT 2008  Olly Betts <olly@survex.com>
17848         * include/xapian/postingsource.h,matcher/externalpostlist.cc,
17849           matcher/externalpostlist.h,tests/api_db.cc: Add a default
17850           PostingSource::get_description() method so users who don't care
17851           aren't forced to define one.  Make PostingSource::reset() a standard
17852           method and call it automatically so that a PostingSource-using
17853           Query can be run more than once without extra work.
17855 Thu Apr 24 11:24:30 GMT 2008  Olly Betts <olly@survex.com>
17857         * matcher/queryoptimiser.cc: Don't need <queue>.
17859 Thu Apr 24 04:50:43 GMT 2008  Olly Betts <olly@survex.com>
17861         * tests/api_db.cc: Add test that boolean branches of matches don't
17862           cause Xapian::PostingSource to be asked for weights.
17864 Thu Apr 24 03:27:39 GMT 2008  Olly Betts <olly@survex.com>
17866         * matcher/externalpostlist.cc,matcher/externalpostlist.h,
17867           matcher/queryoptimiser.cc: ExternalPostList now takes the
17868           factor into account, so works with OP_SCALE_WEIGHT, and
17869           doesn't call get_weight()/get_maxweight() for a boolean
17870           branch.
17871         * tests/api_db.cc: Add tests for OP_SCALE_WEIGHT.
17873 Thu Apr 24 02:16:08 GMT 2008  Olly Betts <olly@survex.com>
17875         * xapian-config.in: Back out --swigheaders.
17877 Wed Apr 23 11:37:45 GMT 2008  Olly Betts <olly@survex.com>
17879         * matcher/externalpostlist.h: Need to initialise current.
17881 Wed Apr 23 07:57:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17883         * tests/termgentest.cc: Put the inclusion of "utils.h" back; needed
17884           for om_tostring().
17886 Wed Apr 23 04:20:55 GMT 2008  Olly Betts <olly@survex.com>
17888         * include/xapian/replication.h: Eliminate reference to FlintDatabase
17889           from doc comment since it's not user-visible, and chert supports
17890           replication too.  No need for '#include <xapian/database.h>' so
17891           remove.  Remove references to non-existent parameter 'remotename'.
17892           'DatabaseCorrupt error' -> 'DatabaseCorruptError'.
17894 Wed Apr 23 04:19:53 GMT 2008  Olly Betts <olly@survex.com>
17896         * include/xapian/query.h: Wrap Xapian::Query::Internal class
17897           definition in "#ifndef SWIG" ... "#endif" in preparation for getting
17898           SWIG to directly parse it.
17900 Wed Apr 23 02:16:53 GMT 2008  Olly Betts <olly@survex.com>
17902         * api/omquery.cc: Prefer string() to "".
17904 Wed Apr 23 02:16:10 GMT 2008  Olly Betts <olly@survex.com>
17906         * include/xapian/query.h: Fix doc comment typo (doesn't affect API
17907           docs).
17909 Wed Apr 23 00:59:40 GMT 2008  Olly Betts <olly@survex.com>
17911         * api/postingsource.cc: Another missing file.
17913 Wed Apr 23 00:34:34 GMT 2008  Olly Betts <olly@survex.com>
17915         * include/xapian/postingsource.h: New file missing from previous
17916           commit.
17918 Wed Apr 23 00:30:34 GMT 2008  Olly Betts <olly@survex.com>
17920         * api/Makefile.mk,api/omquery.cc,api/omqueryinternal.cc,
17921           include/Makefile.mk,include/xapian.h,include/xapian/query.h,matcher/,
17922           tests/api_db.cc: Add support for Xapian::PostingSource.
17924 Wed Apr 23 00:21:25 GMT 2008  Olly Betts <olly@survex.com>
17926         * include/xapian.h: Fix misplaced comment.  Tweak doxygen comments for
17927           version functions to be more consistent with others.
17929 Wed Apr 23 00:16:14 GMT 2008  Olly Betts <olly@survex.com>
17931         * matcher/queryoptimiser.cc: Remove bogus comment from cut-and-paste.
17933 Wed Apr 23 00:14:30 GMT 2008  Olly Betts <olly@survex.com>
17935         * common/omassert.h: Add AssertEqDoubleParanoid().
17936         * matcher/multimatch.cc: Use it instead of home-brewed version.
17938 Tue Apr 22 23:30:50 GMT 2008  Olly Betts <olly@survex.com>
17940         * common/utils.h: Stop exporting internal functions needlessly.
17942 Tue Apr 22 12:53:55 GMT 2008  Olly Betts <olly@survex.com>
17944         * bin/xapian-compact.cc: Fix to work again (broken by the splitting of
17945           FlintTable::commit() into flush_db() and commit() in the replication
17946           changes).  Don't bother passing tablename to functions where it
17947           always has the same value.  Tweak the user-metadata copying loop to
17948           make it clearer.  Reserve the right size for the vector used for
17949           merging spellings.
17951 Tue Apr 22 12:28:17 GMT 2008  Olly Betts <olly@survex.com>
17953         * backends/chert/chert_table.h,backends/flint/flint_table.h,
17954           bin/xapian-compact.cc: Default commit's changes_fd parameter to -1.
17956 Tue Apr 22 11:39:10 GMT 2008  Olly Betts <olly@survex.com>
17958         * common/omassert.h: Fix comment typo.
17960 Tue Apr 22 10:54:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17962         * tests/queryparsertest.cc: Add "utils.h" back - needed for
17963           om_tostring() and mkdir().
17965 Mon Apr 21 07:48:45 GMT 2008  Olly Betts <olly@survex.com>
17967         * tests/api_db.cc: Don't need <list>.  Wrap comment.
17969 Mon Apr 21 07:04:12 GMT 2008  Olly Betts <olly@survex.com>
17971         * api/omqueryinternal.cc,backends/chert/chert_check.cc,
17972           backends/flint/flint_check.cc,tests/: Remove various needless
17973           inclusions of headers (especially <iostream>).  Reorder headers.
17974           Wrap a couple of comments.  Append single characters to strings
17975           using character constants.
17977 Mon Apr 21 06:26:49 GMT 2008  Olly Betts <olly@survex.com>
17979         * api/Makefile.mk,api/valuerangeproccompat.cc,
17980           include/xapian/queryparser.h: Remove the
17981           v102::NumberValueRangeProcessor ABI-preserving machinery since it's
17982           OK to change the ABI for 1.1.0.
17984 Mon Apr 21 04:42:52 GMT 2008  Olly Betts <olly@survex.com>
17986         * api/,queryparser/queryparser.cc: Remove debug log tracing from
17987           get_description() methods since the debug log call tracing *calls*
17988           get_description() methods on parameters, so logging these calls just
17989           makes for more confusing debug logs.  A get_description() method
17990           should have no side-effects so it's not very interesting even when
17991           explicitly called by the user.
17992         * common/omdebug.h: Replace "OM_DEBUG_INTRO" class with dummy
17993           placeholder (to preserve numbering), to help prevent accidentally
17994           adding these back.
17996 Sun Apr 20 09:46:11 GMT 2008  Olly Betts <olly@survex.com>
17998         * api/omqueryinternal.cc,common/: Stop describing get_description() as
17999           an "Introspection method" internal (matching earlier change to stop
18000           doing so externally).  This doesn't help to explain what it does,
18001           and get_description() doesn't actually fall under any of the formal
18002           definitions of "introspection" I can find.
18004 Fri Apr 18 10:26:18 GMT 2008  Olly Betts <olly@survex.com>
18006         * backends/chert/chert_metadata.cc: Fix renamed parameter in debug
18007           logging.
18009 Fri Apr 18 10:18:35 GMT 2008  Olly Betts <olly@survex.com>
18011         * HACKING,INSTALL,Makefile.am,backends/Makefile.mk,backends/chert/,
18012           backends/database.cc,backends/flint/,backends/remote/net_postlist.cc,
18013           backends/remote/net_postlist.h,bin/,common/,configure.ac,docs/,
18014           include/xapian/dbfactory.h,include/xapian/version_h.cc,
18015           net/remoteserver.cc,tests/Makefile.am,tests/harness/: Start new
18016           development backend "chert".  Currently the change over flint is
18017           that in the postlist table, doclengths are stored once in a
18018           chunked postlist-like form, rather than once per posting.
18020 Tue Apr 15 23:24:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18022         * api/omenquire.cc,tests/api_nodb.cc: Fix segfault introduced by
18023           previous change when asking for the termfreq on an empty mset.
18024           Include a regression test.
18026 Tue Apr 15 06:02:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18028         * include/xapian/enquire.h: Change definition of MSet::get_termfreq
18029           such that it will fall back to looking the term frequency up in
18030           the database rather than raising an exception if the term is not
18031           present in the mset.
18032         * api/omenquire.cc,common/omenquireinternal.h: Implementation of
18033           the above.
18034         * tests/api_anydb.cc: Test the above.
18036 Mon Apr 14 21:29:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18038         * tests/: Use copies of freemem.cc and freemem.h from omega to report
18039           the free physical memory at each stage of indexing.  Also, add a
18040           get_total_physical_memory() function to this, and report it's
18041           value at the top of the results file (only tested on Linux so
18042           far).
18044 Mon Apr 14 19:17:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18046         * tests/api_wrdb.cc: Make skip_to() test a bit more comprehensive.
18048 Mon Apr 14 19:08:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18050         * backends/flint/flint_metadata.cc,backends/flint/flint_metadata.h:
18051           Fix a bug in the skip_to() implementation, and set the parameter
18052           name to "key" instead of "tname", since it's not a term.
18053         * tests/api_wrdb.cc: Add a test of the metadata iterators.
18055 Mon Apr 14 14:22:16 GMT 2008  Olly Betts <olly@survex.com>
18057         * backends/Makefile.mk,backends/flint/Makefile.mk,
18058           backends/flint/contiguousalldocspostlist.cc,
18059           backends/flint/contiguousalldocspostlist.h,common/Makefile.mk:
18060           The ContiguousAllDocsPostList class isn't flint-specific, so move
18061           it out of backends/flint.
18063 Mon Apr 14 13:56:51 GMT 2008  Olly Betts <olly@survex.com>
18065         * backends/flint/flint_database.cc: Removed duplicate
18066           '#include "flint_database.h"', ironically added by Richard's recent
18067           change.  Fix a couple of errors in alphabetical ordering, and
18068           move autoptr.h and the "safe" headers to where the standard headers
18069           they replace would go.
18071 Mon Apr 14 13:44:37 GMT 2008  Olly Betts <olly@survex.com>
18073         * Makefile.am,tests/Makefile.am: List check-perf in .PHONY.
18074         * HACKING: Document the need to list non-file targets in .PHONY.
18076 Mon Apr 14 07:59:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18078         * api/omdatabase.cc: Correct return type in a DEBUGAPICALL macro.
18080 Mon Apr 14 07:14:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18082         * api/omdatabase.cc,backends/database.cc,backends/flint/,
18083           common/database.h,include/xapian/database.h: Add
18084           metadata_keys_begin() and metadata_keys_end() methods to
18085           Database, to allow the complete list of metadata in a database to
18086           be retrieved.  Supports a prefix argument to obtain a limited
18087           subset of the keys, since that may be useful in some situations
18088           and is very easy to implement.  Only accesses the keys in the
18089           first database in a multidatabase situation (which corresponds
18090           with the current behaviour of get_metadata()).
18091           Also, reorder the includes in flint_database.cc to be largely
18092           alphabetical, and remove a duplicated #include of
18093           <xapian/error.h>.
18095 Mon Apr 14 06:51:48 GMT 2008  Olly Betts <olly@survex.com>
18097         * common/fileutils.cc: Use endswith().
18099 Mon Apr 14 06:14:44 GMT 2008  Olly Betts <olly@survex.com>
18101         * api/replication.cc,backends/database.cc,
18102           backends/flint/flint_database.cc,common/fileutils.cc,
18103           tests/queryparsertest.cc: Use empty() rather than comparing size()
18104           to 0.  Use startswith() in a couple of places.  Tweak an Assert
18105           to AssertEq.
18107 Sun Apr 13 14:30:55 GMT 2008  Olly Betts <olly@survex.com>
18109         * api/omdatabase.cc: Replace uses of DEBUGLINE(SPELLING, ...) in
18110           Database::get_spelling_suggestion() with standard
18111           DEBUGAPICALL/RETURN tracing.  Add DEBUGAPICALL/RETURN tracing to
18112           a few Database methods which were missing it.
18114 Sun Apr 13 14:15:00 GMT 2008  Olly Betts <olly@survex.com>
18116         * backends/flint/flint_cursor.cc: Use RETURN() in a few places which
18117           weren't.
18119 Sun Apr 13 13:59:57 GMT 2008  Olly Betts <olly@survex.com>
18121         * backends/inmemory/inmemory_database.cc: Remove long-time commented
18122           out uses of DebugMsg.
18124 Sun Apr 13 13:52:32 GMT 2008  Olly Betts <olly@survex.com>
18126         * expand/expandweight.cc: Use DEBUGLINE() instead of DEBUGMSG().
18128 Sun Apr 13 11:23:56 GMT 2008  Olly Betts <olly@survex.com>
18130         * backends/flint/flint_database.cc: Include corresponding header right
18131           after config.h.
18133 Sun Apr 13 10:28:27 GMT 2008  Olly Betts <olly@survex.com>
18135         * backends/flint/flint_database.cc: Tweak brace formatting and wrap a
18136           comment.
18138 Fri Apr 11 16:18:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18140         * common/fileutils.cc: Fix typo in windows specific code.
18142 Fri Apr 11 12:44:25 GMT 2008  Olly Betts <olly@survex.com>
18144         * backends/flint/flint_cursor.cc: Include corresponding header right
18145           after config.h.
18147 Fri Apr 11 10:25:03 GMT 2008  Olly Betts <olly@survex.com>
18149         * backends/flint/flint_cursor.h: Fix filename in header comment.
18151 Fri Apr 11 04:49:03 GMT 2008  Olly Betts <olly@survex.com>
18153         * configure.ac,tests/submitperftest.in,tests/submitperftest.py.in:
18154           Rename submitperftest.py to submitperftest.
18155         * HACKING: Document that scripts shouldn't generally have an
18156           extension, and the reason for this policy.
18158 Fri Apr 11 04:32:15 2008  Olly Betts <olly@survex.com>
18160         * HACKING: Note that GCC 4.3 no longer supports pre-ISO forms of
18161           standard headers, such as <list.h>.  GCC on Solaris now seems
18162           to support throwing exceptions across shared library boundaries.
18164 Fri Apr 11 03:24:47 GMT 2008  Olly Betts <olly@survex.com>
18166         * tests/Makefile.am: "make up" in tests now does "make" in the
18167           top-level.
18169 Thu Apr 10 08:33:06 GMT 2008  Olly Betts <olly@survex.com>
18171         * backends/flint/flint_postlist.cc: Fix debug logging message: ostList
18172           -> FlintPostList.
18174 Thu Apr 10 05:47:37 GMT 2008  Olly Betts <olly@survex.com>
18176         * net/remoteconnection.cc: Remove erroneous FIXME comments talking
18177           about ReadFile() not updating WSAOVERLAPPED's Offset/OffsetHigh
18178           being a problem with using _get_osfhandle() - ReadFile is documented
18179           to behave this way on MSDN.  Factor out update of Offset/OffsetHigh
18180           and tweak this code not to rely on off_t being 64 bits.
18182 Thu Apr 10 05:24:11 GMT 2008  Olly Betts <olly@survex.com>
18184         * backends/flint/flint_record.cc,backends/flint/flint_utils.h: Use
18185           the new STATIC_ASSERT family of macros instead of CASSERT and
18186           CASSERT_TYPE_UNSIGNED.
18188 Thu Apr 10 04:46:40 GMT 2008  Olly Betts <olly@survex.com>
18190         * common/omassert.h: Add "compile-time assertion" macros:
18191           STATIC_ASSERT(COND), STATIC_ASSERT_UNSIGNED_TYPE(TYPE),
18192           STATIC_ASSERT_TYPE_DOMINATES(TYPE1, TYPE2).
18193         * tests/internaltest.cc: Test these.
18195 Thu Apr 10 01:07:34 GMT 2008  Olly Betts <olly@survex.com>
18197         * common/remoteprotocol.h,net/remoteserver.cc: Clean up a couple more
18198           things now we've moved to major protocol version 31.
18200 Wed Apr 09 06:50:44 GMT 2008  Olly Betts <olly@survex.com>
18202         * backends/remote/remote-database.cc: Add missing explicit include of
18203           remote-database.h.
18205 Wed Apr 09 04:48:54 GMT 2008  Olly Betts <olly@survex.com>
18207         * bin/xapian-check.cc,bin/xapian-compact.cc: Fix check for user
18208           metadata key to not match other key types we may add in the future.
18209           When compacting, we can't assume how we should handle them.  When
18210           checking, they currently shouldn't be present, so we should flag
18211           an error for them.
18213 Tue Apr 08 15:27:09 GMT 2008  Olly Betts <olly@survex.com>
18215         * NEWS: Fix missing line in old entry.
18217 Mon Apr 07 07:49:56 GMT 2008  Olly Betts <olly@survex.com>
18219         * backends/flint/flint_btreeutil.h: Use AssertRel rather than Assert.
18221 Mon Apr 07 06:20:42 GMT 2008  Olly Betts <olly@survex.com>
18223         * api/error.cc,api/valuerangeproc.cc,backends/flint/flint_table.cc,
18224           backends/multi/multi_postlist.cc,backends/remote/net_termlist.cc,
18225           bin/xapian-inspect.cc,common/omdebug.cc,common/utils.cc,
18226           languages/stem.cc,languages/steminternal.cc,
18227           tests/harness/backendmanager_multi.cc,
18228           tests/harness/backendmanager_remotetcp.cc: Header inclusions tidying
18229           - remove a few redundant inclusions; prefer cstdio to stdio.h, etc
18230           in a few places; note why certain headers are required in cases
18231           where it's less obvious; in a .cc file, include the corresponding .h
18232           second (after <config.h>).
18234 Mon Apr 07 04:23:30 GMT 2008  Olly Betts <olly@survex.com>
18236         * configure.ac: Fix --enable-log=profile to be recognised.
18237         * common/omdebug.cc,common/omdebug.h: Fix build with
18238           --enable-log=profile.
18239         * HACKING: Actually document --enable-log=profile.
18241 Sat Apr 05 21:07:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18243         * tests/perftest.cc: Flush after each write, so we can monitor
18244           progress of long running tests (we might need to remove this
18245           again later, if profiling shows it has a noticeable impact).  Fix
18246           two calls to write() to be a single call.
18247         * tests/perftest_randomidx.cc: Add values to different slots; I'd
18248           added them all to slot 0 by mistake, so they were overwriting
18249           each other.
18251 Sat Apr 05 20:17:43 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18253         * tests/Makefile.am,tests/perftest_randomidx.cc: Add a new
18254           performance test which builds a randomly generated index, and
18255           times the index run.  Probably wants a bit more tweaking to make
18256           it slightly more representative, but should be a useful test to
18257           run on systems where downloading a large amount of data is
18258           impractical.
18259         * ChangeLog: Add missing log message for last commit.
18261 Sat Apr 05 20:16:58 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18263         * tests/perftest.cc,tests/perftest.h: Log indexing runs every 5
18264           seconds, as well as after every 1000 documents - gives useful
18265           information for slow index runs.
18267 Thu Apr 03 20:58:31 GMT 2008  Olly Betts <olly@survex.com>
18269         * backends/database.cc,include/xapian/dbfactory.h,
18270           include/xapian/version_h.cc: Remove lingering traces of quartz.
18272 Thu Apr 03 07:59:53 GMT 2008  Olly Betts <olly@survex.com>
18274         * bin/xapian-inspect.cc: Print top-bit-set characters as escaped
18275           hex forms as they often won't be valid UTF-8 sequences.
18277 Thu Apr 03 03:53:37 GMT 2008  Olly Betts <olly@survex.com>
18279         * bin/xapian-inspect.cc: Check for the user passing a database
18280           directory and issue a special error message since this is an obvious
18281           mistake to make.
18283 Wed Apr 02 07:00:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18285         * matcher/multimatch.cc: Modify the estimate for the number of hits
18286           based on the rate at which a match decider has been denying
18287           documents.  Also, reduce the upper bound based on the number of
18288           documents denied.
18289         * tests/api_db.cc: Check that the upper bound when a match decider
18290           is used is within the valid range, rather than a particular
18291           value.
18293 Tue Apr 01 22:40:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18295         * configure.ac,tests/perftest.cc,tests/submitperftest.py.in,
18296           tests/urllib2_file.py: Fix display of upper bound on number of
18297           results of search (was showing lower bound).  Fix display of
18298           closing <repetition> tags.  Add script to submit the results of a
18299           performance test to a central server.
18301 Tue Apr 01 11:19:58 GMT 2008  Olly Betts <olly@survex.com>
18303         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
18304           Gently rearrange where and how we check for overlong keys.
18305         * tests/api_wrdb.cc: Extend termtoolong1 to test that the "term too
18306           long" exception messages contain the length correctly.
18308 Tue Apr 01 06:06:43 GMT 2008  Olly Betts <olly@survex.com>
18310         * AUTHORS,HACKING,INSTALL,README,debian/control.in,debian/copyright,
18311           docs/install.html,xapian-core.spec.in: Standardise URLs on our
18312           website to be xapian.org not www.xapian.org.
18314 Tue Apr 01 03:44:32 GMT 2008  Olly Betts <olly@survex.com>
18316         * backends/flint/flint_record.cc,backends/flint/flint_values.cc,
18317           common/,docs/quickstartexpand.cc.html,docs/quickstartindex.cc.html,
18318           docs/quickstartsearch.cc.html,matcher/: Update the FSF address for
18319           the small number of files which still have the old one.  Remove the
18320           "START_LICENCE" and "END_LICENCE" markers from the small number of
18321           files which still have them.
18323 Tue Apr 01 02:23:27 GMT 2008  Olly Betts <olly@survex.com>
18325         * backends/remote/remote-database.cc,common/remoteprotocol.h,
18326           common/remoteserver.h,common/serialise.h,docs/remote_protocol.html,
18327           net/remoteserver.cc,net/serialise.cc: Update remote protocol to
18328           a new major version (31) and strip out all the gunk that's only
18329           there to keep it compatible with older version 30 clients.
18331 Tue Apr 01 00:12:38 GMT 2008  Olly Betts <olly@survex.com>
18333         * api/ompostlistiterator.cc,include/xapian/postingiterator.h: Remove
18334           the method Xapian::PostingIterator::get_weight() which has been
18335           commented out almost forever.  Weight-handling isn't really
18336           appropriate here.
18337         * api/ompostlistiterator.cc: Remove "\todo" since it's already done!
18339 Mon Mar 31 13:24:11 GMT 2008  Olly Betts <olly@survex.com>
18341         * backends/flint/: Remove unnecessary default dtors.
18343 Mon Mar 31 13:21:55 GMT 2008  Olly Betts <olly@survex.com>
18345         * HACKING: Document to prefer "new SomeClass" to "new SomeClass()".
18346         * api/omdocument.cc,api/omenquire.cc,backends/database.cc,
18347           backends/flint/flint_database.cc,
18348           backends/inmemory/inmemory_database.cc,matcher/multimatch.cc,
18349           matcher/queryoptimiser.cc,net/remoteserver.cc: Fix instances of
18350           the latter form to use the former form.
18352 Mon Mar 31 12:11:09 GMT 2008  Olly Betts <olly@survex.com>
18354         * tests/: Update svn:ignore property for perftest changes and remove
18355           quartz-related entries.
18356         * tests/perftest.cc: Add missing '#include "utils.h"'.
18358 Mon Mar 31 09:22:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18360         * Makefile.am,tests/,tests/harness/,tests/perftest.cc,tests/perftest.h,
18361           tests/perftest_matchdecider.cc: Rework the test collation
18362           mechanism slightly to allow it to be used by other testsuites:
18363           rename collate-apitest to collate-test, and add a parameter to it
18364           naming the output file.  Add new "testrunner.h" and
18365           "testrunner.cc" which are an equivalent to the old mechanism in
18366           apitest for running tests with various properties; the properties
18367           for each backend are now held as member variables of a TestRunner
18368           class, and testsuites (eg, apitest) subclass this and implement a
18369           "run()" method, which will be called for each backend with the
18370           appropriate properties set.  Move definition of DEFINE_TESTCASE
18371           macro into testsuite.h.  Add new testsuite "perftest", which is
18372           intended to contain potentially time consuming performance tests,
18373           logging the results to an XML file for later analysis.  Add a
18374           simple test of the ValueSetMatchDeciders to this testsuite.
18375           "perftest" isn't run by make check, because it is likely to take
18376           some hours to complete in future - instead, there's a new
18377           top-level target "check-perf" which builds and runs perftest.
18379 Mon Mar 31 08:13:21 GMT 2008  Olly Betts <olly@survex.com>
18381         * HACKING: Recommend using the "svn-ci" script.  Update the date
18382           command which produces the correct format timestamp for ChangeLog
18383           entries.
18385 Mon Mar 31 08:00:58 GMT 2008  Olly Betts <olly@survex.com>
18387         * backends/flint/flint_btreeutil.h: Fix some out-of-date comments.
18388         * configure.ac: Use AC_CHECK_SIZEOF to define SIZEOF_INT and
18389           SIZEOF_LONG.
18390         * backends/flint/flint_types.h: Use SIZEOF_INT and SIZEOF_LONG to
18391           determine the type of uint4 rather than always using unsigned long
18392           (which is 64 bits on most 64 bit Unix platforms).  Drop int4 for
18393           the time being, as we don't actually use it.
18395 Mon Mar 31 06:34:20 GMT 2008  Olly Betts <olly@survex.com>
18397         * backends/flint/flint_positionlist.cc: Refactor BitWriter::encode()
18398           to have a single call to write_bits(), and don't include it inline
18399           in the class as it's really a bit big to inline (and write_bits()
18400           should now be inlined into it, or at least tail-called).
18402 Mon Mar 31 05:33:02 GMT 2008  Olly Betts <olly@survex.com>
18404         * backends/flint/flint_positionlist.cc: Reorder header includes to
18405           match our new standard more closely.  Indent class definitions to
18406           match our coding standards.
18408 Mon Mar 31 05:31:59 GMT 2008  Olly Betts <olly@survex.com>
18410         * backends/flint/flint_positionlist.h: Remove unnecessary default
18411           dtor.
18413 Mon Mar 31 04:55:59 GMT 2008  Olly Betts <olly@survex.com>
18415         * backends/remote/net_document.cc,backends/remote/net_document.h:
18416           Rename "doc" member to "data" since it actually holds the document
18417           data.
18419 Mon Mar 31 03:25:21 GMT 2008  Olly Betts <olly@survex.com>
18421         * backends/flint/flint_document.cc,backends/flint/flint_document.h:
18422           Remove unnecessary default dtor.
18424 Mon Mar 31 02:53:48 GMT 2008  Olly Betts <olly@survex.com>
18426         * backends/inmemory/inmemory_alltermslist.cc,
18427           backends/inmemory/inmemory_alltermslist.h: Remove unnecessary
18428           default dtor.
18429         * backends/inmemory/inmemory_alltermslist.h: Fix bogus cut-and-pasted
18430           doxygen comment for ctor.
18432 Mon Mar 31 02:33:15 GMT 2008  Olly Betts <olly@survex.com>
18434         * common/inmemory_positionlist.h: Remove unnecessary default
18435           destructor.  Fix comment type ("inemory" -> "inmemory").
18437 Sun Mar 30 12:47:50 GMT 2008  Olly Betts <olly@survex.com>
18439         * include/xapian/queryparser.h: Drop explicit dtor for SimpleStopper
18440           which does nothing.
18442 Sun Mar 30 12:12:12 GMT 2008  Olly Betts <olly@survex.com>
18444         * include/xapian/valuesetmatchdecider.h: Don't bother checking if an
18445           element is present before calling std::set::erase().  Don't bother
18446           defining an explicit dtor which does nothing.
18448 Sat Mar 29 00:46:13 GMT 2008  Olly Betts <olly@survex.com>
18450         * tests/api_db.cc: Test matchfunctor bounds in combination with
18451           collapsing and percentage cutoff.  Also, range check
18452           get_matches_estimated rather than checking it's exactly the value
18453           currently returned.
18455 Fri Mar 28 21:37:27 GMT 2008  Olly Betts <olly@survex.com>
18457         * tests/api_nodb.cc: Test ValueSetMatchDecider::remove_value() for a
18458           value which isn't in the set.  Test that removing a value doesn't
18459           affect other values in the set.
18461 Fri Mar 28 21:03:30 GMT 2008  Olly Betts <olly@survex.com>
18463         * matcher/multimatch.cc: Avoid needless call to pl->get_termfreq_est()
18464           if we're using a matchdecider or matchspy.
18466 Fri Mar 28 10:28:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18468         * matcher/multimatch.cc: Set matches_lower_bound to 0 before
18469           starting the match process if there is a match decider or spy;
18470           previously, the lower_bound wasn't being reduced in the presence
18471           of a match decider unless all the potential results were
18472           retrieved.
18473         * tests/api_db.cc: Extend matchfunctor1 to check the bounds and
18474           estimates returned; includes a regression test for the above.
18476 Fri Mar 28 09:09:54 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18478         * tests/api_nodb.cc: Extend tests to check ValueSetMatchDecider
18479           remove_value and also ValueSetMatchDeciders holding more than one
18480           value.
18482 Fri Mar 28 02:41:45 GMT 2008  Olly Betts <olly@survex.com>
18484         * configure.ac: Update version info to match 1.0.6.
18486 Fri Mar 28 00:12:48 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18488         * api/omenquire.cc,include/xapian/enquire.h: Merge two of the
18489           get_mset() variants into one, with default arguments, which has
18490           exactly the same effect.  We added the two variants to preserve
18491           ABI compatibility, and now we're branched for 1.1 this is no
18492           longer necessary.
18494 Thu Mar 27 23:54:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18496         * api/valuesetmatchdecider.cc,include/xapian.h,
18497           include/xapian/valuesetmatchdecider.h: Add ValueSetMatchDecider,
18498           which is a matchdecider which is intended to be passed a set of
18499           values to look for in documents, and selects documents based on
18500           the presence of those values.
18501         * tests/api_db.cc,tests/api_nodb.cc: Add tests for the
18502           ValueSetMatchDecider - both for calling it standalone, and when
18503           passed to get_mset().
18504         * api/Makefile.mk,include/Makefile.mk: Tell build system about new
18505           files.
18507 Thu Mar 27 06:18:52 GMT 2008  Olly Betts <olly@survex.com>
18509         * api/omqueryinternal.cc: Initialise term_pos in previous change to
18510           fix valgrind-detected error.
18512 Thu Mar 27 06:13:01 GMT 2008  Olly Betts <olly@survex.com>
18514         * api/omqueryinternal.cc: Optimise Query(OP_VALUE_GE, <n>, "") to
18515           Query::MatchAll.
18516         * tests/api_nodb.cc: Add testcase for this case.
18518 Thu Mar 27 04:34:40 GMT 2008  Olly Betts <olly@survex.com>
18520         * backends/inmemory/inmemory_document.cc,
18521           backends/inmemory/inmemory_document.h: Rename "doc" member to
18522           "data" since it actually holds the document data.
18523         * backends/inmemory/inmemory_database.cc: Remove unused <stdio.h>.
18524           Include "inmemory_database.h" right after <config.h>.
18526 Wed Mar 26 23:44:03 GMT 2008  Olly Betts <olly@survex.com>
18528         * api/omenquire.cc: Throw InvalidArgumentError upon
18529           RSet::add_document(0).
18530         * tests/api_nodb.cc: Add regression test for this.
18531         * matcher/rset.cc: Add assertion that we don't see a zero docid when
18532           calculating rtermfreqs.
18533         * api/omdocument.cc: Use RETURN not return so debug logging sees the
18534           return value.
18535         * backends/inmemory/inmemory_database.cc,
18536           backends/remote/remote-database.cc: Change exception throwing for
18537           a zero docid to assertions since zero docids should be checked for
18538           before we get to here.
18540 Wed Mar 26 06:17:51 GMT 2008  Olly Betts <olly@survex.com>
18542         * common/postlist.h: Decree that PostList::check() must be passed a
18543           docid which actually exists in the database (which is always true
18544           currently and seems unlikely to be an onerous requirement).
18545         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc: Take
18546           advantage of this new precondition to simplify the code.
18547         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc: Move the
18548           corresponding header first as our header inclusion order guidelines
18549           recommend.
18551 Thu Mar 13 01:58:18 GMT 2008  Olly Betts <olly@survex.com>
18553         * common/stats.h,include/xapian/enquire.h,matcher/localmatch.cc,
18554           matcher/weight.cc: Untangle Xapian::Weight to just initialise
18555           internal to 0 in its ctor, which is an ABI change.  Resolves
18556           a load of FIXME:1.1 comments.
18558 Thu Mar 13 00:50:06 GMT 2008  Olly Betts <olly@survex.com>
18560         * backends/flint/flint_lock.cc: Remove workaround for newlib which we
18561           don't seem to need elsewhere and was marked "FIXME:1.1".
18563 Thu Mar 13 00:49:27 GMT 2008  Olly Betts <olly@survex.com>
18565         * docs/deprecation.rst: Fix footnote ids after deprecation updates.
18567 Wed Mar 12 10:08:37 GMT 2008  Olly Betts <olly@survex.com>
18569         * tests/stemtest.cc: Remove support for OM_STEMTEST_SKIP_RANDOM,
18570           OM_STEMTEST_LANGUAGES, and OM_STEMTEST_SEED.
18572 Wed Mar 12 08:30:48 GMT 2008  Olly Betts <olly@survex.com>
18574         * docs/deprecation.rst: Update for bindings removals for 1.1.0.
18576 Wed Mar 12 06:59:25 GMT 2008  Olly Betts <olly@survex.com>
18578         * docs/deprecation.rst: Update for Omega removals for 1.1.0.
18580 Wed Mar 12 05:11:53 GMT 2008  Olly Betts <olly@survex.com>
18582         * api/omenquire.cc,api/omquery.cc,api/version.cc,docs/,
18583           generate-exceptions.in,include/xapian.h,include/xapian/enquire.h,
18584           include/xapian/query.h,tests/api_db.cc,tests/api_wrdb.cc,
18585           tests/apitest.cc,tests/harness/,tests/internaltest.cc: Remove all
18586           xapian-core features marked for removal in 1.1.0.
18588 Wed Mar 12 03:28:18 GMT 2008  Olly Betts <olly@survex.com>
18590         * HACKING,INSTALL,Makefile.am,backends/Makefile.mk,
18591           backends/dir_contents,backends/quartz/,bin/,configure.ac,docs/,
18592           tests/,tests/harness/,tests/quartztest.cc,tests/testdata/,
18593           xapian-core.spec.in: Remove the quartz backend.
18595 Wed Mar 12 02:14:33 GMT 2008  Olly Betts <olly@survex.com>
18597         * m4/xapian.m4: Improve wording of the error message when we can't
18598           find xapian-config.
18600 Wed Mar 12 02:13:32 GMT 2008  Olly Betts <olly@survex.com>
18602         * INSTALL: Minor wording tweak.
18604 Wed Mar 12 01:44:42 GMT 2008  Olly Betts <olly@survex.com>
18606         * bin/xapian-compact.cc: Initialise PostlistCursor member firstdid to
18607           avoid using it uninitialised when merging user metadata and the same
18608           key is present in more than one source database.  If the same user
18609           metadata key is present in more than one source database, copy an
18610           arbitrary tag value.
18612 Wed Mar 12 00:34:04 GMT 2008  Olly Betts <olly@survex.com>
18614         * bin/xapian-compact.cc: Fix potential SEGV (which I think can occur
18615           when compacting database(s) with user metadata but no postings).
18617 Fri Mar 07 09:46:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18619         * common/serialise.h: Add missing std:: before string.
18621 Fri Mar 07 00:47:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18623         * api/replication.cc: Tidy up a line which was wider than 80
18624           columns, and improve the error message returned when a database
18625           replica doesn't contain exactly one subdatabase.
18627 Fri Mar 07 00:34:28 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18629         * common/serialise.h,net/remoteconnection.cc,net/serialise.cc:
18630           Change encode_length() to a template, to allow the full range of
18631           off_t values to be encoded.  Also, adjust
18632           RemoteConnection::get_message_chunked() to allow the message
18633           length to be a 64 bit quantity.  Also, make a couple of type
18634           conversions to size_t explicit, to remove some warnings on
18635           windows.
18637 Thu Mar 06 01:57:04 GMT 2008  Olly Betts <olly@survex.com>
18639         * NEWS: Update from ChangeLog.
18641 Thu Mar 06 01:44:07 GMT 2008  Olly Betts <olly@survex.com>
18643         * bin/xapian-check.cc: Fix terminology - "user metadata" not "user
18644           metainfo".  Fix bug - need to invoke is_user_metadata rather than
18645           using the function pointer as the if condition!
18647 Thu Mar 06 01:41:09 GMT 2008  Olly Betts <olly@survex.com>
18649         * bin/xapian-compact.cc: Fix terminology - "user metadata" not "user
18650           metainfo".
18652 Wed Mar 05 21:17:02 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18654         * net/remoteconnection.cc: Add some casts (in the windows-specific
18655           code) to fix some warnings from MSVC.
18657 Wed Mar 05 19:01:35 GMT 2008  Olly Betts <olly@survex.com>
18659         * NEWS: Update to 1.0 branch point.
18661 Wed Mar 05 19:00:07 GMT 2008  Olly Betts <olly@survex.com>
18663         * common/msvc_dirent.cc: Tweak to bring comment back into 80 columns.
18665 Wed Mar 05 16:35:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18667         * common/msvc_dirent.cc: Fix sense of check for ENOENT after
18668           calling _findnext() - it should be checked for when an error code
18669           is returned, not when the call succeeds.
18670         * tests/api_replicate.cc: Fix tiny capitalisation typo.
18672 Wed Mar 05 16:29:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18674         * common/fileutils.cc: Check case where a backslash isn't found in
18675           calc_dirname, and don't replace slash with backslash in this
18676           case.
18678 Wed Mar 05 09:30:42 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18680         * bin/xapian-check.cc: Add understanding of user metainfo keys in
18681           the postlist table.  Allow the METAINFO key to be absent if the
18682           table only contains user metainfo keys.
18684 Wed Mar 05 09:01:48 GMT 2008  Olly Betts <olly@survex.com>
18686         * common/msvc_dirent.cc,common/msvc_dirent.h: Move licence boilerplate
18687           up front where we have it in every other file.  Move header guards
18688           to the usual location.  Detail the fix we've made for not setting
18689           errno to ENOENT erroneously.  Push the setting of orig_errno down
18690           a bit.
18692 Wed Mar 05 04:57:44 GMT 2008  Olly Betts <olly@survex.com>
18694         * configure.ac: -pedantic isn't actually very useful so just drop it
18695           rather than testing for known problem cases and risking unknown
18696           problem cases.
18698 Wed Mar 05 03:10:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18700         * matcher/valuegepostlist.cc,matcher/valuegepostlist.h: Implement
18701           skip_to method for ValueGePostList.  Previously, the
18702           ValueRangePostList::skip_to method was used, which would
18703           return incorrect documents.
18705 Wed Mar 05 02:54:27 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18707         * common/fileutils.cc: Search for \ instead of / when looking for a
18708           backslash!
18710 Wed Mar 05 02:51:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18712         * common/fileutils.cc: Fix incorrect docstring.
18714 Tue Mar 04 18:48:25 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18716         * common/msvc_dirent.cc: Fix readdir() so that it doesn't change
18717           errno to ENOENT on reaching the end of the directory, as
18718           specified by POSIX.
18720 Tue Mar 04 17:54:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18722         * net/remoteconnection.cc: Fix for a problem with windows.  Because
18723           we're using mixed styles of windows file IO, if a file descriptor
18724           which actually corresponds to a file was supplied to remote
18725           connection, the file pointer wasn't being adjusted after each
18726           call to ReadFile or WriteFile.  This manifested in the test case
18727           for replication, resulting in a (corrupt) 2048 byte changeset
18728           file being written (instead of a considerably longer changeset).
18729           To work around this, we explicitly move the file pointer
18730           ourselves.
18732 Tue Mar 04 17:41:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18734         * tests/api_replicate.cc: Close the replica before removing the
18735           temporary directory, to allow the rmdir to work on windows.
18737 Thu Feb 28 16:41:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18739         * common/remoteconnection.h: Include safeunistd.h, to get correct
18740           typedef for off_t on windows - previously, the size of the
18741           RemoteConnection class was varying depending on the order in
18742           which header files were included, resulting in memory corruption.
18743         * net/remoteserver.cc: Remove incorrect comment about what the
18744           problem was.
18746 Sat Feb 23 23:40:56 GMT 2008  Olly Betts <olly@survex.com>
18748         * xapian-config.in: Use globbing rather than iterating over the output
18749           of ls.
18751 Sat Feb 23 23:33:39 GMT 2008  Olly Betts <olly@survex.com>
18753         * xapian-config.in: Fix not to repeated headers in --swigheaders in a
18754           non-VPATH build.
18756 Fri Feb 22 17:20:19 GMT 2008  Olly Betts <olly@survex.com>
18758         * HACKING: Add note about preferring std::string().
18760 Fri Feb 22 17:05:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18762         * net/remoteserver.cc: Use std::string() instead of
18763           std::string(""), since it's a bit cleaner.
18765 Fri Feb 22 16:50:32 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18767         * net/remoteserver.cc: Add workaround for bug in MSVC 2005.
18769 Fri Feb 22 14:39:03 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18771         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
18772           backends/quartz/btree.cc: Use msvc_posix_rename() instead of
18773           rename() when renaming base files, so that an error isn't
18774           returned if the destination already exists.
18776 Thu Feb 21 17:24:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18778         * common/msvc_dirent.cc: Include msvc_dirent.h instead of dirent.h
18780 Thu Feb 21 17:09:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18782         * common/database.h: ReplicationInfo is a struct, not a class, so
18783           forward declare it as such.
18785 Thu Feb 21 12:16:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18787         * common/Makefile.mk: Add common/safedirent.h to distribution.
18789 Thu Feb 21 00:25:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18791         * xapian-config.in: Add swigheaders option, listing the header
18792           files used by swig, so that we can add the appropriate
18793           dependencies to the makefiles in the bindings.
18795 Wed Feb 20 20:59:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18797         * include/xapian/replication.h: Add a ReplicationInfo structure,
18798           and use it to return information about what has been done when
18799           the replication methods are called.
18800         * api/replication.cc,backends/database.cc,
18801           backends/flint/flint_database.cc,backends/flint/flint_database.h,
18802           common/database.h,common/replicatetcpclient.h,
18803           common/replicatetcpserver.h,net/replicatetcpclient.cc,
18804           net/replicatetcpserver.cc: Populate a ReplicationInfo structure
18805           when updating a replica, or sending changes to a file descriptor.
18806           Also, fix a bug with reading the replication parameters from a
18807           file, which caused a full database copy to be performed on every
18808           replication request on a newly opened DatabaseReplica object.
18809         * bin/xapian-replicate.cc: When doing verbose logging, display the
18810           number of database copies and changesets applied, and whether the
18811           live database has been updated.
18812         * tests/api_replicate.cc: Check that the information returned by
18813           the replication methods is as is should be, and add a regression
18814           test for always copying the database.
18816 Wed Feb 20 11:20:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18818         * backends/flint/: Improve reporting of failures to obtain lock due
18819           to unexpected errors - the error messages included in the
18820           exceptions raised are now more verbose in many situations.  Also,
18821           if the lock can't be obtained when a database is being created,
18822           report the lock failure, not a DatabaseOpeningError - it's more
18823           useful to know that the lock attempt failed than that the
18824           database wasn't present before the attempt to create it.
18826 Tue Feb 19 11:58:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18828         * bin/xapian-compact.cc: Fix compaction for database which contain
18829           user metadata keys.
18831 Sat Feb 16 19:53:44 GMT 2008  Olly Betts <olly@survex.com>
18833         * include/xapian/queryparser.h: Fix incorrect example in doccomment.
18835 Sat Feb 16 14:46:08 GMT 2008  Olly Betts <olly@survex.com>
18837         * AUTHORS: Add Matthew Somerville for Search::Xapian patches.
18839 Tue Feb 12 16:34:52 GMT 2008  Olly Betts <olly@survex.com>
18841         * docs/quickstart.html: Remove information covered by INSTALL since
18842           there's no good reason to repeat it and two copies just risks one
18843           getting out of date (as has happened here!)
18845 Tue Feb 12 16:27:30 GMT 2008  Olly Betts <olly@survex.com>
18847         * AUTHORS: Add David Spencer for reporting bug#237.
18849 Tue Feb 12 16:25:00 GMT 2008  Olly Betts <olly@survex.com>
18851         * docs/quickstart.html: Fix very out of date reference to MSet::items
18852           (bug#237).
18854 Tue Feb 12 12:40:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18856         * bin/xapian-compact.cc: Fix incorrect parameters passed to
18857           FlintTable constructor.
18859 Sat Feb 09 11:56:40 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18861         * common/socket_utils.h,net/remoteconnection.cc: More fixes for
18862           windows.
18864 Sat Feb 09 11:31:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18866         * common/msvc_dirent.cc,common/msvc_dirent.h: Hopefully this is a
18867           better implementation of dirent functions.
18869 Sat Feb 09 10:59:50 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18871         * common/: Add implementation of dirent.h for use with MSVC; this
18872           is copied from the mingw implementation, which has been placed in
18873           the public domain.  Add "safedirent.h" header for easy inclusion
18874           of this implementation.
18876 Sat Feb 09 10:43:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18878         * tests/api_replicate.cc: Use _putenv instead of setenv on windows.
18880 Sat Feb 09 09:56:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18882         * common/socket_utils.cc,common/socket_utils.h: More fixes for
18883           windows.
18885 Fri Feb 08 16:40:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18887         * common/Makefile.mk,common/socket_utils.cc,common/socket_utils.h,
18888           net/remoteconnection.cc,net/tcpclient.cc: Move windows-specific
18889           socket handling code from remoteconnection.cc into a separate
18890           file, provides the inline close_fd_or_socket for unix in the
18891           header file.  Use this in tcpclient.cc instead of close to close
18892           sockets correctly on windows.
18894 Fri Feb 08 16:40:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18896         * common/fileutils.cc,common/replicatetcpclient.h: Correct typos in
18897           windows only sections of code.
18899 Fri Feb 08 15:29:28 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18901         * net/remoteconnection.cc: Fixes for windows - always include
18902           "safesysselect.h", and include <io.h> on windows.
18903           Also, remove definition of an unused variable (probably due to a
18904           copy and paste error).
18906 Wed Feb 06 13:45:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18908         * bin/xapian-replicate.cc: Include "safeunistd.h" - needed for
18909           sleep, if nothing else.
18911 Tue Feb 05 18:10:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18913         * configure.ac: Set -pedantic in CXXFLAGS not AM_CXXFLAGS when
18914           testing for problem with it - AM_CXXFLAGS is an automake thing,
18915           and isn't used by the autoconf test.
18917 Tue Feb 05 17:50:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18919         * configure.ac: Cleaner patch for the test of compilation with
18920           -pedantic - cache the result using AC_CACHE_VAL().
18922 Tue Feb 05 17:32:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18924         * configure.ac: Check whether compilation of a cast of INFINITY to
18925           a double, and comparison with HUGE_VAL, causes a problem if
18926           -pedantic is specified (which it does on at least some Mac OSX
18927           versions).  If so, don't use the -pedantic compiler flag.
18929 Tue Feb 05 09:24:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18931         * backends/flint/flint_cursor.cc,backends/flint/flint_database.cc,
18932           backends/quartz/bcursor.cc: More fixes for debug logging - rename
18933           the "hex_encode" functions used for logging to
18934           "hex_display_encode" to avoid name clash.  Fix return type
18935           declared in flint_database.cc's DEBUGCALL macro.
18937 Tue Feb 05 09:18:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18939         * api/replication.cc: Fix for logging compiles: don't check return
18940           value of a void function.
18942 Tue Feb 05 09:14:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18944         * api/replication.cc: Reopen database after replication, to fix bug
18945           with applying a chain of changesets.
18946         * backends/flint/flint_database.cc: Don't use O_TRUNC (or O_CREAT)
18947           when modifying the DB files!
18948         * tests/api_replicate.cc: Don't call function from inside
18949           TEST_EQUAL, because that's a macro and the function will be
18950           double-evaluated.
18952 Tue Feb 05 02:07:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18954         * api/replication.cc,backends/database.cc,backends/flint/,
18955           common/database.h: Many fixes to the replication code.  Now
18956           parses replication changesets correctly and applies them to the
18957           databases.  Also, correct one bug with the generation of
18958           changesets.
18959         * docs/replication.rst,docs/replication_protocol.rst: Update.
18960         * tests/api_replicate.cc: Add test of two changesets being applied
18961           at once.
18963 Sun Feb 03 13:31:10 GMT 2008  Olly Betts <olly@survex.com>
18965         * backends/quartz/btree.cc: Backport atomic base update fix from
18966           flint.
18968 Sat Feb 02 22:47:56 GMT 2008  Olly Betts <olly@survex.com>
18970         * AUTHORS: Add Thomas Viehmann.
18972 Sat Feb 02 03:39:33 GMT 2008  Olly Betts <olly@survex.com>
18974         * backends/flint/flint_table.cc: Update the base files atomically to
18975           avoid problems with reading processes finding partially written
18976           ones.
18978 Sat Feb 02 03:38:00 GMT 2008  Olly Betts <olly@survex.com>
18980         * api/replication.cc: Don't leak the RemoteConnection object.
18982 Fri Feb 01 23:15:38 GMT 2008  Olly Betts <olly@survex.com>
18984         * backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h:
18985           Fix assorted comment errors.
18987 Fri Feb 01 20:20:23 GMT 2008  Olly Betts <olly@survex.com>
18989         * bin/xapian-replicate.cc: Fix comment.
18991 Fri Feb 01 20:13:23 GMT 2008  Olly Betts <olly@survex.com>
18993         * bin/xapian-replicate.cc: Document the default interval in --help.
18995 Fri Feb 01 20:05:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18997         * bin/xapian-replicate.cc: Remove the "return 0;" I added at the
18998           end of the function - I didn't realise this, but in C++ it's not
18999           necessary to have a return at the end of main().  Tidier without
19000           it, so it's gone.
19002 Fri Feb 01 19:44:05 GMT 2008  Olly Betts <olly@survex.com>
19004         * include/xapian/unicode.h: Add Unicode::toupper() to complement
19005           Unicode::tolower().
19006         * tests/api_unicode.cc: Add caseconvert1 testcase to test
19007           Unicode::tolower() and Unicode::toupper().
19009 Fri Feb 01 19:36:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19011         * bin/xapian-replicate.cc: Add one-shot and verbose options to
19012           replication client.
19014 Fri Feb 01 17:52:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19016         * api/replication.cc,backends/flint/flint_database.cc,
19017           include/xapian/replication.h,net/replicatetcpclient.cc,
19018           tests/api_replicate.cc: Keep the RemoteConnection in the
19019           DatabaseReplica object, so that any data which is read ahead
19020           doesn't get lost.  If an error occurs opening the database on
19021           the server, send a FAIL message over the connection, rather than
19022           just shutting it.
19024 Fri Feb 01 16:51:05 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19026         * backends/flint/flint_table.cc: Fix a database corruption bug: see
19027           bugzilla entry #232.  Was caused by lazy tables not being created
19028           at the right revision.
19029         * tests/api_wrdb.cc: Regression test for bug.
19031 Fri Feb 01 15:10:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19033         * api/replication.cc,backends/database.cc,
19034           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19035           common/database.h,docs/replication_protocol.rst,
19036           tests/api_replicate.cc: Add the UUID of the new database to the
19037           DB_HEADER message, and move the code which compares UUIDs out of
19038           flint_database.cc and into replication.cc.  Fix testcase which
19039           missed incorrect comparison of UUIDs.  Store the UUID of the
19040           live database which has been replicated in the config file - this
19041           isn't an ideal place, but will do until the UUID is stored in the
19042           iamflint file, and we can parse it from there.  Remove debug
19043           printfs.
19045 Fri Feb 01 15:09:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19047         * bin/quartzdump.cc: Rename hex_encode() to hex_display_encode() to
19048           avoid collision.  (The hex encoding produced by this doesn't
19049           encode spaces, so isn't quite the same as the functions just
19050           added to utils.cc).
19052 Fri Feb 01 15:08:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19054         * common/utils.cc,common/utils.h: Add utility functions to
19055           hex-encode and decode a string, so we can store UUIDs in the
19056           config file in replicated DB directories.
19058 Fri Feb 01 12:49:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19060         * tests/harness/backendmanager_multi.cc: Make the multi
19061           backendmanager use relative paths in its stub databases.
19063 Fri Feb 01 12:17:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19065         * common/Makefile.mk: Add replicationprotocol.h to distribution.
19067 Fri Feb 01 12:10:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19069         * backends/database.cc: Stub databases used to
19070           assume that any relative paths were relative to the current
19071           working directory.  They now assume that relative paths are
19072           relative to the directory holding the stub database file.
19073           Also, lines which begin with a '#' character are ignored, so we
19074           can place comments in the stub database files.  Also, recognise a
19075           new database type: a "stub directory", which is a directory
19076           containing a stub database file named "XAPIANDB".
19077         * api/replication.cc: Replica databases are now created as
19078           directories containing a "XAPIANDB" stub file, so all the
19079           workings are internal.
19080         * common/Makefile.mk,common/fileutils.cc,common/fileutils.h: Add
19081           new set of utilities to manipulate path names - extracting
19082           directory names, and joining paths.
19083         * tests/api_replicate.cc: Enable test properly, now that
19084           it passes.  Test needs to be expanded to check that the database
19085           copy succeeded better.
19087 Fri Feb 01 09:47:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19089         * backends/flint/flint_database.cc: Fix warning about unused
19090           variable.
19092 Fri Feb 01 03:49:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19094         * api/replication.cc,backends/database.cc,
19095           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19096           common/database.h,common/replicationprotocol.h: Move replication
19097           protocol definition into a separate file.  Add (virtual) support
19098           methods for applying changesets to Database::Internal.  Sort out
19099           atomic swapping of old database for new after a database copy.
19101 Fri Feb 01 03:49:09 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19103         * tests/quartztest.cc: Rename removedir to removedir_recursive() to
19104           avoid conflict with my new function.
19106 Fri Feb 01 03:09:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19108         * docs/replication_protocol.rst: Specify (though not in much
19109           detail) what we mean by "packed" strings and integers.
19111 Fri Feb 01 03:09:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19113         * include/xapian/replication.h: Be more precise in documentation
19114           comment.
19116 Fri Feb 01 03:07:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19118         * net/remoteconnection.cc: Remove debug printfs()
19120 Fri Feb 01 03:03:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19122         * common/utils.cc,common/utils.h: Add overloaded rmdir() which
19123           works directly on C++ strings.  Add removedir() method which
19124           removes a directory and its contents (as long as the directory
19125           only contains files, not subdirectories).
19127 Fri Feb 01 01:51:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19129         * common/remoteconnection.h,net/remoteconnection.cc: Add
19130           "sniff_next_message_type" method to RemoteConnection, and replace
19131           the hardcoded "4096" size of the chunks used for the remote
19132           connection confersation with a #define.  Fix file mode when
19133           creating a file with receive_file(), and bugs with writing too
19134           much data to the file.
19136 Thu Jan 31 03:41:42 GMT 2008  Olly Betts <olly@survex.com>
19138         * bin/Makefile.mk,bin/xapian-replicate-server.cc,
19139           common/replicatetcpserver.h: Add xapian-replicate-server server
19140           program.
19142 Thu Jan 31 02:46:38 GMT 2008  Olly Betts <olly@survex.com>
19144         * bin/Makefile.mk,bin/xapian-replicate.cc,common/replicatetcpclient.h,
19145           net/replicatetcpclient.cc,net/replicatetcpserver.cc: Add
19146           xapian-replicate client program.
19148 Wed Jan 30 19:13:08 GMT 2008  Olly Betts <olly@survex.com>
19150         * include/xapian/replication.h: Correct name of parameter in doxygen
19151           comment.
19153 Wed Jan 30 15:58:44 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19155         * api/replication.cc,backends/database.cc,
19156           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19157           common/database.h: Hook up the apply_changeset function from the
19158           API through to flint.  (The flint layer currently doesn't work,
19159           though.)  Also, implement the get_uuid() function for flint, by
19160           using the mtime of the iamflint file.
19161         * tests/api_replicate.cc: Finish implementation of the "replicate"
19162           function, and add a test of a replication of a database using
19163           this.  The return value test is commented out for now, because
19164           the flint layer doesn't work, but this puts the machinery needed
19165           to test this in place.
19167 Wed Jan 30 15:10:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19169         * backends/flint/flint_database.cc: Implement sending of the whole
19170           database copy.
19172 Wed Jan 30 14:45:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19174         * tests/,tests/harness/: Add new testcase file (api_replicate.cc)
19175           to hold tests of the replication functionality.  Currently has
19176           one partially written test.  Also, add new function to apitest.h:
19177           get_named_writable_database_path(), which allows the path to a
19178           writable database to be obtained; throws an exception for those
19179           backend types for which that isn't meaningful.  Add a new
19180           variable for use in the conditions for tests: "replicas", which
19181           should be set to true for all backends which support replication.
19183 Wed Jan 30 14:42:26 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19185         * net/remoteconnection.cc: Fix the calls to fcntl() in
19186           send_message() and send_file() to use fdout instead of fdin.
19187           This has probably been stopping timeouts working very well.
19189 Tue Jan 29 15:05:09 GMT 2008  Olly Betts <olly@survex.com>
19191         * common/remoteconnection.h,net/remoteconnection.cc: Add
19192           receive_file() method.
19194 Tue Jan 29 14:37:36 GMT 2008  Olly Betts <olly@survex.com>
19196         * common/remoteconnection.h,net/remoteconnection.cc: Add the ability
19197           to read a message in chunks.
19199 Tue Jan 29 10:08:02 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19201         * include/xapian/replication.h: Expand documentation comment.
19202         * api/replication.cc,backends/database.cc,
19203           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19204           common/database.h: Add a write_changesets_to_fd() function to
19205           Database::Internal, with a default implementation to raise an
19206           UnimplementedError.  Hook
19207           DatabaseMaster::write_changesets_to_fd() up to this, and
19208           implement it for flint databases (the code to send a copy of a
19209           database still needs work).
19211 Tue Jan 29 10:01:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19213         * docs/replication_protocol.rst: Document that a FAIL message ends
19214           the conversation.
19216 Tue Jan 29 09:59:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19218         * docs/replication_protocol.rst: Document the protocol used to
19219           transfer the updates.
19221 Tue Jan 29 09:57:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19223         * net/remoteconnection.cc: Fix typo.
19225 Tue Jan 29 09:48:15 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19227         * net/remoteconnection.cc: For win32, use msvc_posix_open() to open
19228           the file descriptor, so other things can delete the file while
19229           the sending is in progress.
19231 Tue Jan 29 01:23:19 GMT 2008  Olly Betts <olly@survex.com>
19233         * net/remoteconnection.cc: Add an assertion.
19235 Tue Jan 29 01:14:07 GMT 2008  Olly Betts <olly@survex.com>
19237         * common/remoteconnection.h,net/remoteconnection.cc: Add send_file()
19238           method to RemoteConnection to allow the contents of a file to be
19239           sent as a message.
19241 Tue Jan 29 00:28:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19243         * api/replication.cc,include/xapian/replication.h: Add methods to
19244           allow parameters to be stored associated with a DatabaseReplica.
19246 Tue Jan 29 00:16:42 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19248         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
19249           Change write_changesets_to_fd() to take the revision information
19250           as a string - it now includes a UUID.  Add get_uuid() method to
19251           FlintDatabase - currently always returns "FIXME", but will
19252           eventually return an ID for the database.
19254 Mon Jan 28 19:07:20 GMT 2008  Olly Betts <olly@survex.com>
19256         * common/Makefile.mk,common/replicatetcpclient.h,net/Makefile.mk,
19257           net/replicatetcpclient.cc,net/replicatetcpserver.cc: Add
19258           ReplicateTcpClient class implementing a replication client over
19259           TCP/IP.
19261 Mon Jan 28 17:13:09 GMT 2008  Olly Betts <olly@survex.com>
19263         * common/Makefile.mk,common/replicatetcpserver.h,net/Makefile.mk,
19264           net/replicatetcpserver.cc: Add ReplicateTcpServer class implementing
19265           a replication server over TCP/IP.
19267 Mon Jan 28 17:01:02 GMT 2008  Olly Betts <olly@survex.com>
19269         * common/remoteconnection.h,net/remoteconnection.cc: Minor tweaks
19270           to allow unidirectional connections.
19272 Mon Jan 28 16:26:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19274         * api/replication.cc: Fix overly hasty commit - add
19275           get_description() method for internal class, and use that instead
19276           of trying to access a private member.
19278 Mon Jan 28 16:22:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19280         * api/replication.cc,common/output.h,include/xapian/replication.h:
19281           Add get_description() methods to DatabaseMaster and
19282           DatabaseReplica, and add XAPIAN_OUTPUT_FUNCTION methods for them
19283           so that they can be displayed in debugging methods.  Should fix
19284           build with logging enabled.
19286 Mon Jan 28 11:52:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19288         * api/replication.cc,include/xapian/replication.h: Add
19289           DatabaseReplica::close() method, to allow the write lock to be
19290           released easily.
19292 Mon Jan 28 11:21:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19294         * api/replication.cc,include/xapian/replication.h: Change
19295           DatabaseReplica into a PIMPL style class, now that it has more
19296           than one member.  Add visibility annotations to DatabaseMaster
19297           and DatabaseReplica.
19299 Mon Jan 28 10:44:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19301         * api/replication.cc,include/xapian/replication.h: Add code to swap
19302           stub database files over atomically, and to track the current
19303           real database path.
19305 Mon Jan 28 04:52:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19307         * api/replication.cc,backends/database.cc,
19308           backends/flint/flint_changesetapplier.h,
19309           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19310           common/database.h: Implement opening of the database underlying
19311           DatabaseReplica objects, and hook up the get_revision_info()
19312           method for it.
19314 Mon Jan 28 04:17:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19316         * common/utils.cc,common/utils.h: Add "dir_exists" function, to
19317           check for presence of a directory at a given path.
19319 Mon Jan 28 03:48:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19321         * backends/flint/flint_table.cc: Change a "+= 1" to ++ - this isn't
19322           Python!
19324 Mon Jan 28 03:08:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19326         * api/Makefile.mk,api/replication.cc,include/Makefile.mk,
19327           include/xapian/replication.h: Add interface to replication
19328           functionality.  (Currently just unimplemented stubs.)
19330 Mon Jan 28 02:01:02 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19332         * backends/flint/flint_btreebase.h: Add a missing std::
19334 Mon Jan 28 01:59:55 GMT 2008  Olly Betts <olly@survex.com>
19336         * common/remotetcpserver.h: Fix typo in doxygen comment: `@port' ->
19337           `@param port'.  Update comment - socket is no longer closed by
19338           handle_one_connection().
19340 Mon Jan 28 01:28:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19342         * backends/flint/: Add support for recording the changes made to a
19343           database in "changeset" files.  These are currently not produced
19344           by default - for now, the "XAPIAN_MAX_CHANGESETS" environment
19345           variable can be set to control production of them.  As part of
19346           these changes, the FlintTable constructor now takes the
19347           tablename, so that this can be stored in changesets produced from
19348           the table.
19349         * bin/xapian-check.cc,bin/xapian-compact.cc,bin/xapian-inspect.cc:
19350           Update to match changes in FlintTable constructor.
19351         * docs/Makefile.am,docs/replication.rst,docs/replication_protocol.rst:
19352           Add basic documentation of the replication protocol (though this
19353           isn't yet definitive, since the protocol isn't finished!)
19355 Sun Jan 27 21:10:24 GMT 2008  Olly Betts <olly@survex.com>
19357         * net/remotetcpserver.cc,net/tcpserver.cc: The job of closing the
19358           socket connected to the client more naturally belongs to the
19359           framework TcpServer class.
19361 Sun Jan 27 20:32:55 GMT 2008  Olly Betts <olly@survex.com>
19363         * backends/flint/flint_table.cc: Call flint_io_sync() in commit()
19364           rather than flush_db(), as that gives more time for written blocks
19365           to get written to disk before we block on waiting for them to be.
19366           This should tend to speed up WritableDatabase::flush() in I/O bound
19367           situations.
19369 Sun Jan 27 19:35:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19371         * backends/flint/flint_spelling.h,backends/flint/flint_synonym.h:
19372           Merge changes to the spelling and synonym tables just before
19373           calling FlintTable::flush_db(), rather than just before calling
19374           FlintTable::commit(), so that they don't get forgotten.
19376 Sun Jan 27 14:29:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19378         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
19379           backends/flint/flint_table.h: Separate step which flushes
19380           modified blocks from cursors to the DB file from the rest of
19381           commit.  This will allow me to insert the changeset writing code
19382           between the two steps, so it can assume that the DB file is fully
19383           up-to-date.  Also remove an out-of-date FIXME about trying to
19384           avoid updating the value and position tables if they're not used:
19385           these tables are now lazily created anyway.
19387 Sun Jan 27 12:53:51 GMT 2008  Olly Betts <olly@survex.com>
19389         * net/tcpserver.cc: Change explicit references to xapian-tcpsrv.
19391 Sun Jan 27 12:26:24 GMT 2008  Olly Betts <olly@survex.com>
19393         * common/tcpclient.h,common/tcpserver.h,net/: Make use of TCP_NODELAY
19394           optional at the class level.  No user-visible changes.
19396 Sat Jan 26 17:18:09 GMT 2008  Olly Betts <olly@survex.com>
19398         * backends/dbfactory_remote.cc,common/Makefile.mk,
19399           common/remotetcpclient.h,common/tcpclient.h,net/Makefile.mk,
19400           net/remotetcpclient.cc,net/tcpclient.cc: Split out the "open
19401           a connection" part of TcpClient and rename the rest to
19402           RemoteTcpClient.
19404 Sat Jan 26 14:01:34 GMT 2008  Olly Betts <olly@survex.com>
19406         * bin/xapian-tcpsrv.cc,common/Makefile.mk,common/remotetcpserver.h,
19407           common/tcpserver.h,net/Makefile.mk,net/remotetcpserver.cc,
19408           net/tcpserver.cc: Split TcpServer into a generic TCP server
19409           class (TcpServer) and a subclass of this which implements the
19410           remote backend TCP server (RemoteTcpServer).
19412 Sat Jan 26 11:06:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19414         * backends/flint/flint_btreebase.cc,backends/quartz/btree_util.h,
19415           common/utils.h: Move fdcloser into utils.h, since it's generally
19416           useful, and it's better not to have multiple copies of it
19417           scattered through the code.
19419 Fri Jan 25 15:06:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19421         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Use
19422           msvc_posix_unlink() on windows in sys_unlink_if_exists()
19423           functions, so that they will work even if the file is still open.
19424           This probably changes no behaviour, because
19425           sys_unlink_if_exists() is probably never called in such a
19426           situation, but this may not be true in future.
19428 Thu Jan 24 13:31:20 GMT 2008  Olly Betts <olly@survex.com>
19430         * docs/overview.html: Remove commented-out comment about OP_XOR.
19432 Thu Jan 24 13:30:04 GMT 2008  Olly Betts <olly@survex.com>
19434         * docs/intro_ir.html: Briefly mention how pure boolean retrieval is
19435           supported.
19437 Thu Jan 24 13:28:44 GMT 2008  Olly Betts <olly@survex.com>
19439         * HACKING: Move "debian/patch" update earlier in the checklist.
19441 Thu Jan 24 13:26:45 GMT 2008  Olly Betts <olly@survex.com>
19443         * NEWS: Partly update from ChangeLog.
19445 Thu Jan 17 22:32:08 GMT 2008  Olly Betts <olly@survex.com>
19447         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h,
19448           bin/xapian-check.cc: Apply tweaked version of patch for OS/2 support
19449           by Yuri Dario.
19450         * AUTHORS: Add Yuri Dario.
19451         * PLATFORMS: Mention OS/2.
19453 Mon Jan 14 11:03:05 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19455         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Fix more
19456           assertions to avoid overflowing int.
19458 Mon Jan 14 09:29:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19460         * backends/flint/flint_btreeutil.h: Fix assertions to not overflow
19461           int.
19463 Mon Jan 14 09:23:54 GMT 2008  Olly Betts <olly@survex.com>
19465         * backends/quartz/btree_util.h: Fix assertions to not overflow int.
19467 Mon Jan 14 08:47:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19469         * configure.ac: Fix test for gcc being 4.0.x or 4.1.x, so we don't
19470           use -Wstrict-overflow with them.
19472 Sun Jan 13 23:28:04 GMT 2008  Olly Betts <olly@survex.com>
19474         * configure.ac: GCC warning flag overhaul.  Stop passing
19475           "-Wno-multichar" since any multi-character character literal is
19476           bound to be a typo (I believe we were only passing it after
19477           misinterpreting its sense!)  Pass "-Wformat-security",
19478           "-Wconversion", and "-pedantic" for all GCC versions.  Add
19479           "-Winit-self" and "-Wstrict-overflow=5" for GCC >= 4.2.  The
19480           latter may be too aggressive, but it's hard to know without
19481           trying it more widely.
19483 Sun Jan 13 00:25:25 GMT 2008  Olly Betts <olly@survex.com>
19485         * backends/flint/flint_check.h,backends/flint/flint_table.h,
19486           backends/quartz/btree.h,net/tcpserver.cc,tests/harness/testsuite.cc:
19487           Add XAPIAN_NORETURN() annotations to functions and non-virtual
19488           methods which don't return.
19489         * net/remoteserver.cc: Assign bool variable using a comparison rather
19490           than subtraction, so the intent is clearer.
19492 Sun Jan 13 00:23:41 GMT 2008  Olly Betts <olly@survex.com>
19494         * backends/flint/flint_check.cc: Tweak a comparison so all the
19495           constants are on the same side (micro-optimisation).
19496         * backends/quartz/btreecheck.cc: Equivalent change for quartz.
19498 Sun Jan 13 00:20:08 GMT 2008  Olly Betts <olly@survex.com>
19500         * tests/queryparsertest.cc: Add a couple of testcases I wrote for a
19501           reported problem which turned out to work correctly already.  Still,
19502           they add to our test coverage.
19504 Thu Jan 10 02:04:55 GMT 2008  Olly Betts <olly@survex.com>
19506         * tests/runtest.in: Cope with "@EXEEXT" extension on test programs.
19508 Wed Jan 09 21:57:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19510         * api/omquery.cc,api/omqueryinternal.cc,common/remoteprotocol.h,
19511           include/xapian/query.h,matcher/queryoptimiser.cc,tests/api_anydb.cc:
19512           Add OP_VALUE_LE operator, for symmetry with OP_VALUE_GE.
19513           Currently implemented internally using a ValueRangePostList with
19514           an empty string as the start of the range.
19516 Wed Jan 09 19:36:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19518         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h: Add
19519           new query operator OP_VALUE_GE, for performing "return documents
19520           with a value greater than this" searches.  Also add a new
19521           constructor to go with this which takes a value number and a
19522           single string argument.
19523         * matcher/: Add ValueGePostList class, as a subclass of
19524           ValueRangePostList.  Change internal members of
19525           ValueRangePostList to be protected instead of private.  Add
19526           support for making ValueGePostLists from OP_VALUE_GE queries.
19527         * tests/api_anydb.cc: Add valuege1 testcase of OP_VALUE_GE queries.
19528         * common/remoteprotocol.h: Bump minor protocol number, due to
19529           additional operator being possible in serialised queries.
19531 Wed Jan 09 15:18:16 GMT 2008  Olly Betts <olly@survex.com>
19533         * PLATFORMS: Update from Debian buildd logs.
19535 Wed Jan 09 13:53:34 GMT 2008  Olly Betts <olly@survex.com>
19537         * tests/harness/backendmanager_remotetcp.cc: Fix XAPIAN_NORETURN() to
19538           wrap a declaration, not the definition, to fix compile failure on
19539           mingw "make check".  Correct file documentation comment to refer
19540           to "remotetcp" not "remoteprog".
19542 Mon Jan 07 01:28:14 GMT 2008  Olly Betts <olly@survex.com>
19544         * PLATFORMS: Remove reports for 0.8.x as they're too old to be
19545           interesting.  Separate out 0.9.x reports.
19547 Mon Jan 07 00:23:10 GMT 2008  Olly Betts <olly@survex.com>
19549         * PLATFORMS: Add Solaris 9 and 10 success reports from James Aylett.
19551 Sat Jan 05 19:13:12 GMT 2008  Olly Betts <olly@survex.com>
19553         * languages/compiler/generator.c: In generate_call(), if the failure
19554           case would just be "if (ret == 0) return 0;" then combine it with
19555           the test for the called method returning signal `f'.
19557 Sat Jan 05 18:28:31 GMT 2008  Olly Betts <olly@survex.com>
19559         * languages/compiler/generator.c: Generate more readable code for the
19560           inlined single ASCII character literal string check.
19562 Sat Jan 05 18:27:07 GMT 2008  Olly Betts <olly@survex.com>
19564         * languages/steminternal.cc: Tweak skip_utf8() to save ~0.5% on
19565           stemtest.
19567 Sat Jan 05 02:20:57 GMT 2008  Olly Betts <olly@survex.com>
19569         * languages/compiler/generator.c: Optimise a single ASCII character
19570           literalstring check by inlining the check.  This makes stemtest run
19571           about 2% faster.
19573 Fri Dec 21 21:57:11 GMT 2007  Olly Betts <olly@survex.com>
19575         * docs/valueranges.rst: Fix example of using multiple VRPs to come out
19576           as a "program listing".
19578 Fri Dec 21 15:31:35 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19580         * common/stringutils.h,common/utils.h: Move declaration of
19581           within_DBL_EPSILON back into utils.h to fix builds with
19582           --enable-assertions, and since it's not string-related.
19584 Fri Dec 21 02:12:49 GMT 2007  Olly Betts <olly@survex.com>
19586         * NEWS: Note that one change was "(bug#45)".  Bump release date.
19588 Thu Dec 20 22:00:41 GMT 2007  Olly Betts <olly@survex.com>
19590         * NEWS: Update again for 1.0.5.
19592 Thu Dec 20 17:50:26 GMT 2007  Olly Betts <olly@survex.com>
19594         * common/stringutils.cc: Add new file I failed to commit.
19596 Thu Dec 20 17:17:28 GMT 2007  Olly Betts <olly@survex.com>
19598         * tests/queryparsertest.cc: Add feature tests to ensure that ':' is
19599           inserted between prefix and term when it should be.
19601 Thu Dec 20 13:58:18 GMT 2007  Olly Betts <olly@survex.com>
19603         * common/,queryparser/queryparser.lemony,
19604           queryparser/termgenerator_internal.cc,tests/harness/index_utils.cc,
19605           tests/harness/unixcmds.cc: Move C_isupper(), C_toupper(), etc from
19606           utils.cc/utils.h to stringutils.cc/stringutils.h, since they are
19607           string-related.
19609 Thu Dec 20 03:00:08 GMT 2007  Olly Betts <olly@survex.com>
19611         * HACKING: Remove details of issues with autoconf < 2.57 and
19612           automake < 1.5 as these versions are antiques compared to our
19613           current requirements of autoconf >= 2.59 and automake >= 1.8.3.
19615 Wed Dec 19 03:41:42 GMT 2007  Olly Betts <olly@survex.com>
19617         * AUTHORS,NEWS,configure.ac: Update for 1.0.5.
19619 Wed Dec 19 03:36:30 GMT 2007  Olly Betts <olly@survex.com>
19621         * api/omdatabase.cc: Calling WritableDatabase methods when we don't
19622           have exactly one subdatabase now throws InvalidOperationError.
19623         * tests/termgentest.cc: Add regression test to check that we now get
19624           InvalidOperationError (previously this case gave a segmentation
19625           fault).
19627 Wed Dec 19 01:39:01 GMT 2007  Olly Betts <olly@survex.com>
19629         * PLATFORMS: Update from tinderbox.
19631 Tue Dec 18 23:17:37 GMT 2007  Olly Betts <olly@survex.com>
19633         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Move lots
19634           of headers included by flint_lock.h to flint_lock.cc since
19635           flint_lock.h doesn't need them.  Add a "FIXME:1.1:" comment about
19636           an odd special-case for newlib.
19638 Thu Dec 13 17:34:19 GMT 2007  Olly Betts <olly@survex.com>
19640         * tests/stemtest.cc: Mark undocumented OM_STEMTEST_* environmental
19641           variables for removal in 1.1.
19643 Thu Dec 13 01:27:15 GMT 2007  Olly Betts <olly@survex.com>
19645         * HACKING: Need to check RPM packaging with Tim Brody too.
19647 Thu Dec 13 01:26:16 GMT 2007  Olly Betts <olly@survex.com>
19649         * configure.ac: Note that we check for <streambuf> because GCC 2.95
19650           only has <streambuf.h>.
19652 Thu Dec 13 01:23:27 GMT 2007  Olly Betts <olly@survex.com>
19654         * AUTHORS: Add Ralf Wildenhues for suggesting a way to factor out
19655           the boilerplate in multitarget rules.
19657 Wed Dec 12 02:02:51 GMT 2007  Olly Betts <olly@survex.com>
19659         * NEWS: Update for ChangeLog in preparation for 1.0.5.
19661 Wed Dec 12 01:02:29 GMT 2007  Olly Betts <olly@survex.com>
19663         * docs/admin_notes.rst: Mark as up to date for Xapian 1.0.5.  Minor
19664           wording improvements.
19666 Sun Dec 09 01:09:19 GMT 2007  Olly Betts <olly@survex.com>
19668         * tests/collate-apitest: Check for sources in the build directory
19669           first, and only if not there prepend "$srcdir/".  The recently
19670           added api_generated.cc will be in the build directory when using an
19671           SVN checkout.
19673 Fri Dec 07 12:37:08 GMT 2007  Olly Betts <olly@survex.com>
19675         * docs/sorting.rst,docs/valueranges.rst: State explicitly that
19676           Xapian::sortable_serialise() is used to encode values at index time
19677           and give an example of how it is called.
19679 Thu Dec 06 15:55:31 GMT 2007  Olly Betts <olly@survex.com>
19681         * tests/Makefile.am,tests/collate-apitest,
19682           tests/generate-api_generated: Add automatically generated tests to
19683           ensure that API classes generally have copy ctors and assignment
19684           operators, and also generally have a default ctor.
19686 Thu Dec 06 15:32:23 GMT 2007  Olly Betts <olly@survex.com>
19688         * docs/sorting.rst: Fill in the remaining items in the outline.
19690 Thu Dec 06 12:50:46 GMT 2007  Olly Betts <olly@survex.com>
19692         * tests/valgrind.supp: Another variant of the zlib suppression.
19694 Wed Dec 05 18:31:12 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19696         * Makefile.am,docs/Makefile.am,tests/Makefile.am: Add dir_contents,
19697           docs/dir_contents and tests/dir_contents to distribution
19698           tarballs.
19700 Wed Dec 05 18:28:12 GMT 2007  Olly Betts <olly@survex.com>
19702         * preautoreconf: Really fix handling of version.h.
19704 Wed Dec 05 18:20:54 GMT 2007  Olly Betts <olly@survex.com>
19706         * preautoreconf: Handle make pattern substitutions.
19708 Wed Dec 05 18:11:31 GMT 2007  Olly Betts <olly@survex.com>
19710         * preautoreconf: Fix special-case handling of include/xapian/version.h.
19712 Wed Dec 05 18:01:34 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19714         * matcher/multiandpostlist.cc,matcher/multiandpostlist.h: Implement
19715           get_wdf() method for MultiAndPostList (by adding together the
19716           wdfs of the subpostlists).  Not currently used (but will be by
19717           SynonymPostList).
19719 Wed Dec 05 17:43:24 GMT 2007  Olly Betts <olly@survex.com>
19721         * preautoreconf: Special-case version.h.
19723 Wed Dec 05 17:31:47 GMT 2007  Olly Betts <olly@survex.com>
19725         * preautoreconf: Fix errors in previous check-in.
19727 Wed Dec 05 17:18:26 GMT 2007  Olly Betts <olly@survex.com>
19729         * preautoreconf: Parse BUILT_SOURCES to determine which files are
19730           generated and so need looking for in the build directory - this
19731           won't need updating when new files are generated, or existing
19732           ones stop being.
19734 Wed Dec 05 16:55:26 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19736         * preautoreconf: Fix "make doxygen_docs" with VPATH build: look for
19737           generated code files in build dir, and make rule which re-runs
19738           preautoreconf change to srcdir first.
19740 Wed Dec 05 14:59:52 GMT 2007  Olly Betts <olly@survex.com>
19742         * docs/sorting.rst: Document set_sort_by_value() and friends.
19744 Wed Dec 05 11:31:27 GMT 2007  Olly Betts <olly@survex.com>
19746         * docs/sorting.rst: More work.
19748 Tue Dec 04 14:42:57 GMT 2007  Olly Betts <olly@survex.com>
19750         * docs/bm25.html: Improve wording.
19752 Mon Dec 03 17:11:01 GMT 2007  Olly Betts <olly@survex.com>
19754         * docs/Makefile.am,docs/index.html,docs/sorting.rst: Add the start of
19755           a topic document on sorting.
19757 Mon Dec 03 17:10:04 GMT 2007  Olly Betts <olly@survex.com>
19759         * common/stats.h: Fix comment typos.
19761 Sun Dec 02 14:36:47 GMT 2007  Olly Betts <olly@survex.com>
19763         * docs/synonyms.rst: Minor wording clarification.
19765 Sun Dec 02 14:23:37 GMT 2007  Olly Betts <olly@survex.com>
19767         * tests/collate-apitest: Fix reversed conditional for deciding
19768           which generated headers to update.
19770 Sun Dec 02 03:47:44 GMT 2007  Olly Betts <olly@survex.com>
19772         * tests/apitest.cc: Include api_all.h instead of the individual
19773           generated headers.
19775 Sun Dec 02 03:44:56 GMT 2007  Olly Betts <olly@survex.com>
19777         * tests/collate-apitest: Add licence and (C).  Only update .h files
19778           which may have changed.  Generate api_all.h which just includes
19779           the generated headers corresponding to all the sources processed.
19780           Strip spaces from conditions.
19781         * tests/Makefile.am: Update for api_all.h.
19783 Sun Dec 02 03:21:59 GMT 2007  Olly Betts <olly@survex.com>
19785         * matcher/weight.cc: Wrap comment.
19787 Sun Dec 02 03:21:25 GMT 2007  Olly Betts <olly@survex.com>
19789         * AUTHORS: Thank Petr Ročkai.
19791 Sun Dec 02 02:40:58 GMT 2007  Olly Betts <olly@survex.com>
19793         * api/omenquire.cc: Oops, this file also part of previous change.
19795 Sun Dec 02 02:14:27 GMT 2007  Olly Betts <olly@survex.com>
19797         * include/xapian/enquire.h: Implement copy ctor and assignment
19798           operator for Xapian::Enquire (bug#219).
19799         * configure.ac: Note what this means in terms of library versioning.
19801 Sat Dec 01 02:54:51 GMT 2007  Olly Betts <olly@survex.com>
19803         * include/xapian/: Stop describing get_description() as an
19804           "Introspection method", as this doesn't help to explain what it
19805           does, and get_description() doesn't actually fall under any of the
19806           formal definitions of "introspection" I can find.
19808 Sat Dec 01 02:45:16 GMT 2007  Olly Betts <olly@survex.com>
19810         * tests/harness/index_utils.h: Overlooked (C) update.
19812 Sat Dec 01 02:34:59 GMT 2007  Olly Betts <olly@survex.com>
19814         * HACKING,INSTALL,common/,configure.ac,tests/api_anydb.cc,
19815           tests/api_db.cc,tests/btreetest.cc,tests/harness/testsuite.cc,
19816           tests/harness/testsuite.h,tests/harness/testutils.cc,
19817           tests/internaltest.cc: Raise the minimum supported GCC version
19818           to 2.95.3 and strip out om_ostringstream which is no longer
19819           required.
19821 Sat Dec 01 01:10:04 GMT 2007  Olly Betts <olly@survex.com>
19823         * tests/api_sorting.cc,tests/api_wrdb.cc: Move sortfunctor2 from
19824           api_wrdb.cc to api_sorting.cc.
19826 Sat Dec 01 00:43:31 GMT 2007  Olly Betts <olly@survex.com>
19828         * tests/valgrind.supp: Add version of the valgrind zlib suppression
19829           for 64 bit hosts.
19831 Fri Nov 30 18:06:49 GMT 2007  Olly Betts <olly@survex.com>
19833         * tests/harness/index_utils.cc: Workaround MSVC which doesn't clear
19834           the fail bit when a stream is reopened.
19836 Fri Nov 30 00:44:21 GMT 2007  Olly Betts <olly@survex.com>
19838         * matcher/queryoptimiser.cc: Make delete_ptr<> a functor rather than
19839           a function.  This fixes the build with SGI's compiler, and
19840           apparently a functor allows more compilers to inline the call.
19842 Thu Nov 29 19:24:22 GMT 2007  Olly Betts <olly@survex.com>
19844         * configure.ac: Fix previous change to work.
19846 Thu Nov 29 18:53:09 GMT 2007  Olly Betts <olly@survex.com>
19848         * configure.ac: Assume we have <sstream> and hardwire HAVE_SSTREAM to
19849           be 1.  If this assumption proves correct for all platforms we care
19850           about, we can rip out the old om_ostringstream code.
19852 Thu Nov 29 17:51:11 GMT 2007  Olly Betts <olly@survex.com>
19854         * tests/harness/index_utils.cc: Work around MSVC.
19856 Wed Nov 28 03:17:06 GMT 2007  Olly Betts <olly@survex.com>
19858         * api/sorter.cc: Fix reverse sorting of value strings with different
19859           lengths.
19860         * tests/api_wrdb.cc: Add test sortfunctor2 to check this actually
19861           works.
19863 Wed Nov 28 02:27:37 GMT 2007  Olly Betts <olly@survex.com>
19865         * tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/:
19866           Add get_named_writable_database() and use it to fix spell3 on
19867           Microsoft Windows.
19869 Tue Nov 27 16:56:12 GMT 2007  Olly Betts <olly@survex.com>
19871         * xapian-config.in: Factor out the code to check if we need explicit
19872           dependencies into a function.  On platforms we know don't need
19873           explicit dependencies, --ltlibs now gives the same output as --libs.
19875 Tue Nov 27 00:24:18 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19877         * tests/Makefile.am: Remove api_regressions.cc from list - didn't
19878           mean to commit that (yet).
19880 Tue Nov 27 00:17:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19882         * tests/Makefile.am: Use $(collated_apitest_sources) in list of
19883           apitest_SOURCES; now a new test file can be added just by adding
19884           it to this variable.
19886 Mon Nov 26 23:04:00 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19888         * tests/Makefile.am: Add generated apitest .h files to targets of
19889           rule which calls collate-apitest, since they're also generated by
19890           it.  Change the rule to use a .stamp and a .lock file as
19891           described in HACKING, to fix parallel builds.
19893 Mon Nov 26 18:48:20 GMT 2007  Olly Betts <olly@survex.com>
19895         * Makefile.am: Distribute preautoreconf.
19897 Mon Nov 26 17:24:15 GMT 2007  Olly Betts <olly@survex.com>
19899         * HACKING,configure.ac,docs/Makefile.am: Use pngcrush to reduce the
19900           size of PNG files in the doxygen-generated HTML docs.
19902 Mon Nov 26 15:39:58 GMT 2007  Olly Betts <olly@survex.com>
19904         * docs/Makefile.am: Don't package or install various intermediate
19905           files which doxygen generates.
19907 Mon Nov 26 13:14:19 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19909         * tests/api_db.cc: Ensure that the database needed for stubdb1 is
19910           present, by creating it first (with get_database()).  This
19911           requires that the database type is flint, but the test doesn't
19912           depend on any particular database type anyway, so this doesn't
19913           lose us anything.
19915 Mon Nov 26 13:08:08 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19917         * tests/collate-apitest: Display the name of the backend which a
19918           set of tests is for.
19920 Mon Nov 26 09:45:39 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19922         * tests/Makefile.am,tests/collate-apitest: Fix with VPATH builds -
19923           pass srcdir as the first argument to collate-apitest, so it can
19924           find the sources.  Also, use srcdir to form the path to
19925           collate-apitest when calling it from the make rule.
19927 Mon Nov 26 02:22:08 GMT 2007  Olly Betts <olly@survex.com>
19929         * tests/api_db.cc,tests/apitest.cc,tests/apitest.h: Convert the
19930           remaining tests to be collated.
19932 Mon Nov 26 02:08:18 GMT 2007  Olly Betts <olly@survex.com>
19934         * tests/api_db.cc,tests/apitest.cc,tests/apitest.h: Collate the
19935           localdb and remotedb tests.
19937 Mon Nov 26 01:40:59 GMT 2007  Olly Betts <olly@survex.com>
19939         * tests/: Collate the specchar, doclendb, collfreq, allterms, and
19940           multivalue tests.
19942 Mon Nov 26 01:21:35 GMT 2007  Olly Betts <olly@survex.com>
19944         * tests/: Collate the anydb tests.  Remove the generated files upon
19945           "make clean" in maintainer-mode.
19947 Mon Nov 26 00:34:03 GMT 2007  Olly Betts <olly@survex.com>
19949         * tests/: Collate the wrdb tests.
19951 Mon Nov 26 00:18:18 GMT 2007  Olly Betts <olly@survex.com>
19953         * tests/api_posdb.cc,tests/apitest.cc: Add "writable" flag and use it
19954           for poslist2 and poslist3.
19956 Mon Nov 26 00:13:43 GMT 2007  Olly Betts <olly@survex.com>
19958         * tests/: Collate the posdb tests.
19960 Mon Nov 26 00:03:29 GMT 2007  Olly Betts <olly@survex.com>
19962         * tests/: Collate the nodb tests.
19964 Sun Nov 25 23:55:02 GMT 2007  Olly Betts <olly@survex.com>
19966         * tests/: Collate the transaction tests.
19968 Sun Nov 25 23:49:26 GMT 2007  Olly Betts <olly@survex.com>
19970         * tests/: Collate the unicode tests.
19972 Sun Nov 25 23:35:40 GMT 2007  Olly Betts <olly@survex.com>
19974         * tests/: Make a start on automatically collating test cases.
19976 Sun Nov 25 22:41:52 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19978         * api/weightinternal.cc: Initialise all members of
19979           Xapian::Weight::Internal, and use initialisers rather than
19980           assignment to do so.  Fixes an error reported by valgrind.
19982 Sun Nov 25 16:48:21 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19984         * matcher/weight.cc: Add another note of a FIXME needed for 1.1
19986 Sun Nov 25 16:40:28 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19988         * matcher/bm25weight.cc,matcher/tradweight.cc: Add some missing
19989           "using namespace std;" lines which are needed due to earlier
19990           changes in header file inclusions.  Also, remove some unnecessary
19991           std:: prefixes.
19993 Sun Nov 25 16:35:30 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19995         * common/stats.h,include/xapian/enquire.h,matcher/localmatch.cc,
19996           matcher/weight.cc: Undo ABI change introduced in previous commit
19997           with a nasty workaround; we can't initialise Weight::internal
19998           reliably, because applications complied with earlier versions of
19999           the library may have inlined the constructor of the Weight class.
20000           Therefore, we can't delete Weight::internal in the destructor,
20001           because we don't know if it was initialised.  Instead, we
20002           add factory methods for making Weight::Internal objects to Stats,
20003           register all the Weight::Internal objects made by these factory
20004           methods in a list is the Stats object, and delete them when Stats
20005           is deleted (which conveniently happens after the match has
20006           finished).  Mark all this with FIXME:1.1: so that we can easily
20007           convert it to nicer code once we branch for 1.1.
20009 Sun Nov 25 15:14:04 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20011         * api/Makefile.mk,api/weightinternal.cc,common/,
20012           include/xapian/enquire.h,matcher/: Split Stats and
20013           Xapian::Weight::Internal into different classes: Stats remains
20014           with the same members (but becomes a concrete class, rather than
20015           a typedef of another class), and Xapian::Weight::Internal becomes
20016           a simple container for exactly those statistics which are
20017           relevant for a weight object (ie, it holds just one termfreq and
20018           reltermfreq, rather than a map of all of them).  This is
20019           dynamically allocated, so Xapian::Weight now owns the object
20020           pointed to by its "internal" member, and deletes it in its
20021           destructor.  Add a new header file "weightinternal.h" so that the
20022           full "stats.h" stuff doesn't need to be included for definitions
20023           of weighting schemes.  Replace #include "stats.h" lines with
20024           forward declarations of Stats, where possible.
20026 Sun Nov 25 15:09:29 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20028         * api/omenquire.cc: Add missing include of stats.h
20029         * matcher/queryoptimiser.cc,net/tcpserver.cc: Remove unnecessary
20030           include of stats.h
20031         * net/remoteserver.cc: Include missing includes of omassert.h and
20032           stats.h, and change an Assert to AssertEq.
20033         * matcher/multimatch.cc: Output the contents of the stats object in
20034           debugging code.
20036 Sun Nov 25 04:22:05 GMT 2007  Olly Betts <olly@survex.com>
20038         * common/multimatch.h: No longer need "autoptr.h" here.
20040 Sun Nov 25 04:07:04 GMT 2007  Olly Betts <olly@survex.com>
20042         * common/multimatch.h: Fix typo in documentation comment.
20044 Sun Nov 25 03:58:21 GMT 2007  Olly Betts <olly@survex.com>
20046         * common/remoteserver.h,matcher/localmatch.cc,matcher/multimatch.cc:
20047           Remove lingering traces of StatsGatherer.
20049 Sat Nov 24 20:44:03 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20051         * common/stats.h,matcher/Makefile.mk,matcher/stats.cc: Add
20052           get_description() method for Xapian::Weight::Internal, and add
20053           stats.cc back to hold it's implementation.
20054         * common/output.h: Add an output function for Stats (aka
20055           Xapian::Weight::Internal) to fix the build when debug logging is
20056           enabled.
20058 Sat Nov 24 01:21:56 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20060         * api/omenquire.cc,common/,matcher/,net/remoteserver.cc: Remove
20061           StatsGatherer and its subclasses completely.  Instead of a
20062           StatsGatherer subclass, MultiMatch is now simply passed a Stats
20063           object, and passes this to the prepare_match() methods of the sub
20064           matchers to be populated with statistics.  OmEnquire then passes
20065           the same Stats object to MultiMatch::get_mset(), whereas a remote
20066           submatch sends the Stats object to the parent match, to be
20067           combined with the global statistics, and then passes the returned
20068           global statistics to MultiMatch::get_mset().  Remove stats.cc
20069           since it only contained implementations of StatsGatherer methods,
20070           and networkstats.h which only contained the definition of the
20071           NetworkStatsGatherer.
20072         * matcher/rset.cc: Add the rset size to the database - we now
20073           compute the global rset size the same way as we compute the
20074           global collection size: by adding the sizes in the sub
20075           collections together.  We have the total rset size easily
20076           available in the code, but building the total rset size up from
20077           the sub-databases makes the code simpler.
20079 Sat Nov 24 01:21:18 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20081         * matcher/andnotpostlist.cc: Add a missing #include "omdebug.h".
20083 Fri Nov 23 23:13:12 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20085         * common/stats.h,matcher/: Remove the StatsSource class entirely.
20086           LocalSubMatch and RemoteSubMatch now contribute their stats
20087           directly to the gatherer in the prepare_match() method, so the
20088           gatherer doesn't need to worry about keeping track of the sources
20089           of statistics.
20091 Fri Nov 23 21:46:32 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20093         * common/submatch.h,matcher/: Change SubMatch::start_match() (and
20094           all start_match() methods in subclasses) to take the statistics
20095           for the whole collection as an additional parameter.  MultiMatch
20096           now gets the statistics from the gatherer and passes it to
20097           start_match().
20099 Fri Nov 23 17:38:28 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20101         * common/stats.h: Add set_termfreq() and set_reltermfreq()
20102           convenience methods to Stats; and remote the take_my_stats(),
20103           my_termfreq_is() and my_reltermfreq_is() methods from
20104           StatsSource.
20105         * common/rset.h,matcher/rset.cc: Rename give_stats_to_statssource()
20106           to contribute_stats(), and give it take a Stats object instead of
20107           a StatsSource object.  Can't forward declare Stats, so we need to
20108           #include "stats.h" in rset.h now, unfortunately.
20109         * matcher/localmatch.cc,matcher/localmatch.h: Move register_term()
20110           implementation inline into prepare_match().  Build up the
20111           statistics in a local Stats object, rather than passing them
20112           piecemeal to the StatsSource object, and then use
20113           StatsSource::get_my_stats() to set them, just like
20114           RemoteSubMatcher.
20116 Fri Nov 23 14:35:49 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20118         * matcher/localmatch.cc,matcher/localmatch.h: Get the total
20119           statistics from the gatherer directly and store them in a new
20120           member of LocalSubMatch, rather than getting them via the
20121           StatsSource when we need them.  This bypasses the
20122           get_total_stats() and set_total_stats() methods of StatsSource.
20123         * common/stats.h,matcher/stats.cc: Remove the (newly) unused
20124           methods StatsSource::set_total_stats() and
20125           StatsSource::get_total_stats().
20127 Fri Nov 23 11:40:54 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20129         * common/,include/xapian/enquire.h,matcher/: Rename
20130           Xapian::Weight::Internal to StatsSource (which I hope to be able
20131           to remove shortly), and rename the Stats class to
20132           Xapian::Weight::Internal.  Requires minimal plumbing changes -
20133           TradWeight and BM25Weight classes now query the internals
20134           directly for the statistics, LocalSubMatch now gets the
20135           statistics from StatsSource and passes them to wt_factory.
20136           common/remote-database.h and common/serialise.h now need to
20137           #include stats.h unfortunately, because a forward declaration
20138           can't be used for Xapian::Weight::Internal (unless I'm missing
20139           something).
20141 Fri Nov 23 10:15:43 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20143         * common/stats.h,matcher/bm25weight.cc,matcher/localmatch.cc,
20144           matcher/tradweight.cc: Remove the Xapian::Weight::Internal
20145           get_total_* methods: instead, add a get_total_stats() method
20146           which returns a Stats object representing the whole collection.
20147           Add get_termfreq() and get_reltermfreq() convenience methods to
20148           Stats for looking up individual term's statistics.  Also, change
20149           protected members of Xapian::Weight::Internal to private members,
20150           since we're no longer subclassed.  Also, in tradweight.cc, avoid
20151           division by zero in the (rare) situation of the average length
20152           being zero; in the same way as this is handled by bm25weight.cc.
20154 Thu Nov 22 12:58:02 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20156         * common/stats.h,matcher/localmatch.cc,matcher/localmatch.h,
20157           matcher/stats.cc: Replay Xapian::Weight::Internal's
20158           perform_request() method with set_total_stats().  The replacement
20159           takes the stats as a parameter, rather than magically getting
20160           them from the gatherer.  The LocalSubMatch now needs to call the
20161           gatherer to get the stats, and then pass it to set_total_stats(),
20162           so needs to keep a reference to the gatherer.  However, we are
20163           now one step closer to decoupling the gatherer from the stats.
20165 Thu Nov 22 11:47:56 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20167         * common/stats.h,matcher/localmatch.cc: Remove automatic
20168           just-in-time calls to statssource.perform_request() - instead,
20169           make it public, and call it explicitly before the postlist tree
20170           is constructed.  Also, make Xapian::Weight::Internal's destructor
20171           non-virtual, since it's no longer subclassed anywhere.
20173 Thu Nov 22 11:02:39 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20175         * common/networkstats.h,matcher/stats.cc: Remove
20176           fetch_local_stats() method, and use of have_gathered flag for
20177           caching result of gathering the stats - instead, simply Assert
20178           that have_gathered is false before gathering; we currently only
20179           call get_local_stats() once for a given gatherer.
20181 Thu Nov 22 10:04:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20183         * common/rset.h: Change multiline "///" comments to use "/**",
20184           style.
20186 Thu Nov 22 09:27:42 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20188         * matcher/localmatch.cc,matcher/queryoptimiser.h: Update a couple
20189           of comments.
20191 Thu Nov 22 08:29:19 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20193         * common/networkstats.h,common/stats.h,matcher/: Remove the
20194           LocalStatsSource and NetworkStatsSource classes - just use the
20195           base class (Xapian::Weight::Internal) instead.  LocalStatsSource
20196           had no extra members whatsoever, whereas NetworkStatsSource had
20197           various members which weren't used, and a single method
20198           "take_remote_stats" which simply sets the statistics held - I've
20199           renamed this method "set_my_stats" and added it to the base
20200           class.
20202 Thu Nov 22 00:05:06 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20204         * common/networkstats.h,common/stats.h,matcher/stats.cc: Replace
20205           StatsGatherer::contrib_my_stats() and
20206           StatsSource::contrib_stats() methods; instead add a
20207           get_my_stats() method to StatsSource and simply call this.
20209 Wed Nov 21 16:37:10 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20211         * common/networkstats.h,common/remoteserver.h,matcher/stats.cc,
20212           net/remoteserver.cc: Rework NetworkStatsGatherer - it no longer
20213           needs to have the RemoteServer passed into it; instead, the
20214           RemoteServer calls NetworkStatsGatherer::set_global_stats() with
20215           the global statistics as soon as it gets them.  This new method
20216           replaces fetch_global_stats().  As a result, the RemoteServer no
20217           longer needs to remember the global_stats received from the
20218           network - it just passes them straight to the gatherer - so
20219           remove the global_stats and get_global_stats() methods from
20220           RemoteServer.
20222 Wed Nov 21 15:42:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20224         * common/rset.h,matcher/rset.cc: Document the member functions of
20225           RSetI, and remove the totally unused "get_reltermfreq()" member.
20226           Also remove an ancient, commented out, implementation of an
20227           "add_document()" member, and add copyright lines.
20229 Wed Nov 21 15:26:11 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20231         * common/rset.h,matcher/localmatch.cc,matcher/rset.cc: Make
20232           RSet::calculate_stats() private, and call it only from
20233           RSet::give_stats_to_statssource().  Was previously called
20234           directly from localmatch.cc, but this way it's clear that it's
20235           only called once.
20237 Wed Nov 21 14:30:17 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20239         * matcher/remotesubmatch.h: Move implementation of constructor into
20240           .cc file (accidentally missed this file from the last-but-one
20241           commit, which did the necessary changes to the .cc file).
20243 Wed Nov 21 14:28:48 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20245         * matcher/rset.cc: Improve debugging messages.
20247 Wed Nov 21 14:26:44 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20249         * matcher/remotesubmatch.cc: Add some debugging, and reorder the
20250           header includes.
20252 Wed Nov 21 13:21:35 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20254         * matcher/multimatch.cc: Add DEBUGCALL_STATIC macros to the new
20255           functions, and tidy some code in the constructor slightly.
20257 Wed Nov 21 10:00:48 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20259         * matcher/multimatch.cc: Split the loop which calls prepare_match()
20260           out of the constructor into a separate static function.
20262 Tue Nov 20 18:23:53 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20264         * matcher/multimatch.cc: Refactor code which splits the RSet into
20265           sub RSets (one for each sub database) into a separate function.
20266           No functional change.
20268 Tue Nov 20 17:56:47 GMT 2007  Olly Betts <olly@survex.com>
20270         * common/remoteserver.h: Remove unused '#include "omassert.h"'.
20272 Tue Nov 20 12:53:06 GMT 2007  Olly Betts <olly@survex.com>
20274         * AUTHORS: Thank Marcus Rueckert for GCC 4.3 fixes.
20276 Tue Nov 20 10:22:28 GMT 2007  Olly Betts <olly@survex.com>
20278         * bin/quartzcompact.cc: Recent GCC 4.3 snapshots thinks cf and tf
20279           might be used uninitialised.  They won't be, but we only need to
20280           initialise them once per run to silence the warning, so just do
20281           that.
20283 Tue Nov 20 10:20:13 GMT 2007  Olly Betts <olly@survex.com>
20285         * bin/quartzcompact.cc: Fix equality testing of C strings to use
20286           strcmp() rather than '=='.  In practice, using '==' often gives
20287           the desired effect due to pooling of constant strings, but this may
20288           have resulted in bugs on some platforms.
20290 Tue Nov 20 01:47:16 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20292         * tests/harness/backendmanager_remotetcp.cc: Add missing "#include
20293           <cstring>".
20295 Tue Nov 20 01:26:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20297         * tests/harness/unixcmds.cc: Add #include of cstring, to get
20298           strchr, needed for gcc 4.3 snapshot.
20300 Tue Nov 20 01:25:22 GMT 2007  Olly Betts <olly@survex.com>
20302         * api/maptermlist.h,api/termlist.cc,backends/alltermslist.cc,
20303           backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h,
20304           common/alltermslist.h,common/termlist.h,common/vectortermlist.h:
20305           Provide a default implementation of accumulate_stats() in the
20306           virtual base class TermIterator::Internal instead of repeating it
20307           in each subclass which doesn't get used for generating an ESet, and
20308           don't call abort() in the default implementation - an Assert(false)
20309           is sufficient, and more consistent with how we handle other similar
20310           cases.
20312 Tue Nov 20 01:24:17 GMT 2007  Olly Betts <olly@survex.com>
20314         * bin/xapian-progsrv.cc: Add missing '#include <cstdlib>'.
20316 Mon Nov 19 23:54:53 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20318         * backends/flint/flint_postlist.cc,backends/quartz/quartz_postlist.cc:
20319           Add NORETURN macro to report_read_error(); fixes warnings from
20320           GCC 4.3 about possibly uninitialised values.  Reorder header
20321           includes to follow proposed policy.
20322         * backends/flint/flint_postlist.h: Add include of omdebug.h which
20323           previously needed to be done before including this.  Tidy up
20324           order of includes.
20326 Mon Nov 12 14:06:38 GMT 2007  Olly Betts <olly@survex.com>
20328         * api/Makefile.mk,api/omenquire.cc,api/sorter.cc,common/multimatch.h,
20329           common/omenquireinternal.h,include/Makefile.mk,include/xapian.h,
20330           include/xapian/enquire.h,include/xapian/sorter.h,
20331           matcher/multimatch.cc,net/remoteserver.cc,tests/: Add new functor
20332           class to allow more sophisticated sorting options.
20334 Mon Nov 12 14:03:06 GMT 2007  Olly Betts <olly@survex.com>
20336         * HACKING: Improved wording.
20338 Sun Nov 11 07:51:57 GMT 2007  Olly Betts <olly@survex.com>
20340         * include/xapian/queryparser.h: Hide the v102 namespace from Doxygen
20341           as it isn't user visible.
20343 Sat Nov 10 21:53:21 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20345         * tests/Makefile.am: Remove .multi in clean-local rule; should fix
20346           distcheck.
20348 Sat Nov 10 15:34:25 GMT 2007  Olly Betts <olly@survex.com>
20350         * tests/harness/testutils.cc,tests/harness/testutils.h:
20351           mset_expect_order_begins() is never used, so remove it.
20352         * tests/harness/testutils.cc: Don't need <iostream>, only <fstream>.
20354 Sat Nov 10 11:09:22 GMT 2007  Olly Betts <olly@survex.com>
20356         * docs/index.html: Add a list of documents on particular features and
20357           include links to previously unlinked-to documents.  Weed down the
20358           top navigation bar which had grown to unwieldy length.
20360 Sat Nov 10 10:17:42 GMT 2007  Olly Betts <olly@survex.com>
20362         * PLATFORMS: Update for Debian buildds.
20364 Sat Nov 10 02:13:07 GMT 2007  Olly Betts <olly@survex.com>
20366         * matcher/multimatch.cc: If "first" is non-zero, then use nth_element
20367           with vector::reverse_iterator to partition items such that the
20368           unwanted ones are at the end not the start.  This means the call
20369           to vector::erase() no longer needs to copy all the wanted items.
20371 Fri Nov 09 19:01:38 GMT 2007  Olly Betts <olly@survex.com>
20373         * tests/api_db.cc: collapsekey3 is too strict - even if the value
20374           never occurs, lower_bound may drop as we may reject potential
20375           matches before applying the collapse test.
20377 Fri Nov 09 16:36:39 GMT 2007  Olly Betts <olly@survex.com>
20379         * include/xapian/termiterator.h: Clarify get_wdf() versus
20380           get_termfreq() in documentation comments.
20382 Fri Nov 09 00:07:02 GMT 2007  Olly Betts <olly@survex.com>
20384         * tests/api_db.cc: Fix comment typo.
20386 Fri Nov 09 00:04:45 GMT 2007  Olly Betts <olly@survex.com>
20388         * HACKING,Makefile.am,tests/Makefile.am: New make target
20389           'check-multi'.
20391 Thu Nov 08 23:54:47 GMT 2007  Olly Betts <olly@survex.com>
20393         * tests/api_anydb.cc: Re-enable test case allpostlist1 for multi
20394           since it works fine (presumably thanks to the multi_postlist.cc
20395           fix).
20397 Thu Nov 08 23:44:29 GMT 2007  Olly Betts <olly@survex.com>
20399         * tests/,tests/harness/: Add new "multi" test backend which indexes
20400           the specified text file(s) to two databases which will look just
20401           like the equivalent single database when searched together.  Since
20402           writing isn't supported, a number of tests which require this are
20403           disabled, as are any tests which explicitly use a multi-database
20404           since a multi-of-multis isn't equivalent to a multi of equivalent
20405           individual databases.  A handful of testcases are also currently
20406           disabled because they fail for reasons not yet fully explored.
20407           Existing tests run with the new backend provide regression tests
20408           for the two recent fixes.
20410 Thu Nov 08 23:42:33 GMT 2007  Olly Betts <olly@survex.com>
20412         * backends/multi/multi_postlist.cc: Fix PostingIterator::skip_to()
20413           when running over multiple databases.  Regression test to follow.
20415 Thu Nov 08 23:37:51 GMT 2007  Olly Betts <olly@survex.com>
20417         * docs/overview.html: Mention the "auto" backend.
20419 Thu Nov 08 23:28:30 GMT 2007  Olly Betts <olly@survex.com>
20421         * matcher/multimatch.cc: Fix bug in handling a pure boolen match over
20422           more than one database under set_docid_order(ASCENDING) - we can't
20423           shortcut in this case because MergePostList generally doesn't return
20424           docids in order.  Regression test to follow.
20426 Thu Nov 08 21:07:09 GMT 2007  Olly Betts <olly@survex.com>
20428         * matcher/queryoptimiser.cc: Fix comment typo.
20430 Thu Nov 08 07:40:48 GMT 2007  Olly Betts <olly@survex.com>
20432         * api/omdatabase.cc: Don't use MultiPostList when there's only one
20433           subdatabase.
20435 Thu Nov 08 05:40:17 GMT 2007  Olly Betts <olly@survex.com>
20437         * tests/api_db.cc: Run sortrel1 for inmemory too.
20439 Thu Nov 08 03:43:50 GMT 2007  Olly Betts <olly@survex.com>
20441         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc,
20442           tests/harness/index_utils.h: New class FileIndexer which acts like
20443           an iterator returning a Xapian::Document object for each paragraph
20444           in some specified files.
20446 Wed Nov 07 16:30:49 GMT 2007  Olly Betts <olly@survex.com>
20448         * common/,docs/remote_protocol.html,matcher/,net/remoteserver.cc,
20449           net/serialise.cc: If we're doing a match with only one database
20450           which is remote then just return the unserialised MSet from the
20451           remote match.  This requires that we include
20452           internal->percent_factor in the MSet serialisation, which requires
20453           a minor remote protocol version bump.
20455 Wed Nov 07 09:47:28 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20457         * matcher/multimatch.cc: Fix logging build (a change to the logging
20458           code introduced in r9644 didn't compile)
20460 Tue Nov 06 17:10:51 GMT 2007  Olly Betts <olly@survex.com>
20462         * include/xapian/document.h: Better documentation comment for
20463           Document::termlist_count().
20465 Tue Nov 06 12:32:16 GMT 2007  Olly Betts <olly@survex.com>
20467         * Makefile.am,docs/Makefile.am,languages/Makefile.mk: No need to set
20468           SUFFIXES manually for suffixes used in implicit rules.
20470 Tue Nov 06 10:41:14 GMT 2007  Olly Betts <olly@survex.com>
20472         * matcher/multimatch.cc: If we're collapsing on a value, keep track of
20473           the number of empty collapse values seen, since that allows us to
20474           give a better lower bound on the number of matches.
20475         * tests/api_db.cc: This change breaks an (incorrect) assumption in
20476           collapsekey3, so change that test case to be a regression test for
20477           the improved estimate.  Add a new test as (the previously missing)
20478           collapsekey2, but disable it for now as we don't seem to have a
20479           suitable existing database.
20481 Tue Nov 06 07:58:34 GMT 2007  Olly Betts <olly@survex.com>
20483         * matcher/tradweight.cc: Make sure lenpart has been calculated in
20484           TradWeight::get_sumpart_needs_doclength() (this doesn't appear to
20485           actually be a problem in current use, but it might become an issue
20486           if the code which uses TradWeight changes.
20488 Tue Nov 06 07:49:18 GMT 2007  Olly Betts <olly@survex.com>
20490         * tests/api_anydb.cc: Add simple feature test for TradWeight being
20491           used to run a query.
20493 Tue Nov 06 07:26:28 GMT 2007  Olly Betts <olly@survex.com>
20495         * common/stats.h,matcher/bm25weight.cc,tests/api_anydb.cc: Fix bug in
20496           BM25Weight - in the case where k2 is non-zero, a non-initialised
20497           value influenced the weight calculations.  By default k2 is zero, so
20498           this bug probably won't affect most users.
20500 Tue Nov 06 07:22:27 GMT 2007  Olly Betts <olly@survex.com>
20502         * api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
20503           net/remoteserver.cc: Modify MultiMatch::MultiMatch() to take a const
20504           pointer to Xapian::RSet rather than a const reference.  This makes
20505           the code simpler for the case where we don't have an RSet.
20507 Tue Nov 06 05:47:38 GMT 2007  Olly Betts <olly@survex.com>
20509         * api/omenquire.cc: Use ".empty()" not ".size() == 0".
20511 Mon Nov 05 21:05:45 GMT 2007  Olly Betts <olly@survex.com>
20513         * m4/xapian.m4: Hook LT_INIT as well as AC_PROG_LIBTOOL and
20514           AM_PROG_LIBTOOL.
20516 Mon Nov 05 11:17:23 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20518         * docs/termgenerator.rst: Change a couple of instances of "terms"
20519           to "words" for clarity; the item from the input text is a word,
20520           and the result of processing is a term.
20522 Mon Nov 05 09:46:53 GMT 2007  Olly Betts <olly@survex.com>
20524         * docs/admin_notes.rst: Note that this document is up-to-date for
20525           1.0.4.  Improve the formatting a bit and fix a the odd typo.
20527 Mon Nov 05 06:24:01 GMT 2007  Olly Betts <olly@survex.com>
20529         * tests/api_wrdb.cc: Fix MSVC warning.
20531 Mon Nov 05 06:21:09 GMT 2007  Olly Betts <olly@survex.com>
20533         * matcher/queryoptimiser.h: Forward declare PosFilter as "struct"
20534           rather than "class", since it's defined as "struct".
20536 Mon Nov 05 05:41:01 GMT 2007  Olly Betts <olly@survex.com>
20538         * api/sortable-serialise.cc: Suppress MSVC warning.
20540 Mon Nov 05 04:55:48 GMT 2007  Olly Betts <olly@survex.com>
20542         * docs/quickstart.html: Improved.
20544 Mon Nov 05 04:43:13 GMT 2007  Olly Betts <olly@survex.com>
20546         * docs/overview.html: More improvements from Jenny Black.
20548 Sun Nov 04 22:59:28 GMT 2007  Olly Betts <olly@survex.com>
20550         * docs/overview.html: Assorted improvements to the start of this
20551           document.
20553 Sun Nov 04 22:54:13 GMT 2007  Olly Betts <olly@survex.com>
20555         * api/omdocument.cc,tests/api_wrdb.cc: values_begin() didn't ensure
20556           that values had been read.  However, values_end() did (and so did
20557           values_count()) so this wasn't generally an issue, but it shouldn't
20558           happen anyway.
20559         * tests/api_wrdb.cc: Extend adddoc5 to include a regression test for
20560           this bug.
20562 Sun Nov 04 22:44:39 GMT 2007  Olly Betts <olly@survex.com>
20564         * tests/quartztest.cc: Remove 'FIXME' suggesting more value tests.
20565         * tests/api_nodb.cc: Add the suggested tests we don't already have.
20567 Sun Nov 04 19:23:52 GMT 2007  Olly Betts <olly@survex.com>
20569         * tests/api_posdb.cc,tests/api_wrdb.cc: Use get_writable_database()
20570           instead of get_writable_database("").
20571         * tests/api_wrdb.cc: Rework test_spell3 so it works under __WIN32__
20572           (bug#177).
20574 Sun Nov 04 07:31:04 GMT 2007  Olly Betts <olly@survex.com>
20576         * tests/harness/backendmanager.h: Make BackendManager dtor virtual as
20577           intended.
20579 Sun Nov 04 07:05:12 GMT 2007  Olly Betts <olly@survex.com>
20581         * tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/,
20582           tests/quartztest.cc: Extend BackendManager to allow opening a
20583           WritableDatabase as a Database as well, and to allow reopening a
20584           closed WritableDatabase as a WritableDatabase.  With these new
20585           features, rework quartztest's adddoc2 and adddoc3 as apitest
20586           testcases adddoc5 and adddoc6.
20588 Sun Nov 04 06:08:42 GMT 2007  Olly Betts <olly@survex.com>
20590         * tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/:
20591           Add BackendManager::get_writable_database_as_database() and use it
20592           instead of assuming what the WritableDatabase path will be.
20594 Sun Nov 04 05:31:30 GMT 2007  Olly Betts <olly@survex.com>
20596         * tests/,tests/harness/: Subclass BackendManager for each database
20597           backend supported, which should provide a better foundation on
20598           which we can rebuild to fix the nastier bits of the test harness.
20600 Fri Nov 02 17:39:58 GMT 2007  Olly Betts <olly@survex.com>
20602         * INSTALL: zlib 1.2.0 apparently fixes a memory leak in deflateInit2,
20603           which we use, so that's another reason to prefer 1.2.x.
20605 Fri Nov 02 06:34:36 GMT 2007  Olly Betts <olly@survex.com>
20607         * tests/harness/testsuite.cc: Fix extracting of valgrind error
20608           messages.
20610 Fri Nov 02 05:09:05 GMT 2007  Olly Betts <olly@survex.com>
20612         * docs/bm25.html,docs/scalability.html: Remove references to Muscat
20613           3.6.
20615 Thu Nov 01 18:51:20 GMT 2007  Olly Betts <olly@survex.com>
20617         * NEWS: Fix to talk about OP_VALUE_RANGE rather than
20618           ValueRangePostList since the later isn't user-visible.
20620 Thu Nov 01 18:16:20 GMT 2007  Olly Betts <olly@survex.com>
20622         * matcher/exactphrasepostlist.cc: Fix memory leak if second memory
20623           allocation fails.
20625 Thu Nov 01 17:54:09 GMT 2007  Olly Betts <olly@survex.com>
20627         * docs/intro_ir.html: Move the section on stemming to a better
20628           location.
20630 Thu Nov 01 17:37:40 GMT 2007  Jenny Black
20632         * docs/glossary.rst: Fix typo.
20634 Thu Nov 01 06:34:58 GMT 2007  Olly Betts <olly@survex.com>
20636         * matcher/multimatch.cc: Minor code simplification.
20638 Wed Oct 31 16:17:08 GMT 2007  Olly Betts <olly@survex.com>
20640         * bin/xapian-check.cc: Fix to handle the special case of a term which
20641           is 48 characters long.  Fix not to go into an infinite loop if
20642           certain checks fail.
20644 Wed Oct 31 15:56:45 GMT 2007  Olly Betts <olly@survex.com>
20646         * matcher/multiandpostlist.cc: If the subpostlists are ORs and pruning
20647           or operator decay happens within them, then get_termfreq_est() can
20648           change such that the first postlist returns a higher value than
20649           the second, so remove a bogus assertion which assumed this didn't
20650           happen (bug#209).
20652 Wed Oct 31 15:43:58 GMT 2007  Olly Betts <olly@survex.com>
20654         * backends/flint/flint_version.cc: I documented an increase in
20655           FLINT_VERSION but didn't increase it - luckily the previous version
20656           wasn't in a released version, so just adjust the comment to match
20657           what actually happened.
20659 Wed Oct 31 15:24:48 GMT 2007  Olly Betts <olly@survex.com>
20661         * net/remoteconnection.cc: Add '#include <safeunistd.h>' (bug#208).
20663 Wed Oct 31 15:01:53 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20665         * bin/xapian-check.cc: Update the checking of the termlist table to
20666           stop checking for the "has_termfreqs" flag, which is no longer
20667           stored in termlists.
20669 Wed Oct 31 14:31:38 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20671         * backends/quartz/quartz_positionlist.cc: Add missing #include,
20672           which is needed only when configured with --enable-log and with
20673           --disable-assertions.
20675 Tue Oct 30 04:52:53 GMT 2007  Olly Betts <olly@survex.com>
20677         * NEWS,configure.ac: Update for 1.0.4.
20679 Tue Oct 30 04:10:32 GMT 2007  Olly Betts <olly@survex.com>
20681         * queryparser/queryparser.lemony: Code tweak.
20683 Tue Oct 30 03:04:04 GMT 2007  Olly Betts <olly@survex.com>
20685         * tests/queryparsertest.cc: Add two more test cases to improve
20686           coverage.
20688 Tue Oct 30 00:13:42 GMT 2007  Olly Betts <olly@survex.com>
20690         * tests/harness/testsuite.cc: abi::__cxa_demangle() requires GCC 3.1
20691           it seems.
20693 Mon Oct 29 23:14:41 GMT 2007  Olly Betts <olly@survex.com>
20695         * docs/scalability.html: Update size of gmane.
20697 Mon Oct 29 23:13:00 GMT 2007  Olly Betts <olly@survex.com>
20699         * docs/quartzdesign.html: Note that Quartz is now deprecated.
20701 Mon Oct 29 21:09:12 GMT 2007  Olly Betts <olly@survex.com>
20703         * configure.ac,tests/harness/testsuite.cc: Demangle the name of
20704           the std::exception subclass for GCC, and handle compilation with
20705           -fno-rtti.
20707 Mon Oct 29 19:50:05 GMT 2007  Olly Betts <olly@survex.com>
20709         * tests/harness/testsuite.cc: Catch std::exception subclasses
20710           explicitly and report e.what() (which gives the method name which
20711           threw, at least under GCC).
20713 Mon Oct 29 18:46:57 GMT 2007  Olly Betts <olly@survex.com>
20715         * NEWS: Updated.
20717 Mon Oct 29 18:36:12 GMT 2007  Olly Betts <olly@survex.com>
20719         * matcher/multimatch.cc: Pull out old_item.wt into a variable.
20721 Mon Oct 29 18:24:46 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20723         * queryparser/queryparser.lemony: Fix problem with spelling
20724           correction of hyphenated terms (or other terms joined with phrase
20725           generators): the position of the start of the term wasn't being
20726           reset for the second term in the generated phrase, resulting in
20727           out of bounds errors when substituting the new value in the
20728           corrected query string.
20729         * tests/queryparsertest.cc: Test the fix.
20731 Mon Oct 29 17:34:17 GMT 2007  Olly Betts <olly@survex.com>
20733         * docs/deprecation.rst: Move "Stem::stem_word(word)" in the bindings
20734           to the right section (it was done in 1.0.0, as already indicated).
20735           Deprecate the non-pythonic iterators in favour of the pythonic ones.
20737 Mon Oct 29 02:54:09 GMT 2007  Olly Betts <olly@survex.com>
20739         * NEWS,api/Makefile.mk,docs/Makefile.am,include/Makefile.mk,
20740           include/xapian.h,tests/api_db.cc,tests/api_nodb.cc,
20741           tests/api_wrdb.cc: Back out match spy changes in preparation for
20742           creating a branch for them.
20744 Mon Oct 29 02:37:31 GMT 2007  Olly Betts <olly@survex.com>
20746         * matcher/valuerangepostlist.cc: Fix
20747           ValueRangeProcessor::get_termfreq_est() and get_termfreq_max() to
20748           work when at_end() when paranoid assertions are enabled.
20750 Mon Oct 29 01:51:07 GMT 2007  Olly Betts <olly@survex.com>
20752         * common/omenquireinternal.h: Add ESetItem::swap() and
20753           MSetItem::swap().
20755 Sun Oct 28 16:33:34 GMT 2007  Olly Betts <olly@survex.com>
20757         * PLATFORMS: Update from tinderbox and buildbot.
20759 Sun Oct 28 06:00:23 GMT 2007  Olly Betts <olly@survex.com>
20761         * matcher/queryoptimiser.cc: Remove unused variable.
20763 Sun Oct 28 05:46:28 GMT 2007  Olly Betts <olly@survex.com>
20765         * docs/remote.html: xapian-tcpsrv can handle concurrent read access
20766           so update the out-of-date information here.  Also, some new features
20767           aren't supported by the remote backend yet.
20769 Sun Oct 28 05:20:02 GMT 2007  Olly Betts <olly@survex.com>
20771         * include/xapian/queryparser.h: Update documentation comment for
20772           QueryParser::set_stemming_strategy().
20774 Sun Oct 28 05:03:03 GMT 2007  Olly Betts <olly@survex.com>
20776         * queryparser/queryparser.lemony: Fix handling of STEM_ALL.
20777         * tests/queryparsertest.cc: Update tests.  Move tables of queries to
20778           before the test functions which use them.
20780 Sat Oct 27 20:50:57 BST 2007  Olly Betts <olly@survex.com>
20782         * api/omqueryinternal.cc,include/xapian/query.h,
20783           matcher/queryoptimiser.cc: Eliminate Query::Internal::dbl_parameter
20784           to avoid any risk of ABI breakage.
20786 Sat Oct 27 17:08:46 BST 2007  Olly Betts <olly@survex.com>
20788         * include/xapian/query.h: Pull in <xapian/deprecated.h> explicitly.
20789           Add @deprecated note to Query::Query(Query::op, Query) explaining
20790           why it is deprecated.
20791         * include/xapian/queryparser.h: Wrap comment better.
20793 Sat Oct 27 05:37:33 BST 2007  Olly Betts <olly@survex.com>
20795         * NEWS: Merge two "testsuite" sections in draft 1.0.4 entry.
20797 Sat Oct 27 02:34:10 BST 2007  Olly Betts <olly@survex.com>
20799         * HACKING: Note specifically that std::list::size() is O(n) for GCC.
20800           Update the debian packaging checklist.
20802 Sat Oct 27 02:33:14 BST 2007  Olly Betts <olly@survex.com>
20804         * docs/intro_ir.html: Add link to the forthcoming book
20805           "Introduction to Information Retrieval", which can be read online.
20807 Sat Oct 27 02:22:36 BST 2007  Olly Betts <olly@survex.com>
20809         * docs/Makefile.am: We no longer build sourcedoc.pdf so remove it from
20810           MAINTAINERCLEANFILES.
20812 Sat Oct 27 02:20:31 BST 2007  Olly Betts <olly@survex.com>
20814         * NEWS: Mostly updated for 1.0.4.
20816 Fri Oct 26 04:57:31 BST 2007  Olly Betts <olly@survex.com>
20818         * api/omqueryinternal.cc: OP_SCALE_WEIGHT applied to MatchNothing is
20819           now handled by the Query ctor, so replace the code to handle
20820           OP_SCALE_WEIGHT in Query::Internal::simplify_matchnothing() by an
20821           assertion that the subquery isn't MatchNothing.
20823 Fri Oct 26 04:50:37 BST 2007  Olly Betts <olly@survex.com>
20825         * include/xapian/query.h: Deprecate the essentially useless
20826           constructor Query(Query::op, Query).
20827         * docs/deprecation.rst: Note this deprecation, and since the feature
20828           doesn't actually have a use, schedule it for 1.1.0.  Also schedule
20829           Enquire::register_match_decider() for 1.1.0 for the same reason.
20831 Fri Oct 26 01:00:08 BST 2007  Olly Betts <olly@survex.com>
20833         * api/omquery.cc,include/xapian/query.h: OP_SCALE_WEIGHT applied to
20834           OP_VALUE_RANGE can have no effect so ignore it.
20835         * tests/queryparsertest.cc: Update expected query descriptions.
20837 Fri Oct 26 00:23:55 BST 2007  Olly Betts <olly@survex.com>
20839         * matcher/multimatch.cc: When checkatleast is set, and we're sorting
20840           by relevance with forward ordering by docid, and the query is pure
20841           boolean, we were exiting before the checkatleast requirement was
20842           satisfied.  Then the adjustments made to the estimated and max
20843           statistics based on checkatleast meant we claimed there were
20844           exactly msize results.
20846 Thu Oct 25 00:34:14 BST 2007  Olly Betts <olly@survex.com>
20848         * matcher/localmatch.cc,matcher/multiandpostlist.cc,
20849           matcher/queryoptimiser.cc,queryparser/queryparser.cc: Fix build
20850           with --enable-assertions and --enable-log.
20852 Wed Oct 24 06:29:03 BST 2007  Olly Betts <olly@survex.com>
20854         * queryparser/queryparser.lemony: Drop out of IN_GROUP mode when we
20855           generate a BOOLEAN_FILTER token.
20856         * tests/queryparsertest.cc: Add regression test.
20858 Wed Oct 24 06:08:29 BST 2007  Olly Betts <olly@survex.com>
20860         * queryparser/queryparser.lemony: Drop special treatment for unmatched
20861           ')' at the start of the query, as it seems rather arbitrary and not
20862           particularly useful.  Reparsing seems a better approach here.
20863         * tests/queryparsertest.cc: Add regression test case for bug which
20864           dropping this special case fixes.
20866 Wed Oct 24 05:25:40 BST 2007  Olly Betts <olly@survex.com>
20868         * AUTHORS: Add Ron Kass for several bug reports.
20870 Wed Oct 24 05:13:01 BST 2007  Olly Betts <olly@survex.com>
20872         * queryparser/queryparser.lemony: Fix parsing of queries which consist
20873           only of boolean filter terms and HATE-d terms.
20874         * tests/queryparsertest.cc: Add regression tests, and a few more cases
20875           which passed before too.  Fix descriptions of queries which now give
20876           different (but equivalent) Xapian::Query object hierarchies.
20878 Wed Oct 24 04:51:56 BST 2007  Olly Betts <olly@survex.com>
20880         * queryparser/queryparser.lt: Fix warning in debug log build.
20882 Wed Oct 24 04:41:08 BST 2007  Olly Betts <olly@survex.com>
20884         * backends/flint/flint_table.cc,backends/flint/flint_table.h: Don't
20885           use class member function pointers to implement FlintTable::next()
20886           and FlintTable::prev() as we can just call the methods directly
20887           based on the sequential flag.  Profiling suggests this speeds up
20888           searches a little, the two pointers take up 16 bytes each (on
20889           x86_64) so it reduces the class size by up to 32 bytes, and the code
20890           is simpler because we no longer need to update prev_ptr and
20891           next_ptr.
20893 Wed Oct 24 00:16:06 BST 2007  Olly Betts <olly@survex.com>
20895         * api/omqueryinternal.cc: Tweak Query::get_description() to describe
20896           OP_SCALE_WEIGHT queries as '<factor> * <subquery>' rather than
20897           '<subquery> * <factor>' as the former results in more readable
20898           descriptions.
20899         * queryparser/queryparser.lemony: Use OP_SCALE_WEIGHT with factor 0.0
20900           for queries which should be purely boolean which resolves a FIXME
20901           comment in the code.
20902         * tests/queryparsertest.cc: Fix expected results for this change.
20904 Tue Oct 23 19:13:08 BST 2007  Olly Betts <olly@survex.com>
20906         * queryparser/queryparser.lemony: Some as_XXX() methods delete the
20907           object they are called on, while others don't, so rename the ones
20908           which don't to get_XXX() to make the code clearer, and make them
20909           all return Query rather than Query *.  Eliminate Term::as_query()
20910           completely - when we actually want a new object we can just call
20911           new in the caller.  op_window_query() now takes the difference
20912           between the number of terms and the total window size, and we now
20913           use a std::vector to store the generated Query objects rather than
20914           a std::list, since we know how many there will be and can reserve
20915           the required size in advance.
20917 Tue Oct 23 18:33:49 BST 2007  Olly Betts <olly@survex.com>
20919         * queryparser/queryparser.lemony: Improve comment.
20921 Mon Oct 22 21:00:05 BST 2007  Olly Betts <olly@survex.com>
20923         * queryparser/queryparser.lemony: Fix handling of LOVE and HATE
20924           following a quoted phrase.
20925         * tests/queryparsertest.cc: Add regression test.
20927 Mon Oct 22 05:23:23 BST 2007  Olly Betts <olly@survex.com>
20929         * queryparser/queryparser.lemony: Refactor so Term::as_query() calls
20930           Term::as_query_object() instead of vice versa, as this avoids
20931           calling 'new Query' quite a bit and makes a measurable difference
20932           to the speed of the QueryParser.  Fix a call to as_query() which
20933           can be as_query_object().
20935 Mon Oct 22 04:10:17 BST 2007  Olly Betts <olly@survex.com>
20937         * queryparser/queryparser.lemony: FLAG_PARTIAL with multi-prefixes
20938           would result in inflated wqf for the "normal" version of the term
20939           treated as partial.
20940         * tests/queryparsertest.cc: Add regression test.
20942 Mon Oct 22 02:34:58 BST 2007  Olly Betts <olly@survex.com>
20944         * queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
20945           Rename QueryParser::Internal::prefixes to prefixmap to avoid
20946           confusion with all the other variables which are now called
20947           "prefixes" in queryparser.lemony.  Eliminate have_prefix and
20948           instead just set prefixinfo to NULL by default.
20950 Sun Oct 21 23:56:57 BST 2007  Olly Betts <olly@survex.com>
20952         * common/omenquireinternal.h,include/xapian/enquire.h,
20953           include/xapian/query.h,matcher/: Implement a new QueryOptimiser
20954           class which can hoist the positional filters of OP_PHRASE and
20955           OP_NEAR higher up the tree and merge the "AND" inside them into
20956           any neighbouring OP_AND or OP_FILTER (bug#23).  This shaves 10% of
20957           the execution time of real world queries on real world data.  On
20958           particularly slow cases, the saving can be more dramatic - it
20959           saves 50% when tested on a log of slow cases.  OP_SCALE_WEIGHT
20960           scaling factors are now pushed down to the leaves and any leaf
20961           we a factor other than 0.0 (boolean) or 1.0 (unscaled) has
20962           its weights scaled using a ScaleWeight wrapper around the normal
20963           weighting object (bug#203).
20965 Sun Oct 21 23:46:11 BST 2007  Olly Betts <olly@survex.com>
20967         * include/xapian/query.h: Fix documentation of OP_SCALE_WEIGHT.
20968           Negative scaling factors aren't now clipped to 0, instead we
20969           throw Xapian::InvalidArgumentError.  Remove the explicit setting of
20970           OP_ELITE_SET to 10 which is no longer required.  Wrap a long comment
20971           line.
20973 Sun Oct 21 23:20:23 BST 2007  Olly Betts <olly@survex.com>
20975         * tests/api_anydb.cc: Tweak code and wrap comment.
20977 Sun Oct 21 04:53:40 BST 2007  Olly Betts <olly@survex.com>
20979         * matcher/extraweightpostlist.h: Add missing '#include "multimatch.h"'
20980           which is pulled in implicitly by some other header which always
20981           happens to be included before this one.
20983 Fri Oct 19 03:52:17 BST 2007  Olly Betts <olly@survex.com>
20985         * docs/deprecation.rst: Remove deprecation of
20986           QueryParser::add_prefix() and QueryParser::add_boolean_prefix().
20987           Reformat the tables to use the "simple table" style, and to all be
20988           126 columns wide, since that fits in a maximised terminal window
20989           without wrapping (at least on my machine!)
20991 Fri Oct 19 03:44:33 BST 2007  Olly Betts <olly@survex.com>
20993         * include/xapian/queryparser.h,queryparser/queryparser.cc,
20994           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
20995           tests/queryparsertest.cc: Since calling QueryParser::add_prefix()
20996           or QueryParser::add_boolean_prefix() a second time with the same
20997           field name was ignored before (rather than overriding as we had
20998           thought) it seems reasonable to change this behaviour.  This
20999           also avoids the need to deprecate these methods which will force all
21000           users to update their code.  Change the semantics of default_prefix
21001           - it's more useful if this overrides any default prefixes set with
21002           add_prefix(), since this allows the same QueryParser object to
21003           parse both a "general" search input which searches several fields
21004           and also a "title" search input.  Trying to set the same field
21005           as probabilistic and boolean now throws InvalidOperationError
21006           rather than UnimplementedError.
21008 Fri Oct 19 03:29:53 BST 2007  Olly Betts <olly@survex.com>
21010         * queryparser/queryparser.lt: Fix compilation.
21012 Fri Oct 19 03:28:37 BST 2007  Olly Betts <olly@survex.com>
21014         * docs/Makefile.am: We're still getting "info" messages in the
21015           generated HTML.  It seems to be impossible to get rst2html to
21016           report "info" messages to stdout without adding them to the
21017           generated document, so just drop "--verbose" to disable them
21018           completely.
21020 Thu Oct 18 18:27:28 BST 2007  Olly Betts <olly@survex.com>
21022         * queryparser/queryparser.lt: Use std::vector<> for the stack in the
21023           lemon-generated parser.  This means that the stack is no longer a
21024           fixed size, so we needn't worry about overflow, and that in typical
21025           use it'll actually use less memory (lemon defaults to a 100 entry
21026           stack).
21028 Thu Oct 18 17:23:45 BST 2007  Olly Betts <olly@survex.com>
21030         * languages/turkish.sbl: Minimise differences with Snowball SVN HEAD
21031           by stripping trailing whitespace.
21033 Mon Oct 15 15:39:26 BST 2007  Olly Betts <olly@survex.com>
21035         * backends/quartz/btree_util.h: Need "safeunistd.h" for close().
21036           Fixes build errors on mingw and with SGI's CC on IRIX.
21038 Mon Oct 15 05:30:23 BST 2007  Olly Betts <olly@survex.com>
21040         * matcher/localmatch.cc: Fix typo in comment.
21042 Mon Oct 15 05:26:35 BST 2007  Olly Betts <olly@survex.com>
21044         * common/omassert.h: Rewritten from scratch.  The new version only
21045           includes headers if assertions are enabled, which should help
21046           to speed up non-assertion builds by reducing unnecessary header
21047           inclusion.  Also, float.h and math.h are never now pulled in -
21048           instead we use the new within_DBL_EPSILON() function.  AssertNe()
21049           and AssertNeParanoid() are never actually used, so replace them with
21050           AssertRel() and AssertRelParanoid which allow the user to assert any
21051           binary relation, not just inequality.  Also, we now use rare() to
21052           give branch prediction hints for assertion tests (since the failure
21053           branch should never be taken).
21054         * common/omdebug.h,common/stringutils.h,tests/harness/testsuite.h:
21055           Replace several definitions of the STRINGIZE macro with a single
21056           version in common/stringutils.h.
21057         * backends/flint/,backends/inmemory/inmemory_database.cc,
21058           backends/multi/multi_postlist.cc,backends/quartz/,
21059           backends/remote/remote-database.cc,bin/quartzcheck.cc,
21060           bin/xapian-compact.cc,common/stringutils.h,expand/expandweight.cc,
21061           expand/ortermlist.cc,matcher/phrasepostlist.cc,
21062           matcher/scaleweightpostlist.cc,net/remoteconnection.cc,
21063           net/tcpserver.cc: Explicitly include headers which were previously
21064           being pulled in implicitly by omassert.h.
21065         * HACKING: Update the documentation for assertion calls, and document
21066           CompileTimeAssert() (which previously wasn't documented here).
21068 Mon Oct 15 05:09:15 BST 2007  Olly Betts <olly@survex.com>
21070         * common/utils.cc,common/utils.h: Add within_DBL_EPSILON() function
21071           which returns true if its two double arguments differ by less
21072           than DBL_EPSILON (currently not used anywhere).
21074 Mon Oct 15 05:03:50 BST 2007  Olly Betts <olly@survex.com>
21076         * matcher/multiandpostlist.cc: If check sets valid to true, we can't
21077           be at_end(), so check valid first as at_end() is a rare event.
21079 Mon Oct 15 05:00:18 BST 2007  Olly Betts <olly@survex.com>
21081         * matcher/: Remove code for FilterPostList, which has been unused for
21082           ages.
21084 Sun Oct 14 02:13:57 BST 2007  Olly Betts <olly@survex.com>
21086         * matcher/andpostlist.cc: AndPostList now ensures that its left is
21087           less frequent than its right (it can still be produced as an
21088           operator decay product, and sometimes left is more frequent when
21089           this happens).
21091 Sun Oct 14 00:58:20 BST 2007  Olly Betts <olly@survex.com>
21093         * matcher/multimatch.cc: Use rare() to mark rarely taken branches.
21095 Sun Oct 14 00:30:46 BST 2007  Olly Betts <olly@survex.com>
21097         * configure.ac: Add rare() and usual() macros to config.h which allow
21098           branch prediction hints to be given for compilers which support this
21099           (currently GCC and Intel C++).
21100         * HACKING: Document rare() and usual().
21102 Sat Oct 13 22:37:32 BST 2007  Olly Betts <olly@survex.com>
21104         * HACKING: Improve wording.
21106 Sat Oct 13 16:42:26 BST 2007  Olly Betts <olly@survex.com>
21108         * api/postlist.cc,common/postlist.h,matcher/: Implement a variant of
21109           PostList::skip_to() called PostList::check() which isn't required
21110           to leave the PostList on a particular docid.  This allows queries
21111           filtered by a ValueRangePostList to run around 3.5 times faster.
21112           Fixes buf#164, though there's probably scope for at least some
21113           further improvement.
21115 Sat Oct 13 16:08:07 BST 2007  Olly Betts <olly@survex.com>
21117         * matcher/multiandpostlist.cc: Fix typo bug (get_termfreq_min
21118           should be get_termfreq_max!)
21120 Sat Oct 13 15:53:52 BST 2007  Olly Betts <olly@survex.com>
21122         * matcher/multiandpostlist.cc: Fix assertion (should be <= not <).
21124 Fri Oct 12 01:20:05 BST 2007  Olly Betts <olly@survex.com>
21126         * HACKING: Note that rst2html may be installed as rst2html.py.
21128 Fri Oct 12 01:10:11 BST 2007  Olly Betts <olly@survex.com>
21130         * matcher/localmatch.cc: Tweak formatting.
21132 Thu Oct 11 22:58:36 BST 2007  Olly Betts <olly@survex.com>
21134         * tests/: svn:ignore: Add termgentest and termgentest.exe.
21136 Thu Oct 11 16:18:03 BST 2007  Olly Betts <olly@survex.com>
21138         * configure.ac: If rst2html isn't found, also look for rst2html.py,
21139           which archlinux reportedly installs it as.
21141 Thu Oct 11 16:09:20 BST 2007  Olly Betts <olly@survex.com>
21143         * matcher/: Round the result of all get_termfreq_est() calculations to
21144           the nearest integer instead of rounding down.
21146 Thu Oct 11 15:40:48 BST 2007  Olly Betts <olly@survex.com>
21148         * matcher/: Add new PostList subclass MultiAndPostList which handles
21149           a multi-way AND operation in a single class.  This allows us to
21150           optimise some cases of 3 or more way AND operations much better
21151           and gives a 16-17% performance improvement in tests using real-world
21152           query logs.
21153         * tests/api_anydb.cc: MultiAndPostList rounds get_termfreq_est()
21154           calculations to the nearest integer (rather than always rounding
21155           down) so adjust the expected answers in test_matches.
21157 Thu Oct 11 15:14:27 BST 2007  Olly Betts <olly@survex.com>
21159         * matcher/selectpostlist.cc: Explicitly qualify next() as
21160           SelectPostList::next().
21162 Thu Oct 11 13:04:40 BST 2007  Olly Betts <olly@survex.com>
21164         * README: Remove the ancient history lesson - this material is better
21165           left to the history page on the website.
21167 Thu Oct 11 00:33:34 BST 2007  Olly Betts <olly@survex.com>
21169         * matcher/branchpostlist.h: Fix comment typo.
21171 Thu Oct 11 00:28:29 BST 2007  Olly Betts <olly@survex.com>
21173         * api/postlist.cc,backends/flint/flint_alldocspostlist.cc,
21174           backends/flint/flint_alldocspostlist.h,common/postlist.h,matcher/:
21175           Eliminate several implementations of open_position_list and
21176           read_position_list in favour of default ones in the PostList base
21177           class which throw InvalidOperationError.  Change the default
21178           get_wdf implementation to also throw InvalidOperationError.
21180 Wed Oct 10 22:27:44 BST 2007  Olly Betts <olly@survex.com>
21182         * docs/install.html: Improve the remainder.  This documents now just
21183           gives a brief overview of building, suitable for most common cases,
21184           and defers to the INSTALL document in each tarball for more details.
21186 Wed Oct 10 21:51:39 BST 2007  Olly Betts <olly@survex.com>
21188         * common/leafpostlist.h: Rewrite header.
21189         * api/Makefile.mk,api/leafpostlist.cc: Add new source file for
21190           virtual, and non-trivial, non-virtual, methods of LeafPostList.
21191         * api/omdatabase.cc,backends/inmemory/inmemory_database.h,
21192           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
21193           backends/remote/net_postlist.h,common/emptypostlist.h: Add missing
21194           '#include "omassert.h"' which was previously pulled in implicitly
21195           via '#include "leafpostlist.h"'.
21196         * backends/inmemory/inmemory_database.h: Remove unused '#include
21197           <stdlib.h>'.
21198         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
21199           MultiPostList::set_termweight() is never used, so eliminate it.
21200         * backends/remote/net_postlist.cc: Rename parameter "weight" to
21201           "min_weight" to avoid clash with new member variable of
21202           LeafPostList.
21203         * matcher/emptysubmatch.cc,matcher/localmatch.cc: Don't call
21204           LeafPostList::set_termweight() with a BoolWeight object - the
21205           default behaviour is now equivalent.
21207 Wed Oct 10 18:18:09 BST 2007  Olly Betts <olly@survex.com>
21209         * docs/install.html: Improve the first half.
21211 Wed Oct 10 16:32:57 BST 2007  Olly Betts <olly@survex.com>
21213         * common/postlist.h: Rewrite header.
21214         * api/Makefile.mk,api/postlist.cc: Add new source file for virtual
21215           methods of Xapian::PostingIterator::Internal.
21216         * api/omdatabase.cc,backends/flint/flint_postlist.h,
21217           backends/quartz/quartz_alldocspostlist.cc,
21218           backends/quartz/quartz_postlist.h,matcher/valuerangepostlist.cc:
21219           Add missing '#include "autoptr.h"' which was previously pulled in
21220           implicitly via '#include "postlist.h"'.
21222 Wed Oct 10 16:25:08 BST 2007  Olly Betts <olly@survex.com>
21224         * tests/quartztest.cc: Remove quartztest's test_postlist1 and
21225           test_postlist2.
21226         * tests/api_db.cc: Enhance test_termstats to cover part of the removed
21227           tests.  Enhance test_postlist1 to check more long terms.  Eliminate
21228           the helper function from test_postlist3.
21229         * tests/api_wrdb.cc: Add test_postlist7 to cover the rest of what the
21230           removed tests checked which isn't already checked elsewhere.
21232 Wed Oct 10 02:29:44 BST 2007  Olly Betts <olly@survex.com>
21234         * HACKING: Update the release checklist.
21236 Wed Oct 10 02:01:03 BST 2007  Olly Betts <olly@survex.com>
21238         * matcher/scaleweightpostlist.cc,matcher/scaleweightpostlist.h: Move
21239           virtual dtor definition out of header.
21241 Wed Oct 10 01:41:05 BST 2007  Olly Betts <olly@survex.com>
21243         * matcher/msetpostlist.cc: Avoid virtual method overhead in
21244           MSetPostList::recalc_maxweight().
21246 Wed Oct 10 00:16:00 BST 2007  Olly Betts <olly@survex.com>
21248         * common/expandweight.h,expand/expand.cc,expand/expandweight.cc: We
21249           never actually use ExpandWeight::get_maxweight(), so remove it.
21251 Tue Oct 09 16:27:54 BST 2007  Olly Betts <olly@survex.com>
21253         * backends/flint/flint_database.cc,backends/flint/flint_version.cc,
21254           backends/flint/flint_version.h: Don't try to upgrade a flint
21255           database if we're only reading it, or it's already the latest
21256           version.
21258 Mon Oct 08 10:14:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21260         * tests/api_nodb.cc: Rename test_scaleweightmatchnothing1 to
21261           test_scaleweight3 so all the scaleweight tests can be run
21262           together more easily.  Add test_scaleweight4 to test that scaling
21263           by a weight close to 1 is optimised away.
21265 Sun Oct 07 12:20:14 BST 2007  Olly Betts <olly@survex.com>
21267         * include/xapian/database.h: Add explicit note that
21268           Database::get_metadata() returns an empty string when the backend
21269           doesn't support user-specified metadata, and that
21270           WritableDatabase::set_metadata() throws UnimplementedError in this
21271           case.  Add note about current behaviour with multidatabases.
21273 Sun Oct 07 10:58:24 BST 2007  Olly Betts <olly@survex.com>
21275         * api/omqueryinternal.cc: No need to use AutoPtr<> here now.
21277 Sun Oct 07 10:54:05 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21279         * common/remoteprotocol.h: Bump the network protocol minor
21280           revision, since we've added a query operator (OP_SCALE_WEIGHT)
21281           and the server will need to be updated to understand serialised
21282           queries containing it.
21284 Sun Oct 07 01:54:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21286         * api/omqueryinternal.cc,include/xapian/query.h,matcher/,
21287           tests/api_anydb.cc,tests/api_nodb.cc,tests/internaltest.cc:
21288           Rename OP_MULT_WEIGHT to OP_SCALE_WEIGHT and MultWeight to
21289           ScaleWeight, and move it to before OP_MULT_WEIGHT (to remove the
21290           gap in the enum).
21291           Don't do an epsilon test to compare the weight to zero (when
21292           checking if it's effectively a boolean query) - do an exact
21293           comparison instead.  Raise an exception if the parameter for
21294           OP_SCALE_WEIGHT is < 0 (instead of clipping it to 0).  Adjust
21295           weights accordingly.
21296           Add test_scaleweight2() to test a query with some weights
21297           multiplied by 0, and some by a different factor.
21299 Wed Oct 03 17:23:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21301         * api/omqueryinternal.cc,tests/api_nodb.cc: Fix (and test) for a
21302           double delete if OP_MULT_WEIGHT was applied to an empty query.
21304 Mon Oct 01 13:20:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21306         * NEWS: Update
21307         * net/remoteconnection.cc: Back out previous change - I was
21308           confused, the code was previously fine, and the change broke it.
21310 Mon Oct 01 13:13:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21312         * api/omqueryinternal.cc: Fix access of uninitialised member when
21313           unserialising a mult-weight query.
21314         * tests/internaltest.cc: Add a regression test for unserialisationg
21315           of mult-weight queries.
21317 Mon Oct 01 13:11:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21319         * net/remoteconnection.cc: After calling read(), check for received
21320           == 0 after checking for errors, so that if an EINTR occurs in
21321           read, we don't report EOF instead of retrying.
21323 Sun Sep 30 23:20:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21325         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h: Add
21326           OP_MULT_WEIGHT operator, and a new Query constructor which takes
21327           a single subquery and a "double" parameter - currently only
21328           useful for OP_MULT_WEIGHT.  Add dbl_parameter to Query::Internal,
21329           to hold this parameter.  Add serialisation of OP_MULT_WEIGHT
21330           using "." to represent the operator.  Drop OP_MULT_WEIGHT
21331           operators which have a parameter of 1 (or very close) when
21332           simplifying, since these have no effect.
21333         * matcher/multweightpostlist.cc,matcher/multweightpostlist.h: New
21334           files, implementing a postlist which multiplies the weights from
21335           its single sub-postlist by a parameter.
21336         * matcher/Makefile.mk: Add new files.
21337         * matcher/localmatch.cc: Add support for the OP_MULT_WEIGHT query
21338           operator, which produces a MultWeightPostList if the associated
21339           parameter is greater than DBL_EPSILON, and produces a boolean query
21340           otherwise.
21341         * tests/api_anydb.cc: Add tests for OP_MULT_WEIGHT operator with
21342           various queries, and various multipliers.
21343         * NEWS: Update
21345 Sun Sep 30 23:13:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21347         * tests/harness/testsuite.h: Add TEST_NOT_EQUAL_DOUBLE() macro.
21348         * tests/harness/testsuite.cc: Add special
21349           case to TEST_EQUAL_DOUBLE_() for exact equality of the supplied
21350           arguments.  This is tidier in general, because it avoids "inf"
21351           being produces by the calculation, but is only actually necessary
21352           in the case where the arguments are both exactly 0; it all works
21353           out nicely for other values of the arguments.
21355 Sun Sep 30 21:12:40 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21357         * tests/queryparsertest.cc: #define XAPIAN_DEPRECATED to disable
21358           compiler warnings about the deprecated forms of add_prefix() and
21359           add_boolean_prefix().
21361 Sun Sep 30 21:07:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21363         * api/Makefile.mk,docs/Makefile.am,docs/deprecation.rst,
21364           include/Makefile.mk,include/xapian.h,include/xapian/queryparser.h,
21365           queryparser/queryparser.cc,queryparser/queryparser.lemony,
21366           queryparser/queryparser_internal.h,tests/: Re-apply changes which
21367           needed more thought or more work before being included in a
21368           release.
21369         * NEWS: Update with current descriptions of these changes.
21371 Sun Sep 30 20:22:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21373         * tests/valgrind.supp: Add further suppressions needed for the
21374           version of zlib on ubuntu gutsy.
21376 Fri Sep 28 15:38:18 BST 2007  Olly Betts <olly@survex.com>
21378         * NEWS: Final (?) update for 1.0.3.
21380 Fri Sep 28 15:37:22 BST 2007  Olly Betts <olly@survex.com>
21382         * PLATFORMS: Another small update.
21384 Fri Sep 28 15:30:17 BST 2007  Olly Betts <olly@survex.com>
21386         * HACKING: Add link to the 1.0.N tracker bug.
21388 Fri Sep 28 14:04:06 BST 2007  Olly Betts <olly@survex.com>
21390         * PLATFORMS: More updates.
21392 Fri Sep 28 13:45:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21394         * include/xapian/database.h: Document that empty metadata keys will
21395           cause an exception from get_metadata() and set_metadata().
21396         * api/omdatabase.cc: Cause empty metadata keys to raise an
21397           InvalidArgumentError if they're passed to set_metadata() or
21398           get_metadata().
21399         * tests/api_wrdb.cc: Add test_metadata3, to check behaviour with an
21400           empty metadata key.
21402 Fri Sep 28 13:30:49 BST 2007  Olly Betts <olly@survex.com>
21404         * PLATFORMS: Updates from tinderbox.
21406 Fri Sep 28 13:22:16 BST 2007  Olly Betts <olly@survex.com>
21408         * include/xapian/database.h: Clarify support for empty metadata keys.
21410 Fri Sep 28 11:00:08 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21412         * tests/valgrind.supp: Add second version of the zlib end condition
21413           check which works for the version of zlib in Ubuntu gutsy; ie,
21414           version 1.2.3.3, where the error occurs in the function called
21415           directly by deflate, rather than two levels below it.
21417 Fri Sep 28 03:11:11 BST 2007  Olly Betts <olly@survex.com>
21419         * configure.ac: Update for 1.0.3.
21421 Fri Sep 28 03:05:10 BST 2007  Olly Betts <olly@survex.com>
21423         * api/Makefile.mk,docs/Makefile.am,docs/deprecation.rst,
21424           include/Makefile.mk,include/xapian.h,include/xapian/queryparser.h,
21425           queryparser/queryparser.cc,queryparser/queryparser.lemony,
21426           queryparser/queryparser_internal.h,tests/: Back out changes which
21427           need more thought or more work in the interests of getting 1.0.3
21428           out this month.
21430 Fri Sep 28 03:04:19 BST 2007  Olly Betts <olly@survex.com>
21432         * NEWS: Update with recent changes.
21434 Fri Sep 28 01:55:42 BST 2007  Olly Betts <olly@survex.com>
21436         * docs/deprecation.rst: Revert to the previous deprecation policy.
21438 Fri Sep 28 01:20:34 BST 2007  Olly Betts <olly@survex.com>
21440         * include/xapian/enquire.h: Rephrase since "should be in the MSet"
21441           might be misunderstood.
21443 Fri Sep 28 01:12:47 BST 2007  Olly Betts <olly@survex.com>
21445         * AUTHORS,docs/Makefile.am,docs/glossary.rst,docs/index.html: Add
21446           glossary put together by Jenny Black, also incorporating entries
21447           from Deron Meranda's glossary on the wiki.
21449 Thu Sep 27 23:06:30 BST 2007  Olly Betts <olly@survex.com>
21451         * docs/stemming.html: Reorder the initial paragraphs so we actually
21452           answer the question "What is a stemming algorithm?" up front.
21454 Thu Sep 27 22:15:36 BST 2007  Olly Betts <olly@survex.com>
21456         * matcher/valuerangepostlist.cc: Call ValueRangePostList::next()
21457           explicitly to avoid the overhead of virtual method dispatch.
21459 Thu Sep 27 14:43:25 BST 2007  Olly Betts <olly@survex.com>
21461         * common/termlist.h: Don't need to forward declare
21462           Xapian::Internal::ExpandWeight here.
21464 Thu Sep 27 14:36:00 BST 2007  Olly Betts <olly@survex.com>
21466         * common/termlist.h: Add missing (but indirectly included) '#include
21467           <xapian/base.h>'.
21469 Fri Sep 21 18:00:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21471         * docs/deprecation.rst: Add deprecation for
21472           Database::positionlist_begin() throwing DocNotFoundError , for
21473           same reason as deprecating it throwing RangeError.  Also, add
21474           deprecation for QueryParser::add_prefix(f, p) and
21475           add_boolean_prefix() - replaced by three argument form of
21476           add_prefix.  Also, add a policy that we don't add
21477           XAPIAN_DEPRECATED when there's no replacement for the deprecated
21478           feature in the last x.x.0 release.
21479         * include/xapian/queryparser.h: Add @deprecated to documentation
21480           comments for add_prefix(f, p) and add_boolean_prefix() (but don't
21481           add XAPIAN_DEPRECATED() macro for now).
21483 Fri Sep 21 16:13:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21485         * include/xapian/queryparser.h: Fix copy and paste errors in
21486           documentation comment, and hopefully clarify it somewhat.
21488 Fri Sep 21 15:50:40 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21490         * tests/queryparsertest.cc: Initialise the default prefix from
21491           prefixes.find(""), allowing multiple default prefixes to be set
21492           by calling add_prefix() with an empty field name.
21493         * queryparser/queryparser.lemony: Several more tests; mainly for
21494           the new default_prefix functionality, but also a bit more
21495           coverage for multiple prefixes in general.
21497 Fri Sep 21 15:04:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21499         * include/xapian/queryparser.h,queryparser/queryparser.cc: API
21500           addition: Revert previous change to behaviour of
21501           QueryParser::add_prefix and QueryParser::add_boolean_prefix
21502           methods, to avoid API change within a release series.  Add new
21503           QueryParser::add_prefix() form which takes three parameters; the
21504           third parameter is a value from a new "prefix_type" enum.
21505         * queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
21506           Internal changes to allow multiple filters to be set for a single
21507           field:
21508            - Remove the PrefixInfoList object again - instead add a list of
21509              prefixes to PrefixInfo.  We only aim to support one type of
21510              prefix for a given field, so the extra flexibility given by
21511              PrefixInfoList is a districation.
21512            - Change filter_group_id to be based on a list of prefixes,
21513              instead of a single prefix.
21514            - Change Term objects to store a list of prefixes instead of a
21515              single prefix.  make_term() now takes a prefix argument and
21516              makes a single term.  Term::as_... methods iterate through the
21517              prefix list and OR together the resulting terms.
21518            - Change TermList object to store a list of Terms instead of
21519              Queries, and also to keep track of whether the prefix lists
21520              for those Terms are all the same.  When they are the same,
21521              generate separate phrases for each prefix, and OR them
21522              togeher, instead of generating phrases of "OR" groups of
21523              terms.  Remove the unused "TermList::add_term()" method.
21524         * tests/queryparsertest.cc: Add simple tests of repeated inline
21525           fields, phrases with multiple prefixed fields, tests of backwards
21526           compatible behaviour of add_prefix(field, prefix), and
21527           add_boolean_prefix(), and of the new add_prefix() form with
21528           incompatible types.
21530 Thu Sep 20 02:13:36 BST 2007  Olly Betts <olly@survex.com>
21532         * NEWS: Update with changes since 1.0.2.
21534 Wed Sep 19 20:00:43 BST 2007  Olly Betts <olly@survex.com>
21536         * backends/flint/flint_table.cc: Fix "Key_" in exception message to
21537           say "Key" (the result of overzealous search-and-replace).
21539 Wed Sep 19 17:08:16 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21541         * include/xapian/queryparser.h,queryparser/queryparser.cc,
21542           queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
21543           Handle repeated calls to QueryParser::add_boolean_prefix() with
21544           the same field - this will generate multiple terms for each
21545           occurrence of the field in the query.  Involves reorganising the
21546           internal representation of prefixes, to hold a list of PrefixInfo
21547           objects for each field, instead of a single object.  This also
21548           paves the way towards handling for multiple calls to
21549           QueryParser:add_prefix() with the same field, and allowing
21550           add_{boolean_}prefix() with an empty field to set the default
21551           prefix handling, but the behaviour of this are currently
21552           unchanged.  Technically, this could be considered an API change,
21553           but the previous behaviour (of using only the most recent value
21554           set by add_boolean_prefix) was unintentional and undocumented,
21555           and seems unlikely to have been deliberately used.
21556         * tests/queryparsertest.cc: Add a very simple test for repeated
21557           boolean_prefix fields; several more are needed.  Also, a
21558           commented out test of repeated non-boolean prefix fields.
21560 Tue Sep 18 23:28:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21562         * queryparser/queryparser.lemony: Remove unused variable
21563           "term_group".
21565 Tue Sep 18 16:56:37 BST 2007  Olly Betts <olly@survex.com>
21567         * api/matchspy.cc,include/xapian/matchspy.h: Use a set rather than a
21568           map to store the "multivalues" flags.
21570 Mon Sep 17 14:10:47 BST 2007  Olly Betts <olly@survex.com>
21572         * include/xapian/matchspy.h: Fix documentation comment typo.
21574 Sun Sep 16 04:13:20 BST 2007  Olly Betts <olly@survex.com>
21576         * net/remoteconnection.cc: Fix compiler warning in mingw build.
21578 Sun Sep 16 02:59:54 BST 2007  Olly Betts <olly@survex.com>
21580         * backends/flint/flint_database.cc,tests/api_wrdb.cc: Check length of
21581           new terms is at most 245 bytes for flint in add_document() and
21582           replace_document() so that the API user gets an error there rather
21583           than when flush() is called (explicitly or implicitly).  Fixes
21584           bug#44.
21586 Sat Sep 15 20:11:36 BST 2007  Olly Betts <olly@survex.com>
21588         * backends/flint/flint_version.cc: Add missing include of
21589           msvc_posix_wrapper.h.
21591 Sat Sep 15 17:58:35 BST 2007  Olly Betts <olly@survex.com>
21593         * api/omdatabase.cc,backends/database.cc,
21594           backends/flint/flint_database.cc,backends/flint/flint_database.h,
21595           backends/flint/flint_version.cc,
21596           backends/inmemory/inmemory_database.cc,
21597           backends/inmemory/inmemory_database.h,common/database.h,
21598           include/xapian/database.h,tests/api_wrdb.cc: Add support for user
21599           specified metadata (bug#143).
21601 Sat Sep 15 02:26:40 BST 2007  Olly Betts <olly@survex.com>
21603         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h:
21604           Implement FlintCursor::find_entry_ge() a little more efficiently
21605           (we could do better still by modifying FlintTable too).
21607 Sat Sep 15 00:56:54 BST 2007  Olly Betts <olly@survex.com>
21609         * backends/flint/flint_cursor.cc: If we found the exact key, just copy
21610           it to current_key.
21612 Fri Sep 14 21:52:45 BST 2007  Olly Betts <olly@survex.com>
21614         * backends/flint/: Overhaul FlintAllDocsPostList.
21616 Fri Sep 14 19:20:56 BST 2007  Olly Betts <olly@survex.com>
21618         * backends/flint/flint_alltermslist.cc: Rework
21619           FlintAllTermsList::skip_to() to use FlintCursor::find_entry_ge().
21621 Fri Sep 14 17:45:06 BST 2007  Olly Betts <olly@survex.com>
21623         * backends/flint/flint_cursor.h: Improve documentation comment.
21625 Fri Sep 14 17:28:17 BST 2007  Olly Betts <olly@survex.com>
21627         * backends/flint/flint_spellingwordslist.cc,
21628           backends/flint/flint_synonym.cc: Use FlintCursor::find_entry_ge().
21629         * backends/flint/flint_synonym.h: Use FlintCursor::find_entry_lt().
21630         * backends/flint/flint_alltermslist.h: Use FlintCursor::find_entry_lt()
21631           and skip any keys before "\x00\xff" to allow for extra metadata
21632           keys.
21634 Fri Sep 14 15:26:04 BST 2007  Olly Betts <olly@survex.com>
21636         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: The
21637           reason why a deleted key is still visible to the cursor is that it
21638           is running over the previous revision of the tree.  So we don't
21639           need to call find_entry() at all - we can just call next().  Also
21640           extend FlintCursor::del() to return whether the cursor is positioned
21641           (like FlintCursor::next() does).
21642         * backends/flint/flint_postlist.cc: Use the return value of
21643           FlintCursor::del().
21645 Fri Sep 14 15:10:39 BST 2007  Olly Betts <olly@survex.com>
21647         * tests/Makefile.am: Reorder the testdata/flint-x.y.z files
21648           consistently.
21650 Fri Sep 14 12:48:04 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21652         * configure.ac: Add "tar-ustar" option to AM_INIT_AUTOMAKE.  This
21653           is needed to avoid a failure of make dist due to filepaths of
21654           more than 99 characters (in the generated documentation: the
21655           relevant filepaths are for the NumberValueRangeProcessor class,
21656           and extend to 103 characters).  Automake documentation implies
21657           that tar-v7 is the default format, which doesn't support
21658           filepaths longer than 99 characters portably; ustar allows 256
21659           characters.  The automake documentation says that the ustar
21660           format "is believed to be old enough to be portable"; if we come
21661           across problems due to the format change we could consider
21662           renaming files to reduce the filepath length.
21663         * tests/Makefile.am: Remove
21664           testdata/flint-1.0.2/{value,position}.{baseA,DB} from
21665           distribution, since they don't actually exist.  Fixes make dist.
21667 Fri Sep 14 10:45:35 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21669         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Add
21670           FlintCursor::find_entry_gt(), and use it instead of
21671           flint_entry_ge() in FlintCuror::del().  This fixes failure of
21672           deldoc4 test.  I'm not sure why find_entry() can return true
21673           immediately after the key it's searching for was deleted with
21674           B->del(), though: that merits further investigation.
21676 Fri Sep 14 04:57:14 BST 2007  Olly Betts <olly@survex.com>
21678         * bin/xapian-inspect.cc: Avoid comparing char with 0 - on platforms
21679           where char is unsigned by default this can give a compiler warning.
21681 Fri Sep 14 03:40:18 BST 2007  Olly Betts <olly@survex.com>
21683         * bin/xapian-compact.cc: Removed unused variable.
21685 Fri Sep 14 01:56:36 BST 2007  Olly Betts <olly@survex.com>
21687         * backends/flint/flint_alltermslist.cc: Fix comment typo.
21689 Fri Sep 14 01:51:52 BST 2007  Olly Betts <olly@survex.com>
21691         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Add
21692           FlintCursor::find_entry_lt() and FlintCursor::find_entry_ge()
21693           which we can implement more efficiently (in the future) than
21694           user code calling FlintCursor::find_entry() and then having to
21695           adjust the cursor position in some cases.
21697 Thu Sep 13 14:52:34 BST 2007  Olly Betts <olly@survex.com>
21699         * backends/flint/flint_alltermslist.cc: FlintCursor::after_end() is
21700           never true after FlintCursor::find_entry() so remove check for this
21701           case!
21703 Thu Sep 13 03:11:19 BST 2007  Olly Betts <olly@survex.com>
21705         * backends/flint/flint_alltermslist.h,backends/flint/flint_database.cc,
21706           backends/flint/flint_database.h: Don't pass FlintPostListTable
21707           pointer to FlintAllTermsList - it can find this via the database
21708           if we make it FlintDatabase instead of Database::Internal.
21710 Thu Sep 13 02:07:19 BST 2007  Olly Betts <olly@survex.com>
21712         * backends/flint/: Read/write the metainfo key from FlintDatabase to
21713           avoid having to pass a huge long list of values across once we start
21714           to store more statistics.
21716 Thu Sep 13 02:03:46 BST 2007  Olly Betts <olly@survex.com>
21718         * backends/database.cc,common/database.h: Move definitions of virtual
21719           methods out of the header file.
21721 Thu Sep 13 01:33:49 BST 2007  Olly Betts <olly@survex.com>
21723         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
21724           Store the total_length and lastdocid values in FlintDatabase object.
21726 Wed Sep 12 20:27:49 BST 2007  Olly Betts <olly@survex.com>
21728         * matcher/multimatch.cc: Eliminate a block which used to scope some
21729           variables which have now moved.  Unify debug output from different
21730           cases after the match.  Remove half-finished comment which doesn't
21731           seem to be trying to say anything useful.
21733 Wed Sep 12 20:20:18 BST 2007  Olly Betts <olly@survex.com>
21735         * tests/api_anydb.cc: In checkatleast2, the total number of matching
21736           documents in the database is 5, so use TEST_EQUAL instead of
21737           TEST_GREATER_OR_EQUAL to compare get_matches_lower_bound() with 5.
21739 Wed Sep 12 17:55:00 BST 2007  Olly Betts <olly@survex.com>
21741         * backends/flint/flint_database.h: Fix some comment typos and
21742           outdated information.  Remove some superfluous uses of "virtual".
21744 Wed Sep 12 17:15:58 BST 2007  Olly Betts <olly@survex.com>
21746         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
21747           Failing to create a flint or quartz database because we couldn't
21748           create the directory for it now throws DatabaseCreateError not
21749           DatabaseOpeningError.
21750         * tests/api_db.cc: Update test cases.
21752 Wed Sep 12 15:40:16 BST 2007  Olly Betts <olly@survex.com>
21754         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
21755           If we reach the flush threshold during a transaction, flush the
21756           postlist changes, but don't actually commit them.
21758 Wed Sep 12 14:12:52 BST 2007  Olly Betts <olly@survex.com>
21760         * common/msvc_posix_wrapper.cc,common/msvc_posix_wrapper.h: Add
21761           msvc_posix_rename() which can rename a file on top of another file.
21762         * common/stringutils.h: Add common_prefix_length() function.
21763         * backends/flint/: Clean up FlintWritableDatabase - it now just
21764           inherits from FlintDatabase which allows several virtual methods
21765           which just forwarded to FlintDatabase to be dropped.  Also, we
21766           now no longer need to pass FlintTable objects to other classes
21767           - they can just find the tables they want via the database pointer.
21768           The never-used "store_termfreqs" flag has been dropped from the
21769           termlist table entries - existing 1.0.x flint databases will be
21770           automatically upgraded to the new version.  Opening a database
21771           now calls stat() less, so should be slightly more efficient.
21772           And TermIterator::positionlist_count() now works for the flint
21773           backend.
21774         * tests/Makefile.am,tests/api_db.cc,tests/testdata/flint-1.0.2/: New
21775           test flintbackwardcompat2 which tests that we can open a flint
21776           database from 1.0.2.
21777         * tests/api_wrdb.cc: New test adddoc4 which checks that termlists
21778           handle an initial term of any valid length correctly.
21779         * tests/testdata/flint-1.0.1/postlist.DB: Mark as a binary file in
21780           SVN.
21782 Tue Sep 11 23:02:56 BST 2007  Olly Betts <olly@survex.com>
21784         * backends/inmemory/inmemory_database.cc,
21785           backends/inmemory/inmemory_database.h: Implement
21786           TermIterator::positionlist_count() for the inmemory backend.
21787         * tests/api_posdb.cc: Add feature test for
21788           TermIterator::positionlist_count() (which currently skips for all
21789           backends except inmemory).
21791 Tue Sep 11 03:43:30 BST 2007  Olly Betts <olly@survex.com>
21793         * backends/flint/flint_database.cc: Make sure flush_threshold gets
21794           initialised.
21795         * backends/flint/flint_database.h: Change type of flush_threshold from
21796           `size_t' to `Xapian::doccount' for consistency with the type of
21797           changes_made.
21799 Tue Sep 11 03:19:37 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21801         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
21802           Change flush_threshold from static to non-static, and set it for
21803           each FlintWritableDatabase based on the value of the
21804           XAPIAN_FLUSH_THRESHOLD environment variable at the time the
21805           database was opened, instead of caching the value for each future
21806           database which is opened.
21808 Tue Sep 11 02:59:45 BST 2007  Olly Betts <olly@survex.com>
21810         * docs/Makefile.am: When running rst2html, use "--exit-status=warning"
21811           rather than "--strict".  The former actually gives a non-zero exit
21812           status for a warning or worse, while the former doesn't, but does
21813           include any "info" messages in the output HTML.
21815 Tue Sep 11 02:38:30 BST 2007  Olly Betts <olly@survex.com>
21817         * docs/deprecation.rst: Add "Database::positionlist_begin() throwing
21818           RangeError".
21820 Tue Sep 11 00:52:27 BST 2007  Olly Betts <olly@survex.com>
21822         * HACKING: Document a few more "coding standards".
21824 Mon Sep 10 21:34:23 BST 2007  Olly Betts <olly@survex.com>
21826         * examples/delve.cc,examples/simpleexpand.cc,net/tcpserver.cc,
21827           queryparser/queryparser.cc,queryparser/queryparser.lemony: Add more
21828           missing "#include <string.h>" instances.
21830 Mon Sep 10 20:24:25 BST 2007  Olly Betts <olly@survex.com>
21832         * net/serialise.cc: Add missing "#include <string.h>".
21834 Sun Sep 09 15:38:11 BST 2007  Olly Betts <olly@survex.com>
21836         * backends/flint/flint_spelling.h,backends/flint/flint_synonym.h,
21837           backends/flint/flint_table.h: Fix typo (Z_DEFAULT_COMPRESSION
21838           where it should be Z_DEFAULT_STRATEGY) which meant that zlib
21839           compression wasn't enabled for the spelling or synonym tables.
21841 Fri Sep 07 19:31:44 BST 2007  Olly Betts <olly@survex.com>
21843         * docs/spelling.rst: Fix typo.
21845 Thu Sep 06 15:02:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21847         * api/editdistance.cc: Fix off-by-one error in loop bounds when
21848           setting up fkp array initially.  Fixes bug #194.
21849         * tests/api_wrdb.cc: Add regression test for #194, spell5.
21851 Thu Sep 06 14:31:15 BST 2007  Olly Betts <olly@survex.com>
21853         * tests/harness/testsuite.cc: More localised fix for preserving the
21854           start of the valgrind report when in verbose mode.  Rework the code
21855           which pulls out the start of the report to summarise why the test
21856           failed.
21858 Thu Sep 06 14:17:44 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21860         * tests/harness/testsuite.cc: When displaying valgrind output, seek
21861           back to the start of the valgrind output for the current test
21862           before dumping it to stdout: previously, the earlier check for the
21863           valgrind error message to display (when not using -v) caused the
21864           first 1024 bytes of the valgrind output to get dropped.
21866 Tue Sep 04 20:13:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21868         * matcher/multimatch.cc: For remote submatches, keep a count of
21869           matches which we know exist, but we don't get passed from the
21870           submatch.  These can be detected by checking for the lowerbound
21871           on the matches in the submatch being greater than the index of
21872           the last item in the returned submset.  When the match is over,
21873           use this count, together with docs_matched, to adjust the lower
21874           bound and estimate (and upper bound, if we've not seen as many
21875           documents as we were asked to check for).  Fixes checkatleast2
21876           and checkatleast3 in the remote database case.
21877         * tests/harness/testsuite.h: Add TEST_GREATER_OR_EQUAL,
21878           TEST_GREATER, TEST_LESSER_OR_EQUAL and TEST_LESSER macros, which
21879           display the values of the arguments if they fail.
21880         * tests/api_anydb.cc: Use TEST_GREATER_OR_EQUAL and TEST_EQUAL in
21881           checkatleast2 and checkatleast3, to make failures easier to
21882           debug.
21884 Tue Sep 04 18:16:49 BST 2007  Olly Betts <olly@survex.com>
21886         * matcher/multimatch.cc: Restructure to make the control flow clearer.
21887           Rewrap some comments which got wrapped to ~82 columns somehow.
21889 Tue Sep 04 17:21:49 BST 2007  Olly Betts <olly@survex.com>
21891         * docs/overview.html: Restore the HTML header I accidentally deleted
21892           in November 2006.
21894 Tue Sep 04 17:15:30 BST 2007  Olly Betts <olly@survex.com>
21896         * docs/overview.html: Fix typo.
21898 Tue Sep 04 13:47:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21900         * tests/api_anydb.cc: Tighten test_checkatleast3 to check for
21901           previous bug (now fixed).
21903 Tue Sep 04 13:37:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21905         * matcher/multimatch.cc: If check_at_least is greater than
21906           maxitems, but there are fewer results than check_at_least, the
21907           lower and upper bounds reported should be equal (and exact).  Fix
21908           a bug which caused this not to be the case, by checking if
21909           docs_matched < check_at_least, and forcing the bounds (and
21910           estimate) to be docs_matched in this case.
21912           Also, fix a bug when sorting by anything other than relevance,
21913           which was causing potential matches which are too low in the
21914           ranking to make the mset not to be added to the count of
21915           docs_matched, even when docs_matched < check_at_least.
21917           Also, add a few extra explanatory comments and debug log messages
21918           in get_mset().
21920 Tue Sep 04 12:43:03 BST 2007  Olly Betts <olly@survex.com>
21922         * PLATFORMS: Update from debian buildd logs.
21924 Tue Sep 04 09:57:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21926         * Makefile.am,configure.ac,msvc/genversion.pl,msvc/version.h.in:
21927           Move msvc/genversion.pl and msvc/version.h.in to win32msvc in
21928           xapian-maintainer-tools.  Remove generation of msvc/version.h
21929           from configure.in, and AC_SUBST() of MAJOR_VERSION,
21930           MINOR_VERSION and REVISION, which were only in place for this
21931           generation.  Remove msvc/version.h from distribution tarballs.
21933 Tue Sep 04 02:56:00 BST 2007  Olly Betts <olly@survex.com>
21935         * matcher/andpostlist.cc: If the database has > 2G documents then the
21936           sum of termfreq_min can overflow, so handle this case correctly.
21938 Tue Sep 04 00:05:47 BST 2007  Olly Betts <olly@survex.com>
21940         * xapian-config.in: We always need to include dependency_libs in the
21941           output of `xapian-config --libs` if shared libraries are disabled.
21943 Mon Sep 03 16:28:33 BST 2007  Olly Betts <olly@survex.com>
21945         * bin/xapian-check.cc: Allow "xapian-check db/record." and
21946           "xapian-check db/record.DB".
21948 Mon Sep 03 02:16:43 BST 2007  Olly Betts <olly@survex.com>
21950         * docs/deprecation.rst,include/xapian/enquire.h: Deprecate
21951           Enquire::register_match_decider().
21952         * api/omenquire.cc,common/omenquireinternal.h: Remove mdecider_map
21953           since the set values are never used anywhere.
21955 Sun Sep 02 20:54:33 BST 2007  Olly Betts <olly@survex.com>
21957         * HACKING: Add "update the 1.0.N tracker bug" to the release
21958           checklist.
21960 Fri Aug 31 10:44:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21962         * tests/api_db.cc,tests/api_wrdb.cc: Fix compilation of apitest,
21963           which was broken on 64 bit platforms due to size_t instead of
21964           doccount bug.
21966 Fri Aug 24 11:56:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21968         * api/matchspy.cc,include/xapian/matchspy.h: Fix uses of size_t
21969           which should have been Xapian::doccount.  Was causing compile
21970           errors on platforms where size_t and Xapian::doccount were
21971           different sizes.
21973 Fri Aug 03 20:10:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21975         * tests/api_nodb.cc: Add test_stringlistserialise1() to test the
21976           StringListSerialiser and StringListUnserialiser.  Change the list
21977           of testcases to use the TESTCASE and END_OF_TESTCASES macros.
21979 Fri Aug 03 19:53:26 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21981         * api/matchspy.cc,include/xapian/matchspy.h: Add StringListSerialiser
21982           and StringListUnserialiser classes which can be used to serialise
21983           a list of strings into a single string.  Add flag to
21984           ValueCountMatchSpy to use this to unserialise the values read
21985           from the database into multiple strings, allowing several values
21986           to be stored for a particular slot in a database: this allows
21987           multiple values of a particular facet to be stored.
21989 Thu Jul 26 16:55:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21991         * backends/flint/flint_table.cc: Change STRINGIZE to om_tostring()
21992           in error message about a key which is too long; STRINGIZE doesn't
21993           work since FLINT_BTREE_MAX_KEY_LEN is no longer a preprocessor
21994           constant - it's a C++ constant; before this change, the error
21995           message contained the literal text "FLINT_BTREE_MAX_KEY_LEN".
21997 Tue Jul 17 12:20:55 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21999         * api/matchspy.cc,include/xapian/matchspy.h: Add a
22000           MultipleMatchDecider, which calls a list of deciders in order,
22001           until one returns false.
22002         * include/xapian/enquire.h: Expand comment to say which way round
22003           the return values of the MatchDecider operator are.
22004         * tests/api_db.cc: Add test_matchfunctor3() to test the
22005           MultipleMatchDecider - also tests the ValueCountMatchSpy,
22006           incidentally.
22008 Tue Jul 17 11:10:42 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22010         * api/matchspy.cc,include/xapian/matchspy.h: Make
22011           get_most_frequent_items() private, since I'm not convinced it's
22012           useful to make it available externally.  We can always make it
22013           public again if it's useful to do so.
22014         * test/api_wrdb.cc: Update tests accordingly.
22016 Sat Jul 14 00:17:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22018         * api/matchspy.cc,include/xapian/matchspy.h: Get rid of the
22019           TopValueMatchSpy in favour of a new function
22020           "get_most_frequent_items", which processes the output of a
22021           ValueCountMatchSpy.  Add a TermCountMatchSpy which counts the
22022           occurrences of terms with a given prefix, and gives output in
22023           the same form as ValueCountMatchSpy.  Add convenience methods
22024           ValueCountMatchSpy::get_top_values() and
22025           TermCountMatchSpy::get_top_terms() which use this to return the
22026           most frequent items seen by the matchspy.
22027         * tests/api_wrdb.cc: Test the ValueCountMatchSpy, and the
22028           get_most_frequent_items() function.
22030 Fri Jul 13 18:57:30 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22032         * matcher/andpostlist.cc,tests/api_anydb.cc: Improve the lower
22033           bound on the number of matching documents for an AND query - if
22034           the sum of the lower bounds for the two sides is greater than the
22035           number of documents in the database, then some of them must have
22036           both terms.  This greatly improves the lower bound for queries of
22037           the form "<alldocuments> FILTER foo" (since FILTER is a subclass
22038           of AND, and uses the same method), but is probably a useful
22039           improvement elsewhere.
22041 Fri Jul 13 17:53:46 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22043         * docs/valueranges.rst: Correct out-of-date reference to
22044           float_to_string, spotted by Enrico Zini.
22046 Wed Jul 11 22:54:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22048         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
22049           Move ValueAndFrequency out of the TopValueMatchSpy class - it
22050           doesn't seem to be possible to wrap it with swig without doing
22051           this, and it doesn't seem much less tidy.
22053 Wed Jul 11 18:03:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22055         * api/matchspy.cc,include/xapian/matchspy.h: Split MatchSpy into a
22056           base class (ValueCountMatchSpy), which just counts the values in
22057           the documents it sees, and a subclass (CategorySelectMatchSpy)
22058           which does the grouping into categories, and scores the
22059           categories.  Add another subclass (TopValueMatchSpy) which
22060           calculates a sorted vector holding the most frequent values.
22061         * tests/api_wrdb.cc: Update matchspy1 and matchspy2 to use
22062           CategorySelectMatchSpy instead of MatchSpy, and corresponding
22063           changes to the methods.  Add matchspy3 to test the
22064           TopValueMatchSpy.
22066 Mon Jul 09 15:40:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22068         * tests/termgentest.cc: Fix copyright: everything I've done in 2007
22069           has been for Lemur.
22071 Mon Jul 09 15:40:38 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22073         * include/xapian/version_h.cc: Fix type in comment.
22075 Fri Jul 06 12:14:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22077         * include/xapian/enquire.h: Add note to register_match_decider()
22078           documentation comment of what this function is for, and also that
22079           it doesn't currently do anything (other than store the values
22080           passed to it in the enquire internals).
22082 Thu Jul 05 20:52:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22084         * docs/categorisation.rst: Fix typo.
22086 Thu Jul 05 20:41:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22088         * tests/api_wrdb.cc: Rework matchspy2 to use approximate values to
22089           avoid failing on some platform due to differing precision.
22091 Thu Jul 05 12:21:48 BST 2007  Olly Betts <olly@survex.com>
22093         * docs/categorisation.rst: Complete half sentence.
22095 Thu Jul 05 12:17:20 BST 2007  Olly Betts <olly@survex.com>
22097         * docs/categorisation.rst: Add section on restricting by category
22098           values.
22100 Thu Jul 05 04:47:18 BST 2007  Olly Betts <olly@survex.com>
22102         * docs/Makefile.am,docs/categorisation.rst: Add topic document
22103           discussing use of Xapian::MatchSpy.
22105 Thu Jul 05 02:08:13 BST 2007  Olly Betts <olly@survex.com>
22107         * include/xapian.h,tests/api_wrdb.cc: Restore MatchSpy stuff.
22109 Thu Jul 05 01:38:38 BST 2007  Olly Betts <olly@survex.com>
22111         * HACKING: Note that RoadMap on the wiki needs updating for each
22112           release.
22114 Thu Jul 05 01:03:05 BST 2007  Olly Betts <olly@survex.com>
22116         * AUTHORS: Update.
22118 Thu Jul 05 00:31:00 BST 2007  Olly Betts <olly@survex.com>
22120         * NEWS: Minor tweaks and clarifications.
22122 Thu Jul 05 00:29:53 BST 2007  Olly Betts <olly@survex.com>
22124         * include/xapian.h,tests/api_wrdb.cc: Disable MatchSpy class for 1.0.2
22125           as it's not ready for release yet.
22127 Wed Jul 04 21:20:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22129         * NEWS: Update with release date for release 1.0.2
22131 Wed Jul 04 21:09:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22133         * AUTHORS: Add Tomek Jackowiak, for reporting bug #166 (missing
22134           Xapian::Query documentation).
22136 Wed Jul 04 20:45:56 BST 2007  Olly Betts <olly@survex.com>
22138         * configure.ac: Updated version and library version for 1.0.2.
22140 Wed Jul 04 20:36:07 BST 2007  Olly Betts <olly@survex.com>
22142         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
22143           Tidy up API for MatchSpy::build_numeric_ranges() and add tests.
22145 Wed Jul 04 19:40:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22147         * NEWS: Fully updated.
22149 Wed Jul 04 18:33:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22151         * NEWS: Move some of the changelog entries into news-style comments.
22153 Wed Jul 04 17:50:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22155         * tests/api_wrdb.cc: SKIP_TEST() spell3 on windows - it doesn't
22156           work there due to trying to delete (and then overwrite) an open
22157           database.  We shouldn't be doing this, so add a long FIXME
22158           explaining what we should be doing instead.
22160 Wed Jul 04 17:27:22 BST 2007  Olly Betts <olly@survex.com>
22162         * NEWS: Partly update.
22164 Wed Jul 04 17:19:51 BST 2007  Olly Betts <olly@survex.com>
22166         * AUTHORS: Add Simon Tatham for spotting the -INFINITY issue, and for
22167           a lot of useful advice during the CVS to SVN transition.
22169 Wed Jul 04 17:16:59 BST 2007  Olly Betts <olly@survex.com>
22171         * api/,include/xapian/queryparser.h,tests/queryparsertest.cc: Rename
22172           Xapian::NumberValueRangeProcessor::float_to_string() to
22173           Xapian::sortable_serialise() and
22174           Xapian::NumberValueRangeProcessor::string_to_float() to
22175           Xapian::sortable_unserialise().
22177 Wed Jul 04 17:16:16 BST 2007  Olly Betts <olly@survex.com>
22179         * HACKING: Add rationale for 2 space indents for "public", etc.
22181 Wed Jul 04 14:09:57 BST 2007  Olly Betts <olly@survex.com>
22183         * tests/queryparsertest.cc: Loops on integers and scale to doubles
22184           rather than looping on doubles and scaling to get integers.
22186 Wed Jul 04 13:01:11 BST 2007  Olly Betts <olly@survex.com>
22188         * tests/queryparsertest.cc: If the NumberValueRangeProcessor
22189           string encodings don't sort the same way, there's no need to report
22190           the string encodings in the error message as they are written to
22191           "tout" just before, along with the respective numbers they came
22192           from.  The string encodings can contain control characters, so are
22193           liable to corrupt the test failure message.
22195 Wed Jul 04 12:25:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22197         * api/valuerangeproc.cc: Fix encoding of extremely large, negative,
22198           non-IEEE representation to be -INFINITY, not +INFINITY.  Thanks
22199           to Simon Tatham for pointing this out.
22200         * include/xapian/queryparser.h: Add a documentation comment note
22201           that zero and -zero will be transformed to the same value.
22203 Wed Jul 04 10:09:33 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22205         * api/valuerangeproc.cc: Change encoding used for doubles to a much
22206           more compact scheme, and add support for +-INFINITY.  Also, some
22207           other tweaks to avoid unnecessary computation.
22208         * tests/queryparsertest.cc: Update test cases to expect new
22209           encoding of doubles, and add values for INFINITY and DBL_MAX and
22210           some other special numbers to the list of numbers that are
22211           specifically checked.
22213 Wed Jul 04 03:29:10 BST 2007  Olly Betts <olly@survex.com>
22215         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
22216           Category score now explicitly weights for having nearer the
22217           requested number of categories.  Category score is now normalised
22218           so values should be roughly comparable between different sized
22219           collections.  Add untested code to build ranges.
22221 Wed Jul 04 00:48:07 BST 2007  Olly Betts <olly@survex.com>
22223         * bin/xapian-compact.cc: Add new "--no-renumber" option to preserve
22224           document ids from source databases.  Fix bug in change to add
22225           support for spelling and synonym tables which was preventing any
22226           renumbering from happening!
22228 Wed Jul 04 00:25:52 BST 2007  Olly Betts <olly@survex.com>
22230         * backends/inmemory/inmemory_database.cc,
22231           backends/inmemory/inmemory_database.h,tests/api_wrdb.cc: Fix bug in
22232           inmemory backend - using replace_document() to add a document with a
22233           specific document id above the highest currently used would create
22234           empty documents for all document ids in between.
22236 Tue Jul 03 09:27:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22238         * HACKING: Add note that protection level declarations in classes
22239           and structs should only be indented by 2 spaces.
22241 Tue Jul 03 03:53:11 BST 2007  Olly Betts <olly@survex.com>
22243         * api/Makefile.mk,api/matchspy.cc,include/xapian/matchspy.h,
22244           tests/api_wrdb.cc: Add MatchSpy method to score how good a
22245           categorisation is.
22247 Tue Jul 03 01:24:19 BST 2007  Olly Betts <olly@survex.com>
22249         * include/xapian/queryparser.h: Replace `#include <xapian/stem.h>'
22250           with forward declaration of Stem.
22252 Tue Jul 03 01:14:12 BST 2007  Olly Betts <olly@survex.com>
22254         * include/xapian/errorhandler.h: Replace `#include <xapian/error.h>'
22255           with forward declaration of Error.
22256         * api/errorhandler.cc: Now needs to explicitly `#include
22257           <xapian/error.h>'.
22259 Tue Jul 03 01:08:30 BST 2007  Olly Betts <olly@survex.com>
22261         * include/xapian/dbfactory.h: Replace `#include <xapian/database.h>'
22262           with forward declarations of Database and WritableDatabase.
22264 Tue Jul 03 00:59:57 BST 2007  Olly Betts <olly@survex.com>
22266         * include/xapian/enquire.h: Remove `#include <xapian/error.h>'.
22268 Mon Jul 02 23:25:55 BST 2007  Olly Betts <olly@survex.com>
22270         * include/Makefile.mk,include/xapian.h,include/xapian/matchspy.h,
22271           tests/api_wrdb.cc: Implement "MatchSpy" class to tally values
22272           in matching documents.
22274 Mon Jul 02 18:15:18 BST 2007  Olly Betts <olly@survex.com>
22276         * api/omenquire.cc,include/xapian/enquire.h: Fix last change to
22277           preserve ABI compatibility.
22279 Mon Jul 02 17:52:10 BST 2007  Olly Betts <olly@survex.com>
22281         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
22282           include/xapian/enquire.h,matcher/multimatch.cc,net/remoteserver.cc,
22283           tests/api_db.cc: Add support for a "matchspy" - a MatchDecider which
22284           is documented to be tested on ever candidate document.  We plan to
22285           optimise the current matchdecider to be used as little as possible.
22287 Mon Jul 02 17:35:12 BST 2007  Olly Betts <olly@survex.com>
22289         * tests/api_db.cc: Enhance matchfunctor1 to test that the functor
22290           returns ALL matching documents, not just that all documents returned
22291           match.
22293 Mon Jul 02 16:36:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22295         * common/omassert.h: Fix to avoid warning in gcc-snapshot; use
22296           do{}while(0) to protect assertions, and remove the old "if (a) {}
22297           else {fail}" constructions which tried to do the same job.
22299 Mon Jul 02 14:56:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22301         * bin/xapian-inspect.cc: Add missing #include of <stdio.h> - fixes
22302           gcc-2.95 compilation.
22304 Mon Jul 02 14:54:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22306         * queryparser/termgenerator_internal.h: Fix for gcc-2.95
22307           compilation.
22309 Mon Jul 02 14:09:22 BST 2007  Olly Betts <olly@survex.com>
22311         * api/Makefile.mk,api/valuerangeproccompat.cc,
22312           include/xapian/queryparser.h: Put the new NumberValueRangeProcessor
22313           in a sub-namespace which we then import it from.  Restore the old
22314           NumberValueRangeProcessor implementation inside the library so that
22315           it is available to code linked against 1.0.0 or 1.0.1 to keep ABI
22316           compatibility.
22318 Sun Jul 01 15:32:30 BST 2007  Olly Betts <olly@survex.com>
22320         * include/xapian/queryparser.h: Clearer description of
22321           NumberValueRangeProcessor.  Don't document the number format in
22322           terms of strtod() - that's a bug, not a feature we want to be tied
22323           to.
22324         * include/xapian/query.h,include/xapian/queryparser.h: Use "@a" not
22325           "\a" for consistency with existing usage.
22327 Sun Jul 01 10:09:42 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22329         * matcher/localmatch.cc: When registering a term, check if it's
22330           empty, and if so use the document count as the term frequency,
22331           rather than calling the database to get the term frequency of an
22332           empty term (most database backends have an assertion that the
22333           term is not empty, and an empty term isn't a valid parameter to
22334           pass to get_termfreq() anyway).
22335         * matcher/multimatch.cc: For MatchAll queries, the "" term will not
22336           be found in the termlist of the top document, so check if a ""
22337           term is present in the query, and use it to increase the
22338           percent_scale if so.  This fixes an Assertion which checked that
22339           percent_scale was not 0.
22340         * tests/api_db.cc: Add test_matchall1() which tests running a query
22341           with a MatchAll query.
22342         * tests/api_nodb.cc: Rename test_emptyquery1 and test_emptyquery2
22343           to test_emptyquery2 and test_emptyquery3, respectively.  There
22344           was already a (different) test_emptyquery1 in api_anydb.cc.
22346 Sat Jun 30 18:04:06 BST 2007  Olly Betts <olly@survex.com>
22348         * tests/queryparsertest.cc: Write `2.0' rather than `(double)2'.
22350 Sat Jun 30 16:12:49 BST 2007  Olly Betts <olly@survex.com>
22352         * docs/valueranges.rst: Fix typo.  Fix ".. note:" to ".. note::" so
22353           it appears visibly in the HTML output rather than in an HTML
22354           comment!
22356 Sat Jun 30 15:14:33 BST 2007  Olly Betts <olly@survex.com>
22358         * api/omdocument.cc,common/document.h,include/xapian/document.h:
22359           Add Xapian::Document::get_docid() method.
22361 Sat Jun 30 04:00:57 BST 2007  Olly Betts <olly@survex.com>
22363         * matcher/multimatch.cc: If there's only one term in the query (a
22364           pretty common case) we don't need to look at the top document's
22365           termlist to determine that it matches all the query terms.
22367 Sat Jun 30 00:37:09 BST 2007  Olly Betts <olly@survex.com>
22369         * INSTALL: Add note that zlib must be installed before you can build
22370           Xapian.
22372 Fri Jun 29 22:40:58 BST 2007  Olly Betts <olly@survex.com>
22374         * backends/flint/: If doccount == lastdocid, all document ids up to
22375           lastdocid are used, so we provide a special really efficient version
22376           implementation of iterating all documents for this common case for
22377           flint.
22379 Fri Jun 29 00:39:04 BST 2007  Olly Betts <olly@survex.com>
22381         * common/stringutils.h: Add startswith() and endswith() overloads
22382           which take a single character.
22383         * backends/flint/flint_spellingwordslist.cc,bin/xapian-inspect.cc:
22384           Use new forms.
22385         * backends/flint/flint_spellingwordslist.cc: Fix comment typo.
22387 Thu Jun 28 21:43:49 BST 2007  Olly Betts <olly@survex.com>
22389         * backends/flint/flint_spellingwordslist.cc: Another begins_with()
22390           which I somehow missed.
22392 Thu Jun 28 19:51:03 BST 2007  Olly Betts <olly@survex.com>
22394         * api/valuerangeproc.cc,backends/flint/flint_alltermslist.cc,
22395           backends/flint/flint_synonym.cc,
22396           backends/inmemory/inmemory_alltermslist.cc,
22397           backends/quartz/quartz_alltermslist.cc,
22398           backends/quartz/quartz_metafile.cc,bin/xapian-inspect.cc,
22399           common/stringutils.h,tests/harness/testsuite.cc: Rename
22400           begins_with() to startswith() and ends_with() to endswith() for
22401           consistency with Python string operations.
22403 Thu Jun 28 18:49:50 BST 2007  Olly Betts <olly@survex.com>
22405         * queryparser/queryparser.lemony: Don't put a Z prefix on terms if the
22406           stemmer is "none", which matches what TermGenerator generates.
22408 Thu Jun 28 02:22:04 BST 2007  Olly Betts <olly@survex.com>
22410         * api/omqueryinternal.cc: Don't SEGV when Query::MatchNothing is used
22411           with OP_AND_NOT (fixes bug#176).
22412         * tests/api_nodb.cc: Add regression test emptyquery2.
22413         * AUTHORS: Thank bug reporter (Krzysztof Klemm).
22415 Wed Jun 27 13:05:55 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22417         * NEWS: Updated.
22419 Wed Jun 27 13:04:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22421         * examples/copydatabase.cc: Add support for copying the spelling
22422           data.
22424 Wed Jun 27 12:46:54 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22426         * NEWS: Updated.
22428 Wed Jun 27 12:13:50 BST 2007  Olly Betts <olly@survex.com>
22430         * bin/xapian-check.cc: Check spelling and synonym Btrees.
22432 Wed Jun 27 12:10:47 BST 2007  Olly Betts <olly@survex.com>
22434         * bin/xapian-compact.cc: Add merging for spelling and synonym tables.
22436 Wed Jun 27 12:09:34 BST 2007  Olly Betts <olly@survex.com>
22438         * backends/flint/flint_spelling.cc: Fix PrefixCompressedStringItor to
22439           not ignore the last entry.
22440         * tests/api_wrdb.cc: Regression test (spell4).
22442 Wed Jun 27 11:51:10 BST 2007  Olly Betts <olly@survex.com>
22444         * tests/api_wrdb.cc: Remove bogus comment.
22446 Wed Jun 27 04:12:56 BST 2007  Olly Betts <olly@survex.com>
22448         * backends/flint/flint_cursor.h: Make FlintCursor::after_end() const.
22450 Tue Jun 26 22:31:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22452         * tests/api_wrdb.cc: Add test_spell3(), which tests spelling
22453           correction with multi databases, and the results of the iterator
22454           from Database::spellings_begin() with single and multi databases.
22456 Tue Jun 26 20:51:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22458         * api/omtermlistiterator.cc: Handle pruning, so that multi-database
22459           spelling word iterators work.  Pruning should arguably always
22460           have been handled, but it's never been possible for the TermList
22461           passed to TermIterator to prune before, so it's not been an
22462           issue.
22464 Tue Jun 26 20:50:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22466         * backends/flint/flint_spellingwordslist.h: Don't bother testing
22467           whether we found an entry which was exactly "W" - if we do, the
22468           database is corrupt, but the best recovery strategy would just be
22469           to continue at the next matching entry.
22471 Tue Jun 26 20:26:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22473         * api/omdatabase.cc: Remove mistaken skip_to("W") - should be done
22474           by open_spelling_wordlist() rather than here.
22475         * backends/flint/flint_spellingwordslist.h: Only call
22476           cursor->prev() if find_entry("W") finds an entry.
22478 Tue Jun 26 17:46:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22480         * backends/flint/flint_alltermslist.cc,
22481           backends/flint/flint_spellingwordslist.cc,
22482           backends/flint/flint_synonym.cc: Remove calls to abort() which
22483           are followed immediately by an Assert() which checks the same
22484           condition.
22486 Tue Jun 26 17:26:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22488         * include/xapian/database.h: Add spellings_begin() and
22489           spellings_end(), to iterate through the spelling correction
22490           target words.
22491         * api/omdatabase.cc: Implement spellings_begin(), using the newly
22492           added FreqAdderOrTermList to join the spellings lists.
22493         * common/database.h,backends/database.cc: Add
22494           open_spelling_wordlist() to get iterator of spelling targets, if
22495           any, with default implementation which returns NULL.
22496         * backends/flint/flint_database.h,backends/flint/flint_database.cc:
22497           Implement open_spelling_wordlist() for flint.
22498         * backends/flint/flint_spelling.h: Make merge_changes() public, so
22499           it can be called when a writable database needs to open a
22500           spelling wordlist.
22501         * backends/flint/flint_spellingwordslist.h,
22502           backends/flint/flint_spellingwordslist.cc: New files,
22503           implementing an iterator over the spelling targets.
22505 Tue Jun 26 17:25:09 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22507         * common/ortermlist.h,expand/ortermlist.cc: Add a
22508           "FreqAdderOrTermList", which adds the term frequencies of the
22509           sublists, rather than requiring that they're equal for terms
22510           which are in both.
22512 Tue Jun 26 17:22:03 BST 2007  Olly Betts <olly@survex.com>
22514         * docs/admin_notes.rst: Update to mention spelling and synonym tables,
22515           and to document optional tables more clearly.
22517 Tue Jun 26 16:23:25 BST 2007  Olly Betts <olly@survex.com>
22519         * tests/termgentest.cc: Add feature test for TermGenerator spelling
22520           integration.
22522 Tue Jun 26 16:14:56 BST 2007  Olly Betts <olly@survex.com>
22524         * tests/termgentest.cc: Fix comment paste-o.
22526 Tue Jun 26 16:11:11 BST 2007  Olly Betts <olly@survex.com>
22528         * include/xapian/termgenerator.h,queryparser/termgenerator.cc,
22529           queryparser/termgenerator_internal.cc,
22530           queryparser/termgenerator_internal.h: Add support for generating
22531           spelling data to TermGenerator class.
22533 Tue Jun 26 15:22:12 BST 2007  Olly Betts <olly@survex.com>
22535         * bin/xapian-compact.cc: Don't skip "empty" source databases, as they
22536           may have spelling and/or synonym data.  Warn if more than one source
22537           database has spelling data and ignore all but the first.  Similarly
22538           warn and ignore for synonym data.
22540 Tue Jun 26 13:52:15 BST 2007  Olly Betts <olly@survex.com>
22542         * examples/copydatabase.cc: Fix code which extracts the leafname to
22543           handle a trailing directory separator.
22544         * examples/copydatabase.cc: Copy synonym data across.  Print warning
22545           that spelling data isn't copied (as there's no API to access it
22546           currently).
22548 Tue Jun 26 13:21:13 BST 2007  Olly Betts <olly@survex.com>
22550         * bin/xapian-compact.cc: Fix to compact spelling and synonym tables.
22552 Tue Jun 26 02:20:50 BST 2007  Olly Betts <olly@survex.com>
22554         * tests/api_wrdb.cc: Fix randomly indented line.
22556 Tue Jun 26 02:20:01 BST 2007  Olly Betts <olly@survex.com>
22558         * include/xapian/document.h: Change parameter name for
22559           Document::get_value() to match other parameter names in the class.
22561 Tue Jun 26 02:19:16 BST 2007  Olly Betts <olly@survex.com>
22563         * include/xapian/queryparser.h: FLAG_AUTO_MULTIWORD_SYNONYMS now
22564           implies FLAG_AUTO_SYNONYMS.
22566 Tue Jun 26 02:18:02 BST 2007  Olly Betts <olly@survex.com>
22568         * tests/queryparsertest.cc: Add test for a single word synonym in
22569           multi-synonym mode.
22571 Tue Jun 26 02:08:47 BST 2007  Olly Betts <olly@survex.com>
22573         * common/ortermlist.h,queryparser/termgenerator_internal.h: Fix
22574           warnings from Intel's C++ compiler.
22576 Tue Jun 26 01:45:09 BST 2007  Olly Betts <olly@survex.com>
22578         * HACKING: Snapshots and releases are now bootstrapped with libtool
22579           1.5.24, which includes all the patches we were applying on top of
22580           1.5.22.
22581         * HACKING: Expand note about preferring pre-increment to
22582           post-increment to mention preferring it to adding one, and to cover
22583           decrementing too.
22585 Tue Jun 26 01:34:41 BST 2007  Olly Betts <olly@survex.com>
22587         * backends/flint/flint_spelling.cc: Fix bug appending spelling data to
22588           an existing trigram.
22590 Tue Jun 26 01:34:07 BST 2007  Olly Betts <olly@survex.com>
22592         * backends/flint/flint_database.cc: Fix handling of exceptions during
22593           commit.
22595 Mon Jun 25 17:01:40 BST 2007  Olly Betts <olly@survex.com>
22597         * docs/spelling.rst: Update for Unicode spelling correction.
22599 Mon Jun 25 15:41:43 BST 2007  Olly Betts <olly@survex.com>
22601         * api/editdistance.cc,api/editdistance.h,api/omdatabase.cc:
22602           Convert to UTF-32 before calculating edit distances.
22603         * tests/api_wrdb.cc: Add test coverage for Unicode spelling
22604           correction.
22606 Mon Jun 25 14:03:34 BST 2007  Olly Betts <olly@survex.com>
22608         * tests/quartztest.cc: Remove tests for removed method
22609           QuartzPostList::get_collection_freq().
22611 Mon Jun 25 12:32:07 BST 2007  Olly Betts <olly@survex.com>
22613         * backends/flint/flint_spelling.cc: Replace abort() with exception
22614           throwing.
22616 Mon Jun 25 03:01:20 BST 2007  Olly Betts <olly@survex.com>
22618         * tests/harness/backendmanager.cc: Track the fd used to communicate
22619           with a xapian-tcpsrv child process so we can close it when we reap
22620           the child pid.
22622 Mon Jun 25 02:44:04 BST 2007  Olly Betts <olly@survex.com>
22624         * docs/valueranges.rst: Fix bad RST markup.
22626 Sun Jun 24 23:24:26 BST 2007  Olly Betts <olly@survex.com>
22628         * tests/harness/backendmanager.cc: Fix memory leak in test harness
22629           launching of xapian-tcpsrv so that "apitest -b remotetcp" now passes
22630           under valgrind.
22632 Sun Jun 24 19:39:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22634         * docs/valueranges.rst: Add documentation for the
22635           NumberValueRangeProcessor, now that it is fixed.
22637 Sun Jun 24 14:29:06 BST 2007  Olly Betts <olly@survex.com>
22639         * backends/remote/net_postlist.cc,backends/remote/net_postlist.h:
22640           Move NetworkPostList virtual methods out of the header.  Move the
22641           constructor into the header, since that can be inlined.
22643 Sun Jun 24 14:15:43 BST 2007  Olly Betts <olly@survex.com>
22645         * backends/flint/,backends/multi/multi_postlist.cc,
22646           backends/multi/multi_postlist.h,backends/quartz/,
22647           backends/remote/net_postlist.cc,backends/remote/net_postlist.h,
22648           backends/remote/remote-database.cc,common/emptypostlist.h,
22649           common/postlist.h,common/remote-database.h: For Flint and Quartz,
22650           refactor so we no longer create a postlist just to find the termfreq
22651           or collection frequency.  These were the only places which used
22652           PostList::get_collection_freq(), so eliminate it (bug#124).
22654 Sun Jun 24 09:40:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22656         * msvc/genversion.pl: Add a script to generate the version.h file
22657           for MSVC builds by parsing configure.ac to extract the version
22658           number, and then performing the appropriate substitutions on
22659           msvc/version.h.in.  Shouldn't be used for tarball builds (because
22660           version.h already exists) or for builds which use configure.
22662 Sun Jun 24 02:25:38 BST 2007  Olly Betts <olly@survex.com>
22664         * matcher/multimatch.cc: The check_at_least parameter to
22665           Enquire::get_mset() is now handled in a more efficient way - no
22666           extra memory is now required, and CPU overhead should be reduced
22667           (bug#174).
22669 Sun Jun 24 02:00:07 BST 2007  Olly Betts <olly@survex.com>
22671         * docs/synonyms.rst,docs/Makefile.am: New "topic" document describing
22672           synonym support.
22673         * docs/Makefile.am: HTML documentation generated from RST files wasn't
22674           being installed.
22676 Sun Jun 24 00:45:46 BST 2007  Olly Betts <olly@survex.com>
22678         * backends/remote/remote-database.cc,common/remote-database.h,
22679           common/remoteprotocol.h,common/submatch.h,docs/remote_protocol.html,
22680           matcher/,net/remoteserver.cc: Pass check_at_least to the remote
22681           server to reduce the amount of work required to produce the match
22682           on the remote server, and also reduce the serialised size of the
22683           returned MSet.
22685 Sun Jun 24 00:17:18 BST 2007  Olly Betts <olly@survex.com>
22687         * tests/api_anydb.cc: More check_at_least tests.
22689 Sat Jun 23 20:02:48 BST 2007  Olly Betts <olly@survex.com>
22691         * api/omdatabase.cc,tests/api_wrdb.cc: Add multi-database support
22692           for synonyms.
22694 Sat Jun 23 18:50:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22696         * include/xapian/database.h: Tiny fix to a documentation comment.
22698 Sat Jun 23 17:35:37 BST 2007  Olly Betts <olly@survex.com>
22700         * common/ortermlist.h,expand/ortermlist.cc: Comment out unused method
22701           OrTermList::get_collection_freq().  The same dummy implementation
22702           is provided by the parent class (TermList).
22704 Sat Jun 23 17:07:40 BST 2007  Olly Betts <olly@survex.com>
22706         * api/omdatabase.cc,backends/database.cc,backends/flint/,
22707           common/database.h,include/xapian/database.h,tests/api_wrdb.cc:
22708           Implement Database::synonym_keys_begin() to allow iteration over all
22709           the terms for which synonyms have been added.
22711 Sat Jun 23 04:19:54 BST 2007  Olly Betts <olly@survex.com>
22713         * matcher/multimatch.cc: Fix handling of check_at_least parameter -
22714           we weren't discarding matches above the requested MSet size
22715           correctly.
22716         * tests/api_anydb.cc: Add regression test checkatleast2.
22718 Sat Jun 23 03:00:45 BST 2007  Olly Betts <olly@survex.com>
22720         * docs/queryparser.html: Document synonyms.
22722 Sat Jun 23 02:50:55 BST 2007  Olly Betts <olly@survex.com>
22724         * queryparser/queryparser.lemony: Unapply commented out fragments
22725           towards supporting '~' on phrases, which I didn't mean to apply.
22727 Sat Jun 23 02:25:32 BST 2007  Olly Betts <olly@survex.com>
22729         * include/xapian/queryparser.h,queryparser/queryparser.lemony,
22730           tests/queryparsertest.cc: Add support for synonym operator ('~')
22731           to the QueryParser.
22733 Sat Jun 23 01:52:51 BST 2007  Olly Betts <olly@survex.com>
22735         * queryparser/queryparser.lemony: Fix two bugs in the query parser -
22736           now '+' and '-' work on bracketed subexpressions as documented.
22737         * tests/queryparsertest.cc: Add regression tests.
22739 Sat Jun 23 01:47:30 BST 2007  Olly Betts <olly@survex.com>
22741         * queryparser/queryparser.cc: Use "using namespace std;".
22743 Fri Jun 22 18:48:21 BST 2007  Olly Betts <olly@survex.com>
22745         * backends/flint/flint_synonym.cc: Fix iteration of unflushed
22746           synonyms.
22748 Fri Jun 22 18:21:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22750         * docs/deprecation.rst: Fix typo.
22752 Fri Jun 22 18:02:21 BST 2007  Olly Betts <olly@survex.com>
22754         * api/omdatabase.cc,backends/database.cc,backends/flint/,
22755           common/database.h,include/xapian/database.h,
22756           include/xapian/queryparser.h,queryparser/queryparser.lemony:
22757           Add support for storing synonyms for terms in a new optional Btree
22758           table in flint databases, and using them in the QueryParser.
22759         * tests/queryparsertest.cc: Feature tests for synonyms.
22761 Fri Jun 22 17:58:37 BST 2007  Olly Betts <olly@survex.com>
22763         * queryparser/queryparser.lemony: Removed superfluous "private:" in
22764           class State.  Make State::get_database() const.
22766 Fri Jun 22 17:58:15 BST 2007  Olly Betts <olly@survex.com>
22768         * tests/queryparsertest.cc: Make sure .flint subdirectory exists.
22770 Fri Jun 22 17:52:53 BST 2007  Olly Betts <olly@survex.com>
22772         * bin/xapian-inspect.cc: Don't die with an error if the user tries to
22773           move forward twice from the end.  Also, make "prev" from the end
22774           work.
22776 Fri Jun 22 17:47:36 BST 2007  Olly Betts <olly@survex.com>
22778         * queryparser/queryparser.lt: If an input token has a yyminor, report
22779           its name in the debug output.
22781 Fri Jun 22 14:47:17 BST 2007  Olly Betts <olly@survex.com>
22783         * NEWS: Updated with changes since 1.0.1.
22785 Thu Jun 21 21:12:49 BST 2007  Olly Betts <olly@survex.com>
22787         * backends/remote/remote-database.cc,common/remoteprotocol.h,
22788           common/remoteserver.h,net/remoteserver.cc: Protocol version
22789           increased to 30.2.  This difference from 30.1 is that
22790           MSG_DELETEDOCUMENT now send REPLY_DONE to allow DocNotFoundError
22791           to be propagated.  MSG_DELETEDOCUMENT now has a new number and
22792           the old number for MSG_DELETEDOCUMENT is now
22793           MSG_DELETEDOCUMENT_PRE_30_2 which is handled by the server so
22794           that older clients will continue to work.
22795         * docs/remote_protocol.html: Update.
22796         * tests/api_wrdb.cc: Add regression test for DocNotFoundError bug.
22798 Thu Jun 21 17:22:53 BST 2007  Olly Betts <olly@survex.com>
22800         * api/omdatabase.cc,tests/queryparsertest.cc,docs/spelling.rst: Add
22801           support for spelling correction when using multiple databases.
22803 Thu Jun 21 16:15:22 BST 2007  Olly Betts <olly@survex.com>
22805         * tests/queryparsertest.cc: Add feature tests for correcting spelling
22806           errors in the QueryParser.
22808 Thu Jun 21 15:01:00 BST 2007  Olly Betts <olly@survex.com>
22810         * tests/api_wrdb.cc: Check the edit distance 3 words are found if
22811           asked for.
22813 Thu Jun 21 14:59:15 BST 2007  Olly Betts <olly@survex.com>
22815         * api/omdatabase.cc,common/omdebug.h: Add some debug tracing for the
22816           spelling correction.
22818 Thu Jun 21 13:45:12 BST 2007  Olly Betts <olly@survex.com>
22820         * backends/flint/flint_spelling.cc,docs/spelling.rst: Generate
22821           "bookends" for four character words too, so that we suggest
22822           "fuor" -> "four".
22823         * tests/api_wrdb.cc: More testcases.
22825 Thu Jun 21 13:08:07 BST 2007  Olly Betts <olly@survex.com>
22827         * docs/spelling.rst: Assorted minor improvements.  Add note about not
22828           detecting single character substitutions in two character words.
22830 Thu Jun 21 13:02:57 BST 2007  Olly Betts <olly@survex.com>
22832         * tests/api_wrdb.cc: Check cases for single edits to a two character
22833           word work as expected.
22835 Thu Jun 21 04:13:46 BST 2007  Olly Betts <olly@survex.com>
22837         * tests/api_wrdb.cc: Add test cases to check we find all single edit
22838           errors for a three letter word.
22840 Thu Jun 21 04:08:11 BST 2007  Olly Betts <olly@survex.com>
22842         * backends/flint/flint_spelling.h: Now that
22843           FlintSpellingTable::merge_changes() is only called from within the
22844           class, make it a private method.  discard_changes() is only used
22845           once, and from within the class, so just inline it as that's
22846           clearer.  Make the comment about the overridden methods a doxygen
22847           grouping comment,
22849 Thu Jun 21 04:02:51 BST 2007  Olly Betts <olly@survex.com>
22851         * docs/spelling.rst: Update to mention "bookend" bigrams.
22853 Thu Jun 21 03:56:52 BST 2007  Olly Betts <olly@survex.com>
22855         * backends/flint/flint_spelling.cc: Generate "bookend" spelling
22856           entries for two and three letter terms, consisting of the prefix 'B'
22857           followed by the first and last letters.  This allows us to handle
22858           substitution or deletion of the middle character of a three letter
22859           word, or insertion in the middle of a two letter word.
22861 Thu Jun 21 03:18:28 BST 2007  Olly Betts <olly@survex.com>
22863         * tests/queryparsertest.cc: Some doubles in the list which
22864           value_range_serialise1 tests have the same values on some platforms,
22865           so test that adjacent numbers and their string counterparts compare
22866           the same way rather than that both are "<".
22868 Thu Jun 21 02:46:01 BST 2007  Olly Betts <olly@survex.com>
22870         * tests/api_wrdb.cc: Add "spell1" - a simple feature test for spelling
22871           based on Richard's python test.  Use TESTCASE() and END_OF_TESTCASES
22872           macros.
22874 Wed Jun 20 21:57:01 BST 2007  Olly Betts <olly@survex.com>
22876         * backends/flint/flint_database.cc: WritableDatabase::delete_document()
22877           no longer cancels pending changes if the document doesn't exist.
22878         * backends/quartz/quartz_database.cc: Same fix.
22880 Wed Jun 20 20:53:52 BST 2007  Olly Betts <olly@survex.com>
22882         * backends/flint/flint_database.cc: We may now need to flush even if
22883           there have been no documents added/replaced/deleted, as there may be
22884           changes to the spelling table.
22886 Wed Jun 20 20:46:30 BST 2007  Olly Betts <olly@survex.com>
22888         * backends/flint/flint_table.cc: Fix a function name in the debug
22889           loggging.
22891 Wed Jun 20 20:39:43 BST 2007  Olly Betts <olly@survex.com>
22893         * backends/flint/flint_spelling.cc: Fix FlintSpellingTermList not to
22894           report at_end() one entry too early.
22896 Wed Jun 20 19:21:45 BST 2007  Olly Betts <olly@survex.com>
22898         * tests/harness/backendmanager.cc: Don't touch <dbdir>/log for flint
22899           as flint doesn't create a log like quartz does.
22901 Wed Jun 20 17:10:29 BST 2007  Olly Betts <olly@survex.com>
22903         * backends/flint/flint_database.cc,backends/flint/flint_spelling.h:
22904           Push special handling for spelling_table into the FlintSpellingTable
22905           class.  This fixes "is_modified()" to take into account unflushed
22906           changes held in memory.
22908 Wed Jun 20 13:59:01 BST 2007  Olly Betts <olly@survex.com>
22910         * api/omdatabase.cc: Don't use RETURN() in methods which return void.
22912 Wed Jun 20 11:56:30 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22914         * api/editdistance.cc: Change an Assert in is_transposed() (which
22915           fails in some cases) to a test, since it seems legitimate that
22916           a value of pos2 <= 0 might be supplied to the function (though
22917           the answer will always be "false" in that case).
22919 Wed Jun 20 02:38:51 BST 2007  Olly Betts <olly@survex.com>
22921         * api/omdatabase.cc: Fix two incorrect return types in debug logging.
22923 Wed Jun 20 02:14:40 BST 2007  Olly Betts <olly@survex.com>
22925         * api/omdatabase.cc: Add missing implementations of
22926           WritableDatabase::add_spelling() and
22927           WritableDatabase::remove_spelling().
22929 Wed Jun 20 00:58:46 BST 2007  Olly Betts <olly@survex.com>
22931         * backends/flint/flint_spelling.h: Make the maps private.
22933 Wed Jun 20 00:05:15 BST 2007  Olly Betts <olly@survex.com>
22935         * HACKING: Snapshots now bootstrapped with automake 1.10.
22937 Wed Jun 20 00:03:42 BST 2007  Olly Betts <olly@survex.com>
22939         * backends/flint/flint_spelling.cc,common/Makefile.mk,
22940           expand/Makefile.mk,expand/ortermlist.h: Move ortermlist.h from
22941           "expand/" to "common/" so we can included it from flint_spelling.cc
22942           without a relative path.
22944 Tue Jun 19 22:41:08 BST 2007  Olly Betts <olly@survex.com>
22946         * api/,backends/database.cc,backends/flint/,common/database.h,
22947           docs/Makefile.am,docs/spelling.rst,include/xapian/database.h,
22948           include/xapian/queryparser.h,queryparser/queryparser.cc,
22949           queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
22950           Add support for spelling correction.
22952 Tue Jun 19 19:18:40 BST 2007  Olly Betts <olly@survex.com>
22954         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
22955           backends/flint/flint_table.h: Add new method
22956           FlintTable::key_exists() so we don't need to create a cursor to
22957           check if a key exists in FlintDatabase::term_exists() (the other
22958           alternative previously was to read the key and tag and ignore the
22959           tag, but that could involve reading more blocks if the tag is
22960           long, and it could involve uncompressing the tag too).
22962 Tue Jun 19 17:49:09 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22964         * tests/queryparsertest.cc: Cast the input to pow() to a double, to
22965           fix a problem on windows (which has several versions of pow(),
22966           and the version taking a float was being used by default,
22967           resulting in some of the tests overflowing the range of float).
22969 Tue Jun 19 17:48:42 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22971         * api/valuerangeproc.cc: Fix assertions, so that the code works
22972           with assertions turned on.
22974 Tue Jun 19 12:35:46 BST 2007  Olly Betts <olly@survex.com>
22976         * matcher/branchpostlist.cc: Add missing #include <config.h>.
22977         * matcher/branchpostlist.cc,matcher/branchpostlist.h: Move other
22978           virtual method definitions out of the header.
22980 Mon Jun 18 21:41:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22982         * matcher/branchpostlist.h: Add missed copyright statement.
22984 Mon Jun 18 21:36:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22986         * matcher/branchpostlist.cc,matcher/branchpostlist.h: Add get_wdf()
22987           method to BranchPostList (which just sums the wdf, which is
22988           useful for a synonym postlist, which is the only situation in
22989           which this will be called).  Add the method definition in a
22990           separate file, as per the comment I just added to HACKING.
22991         * matcher/Makefile.mk: Add branchpostlist.cc
22993 Mon Jun 18 21:33:56 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22995         * HACKING: Add note about virtual methods (saying that the
22996           shouldn't be defined in header files).
22998 Mon Jun 18 20:15:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23000         * matcher/phrasepostlist.cc,matcher/phrasepostlist.h,
23001           matcher/exactphrasepostlist.cc,matcher/exactphrasepostlist.cc:
23002           Add get_wdf() methods to NearPostList, PhrasePostList and
23003           ExactPhrasePostList - these use a very rough approximation (but
23004           there's a big long comment justifying it).
23006 Mon Jun 18 18:38:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23008         * matcher/mergepostlist.cc,matcher/mergepostlist.h: Add copyright
23009           statements for previous commit (and update license while I'm at
23010           it).
23012 Mon Jun 18 18:24:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23014         * matcher/mergepostlist.cc,matcher/mergepostlist.h: Add get_wdf()
23015           method to MergePostList (just passes through the value from the
23016           current postlist).  Not currently needed, but the expected
23017           behaviour is obvious, and this will be needed if there's a
23018           synonym postlist higher in the query tree (when synonym postlists
23019           are implemented).  Also, correct a documentation comment typo.
23021 Mon Jun 18 13:09:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23023         * api/valuerangeproc.cc: Cast the first parameter to ldexp() to
23024           double to fix compilation on some platforms, and add a few more
23025           explanatory code comments to
23026           NumberValueRangeProcessor::string_to_float()
23028 Mon Jun 18 11:33:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23030         * api/valuerangeproc.cc: Add static methods to
23031           NumberValueRangeProcessor to serialise and unserialise doubles.
23032           Change the code which tests a term for being a number to use
23033           strtod, and accept any string which strtod thinks is a number.
23034           If NumberValueRangeProcessor accepts a range, it now converts the
23035           begin and end values to strings using the serialise method.
23036           Also, expand some of the code comments.
23037         * include/xapian/queryparser.h: Add documentation comments to
23038           NumberValueRangeProcessor.
23039         * tests/queryparsertest.cc: Update value_range2_queries to expect
23040           new serialised forms in its output.  Update test_qp_value_range3
23041           to test a wider range of values (including negative, fractional,
23042           and more-than-single-digit).
23044 Mon Jun 18 03:36:38 BST 2007  Olly Betts <olly@survex.com>
23046         * queryparser/queryparser.lemony: Fix comment typo, and add brackets
23047           to make intended precedence clearer.
23049 Mon Jun 18 03:36:04 BST 2007  Olly Betts <olly@survex.com>
23051         * include/xapian/queryparser.h: Tweak wording of a couple of
23052           documentation comments.
23054 Mon Jun 18 02:00:31 BST 2007  Olly Betts <olly@survex.com>
23056         * docs/queryparser.html: Mention "AND NOT" as an alternative way to
23057           write "NOT".
23059 Mon Jun 18 01:43:00 BST 2007  Olly Betts <olly@survex.com>
23061         * queryparser/queryparser.lemony: Adjust precedence of boolean
23062           operators to match those in maths and programming languages.
23063           "NOT" now binds as tightly as "AND" (previously "AND NOT" would
23064           bind like "AND", but just "NOT" would bind like "OR"!)  Also
23065           "XOR" now binds more tightly than "OR", but less tightly than
23066           "AND" (previously it bound just like "OR").
23067         * tests/queryparsertest.cc: Add testcases for the new behaviour.
23069 Mon Jun 18 01:16:18 BST 2007  Olly Betts <olly@survex.com>
23071         * tests/queryparsertest.cc: Better test coverage of handling of random
23072           double quotes in queries.
23074 Sun Jun 17 16:17:34 BST 2007  Olly Betts <olly@survex.com>
23076         * include/xapian/unicode.h: Don't call operator++(0) from operator()
23077           as it does more work than we need.
23079 Sun Jun 17 14:14:16 BST 2007  Olly Betts <olly@survex.com>
23081         * bin/xapian-inspect.cc: Fix so that Ctrl+D doesn't cause an infinite
23082           loop!
23084 Sat Jun 16 22:19:11 BST 2007  Olly Betts <olly@survex.com>
23086         * bin/Makefile.mk,bin/xapian-inspect.cc,xapian-core.spec.in:
23087           New utility 'xapian-inspect' allowing interactive inspection of
23088           key/tag pairs in a flint Btree.  Useful for development and
23089           debugging, and an approximate replacement for quartzdump.
23091 Sat Jun 16 17:03:57 BST 2007  Olly Betts <olly@survex.com>
23093         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Update for
23094           doxygen 1.5.2 (using "doxygen -u").
23096 Sat Jun 16 10:17:32 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23098         * tests/Makefile.am: The "check-none" target should run all the
23099           tests which don't need a database, not just those in apitest: add
23100           internaltest, stemtest, queryparsertest and termgentest to the
23101           list of tests it runs.
23103 Sat Jun 16 09:36:10 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23105         * Makefile.am,bin/Makefile.mk,examples/Makefile.mk: Work around an
23106           apparent bug in automake which causes the entries in .libs
23107           subdirectories generated for targets of bin_PROGRAMS not to be
23108           removed on make clean.  (This was causing make distcheck to
23109           fail.)
23111 Sat Jun 16 04:42:16 BST 2007  Olly Betts <olly@survex.com>
23113         * HACKING,Makefile.am,tests/Makefile.am,tests/apitest.cc,
23114           tests/harness/backendmanager.cc,tests/harness/backendmanager.h: In
23115           the testsuite, rename the "void" pseudo-backend to "none" to more
23116           clearly reflect what it is.  And rename the "remote" backend to
23117           "remoteprog", to better differentiate it from "remotetcp".
23118         * HACKING: Fix error - "apitest -b=flint" doesn't work - it must be
23119           "apitest -bflint".
23121 Sat Jun 16 04:40:28 BST 2007  Olly Betts <olly@survex.com>
23123         * HACKING: Now using doxygen 1.5.2.
23125 Sat Jun 16 02:08:20 BST 2007  Olly Betts <olly@survex.com>
23127         * backends/flint/flint_table.cc: Fix to build with older zlib.  Not
23128           hugely important as zlib security fixes mean any well maintained
23129           box will be running a recent zlib, but the fix is trivial.
23131 Fri Jun 15 19:39:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23133         * HACKING: Document the new check-void, check-inmemory,
23134           check-remoteprog and check-remotetcp targets.
23136 Fri Jun 15 19:34:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23138         * Makefile.am,tests/Makefile.am: Add check-void, check-inmemory,
23139           check-remoteprog and check-remotetcp targets, to allow the tests
23140           for any of the backends to be performed in isolation.
23142 Fri Jun 15 19:29:19 BST 2007  Olly Betts <olly@survex.com>
23144         * Makefile.am,configure.ac,xapian-core.spec.in,xapian.spec.in:
23145           Rename xapian.spec to xapian-core.spec to match tarball name.
23146           Append the user name to BuildRoot.
23148 Fri Jun 15 14:51:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23150         * net/progclient.cc: Open the file handle pointing to /dev/null as
23151           O_WRONLY instead of O_RDONLY: doesn't affect whether the test
23152           passes (since nothing gets written to stderr in theory anyway),
23153           but makes more sense.
23155 Fri Jun 15 13:21:56 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23157         * net/progclient.cc: Better fix - rather than leaving stderr open,
23158           we close it, and then reopen it pointing to /dev/null.
23160 Fri Jun 15 12:55:07 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23162         * net/progclient.cc: Don't close stderr in the child before we call
23163           execve() - with this change, apitest passes under valgrind with
23164           the remote database backend: before it, the child seemed to be
23165           exiting without writing anything to the socket, causing the test
23166           to fail with a NetworkError (due to an unexpected EOF).
23168 Thu Jun 14 23:47:52 BST 2007  Olly Betts <olly@survex.com>
23170         * backends/flint/flint_database.cc: Replace duplicated code with calls
23171           to existing method set_revision_number(new_revision).
23173 Thu Jun 14 18:51:03 BST 2007  Olly Betts <olly@survex.com>
23175         * backends/flint/flint_database.cc: Stop including <sys/utsname.h>
23176           which we don't use here.
23178 Thu Jun 14 18:22:24 BST 2007  Olly Betts <olly@survex.com>
23180         * tests/Makefile.am: Fix typo from copy&paste.
23182 Thu Jun 14 16:46:45 BST 2007  Olly Betts <olly@survex.com>
23184         * docs/admin_notes.rst: Update for the "lazy table" changes.  Correct
23185           the description of xapian-compact --multipass (only the postlist
23186           tables are merged in multiple passes), correct description of how
23187           to use xapian-check on a single table (no trailing '.' should be
23188           specified).  Change the "how to upgrade 0.9.x flint databases" to
23189           talk about 1.0.y rather than 1.0.0.
23191 Thu Jun 14 16:25:55 BST 2007  Olly Betts <olly@survex.com>
23193         * backends/flint/: The value and position tables are now only created
23194           if there is anything to add to them.  So if you never use document
23195           values, there's no value_DB, value.baseA, or value.baseB.  This
23196           means the table doesn't need to be opened for searching (saving a
23197           file handle) and when flushing changes, we don't need to update
23198           baseA/baseB just to keep the revisions in step.  The flint database
23199           version has been increased, but the new code will happily open and
23200           read/update flint databases from Xapian 1.0.0 and 1.0.1.
23201         * bin/xapian-check.cc,bin/xapian-compact.cc: Update to handle
23202           databases without value and/or position tables.
23203         * tests/testdata/flint-1.0.1/: Empty example of a flint 1.0.1 format
23204           database.
23205         * tests/Makefile.am,tests/api_db.cc: Add check that a flint 1.0.1
23206           format database can be opened.
23208 Wed Jun 13 22:40:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23210         * include/xapian/queryparser.h: Document set_stemmer() and
23211           set_stemming_strategy() better - in particular, make it clear
23212           that the default value for the stemming strategy is STEM_NONE.
23214 Wed Jun 13 17:16:52 BST 2007  Olly Betts <olly@survex.com>
23216         * HACKING: Wrap overlong line.
23218 Wed Jun 13 16:47:07 BST 2007  Olly Betts <olly@survex.com>
23220         * msvc/version.h.in: Remote backend is now supported in the MSVC
23221           build.
23223 Wed Jun 13 04:18:51 BST 2007  Olly Betts <olly@survex.com>
23225         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
23226           Eliminate dont_close_handle as it's always false.
23228 Wed Jun 13 02:53:28 BST 2007  Olly Betts <olly@survex.com>
23230         * backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h:
23231           Remove unused FlintTable_base constructor.
23233 Tue Jun 12 18:27:54 BST 2007  Olly Betts <olly@survex.com>
23235         * backends/flint/flint_table.cc: Add fix to allow compilation on
23236           OpenBSD, which uses off_t instead of uLong for total_out in
23237           zlib.h.  Remove Assert() which is followed by a better check of
23238           the same condition.
23239         * AUTHORS: Add Julien Touche for help with this fix.
23241 Tue Jun 12 13:34:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23243         * tests/harness/unixcmds.cc: On unix builds, set access permissions
23244           on copied directories to allow writes.  This fixes make
23245           distcheck, which was failing on tests because the copied
23246           directory was set to read-only, causing the later "rm -rf"
23247           command to fail.
23249 Mon Jun 11 20:10:26 BST 2007  Olly Betts <olly@survex.com>
23251         * docs/overview.html: Fix typo.
23253 Mon Jun 11 20:08:42 BST 2007  Olly Betts <olly@survex.com>
23255         * docs/Makefile.am: Ship and install internals.html.
23257 Mon Jun 11 17:46:04 BST 2007  Olly Betts <olly@survex.com>
23259         * docs/Makefile.am,docs/doxygen_full_conf.in: Disable generation of
23260           PDF version of doxygen-collated documentation of internals.  It
23261           keeps overflowing TeX limits and it seems likely that most people
23262           would prefer the HTML version of this anyway.
23264 Mon Jun 11 17:45:12 BST 2007  Olly Betts <olly@survex.com>
23266         * tests/internaltest.cc: Remove duplicated code.
23268 Mon Jun 11 03:55:53 BST 2007  Olly Betts <olly@survex.com>
23270         * NEWS: Probably the final update for 1.0.1.
23272 Mon Jun 11 03:47:37 BST 2007  Olly Betts <olly@survex.com>
23274         * examples/simpleindex.cc: Tweak the logic to be clearer.
23276 Sun Jun 10 21:59:21 BST 2007  Olly Betts <olly@survex.com>
23278         * HACKING,configure.ac: Drop automake requirement to 1.8.3 to allow
23279           RPM spec file to work on SLES 9.
23281 Sun Jun 10 21:48:51 BST 2007  Olly Betts <olly@survex.com>
23283         * configure.ac: Bump version to 1.0.1 and LIBRARY_VERSION_INFO to
23284           15:0:0.
23286 Sun Jun 10 21:46:57 BST 2007  Olly Betts <olly@survex.com>
23288         * xapian.spec.in: Add "# norootforbuild" comment which SuSE's build
23289           scripts look for.  Rename "Source0:" to "Source:" as there's only
23290           one tarball now.  Add gcc-c++ and zlib-devel to "Build-Requires:".
23292 Sun Jun 10 21:43:45 BST 2007  Olly Betts <olly@survex.com>
23294         * PLATFORMS: More updates.
23296 Sun Jun 10 18:01:19 BST 2007  Olly Betts <olly@survex.com>
23298         * api/error.cc,generate-exceptions.in: Make Error::error_string member
23299           std::string rather than char * to avoid problems with double free()
23300           with copied Error objects.  Also, Error::get_description() now
23301           converts my_errno to error_string if it hasn't been already.
23302         * tests/internaltest.cc: Add regression tests for both bugs.
23304 Sun Jun 10 13:33:21 BST 2007  Olly Betts <olly@survex.com>
23306         * tests/api_db.cc: New testcase in allterms6.
23308 Sun Jun 10 13:20:37 BST 2007  Olly Betts <olly@survex.com>
23310         * xapian-config.in: Add special case check for host_os matching linux*
23311           or k*bsd-gnu since vanilla libtool doesn't identify them as needing
23312           link_all_deplibs_CXX=no.
23314 Sun Jun 10 03:32:54 BST 2007  Olly Betts <olly@survex.com>
23316         * PLATFORMS: Updated from tinderbox.
23318 Sun Jun 10 02:14:58 BST 2007  Olly Betts <olly@survex.com>
23320         * NEWS: Updated.
23322 Sat Jun 09 17:28:32 BST 2007  Olly Betts <olly@survex.com>
23324         * queryparser/queryparser.lemony: Add the unstem entry for boolean
23325           prefixed terms in Term::make_term() as we do for other terms.
23327 Sat Jun 09 17:27:55 BST 2007  Olly Betts <olly@survex.com>
23329         * tests/queryparsertest.cc: Replace reference to Xapian "1.0" with
23330           "1.0.0".
23332 Sat Jun 09 17:12:44 BST 2007  Olly Betts <olly@survex.com>
23334         * queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
23335           Factor out the code which actually parses a term into a separate
23336           method.
23338 Fri Jun 08 23:31:23 BST 2007  Olly Betts <olly@survex.com>
23340         * tests/Makefile.am: Distribute tests/testdata/flint-0.9.9/.
23342 Fri Jun 08 19:20:36 BST 2007  Olly Betts <olly@survex.com>
23344         * NEWS: Updated.
23346 Fri Jun 08 18:55:43 BST 2007  Olly Betts <olly@survex.com>
23348         * examples/simplesearch.cc: Report "Matches 1-<N>:".
23350 Fri Jun 08 18:46:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23352         * api/omenquire.cc: Fix issue brought to my attention by Enrico
23353           Zini: if an uninitialised database is supplied to Enquire,
23354           performing a search will cause a segfualt.  It isn't completely
23355           clear whether using an uninitialised database should cause an
23356           error, or whether the search should return an empty result list,
23357           but for ease of implementation, and to avoid application errors
23358           going unnoticed, I've made Enquire's constructor report an
23359           InvalidArgumentError if the supplied database is uninitialised.
23360         * include/xapian/enquire.h: Document new exception case, and
23361           workaround if you want a search in this situation to return an
23362           empty result set, instead of getting an error.
23363         * tests/api_nodb.cc: Regression test for this fix.
23364         * AUTHORS: Mention Enrico Zini.
23366 Fri Jun 08 18:33:19 BST 2007  Olly Betts <olly@survex.com>
23368         * NEWS: Updated.
23370 Fri Jun 08 17:09:22 BST 2007  Olly Betts <olly@survex.com>
23372         * common/Makefile.mk: Distribute common/stringutils.h.
23374 Thu Jun 07 20:44:36 BST 2007  Olly Betts <olly@survex.com>
23376         * tests/harness/unixcmds.cc: It appears we need to create the target
23377           directory for xcopy to behave as we want.
23379 Thu Jun 07 19:34:18 BST 2007  Olly Betts <olly@survex.com>
23381         * tests/harness/unixcmds.cc: Fix typo to unbreak testsuite on Windows
23382           NT derivatives.
23384 Thu Jun 07 19:02:36 BST 2007  Olly Betts <olly@survex.com>
23386         * backends/inmemory/inmemory_alltermslist.cc: Another tweak - don't
23387           call map::lower_bound() in the ctor at all.  Also, prevent skip_to()
23388           from moving backwards, since that behaviour is user-visible.
23390 Thu Jun 07 18:36:49 BST 2007  Olly Betts <olly@survex.com>
23392         * common/stringutils.h: New header, providing inline functions
23393           begins_with() and ends_with() to check if a std::string has
23394           a given prefix or suffix.
23395         * api/valuerangeproc.cc,backends/flint/flint_alltermslist.cc,
23396           backends/inmemory/inmemory_alltermslist.cc,
23397           backends/quartz/quartz_alltermslist.cc,
23398           backends/quartz/quartz_metafile.cc,tests/harness/testsuite.cc:
23399           Make use of begins_with() and ends_with().
23400         * tests/harness/testsuite.cc: Tidy up guessing of srcdir.  In
23401           particular, fix comments to reflect that libtool won't create a
23402           wrapper script for the test programs on most platforms (because
23403           we now use --no-install when linking).
23404         * backends/inmemory/inmemory_alltermslist.cc: In the ctor, use
23405           std::map::lower_bound() to find the first term matching the
23406           given prefix, rather than iterating through from the start of
23407           the map.  Also, don't skip deleted terms here, but instead do
23408           that in next() - this avoids duplicating code, and the first
23409           operation might be skip_to() in which case we can avoid wasting
23410           effort.
23412 Thu Jun 07 17:16:12 BST 2007  Olly Betts <olly@survex.com>
23414         * queryparser/queryparser.lemony: Eliminate the QpQuery class and
23415           simplify various bits of the code.
23417 Thu Jun 07 14:32:22 BST 2007  Olly Betts <olly@survex.com>
23419         * tests/queryparsertest.cc: Enhance qp_value_customrange1.
23421 Thu Jun 07 14:31:40 BST 2007  Olly Betts <olly@survex.com>
23423         * docs/Makefile.am,docs/index.html,docs/valueranges.rst: Add document
23424           describing how to use Xapian::ValueRangeProcessor.
23426 Thu Jun 07 14:16:01 BST 2007  Olly Betts <olly@survex.com>
23428         * tests/queryparsertest.cc: Add test of custom ValueRangeProcessor
23429           subclass (qp_value_customrange1).
23431 Thu Jun 07 10:01:46 BST 2007  Olly Betts <olly@survex.com>
23433         * common/serialise.h,tests/harness/testsuite.h: Use XAPIAN_NORETURN()
23434           to mark functions which never return.
23436 Thu Jun 07 01:28:00 BST 2007  Olly Betts <olly@survex.com>
23438         * NEWS: Update.
23440 Thu Jun 07 01:02:22 BST 2007  Olly Betts <olly@survex.com>
23442         * examples/simpleexpand.cc: Fix off-by-one error when creating the
23443           fake RSet (picked up to 4 documents, not up to 5).
23445 Wed Jun 06 17:17:05 BST 2007  Olly Betts <olly@survex.com>
23447         * include/xapian/queryparser.h: Add documentation comments for
23448           ValueRangeProcessor and subclasses (mostly fixes bug#155, but
23449           I'd like to add an overview document too).
23451 Wed Jun 06 16:04:08 BST 2007  Olly Betts <olly@survex.com>
23453         * tests/testdata/flint-0.9.9/: Minimal example of a Flint database
23454           from Xapian 0.9.9.
23455         * tests/api_db.cc: Use a real 0.9.9 flint database instead of faking
23456           it by fudging with the "iamflint" file in a current one.
23457           flintdatabaseformaterror1 now also checks for opening with the
23458           Database ctor as well as with Flint::open().  The writing test from
23459           flintdatabaseformaterror1 is now flintdatabaseformaterror2 which
23460           additionally tests opening with the WritableDatabase ctor as well as
23461           with Flint::open().  The old flintdatabaseformaterror2 is now
23462           flintdatabaseformaterror3.
23464 Wed Jun 06 15:44:08 BST 2007  Olly Betts <olly@survex.com>
23466         * backends/flint/flint_database.cc: Don't check for pre-0.6 databases
23467           here (since they'll be quartz format anyway - the check is just an
23468           overenthusiastic cut-and-paste from quartz).
23470 Wed Jun 06 12:35:16 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23472         * matcher/valuerangepostlist.cc: Avoid calling db->get_lastdocid()
23473           repeatedly in ValueRangePostList::next() - was taking 25% of the
23474           time for a particular test case.
23476 Wed Jun 06 12:17:51 BST 2007  Olly Betts <olly@survex.com>
23478         * tests/harness/unixcmds.cc,tests/harness/unixcmds.h: Add "cp_R()"
23479           which does much the same as "cp -R" on Unix.
23481 Wed Jun 06 12:12:50 BST 2007  Olly Betts <olly@survex.com>
23483         * include/xapian/Makefile: New stub makefile for include/xapian.
23484         * bin/Makefile.mk,examples/Makefile.mk,include/Makefile.mk: Distribute
23485           missing stub Makefile and dir_contents files.
23487 Tue Jun 05 16:44:51 BST 2007  Olly Betts <olly@survex.com>
23489         * tests/harness/index_utils.cc: Back out linger line from r7758.
23490           Fix undefined behaviour in cases where a paragraph has <= 2
23491           characters.
23493 Mon Jun 04 15:31:08 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23495         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc:
23496           Revert the recent changes to the indexing code, and also the
23497           change from revision r7758 which was intended to fix a problem
23498           with eof handling on windows (which is what broke the indexing of
23499           etext.txt).  Then, change backendmanager.cc to test "!from.eof()"
23500           instead of "from" to check for eof - hopefully this will work on
23501           windows - if not, we can investigate further.
23503 Mon Jun 04 13:13:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23505         * tests/harness/backendmanager.cc: Undo previous patch - only the
23506           patch to index_utils.cc was necessary; I mistakenly committed
23507           both files I'd been modifying.
23509 Mon Jun 04 09:06:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23511         * tests/api_db.cc: Add a check to consistency1 that the full mset
23512           size is as big as it should be, to make sure that we notice in
23513           future if the indexing goes wrong again.
23515 Mon Jun 04 08:59:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23517         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc:
23518           Fix the indexing of the testdata, so that the "etext" example is
23519           properly indexed (previously, only the first line was being
23520           indexed, due to faulty end-of-file handling).  This only affects
23521           the "consistency1" test, which now runs a lot slower (but still
23522           passes, fortunately).
23524 Fri Jun 01 23:47:42 BST 2007  Olly Betts <olly@survex.com>
23526         * examples/simpleexpand.cc: Rewrite based on new simplesearch.cc.
23528 Fri Jun 01 00:50:00 BST 2007  Olly Betts <olly@survex.com>
23530         * examples/simpleindex.cc: Replacement "simpleindex" example which
23531           uses the TermGenerator class, which makes for a much smaller and
23532           simpler example.  It's also much more typical of what most users
23533           will want to do.
23535 Thu May 31 23:01:47 BST 2007  Olly Betts <olly@survex.com>
23537         * examples/simplesearch.cc: Replacement "simplesearch" example which
23538           uses the QueryParser.  That makes for a simpler example, and it's
23539           much more typical of what most users will want to do.
23541 Thu May 31 19:31:40 BST 2007  Olly Betts <olly@survex.com>
23543         * NEWS: Update.
23545 Thu May 31 19:18:41 BST 2007  Olly Betts <olly@survex.com>
23547         * HACKING,configure.ac: Relax automake requirement to 1.9.2 to allow
23548           RPM building on RHEL 4.
23549         * HACKING: automake 1.10 seems to work fine with Xapian.
23551 Thu May 31 03:04:42 BST 2007  Olly Betts <olly@survex.com>
23553         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
23554           Check if the docid counter wraps and if it does throw DatabaseError
23555           (fixes bug#152).
23556         * tests/api_wrdb.cc: Add regression test (nomoredocids1).
23558 Thu May 31 02:01:31 BST 2007  Olly Betts <olly@survex.com>
23560         * backends/dbfactory_remote.cc,backends/remote/remote-database.cc,
23561           common/progclient.h,common/remote-database.h,common/tcpclient.h,
23562           net/progclient.cc: Stop a non-writable remote database from calling
23563           dtor_called() when it is destroyed, since that causes MSG_FLUSH to
23564           be sent to the server (fixes bug#149).
23566 Wed May 30 19:47:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23568         * include/xapian/query.h: New accessor method
23569           Xapian::Query::Internal::get_parameter().
23570         * queryparser/queryparser.lemony: Multiple boolean prefixed terms
23571           with the same term prefix are now combined with OR before such
23572           groups are combined with AND.  Similarly for multiple value ranges
23573           on the same value (fixes bug#157).
23574         * include/xapian/queryparser.h: Document new handling of multiple
23575           boolean prefixed terms.
23576         * tests/queryparsertest.cc: Testcases for new handling of multiple
23577           boolean prefixed terms and value ranges.
23579 Wed May 30 14:45:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23581         * docs/deprecation.rst: Update comment about QueryParserError to
23582           point out that you'll need to compile conditionally to work with
23583           0.9.x
23585 Wed May 30 14:33:29 BST 2007  Olly Betts <olly@survex.com>
23587         * NEWS: Update.  Put all the subheadings in the standard order used
23588           for previous releases.
23590 Wed May 30 12:58:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23592         * include/xapian/database.h,api/omdatabase.cc,backends/flint/,
23593           backends/inmemory/,backends/quartz/,
23594           backends/remote/remote-database.cc,
23595           common/database.h,common/remote-database.h,common/remoteprotocol.h,
23596           net/remoteserver.cc: Add a prefixed form of allterms_begin() and
23597           allterms_end(), which allows efficient iteration over only those
23598           terms which begin with the given prefix.  Requires bumping the
23599           remote protocol minor version number, but doesn't change any
23600           database formats.
23601         * queryparser/queryparser.lemony: Update the wildcard and partial
23602           query routines to use the prefixed form of allterms_begin().
23603           This fixes the performance problems noted in bug #153.
23604         * tests/api_db.cc: Add test_allterms6() to test the prefixed form
23605           of allterms iterators.
23607 Wed May 30 12:23:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23609         * backends/remote/remote-database.cc,common/remoteprotocol.h,
23610           docs/remote_protocol.html,net/remoteserver.cc: Apply patch from
23611           Olly (from bug #153) which implements minor version numbers for
23612           the remove protocol.  This will allow us to add new features to
23613           the protocol in future without forcing all clients to upgrade to
23614           exactly the same version as the servers.  Bump the major version
23615           to 30, since this is an incompatible change itself, though.
23617 Wed May 30 12:12:14 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23619         * include/xapian/query.h: Expand documentation of value range
23620           query constructor.
23622 Wed May 30 10:28:39 BST 2007  Olly Betts <olly@survex.com>
23624         * docs/deprecation.rst: Improve entry for QueryParserError.
23626 Wed May 30 01:30:35 BST 2007  Olly Betts <olly@survex.com>
23628         * backends/flint/,bin/xapian-compact.cc: Don't uncompress and
23629           recompress tags when compacting a database.  This speeds up
23630           xapian-compact rather a lot (by more than 50% in my quick test).
23632 Tue May 29 20:58:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23634         * queryparser/Makefile.mk: Fix multiple target rule for generating
23635           the queryparser source files in parallel builds, as described in
23636           HACKING, and as done for the SWIG rules in xapian-bindings.
23637         * queryparser/: Add queryparser_internal.lock and
23638           queryparser_internal.stamp to SVN ignores.
23640 Tue May 29 18:30:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23642         * tests/queryparsertest.cc: Use TEST_STRINGS_EQUAL when comparing
23643           queries against their expected output, since this makes it much
23644           easier to see the differences.
23646 Tue May 29 18:13:26 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23648         * NEWS: Bring up-to-date.
23650 Mon May 28 09:27:43 BST 2007  Olly Betts <olly@survex.com>
23652         * examples/copydatabase.cc: Fix to compile with GCC 2.95.
23654 Mon May 28 01:28:23 BST 2007  Olly Betts <olly@survex.com>
23656         * examples/copydatabase.cc: Rewrite to take advantage of
23657           being able to iterate over all the documents in a database.
23659 Sun May 27 12:20:03 BST 2007  Olly Betts <olly@survex.com>
23661         * include/xapian/termgenerator.h: Improve documentation comments
23662           for TermGenerator class.
23664 Sun May 27 12:15:02 BST 2007  Olly Betts <olly@survex.com>
23666         * backends/quartz/quartz_database.cc,bin/,examples/,net/tcpserver.cc,
23667           tests/api_db.cc,tests/harness/testsuite.cc,tests/harness/testutils.h,
23668           tests/queryparsertest.cc,tests/termgentest.cc: Make use of
23669           Xapian::Error::get_description(), which improves error reporting
23670           in a number of places.
23671         * tests/harness/testsuite.cc: If we get an exception with a long
23672           message in verbose mode, just report the whole message rather than
23673           reporting the truncated message followed by the whole message.
23674         * tests/queryparsertest.cc: Handle Xapian::QueryParserError specially
23675           (as we previously handled all Xapian::Error exceptions).  Other
23676           Xapian::Error exceptions now report the description not just the
23677           message.
23679 Sun May 27 11:33:11 BST 2007  Olly Betts <olly@survex.com>
23681         * api/error.cc,generate-exceptions.in: Add new API method
23682           Xapian::Error::get_description() to allow removal of
23683           essentially duplicated code in many places.  Also useful for
23684           users for the same reason.
23686 Sun May 27 09:56:21 BST 2007  Olly Betts <olly@survex.com>
23688         * generate-exceptions.in: Add vim modeline to force perl syntax
23689           highlighting.
23691 Sat May 26 22:53:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23693         * NEWS: Bring up-to-date.
23695 Sat May 26 22:49:20 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23697         * docs/deprecation.rst: Fix typo in deprecation list for the
23698           bindings pointed out by Thomas Waldmann.
23700 Sat May 26 09:39:36 BST 2007  Olly Betts <olly@survex.com>
23702         * HACKING: Add note about reasons for avoiding std::pair<> with an STL
23703           class as one or both members.
23705 Thu May 24 17:28:20 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23707         * queryparser/Makefile.mk: $(top_builddir)/queryparser is only
23708           required in include path for maintainer mode, so make it so for
23709           neatness.
23711 Tue May 22 11:04:04 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23713         * queryparser/Makefile.mk: Add $(top_builddir)/queryparser to include
23714           path for VPATH builds, to fix a problem with depcomp (triggered
23715           when compiling with gcc-2.95).
23716         * NEWS: Keep up to date.
23718 Mon May 21 13:38:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23720         * tests/queryparsertest.cc: Reduce the range of the test, so that
23721           it passes again, to let the autobuilders work and unbreak HEAD.
23723 Mon May 21 10:26:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23725         * tests/queryparsertest.cc: Remove FIXME from test_qp_flag_partial1:
23726           I've checked that the results look correct.  New test
23727           test_qp_value_range3, to test the NumberValueRangeProcessors -
23728           currently fails because "10" is considered to be between "1" and
23729           "2".
23730         * include/xapian/query.h: Fix typo in documentation comment.
23732 Mon May 21 10:09:34 BST 2007  Olly Betts <olly@survex.com>
23734         * tests/harness/testsuite.h: Put quotes around strings when reporting
23735           a failure in TEST_STRINGS_EQUAL().
23737 Mon May 21 10:08:18 BST 2007  Olly Betts <olly@survex.com>
23739         * tests/internaltest.cc: New tests serialiseerror1 which checks that
23740           the handling of errno/error_string.
23741         * common/serialise.h: Make unserialise_error externally visible for
23742           new test.
23744 Mon May 21 08:40:06 BST 2007  Olly Betts <olly@survex.com>
23746         * HACKING: Update release checklist.
23748 Fri May 18 02:10:39 BST 2007  Olly Betts <olly@survex.com>
23750         * generate-exceptions.in: Fix grammatical errors in Error::get_errno()
23751           deprecation explanation.
23753 Thu May 17 23:51:17 BST 2007  Olly Betts <olly@survex.com>
23755         * api/error.cc: Need <stdlib.h> for free() to build with GCC 4.3
23756           snapshot.
23758 Thu May 17 23:11:53 BST 2007  Olly Betts <olly@survex.com>
23760         * NEWS: Fix line wrapping (ok, isn't wasn't final!)
23762 Thu May 17 22:28:44 BST 2007  Olly Betts <olly@survex.com>
23764         * NEWS: Final update before release.
23766 Thu May 17 19:10:27 BST 2007  Olly Betts <olly@survex.com>
23768         * configure.ac: Bump version to 1.0.0 and update LIBRARY_VERSION_INFO.
23770 Thu May 17 19:10:11 BST 2007  Olly Betts <olly@survex.com>
23772         * NEWS: Minor wording tweak.
23774 Thu May 17 19:06:34 BST 2007  Olly Betts <olly@survex.com>
23776         * docs/Makefile.am: Run rst2html with --strict --verbose options to
23777           reject .rst files with problems.
23778         * docs/deprecation.rst: Add more entries gleaned from the NEWS file.
23780 Thu May 17 18:30:01 BST 2007  Olly Betts <olly@survex.com>
23782         * NEWS: Update with fixes from Jenny's proof-reading and a few other
23783           tweaks.
23785 Thu May 17 18:27:53 BST 2007  Olly Betts <olly@survex.com>
23787         * AUTHORS: Update.
23789 Thu May 17 18:25:39 BST 2007  Olly Betts <olly@survex.com>
23791         * PLATFORMS: Updates from the tinderbox.
23793 Thu May 17 18:08:13 BST 2007  Olly Betts <olly@survex.com>
23795         * common/safesysstat.h: Need the 2 argument mkdir() wrapper for Mingw
23796           too.  Define S_ISDIR() and S_ISREG() if they aren't already defined
23797           rather than conditional on _MSC_VER.
23799 Thu May 17 17:58:43 BST 2007  Olly Betts <olly@survex.com>
23801         * docs/admin_notes.rst: "flint-check" -> "xapian-check".
23803 Thu May 17 17:46:36 BST 2007  Olly Betts <olly@survex.com>
23805         * NEWS: Update for Xapian 1.0.0.
23807 Thu May 17 17:41:15 BST 2007  Olly Betts <olly@survex.com>
23809         * docs/: Update documentation for 1.0.0; add new document describing
23810           new term generation strategy as implemented by TermGenerator class;
23811           link in "lost" documents to the index page.
23813 Thu May 17 03:54:36 BST 2007  Olly Betts <olly@survex.com>
23815         * exception_data.pm: Fix to work with Perl 5.6.
23817 Thu May 17 01:20:16 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23819         * backends/multi/multi_alltermslist.cc: Check that iterators are
23820           not at_end() before calling skip_to() on them.
23822 Thu May 17 00:49:03 BST 2007  Olly Betts <olly@survex.com>
23824         * backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc,
23825           backends/quartz/btree.cc,common/Makefile.mk,
23826           common/msvc_posix_wrapper.cc,common/msvc_posix_wrapper.h: Use
23827           msvc_posix_wrapper.h functions for all __WIN32__ builds, not just
23828           for MSVC.
23830 Wed May 16 23:55:46 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23832         * api/omdatabase.cc: Fix return type in debug macro in
23833           replace_document().
23835 Wed May 16 23:45:20 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23837         * tests/apitest.cc: Add collfreq and allterms tests to the tests
23838           for the remote and remotetcp backends.  They all pass.
23840 Wed May 16 15:11:00 BST 2007  Olly Betts <olly@survex.com>
23842         * configure.ac: Need to try -zdll for mingw as well.
23844 Wed May 16 14:45:23 BST 2007  Olly Betts <olly@survex.com>
23846         * tests/queryparsertest.cc: Add two more testcases.
23848 Wed May 16 14:32:46 BST 2007  Olly Betts <olly@survex.com>
23850         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix
23851           double-free on invalid range query.
23853 Wed May 16 10:08:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23855         * tests/queryparsertest.cc: Add some more test cases to the value
23856           range processor.  These currently fail with a SIGSEGV message.
23858 Wed May 16 02:22:17 BST 2007  Olly Betts <olly@survex.com>
23860         * queryparser/termgenerator_internal.cc: Fix handling of stemming of
23861           prefixed terms.
23862         * tests/termgentest.cc: Fix testcases.
23864 Wed May 16 01:54:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23866         * tests/termgentest.cc: Add a test for parsing of capitalised words
23867           with a prefix, which currently fails.
23869 Wed May 16 01:09:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23871         * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
23872           a method to get the current document from the term generator.
23873           Helps avoid users having to pass around a structure encapsulating
23874           the generator and the document assigned to it.
23876 Wed May 16 00:50:07 BST 2007  Olly Betts <olly@survex.com>
23878         * docs/deprecation.rst: Add <xapian/output.h>.
23880 Tue May 15 22:46:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23882         * tests/termgentest.cc: Use resize(0) instead of clear(), for g++2.95
23884 Tue May 15 20:25:07 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23886         * net/remoteconnection.cc: Add a comment noting why we test
23887           __STDC_SECURE_LIB__ even though its an undocumented macro.
23889 Tue May 15 20:14:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23891         * tests/termgentest.cc: Add several more tests - some converted
23892           from the query tests, some more initial tests, and some number
23893           tests.
23895 Tue May 15 18:31:21 BST 2007  Olly Betts <olly@survex.com>
23897         * queryparser/termgenerator_internal.cc: Revert previous change - we
23898           need to generate Zibm and Zpc from text `I.B.M. P.C.' or else a
23899           search for `ibm pc' won't match.
23901 Tue May 15 18:22:44 BST 2007  Olly Betts <olly@survex.com>
23903         * queryparser/termgenerator_internal.cc: Sort out stemming of
23904           initials.
23906 Tue May 15 18:04:17 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23908         * tests/termgentest.cc: Add some more tests, and rework the array
23909           of tests so that there's just a single string holding any options
23910           we want to set for the following tests.
23912 Tue May 15 16:49:17 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23914         * tests/Makefile.am,tests/termgentest.cc: Add new test file, for
23915           testing the term generator.  Only has a single test so far.
23917 Tue May 15 16:20:20 BST 2007  Olly Betts <olly@survex.com>
23919         * include/xapian/unicode.h: Make single parameter ctor explicit.
23921 Tue May 15 16:00:24 BST 2007  Olly Betts <olly@survex.com>
23923         * queryparser/termgenerator_internal.cc: Add special handling for
23924           acronyms/initialisms, so I.B.M -> term ibm, etc.
23926 Tue May 15 14:07:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23928         * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
23929           a set_termpos() method, too.
23931 Tue May 15 13:54:34 BST 2007  Olly Betts <olly@survex.com>
23933         * include/xapian/database.h: Document the issue of the monotonic
23934           docid counter wrapping around.
23936 Tue May 15 10:58:37 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23938         * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
23939           get_termpos() method to get the current value of the termpos.
23940           Makes it easier to integrate with different term generators.
23942 Tue May 15 03:44:50 BST 2007  Olly Betts <olly@survex.com>
23944         * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
23945           Include '.', ',', and a few other characters in terms if they are
23946           between two decimal digits.
23947         * queryparser/termgenerator_internal.cc: Don't stem terms which start
23948           with a number.
23949         * tests/queryparsertest.cc: Update results for real world queries to
23950           match new results (better in every case but one!)
23952 Tue May 15 01:24:08 BST 2007  Olly Betts <olly@survex.com>
23954         * HACKING: Fix a few typos.  Add "feisty" to the list of debs to
23955           build.
23957 Tue May 15 00:51:35 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23959         * HACKING: Document that the bootstrap script should be run from
23960           srcdir, and that the generated configure can be run from a
23961           different builddir.  Tidy up a few other lines.
23963 Mon May 14 23:52:33 BST 2007  Olly Betts <olly@survex.com>
23965         * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
23966           Expand check_infix to include some of characters Unicode does.
23967         * tests/queryparsertest.cc: Update the single test query which now
23968           parses differently.
23970 Mon May 14 23:42:53 BST 2007  Olly Betts <olly@survex.com>
23972         * tests/harness/testsuite.h: New macro TEST_STRINGS_EQUAL() which
23973           displays the strings on separate lines so the differences can
23974           be clearly seen.
23975         * tests/queryparsertest.cc: Use TEST_STRINGS_EQUAL().
23977 Mon May 14 20:14:17 BST 2007  Olly Betts <olly@survex.com>
23979         * include/xapian/enquire.h: Make the "uses string sort" warning in
23980           the documentation for the methods which enable sorting by value
23981           more prominent, and fix several miscellaneous typos.
23983 Mon May 14 19:28:21 BST 2007  Olly Betts <olly@survex.com>
23985         * queryparser/dir_contents: Update to mention TermGenerator.
23987 Mon May 14 19:12:12 BST 2007  Olly Betts <olly@survex.com>
23989         * queryparser/queryparser.lemony: Fix handling of WILDCARD_TERM and
23990           PARTIAL_TERM for prefixed terms.
23991         * tests/queryparsertest.cc: Add test coverage for this.
23993 Mon May 14 18:02:22 BST 2007  Olly Betts <olly@survex.com>
23995         * tests/queryparsertest.cc: Add more testcases for wildcarded queries.
23997 Mon May 14 17:39:30 BST 2007  Olly Betts <olly@survex.com>
23999         * queryparser/queryparser.lemony: Fix handling of partial queries.
24001 Mon May 14 16:49:46 BST 2007  Olly Betts <olly@survex.com>
24003         * net/remoteconnection.cc: closesocket() seems to work equally as
24004           well as CloseHandle() but it's what we use elsewhere and Charlie
24005           thinks it's a better choice here too so use that instead.  Rename
24006           the wrapper call from close_fd_or_handle() to close_fd_or_socket().
24007           And mark close_fd_or_socket() as "inline" under UNIX, since it
24008           should always be inlined.
24010 Mon May 14 15:30:13 BST 2007  Olly Betts <olly@survex.com>
24012         * tests/api_anydb.cc: Add FIXME about moving wildquery1.
24014 Mon May 14 15:21:59 BST 2007  Olly Betts <olly@survex.com>
24016         * bin/xapian-progsrv.cc: Improve comments.
24018 Mon May 14 11:29:14 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24020         * net/remoteconnection.cc: Deal with invalid parameter exceptions
24021           on windows when closing file descriptors or handles.
24023 Mon May 14 05:04:16 BST 2007  Olly Betts <olly@survex.com>
24025         * tests/api_anydb.cc: Fix wildquery1 to work with the new term
24026           stemming scheme.
24028 Sun May 13 19:15:17 BST 2007  Olly Betts <olly@survex.com>
24030         * include/xapian/unicode.h: Count control characters as whitespace
24031           (which is certainly what we want for TAB, CR, LF, and FF).
24033 Sun May 13 17:50:19 BST 2007  Olly Betts <olly@survex.com>
24035         * include/xapian/unicode.h: Add CONNECTOR_PUNCTUATION to is_wordchar()
24036           - this category includes '_' and characters which fulfil similar
24037           roles.
24038         * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
24039           No longer need to special case '_'.
24040         * queryparser/queryparser.lemony: Test for Unicode "whitespace" rather
24041           than just ASCII.
24043 Sun May 13 04:43:37 BST 2007  Olly Betts <olly@survex.com>
24045         * queryparser/queryparser.lemony: Normalise Unicode characters used
24046           for apostrophe to ASCII apostrophe.
24048 Sun May 13 03:56:17 BST 2007  Olly Betts <olly@survex.com>
24050         * include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
24051           routines to use Unicode 5.0.0 and support characters outside the BMP
24052           (so we now support all Unicode characters in the latest version of
24053           the standard).
24054         * tests/api_unicode.cc: Add test unicode1 which performs some simple
24055           tests of the categorisation function, include one which tests for a
24056           character added in Unicode 5.0.0.
24058 Sat May 12 06:01:50 BST 2007  Olly Betts <olly@survex.com>
24060         * queryparser/queryparser.lemony: Update comment.
24062 Sat May 12 04:23:01 BST 2007  Olly Betts <olly@survex.com>
24064         * queryparser/queryparser.lemony: Improve description of Term class.
24066 Sat May 12 04:16:47 BST 2007  Olly Betts <olly@survex.com>
24068         * queryparser/queryparser.lemony: Update to implement the new stemming
24069           scheme.
24070         * tests/queryparsertest.cc: Update testcases, and check that the new
24071           parses are all reasonable.
24073 Sat May 12 04:03:55 BST 2007  Olly Betts <olly@survex.com>
24075         * include/xapian/unicode.h: Xapian::Unicode::get_category() now checks
24076           for characters outside the BMP, and assumes they're of category
24077           OTHER_LETTER.  Remove BMP check from all functions which use
24078           Xapian::Unicode::get_category().
24080 Sat May 12 04:02:52 BST 2007  Olly Betts <olly@survex.com>
24082         * include/xapian/queryparser.h: Fix typo in comment.
24084 Fri May 11 05:45:38 BST 2007  Olly Betts <olly@survex.com>
24086         * net/remoteserver.cc: Make "Server is read-only" be of type
24087           InvalidOperationError not NetworkError.  This is arguably more
24088           appropriate anyway, but in particular it avoids a worrying looking
24089           (but harmless) warning when a read-only connection is closed, due
24090           dtor_called() calling flush() on a read-only database.
24092 Fri May 11 01:35:31 BST 2007  Olly Betts <olly@survex.com>
24094         * docs/Makefile.am: Disable more documentation rules if
24095           MAINTAINER_NO_DOCS is true.
24097 Thu May 10 23:01:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24099         * net/remoteconnection.cc: Remove definition of unused macro
24100           XAPIAN_MSVC_INVALID_PARAMETER_HANDLER.
24102 Thu May 10 19:24:23 BST 2007  Olly Betts <olly@survex.com>
24104         * include/xapian/enquire.h: Try quoting qualified identifiers in
24105           #pragma deprecated.
24107 Thu May 10 15:58:37 BST 2007  Olly Betts <olly@survex.com>
24109         * include/xapian/enquire.h: Give full scope in '#pragma deprecated'
24110           to try to avoid false positives.
24112 Thu May 10 14:53:08 BST 2007  Olly Betts <olly@survex.com>
24114         * include/xapian/enquire.h: Use '#pragma deprecated' to work around
24115           MSVC stupidity (you get a warning for deprecating a declaration).
24117 Thu May 10 13:42:49 BST 2007  Olly Betts <olly@survex.com>
24119         * configure.ac: Some GCC 3.x versions produce bogus warnings, so only
24120           automatically enable -Werror on --enable-maintainer-mode under GCC
24121           if we're using GCC >= 4.0.  Most developers will be using GCC 4.x
24122           soon if they aren't already anyway.
24123         * HACKING: Update documentation in line with the above.  Mention that
24124           we also enable -Werror for Intel's C++ compiler.
24126 Thu May 10 05:06:22 BST 2007  Olly Betts <olly@survex.com>
24128         * configure.ac: Detect __WIN32__ by running the preprocessor so we
24129           don't get confused by building mingw in a cygwin environment.
24131 Thu May 10 04:52:21 BST 2007  Olly Betts <olly@survex.com>
24133         * net/tcpserver.cc: Exit with EX_UNAVAILABLE if the mutex tells us
24134           xapian-tcpsrv is already running on this port.
24136 Thu May 10 04:44:10 BST 2007  Olly Betts <olly@survex.com>
24138         * common/Makefile.mk,common/safe.cc,common/safeunistd.h: Pulling
24139           in safewindows.h from safeunistd.h causes clashes with NEAR
24140           in the QueryParser, so use a helper function to call Sleep
24141           and just call that from the header.
24143 Thu May 10 04:36:19 BST 2007  Olly Betts <olly@survex.com>
24145         * net/tcpserver.cc: Fix compilation error.
24147 Thu May 10 04:26:31 BST 2007  Olly Betts <olly@survex.com>
24149         * common/tcpserver.h,net/tcpserver.cc: Just pass the mutex to
24150           get_listening_socket() by reference to avoid MSVC warnings.
24152 Thu May 10 04:19:13 BST 2007  Olly Betts <olly@survex.com>
24154         * common/safeunistd.h: Use Sleep() instead of _sleep() as the latter
24155           gives deprecation warnings.  Sadly that means that safeunistd.h
24156           now has to pull in safewindows.h.
24158 Thu May 10 04:07:53 BST 2007  Olly Betts <olly@survex.com>
24160         * common/tcpserver.h,net/tcpserver.cc: Keep track of the mutex so
24161           we can release it right after we close the listening socket.
24162           Throw an error if we fail to get the mutex to avoid a possible
24163           race condition (we might end up with the socket listening but
24164           without the mutex locked).  Always call closesocket() on the
24165           listening socket under __WIN32__ to ensure resources are released.
24167 Thu May 10 02:48:31 BST 2007  Olly Betts <olly@survex.com>
24169         * net/tcpserver.cc: Use a mutex under Cygwin and WIN32 to allow use to
24170           use Microsoft's broken SO_REUSEADDR on our listening socket, but
24171           avoid being able to run two copies of xapian-tcpsrv on the same port
24172           at once (tweaked patch from MarkH).
24173         * net/tcpserver.cc: Don't try to set SO_EXCLUSIVEADDRUSE if a previous
24174           setsockopt() call failed as we might stomp on the error code.
24176 Thu May 10 02:15:20 BST 2007  Olly Betts <olly@survex.com>
24178         * Makefile.am,bin/Makefile.mk,configure.ac,docs/Makefile.am,
24179           examples/Makefile.mk: Add new Automake conditional
24180           "MAINTAINER_NO_DOCS" to allow use to disable references to built
24181           documentation in maintainer builds if --disable-documentation is
24182           specified.  This allows Mark's buildbot to work without installing
24183           so many tools, some of which aren't packaged for Cygwin.
24185 Thu May 10 02:03:44 BST 2007  Olly Betts <olly@survex.com>
24187         * Makefile.am: Build rules for running generate-exceptions should be
24188           controlled by MAINTAINER_MODE not DOCUMENTATION_RULES, part II.
24190 Thu May 10 01:49:42 BST 2007  Olly Betts <olly@survex.com>
24192         * docs/deprecation.rst: Add Error::get_type().
24194 Thu May 10 01:25:37 BST 2007  Olly Betts <olly@survex.com>
24196         * api/error.cc,generate-exceptions.in: Add new constructors which
24197           allow error_string to be set directly, for use by the Xapian::Error
24198           unserialising code.
24199         * generate-exceptions.in: Xapian::Error::get_type() now returns
24200           const char * not std::string.
24201         * backends/quartz/quartz_database.cc: Fix code to handle changed
24202           return type of Xapian::Error::get_type().
24203         * net/serialise.cc: Include error_string in the serialisation.
24204         * common/remoteprotocol.h,docs/remote_protocol.html: Bump protocol
24205           version to 29 because of change in Xapian::Error serialisation.
24207 Wed May 09 14:42:33 BST 2007  Olly Betts <olly@survex.com>
24209         * queryparser/queryparser.lemony: Renaming match_nothing_
24210           member of QpQuery to match_nothing.  Comment out unused
24211           QpQuery::get_description().  Add FIXME comment about
24212           apparently redundant logic (now's not really the time
24213           to be fiddling with such things).
24215 Wed May 09 14:27:02 BST 2007  Olly Betts <olly@survex.com>
24217         * queryparser/queryparser.lemony: Update to match new TermGenerator
24218           class.  '_' is now a term character, not a phrase generator.  We
24219           only keep a suffix which has 3 or fewer characters, and we no longer
24220           count '-' as a suffix character.
24221         * tests/queryparsertest.cc: Update test cases to match new behaviour.
24222           In almost every case the new rules give a better result.
24224 Wed May 09 14:15:38 BST 2007  Olly Betts <olly@survex.com>
24226         * languages/compiler/space.c: Add sanity check to b_to_s(),
24227           highlighted by MSVC warning.
24229 Wed May 09 14:06:24 BST 2007  Olly Betts <olly@survex.com>
24231         * tests/btreetest.cc: Return filesize as off_t to avoid MSVC warning
24232           about truncating from 64 to 32 bits (the filesize will never be
24233           more than a few K here, so this is essentially a cosmetic issue).
24235 Wed May 09 04:04:03 BST 2007  Olly Betts <olly@survex.com>
24237         * common/tcpserver.h,net/tcpserver.cc: Always starting the server in a
24238           new thread in "one-shot" mode is trickier than it looked, so revert
24239           that change for now.  Always call closesocket() on our sockets under
24240           __WIN32__.
24242 Wed May 09 01:53:43 BST 2007  Olly Betts <olly@survex.com>
24244         * common/tcpserver.h,net/tcpserver.cc: Make UNIX signal handling
24245           functions and WIN32 CrtlHandler static.  TcpServer::run() is now
24246           generic, calling an OS-specific TcpServer::run_once().  Now we
24247           always run the server in a new thread in "one-shot" mode, which
24248           gives better code coverage in apitest as it runs more like a normal
24249           xapian-tcpsrv would.  CtrlHandler now lets the OS handle the event
24250           if it doesn't have a socket to close, or if closesocket() fails.
24252 Wed May 09 01:42:33 BST 2007  Olly Betts <olly@survex.com>
24254         * net/remoteconnection.cc: DWORD is unsigned, so received can't be
24255           negative - tidy up the ReadFile() loop taking this into account.
24257 Wed May 09 01:28:48 BST 2007  Olly Betts <olly@survex.com>
24259         * net/remoteconnection.cc: ReadFile() doesn't set errno, so remove
24260           test for EINTR which is just a hangover from the UNIX code.
24262 Tue May 08 23:50:33 BST 2007  Olly Betts <olly@survex.com>
24264         * queryparser/termgenerator_internal.cc: Treat '_' as a word character
24265           which seems to be the correct thing to do in general.  Generate
24266           unstemmed terms with positional information for all words without a
24267           prefix, and stemmed terms without positional information for
24268           non-stopwords with a 'Z' prefix.  This means we can implement exact
24269           phrase search, and prefixing stemmed forms (rather than unstemmed
24270           as Omega < 1.0 does) means fewer terms with the prefix.  Only
24271           stemming non-stopwords cuts a significant amount of the database
24272           size in my tests.
24274 Tue May 08 18:22:30 BST 2007  Olly Betts <olly@survex.com>
24276         * net/tcpserver.cc: Fix remaining use of handle_one_request in
24277           __WIN32__-specific code.
24279 Tue May 08 18:10:12 BST 2007  Olly Betts <olly@survex.com>
24281         * api/error.cc: Really fix it...
24283 Tue May 08 17:38:04 BST 2007  Olly Betts <olly@survex.com>
24285         * api/error.cc: Fix another paste-o!
24287 Tue May 08 17:28:29 BST 2007  Olly Betts <olly@survex.com>
24289         * api/error.cc: Remove bogus statement in __WIN32__ case left over
24290           from cut-and-paste.
24292 Tue May 08 17:10:53 BST 2007  Olly Betts <olly@survex.com>
24294         * common/tcpserver.h,net/tcpserver.cc: Rename
24295           TcpServer::handle_one_request() to
24296           TcpServer::handle_one_connection() (to make it clearer that it
24297           handles a connection rather than a single MSG/REPLY exchange), and
24298           use it in UNIX builds too to avoid duplicating its code.  Catch
24299           NetworkTimeoutError here and report it if we're in verbose mode.
24300         * net/remoteserver.cc: If we catch NetworkTimeoutError then try to
24301           propagate it only if we can send it right away, then rethrow it
24302           to close the connection and let the caller log it.  If we catch
24303           any other NetworkError then just rethrow it.
24305 Tue May 08 16:52:50 BST 2007  Olly Betts <olly@survex.com>
24307         * common/noreturn.h: Add missing '#endif'.
24309 Tue May 08 16:19:05 BST 2007  Olly Betts <olly@survex.com>
24311         * common/Makefile.mk,common/noreturn.h: New header which defines
24312           XAPIAN_NORETURN() to allow functions which don't return to be
24313           marked as such so the compiler can take this into account when
24314           generating code.
24315         * api/error.cc,tests/harness/backendmanager.cc: Remove any trailing
24316           "\r\n" from the output of FormatMessage().
24318 Tue May 08 16:16:55 BST 2007  Olly Betts <olly@survex.com>
24320         * include/xapian/deprecated.h: Use `__attribute__((__deprecated__))'
24321           instead of `__attribute__((deprecated))' so we're even robust
24322           against some clown doing `#define deprecated foo'.
24324 Tue May 08 16:15:30 BST 2007  Olly Betts <olly@survex.com>
24326         * bin/quartzcheck.cc,tests/harness/backendmanager.cc: In these files
24327           we have to disable XAPIAN_DEPRECATED() since we need to be able to
24328           use Quartz::open() - move this to the start of the #include block
24329           to avoid problems with any intermediate header implicitly including
24330           <xapian.h>.
24332 Tue May 08 14:51:37 BST 2007  Olly Betts <olly@survex.com>
24334         * HACKING: Move section on "Configure Options" to a more logical spot
24335           just before "Makefile Portability".  Add section on how to use
24336           XAPIAN_DEPRECATED() noting the issue with GCC 3.3.5 not allowing
24337           it to be used on an inline method definition.
24338         * include/xapian/deprecated.h: Add pointers to HACKING and
24339           docs/deprecated.rst.
24341 Tue May 08 13:57:17 BST 2007  Olly Betts <olly@survex.com>
24343         * generate-exceptions.in: We can't use XAPIAN_DEPRECATED() on
24344           a function definition with GCC 3.3.5, so use it on a declaration
24345           and then define inline but out of the class.
24347 Tue May 08 13:45:48 BST 2007  Olly Betts <olly@survex.com>
24349         * net/tcpserver.cc: We must call closesocket() (instead of just
24350           close()) under __WIN32__ or else the socket remains in the
24351           CLOSE_WAIT state.
24353 Tue May 08 12:17:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24355         * docs/deprecation.rst: Add Error::get_errno() to the deprecation
24356           list for the bindings, too.
24358 Tue May 08 10:09:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24360         * docs/deprecation.rst: Change the xapian_version functions to be
24361           marked for removal in 1.1.0, and also note them in the bindings
24362           section.
24364 Tue May 08 04:27:37 BST 2007  Olly Betts <olly@survex.com>
24366         * backends/remote/remote-database.cc,common/remote-database.h: The
24367           timeout parameter to RemoteDatabase wasn't being used, instead the
24368           client would wait indefinitely for the server to respond.
24370 Tue May 08 04:16:45 BST 2007  Olly Betts <olly@survex.com>
24372         * generate-exceptions.in: Initialise error_string in Xapian::Error
24373           ctor.
24375 Tue May 08 03:48:47 BST 2007  Olly Betts <olly@survex.com>
24377         * api/error.cc: Fix compilation when HAVE_HSTRERROR isn't defined.
24379 Tue May 08 02:35:04 BST 2007  Olly Betts <olly@survex.com>
24381         * api/error.cc,bin/xapian-tcpsrv.cc,examples/delve.cc,
24382           generate-exceptions.in,tests/harness/testsuite.cc: Error subclasses
24383           now store the error_string in the class, converting it from the
24384           error code in my_errno lazily.  Also, get_error_string() now returns
24385           const char *.
24387 Tue May 08 01:34:56 BST 2007  Olly Betts <olly@survex.com>
24389         * Makefile.am: Build rules for running generate-exceptions should be
24390           controlled by MAINTAINER_MODE not DOCUMENTATION_RULES.
24392 Tue May 08 01:23:22 BST 2007  Olly Betts <olly@survex.com>
24394         * bin/xapian-tcpsrv.cc,docs/deprecation.rst,generate-exceptions.in,
24395           net/tcpserver.cc,tests/harness/testsuite.cc: Deprecate
24396           Error::get_errno() in favour of Error::get_error_string().  We can't
24397           pass errno values from remote server to client as they aren't
24398           portable and the server and client may be running on entirely
24399           different platforms!
24400         * generate-exceptions.in: Mark as generated with @configure_input@.
24402 Tue May 08 01:20:43 BST 2007  Olly Betts <olly@survex.com>
24404         * backends/flint/flint_database.cc,backends/flint/flint_lock.h: Make
24405           FlintLock's dtor release the lock (if held) which avoids the need
24406           for any special handling in FlintDatabase.
24408 Mon May 07 21:15:33 BST 2007  Olly Betts <olly@survex.com>
24410         * tests/harness/unixcmds.cc: Use O_BINARY when opening a file to
24411           "touch" it.
24413 Mon May 07 17:28:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24415         * backends/flint/flint_database.cc: Add try{}catch(...){} block to
24416           ensure that lock is released if an exception occurs in the
24417           FlintDatabase() constructor.
24418         * tests/api_db.cc: Add regression test for releasing lock on error
24419           in constructor.
24421 Mon May 07 11:10:33 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24423         * HACKING: Update section on multiple output rules to detail the
24424           workaround described in the automake manual.
24426 Mon May 07 10:03:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24428         * backends/flint/flint_database.cc,backends/flint/flint_database.h,
24429           backends/flint/flint_version.cc,backends/quartz/,exception_data.pm,
24430           include/xapian/database.h,tests/api_db.cc: Throw
24431           DatabaseVersionError instead of DatabaseOpeningError when database
24432           version is unsupported.  This is a new error class, which is a
24433           subclass of DatabaseOpeningError, so most existing scripts
24434           shouldn't need changing, but makes it easy for application
24435           writers to determine whether a database needs upgrading or
24436           whether the problem is something else.  Should fix #144.
24438 Mon May 07 09:22:01 BST 2007  Olly Betts <olly@survex.com>
24440         * net/progclient.cc: Under __WIN32__, use byte mode on pipes because
24441           message mode fails for message > 256 bytes, and use "overlapped"
24442           mode so we don't block waiting for a reply so that timeouts work.
24443           (Patch from Mark Hammond).
24445 Mon May 07 03:03:10 BST 2007  Olly Betts <olly@survex.com>
24447         * tests/api_anydb.cc,tests/apitest.cc,tests/harness/: Now
24448           TEST_EQUAL_DOUBLE() should work everywhere.  Move the helper
24449           function out of the header.  Use TEST_EQUAL_DOUBLE() instead
24450           of doubles_are_equal_enough() and weights_are_equal_enough()
24451           which do much the same job.
24453 Mon May 07 01:13:29 BST 2007  Olly Betts <olly@survex.com>
24455         * tests/harness/testsuite.h: Report extra info to try to work out why
24456           MSVC build is failing expandweights1.
24458 Mon May 07 00:26:59 BST 2007  Olly Betts <olly@survex.com>
24460         * tests/harness/testsuite.h: Another tweak to TEST_EQUAL_DOUBLE().
24462 Sun May 06 22:30:26 BST 2007  Olly Betts <olly@survex.com>
24464         * docs/quickstart.html: Remove reference to DA databases since the
24465           muscat36 backend has been removed.  Update to recommend GCC 3.3
24466           or later, as we do elsewhere.  Change references to "quartz" to
24467           say "flint", or remove them.
24469 Sun May 06 16:02:28 BST 2007  Olly Betts <olly@survex.com>
24471         * configure.ac: Set version to mythical 0.9.99.
24473 Sun May 06 15:06:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24475         * tests/api_db.cc: Add test_flintdatabaseformaterror1() which
24476           checks what happens when an old-format flint database is opened.
24477           It generates the old-format database by making a fake "iamflint"
24478           file containing an old version number.
24480 Sun May 06 04:00:39 BST 2007  Olly Betts <olly@survex.com>
24482         * expand/ortermlist.cc: Remove incorrect assertion check in
24483           OrTermList::next(), replacing it with anexplanatory comment.
24485 Sun May 06 02:42:30 BST 2007  Olly Betts <olly@survex.com>
24487         * net/remoteconnection.cc: Fix typo.
24489 Sun May 06 02:39:23 BST 2007  Olly Betts <olly@survex.com>
24491         * net/remoteconnection.cc: Aha!  Richard's patch failed to compile
24492           because stdlib.h was in "#ifndef __WIN32__" not "#ifdef __WIN32__".
24494 Sun May 06 02:27:18 BST 2007  Olly Betts <olly@survex.com>
24496         * net/remoteconnection.cc: Protect _set_invalid_parameter_handler, etc
24497           by _MSC_VER >= 1400 (MSVC 2005) and __STDC_SECURE_LIB__ (undocumented
24498           but cribbed from the Python sources).  Refactor into a handy class
24499           (MSVCIgnoreInvalidParameter) which just needs to be instantiated in
24500           the scope where you want to allow invalid parameters to be passed.
24502 Sun May 06 01:42:06 BST 2007  Olly Betts <olly@survex.com>
24504         * net/remoteconnection.cc: Rework use of _invalid_parameter_handler to
24505           only apply when _MSC_VER is defined, to fix the mingw build.
24507 Sat May 05 22:30:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24509         * net/remoteconnection.cc: Under __WIN32__, add an invalid
24510           parameter handler which ignores the error and use it for the
24511           calls to _get_osfhandle() which are sometimes expected to fail.
24512           Requires stdlib.h according to msdn, so also #include that.
24514 Sat May 05 20:43:29 BST 2007  Olly Betts <olly@survex.com>
24516         * bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc,common/remoteconnection.h,
24517           common/remoteserver.h,common/tcpserver.h,net/remoteserver.cc,
24518           net/tcpserver.cc: Open a fresh copy of the database(s) on each
24519           connection to a xapian-tcpsrv rather than relying on being able to
24520           share a database across fork() or between threads (which we don't
24521           promise will work).  Largely based on patch from Mark Hammond.
24522           Fixes some of bug#141 and all of bug#142.
24524 Sat May 05 02:19:39 BST 2007  Olly Betts <olly@survex.com>
24526         * api/omdatabase.cc: Use RETURN() not return in methods with debug
24527           logging.
24529 Sat May 05 02:19:11 BST 2007  Olly Betts <olly@survex.com>
24531         * bin/xapian-compact.cc: Fix typo in comment.
24533 Fri May 04 23:59:54 BST 2007  Olly Betts <olly@survex.com>
24535         * backends/flint/flint_version.cc: Remove the "u" suffix from
24536           FLINT_VERSION as it's confusing in the "wrong format version"
24537           error message and doesn't seem needed in the code.
24539 Fri May 04 23:56:32 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24541         * backends/flint/: Revert patch from revision 8426 (except for the
24542           bit which removed the unused prototypes), to avoid the
24543           possibility that it introduces bugs into the code just before
24544           1.0.0.  The patch is attached to bug #143 for later reference.
24546 Fri May 04 23:50:39 BST 2007  Olly Betts <olly@survex.com>
24548         * examples/delve.cc: Report the error string if we catch Xapian::Error
24549           while trying to open a database.
24551 Fri May 04 22:50:54 BST 2007  Olly Betts <olly@survex.com>
24553         * docs/intro_ir.html: Fix a few typos; elaborate on a few points.
24555 Fri May 04 20:07:44 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24557         * queryparser/termgenerator_internal.cc: Fix bug in termgenerator -
24558           arguments to add_posting were the wrong way round.
24560 Fri May 04 20:00:40 BST 2007  Olly Betts <olly@survex.com>
24562         * queryparser/termgenerator_internal.cc: Limit term length, handle
24563           infix and suffix characters, and convert apostrophes to ASCII
24564           representation.
24566 Fri May 04 19:47:43 BST 2007  Olly Betts <olly@survex.com>
24568         * include/xapian/unicode.h: Fill in remaining missing documentation
24569           comments.
24571 Fri May 04 19:30:56 BST 2007  Olly Betts <olly@survex.com>
24573         * include/xapian/termgenerator.h: Add convenience version of
24574           index_text() and index_text_without_positions() which take a
24575           std::string instead of a Utf8Iterator.
24577 Fri May 04 17:11:11 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24579         * unicode/utf8itor.cc: Fix segfault bug in Utf8Iterator::operator*().
24580           If this was called when the iterator had reached end, invalid
24581           memory was accessed because p was compared to end, p will always
24582           be set to NULL when the iterator reaches the end.  No regression
24583           test, but the smoketest tests I'm implementing in the bindings
24584           will exercise this code.
24586 Fri May 04 16:29:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24588         * include/xapian/unicode.h: Add documentation comments to
24589           Utf8Iterator, so I don't have to work out how it works again.
24591 Fri May 04 14:55:32 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24593         * include/xapian/unicode.h: Add assign() function which takes a
24594           string, for symmetry with the constructors.  Also makes
24595           implementing the bindings easier.
24597 Fri May 04 13:04:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24599         * include/Makefile.mk: Add termgenerator.h to distribution
24600           tarballs.
24602 Fri May 04 03:41:56 BST 2007  Olly Betts <olly@survex.com>
24604         * tests/harness/testsuite.h: Test against pow(10, -DBL_DIG) rather
24605           than DBL_EPSILON.  DBL_EPSILON is a little bit smaller, but we use
24606           DBL_DIG for displaying the numbers and it looks stupid to say two
24607           numbers which are displayed identically should be nearly the same!
24609 Fri May 04 03:33:51 BST 2007  Olly Betts <olly@survex.com>
24611         * HACKING: Fix reference to --enable-maitainer-mode and documentation
24612           rebuilding.
24614 Fri May 04 03:32:57 BST 2007  Olly Betts <olly@survex.com>
24616         * configure.ac: Fix now erroneous references to tools "required in
24617           maintainer mode" to "required to build documentation".
24619 Fri May 04 01:49:05 BST 2007  Olly Betts <olly@survex.com>
24621         * HACKING: Document --enable-documentation.
24623 Fri May 04 01:38:44 BST 2007  Olly Betts <olly@survex.com>
24625         * Makefile.am,bin/Makefile.mk,configure.ac,docs/Makefile.am,
24626           examples/Makefile.mk: Add new configure option
24627           "--enable-documentation" which enables the make rules to rebuild the
24628           documentation.  By default this follows the setting of
24629           "--enable-maintainer-mode" (so giving much the same behaviour as
24630           currently), but the documentation rules can now be controlled
24631           independently.  Also, if documentation isn't being built, the
24632           configure probes for tools required to rebuild it are no longer run
24633           which should shorten configure time a bit for end-users building
24634           releases.
24636 Thu May 03 22:07:39 BST 2007  Olly Betts <olly@survex.com>
24638         * common/remoteserver.h: Remove unused default values for
24639           active_timeout_ and idle_timeout_ parameters.  Fix repeated typo
24640           in documentation comments ('millisrconds' -> 'milliseconds').
24642 Thu May 03 15:05:24 BST 2007  Olly Betts <olly@survex.com>
24644         * include/xapian.h,include/xapian/termgenerator.h,queryparser/:
24645           Initial cut of TermGenerator class.
24647 Thu May 03 15:04:09 BST 2007  Olly Betts <olly@survex.com>
24649         * generate-exceptions.in: Hide the internal constructors of generated
24650           error classes in the doxygen-generated API docs.
24652 Thu May 03 04:37:51 BST 2007  Olly Betts <olly@survex.com>
24654         * expand/ortermlist.cc,expand/ortermlist.h: Fix compilation error when
24655           --enable-assertions is used.
24657 Thu May 03 03:57:42 BST 2007  Olly Betts <olly@survex.com>
24659         * common/safeunistd.h: Provide a POSIX-compatible sleep() function.
24660         * common/utils.h: Remove inferior POSIX-compatible sleep() function.
24662 Thu May 03 03:17:02 BST 2007  Olly Betts <olly@survex.com>
24664         * include/xapian/: Mark all @internal member variables and functions
24665           which aren't private with @private so doxygen doesn't document them.
24667 Thu May 03 02:33:09 BST 2007  Olly Betts <olly@survex.com>
24669         * include/xapian/: Mark DocIDWrapper, RefCntBase, RefCntPtr,
24670           TermNameWrapper, and TermPosWrapper as "@internal" so that they don't
24671           show up in the doxygen-generated API documentation.  In particular,
24672           this makes the class collaboration diagrams much more useful.
24673         * include/xapian/errorhandler.h: Declare the class in namespace Xapian
24674           rather than with namespace Xapian:: since the latter seems to
24675           confuse doxygen.
24677 Thu May 03 02:31:33 BST 2007  Olly Betts <olly@survex.com>
24679         * include/xapian/unicode.h: Fix wrapping of comment.
24681 Thu May 03 00:05:23 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24683         * backends/flint/: Remove unused (and unimplemented) declarations
24684           of begin_transaction_(), commit_transaction_() and
24685           cancel_transaction_() from FlintWritableDatabase class.  Tidy up
24686           handling of metainfo (total_length and lastdocid) to avoid
24687           repeatedly parsing the special record, and make it easier to
24688           store additional metainfo in future.
24689           Also, remove code which ensures that there is always a special
24690           record - this was added in revision 5459 when the special record
24691           was stored in the record table, so that the number of documents
24692           in the database could always be calculated by subtracting 1 from
24693           the number of entries in the record table.  Now that the special
24694           record is stored in the postlist table, this is no longer
24695           necessary.
24697 Wed May 02 17:56:39 BST 2007  Olly Betts <olly@survex.com>
24699         * backends/dbfactory_remote.cc,include/xapian/dbfactory.h:
24700           Remote::open_writable() now defaults to no (active) timeout.  The
24701           connection timeouts for Remote::open() and Remote::open_writable()
24702           now default to 10 seconds rather than defaulting to the same as
24703           the active timeout (which defaults to 10 seconds).
24705 Wed May 02 16:00:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24707         * common/safeunistd.h,tests/harness/backendmanager.cc: Fix
24708           compilation on windows - safeunistd.h was undefining ssize_t
24709           and thus overriding the definition in config.h, and include
24710           safewindows.h for backendmanager.cc
24712 Wed May 02 15:34:33 BST 2007  Olly Betts <olly@survex.com>
24714         * common/safeunistd.h: Don't define ssize_t here for MSVC - do it in
24715           config.h instead.  This avoids pulling in <windows.h> which will
24716           hopefully fix another macro redefinition warning under MSVC.
24718 Wed May 02 15:20:56 BST 2007  Olly Betts <olly@survex.com>
24720         * common/safewindows.h: Define NOGDI before including windows.h to
24721           prevent it from defining a macro called "ERROR" which collides with
24722           the generated queryparser sources, causing a warning in the MSVC
24723           build.
24725 Wed May 02 14:38:33 BST 2007  Olly Betts <olly@survex.com>
24727         * common/termlist.h: Forward declare ExpandStats as "class" not
24728           "struct" for consistency with the actual declaration.
24730 Wed May 02 14:30:41 BST 2007  Olly Betts <olly@survex.com>
24732         * configure.ac: Try '-lzlib' for zlib, which mingw reportedly needs.
24734 Wed May 02 14:21:40 BST 2007  Olly Betts <olly@survex.com>
24736         * common/remoteconnection.h,include/xapian/dbfactory.h,
24737           net/remoteserver.cc: A timeout of `0' in the remote backend now
24738           means "no timeout" (code patch from Mark Hammond).
24740 Wed May 02 04:17:28 BST 2007  Olly Betts <olly@survex.com>
24742         * Makefile.am,api/,backends/alltermslist.cc,backends/flint/,
24743           backends/inmemory/inmemory_database.cc,
24744           backends/inmemory/inmemory_database.h,
24745           backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
24746           backends/quartz/,backends/remote/net_termlist.cc,
24747           backends/remote/net_termlist.h,backends/remote/remote-database.cc,
24748           common/,expand/,matcher/: Split expand functionality out of
24749           "matcher" subdirectory into new "expand" subdirectory since it's
24750           not really connected to query matching and the matcher subdirectory
24751           is one of the largest.  Rewrite OrTermList, eliminating
24752           BranchTermList entirely.  Alter expand to pass in an object (of
24753           class Xapian::Internal::ExpandWeight) which accumulates statistics
24754           instead of returning OmExpandBits objects which we then have to
24755           merge (and eliminating the need for LeafTermList entirely).  Query
24756           expansion for multiple databases should now give results more like
24757           that for a single database with the same documents (if
24758           USE_EXACT_TERMFREQ is used, the results should be the same).  Debug
24759           logging from expand is now all of type EXPAND (some was of types
24760           MATCHER and WTCALC before).
24762 Wed May 02 03:35:17 BST 2007  Olly Betts <olly@survex.com>
24764         * docs/deprecation.rst: Add deprecation info for Omega too.
24766 Wed May 02 00:24:13 BST 2007  Olly Betts <olly@survex.com>
24768         * tests/api_anydb.cc: Add test expandweights1 as a regression test for
24769           the previous commit.
24770         * tests/harness/testsuite.h: Set the precision for TEST_EQUAL_DOUBLE
24771           so we don't claim two numbers to be different yet display them the
24772           same!
24774 Tue May 01 23:27:10 BST 2007  Olly Betts <olly@survex.com>
24776         * backends/remote/net_termlist.cc,backends/remote/remote-database.cc,
24777           common/remoteprotocol.h,docs/remote_protocol.html,
24778           net/remoteserver.cc: Fix handling of the document length in the
24779           termlist for the remote backend.
24781 Tue May 01 23:17:28 BST 2007  Olly Betts <olly@survex.com>
24783         * tests/api_db.cc: Several tests were marked as "local db only" for
24784           historical reasons.  Enable them for remote backends too.
24785         * backends/remote/net_postlist.cc,tests/api_db.cc: Fix a bug in
24786           NetworkPostList::skip_to() which apitest's postlist4 reveals.
24788 Tue May 01 21:00:26 BST 2007  Olly Betts <olly@survex.com>
24790         * api/omtermlistiterator.cc,api/omvalueiterator.cc,
24791           backends/multi/multi_alltermslist.cc: Add explicit
24792           `#include "omassert.h"'.
24793         * backends/multi/multi_alltermslist.cc: Remove all explicit
24794           std:: qualifiers and add `using namespace std;'.
24796 Tue May 01 20:56:10 BST 2007  Olly Betts <olly@survex.com>
24798         * common/multialltermslist.h: Add explicit std:: qualifiers for
24799           string, for consistency with std::vector in this header.
24801 Tue May 01 15:19:53 BST 2007  Olly Betts <olly@survex.com>
24803         * matcher/branchpostlist.h: Don't check for NULL pointer before
24804           calling delete.
24806 Tue May 01 02:29:10 BST 2007  Olly Betts <olly@survex.com>
24808         * common/document.h,common/documentterm.h,common/multialltermslist.h,
24809           matcher/rset.cc,queryparser/queryparser.cc: Add some explicit
24810           includes for headers which were previously only implicitly included
24811           (in preparation for a forthcoming change which removes some of the
24812           implicit inclusions).
24814 Tue May 01 01:20:53 BST 2007  Olly Betts <olly@survex.com>
24816         * backends/database.cc,bin/quartzcheck.cc,docs/deprecation.rst,
24817           include/xapian/dbfactory.h,tests/api_db.cc,
24818           tests/harness/backendmanager.cc,tests/quartztest.cc: Deprecate
24819           the Quartz backend and related functions and utilities.
24821 Fri Apr 27 12:56:13 BST 2007  Olly Betts <olly@survex.com>
24823         * tests/Makefile.am: Pass '-no-install' when linking test programs,
24824           since we don't ever install them.  This means libtool doesn't need
24825           to generate shell script wrappers on most platforms.  Also prefer
24826           '$(ldflags)' to '@ldflags' as the former allows the user to override
24827           when they run 'make' which is sometimes useful.
24829 Fri Apr 27 03:44:15 BST 2007  Olly Betts <olly@survex.com>
24831         * docs/intro_ir.html: Add links for the various researchers mentioned
24832           by name.
24834 Thu Apr 26 17:57:10 BST 2007  Olly Betts <olly@survex.com>
24836         * docs/bm25.html,docs/intro_ir.html: Assorted documentation
24837           improvements.
24839 Thu Apr 26 15:43:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24841         * docs/deprecation.rst: Update with changes to Python bindings.
24843 Thu Apr 26 06:01:45 BST 2007  Olly Betts <olly@survex.com>
24845         * common/expandweight.h,matcher/expandweight.cc: Better handling of
24846           expand with multiple databases.
24848 Wed Apr 25 18:35:13 BST 2007  Olly Betts <olly@survex.com>
24850         * api/omenquire.cc: Delete nonsensical comment.
24852 Wed Apr 25 17:41:58 BST 2007  Olly Betts <olly@survex.com>
24854         * docs/deprecation.rst: Use the collective term "features" rather than
24855           overloading the term "functions".  Casual readers may miss the
24856           definition altogether, and even dedicated readers will probably
24857           already have a strong mental image of what a "function" is in the
24858           context of an API.
24860 Wed Apr 25 14:52:11 BST 2007  Olly Betts <olly@survex.com>
24862         * docs/intro_ir.html: Improve the look of the formulae.
24864 Wed Apr 25 03:56:18 BST 2007  Olly Betts <olly@survex.com>
24866         * common/omqueryinternal.h,languages/generate-allsnowballheaders.in,
24867           matcher/msetcmp.h,queryparser/queryparser_internal.h: Add missing
24868           multiple inclusion guards.
24870 Wed Apr 25 03:12:50 BST 2007  Olly Betts <olly@survex.com>
24872         * queryparser/queryparser_internal.h: Don't include <config.h> in
24873           a header file.
24875 Wed Apr 25 03:05:09 BST 2007  Olly Betts <olly@survex.com>
24877         * queryparser/queryparser.cc: Initialise `internal' member inline
24878           for consistency with other classes.
24880 Tue Apr 24 04:55:45 BST 2007  Olly Betts <olly@survex.com>
24882         * configure.ac: Add missing ')' to the error messages when zlib stuff
24883           isn't found.
24885 Tue Apr 24 02:56:57 BST 2007  Olly Betts <olly@survex.com>
24887         * backends/flint/flint_database.h,
24888           backends/inmemory/inmemory_database.h,
24889           backends/quartz/quartz_database.h: MSVC doesn't handle using
24890           properly.
24892 Tue Apr 24 01:25:34 BST 2007  Olly Betts <olly@survex.com>
24894         * matcher/bm25weight.cc,matcher/expandweight.cc: Fix typo in comments:
24895           'releveant' -> 'relevant'.
24897 Mon Apr 23 23:00:23 BST 2007  Olly Betts <olly@survex.com>
24899         * api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h,
24900           tests/api_anydb.cc,tests/api_db.cc: Deprecate
24901           Enquire::include_query_terms and Enquire::use_exact_termfreq in
24902           favour of capitalised versions Enquire::INCLUDE_QUERY_TERMS and
24903           Enquire::USE_EXACT_TERMFREQ (for consistency with our other
24904           manifest constants, and general C/C++ conventions).
24906 Mon Apr 23 18:14:20 BST 2007  Olly Betts <olly@survex.com>
24908         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Support for
24909           VLAs in C++ is a GCC extension, so eliminate the need for them.
24911 Mon Apr 23 16:32:07 BST 2007  Olly Betts <olly@survex.com>
24913         * docs/: svn:ignore deprecation.html. svn:ignore apidoc.pdf and
24914           sourcedoc.pdf rather than *.pdf.
24916 Mon Apr 23 16:08:53 BST 2007  Olly Betts <olly@survex.com>
24918         * tests/quartztest.cc: Resolve FIXME about MapTermList.
24920 Mon Apr 23 16:06:38 BST 2007  Olly Betts <olly@survex.com>
24922         * api/valuerangeproc.cc,backends/flint/flint_check.cc,
24923           backends/flint/flint_table.cc,backends/quartz/btree.cc,
24924           backends/quartz/btreecheck.cc,bin/xapian-tcpsrv.cc,examples/,
24925           languages/steminternal.h,tests/harness/testsuite.cc,
24926           tests/harness/testsuite.h,tests/stemtest.cc: Fix compilation with
24927           GCC 4.3 snapshot.
24929 Mon Apr 23 15:20:55 BST 2007  Olly Betts <olly@survex.com>
24931         * common/safeunistd.h: Comment tweaks.
24933 Mon Apr 23 11:54:14 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24935         * common/safeunistd.h: Include <process.h> on windows to get
24936           getpid() instead of using a #define.
24938 Mon Apr 23 11:30:56 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24940         * api/maptermlist.h: Fix typo in error message.
24942 Mon Apr 23 11:08:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24944         * api/maptermlist.h: Throw an InvalidOperationError() if
24945           MapTermList::get_termfreq() is called, instead of simply having
24946           Assert(false): this gets called if a term iterator is accessed
24947           for a freshly created Document, and the get_termfreq() method is
24948           called on it.  The error message is specific to this situation,
24949           since this is the only place in which MapTermList is used.
24951 Mon Apr 23 03:22:54 BST 2007  Olly Betts <olly@survex.com>
24953         * backends/flint/flint_database.cc,backends/flint/flint_lock.cc,
24954           backends/flint/flint_lock.h: Report why we failed to get a write
24955           lock on a flint database.
24957 Mon Apr 23 01:44:13 BST 2007  Olly Betts <olly@survex.com>
24959         * backends/flint/flint_version.cc: Update the flint format version
24960           since older flint versions can't read compressed tags.
24962 Mon Apr 23 01:25:25 BST 2007  Olly Betts <olly@survex.com>
24964         * configure.ac: Probe for zlib.h and -lz.
24965         * backends/flint/,bin/xapian-compact.cc: Use zlib to compress tags
24966           in the record and termlist tables.
24967         * tests/Makefile.am,tests/runtest.in,tests/valgrind.supp: Add a
24968           valgrind suppression for zlib (a known issue - for speed zlib
24969           deliberately reads past the end of the buffer in some cases).
24971 Sun Apr 22 04:24:06 BST 2007  Olly Betts <olly@survex.com>
24973         * backends/flint/: Remove documentation for blocksize_ parameters
24974           which were removed some time ago.
24976 Sun Apr 22 00:02:13 BST 2007  Olly Betts <olly@survex.com>
24978         * matcher/multimatch.cc: Track the minimum weight required to be
24979           considered for the MSet separately from the minimum item which
24980           could be considered.  Trying to combine the two is causing subtle
24981           bugs (fixed bug#86).
24983 Sun Apr 22 00:00:39 BST 2007  Olly Betts <olly@survex.com>
24985         * HACKING: Add notes about the files Omega uses from xapian-core.
24987 Sat Apr 21 23:49:58 BST 2007  Olly Betts <olly@survex.com>
24989         * queryparser/queryparser.cc: Clear the stoplist when we parse a new
24990           query.
24991         * tests/queryparsertest.cc: Add regression test.
24993 Sat Apr 21 23:27:33 BST 2007  Olly Betts <olly@survex.com>
24995         * Makefile.am,common/Makefile.mk,getopt/: Move getopt.cc from getopt/
24996           to common/.  Having a whole directory for a single source file
24997           is a bit extravagant, and putting it in common/ allows us to share a
24998           copy with omega easily.
25000 Sat Apr 21 21:38:20 BST 2007  Olly Betts <olly@survex.com>
25002         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc,
25003           backends/quartz/quartz_log.cc,common/omdebug.h,common/safeunistd.h,
25004           tests/harness/testsuite.cc: safeunistd.h now defines getpid() to
25005           GetCurrentProcessId() for MSVC, and we now include this where we
25006           want to use getpid() rather than conditionally defining getpid().
25008 Sat Apr 21 04:13:12 BST 2007  Olly Betts <olly@survex.com>
25010         * configure.ac: Explicitly set AM_CXXFLAGS to an empty value to start
25011           with to avoid issues if it's set in the environment.  Cache the
25012           results of the test to see if the C++ compiler actually works, and
25013           in the XAPIAN_TEST_LINKER_FLAG macro.
25014         * configure.ac, include/xapian/visibility.h: Add --disable-visibility
25015           option to configure to completely disable use of -fvisibility.
25016         * INSTALL: Document all --enable-backend-* options explicitly.
25017           Document how to disable use of -fvisibility and
25018           -Bsymbolic-functions should you want/need to.  Improve wording in
25019           a few places.
25021 Fri Apr 20 19:20:23 BST 2007  Olly Betts <olly@survex.com>
25023         * HACKING,configure.ac: Revert to requiring autoconf 2.59 so that the
25024           .spec file for building RPMs can run `autoreconf' to work around a
25025           libtool bug.
25027 Fri Apr 20 18:12:51 BST 2007  Olly Betts <olly@survex.com>
25029         * docs/deprecation.rst: Document return type of ExpandDecider::Apply()
25030           and MatchDecider::Apply() in C# is now bool instead of int.
25032 Fri Apr 20 18:01:18 BST 2007  Olly Betts <olly@survex.com>
25034         * xapian.spec.in: Package xapian-check and its man page.
25036 Fri Apr 20 14:38:00 BST 2007  Olly Betts <olly@survex.com>
25038         * docs/deprecation.rst: Note changed return type of
25039           ExpandDecider::operator() and MatchDecider::operator().
25041 Fri Apr 20 14:28:39 BST 2007  Olly Betts <olly@survex.com>
25043         * include/xapian/enquire.h: MatchDecider::operator() now returns
25044           `bool' not `int'.  Remove declaraction of ExpandDecider.
25045         * include/xapian/expanddecider.h: Move declaration of ExpandDecider
25046           to here.  ExpandDecider::operator() now returns `bool' not `int'.
25047           ExpandDeciderAnd now names parameters `first' and `second' and
25048           documents the order in which they are applied (useful if you have
25049           an expensive and a cheap test).  ExpandDeciderAnd can now take
25050           parameters by reference instead of pointer.
25051         * api/Makefile.mk,include/xapian/enquire.h,api/omenquire.cc,
25052           api/expanddecider.cc: New home for definitions of virtual methods of
25053           ExpandDecider and subclasses.
25054         * api/omenquire.cc,common/expand.h,matcher/expand.cc: Eliminate
25055           internal class ExpandDeciderAlways - just test pointer against NULL
25056           instead.
25057         * tests/api_anydb.cc,tests/api_db.cc: Update for change in return
25058           type from MatchDecider::operator() and ExpandDecider::operator().
25060 Fri Apr 20 10:35:09 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25062         * HACKING: Add note on rules with multiple targets.
25064 Thu Apr 19 19:02:42 BST 2007  Olly Betts <olly@survex.com>
25066         * PLATFORMS: Remove reports for 0.7.* and demote reports for 0.8.* to
25067           "older reports" status.  All SF compilefarm machines are now "no
25068           longer available", so update the symbols and key to reflect this.
25070 Thu Apr 19 13:27:59 BST 2007  Olly Betts <olly@survex.com>
25072         * HACKING: Fix vim magic comment.  Add space after URL to stop
25073           '::' getting glued to it.
25075 Thu Apr 19 11:36:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25077         * HACKING: Turn syntax highlighting off, since it's broken for the
25078           restructured text in this file anyway.
25080 Thu Apr 19 03:26:28 BST 2007  Olly Betts <olly@survex.com>
25082         * backends/flint/flint_database.h,
25083           backends/inmemory/inmemory_database.h,
25084           backends/quartz/quartz_database.h:
25085           The trick of importing base class methods with 'using' breaks
25086           compilation with GCC 2.95 which doesn't issue the warning we're
25087           trying to avoid, so add a preprocessor check,
25089 Thu Apr 19 03:20:31 BST 2007  Olly Betts <olly@survex.com>
25091         * common/progclient.h,net/progclient.cc: Always use pid_t not int for
25092           holding a process id.
25094 Thu Apr 19 01:08:57 BST 2007  Olly Betts <olly@survex.com>
25096         * docs/deprecation.rst: Update '#callable' footnote.
25098 Thu Apr 19 00:07:02 BST 2007  Olly Betts <olly@survex.com>
25100         * backends/flint/flint_database.h,
25101           backends/inmemory/inmemory_database.h,
25102           backends/quartz/quartz_database.h: Add using declarations to
25103           subclasses of Xapian::Database::Internal which don't override the
25104           term forms of delete_document() and replace_document() to prevent
25105           compiler warnings about these methods being hidden.
25107 Wed Apr 18 23:22:29 BST 2007  Olly Betts <olly@survex.com>
25109         * net/remoteconnection.cc: Remove code which can't actually be
25110           reached, which fixes a warning in the mingw build.
25112 Wed Apr 18 23:07:45 BST 2007  Olly Betts <olly@survex.com>
25114         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
25115           include/xapian/enquire.h,matcher/Makefile.mk,
25116           matcher/biaspostlist.h,matcher/multimatch.cc,net/remoteserver.cc:
25117           Remove Enquire::set_bias().
25118         * docs/deprecation.rst: Update wrt Enquire::set_bias().  Fix typo.
25120 Wed Apr 18 18:51:42 BST 2007  Olly Betts <olly@survex.com>
25122         * configure.ac: Require autoconf 2.60 or newer.  Drop docdir
25123           compatibility hack which is no longer required.
25124         * HACKING: Document requirement.  Fix typo (or out-of-date info) for
25125           automake requirement (we require 1.9.5 not 1.8.5).
25127 Wed Apr 18 18:27:35 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25129         * docs/deprecation.rst: Note the deprecation of get_description()
25130           methods for Python.
25132 Wed Apr 18 14:57:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25134         * HACKING: Minimal changes to make this into valid restructured
25135           text.
25137 Wed Apr 18 11:27:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25139         * configure.ac: Require autoconf version 2.59c or later:
25140           AC_TYPE_SSIZE_T isn't present in earlier versions.
25142 Wed Apr 18 11:08:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25144         * docs/deprecation.rst: Fix table formatting error
25146 Wed Apr 18 01:32:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25148         * docs/deprecation.rst: Update with methods which have been removed
25149           from the bindings.
25151 Wed Apr 18 00:24:00 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25153         * docs/deprecation.rst: Move methods which have just been removed
25154           from the list of deprecated methods to the list of removed
25155           methods.
25157 Tue Apr 17 23:58:53 BST 2007  Olly Betts <olly@survex.com>
25159         * api/omdocument.cc,api/omenquire.cc,api/omquery.cc,include/xapian/,
25160           languages/stem.cc,tests/api_db.cc: Remove methods we're deprecating
25161           for 1.0.
25163 Tue Apr 17 23:50:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25165         * docs/deprecation.rst: Note that is_empty() is not deprecated for
25166           PHP after all!
25168 Tue Apr 17 22:17:41 BST 2007  Olly Betts <olly@survex.com>
25170         * queryparser/queryparser.lemony: GCC 2.95 doesn't support
25171           std::string::clear(), so use resize(0) instead.
25172         * HACKING: Document the above issue in a reworked section on C++
25173           STL features.  Update the section on safeXXX.h headers.
25175 Tue Apr 17 22:07:39 BST 2007  Olly Betts <olly@survex.com>
25177         * common/safesysselect.h: Correct typo in #error message.
25179 Tue Apr 17 19:18:00 BST 2007  Olly Betts <olly@survex.com>
25181         * configure.ac: Factor out code to test for a linker flag into macro
25182           XAPIAN_TEST_LINKER_FLAG.  With g++, use XAPIAN_TEST_LINKER_FLAG to
25183           see if -Bsymbolic-functions is supported (it requires a very recent
25184           version of ld currently).  This option reduces the size and load
25185           time of the shared library by resolving references within the
25186           library when it's created.  Currently untested on a box which
25187           supports -Bsymbolic-functions.
25189 Tue Apr 17 12:01:46 BST 2007  Olly Betts <olly@survex.com>
25191         * unicode/utf8itor.cc: Tidy up code layout.
25193 Tue Apr 17 02:06:39 BST 2007  Olly Betts <olly@survex.com>
25195         * include/xapian/unicode.h,unicode/utf8itor.cc: Make nonascii_to_utf8
25196           a public method.  Make get_case_type(), get_category(), and
25197           get_delta() internal, but provide a public get_category() function
25198           which takes a Unicode character value.
25200 Tue Apr 17 02:05:32 BST 2007  Olly Betts <olly@survex.com>
25202         * backends/flint/Makefile.mk: Distribute flint_check.h.
25204 Tue Apr 17 01:47:05 BST 2007  Olly Betts <olly@survex.com>
25206         * tests/api_posdb.cc: The remote backend now supports all database
25207           operations, so merge localpositionaldb_tests into
25208           positionaldb_tests.
25209         * tests/: Remove the trivial separate api_XXXdb.h headers, some of
25210           which were out-of-step with their respective .cc sources.  Instead
25211           just keep the array external declarations in apitest.h.
25212         * tests/apitest.h,tests/api_transdb.cc: Move TESTCASE and
25213           END_OF_TESTCASES macros into header.
25214         * tests/api_db.cc: Remove test collapsekey2 - it's only relevant for
25215           the Muscat 3.6 backend, so it's unused now that has been removed.
25216         * tests/: Add unicode tests, adapted from Omega's utftest.
25218 Tue Apr 17 00:14:16 BST 2007  Olly Betts <olly@survex.com>
25220         * Makefile.am,include/Makefile.mk,include/xapian.h,
25221           include/xapian/unicode.h,queryparser/,unicode/: Expose Unicode and
25222           UTF-8 related classes and functions as a public API.
25224 Mon Apr 16 16:06:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25226         * docs/deprecation.rst: Bring document fully up-to-date, listing
25227           all the planned deprecations for the bindings.  Also, include the
25228           full upgrade notes in the listings, so they can be preserved
25229           accessibly for posterity.  I even retrieved the notes for the
25230           already-removed QueryParser::set_stemming_options from 0.9.10.
25232 Mon Apr 16 11:36:18 BST 2007  Olly Betts <olly@survex.com>
25234         * net/tcpclient.cc: Call WSAGetLastError() instead of socket_errno()
25235           when we want to compare the result against WSAEWOULDBLOCK.
25237 Mon Apr 16 11:19:21 BST 2007  Olly Betts <olly@survex.com>
25239         * common/remoteconnection.h,common/safewinsock2.h: Need to negate the
25240           POSIX error codes we define in terms of winsock ones.
25242 Fri Apr 13 16:24:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25244         * docs/doxygen_api_conf.in: Turn on XML output, so that we can use
25245           it to populate docstrings for the python bindings.
25247 Fri Apr 13 11:38:39 BST 2007  Olly Betts <olly@survex.com>
25249         * backends/Makefile.mk,backends/alltermslist.cc,common/alltermslist.h:
25250           Split AllTermsList into header and code.  AllTermsList::get_wdf()
25251           now throws InvalidOperationError() rather than asserting in a
25252           debug build and returning 0 in a non-debug build.
25253         * backends/Makefile.mk: Correct list for "how to add a new backend".
25255 Fri Apr 13 10:17:46 BST 2007  Olly Betts <olly@survex.com>
25257         * api/version.cc: Simpler and cleaner fix - the prototypes for the
25258           version functions had moved from xapian/version.h to xapian.h so we
25259           were including the wrong header and not seeing the prototypes with
25260           visibility markup!
25262 Fri Apr 13 09:29:17 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25264         * api/version.cc: Add visibility annotations to definitions of
25265           version functions: the annotation apparently needs to be applied
25266           to the definition as well as the declaration or it is ignored:
25267           possibly the annotation on the declaration is ignored anyway,
25268           but it should be kept there for documentation purposes in any
25269           case.  Fixes link error with bindings under gcc 4.1.
25271 Fri Apr 13 01:39:57 BST 2007  Olly Betts <olly@survex.com>
25273         * common/remoteconnection.h,net/progclient.cc,net/remoteconnection.cc:
25274           GetLastError() has an unsigned return type, so need to cast to int
25275           before negating.
25277 Fri Apr 13 01:39:20 BST 2007  Olly Betts <olly@survex.com>
25279         * docs/deprecation.rst: Add xapian_version_string() and friends.
25281 Fri Apr 13 01:24:53 BST 2007  Olly Betts <olly@survex.com>
25283         * tests/api_nodb.cc: More 'tout' output.
25285 Fri Apr 13 01:19:20 BST 2007  Olly Betts <olly@survex.com>
25287         * api/Makefile.mk,api/error.cc,bin/xapian-tcpsrv.cc,
25288           common/remoteconnection.h,common/safeerrno.h,configure.ac,
25289           generate-exceptions.in,net/,tests/harness/testsuite.cc: On
25290           MS Windows, if Xapian::Error::my_errno is the result of
25291           GetLastError() or WSAGetLastError(), negate it (the error codes can
25292           overlap with errno codes).  On UNIX, put h_errno negated in my_errno
25293           if a call to gethostbyname() fails.  Add
25294           Xapian::Error::get_error_string() method which decodes my_errno
25295           in the appropriate way to give a string, and use this instead of
25296           strerror(error.get_errno()).
25298 Fri Apr 13 01:17:08 BST 2007  Olly Betts <olly@survex.com>
25300         * languages/generate-allsnowballheaders.in: win32 makefiles don't keep
25301           the snowball header list in sorted order like we do, so fix that
25302           here.  Also allow for '\' as path separator.
25304 Fri Apr 13 00:58:09 BST 2007  Olly Betts <olly@survex.com>
25306         * tests/api_nodb.cc: Add "tout" debug output to stemlangs1.
25308 Thu Apr 12 21:37:04 BST 2007  Olly Betts <olly@survex.com>
25310         * tests/Makefile.am: Add support for QUIET= and QUIET=y arguments to
25311           "make".
25313 Thu Apr 12 21:35:50 BST 2007  Olly Betts <olly@survex.com>
25315         * docs/Makefile.am: Use a substitution for RSTHTML (like we do for the
25316           snowball generated sources).
25318 Thu Apr 12 20:41:18 BST 2007  Olly Betts <olly@survex.com>
25320         * api/omqueryinternal.cc: Add validate_query() calls to the "term" and
25321           "value range" constructors.
25323 Thu Apr 12 20:00:14 BST 2007  Olly Betts <olly@survex.com>
25325         * api/omqueryinternal.cc,include/xapian/query.h: Only validate a
25326           Query object when it's either constructed or changed to avoid O(n^2)
25327           behaviour in some cases.
25329 Thu Apr 12 19:59:13 BST 2007  Olly Betts <olly@survex.com>
25331         * queryparser/lemon.c: Fix nasty function casting for argument to
25332           qsort - it's (at least technically) not portable.
25334 Thu Apr 12 17:47:47 BST 2007  Olly Betts <olly@survex.com>
25336         * configure.ac: Fix GCC version test to only turn on
25337           -fvisibility=hidden for GCC >= 4.
25339 Thu Apr 12 16:47:56 BST 2007  Olly Betts <olly@survex.com>
25341         * backends/flint/flint_btreebase.h,backends/flint/flint_cursor.h,
25342           backends/flint/flint_table.h,backends/quartz/,common/,configure.ac,
25343           generate-exceptions.in,include/Makefile.mk,include/xapian.h,
25344           include/xapian/: Add visibility annotations to the library, which
25345           when using GCC >= 4 reduces the size and load time of the library
25346           and increase the runtime speed a little.  Under x86_64, the stripped
25347           library is 6.4% smaller (1.5% smaller with debug information).
25349 Thu Apr 12 16:45:57 BST 2007  Olly Betts <olly@survex.com>
25351         * api/version.cc: Add missing "#include <config.h>".
25353 Thu Apr 12 13:41:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25355         * tests/quartztest.cc: Put removedir() function back for now to fix
25356           build.
25358 Thu Apr 12 13:02:30 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25360         * net/progclient.cc: Some (but not all) versions of MSVC need
25361           "#include <io.h>" to get the _open_osfhandle identifier.  Add it.
25363 Thu Apr 12 12:00:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25365         * backends/remote/net_postlist.cc: Include config.h
25367 Thu Apr 12 11:54:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25369         * backends/multi/multi_termlist.cc: Include config.h to get system
25370           specific defines.
25371         * common/safesysstat.h: Change signature of mkdir to take mode_t
25372           instead of int, to match unixy definition.
25374 Thu Apr 12 10:19:49 BST 2007  Olly Betts <olly@survex.com>
25376         * configure.ac: Probe for mode_t.
25378 Thu Apr 12 01:10:18 BST 2007  Olly Betts <olly@survex.com>
25380         * backends/flint/flint_positionlist.cc: Move BitReader class inside
25381           Xapian namespace to avoid namespace pollution.
25382         * bin/xapian-check.cc: Include BitReader::decode_interpolative()
25383           - previously we were relying on using the copy from the library.
25385 Thu Apr 12 01:02:53 BST 2007  Olly Betts <olly@survex.com>
25387         * common/safesysstat.h: Under __WIN32__, provide a POSIX-like mkdir()
25388           wrapper which takes 2 arguments, but ignores the file mode, so we
25389           can just call mkdir with a mode argument everywhere.
25390         * common/utils.h: Remove special case handling of mkdir.
25391         * bin/xapian-compact.cc: Replace uses of om_tostring() with a call
25392           to sprintf.  No longer need to `#include "utils.h"'.
25394 Thu Apr 12 00:44:18 BST 2007  Olly Betts <olly@survex.com>
25396         * api/,backends/inmemory/inmemory_positionlist.cc,common/,matcher/,
25397           net/remoteconnection.cc,net/serialise.cc: omdebug.h only includes
25398           omassert.h for the trivial "STRINGIZE" macro, so just duplicate
25399           that rather than pulling in an extra header everywhere.  Then fix
25400           up the two dozen files which were relying on this implicit
25401           inclusion!
25403 Thu Apr 12 00:10:48 BST 2007  Olly Betts <olly@survex.com>
25405         * tests/harness/testsuite.cc: Tweak #ifdef XAPIAN_DEBUG_VERBOSE to
25406           include DEBUGLINE() for clarity (no change in behaviour).
25408 Wed Apr 11 23:36:10 BST 2007  Olly Betts <olly@survex.com>
25410         * queryparser/queryparser.lemony: Fix regression introduced by
25411           Richard's change, and restructure to make the handling for each case
25412           more obvious.
25413         * tests/queryparsertest.cc: Add a couple of testcases for the
25414           regression.
25415         * queryparser/queryparser_internal.h: Remove reference to "bool" in
25416           comment which no longer applies.
25418 Wed Apr 11 21:25:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25420         * queryparser/queryparser_internal.h: Refactor boolean "flag"
25421           member in BoolAndString class into an enum of possible prefix
25422           types.  Rename "flag" to "type".  Rename BoolAndString to
25423           PrefixInfo.
25424         * queryparser/queryparser.cc: Change add_prefix() and
25425           add_boolean_prefix() to match changes to queryparser_internal.h
25426         * queryparser/queryparser.lemony: Refactor handling of prefixed
25427           terms to match queryparser_internal, and to use a switch()
25428           structure: no functional changes, but code is considerably more
25429           readable (I hope).
25431 Wed Apr 11 21:13:31 BST 2007  Olly Betts <olly@survex.com>
25433         * tests/api_db.cc,tests/quartztest.cc: Rework quartztest's "open1"
25434           into API level tests for quartz and flint in apitest.
25436 Wed Apr 11 14:01:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25438         * docs/deprecation.rst: Remove documentation of the "#define
25439           XAPIAN_DEPRECATED(D) D" hack, and clarify documentation on how
25440           long we support deprecated functions.
25442 Wed Apr 11 09:25:55 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25444         * docs/Makefile.am,docs/deprecation.rst: Add initial draft of
25445           deprecation policy document, with list of all API items currently
25446           marked for deprecation.
25447         * HACKING: Add note about keeping deprecation.rst up-to-date when
25448           making a release.
25450 Tue Apr 10 19:07:24 BST 2007  Olly Betts <olly@survex.com>
25452         * configure.ac: --enable-quiet now uses AS_HELP_STRING.
25454 Tue Apr 10 18:53:32 BST 2007  Olly Betts <olly@survex.com>
25456         * tests/harness/index_utils.cc: Return the empty document we already
25457           have rather than constructing another.
25459 Tue Apr 10 17:45:11 BST 2007  Olly Betts <olly@survex.com>
25461         * net/remoteconnection.cc: Fix typo in comment.
25463 Tue Apr 10 17:35:57 BST 2007  Olly Betts <olly@survex.com>
25465         * tests/harness/backendmanager.cc: Fix "if" to "is" typo in 3
25466           comments.
25468 Tue Apr 10 16:46:09 BST 2007  Olly Betts <olly@survex.com>
25470         * tests/harness/backendmanager.cc: Define XAPIAN_TCPSRV and
25471           XAPIAN_PROGSRV under UNIX too, and use them everywhere.
25473 Tue Apr 10 16:33:48 BST 2007  Olly Betts <olly@survex.com>
25475         * tests/harness/backendmanager.h: Remove "BackendManager::" from
25476           method declaration.
25478 Tue Apr 10 15:35:50 BST 2007  Olly Betts <olly@survex.com>
25480         * configure.ac: Define HAVE_SOCKETPAIR if we have socketpair().
25482 Tue Apr 10 15:29:49 BST 2007  Olly Betts <olly@survex.com>
25484         * net/progclient.cc: Fix #endif placement so it compiles on UNIX.
25486 Tue Apr 10 14:18:06 BST 2007  Olly Betts <olly@survex.com>
25488         * net/remoteconnection.cc: Remove debugging code.
25490 Tue Apr 10 12:57:51 BST 2007  Olly Betts <olly@survex.com>
25492         * backends/dbfactory_remote.cc,common/progclient.h,net/progclient.cc,
25493           net/remoteconnection.cc,tests/api_db.cc,tests/apitest.cc,
25494           tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
25495           Add support for the "prog" variant of the remote backend (patch
25496           started by me, finished by Mark Hammond).
25498 Tue Apr 10 12:23:46 BST 2007  Olly Betts <olly@survex.com>
25500         * api/omqueryinternal.cc,backends/inmemory/inmemory_database.cc,
25501           backends/quartz/quartz_alldocspostlist.cc,matcher/localmatch.cc,
25502           matcher/multimatch.cc,tests/harness/testutils.cc: Prefer
25503           `CONTAINER.empty()' to `CONTAINER.size() == 0'.
25505 Tue Apr 10 12:09:45 BST 2007  Olly Betts <olly@survex.com>
25507         * api/omqueryinternal.cc: Tighten up an assertion.
25509 Mon Apr 09 20:56:23 BST 2007  Olly Betts <olly@survex.com>
25511         * configure.ac,tests/harness/backendmanager.cc,tests/runsrv.in,
25512           tests/runtest.in: Run the remote backend server using new "runsrv"
25513           script instead of "runtest".  This doesn't echo anything to stdout,
25514           and if valgrind is in use, runs the remote server under
25515           "--tool=none" which is much quicker than using valgrind's default
25516           memcheck tool (we need to run the remote server under valgrind
25517           because valgrind's emulation of excess FP precision isn't exact and
25518           otherwise we get tests failing because of these differences).
25520 Mon Apr 09 20:24:30 BST 2007  Olly Betts <olly@survex.com>
25522         * tests/api_anydb.cc,tests/api_nodb.cc: Move test poscollapse2 to the
25523           "no database" category, since it doesn't require a database!
25525 Mon Apr 09 18:04:40 BST 2007  Olly Betts <olly@survex.com>
25527         * docs/remote_protocol.html: Correct documentation - MSG_REOPEN gives
25528           a response of REPLY_UPDATE.
25530 Mon Apr 09 15:08:44 BST 2007  Olly Betts <olly@survex.com>
25532         * ./: svn:eol-style not svn:eolstyle.
25534 Mon Apr 09 15:00:30 BST 2007  Olly Betts <olly@survex.com>
25536         * ./: Set svn:eolstyle to native for most text files.
25538 Mon Apr 09 14:50:40 BST 2007  Olly Betts <olly@survex.com>
25540         * backends/flint/flint_database.cc: Delete the corresponding entry
25541           (if any) from doclens in delete_document().  Add assertion to
25542           add_document_() that the corresponding entry in doclens isn't
25543           already set, but in a non-debug build overwrite any existing
25544           entry as that's more likely to be correct.
25545         * backends/quartz/quartz_database.cc: Ditto.
25547 Mon Apr 09 14:08:55 BST 2007  Olly Betts <olly@survex.com>
25549         * backends/quartz/quartz_database.cc: Just assign to doclens[did].
25551 Mon Apr 09 14:06:58 BST 2007  Olly Betts <olly@survex.com>
25553         * backends/flint/flint_database.cc: Just assign to doclens[did].
25555 Mon Apr 09 11:29:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25557         * backends/quartz/quartz_database.cc: Apply same change to quartz.
25559 Mon Apr 09 11:24:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25561         * backends/flint/flint_database.cc: Fix bug with document lengths
25562           in replace document.  Was using doclens.insert() to set the new
25563           document length, but this has no effect if the entry already
25564           exists.  This fixes replacedoc3 for flint (and thus for remote
25565           databases), but the same change is needed for quartz.
25566         * backends/flint/flint_postlist.cc: Add some debugging lines.
25568 Mon Apr 09 01:43:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25570         * backends/flint/: Add some more debugging messages to help track
25571           down the problem with document lengths shown up by previous
25572           change.
25574 Mon Apr 09 01:40:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25576         * tests/api_wrdb.cc: Add asserts to check that the value of
25577           get_doclength() on the database and on the posting list are
25578           correct.  Currently fails with the value from the posting list
25579           for the document which has been replaced (or sooner if assertions
25580           are turned on).
25582 Sun Apr 08 23:24:20 BST 2007  Olly Betts <olly@survex.com>
25584         * Makefile.am,configure.ac: `./configure --enable-quiet' allows you to
25585           specify at configure time to pass `--quiet' to libtool.  Now you can
25586           override this at make-time by using `make QUIET=' (to turn off
25587           `--quiet') or `make QUIET=y' (to turn on `--quiet').
25589 Sun Apr 08 23:23:50 BST 2007  Olly Betts <olly@survex.com>
25591         * HACKING: Mention AssertEqParanoid and AssertNeParanoid.
25593 Sun Apr 08 22:45:45 BST 2007  Olly Betts <olly@survex.com>
25595         * common/omassert.h: Add AssertEqParanoid and AssertNeParanoid macros.
25596         * backends/flint/flint_table.cc,backends/inmemory/inmemory_database.cc,
25597           backends/multi/multi_postlist.cc,backends/quartz/btree.cc: Use them.
25598         * backends/multi/multi_postlist.cc: Add extra assertions to
25599           MultiPostList::get_doclength().
25601 Sun Apr 08 22:16:11 BST 2007  Olly Betts <olly@survex.com>
25603         * configure.ac: Fix typos: `AC_CHECK_SSIZE_T' -> `AC_TYPE_SSIZE_T';
25604           `AC_CHECK_PID_T' -> `AC_TYPE_PID_T'.
25606 Sun Apr 08 22:04:54 BST 2007  Olly Betts <olly@survex.com>
25608         * HACKING: Snapshots and releases are now generated with autoconf 2.61.
25610 Sun Apr 08 21:42:03 BST 2007  Olly Betts <olly@survex.com>
25612         * configure.ac: Use AC_CHECK_SSIZE_T instead of our own test.  Add
25613           AC_CHECK_PID_T for any platforms which don't have `pid_t'.
25614         * net/tcpserver.cc: Use `pid_t' instead of `int'.
25615         * common/progclient.h,net/progclient.cc: Cleaner rewritten version of
25616           progclient.h.
25618 Sun Apr 08 19:59:43 BST 2007  Olly Betts <olly@survex.com>
25620         * backends/flint/flint_lock.cc: If kill() fails, don't bother calling
25621           waitpid().
25623 Sun Apr 08 19:41:11 BST 2007  Olly Betts <olly@survex.com>
25625         * net/remoteconnection.cc: Don't explicitly pass "0" for errno.
25627 Sun Apr 08 16:58:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25629         * queryparser/queryparser.lt: Fix warnings in debugging builds on
25630           gcc 4.1 due to comparison of signed and unsigned types.  Also,
25631           use the ParseTokenName function instead of explicitly doing a
25632           range check each time an entry is looked up in yyTokenName, and
25633           add a ParseRuleName function for looking up things in yyRuleName,
25634           and use it similarly.
25636 Sun Apr 08 15:55:42 BST 2007  Olly Betts <olly@survex.com>
25638         * configure.ac: Fix lingering references to enable_debug.
25640 Sun Apr 08 15:48:13 BST 2007  Olly Betts <olly@survex.com>
25642         * tests/api_anydb.cc,tests/api_wrdb.cc: Remove hacks to automatically
25643           SKIP tests which failed because of lack of support for some features
25644           by the remote backend.
25646 Sun Apr 08 15:14:11 BST 2007  Olly Betts <olly@survex.com>
25648         * queryparser/queryparser.lemony,queryparser/queryparser.lt: More
25649           tweaks.
25651 Sun Apr 08 15:04:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25653         * queryparser/queryparser.lt: Always include "omdebug.h", and put
25654           one of the pieces of debugging code in #ifdef
25655           XAPIAN_DEBUG_VERBOSE, to fix non-logging message builds.
25657 Sun Apr 08 14:23:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25659         * docs/remote_protocol.html: Update for protocol version 27 by
25660           adding documentation for MSG_POSTLIST and replies.  Also, fix a
25661           typo.
25663 Sun Apr 08 13:50:20 BST 2007  Olly Betts <olly@survex.com>
25665         * common/omdebug.h,queryparser/queryparser.lemony,
25666           queryparser/queryparser.lt: Hook the debug tracing in the lemon
25667           generated parser into Xapian's debug logging framework.
25669 Sun Apr 08 12:35:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25671         * backends/remote/,common/remote-database.h,common/remoteprotocol.h,
25672           common/remoteserver.h,net/remoteserver.cc: Implement postlists
25673           for the remote database.  Increases
25674           XAPIAN_REMOTE_PROTOCOL_VERSION to 27.
25676 Sun Apr 08 12:33:02 BST 2007  Olly Betts <olly@survex.com>
25678         * HACKING,INSTALL,configure.ac: Rename --enable-debug* - conflating the
25679           options to "turn on assertions" and "turn on logging" still confuses
25680           me to the extent I need to read the documentation every time I use
25681           them.  `--enable-debug[=partial]' become `--enable-assertions';
25682           `--enable-debug-verbose' becomes `--enable-log' and
25683           `--enable-debug=full' becomes `--enable-assertions --enable-log'.
25684           For now the old options give an error telling you the new
25685           equivalent.
25687 Sun Apr 08 10:45:40 BST 2007  Olly Betts <olly@survex.com>
25689         * configure.ac: Eliminate use_quiet - just use enable_quiet instead.
25691 Fri Apr 06 19:06:07 BST 2007  Olly Betts <olly@survex.com>
25693         * net/progclient.cc: Close stderr of the spawned backend program.
25695 Fri Apr 06 18:59:24 BST 2007  Olly Betts <olly@survex.com>
25697         * net/progclient.cc: msecs_timeout_ -> msecs_timeout.
25699 Fri Apr 06 18:12:36 BST 2007  Olly Betts <olly@survex.com>
25701         * net/remoteconnection.cc: Fix comment grammar.
25703 Fri Apr 06 18:10:31 BST 2007  Olly Betts <olly@survex.com>
25705         * net/remoteconnection.cc: Deal with the exceptional case first.
25707 Fri Apr 06 17:51:20 BST 2007  Olly Betts <olly@survex.com>
25709         * net/remoteconnection.cc: Use string::append(ptr, size) in preference
25710           to string::append(ptr, ptr + size).
25712 Fri Apr 06 11:45:39 BST 2007  Olly Betts <olly@survex.com>
25714         * api/omqueryinternal.cc,backends/flint/flint_database.cc,
25715           backends/flint/flint_database.h,backends/flint/flint_postlist.cc,
25716           backends/inmemory/inmemory_database.cc,
25717           backends/inmemory/inmemory_database.h,
25718           backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
25719           backends/quartz/quartz_postlist.cc,
25720           backends/remote/remote-database.cc,common/database.h,
25721           common/remote-database.h: Refactor to eliminate do_open_post_list
25722           and any unnecessary call to term_exists().
25724 Fri Apr 06 11:44:25 BST 2007  Olly Betts <olly@survex.com>
25726         * tests/api_wrdb.cc: Just use TEST on a boolean value rather than
25727           TEST_EQUAL against true/false.
25729 Fri Apr 06 08:53:46 BST 2007  Olly Betts <olly@survex.com>
25731         * net/remoteserver.cc: Remove "N" which we calculate but never use!
25733 Fri Apr 06 08:17:00 BST 2007  Olly Betts <olly@survex.com>
25735         * backends/flint/Makefile.mk,backends/flint/flint_check.cc,
25736           backends/flint/flint_check.h,bin/Makefile.mk,bin/xapian-check.cc:
25737           Fix xapian-check not to use libquartzcheck.la.
25739 Fri Apr 06 07:20:47 BST 2007  Olly Betts <olly@survex.com>
25741         * bin/Makefile.mk,bin/xapian-check.cc: Add new "xapian-check" program
25742           which performs consistency checks on a flint database.
25744 Fri Apr 06 06:25:36 BST 2007  Olly Betts <olly@survex.com>
25746         * bin/quartzcheck.cc: Test if this is a quartz database by looking at
25747           "meta" not "record_DB".  If "record_DB" is >= 2GB and we don't have
25748           a LFS aware stat function then stat can fail even though the file is
25749           there.  Also open the database explicitly as a Quartz database for
25750           extra robustness.
25752 Fri Apr 06 06:23:33 BST 2007  Olly Betts <olly@survex.com>
25754         * AUTHORS: Thank Daniel Ménard.
25756 Thu Apr 05 18:20:53 BST 2007  Olly Betts <olly@survex.com>
25758         * tests/harness/testsuite.cc: No need to explicitly initialise
25759           std::string to ""; not doing so results in a smaller object
25760           file.
25762 Thu Apr 05 18:20:12 BST 2007  Olly Betts <olly@survex.com>
25764         * common/remoteprotocol.h: Note other changes in protocol version 26.
25766 Thu Apr 05 17:34:10 BST 2007  Olly Betts <olly@survex.com>
25768         * tests/runtest.in: Pass "--leak-resolution=high" to valgrind to
25769           prevent unrelated leak reports related to STL classes from being
25770           combined.
25772 Thu Apr 05 17:26:39 BST 2007  Olly Betts <olly@survex.com>
25774         * tests/api_wrdb.cc: Remove stray line left over from debugging.
25776 Thu Apr 05 16:47:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25778         * tests/internaltest.cc: Fix test_serialiselength2: implementation
25779           was correct, but test was failing.  Needed special casing for n=0
25780           and 1, and was using arguments to string::append(size_type,
25781           charT) the wrong way round (stupid C++ API).  Also, make it check
25782           the return value of decode_length(), since we know what the
25783           answer ought to be.
25785 Thu Apr 05 14:26:30 BST 2007  Olly Betts <olly@survex.com>
25787         * api/omqueryinternal.cc,backends/remote/remote-database.cc,
25788           common/serialise.h,net/remoteserver.cc,net/serialise.cc,
25789           tests/internaltest.cc: Add a flag parameter to decode_length()
25790           to indicate if the decoded value indicates the length of a
25791           string in the protocol stream, and if it does, check it against
25792           p_end - p after the length has been decoded (fixes bug#117).
25794 Thu Apr 05 14:08:02 BST 2007  Olly Betts <olly@survex.com>
25796         * tests/api_wrdb.cc: In test uniqueterm1, check the document length
25797           after every delete or replace for better coverage.
25799 Thu Apr 05 12:41:04 BST 2007  Olly Betts <olly@survex.com>
25801         * net/serialise.cc: Encode deltas between docids (rather than the
25802           docids themselves) in the RSet serialisation which reduces the
25803           size of the encoding if a lot of large docids with small gaps
25804           between them are present.
25805         * backends/remote/remote-database.cc,net/remoteserver.cc: Encode
25806           deltas between termpositions in REPLY_POSITIONLIST, for similar
25807           reasons.  No need to encode the term length for
25808           MSG_DELETEDOCUMENTTERM as it's the last (indeed only) item, and more
25809           consistent not to.
25810         * common/remoteprotocol.h: Bump protocol version to 26.
25811         * docs/remote_protocol.html: Document the new messages
25812           MSG_DELETEDOCUMENTTERM and MSG_REPLACEDOCUMENTTERM.  Correct
25813           reference to REPLY_DOCUMENT to REPLY_DOCDATA.  Fix documentation for
25814           MSG_QUERY to include the serialised Weight and RSet objects.  Fix
25815           "copy and paste" error in the description of Flush (should of course
25816           be MSG_FLUSH not MSG_CANCEL).  Update for changes above.
25818 Thu Apr 05 12:18:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25820         * backends/database.cc: Keep a RefCntPtr to the LeafPostList used
25821           in implementations of delete_document and replace_document with a
25822           unique term, so that the postlist isn't leaked.
25824 Thu Apr 05 11:56:57 BST 2007  Olly Betts <olly@survex.com>
25826         * backends/database.cc: Database::Internal can't call the
25827           PostingIterator(PostingIterator::Internal*) ctor (at least under
25828           g++ 3.3.5) because it isn't a friend (only class Database is).
25829           Can't seem to forward define Database::Internal to make
25830           Database::Internal a friend so just use LeafPostList directly
25831           as that seems less bad than pulling in the whole of database.h
25832           or making PostingIterator::internal public.
25834 Thu Apr 05 08:27:26 BST 2007  Olly Betts <olly@survex.com>
25836         * HACKING: Need to run svn-tag-release on ixion.
25838 Thu Apr 05 01:50:10 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25840         * backends/remote/remote-database.cc,common/remote-database.h,
25841           common/remoteprotocol.h,common/remoteserver.h,net/remoteserver.cc:
25842           Implement unique term variants of delete and replace document for
25843           the remote database.  Involves adding two new message types to the
25844           protocol (and therefore bumping the protocol version to 25), and
25845           overriding the standard implementations of delete_document(term)
25846           and replace_document(term) in RemoteDatabase.
25847         * tests/api_wrdb.cc: Correct text in SKIP_TEST() message.
25849 Thu Apr 05 01:04:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25851         * api/omdatabase.cc,backends/database.cc,common/database.h: Move
25852           implementation of delete_document and replace_document with a
25853           unique_term from WritableDatabase to Xapian::Database::Internal.
25854           This will allow it to be overridden for databases which need a
25855           special implementation (such as the remote database).
25857 Tue Apr 03 14:30:45 BST 2007  Olly Betts <olly@survex.com>
25859         * common/remote-database.h: Remove unused and undefined method
25860           RemoteDatabase::get_spawned_socket().
25862 Tue Apr 03 09:18:51 BST 2007  Olly Betts <olly@survex.com>
25864         * tests/harness/backendmanager.cc: Under __WIN32__, launch
25865           xapian-tcpsrv as a child process communicating via a pipe and handle
25866           the port being already in use by trying the next port up (as we do
25867           under UNIX).
25869 Tue Apr 03 06:50:48 BST 2007  Olly Betts <olly@survex.com>
25871         * net/tcpserver.cc: For __WIN32__ and __CYGWIN__, use
25872           SO_EXCLUSIVEADDRUSE (if available) on on listening sockets for
25873           xapian-tcpsrv.
25875 Tue Apr 03 04:37:02 BST 2007  Olly Betts <olly@survex.com>
25877         * include/xapian/positioniterator.h,include/xapian/postingiterator.h:
25878           Fix mangled comment start in (C) headers.
25880 Tue Apr 03 03:27:12 BST 2007  Olly Betts <olly@survex.com>
25882         * include/xapian/,generate-exceptions.in: Mark the following
25883           constructors 'explicit': DocIDWrapper(docid), TermPosWrapper(const
25884           std::string &), Query::Internal(const std::string &), Database(const
25885           std::string &), all Error subclass constructors taking const
25886           std::string &.  Only the Database and Error subclass changes should
25887           be able to affect user code at all.
25888         * include/xapian/,api/omenquire.cc: Make the following methods
25889           'const': RSet::contains(MSetIterator), Enquire::get_query().  This
25890           shouldn't affect the validity of any user code.
25892 Mon Apr 02 11:44:26 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25894         * HACKING: Add note on "Building from SVN on Windows with MSVC"
25896 Mon Apr 02 11:32:51 BST 2007  Olly Betts <olly@survex.com>
25898         * api/omqueryinternal.cc: Fix assertion to allow for OP_VALUE_RANGE.
25900 Mon Apr 02 11:14:10 BST 2007  Olly Betts <olly@survex.com>
25902         * autoconf/rjb_find_stlport.m4: Fix check that the user didn't say
25903           `./configure --with-stlport-compiler' (without `=gcc' or similar
25904           after it).
25906 Mon Apr 02 10:38:35 BST 2007  Olly Betts <olly@survex.com>
25908         * tests/api_db.cc,tests/apitest.cc: Under __WIN32__ disable tests
25909           which require the prog variant of the remote backend.
25911 Mon Apr 02 09:44:13 BST 2007  Olly Betts <olly@survex.com>
25913         * net/tcpserver.cc: Don't use SO_REUSEADDR under __CYGWIN__ or
25914           __WIN32__ as it has incorrect semantics.
25916 Mon Apr 02 09:37:14 BST 2007  Olly Betts <olly@survex.com>
25918         * tests/harness/backendmanager.cc: Pull `1239' out as `DEFAULT_PORT'.
25919           On Windows, cycle through 10 ports starting at DEFAULT_PORT so that
25920           we can have multiple databases open at once.  Add a monotonic count
25921           to the name of the log file created from the output of each
25922           xapian-tcpsrv to avoid failures because the log file is already
25923           open.
25925 Mon Apr 02 07:41:57 BST 2007  Olly Betts <olly@survex.com>
25927         * tests/api_anydb.cc: Avoid having the same database open twice at
25928           once.  Xapian itself copes, but the BackendManager class in the test
25929           harness struggles in the remotetcp case under mingw.
25931 Mon Apr 02 07:14:13 BST 2007  Olly Betts <olly@survex.com>
25933         * include/xapian/enquire.h: Make Enquire constructor explicit since
25934           it can take a single parameter (of type Database).
25936 Mon Apr 02 02:32:23 BST 2007  Olly Betts <olly@survex.com>
25938         * net/tcpserver.cc: Add "#error" if neither HAVE_FORK nor __WIN32__
25939           is defined (otherwise we'd failed with a rather obscure link error
25940           much later!)
25942 Mon Apr 02 01:54:20 BST 2007  Olly Betts <olly@survex.com>
25944         * matcher/multimatch.cc: Remove unused variable left over from
25945           recent change.
25947 Mon Apr 02 01:22:56 BST 2007  Olly Betts <olly@survex.com>
25949         * net/tcpserver.cc: Actually remove SOCKOPT_OPTIONS_TYPE.
25951 Mon Apr 02 01:16:03 BST 2007  Olly Betts <olly@survex.com>
25953         * net/tcpclient.cc,net/tcpserver.cc: Pass the 4th parameter of
25954           setsockopt() as char* which works whether the function actually
25955           takes char* or void* (since C++ allows implicit conversion from
25956           char* to void*).  Only call socket_errno() after gethostbyname()
25957           under __WIN32__ - on UNIX the error code is in h_errno (with
25958           incompatible values to errno) and we don't want to confuse things by
25959           reporting some random value of errno.
25961 Mon Apr 02 00:44:56 BST 2007  Olly Betts <olly@survex.com>
25963         * tests/harness/backendmanager.cc: Factor out localhost address into
25964           LOCALHOST.  Use new xapian-tcpsrv --interface option to only listen
25965           for connections on localhost.  Run xapian-tcpsrv with "start /B" on
25966           MS Windows (this stops the "flickbook of console windows" effect).
25968 Mon Apr 02 00:41:31 BST 2007  Olly Betts <olly@survex.com>
25970         * common/Makefile.mk,common/safesyssocket.h: Oops, I checked
25971           in safesysselect.h as safesyssocket.h!
25973 Mon Apr 02 00:30:54 BST 2007  Olly Betts <olly@survex.com>
25975         * include/xapian/queryparser.h: Fix SimpleStopper::add to take
25976           `const std::string &' not `const std::string'.
25978 Mon Apr 02 00:20:45 BST 2007  Olly Betts <olly@survex.com>
25980         * bin/xapian-tcpsrv.cc,net/tcpserver.cc: Add "--interface" option to
25981           allow the hostname or address of the interface to listen on to be
25982           specified (default is the previous behaviour of listening on all
25983           interfaces).
25984         * net/remoteconnection.cc,net/tcpclient.cc,common/safesysselect.h:
25985           Factor out portability code for sys/select.h.
25986         * common/Makefile.mk: Ship common/safesysselect.h.
25987         * net/tcpserver.cc: Rename parameter of run_thread from "_param" to
25988           "param_" (identifiers with leading underscores are reserved for the
25989           compiler).
25990         * common/tcpclient.h,net/tcpclient.cc,common/tcpserver.h: Rewrite
25991           headers with comments which are actually accurate and up-to-date!
25992           TcpClient ctor is small so put inline in the header.  Pass
25993           std::string by const reference.
25994         * common/tcpclient.h,common/tcpserver.h: TcpClient and TcpServer
25995           classes now inherit from WinsockInitializer under __WIN32__ (as
25996           a mixin class) instead of having a member of type WinsockInitializer
25997           (the member is initialised too late, at least under mingw).
25999 Sun Apr 01 19:14:11 BST 2007  Olly Betts <olly@survex.com>
26001         * common/omdebug.cc: Fix retrying of write to retry the part of
26002           the string not already written!
26004 Sun Apr 01 18:37:15 BST 2007  Olly Betts <olly@survex.com>
26006         * common/remoteconnection.h: Note in comments about use as a "mixin"
26007           class.
26009 Sun Apr 01 17:42:19 BST 2007  Olly Betts <olly@survex.com>
26011         * tests,examples,bin: Add .exe versions of built executables to
26012           svn:ignore.
26014 Sun Apr 01 16:28:26 BST 2007  Olly Betts <olly@survex.com>
26016         * common/omdebug.cc: Remove unused '#include <stdio.h>' - we switched
26017           to using unbuffered I/O for logging long ago!
26019 Sun Apr 01 15:21:04 BST 2007  Olly Betts <olly@survex.com>
26021         * common/safewinsock2.h: No, don't typedef socklen_t here - we use
26022           SOCKLEN_T everywhere and have `#define SOCKLEN_T int' in
26023           config.h.win32.
26025 Sun Apr 01 13:32:21 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26027         * common/omdebug.cc: Include necessary headers to get O_CREAT and
26028           friends defined (according to documentation in linux manpage),
26029           to fix compile error.  Also, don't ignore the return value of
26030           write() to fix compile warning (and to ensure that the whole
26031           output gets written if possible).
26033 Sun Apr 01 13:19:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26035         * queryparser/queryparser.cc: Fix Assert() on a RefCountPtr to
26036           check the value of the pointer, to fix compile with asserts
26037           turned on.
26039 Sun Apr 01 12:57:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26041         * common/safewinsock2.h: Define socklen_t under MS compiler (since
26042           Olly reported build success with mingw, presumably it's not
26043           needed there).
26045 Sun Apr 01 06:42:14 BST 2007  Olly Betts <olly@survex.com>
26047         * languages/Makefile.mk: $(snowball_algorithms:.sbl=.cc) is portable
26048           according to the automake list so use that so we only need to list
26049           the .sbl sources.
26051 Sun Apr 01 05:53:29 BST 2007  Olly Betts <olly@survex.com>
26053         * common/tcpserver.h,net/tcpserver.cc: TcpServer's port member
26054           variable is set but never used so remove it.
26056 Sun Apr 01 03:27:30 BST 2007  Olly Betts <olly@survex.com>
26058         * bin/Makefile.mk,examples/Makefile.mk: Add $(EXEEXT) to dependency on
26059           binaries in man page generation rules so they work on Windows.
26061 Sat Mar 31 22:17:55 BST 2007  Olly Betts <olly@survex.com>
26063         * common/multimatch.h,matcher/multimatch.cc: When using a MatchDecider
26064           with remote database(s), don't rerun the MatchDecider on documents
26065           which a remote server has already checked.
26067 Sat Mar 31 10:44:26 BST 2007  Olly Betts <olly@survex.com>
26069         * tests/harness/backendmanager.cc: Sort out path to xapian-tcpsrv
26070           under mingw.  If neither HAVE_FORK nor __WIN32__ is defined,
26071           make compilation fail with a suitable #error.
26073 Sat Mar 31 10:17:06 BST 2007  Olly Betts <olly@survex.com>
26075         * api/Makefile,backends/Makefile,backends/flint/Makefile,
26076           backends/inmemory/Makefile,backends/multi/Makefile,
26077           backends/quartz/Makefile,backends/remote/Makefile,bin/Makefile,
26078           common/Makefile,examples/Makefile,getopt/Makefile,include/Makefile,
26079           languages/Makefile,matcher/Makefile,net/Makefile,
26080           queryparser/Makefile,tests/harness/Makefile: Don't pass $(MAKEFLAGS)
26081           on the command line to $(MAKE) when invoking the top level Makefile
26082           from a static Makefile.  It's passed automatically anyway, and also
26083           $(MAKEFLAGS) doesn't have a leading '-' so "make -s" tries to do
26084           "make s" at the top level.
26086 Sat Mar 31 09:28:06 BST 2007  Olly Betts <olly@survex.com>
26088         * tests/api_nodb.cc: Fix end of loop handling.
26090 Sat Mar 31 09:03:26 BST 2007  Olly Betts <olly@survex.com>
26092         * tests/api_nodb.cc: Fix to compile.
26094 Sat Mar 31 07:53:25 BST 2007  Olly Betts <olly@survex.com>
26096         * common/safewindows.h,common/safewinsock2.h: safewindows.h is
26097           included by a lot of files so we want to keep it lightweight
26098           so split winsock2.h related stuff into safewinsock2.h.
26099         * common/remoteconnection.h: Move WinsockInitializer here.
26100         * common/safeerrno.h: #include "safewinsock2.h" not <winsock2.h>.
26102 Sat Mar 31 07:19:06 BST 2007  Olly Betts <olly@survex.com>
26104         * common/remoteserver.h: Stop trying to include "remoteserver.h"
26105           because that's the SAME HEADER!
26107 Sat Mar 31 07:16:23 BST 2007  Olly Betts <olly@survex.com>
26109         * common/tcpclient.h,common/tcpserver.h: Fix comments - the class is
26110           called WinsockInitializer not WinsockInitialiser.
26112 Sat Mar 31 06:54:22 BST 2007  Olly Betts <olly@survex.com>
26114         * net/progclient.cc: Don't compile any code from this file if
26115           __WIN32__ is defined (for mingw).
26117 Sat Mar 31 06:52:27 BST 2007  Olly Betts <olly@survex.com>
26119         * tests/api_nodb.cc: Simplify code in test_stemlangs1().
26121 Sat Mar 31 06:22:26 BST 2007  Olly Betts <olly@survex.com>
26123         * net/remoteconnection.cc: Use const_cast to avoid GCC warning
26124           about casting away const.  Use string::data() rather than
26125           string::c_str() since we don't need a terminating zero byte.
26127 Sat Mar 31 06:20:07 BST 2007  Olly Betts <olly@survex.com>
26129         * backends/dbfactory_remote.cc: Suppress "unused parameter" warnings.
26131 Sat Mar 31 06:17:35 BST 2007  Olly Betts <olly@survex.com>
26133         * net/tcpserver.cc: Make global variable and function used only in
26134           this file static.  Don't call delete on a void* (that's undefined
26135           behaviour) - delete the cast version of the pointer instead.
26137 Sat Mar 31 06:17:20 BST 2007  Olly Betts <olly@survex.com>
26139         * AUTHORS: Add a number of bug reporters I missed before.
26141 Sat Mar 31 04:49:27 BST 2007  Olly Betts <olly@survex.com>
26143         * configure.ac: Clean up handling of --enable-backend-* options.  Let
26144           mingw try to build the remote backend.
26146 Sat Mar 31 03:47:49 BST 2007  Olly Betts <olly@survex.com>
26148         * tests/internaltest.cc: Don't compile test_serialisequery1
26149           if the remote backend is disabled to avoid an "unused
26150           function" warning (we were already disabling the use of
26151           it).
26153 Fri Mar 30 22:43:27 BST 2007  Olly Betts <olly@survex.com>
26155         * HACKING: Correct several inaccuracies: --enable-debug and
26156           --enable-debug=partial don't cause the build system to compile in
26157           debugging symbols (configure defaults to adding "-g" for GCC, while
26158           for other compilers you must enable them by hand).  Also,
26159           --enable-debug doesn't "produce warnings", but causes
26160           Xapian::AssertionError to be thrown.  Add explanation for why
26161           --enable-debug=partial" exists.  CC_FOR_BUILD is now needed for
26162           snowball as well as lemon.
26164 Fri Mar 30 19:53:05 BST 2007  Olly Betts <olly@survex.com>
26166         * common/utils.cc: Avoid GCC warning on format string "%I64d".
26168 Fri Mar 30 16:48:46 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26170         * common/tcpserver.h,net/tcpserver.cc: Patch from Mark Hammond:
26171           implement for windows.
26173 Fri Mar 30 16:21:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26175         * common/tcpclient.h,net/tcpclient.cc: Patch from Mark Hammond:
26176           implement for windows.
26178 Fri Mar 30 15:52:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26180         * tests/harness/backendmanager.cc: Patch from Mark Hammond:
26181           implement launcher for tcpserver, so that remotetcp tests can run
26182           on windows.
26184 Fri Mar 30 15:42:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26186         * common/safewindows.h: Include xapian/error.h so
26187           WinsockInitialiser can throw an exception.
26189 Fri Mar 30 14:59:40 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26191         * More code from Mark Hammond's patch
26192         * common/remoteconnection.h: Add explicit destructor and (for
26193           windows compiles) a declare a helper method to calculate the
26194           number of milliseconds until a timeout.
26195         * net/remoteconnection.cc: Implement windows versions for functions
26196           which need it: constructor and destructor now do create and close
26197           the overlapped IO stuff, read_at_least() and send_message() have
26198           windows specific implementations.
26200 Fri Mar 30 13:05:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26202         * More code adapted from Mark Hammond's patch
26203         * common/safewindows.h: When remote databases are compiled in,
26204           include the winsock stuff, and define some useful bits and pieces
26205           for using it.
26206         * common/remoteconnection.h: Add a member to RemoteConnection on
26207           windows to hold an overlapped IO structure.
26208         * net/progclient.cc: Don't include winsock stuff directly (it's now
26209           brought in by "safewindows.h"), and don't include <sys/wait.h> on
26210           windows.
26211         * net/remoteserver.cc: Ignore more SIGPIPE stuff on windows.
26213 Fri Mar 30 12:37:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26215         * Patch from Mark Hammond
26216         * backends/dbfactory_remote.cc: Ignore code to handle SIGPIPE on
26217           windows, where it doesn't exist.
26218         * backends/remote/remote-database.cc: Raise UnimplementedError on
26219           windows if a progclient backend is requested.
26221 Fri Mar 30 12:11:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26223         * tests/harness/testsuite.cc: Fix srcdir guessing on windows -
26224           search for windows style directory separators, and remove .exe
26225           suffix from executable name.  Adapted from Mark Hammond's patch.
26227 Thu Mar 29 18:32:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26229         * Changes related to Mark Hammond's patch:
26230         * common/safeerrno.h: Define a new inline function "socket_errno()"
26231           which returns an error number relating to the last error caused
26232           by a socket function on platforms which make such a distinction,
26233           and the value of errno on other platforms.
26234         * net/tcpclient.cc,net/tcpserver.cc: Use the socket_errno()
26235           function instead of checking the value of errno.  Also, check for
26236           WSAEWOULDBLOCK instead of EINPROGRESS on windows.
26238 Thu Mar 29 15:36:45 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26240         * bin/xapian-tcpsrv.cc,tests/harness/testsuite.cc: First of many
26241           parts of a large patch from Mark Hammond working towards enabling
26242           remote databases on windows.  When displaying errors which might
26243           be socket errors, display the error number as well as the output
26244           of strerror - on windows, strerror doesn't display useful
26245           information for socket errors.
26246         * AUTHORS: Add Mark Hammond
26248 Thu Mar 29 06:07:35 BST 2007  Olly Betts <olly@survex.com>
26250         * api/omqueryinternal.cc: Unserialisation shouldn't reject a
26251           serialised query which ends after a termname.
26252         * tests/internaltest.cc: Add regression test.
26254 Wed Mar 28 17:17:42 BST 2007  Olly Betts <olly@survex.com>
26256         * tests/queryparsertest.cc: Add feature tests for "prefer_mdy" and
26257           "epoch" arguments of DateValueRangeProcessor.
26259 Wed Mar 28 04:52:34 BST 2007  Olly Betts <olly@survex.com>
26261         * tests/queryparsertest.cc: Add more test cases for parsing of value
26262           ranges.
26264 Wed Mar 28 04:18:14 BST 2007  Olly Betts <olly@survex.com>
26266         * languages/compiler/generator.c,languages/compiler/header.h,
26267           languages/steminternal.cc,languages/steminternal.h: For among with
26268           functions (only used by finnish and lovins stemmers currently),
26269           change to generating an array of unsigned byte offsets into an array
26270           of function pointers rather than just an array of function pointers
26271           - this generally requires a lot less space.
26273 Wed Mar 28 03:28:37 BST 2007  Olly Betts <olly@survex.com>
26275         * queryparser/queryparser.lemony: Fix parsing of `hello a..b'.
26276         * tests/queryparsertest.cc: Add regression test for above.  Refactor
26277           qp_value_range1 to use a table of queries.
26279 Wed Mar 28 00:35:50 BST 2007  Olly Betts <olly@survex.com>
26281         * languages: Update svn:ignore for recent romanian changes.
26283 Wed Mar 28 00:08:11 BST 2007  Olly Betts <olly@survex.com>
26285         * api/valuerangeproc.cc: Need #include <stdio.h> for snprintf or
26286           sprintf.
26288 Tue Mar 27 23:53:18 BST 2007  Olly Betts <olly@survex.com>
26290         * queryparser/queryparser.lemony: Fix infinite loop in value range
26291           processing.  Fix value range to work as a filter when used with a
26292           probabilistic query.
26293         * tests/queryparsertest.cc: Add regression tests for the above two
26294           issues.  Refactor qp_value_range2 to use a table of queries.
26296 Tue Mar 27 22:09:57 BST 2007  Olly Betts <olly@survex.com>
26298         * api/valuerangeproc.cc: Assume that the start date is before the
26299           end date to help decide ambiguous cases.
26301 Tue Mar 27 21:49:15 BST 2007  Olly Betts <olly@survex.com>
26303         * api/valuerangeproc.cc: Refactor to simplify and reduce duplication.
26305 Tue Mar 27 21:41:38 BST 2007  Olly Betts <olly@survex.com>
26307         * configure.ac: datarootdir is new in 2.60 too, so use datadir when
26308           setting docdir for 2.59.
26310 Tue Mar 27 18:39:11 BST 2007  Olly Betts <olly@survex.com>
26312         * api/Makefile.mk,api/valuerangeproc.cc,include/xapian/queryparser.h:
26313           Move NumberValueRangeProcessor::operator()() out of the header as
26314           it's too complex for sane inlining.  Implement handling of dmy and
26315           mdy dates and epochs for 2 digit years.
26316         * tests/queryparsertest.cc: Add tests.
26318 Tue Mar 27 11:57:53 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26320         * languages/romanian.sbl: Add Martin Porter's new romanian stemming
26321           algorithm.
26322         * languages/romanian1.sbl,languages/romanian2.sbl: Remove old
26323           romanian stemming algorithms.
26324         * languages/Makefile.mk: Replace romanian1 and romanian2 by
26325           romanian.
26326         * languages/stem.cc: Use romanian stemmer when asked for "ro" or
26327           "romanian".  No longer give a stemmer for "romanian1" or
26328           "romanian2".
26330 Tue Mar 27 04:50:36 BST 2007  Olly Betts <olly@survex.com>
26332         * languages/german2.sbl: Copy over "hop 3" in utf-8 case from
26333           snowball's latest version.
26335 Tue Mar 27 04:44:52 BST 2007  Olly Betts <olly@survex.com>
26337         * tests/stemtest.cc: Remove lower casing of dictionary words before
26338           stemming - instead we'll make sure the dictionary is already the
26339           right case.
26341 Tue Mar 27 04:28:10 BST 2007  Olly Betts <olly@survex.com>
26343         * languages/compiler/analyser.c,languages/compiler/generator.c,
26344           languages/compiler/header.h,languages/steminternal.cc,
26345           languages/steminternal.h: Add handling of among with functions.
26346           We use a "shim" functions for each method we want to call in
26347           this way.  The shim function is passed the "this" pointer and
26348           calls a particular method on this.  Split the functions into
26349           an optional separate array, since they're not used by most of
26350           the stemming algorithms.
26351         * languages/Makefile.mk,languages/stem.cc: Enable the finnish
26352           and lovins stemmers.
26354 Tue Mar 27 04:24:37 BST 2007  Olly Betts <olly@survex.com>
26356         * languages/steminternal.cc: Fix typo bug in slice_to - if we needed
26357           to increase the capacity of a snowball string variable, we trashed
26358           the variable with p (bug discovered while trying to enable the
26359           finnish stemmer).
26361 Tue Mar 27 02:55:51 BST 2007  Olly Betts <olly@survex.com>
26363         * include/xapian/queryparser.h: Implement handling of ISO format dates
26364           in DateValueRangeProcessor.
26365         * tests/queryparsertest.cc: Add feature tests.
26367 Tue Mar 27 01:47:36 BST 2007  Olly Betts <olly@survex.com>
26369         * include/xapian/queryparser.h: Implement prefix and suffix handling
26370           for NumberValueRangeProcessor.
26371         * tests/queryparsertest.cc: Add feature tests.
26373 Mon Mar 26 22:26:48 BST 2007  Olly Betts <olly@survex.com>
26375         * queryparser/utf8itor.h: Add is_currency() predicate function.
26376         * queryparser/queryparser.lemony: Rejig parsing of RANGE_START to
26377           allow all characters which are likely to be required.
26378         * tests/queryparsertest.cc: Test RANGE_START can contain "/".
26379         * queryparser/queryparser.lemony: Set "syntax=yacc" for vim, which
26380           give fairly decent syntax highlighting.
26382 Mon Mar 26 15:43:50 BST 2007  Olly Betts <olly@survex.com>
26384         * configure.ac: Use m4 comments not shell (dnl not #).
26386 Mon Mar 26 15:41:41 BST 2007  Olly Betts <olly@survex.com>
26388         * configure.ac: Add code to ensure that docdir is set for autoconf
26389           2.59 (starting from 2.60, it is defined as standard).
26390         * docs/Makefile.am: Use docdir for installing docs.
26392 Sun Mar 25 15:41:16 BST 2007  Olly Betts <olly@survex.com>
26394         * bin/xapian-compact.cc: Prune unused docids off the start of each
26395           source database's range of docid.
26397 Sat Mar 24 23:07:42 GMT 2007  Olly Betts <olly@survex.com>
26399         * include/xapian/base.h: Add a note explaining why it's OK that
26400           RefCntBase doesn't have a virtual destructor.
26402 Sat Mar 24 01:30:17 GMT 2007  Olly Betts <olly@survex.com>
26404         * HACKING,configure.ac: Bump the automake required version to 1.9.5.
26405           It was in Debian sarge, so any modern Linux distro should include
26406           packages, and we've actually been bootstrapping with 1.9.6 for ages.
26408 Thu Mar 22 00:53:35 GMT 2007  Olly Betts <olly@survex.com>
26410         * configure.ac: Disable probes for f77 more completely by preventing
26411           the probe code from even appearing in configure.  Similarly
26412           eliminate the code for gcj and rc probes - in total these changes
26413           reduce the size of configure by 209KB (~25%).
26415 Fri Mar 09 14:28:01 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26417         * Makefile.am: Add include/xapian/error.h to list of headers to
26418           install.
26420 Thu Mar 08 17:16:08 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26422         * generate-exceptions.in,exception_data.pm: Split definitions of
26423           the exception hierarchy into a separate file, so it can be reused
26424           elsewhere.
26425         * Makefile.am: Add exception_data.pm as a dependency for generating
26426           error.h, and add it to EXTRA_DIST.
26428 Fri Mar 09 06:42:40 GMT 2007  Olly Betts <olly@survex.com>
26430         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: We
26431           always ignore the return value from FlintCursor::get_key() because
26432           we only call it when it shouldn't fail, so restructure the code so
26433           it can't fail and change the return value to void.
26435 Fri Mar 09 06:33:09 GMT 2007  Olly Betts <olly@survex.com>
26437         * configure.ac: Suppress another aCC warning.
26439 Thu Mar 08 20:39:46 GMT 2007  Olly Betts <olly@survex.com>
26441         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow
26442           arbitrary characters in a range end (anything except whitespace
26443           and ')').
26445 Thu Mar 08 19:46:46 GMT 2007  Olly Betts <olly@survex.com>
26447         * Makefile.am,languages/Makefile.mk: Depend on the autoconf
26448           substituted version of a script, not the template version.  The
26449           only thing we substitute is @PERL@, but configure won't update
26450           a substituted file which hasn't changed so it's better to put
26451           the dependency on the script itself where it belongs.
26453 Thu Mar 08 17:09:21 GMT 2007  Olly Betts <olly@survex.com>
26455         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Keep any
26456           non-whitespace, non-term prefix for a term in case it turns out
26457           to be the start of a range, so "$50..100" works.
26459 Thu Mar 08 16:21:14 GMT 2007  Olly Betts <olly@survex.com>
26461         * HACKING: Add my "create docs/GNUmakefile" trick to avoid doxygen
26462           delays.
26464 Thu Mar 08 16:13:39 GMT 2007  Olly Betts <olly@survex.com>
26466         * HACKING: A few more coding guidelines.
26468 Thu Mar 08 14:26:21 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26470         * HACKING: Adjust wording to indicate that the build system is
26471           indended not to break after SVN updates.
26473 Thu Mar 08 07:34:22 GMT 2007  Olly Betts <olly@survex.com>
26475         * include/xapian/queryparser.h,tests/queryparsertest.cc: Add simple
26476           implementations of DateValueRangeProcessor and
26477           NumberValueRangeProcessor and add qp_value_range2 to check that
26478           chaining ValueRangeProcessor subclasses works as intended.
26480 Thu Mar 08 06:06:15 GMT 2007  Olly Betts <olly@survex.com>
26482         * docs/overview.html: Fix links to error classes in generated API
26483           documentation.
26485 Thu Mar 08 05:37:13 GMT 2007  Olly Betts <olly@survex.com>
26487         * include/xapian/queryparser.h,queryparser/queryparser.cc,
26488           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
26489           tests/queryparsertest.cc: Add the ability to parse "value ranges"
26490           to the QueryParser (e.g. "10..50") which translate into a Query
26491           with operator OP_VALUE_RANGE.
26493 Thu Mar 08 04:27:54 GMT 2007  Olly Betts <olly@survex.com>
26495         * include/xapian/queryparser.h,queryparser/queryparser.cc: Remove
26496           QueryParser::set_stemming_options() which has been deprecated
26497           since 0.9.0.
26499 Thu Mar 08 03:37:07 GMT 2007  Olly Betts <olly@survex.com>
26501         * backends/flint/flint_lock.cc: Handle write failing to send a single
26502           byte down down the pipe to tell the parent we've got the lock (a
26503           potential bug noticed by _FORTIFY_SOURCE!)  Handle read() failing
26504           with an unexpected error on the parent side by failing the lock
26505           attempt rather than risking an infinite loop.
26507 Thu Mar 08 02:52:26 GMT 2007  Olly Betts <olly@survex.com>
26509         * include/xapian/types.h: Rewritten, with more accurate documentation
26510           comments.  Add constant Xapian::BAD_VALUENO which is -1 cast to
26511           Xapian::valueno.
26512         * api/omenquire.cc,include/xapian/enquire.h,matcher/multimatch.cc: Use
26513           Xapian::BAD_VALUENO instead of Xapian::valueno(-1).
26515 Thu Mar 08 01:47:08 GMT 2007  Olly Betts <olly@survex.com>
26517         * docs/Makefile.am: Try putting apidoc/html in EXTRA_DIST instead of
26518           using dist-hook.
26520 Wed Mar 07 23:16:52 GMT 2007  Olly Betts <olly@survex.com>
26522         * docs/Makefile.am: Stop shipping docs/apidoc/latex/* in the
26523           xapian-core tarballs since it's just useless bloat.  Removing it
26524           more than halves the size of the tarball (55% reduction!)
26526 Wed Mar 07 22:07:31 GMT 2007  Olly Betts <olly@survex.com>
26528         * tests/runtest.in: If we aren't using valgrind, turn on
26529           MALLOC_CHECK_ and MALLOC_PERTURB_ for glibc.
26531 Wed Mar 07 20:02:31 GMT 2007  Olly Betts <olly@survex.com>
26533         * INSTALL: CVS -> SVN.
26535 Wed Mar 07 20:00:37 GMT 2007  Olly Betts <olly@survex.com>
26537         * configure.ac: Define _FORTIFY_SOURCE in config.h if GCC is in use
26538           and it's not already set.  That way the user can easily override.
26539         * INSTALL: Document this.
26541 Wed Mar 07 19:53:15 GMT 2007  Olly Betts <olly@survex.com>
26543         * INSTALL: Remove reference to muscat36 backend.
26545 Wed Mar 07 17:37:07 GMT 2007  Olly Betts <olly@survex.com>
26547         * configure.ac: Note GCC and glibc versions needed for _FORTIFY_SOURCE
26548           support.
26550 Wed Mar 07 16:29:02 GMT 2007  Olly Betts <olly@survex.com>
26552         * queryparser/lemon.c: Increase the length allowed for the filename
26553           in an error message, as it was being truncated which makes for a
26554           confusing error message and stops editors jumping to the line with
26555           the error in.
26557 Wed Mar 07 15:57:15 GMT 2007  Olly Betts <olly@survex.com>
26559         * common/Makefile.mk: Ship common/msvc_posix_wrapper.h and
26560           common/msvc_posix_wrapper.cc.
26562 Wed Mar 07 10:01:31 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26564         * configure.ac: Add -D_FORTIFY_SOURCE to AM_CXXFLAGS for GCC
26565           builds.  According to glibc CVS support for this was added in
26566           October 2004, but it doesn't seem to be documented very well,
26567           other than in features.h.  This adds some extra checking for
26568           array bounds, partially at compile time, but doesn't currently
26569           find any problems (or cause any noticeable slowdown).
26571 Wed Mar 07 04:49:01 GMT 2007  Olly Betts <olly@survex.com>
26573         * api/omqueryinternal.cc: Include str_parameter in swap() and the copy
26574           constructor.
26575         * tests/api_anydb.cc: get_mset(0, 20) not get_mset(1, 20)!  Also check
26576           that we didn't miss any documents which should match the filter, not
26577           just that we didn't get any documents which shouldn't.
26579 Wed Mar 07 03:07:49 GMT 2007  Olly Betts <olly@survex.com>
26581         * tests/harness/unixcmds.h: Fixed reverse sense include guard test.
26582         * tests/api_db.cc: Still need #include "utils.h".
26583         * tests/harness/backendmanager.cc: Update for rmdir.h -> unixcmds.h
26584           and rmdir() -> rm_rf().
26586 Wed Mar 07 02:22:30 GMT 2007  Olly Betts <olly@survex.com>
26588         * backends/quartz/btree.cc,backends/quartz/quartz_database.cc,
26589           backends/quartz/quartz_log.cc,common/utils.h,net/remoteconnection.cc,
26590           net/tcpclient.cc,tests/api_db.cc,tests/btreetest.cc,tests/harness/,
26591           tests/quartztest.cc: Rename rmdir() to rm_rf() since it does the
26592           same as "rm -rf" not "rmdir".  The "touch()" function is only used
26593           in the testsuite so move it from common/utils.h into
26594           tests/harness/rmdir.cc and rename rmdir.cc to unixcmds.cc.
26595           common/utils.h no longer include safefcntl.h, so add explicit
26596           includes to the files which were previous relying on utils.h pulling
26597           it in.
26599 Wed Mar 07 02:21:18 GMT 2007  Olly Betts <olly@survex.com>
26601         * xapian.spec.in: Include ChangeLog.examples.
26603 Wed Mar 07 02:17:59 GMT 2007  Olly Betts <olly@survex.com>
26605         * docs/index.html,docs/internals.html: Create a separate index page
26606           for the "internal" documentation.
26608 Tue Mar 06 23:47:58 GMT 2007  Olly Betts <olly@survex.com>
26610         * common/utils.cc,common/utils.h: Remove map_string_to_value() which
26611           is no longer used.
26612         * common/utils.h: Remove prototype for rmdir() which I failed to
26613           remove with the earlier commit.
26615 Tue Mar 06 22:51:51 GMT 2007  Olly Betts <olly@survex.com>
26617         * tests/harness/rmdir.cc: Fix rmdir() on Unix to not be O(n^2) in the
26618           worst case.
26620 Tue Mar 06 22:46:30 GMT 2007  Olly Betts <olly@survex.com>
26622         * docs/Makefile.am: Use the "inline test || echo" idiom to merge the
26623           VPATH and non-VPATH cases for distributing and installing the HTML
26624           apidocs.
26626 Tue Mar 06 22:13:03 GMT 2007  Olly Betts <olly@survex.com>
26628         * api/omqueryinternal.cc: Fix Query::get_description() on an
26629           OP_VALUE_RANGE query.
26631 Tue Mar 06 09:03:33 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26633         * HACKING: Note on running preautoreconf and autoreconf to keep SVN
26634           builds working.
26635         * PLATFORMS: Update with success reports for windows builds.
26637 Tue Mar 06 01:57:23 GMT 2007  Olly Betts <olly@survex.com>
26639         * tests/internaltest.cc: Comment out the "unsigned long long" testcase
26640           in tostring1 since the library doesn't currently have (or need) the
26641           utility function for that case.
26643 Tue Mar 06 01:49:55 GMT 2007  Olly Betts <olly@survex.com>
26645         * common/utils.cc,tests/btreetest.cc,tests/harness/,
26646           tests/quartztest.cc: rmdir() is only used in the test suite, and not
26647           in the library code, so move it into the testsuite.  Also, bow out
26648           early if the pathname passed is empty, and on Unix protect against
26649           filenames which start with "-".
26651 Mon Mar 05 02:52:49 GMT 2007  Olly Betts <olly@survex.com>
26653         * configure.ac: Suppress more unhelpful aCC warnings.
26655 Mon Mar 05 02:15:29 GMT 2007  Olly Betts <olly@survex.com>
26657         * tests/internaltest.cc: Add testcase autoptr1 which tests that an
26658           autoptr correctly handles self-assignment.
26660 Mon Mar 05 02:05:53 GMT 2007  Olly Betts <olly@survex.com>
26662         * tests/internaltest.cc: Rename "omtostring1" to "tostring1" (we don't
26663           want to perpetuate references to "om"!)  Add more test cases to this
26664           test.
26666 Mon Mar 05 01:18:17 GMT 2007  Olly Betts <olly@survex.com>
26668         * configure.ac: Update in line with 0.9.10.
26670 Sun Mar 04 23:58:29 GMT 2007  Olly Betts <olly@survex.com>
26672         * AUTHORS: Add reporters of bugs fixed in 0.9.10 to the "thanks" list.
26674 Sun Mar 04 00:44:17 GMT 2007  Olly Betts <olly@survex.com>
26676         * api/errorhandler.cc,include/xapian/errorhandler.h: Move virtual
26677           dtor for ErrorHandler out of the header.  Same reasons as previous
26678           commit.
26680 Sun Mar 04 00:40:44 GMT 2007  Olly Betts <olly@survex.com>
26682         * api/omenquire.cc,include/xapian/enquire.h,matcher/Makefile.mk,
26683           matcher/weight.cc: Move virtual method definitions out of headers
26684           for MatchDecider, ExpandDecider, Weight, BoolWeight.  This fixes
26685           warnings from aCC, and it's rare that the compiler would be able
26686           to inline a virtual method anyway.
26688 Sat Mar 03 21:40:43 GMT 2007  Olly Betts <olly@survex.com>
26690         * configure.ac: For HP's aCC, we no longer need to suppress warning
26691           #336 (empty translation unit) since dummy.cc is history.  But we
26692           do want to suppress a couple of frequently reported "remarks" which
26693           are unavoidable and don't indicate a problem.  Experimentally, add
26694           "+wlint" for "link-like" warnings.
26696 Sat Mar 03 21:38:52 GMT 2007  Olly Betts <olly@survex.com>
26698         * include/xapian.h,include/xapian/version_h.cc: Move function
26699           prototypes into a non-generated header.
26700         * configure.ac,msvc/version.h.in: Generate version.h suitable for use
26701           with MSVC.
26702         * Makefile.am: Distribute msvc/version.h.
26704 Sat Mar 03 19:49:11 GMT 2007  Olly Betts <olly@survex.com>
26706         * tests/harness/backendmanager.cc: Rework how we start and handle
26707           xapian-tcpsrv - it's now started by exec from a child process.
26708           This means that the mechanism to try higher port numbers works
26709           reliably, and we no longer leak file descriptors (which was causing
26710           tests to fail on some platforms).
26712 Sat Mar 03 19:46:03 GMT 2007  Olly Betts <olly@survex.com>
26714         * bin/xapian-tcpsrv.cc: Put "e.get_errno()" in a variable for clearer
26715           code.
26717 Sat Mar 03 16:01:17 GMT 2007  Olly Betts <olly@survex.com>
26719         * common/msvc_posix_wrapper.cc: Change `#include <fcntl.h>' to
26720           `#include "safefcntl.h"' (currently makes no difference on
26721           Windows, but it's more consistent to always use the safeXXX
26722           headers).
26723         * common/msvc_posix_wrapper.cc: Merge two ECHILD cases.
26724         * common/msvc_posix_wrapper.cc: Make sure dwCreationDisposition
26725           is initialised even if flags has a bogus value.
26726         * common/msvc_posix_wrapper.cc: Be consistent and always use O_CREAT,
26727           etc, instead of sometimes using the MS alternative forms _O_CREAT,
26728           etc.
26730 Sat Mar 03 03:25:05 GMT 2007  Olly Betts <olly@survex.com>
26732         * generate-exceptions.in: The GCC visibility docs aren't clear whether
26733           you need to make *thrown* exception types visible, or also *caught*
26734           exception types.  But I've just been having odd problems catching
26735           Xapian::DocNotFoundError with "const Xapian::Error &", so let's mark
26736           the exception virtual baseclass Xapian::Error as visible too.
26738 Fri Mar 02 22:34:04 GMT 2007  Olly Betts <olly@survex.com>
26740         * languages/Makefile.mk,languages/generate-allsnowballheaders.in:
26741           Convert unreadable make rule for generating allsnowballheaders.h
26742           to a perl script.
26743         * configure.ac: Substitute languages/allsnowballheaders.
26745 Fri Mar 02 14:31:11 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26747         * tests/internaltest.cc: Add a test for om_tostring(), mainly
26748           aimed at 64 bit types on windows platforms.  Mingw builds report
26749           a warning in this code, which merits further investigation - see
26750           Bug #112 for details.
26752 Fri Mar 02 14:15:44 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26754         * common/msvc_posix_wrapper.cc: Improve accuracy of emulation of
26755           posix open, and fix a bug which caused it to misinterpret the
26756           "flags" argument - files were always being opened for writing:
26757           O_RDONLY is 0, so the old test (flags & O_RDONLY) always
26758           failed.
26760 Fri Mar 02 12:44:33 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26762         * common/msvc_posix_wrapper.cc: Fix whitespace issues.
26764 Fri Mar 02 12:18:42 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26766         * HACKING: Add note about how to generate ChangeLog timestamps
26767           using the unix date command - and I've started generating them in
26768           the same format as Olly is. (I hope.)
26770 Fri Mar  2 11:49:11 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26772         * common/msvc_posix_wrapper.h,common/safeerrno.h,
26773           common/msvc_posix_wrapper.cc,backends/quartz/btree.cc,
26774           backends/flint/flint_table.cc,backends/flint/flint_btreebase.cc:
26775           Move MSVC specific code for opening files into
26776           msvc_posix_wrapper.cc, and just leave a few conditional includes
26777           and function calls elsewhere.
26779 Thu Mar 01 22:51:42 GMT 2007  Olly Betts <olly@survex.com>
26781         * queryparser/queryparser.lemony: Add casts to U_isupper(), etc to
26782           suppress warnings from aCC.
26783         * queryparser/queryparser.lemony: Use U_isdigit() instead of
26784           C_isdigit(), etc - the truncation to a char can cause false
26785           positives.
26786         * tests/queryparsertest.cc: Add a (rather contrived) regression test
26787           for the above change.
26789 Thu Mar 01 21:49:37 GMT 2007  Olly Betts <olly@survex.com>
26791         * queryparser/utf8itor.h: Add cast to suppress warning from aCC.
26793 Thu Mar  1 15:27:09 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26795         * common/utils.c,common/utils.h: For windows, add an om_tostring()
26796           function for 64 bit integers: time() and GetProcessId() return
26797           these, and without this, backends/quartz/quartz_log.cc reports
26798           an error.
26800 Thu Mar  1 13:48:46 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26802         * queryparser/queryparser.lemony: Fix handling of hated wildcards
26803           which don't expand to any terms.
26805 Thu Mar  1 13:45:04 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26807         * tests/queryparsertest.cc: Fix last two test cases for hated
26808           wildcards to check for exactly what should be returned.
26810 Thu Mar  1 12:02:04 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26812         * common/safeerrno.h: Some of Microsoft's C++ compiler versions
26813           earlier than 2005 do not have _set_errno, so #define it in this
26814           case.
26816 Thu Mar 01 04:28:23 GMT 2007  Olly Betts <olly@survex.com>
26818         * backends/quartz/btree.h: Correct comment ("read" -> "write").
26820 Thu Mar 01 04:21:52 GMT 2007  Olly Betts <olly@survex.com>
26822         * backends/flint/flint_table.h: Correct comment ("read" -> "write").
26824 Thu Mar 01 01:30:02 GMT 2007  Olly Betts <olly@survex.com>
26826         * tests/queryparsertest.cc: Add some test cases for hated wildcards
26827           which don't expand to any terms.
26829 Thu Mar 01 01:21:42 GMT 2007  Olly Betts <olly@survex.com>
26831         * api/omqueryinternal.cc: Complete truncated comment.  Prefer
26832           preincrement to postincrement.
26834 Wed Feb 28 20:13:35 GMT 2007  Olly Betts <olly@survex.com>
26836         * api/omdocument.cc: Really tweak OmDocumentTerm::add_position() so
26837           that adding position 0 to an empty termlist takes the shortcut.
26839 Wed Feb 28 15:04:25 GMT 2007  Olly Betts <olly@survex.com>
26841         * common/safeerrno.h: Correct <safeerrno.h> to "safeerrno.h" in
26842           message in #error directive.
26844 Wed Feb 28 14:59:29 GMT 2007  Olly Betts <olly@survex.com>
26846         * include/xapian/query.h: Removed documentation comment for
26847           Xapian::Query::Internal which is no longer relevant (Query objects
26848           are now immutable once constructed, so parameters can no longer be
26849           set separately).
26851 Wed Feb 28 02:42:31 GMT 2007  Olly Betts <olly@survex.com>
26853         * api/omqueryinternal.cc: Add support for serialising OP_VALUE_RANGE
26854           queries.  Add support for OP_VALUE_RANGE queries to
26855           Query::get_description().  If an OP_VALUE_RANGE query has a start
26856           bound strictly greater than its end bound, simplify it by knowing
26857           that it can't match anything.
26858         * common/remoteprotocol.h,docs/remote_protocol.html: Bump remote
26859           protocol version to 24.
26861 Wed Feb 28 01:15:00 GMT 2007  Olly Betts <olly@survex.com>
26863         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
26864           matcher/: Add new Query operator OP_VALUE_RANGE which allows
26865           a query to be filtered by checking if a value lies between
26866           two limits.
26867         * tests/api_anydb.cc: Add feature test valuerange1.
26869 Wed Feb 28 01:07:53 GMT 2007  Olly Betts <olly@survex.com>
26871         * tests/harness/testsuite.cc: Only hook the testsuite into valgrind if
26872           env var XAPIAN_TESTSUITE_VALGRIND is set, to make it simple to run a
26873           test program under valgrind normally.
26874         * tests/runtest.in: Set XAPIAN_TESTSUITE_VALGRIND if automatically
26875           running a test program under valgrind.
26877 Tue Feb 27 23:51:34 GMT 2007  Olly Betts <olly@survex.com>
26879         * tests/Makefile.am: Turn subdir-objects back on here so that the
26880           harness objects end up in the harness subdirectory.
26882 Tue Feb 27 22:45:04 GMT 2007  Olly Betts <olly@survex.com>
26884         * examples/delve.cc: Rename "-k" to "-V" since "keys" were renamed to
26885           "values" long ago.  Keep "-k" as an alias for now, but don't
26886           advertise it.  Add handling so "-V3" shows value #3 for every
26887           document in the database.
26889 Tue Feb 27 21:35:35 GMT 2007  Olly Betts <olly@survex.com>
26891         * tests/Makefile.am,tests/remotetest.cc: Get rid of remotetest since
26892           it no longer does anything.
26894 Tue Feb 27 21:28:28 GMT 2007  Olly Betts <olly@survex.com>
26896         * tests/api_db.cc,tests/remotetest.cc: Move netstats1 from remotetest
26897           to apitest.  It will now run for "remotetcp" as well as "remote".
26899 Tue Feb 27 21:27:17 GMT 2007  Olly Betts <olly@survex.com>
26901         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
26902           Inline trivial getter and setter methods in the header.  Make
26903           getter method const.
26905 Tue Feb 27 20:22:58 GMT 2007  Olly Betts <olly@survex.com>
26907         * examples/delve.cc: Change to not stem terms by default.  Add
26908           "-s/--stemmer" option to allow a stemmer to be specified.
26910 Tue Feb 27 17:50:13 GMT 2007  Olly Betts <olly@survex.com>
26912         * backends/flint/flint_table.cc: Test revision_supplied rather than
26913           revision_ so that behaviour matches comments.
26915 Tue Feb 27 16:58:56 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26917         * tests/api_wrdb.cc: Enhance crashrecovery1 to check that the
26918           readers reference a database with the expected number of
26919           documents.  This checks that the base files which were removed
26920           were the correct ones to leave the current database valid.
26922 Tue Feb 27 16:54:31 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26924         * backends/quartz/btree.cc,backends/quartz/btree.h,
26925           backends/quartz/quartz_database.cc: Apply fix for opening
26926           databases while under heavy modification to quartz, using Olly's
26927           attachment to bug #108:
26928           http://www.xapian.org/cgi-bin/bugzilla/attachment.cgi?id=43
26929           Verified with loadtest that this resolves the issue.
26931 Tue Feb 27 13:12:31 GMT 2007  Olly Betts <olly@survex.com>
26933         * tests/harness/backendmanager.h: Add get_dbtype() method to allow the
26934           current backend type to be read.
26935         * tests/apitest.cc,tests/apitest.h: Add get_dbtype() function to allow
26936           BackendManager::get_dbtype() to be called by tests.
26937         * tests/api_wrdb.cc: Add new test crashrecovery1 to verify that the
26938           backend can recover from the latest revision missing some of the
26939           base files.
26941 Tue Feb 27 12:45:00 GMT 2007  Olly Betts <olly@survex.com>
26943         * tests/harness/backendmanager.cc: Fix how we start xapian-progsrv
26944           when running under valgrind.
26946 Tue Feb 27 11:34:22 GMT 2007  Olly Betts <olly@survex.com>
26948         * backends/flint/flint_database.cc: Remove the old throw for
26949           DatabaseOpeningError so the new throw for DatabaseModifiedError will
26950           actually be used.
26952 Tue Feb 27 09:22:52 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26954         * flint_table.cc,flint_table.h,flint_database.cc: If a database is
26955           being frequently modified (ie, transactions committed extremely
26956           frequently), flint can fail open all the tables at a consistent
26957           revision on the first attempt.  The code to handle this in
26958           flint_database.cc was not firing because flint_table.cc was
26959           reporting all failures to open a table for reading by throwing an
26960           exception.  This commit changes flint_table.cc to report failure
26961           to open at a specific revision by returning false.
26963           In addition, there was a bug in flint_database.cc which caused
26964           the attempts to re-try opening a database in this situation to
26965           fail.  This is now fixed.
26967           Finally, flint_database.cc now throws a DatabaseModified error if
26968           100 attempts to reopen the database fail because of continual
26969           modifications - previously, it would have thrown a
26970           DatabaseOpening error.
26972           There is no easy regression test - but my "loadtest.cc" program
26973           attached to bug #108 shows the problem (if you comment out the
26974           code which ignores DatabaseOpeningErrors).
26976 Tue Feb 27 01:25:00 GMT 2007  Olly Betts <olly@survex.com>
26978         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Need to
26979           define DOXYGEN so that the previous change to the generated
26980           errordispatch.h works.  Remove obsolete macros from
26981           EXPAND_AS_DEFINED and PREDEFINED.
26982         * docs/doxygen_full_conf.in: Increase MAX_DOT_GRAPH_WIDTH from
26983           800 to 1024 to match doxygen_api_conf.in.
26985 Tue Feb 27 00:41:47 GMT 2007  Olly Betts <olly@survex.com>
26987         * matcher/multimatch.cc: Fix warning with SGI's CC.
26989 Tue Feb 27 00:35:06 GMT 2007  Olly Betts <olly@survex.com>
26991         * generate-exceptions.in: Wrap errordispatch.h in "#ifndef DOXYGEN"
26992           and "#endif" because doxygen gets confused by a header full of
26993           code.
26995 Mon Feb 26 21:53:41 GMT 2007  Olly Betts <olly@survex.com>
26997         * tests/findheaders.pl: Remove long unused perl script.
26999 Mon Feb 26 19:23:50 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27001         * tests/api_wrdb.c: test_emptyterm2 used to delete a writable
27002           database whilst the database was open.  Unfortunately, this
27003           doesn't work on windows (and it doesn't seem to be easy to make
27004           it work), so this patch changes the test to close each database
27005           before opening the next writable database at the same path.
27006           Fortunately, this seems to be the only test which behaves like
27007           this.  Also, added a note to the win32 README file to document
27008           this restriction.
27010 Mon Feb 26 19:19:34 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27012         * docs/Makefile.am: touch apidoc/html/index.html after apidoc.pdf
27013           is created so that make doesn't attempt to regenerate it due to
27014           the dependency of apidoc/html/index.html on apidoc.pdf.
27015           Similarly for sourcedoc/html/index.html.
27017 Mon Feb 26 18:36:22 GMT 2007  Olly Betts <olly@survex.com>
27019         * tests/harness/backendmanager.cc: Indent with tabs not spaces.
27020         * tests/harness/index_utils.cc: Add missing space after "if";
27021           prefer "X.empty()" to "X.size() == 0".
27023 Mon Feb 26 16:10:31 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27025         * tests/harness/index_utils.cc,tests/harness/backendmanager.cc:
27026           Fix for windows: windows file handling seems to have a bug
27027           causing end of file conditions in ifstream to be missed.  As a
27028           result, an empty string was being returned from the get_paragraph
27029           function in the test harness, resulting in an out-of-bounds error
27030           when generating a value from the paragraph.  Add a check that the
27031           paragraph returned isn't empty, and return an empty document if
27032           it is.  Then, check for empty documents (ie, contain some terms)
27033           before adding them to the test database.
27035 Mon Feb 26 16:05:07 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27037         * backends/quartz/btree_base.cc,backends/flint/flint_btreebase.cc:
27038           Fix for windows: string append method with a pointer and length
27039           causes a segfault-type error on windows if the pointer is NULL,
27040           even if the length is also 0.  Check for this case when appending
27041           the bitmap to the base block, since a NULL pointer is passed for
27042           an empty bitmap when a new database is being created.
27044           Also, initialise the bit_map0 and bitmap members to 0 in the
27045           FlintTable_base constructor which takes a string and a char
27046           argument - they had been omitted from this and were only being
27047           initialised by the constructor which takes no argument.  This
27048           didn't seem to be having any negative effect, but doing it makes
27049           the code neater.
27051 Sun Feb 25 23:21:11 GMT 2007  Olly Betts <olly@survex.com>
27053         * backends/inmemory/inmemory_database.cc: Create the RefCntPtr to this
27054           as an explicit variable to make the code more readable.
27056 Sun Feb 25 19:20:33 GMT 2007  Olly Betts <olly@survex.com>
27058         * matcher/multimatch.cc: Fix inconsistent ordering between pages with
27059           set_sort_by_value_then_relevance (fixes bug#110).
27060         * tests/api_wrdb.cc: Enabled test consistency2.
27062 Sun Feb 25 17:28:09 GMT 2007  Olly Betts <olly@survex.com>
27064         * matcher/: Also apply the "decreasing weights with remote database"
27065           optimisations which we use in the sort_by_relevance case in the
27066           sort_by_relevance_then_value case.
27068 Sat Feb 24 19:35:41 GMT 2007  Olly Betts <olly@survex.com>
27070         * backends/inmemory/inmemory_database.cc: If replace_document is used
27071           to set the docid of a newly added document which has previously
27072           existed, then we need to mark that document as valid (caught by
27073           existing test replacedoc4 in a debug build).
27075 Sat Feb 24 17:11:22 GMT 2007  Olly Betts <olly@survex.com>
27077         * tests/api_wrdb.cc: Add regression test consistency2 for bug#110
27078           (currently skipped since the bug isn't fixed yet).
27080 Thu Feb 22 15:18:53 GMT 2007  Olly Betts <olly@survex.com>
27082         * configure.ac: Add proper detection for SGI's C++ (check stderr
27083           output of "CC -v").  Automatically pass -ptused in CXXFLAGS for
27084           xapian-core and any applications using xapian-config --cxxflags
27085           since it seems to be required to avoid template linking errors.
27087 Thu Feb 22 09:04:30 GMT 2007  Olly Betts <olly@survex.com>
27089         * docs/Makefile.am: Ship generated RSTHTML files.
27091 Wed Feb 21 19:01:06 GMT 2007  Olly Betts <olly@survex.com>
27093         * languages/turkish.sbl: Make some simplifications to the code of the
27094           turkish stemmer.
27096 Wed Feb 21 19:00:11 GMT 2007  Olly Betts <olly@survex.com>
27098         * languages/Makefile.mk,languages/stem.cc,languages/turkish.sbl:
27099           Add turkish stemmer.
27101 Wed Feb 21 18:55:03 GMT 2007  Olly Betts <olly@survex.com>
27103         * languages/compiler/generator.c: Number m_test and c_test variables
27104           to avoid variable shadowing warnings.
27106 Wed Feb 21 18:07:50 GMT 2007  Olly Betts <olly@survex.com>
27108         * languages/compiler/generator.c: Remove duplicate copy of function
27109           resulting from ham-fisted reverting and applying of patches.
27111 Wed Feb 21 18:03:12 GMT 2007  Olly Betts <olly@survex.com>
27113         * languages/compiler/generator.c,languages/compiler/header.h: Number
27114           mlimit variables to avoid variable shadowing warnings.
27115         * languages/compiler/generator.c: Use "if (foo() == -1) return -1;"
27116           which avoids a temporary variable (improving readability of
27117           generated code) and producing very slightly faster code.
27118         * languages/compiler/header.h: Use "#ifdef DISABLE_JAVA" around Java
27119           generator specific struct members and prototypes.
27121 Wed Feb 21 17:47:13 GMT 2007  Olly Betts <olly@survex.com>
27123         * languages/compiler/generator.c: Add "~C" comments to generated
27124           source for more operations.
27126 Tue Feb 20 20:24:30 GMT 2007  Olly Betts <olly@survex.com>
27128         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Ensure
27129           both_bases is set to false if we don't have both bases when
27130           opening a table using an existing object.
27132 Tue Feb 20 15:57:05 GMT 2007  Olly Betts <olly@survex.com>
27134         * preautoreconf: Fix to handle generating dependencies on generated
27135           objects, at least for the "checked out tree from SVN" case.  Fixing
27136           this fully is trickier, but currently this is stopped snapshots
27137           from bootstrapping.
27139 Tue Feb 20 14:28:02 GMT 2007  Charlie Hull
27141         * backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc,
27142           backends/quartz/btree.cc: Use MS Windows API calls to delete
27143           files and open files we might want to delete while they are
27144           still open (i.e. the flint and quartz btree base files).  This
27145           fixes a problem when a writer can't discard an old revision at the
27146           exact moment a reader is opening it (bug #108).
27148 Tue Feb 20 14:13:43 GMT 2007  Richard Boulton <richard@tartarus.org>
27150         * .: Add generate-exceptions to svn:ignore property.
27152 Tue Feb 20 13:36:27 GMT 2007  Olly Betts <olly@survex.com>
27154         * generate-exceptions.in: Add missing '}' to close 'namespace Xapian'
27155           in generated header 'xapian/error.h'.
27157 Tue Feb 20 13:26:19 GMT 2007  Olly Betts <olly@survex.com>
27159         * Makefile.am: Put generated exception headers in BUILT_SOURCES.
27161 Tue Feb 20 12:10:18 GMT 2007  Olly Betts <olly@survex.com>
27163         * Makefile.am,configure.ac,generate-exceptions.in,include/Makefile.mk,
27164           include/xapian/error.h,include/xapian/errortypes.h,net/serialise.cc:
27165           Replace macro gymnastics with errortypes.h by a perl script which
27166           generates the headers we require.  It's more flexible, and easier to
27167           get doxygen to generate documentation from.
27168         * queryparser/queryparser.cc,tests/queryparsertest.cc: Throw new
27169           Error subclass QueryParserError instead of throwing const char *
27170           (fixes bug#101).
27172 Tue Feb 20 10:37:54 GMT 2007  Olly Betts <olly@survex.com>
27174         * languages/steminternal.cc: p is never NULL once the class is
27175           successfully constructed, so just use Assert() to confirm this.
27177 Tue Feb 20 10:29:25 GMT 2007  Olly Betts <olly@survex.com>
27179         * queryparser/lemon.c: Fix compiler warnings.
27181 Mon Feb 19 18:50:12 GMT 2007  Olly Betts <olly@survex.com>
27183         * common/serialise-double.cc,net/remoteconnection.cc: Throw
27184           NetworkError rather than InternalError for invalid data received
27185           over the remote protocol.
27187 Mon Feb 19 18:12:21 GMT 2007  Olly Betts <olly@survex.com>
27189         * tests/internaltest.cc: Just disable serialisequery1 if the remote
27190           backend is disabled, like we do for serialiselength1 and
27191           serialisedoc1 rather than assuming InternalError is due to the
27192           code being disabled.
27194 Mon Feb 19 09:48:02 GMT 2007  Olly Betts <olly@survex.com>
27196         * docs/Makefile.am,docs/XapianAdminNotes.txt,docs/admin_notes.rst:
27197           Generated file "XapianAdminNotes.html" doesn't fit the naming
27198           conventions of other files at all, so renamed to "admin_notes.html".
27199           Rename the source to ".rst" so we can use an implicit rule for
27200           the conversion, in anticipation of other documentation in ReST
27201           format.
27203 Mon Feb 19 09:10:48 GMT 2007  Olly Betts <olly@survex.com>
27205         * docs/Makefile.am: Fix typos which stopped parallel make from working
27206           correctly in "docs" subdirectory.
27208 Sun Feb 18 22:36:46 GMT 2007  Olly Betts <olly@survex.com>
27210         * common/Makefile.mk,common/omstringstream.h,common/output.h,
27211           include/Makefile.mk,include/xapian/output.h: Move
27212           "<xapian/output.h>" to being an internal header in "common/" since
27213           it hasn't been included by "<xapian.h>" since 0.7.0.
27215 Sun Feb 18 22:18:33 GMT 2007  Olly Betts <olly@survex.com>
27217         * include/xapian/dbfactory.h: Add documentation comment for the "prog"
27218           form of Remote::open_writable().
27220 Sun Feb 18 19:31:20 GMT 2007  Olly Betts <olly@survex.com>
27222         * tests/queryparsertest.cc: Add test for "associative NEAR".
27224 Sun Feb 18 18:27:40 GMT 2007  Olly Betts <olly@survex.com>
27226         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
27227           Merge BackendManager::change_names_to_paths() into
27228           index_files_to_database() and make the latter a method of
27229           class BackendManager.
27230         * tests/harness/backendmanager.cc: Remove mention of muscat36 backends
27231           from error message listing valid backends.
27232         * tests/harness/backendmanager.h: Comment out prototypes for currently
27233           disabled methods getdb_inmemoryerr, getwritedb_inmemory, etc.
27235 Sat Feb 17 15:38:05 GMT 2007  Olly Betts <olly@survex.com>
27237         * backends/flint/flint_table.cc: new throws if allocation fails
27238           so we don't need to check the return value.
27240 Sat Feb 17 02:08:22 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27242         * backends/flint/flint_table.cc: Fix memory double-frees if
27243           FlintTable::close() is called twice on a table (without an open()
27244           being called in between).  This was happening after a transaction
27245           failed when the table was next opened.
27246         * backends/quartz/btree.cc: Fix double-frees, similarly.
27248 Fri Feb 16 20:11:13 GMT 2007  Olly Betts <olly@survex.com>
27250         * languages/compiler/generator.c: Add missing "~Z" for compatibility
27251           with C code generation (which we don't use for Xapian).
27253 Fri Feb 16 19:51:26 GMT 2007  Olly Betts <olly@survex.com>
27255         * queryparser/tclUniData.h,queryparser/utf8itor.h: The tcl unicode
27256           routines only have tables for characters in the BMP.  For other
27257           characters, assume they're word characters, but can't be forced to
27258           lowercase.
27260 Fri Feb 16 19:26:00 GMT 2007  Olly Betts <olly@survex.com>
27262         * queryparser/utf8itor.cc: Fix bug in decoding of 4 byte utf-8
27263           sequences - the returned value was 0x400000 too large!
27265 Thu Feb 15 19:37:26 GMT 2007  Olly Betts <olly@survex.com>
27267         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Keep
27268           embedded apostrophe's in terms rather than generating a phrase
27269           search for them.
27271 Thu Feb 15 18:42:49 GMT 2007  Olly Betts <olly@survex.com>
27273         * languages/compiler/generator.c,languages/steminternal.cc,
27274           languages/steminternal.h: Tweak the "grouping" functions to allow
27275           skipping past multiple occurrences and use this to implement "goto"
27276           or "gopast" followed by a grouping or "non" grouping more
27277           efficiently.
27279 Thu Feb 15 17:57:43 GMT 2007  Olly Betts <olly@survex.com>
27281         * languages/compiler/generator.c,languages/steminternal.cc,
27282           languages/steminternal.h: Inline lose_s().  Since lose_s()
27283           checks if p is NULL, remove checks prior to calling lose_s().
27284         * languages/steminternal.h: Cast from symbol * to int * via
27285           void * to try to suppress over-eager warnings about alignment.
27287 Thu Feb 15 12:43:04 GMT 2007  Olly Betts <olly@survex.com>
27289         * languages/stem.cc: Add support for two letter ISO 639 codes.
27291 Thu Feb 15 10:40:40 GMT 2007  Olly Betts <olly@survex.com>
27293         * docs/Makefile.am: Don't try to ship mkdoc.pl.
27295 Thu Feb 15 09:58:48 GMT 2007  Olly Betts <olly@survex.com>
27297         * docs/gen_codestructure_doc.in: Fix to work in a VPATH build.
27299 Thu Feb 15 09:54:55 GMT 2007  Olly Betts <olly@survex.com>
27301         * languages/compiler/generator.c: Fix Stem::get_description() to
27302           return the right string.
27304 Thu Feb 15 09:44:54 GMT 2007  Olly Betts <olly@survex.com>
27306         * docs/gen_codestructure_doc.in: Add links to viewvcs on
27307           svn.xapian.org.
27309 Thu Feb 15 09:26:07 GMT 2007  Olly Betts <olly@survex.com>
27311         * configure.ac,docs/Makefile.am,docs/gen_codestructure_doc.in,
27312           docs/mkdoc.pl,preautoreconf: Rework how code_structure.html
27313           is generated.  Nicer output, and the html document is now
27314           regenerated if any of the dir_contents files change.
27316 Thu Feb 15 07:43:39 GMT 2007  Olly Betts <olly@survex.com>
27318         * Makefile.am,bin/Makefile.mk,configure.ac,examples/Makefile.mk,
27319           makemanpage.in: Add "makemanpage" script which takes care of all
27320           the magic needed to generate a man page using help2man.  This
27321           script is written in perl, but so is help2man, and they're both
27322           only used in maintainer-mode.
27324 Thu Feb 15 06:33:41 GMT 2007  Olly Betts <olly@survex.com>
27326         * bin/Makefile.mk: Fix typos in man page generation rules.
27328 Thu Feb 15 06:30:54 GMT 2007  Olly Betts <olly@survex.com>
27330         * examples/Makefile.mk: Fix typos in previous commit.
27332 Thu Feb 15 06:03:35 GMT 2007  Olly Betts <olly@survex.com>
27334         * Makefile.am,configure.ac,examples/Makefile,examples/Makefile.am,
27335           examples/Makefile.mk: Convert examples subdirectory to use
27336           non-recursive make.  Fixes wishlist bug#97.
27338 Thu Feb 15 05:48:38 GMT 2007  Olly Betts <olly@survex.com>
27340         * Makefile.am,bin/Makefile,bin/Makefile.am,bin/Makefile.mk,
27341           configure.ac: Convert bin subdirectory to use non-recursive make.
27343 Wed Feb 14 19:08:49 GMT 2007  Olly Betts <olly@survex.com>
27345         * tests/Makefile.am: There's no longer a need to remove the temporary
27346           directories for muscat36 backend tests, since we've removed the
27347           muscat36 backend code.
27349 Wed Feb 14 18:58:31 GMT 2007  Olly Betts <olly@survex.com>
27351         * languages/Makefile.mk: Move adjusting of INCLUDES to the top of the
27352           file.
27353         * queryparser/Makefile.mk: Adjust INCLUDES for a VPATH build.
27355 Wed Feb 14 18:38:16 GMT 2007  Olly Betts <olly@survex.com>
27357         * languages/Makefile.mk: Need -Ilanguages for VPATH builds from SVN.
27359 Wed Feb 14 18:37:54 GMT 2007  Olly Betts <olly@survex.com>
27361         * languages/steminternal.cc,languages/steminternal.h: Add
27362           SET_CAPACITY() macro.
27364 Wed Feb 14 17:39:50 GMT 2007  Olly Betts <olly@survex.com>
27366         * languages/steminternal.h: Don't cast away const.
27368 Wed Feb 14 17:14:14 GMT 2007  Olly Betts <olly@survex.com>
27370         * include/Makefile: Add stub makefile.
27372 Wed Feb 14 17:12:41 GMT 2007  Olly Betts <olly@survex.com>
27374         * configure.ac: ac_abs_srcdir, etc aren't available in configure
27375           itself, so we have to do the work ourselves.
27377 Wed Feb 14 12:54:26 GMT 2007  Olly Betts <olly@survex.com>
27379         * configure.ac: Fix typo in last commit.
27381 Wed Feb 14 12:19:18 GMT 2007  Olly Betts <olly@survex.com>
27383         * Makefile.am,configure.ac,languages/Makefile.mk: Define automake
27384           conditional VPATH_BUILD so we can only add extra entries to
27385           INCLUDES in VPATH builds.
27387 Wed Feb 14 11:59:02 GMT 2007  Olly Betts <olly@survex.com>
27389         * languages/Makefile.mk: Ick, we need $(top_srcdir)/languages in
27390           INCLUDES as the generated sources need to find non-generated
27391           headers.
27393 Wed Feb 14 11:46:43 GMT 2007  Olly Betts <olly@survex.com>
27395         * backends/database.cc,backends/remote/remote-database.cc,
27396           common/database.h,common/remote-database.h,common/remoteprotocol.h,
27397           docs/remote_protocol.html,net/remoteserver.cc: Support
27398           get_lastdocid() on remote databases.
27400 Wed Feb 14 11:20:33 GMT 2007  Olly Betts <olly@survex.com>
27402         * Makefile.am,configure.ac,include/Makefile.am,include/Makefile.mk:
27403           Convert include subdirectory to use non-recursive make.
27405 Wed Feb 14 11:05:00 GMT 2007  Olly Betts <olly@survex.com>
27407         * Makefile.am,bin/Makefile.am,configure.ac,examples/Makefile.am,
27408           getopt/Makefile,getopt/Makefile.am,getopt/Makefile.mk,
27409           tests/Makefile.am: Convert getopt subdirectory to use non-recursive
27410           make.
27412 Wed Feb 14 10:56:15 GMT 2007  Olly Betts <olly@survex.com>
27414         * tests/harness/Makefile.am: Remove as no longer used.
27416 Wed Feb 14 10:38:27 GMT 2007  Olly Betts <olly@survex.com>
27418         * backends/quartz/Makefile.mk,bin/Makefile.am,tests/Makefile.am: Move
27419           backends/quartz/libbtreecheck.la to libquartzcheck.la.
27420         * getopt/Makefile.am: Distribute getopt/dir_contents.
27422 Wed Feb 14 10:20:14 GMT 2007  Olly Betts <olly@survex.com>
27424         * preautoreconf: Handle variables set with "+=" and ":=".
27426 Wed Feb 14 10:16:29 GMT 2007  Olly Betts <olly@survex.com>
27428         * include/xapian/database.h: Add documentation comments for DB_*
27429           constants.
27431 Wed Feb 14 10:11:37 GMT 2007  Olly Betts <olly@survex.com>
27433         * examples/.cvsignore: Remove lingering relic of CVS days.
27435 Wed Feb 14 10:07:14 GMT 2007  Olly Betts <olly@survex.com>
27437         * Makefile.am,configure.ac,net/Makefile,net/Makefile.am,
27438           net/Makefile.mk: Convert net subdirectory to use non-recursive make.
27439           Now libxapian.la is built completely non-recursively.
27440         * docs/Makefile.am,docs/mkdoc.pl: Fix mkdoc.pl to handle directories
27441           which use non-recursive make.
27443 Wed Feb 14 09:10:27 GMT 2007  Olly Betts <olly@survex.com>
27445         * Makefile.am,backends/Makefile,backends/Makefile.am,
27446           backends/Makefile.mk,backends/flint/Makefile,
27447           backends/flint/Makefile.am,backends/flint/Makefile.mk,
27448           backends/inmemory/Makefile,backends/inmemory/Makefile.am,
27449           backends/inmemory/Makefile.mk,backends/multi/Makefile,
27450           backends/multi/Makefile.am,backends/multi/Makefile.mk,
27451           backends/quartz/Makefile,backends/quartz/Makefile.am,
27452           backends/quartz/Makefile.mk,backends/remote/Makefile,
27453           backends/remote/Makefile.am,backends/remote/Makefile.mk,
27454           configure.ac: Convert backends subdirectory (and subdirectories
27455           thereof) to non-recursive make.
27457 Wed Feb 14 08:49:02 GMT 2007  Olly Betts <olly@survex.com>
27459         * preautoreconf: Fix handling of backslash at the end of a line in
27460           included files.
27461         * preautoreconf: Our handling of which directory a nested include is
27462           sought from is consistent with automake, so remove the FIXME comment
27463           about it.
27465 Wed Feb 14 08:07:07 GMT 2007  Olly Betts <olly@survex.com>
27467         * Makefile.am,configure.ac,matcher/Makefile,matcher/Makefile.am,
27468           matcher/Makefile.mk: Convert matcher subdirectory to non-recursive
27469           make.
27471 Wed Feb 14 07:50:19 GMT 2007  Olly Betts <olly@survex.com>
27473         * Makefile.am,api/Makefile,api/Makefile.am,api/Makefile.mk,
27474           configure.ac: Convert api subdirectory to non-recursive make.
27476 Wed Feb 14 07:48:45 GMT 2007  Olly Betts <olly@survex.com>
27478         * preautoreconf: No need to `chdir' to the current directory.
27479         * preautoreconf: Don't bother looking at the file we generate
27480           when considering included files.
27481         * preautoreconf: Add included files to the dependency list.
27483 Wed Feb 14 07:38:19 GMT 2007  Olly Betts <olly@survex.com>
27485         * preautoreconf: Generate dummy rules for the files which
27486           preautoreconf depends on, so that "make" still works if one
27487           of them is removed (by build system restructuring).
27489 Wed Feb 14 07:24:07 GMT 2007  Olly Betts <olly@survex.com>
27491         * common,languages,tests/harness: svn:ignore: We do need to ignore
27492           .dirstamp files after all.
27494 Wed Feb 14 07:22:29 GMT 2007  Olly Betts <olly@survex.com>
27496         * Makefile.am,common/Makefile,common/Makefile.am,common/Makefile.mk,
27497           configure.ac: Convert common subdirectory to non-recursive make.
27499 Wed Feb 14 07:03:27 GMT 2007  Olly Betts <olly@survex.com>
27501         * .: svn:ignore: Ignore all vim swapfiles.  No need to ignore .deps
27502           now that dummy.cc is history.
27504 Wed Feb 14 06:34:44 GMT 2007  Olly Betts <olly@survex.com>
27506         * tests/stemtest.cc: Force ASCII capitals in sample vocabulary to
27507           lower case before stemming.
27509 Wed Feb 14 06:14:42 GMT 2007  Olly Betts <olly@survex.com>
27511         * Makefile.am,configure.ac,queryparser/Makefile,
27512           queryparser/Makefile.am,queryparser/Makefile.mk:
27513           Convert queryparser subdirectory to non-recursive make.
27514         * Makefile.am: Enable automake option "subdir-objects" so
27515           that built objects for a non-recursively made directory
27516           go into that directory.
27518 Wed Feb 14 06:12:29 GMT 2007  Olly Betts <olly@survex.com>
27520         * tests/harness: svn:ignore: remove .dirstamp and depcomp.
27522 Wed Feb 14 06:10:44 GMT 2007  Olly Betts <olly@survex.com>
27524         * languages/Makefile.mk: In maintainer-mode, remove snowball and
27525           generated allsnowballheaders.h on "make clean".  When not in
27526           maintainer-mode, remove them on "make maintainer-clean".
27527         * languages/: svn:ignore all vim swap files.
27529 Wed Feb 14 05:54:32 GMT 2007  Olly Betts <olly@survex.com>
27531         * languages/Makefile.mk: Distribute the stub languages/Makefile.
27532         * tests/harness/Makefile.mk: No need to explicitly distribute
27533           harness/Makefile.mk.
27535 Wed Feb 14 05:52:08 GMT 2007  Olly Betts <olly@survex.com>
27537         * languages/Makefile.mk: Distribute languages/dir_contents.
27539 Wed Feb 14 05:44:10 GMT 2007  Olly Betts <olly@survex.com>
27541         * api/Makefile.am,api/vectortermlist.h,common/Makefile.am,
27542           queryparser/Makefile.am: We use vectortermlist.h from the
27543           queryparser directory, so move it from api to common.
27545 Wed Feb 14 05:27:13 GMT 2007  Olly Betts <olly@survex.com>
27547         * languages/Makefile.mk,languages/stem.cc: Disable finnish and lovins
27548           temporarily, until I sort out merging the support for among with
27549           functions properly.
27551 Wed Feb 14 05:24:36 GMT 2007  Olly Betts <olly@survex.com>
27553         * languages/steminternal.cc,languages/steminternal.h: Temporarily
27554           back out the changes to handling of among with functions.
27556 Tue Feb 13 19:11:57 GMT 2007  Olly Betts <olly@survex.com>
27558         * tests/harness/testsuite.cc: If a test throws an unknwon exception,
27559           say so in the test failure message.  If it throws std::string,
27560           report the first 40 character (or first line) of the string.
27562 Tue Feb 13 17:48:11 GMT 2007  Olly Betts <olly@survex.com>
27564         * languages/steminternal.cc: Fix decoding of 3 byte utf-8 sequences.
27566 Tue Feb 13 17:47:22 GMT 2007  Olly Betts <olly@survex.com>
27568         * languages/Makefile.mk: Fix dependency of generated
27569           languages/allsnowballheaders.h to be on languages/Makefile.mk.
27571 Tue Feb 13 17:46:42 GMT 2007  Olly Betts <olly@survex.com>
27573         * languages/compiler/generator.c: Fix missing ";" in generated
27574           code.
27576 Tue Feb 13 15:40:15 GMT 2007  Olly Betts <olly@survex.com>
27578         * languages/Makefile.mk,languages/compiler/driver.c,
27579           languages/compiler/generator.c,languages/compiler/header.h:
27580           Changes towards getting C++ generation working.
27582 Tue Feb 13 15:39:23 GMT 2007  Olly Betts <olly@survex.com>
27584         * languages/steminternal.cc,languages/steminternal.h: Revert to match
27585           currently generated code.
27587 Tue Feb 13 14:09:31 GMT 2007  Olly Betts <olly@survex.com>
27589         * languages/compiler/: Sync with current snowball SVN + submitted
27590           patches.
27592 Tue Feb 13 10:53:34 GMT 2007  Olly Betts <olly@survex.com>
27594         * tests/harness/backendmanager.cc: If we fail to start
27595           xapian-tcpsrv, report why (give errno or the error output).
27597 Tue Feb 13 10:28:43 GMT 2007  Olly Betts <olly@survex.com>
27599         * tests/remotetest.cc: Prune test cases which are redundant now that
27600           apitest tests remote and remotetcp: apitest's simplequery1 performs
27601           a superset of what netmatch1 and tcpmatch1 do; apitest's multidb1
27602           performs a superset of what netmatch2 does; and the coverage given
27603           by our netexpand1 is provided by various apitest tests.
27605 Mon Feb 12 06:36:58 GMT 2007  Olly Betts <olly@survex.com>
27607         * languages/compiler/generator.c: In backward mode, among
27608           can't match if there are fewer characters before the current
27609           position than the minimum length string in the among.
27611 Mon Feb 12 05:56:31 GMT 2007  Olly Betts <olly@survex.com>
27613         * configure.ac: Make sure that the languages subdirectory exists in
27614           case this is a fresh SVN checkout and srcdir != builddir.
27616 Mon Feb 12 05:46:49 GMT 2007  Olly Betts <olly@survex.com>
27618         * languages/Makefile.mk,languages/compiler/driver.c: -DDISABLE_JAVA
27619           to not compile in Java support (inline with Richard's patch to
27620           the upstream snowball sources).
27621         * languages/Makefile.mk: Remove inaccurate comment about processing
27622           with automake.  Fix -n option we pass (remove directory name).
27623           Use "" instead of <> in generated file allsnowballheaders.h.  Remove
27624           snowball compiler and generated files on "make maintainer-clean".
27626 Mon Feb 12 01:08:50 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27628         * languages/compiler/header.h: Remove commented out header for
27629           sort() prototype, to match snowball sources.
27631 Sun Feb 11 19:28:50 GMT 2007  Olly Betts <olly@survex.com>
27633         * languages/api.h,languages/header.h: Remove headers which are no
27634           longer used.
27636 Sun Feb 11 19:26:50 GMT 2007  Olly Betts <olly@survex.com>
27638         * languages/api.cc,languages/utilities.cc: Remove sources which are
27639           no longer used.
27641 Sun Feb 11 16:22:16 GMT 2007  Olly Betts <olly@survex.com>
27643         * languages/compiler/driver.c: Use #ifdef instead of #if.
27645 Sun Feb 11 16:20:44 GMT 2007  Olly Betts <olly@survex.com>
27647         * languages/compiler/driver.c: Disable java support, since we don't
27648           use it and it means one less source file.
27650 Sun Feb 11 16:08:49 GMT 2007  Olly Betts <olly@survex.com>
27652         * languages/compiler/analyser.c,languages/compiler/header.h: Use qsort
27653           instead the snowball's own sort implementation to reduce the number
27654           of source files we need for the snowball compiler.
27656 Sun Feb 11 16:04:19 GMT 2007  Olly Betts <olly@survex.com>
27658         * languages/Makefile: Add stub Makefile to allow "make", "make check",
27659           and "make clean" from the languages subdirectory.
27661 Sun Feb 11 16:00:51 GMT 2007  Olly Betts <olly@survex.com>
27663         * languages/compiler/analyser.c: Cast the arguments, not the function
27664           pointer as ISO C allows `void*' and `struct amongvec*' to have
27665           different representations.
27667 Sun Feb 11 15:43:49 GMT 2007  Olly Betts <olly@survex.com>
27669         * languages/compiler/space.c: Fix a typo of a function name in a
27670           comment.
27672 Sun Feb 11 15:23:51 GMT 2007  Olly Betts <olly@survex.com>
27674         * languages/compiler/header.h,languages/compiler/tokeniser.c: Give
27675           syswords and syswords2 .h extensions for clarity.
27677 Sun Feb 11 15:17:28 GMT 2007  Olly Betts <olly@survex.com>
27679         * Makefile.am,api/Makefile.am,api/omstem.cc,configure.ac,dummy.cc,
27680           languages/Makefile.am,languages/Makefile.mk,languages/compiler/,
27681           languages/: Update the stemmers to use utf-8 and the latest snowball
27682           version (based on r421 from snowball SVN).  Further patches are
27683           required to generate C++ classes from snowball, I'm checking in the
27684           vanilla compiler first to help us track the patches.
27686 Sun Feb 11 14:16:35 GMT 2007  Olly Betts <olly@survex.com>
27688         * api/omstem.cc: Add definition for Xapian::Stem::stem_word().
27690 Sun Feb 11 13:15:11 GMT 2007  Olly Betts <olly@survex.com>
27692         * tests/api_anydb.cc,tests/api_db.cc,tests/api_posdb.cc: Prefer
27693           Xapian::Stem::operator() to Xapian::Stem::stem_word().
27695 Sat Feb 10 19:10:31 GMT 2007  Olly Betts <olly@survex.com>
27697         * queryparser/queryparser.lemony: Prefer Xapian::Stem::operator() to
27698           Xapian::Stem::stem_word().
27700 Sat Feb 10 18:34:41 GMT 2007  Olly Betts <olly@survex.com>
27702         * include/xapian/stem.h: Make Xapian::Stem::Internal as @internal for
27703           doxygen.  Mark Xapian::Stem::stem_word() as deprecated.
27705 Sat Feb 10 18:34:05 GMT 2007  Olly Betts <olly@survex.com>
27707         * HACKING: Add brief note about coding style.
27709 Sat Feb 10 18:24:28 GMT 2007  Olly Betts <olly@survex.com>
27711         * preautoreconf: Add licence and copyright notice.  Add support for
27712           automake include directives.  Warn about unknown variables.
27714 Sat Feb 10 18:19:26 GMT 2007  Olly Betts <olly@survex.com>
27716         * tests/harness/testsuite.cc: Conditionalise all the valgrind specific
27717           code on RUNNING_ON_VALGRIND to minimise the overhead if valgrind
27718           is installed but we aren't running tests under it.
27720 Sat Feb 10 17:42:05 GMT 2007  Olly Betts <olly@survex.com>
27722         * tests/harness/index_utils.cc,tests/stemtest.cc: Prefer
27723           Xapian::Stem::operator() to Xapian::Stem::stem_word().
27725 Sat Feb 10 17:27:27 GMT 2007  Olly Betts <olly@survex.com>
27727         * examples/delve.cc,examples/simpleindex.cc,examples/simplesearch.cc:
27728           Prefer Xapian::Stem::operator() to Xapian::Stem::stem_word().
27730 Wed Feb 07 04:23:09 GMT 2007  Olly Betts <olly@survex.com>
27732         * queryparser/queryparser.lemony,queryparser/queryparser.lt: Use
27733           new/delete instead of malloc/free to allocate struct yyParser
27734           and pass it around as "yyParser *" instead of "void *".
27736 Wed Feb 07 03:44:16 GMT 2007  Olly Betts <olly@survex.com>
27738         * include/xapian/queryparser.h,queryparser/queryparser.cc,
27739           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
27740           tests/queryparsertest.cc: Allow the default prefix to be specified
27741           so you can use QueryParser to parse a text entry box for "author"
27742           etc.
27743         * configure.ac: Note API change for LIBRARY_VERSION_INFO updating.
27745 Wed Feb 07 01:14:37 GMT 2007  Olly Betts <olly@survex.com>
27747         * common/safeunistd.h: Add '#include <sys/types.h>' so that we've seen
27748           a typedef for off_t before we hide it behind a #define to avoid a
27749           compilation error if <sys/types.h> or <wchar.h> is included after
27750           we are.
27752 Tue Feb 06 06:26:24 GMT 2007  Olly Betts <olly@survex.com>
27754         * INSTALL: Mention MSVC makefiles.  Note that we still test build with
27755           GCC 2.95.4 even though we recommend using a newer version.
27757 Tue Feb 06 06:13:48 GMT 2007  Olly Betts <olly@survex.com>
27759         * AUTHORS,HACKING,backends/flint/,backends/quartz/btree.cc,
27760           backends/quartz/quartz_database.cc,bin/quartzcompact.cc,
27761           bin/xapian-compact.cc,common/,tests/btreetest.cc,
27762           tests/harness/backendmanager.cc,tests/harness/testsuite.cc,
27763           tests/quartztest.cc: Support large files in stat() and fstat()
27764           when building with MSVC.  Factor MSVC specific header magic
27765           into new replacement headers "safeunistd.h" and "safesysstat.h".
27766         * AUTHORS: Thanks to Charlie Hull for the original patch to support
27767           stat() on large files with MSVC (and past MSVC related stuff!)
27769 Sat Jan 13 02:06:15 GMT 2007  Olly Betts <olly@survex.com>
27771         * include/xapian/database.h: Add pointer from
27772           WritableDatabase::add_document() to replace_document() in case the
27773           user wants to specify the docid themselves.  Also improve the
27774           wording of the warning about changes not being committed to disk
27775           right away.
27777 Tue Jan  2 15:49:43 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27779         * backends/quartz/btree.cc,backends/flint/flint_io.h: Patches from
27780           Charlie Hull to allow 2GB+ index files work when compiled using
27781           Visual C++.
27783 Sat Dec 30 13:48:54 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27785         * queryparser/queryparser.lemony,include/xapian/queryparser.h:
27786           Add support for partially entered queries, to better support
27787           incremental searching.  Also fix a typo in a comment.
27788         * docs/queryparser.html: Document the new partial query option, and
27789           what it's useful for.
27790         * tests/queryparsertest.cc: Test partial queries.
27792 Wed Dec 20 16:42:24 GMT 2006  Olly Betts <olly@survex.com>
27794         * PLATFORMS: Updated with success reports from debian buildds.
27796 Wed Dec 20 00:53:19 GMT 2006  Olly Betts <olly@survex.com>
27798         * api/omqueryinternal.cc: Fix "unused parameter" warning when building
27799           with the remote backend disabled.  Also update a comment - the query
27800           serialisation isn't really one line of text since we now store term
27801           names with the length prefixed, and they can contain arbitrary
27802           characters including linefeeds.
27804 Tue Dec 19 20:40:27 GMT 2006  Olly Betts <olly@survex.com>
27806         * tests/Makefile.am: Need libgetopt.la for test programs which
27807           use the test harness for platforms where GNU getopt isn't in
27808           the standard C library.
27810 Tue Dec 19 20:34:16 GMT 2006  Olly Betts <olly@survex.com>
27812         * queryparser/utf8itor.h: Need <string.h> for strlen.
27814 Tue Dec 19 16:35:58 GMT 2006  Olly Betts <olly@survex.com>
27816         * common/omstringstream.h: Fix "warning: comparison between signed and
27817           unsigned".
27819 Tue Dec 19 15:33:19 GMT 2006  Olly Betts <olly@survex.com>
27821         * backends/flint/flint_positionlist.cc: Turn the second (and
27822           potentially slightly deeper) recursion in encode_interpolative
27823           and decode_interpolative into explicit iteration in case the
27824           compiler fails to optimise the tail recursion.
27826 Mon Dec 18 03:39:41 GMT 2006  Olly Betts <olly@survex.com>
27828         * matcher/: Add ExactPhrasePostList to handle the common special case
27829           where the window size of OP_PHRASE is equal to the number of terms
27830           in the phrase.
27832 Mon Dec 18 02:21:32 GMT 2006  Olly Betts <olly@survex.com>
27834         * tests/harness/testsuite.cc: Remove accidentally committed "NO
27835           PROBLEM" message when running under valgrind.
27837 Wed Dec 13 21:15:57 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27839         * include/xapian/document.h: Another tweak to the documentation
27840           comment.
27842 Wed Dec 13 18:07:51 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27844         * include/xapian/document.h: Improve documentation comment for
27845           Document::get_value().
27847 Wed Dec 13 03:38:37 GMT 2006  Olly Betts <olly@survex.com>
27849         * include/xapian/enquire.h: In the description of the TradWeight
27850           class, replace reference to "Muscat 3.6" (meaningless to most
27851           people) with a generally useful explanation.
27853 Wed Dec 13 03:27:14 GMT 2006  Olly Betts <olly@survex.com>
27855         * docs/: svn:ignore XapianAdminNotes.html.
27857 Wed Dec 13 03:16:44 GMT 2006  Olly Betts <olly@survex.com>
27859         * configure.ac: Yet more valgrind test improvements!  Give up testing
27860           valgrind features if VALGRIND_COUNT_LEAKS isn't supported.  Fix the
27861           common shortcut case to not try logging to /dev/null.<pid> so it
27862           can actually get used.  Also don't use /dev/null in the --logfile
27863           case either as it will probably cause problems there too (though I
27864           don't have an old enough valgrind handy to verify this).  Also report
27865           results of valgrind tests in a couple more places.
27867 Wed Dec 13 00:31:04 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27869         * docs/Makefile.am: New rules for generating XapianAdminNotes.html
27870           from XapianAdminNotes.txt
27871         * configure.ac: Check for rst2html, and require it in maintainer
27872           mode.
27873         * HACKING: document rst2html as a requirement.
27875 Tue Dec 12 23:58:13 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27877         * docs/XapianAdminNotes.txt: Add new document giving an
27878           introduction to Xapian concepts for system administrators.
27880 Tue Dec 12 21:33:38 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27882         * docs/quartzdesign.html: Fix an unmatched bracket.
27884 Tue Dec 12 21:18:54 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27886         * backends/quartz/quartz_alldocspostlist.cc: Fix memory leak
27887           discovered by valgrind in QuartzAllDocsPostList constructor: was
27888           failing to delete the Bcursor.
27890 Tue Dec 12 21:05:47 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27892         * queryparser/queryparser.lemony: Fix parsing of queries of the
27893           form "+foo* bar", where no terms in the database match the
27894           wildcard "foo*", but bar does exist in the database.  Previously,
27895           such queries would be equivalent to "bar".  Now, they will match
27896           no documents.  This required using a new "QpQuery" object
27897           internally so we can distinguish between deliberately "match
27898           nothing" queries, and empty lists of queries.
27899         * tests/api_anydb.cc,tests/queryparsertest.cc: Test above fix, and
27900           general parsing of wildcard queries with +terms, and test
27901           performing a match with a query resulting from a wildcard query
27902           which matches nothing.
27904 Tue Dec 12 21:05:15 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27906         * tests/api_nodb.cc,api/omqueryinternal.cc,api/omquery.cc: Fix some
27907           copyright assertions I missed.
27909 Tue Dec 12 19:38:39 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27911         * include/xapian/query.h,api/omqueryinternal.cc,api/omquery.cc: Add
27912           two static Query objects: Xapian::Query::MatchAll and
27913           Xapian::Query::MatchNothing, which match all documents and no
27914           documents in the database, respectively.  (Equivalent to
27915           Query("") and Query()).  Allow empty queries such as MatchNothing
27916           to be combined with other queries.  Change methods of
27917           Xapian::Query::Internal to use pointers to query internals
27918           instead of references, so they can handle the NULL pointer
27919           internals of an empty query.
27920         * tests/api_nodb.cc: Test combining of MatchNothing queries with
27921           other queries with OP_AND and OP_OR.
27923 Tue Dec 12 20:01:58 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27925         * configure.ac: Fix valgrind better: --log-file-exactly isn't what
27926           is wanted, because it messes up if multiple processes are traced.
27927           Instead, use a temporary file instead of /dev/null, so we don't
27928           get the permission denied error.
27930 Tue Dec 12 19:15:20 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27932         * configure.ac: Fix detection of valgrind for newer valgrind.  My
27933           version of valgrind (valgrind-3.2.1-Debian, from ubuntu feisty)
27934           treats the parameter supplied to --log-file as a base path, and
27935           appends a process ID. This caused the test for the log-file
27936           option to fail with permission denied errors due to trying to
27937           write to files of the form '/dev/null.16098'.  Solution - test
27938           for the --log-file-exactly option, and use that.  Also, change
27939           configure.ac to display the result of the tests for valgrind; was
27940           displaying that it had found it, but not mentioning that it
27941           couldn't make it work.
27943 Tue Dec 05 21:12:12 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27945         * include/xapian/query.h,api/omqueryinternal.cc: Fix query
27946           serialisation bug.  Was failing to propagate "curpos" parameter
27947           across subqueries, resulting in incorrect serialisation of
27948           termpositions.
27949         * tests/internaltest.cc: Regression test for this bug.
27951 Tue Dec 05 01:34:07 GMT 2006  Olly Betts <olly@survex.com>
27953         * HACKING: Clarify how XAPIAN_DEBUG_FLAGS works.
27955 Tue Dec 05 01:23:12 GMT 2006  Olly Betts <olly@survex.com>
27957         * examples/quest.cc: Add "--stemmer" option to allow stemming language
27958           to be set, or stemming to be disabled.
27960 Sun Dec 03 00:34:27 GMT 2006  Olly Betts <olly@survex.com>
27962         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Add entries
27963           to the "unstem" map for prefixed boolean filters (e.g. type:html).
27964           Also don't corrupt non-ASCII characters in a prefixed boolean
27965           filter.
27967 Sat Nov 25 04:17:23 GMT 2006  Olly Betts <olly@survex.com>
27969         * backends/flint/flint_database.cc,backends/flint/flint_version.cc:
27970           The "my_fls()" change actually results in a different interpolative
27971           encoding in a few cases - the old encoding could vary between
27972           architectures so we have to change it.  So bump the FLINT_VERSION
27973           and change the "flicklock" file to be "flintlock" as it should have
27974           been all along!
27976 Wed Nov 22 18:55:42 GMT 2006  Olly Betts <olly@survex.com>
27978         * xapian-config.in: Improve --version output so that help2man produces
27979           a better man page.
27981 Mon Nov 20 07:21:07 GMT 2006  Olly Betts <olly@survex.com>
27983         * backends/flint/flint_positionlist.cc: Fix another off-by-one
27984           error (> should be >=).
27986 Mon Nov 20 07:12:11 GMT 2006  Olly Betts <olly@survex.com>
27988         * backends/flint/flint_positionlist.cc: Fix off-by-one error in code
27989           which calls my_fls().
27991 Sat Nov 18 08:32:08 GMT 2006  Olly Betts <olly@survex.com>
27993         * backends/flint/flint_positionlist.cc: "const static" -> "static
27994           const".
27996 Sat Nov 18 08:05:17 GMT 2006  Olly Betts <olly@survex.com>
27998         * backends/flint/flint_positionlist.cc: Make decode_interpolative
27999           a member function of BitReader.
28001 Sat Nov 18 07:45:19 GMT 2006  Olly Betts <olly@survex.com>
28003         * backends/flint/flint_positionlist.cc: Add highly optimised fls()
28004           implementation and make use of it.
28006 Thu Nov 16 04:22:36 GMT 2006  Olly Betts <olly@survex.com>
28008         * m4/xapian.m4: If XAPIAN_CONFIG wasn't specified and xapian-config
28009           wasn't found, see if the library seems to be present - if so give
28010           a different error message which suggests the user needs to install
28011           a -dev or -devel package.
28013 Thu Nov 16 02:11:34 GMT 2006  Olly Betts <olly@survex.com>
28015         * docs/install.html: omega tarball is now xapian-omega.
28017 Tue Nov 14 22:42:05 GMT 2006  Olly Betts <olly@survex.com>
28019         * tests/harness/Makefile: Add static Makefile so you can make all,
28020           check, and clean from the subdirectory.
28021         * tests/harness/Makefile.mk: Ship Makefile.mk and Makefile.
28023 Tue Nov 14 21:53:45 GMT 2006  Olly Betts <olly@survex.com>
28025         * tests/: Remove muscat36 temporary directories from svn:ignore
28026           property.
28028 Tue Nov 14 19:47:30 GMT 2006  Olly Betts <olly@survex.com>
28030         * configure.ac,tests/Makefile.am,tests/harness/Makefile.mk: Use
28031           non-recursive make to build the test harness, so it only gets
28032           built if "make check" is run.
28034 Tue Nov 14 19:43:48 GMT 2006  Olly Betts <olly@survex.com>
28036         * tests/quartztest.cc: Removed unused static function unlink_table.
28038 Tue Nov 14 17:41:26 GMT 2006  Olly Betts <olly@survex.com>
28040         * include/xapian/queryparser.h,queryparser/queryparser.lemony,
28041           tests/queryparsertest.cc: Add QueryParser::FLAG_PURE_NOT to allow
28042           pure NOT queries to be enabled (they are now disabled by default).
28044 Tue Nov 14 04:19:40 GMT 2006  Olly Betts <olly@survex.com>
28046         * backends/database.cc,backends/flint/dir_contents,
28047           backends/quartz/dir_contents,docs/overview.html,
28048           docs/quartzdesign.html,docs/scalability.html: Make flint the default
28049           backend.
28051 Tue Nov 14 03:25:19 GMT 2006  Olly Betts <olly@survex.com>
28053         * tests/api_nodb.cc: Xapian::Query("") now builds a query which
28054           matches all documents rather than throwing InvalidArgumentError
28055           so fix emptyquery1 test.
28057 Tue Nov 14 02:03:29 GMT 2006  Olly Betts <olly@survex.com>
28059         * api/omdocument.cc: Tweak OmDocumentTerm::add_position() so that
28060           adding position 0 to an empty termlist takes the shortcut.
28062 Mon Nov 13 05:46:15 GMT 2006  Olly Betts <olly@survex.com>
28064         * docs/queryparser.html: Document the new pure NOT feature.
28066 Mon Nov 13 05:24:30 GMT 2006  Olly Betts <olly@survex.com>
28068         * api/omqueryinternal.cc,queryparser/queryparser.lemony,
28069           tests/queryparsertest.cc: Allow "pure NOT" queries - e.g.
28070           "NOT apples".  Fixes bug #99.
28072 Mon Nov 13 04:54:04 GMT 2006  Olly Betts <olly@survex.com>
28074         * api/omqueryinternal.cc: Undo changes accidentally committed in last
28075           check-in.
28077 Mon Nov 13 04:47:57 GMT 2006  Olly Betts <olly@survex.com>
28079         * api/omqueryinternal.cc,backends/Makefile.am,backends/database.cc,
28080           backends/muscat36/,configure.ac,docs/overview.html,
28081           docs/quartzdesign.html,docs/tests.html,include/xapian/dbfactory.h,
28082           include/xapian/version_h.cc,tests/api_anydb.cc,tests/apitest.cc,
28083           tests/harness/backendmanager.cc,tests/harness/backendmanager.h,
28084           tests/harness/index_utils.cc: Remove support for the old Muscat 3.6
28085           backends.
28087 Mon Nov 13 04:02:27 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
28089         * common/database.h,api/omdatabase.cc,
28090           backends/inmemory/inmemory_database.cc,
28091           backends/inmemory/inmemory_database.h,
28092           backends/quartz/Makefile.am,backends/quartz/quartz_database.cc,
28093           backends/quartz/quartz_alldocspostlist.h,
28094           backends/quartz/quartz_alldocspostlist.cc,
28095           backends/flint/Makefile.am,backends/flint/flint_database.cc,
28096           backends/flint/flint_alldocspostlist.cc,
28097           backends/flint/flint_alldocspostlist.h:
28098           Implement posting lists which return a list of all documents in
28099           the database.  Such a posting list is obtained by calling
28100           Xapian::Database::postlist_begin() with an empty term (ie, "").
28101           Also, all Xapian::Database methods which take a termname now
28102           accept an empty term, and return appropriate values (ie,
28103           get_termfreq("") and get_collection_freq("") return the number of
28104           documents in the database, and term_exists("") returns true
28105           unless the database is empty).  Fixes Bug #47.
28106         * docs/quartzdesign.html: Document the inefficiency of all-document
28107           postlists for Quartz.
28108         * tests/api_anydb.cc,tests/api_db.cc,tests/api_wrdb.cc: Add tests for
28109           all-document postlists, and for passing an empty term to all the
28110           applicable database methods.  This defines the new tests
28111           allpostlist1, allpostlist2, emptyterm1, and emptyterm2.  These
28112           tests currently skip for the remote backend where postlist_begin()
28113           isn't yet implemented.
28115 Mon Nov 13 02:06:03 GMT 2006  Olly Betts <olly@survex.com>
28117         * Merge in utf8 branch:
28119         Thu Sep 14 23:49:48 BST 2006  Olly Betts <olly@survex.com>
28121                 * queryparser/,tests/queryparsertest.cc: Update to work with
28122                   UTF-8.  Stop normalising accents - the general sentiment
28123                   seems to be firmly against it, and where it is still
28124                   appropriate we should get the stemmers to do it.
28126 Sun Nov 12 22:38:56 GMT 2006  Olly Betts <olly@survex.com>
28128         * NEWS: Update from ChangeLog file in preparation for branching and
28129           merging.
28131 Sun Nov 12 19:32:01 GMT 2006  Olly Betts <olly@survex.com>
28133         * backends/flint/flint_database.cc,
28134           backends/inmemory/inmemory_database.cc,
28135           backends/inmemory/inmemory_database.h,
28136           backends/quartz/quartz_database.cc: Fix replace_document() not to
28137           lose positional information for a document if it is replaced with
28138           itself with unmodified postings.
28139         * tests/api_wrdb.cc: Add testcase replace_document5 as regression test
28140           for the replace_document bug.
28141         * backends/remote/remote-database.cc: Fix
28142           RemoteDatabase::has_positions() to refetch the cached value if it
28143           might be out of date.
28145 Sun Nov 12 17:07:00 GMT 2006  Olly Betts <olly@survex.com>
28147         * docs/Makefile.am: Need to increase pool_size further still to build
28148           sourcedoc.pdf (2000000 now).
28150 Sun Nov 12 16:24:15 GMT 2006  Olly Betts <olly@survex.com>
28152         * HACKING: Add "update ReleaseNotes on wiki" to release checklist.
28154 Sun Nov 12 16:23:19 GMT 2006  Olly Betts <olly@survex.com>
28156         * xapian.spec.in: Remove "." from end of "Summary:".  Package
28157           new man page for xapian-progsrv.
28159 Sun Nov 12 00:43:36 GMT 2006  Olly Betts <olly@survex.com>
28161         * docs/stemming.html: Update another "CVS" reference to say "SVN".
28163 Sun Nov 12 00:42:22 GMT 2006  Olly Betts <olly@survex.com>
28165         * docs/install.html: Update reference to "CVS" to say "SVN".
28167 Thu Nov 09 01:11:52 GMT 2006  Olly Betts <olly@survex.com>
28169         * HACKING: Reorder the release checklist a little.  I've fixed
28170           update_website.sh to get the latest version from version.php, so
28171           now only version.php needs updating.
28173 Thu Nov 09 00:17:35 GMT 2006  Olly Betts <olly@survex.com>
28175         * NEWS,PLATFORMS,configure.ac: Update for 0.9.9.
28177 Wed Nov 08 20:54:31 GMT 2006  Olly Betts <olly@survex.com>
28179         * xapian.spec.in: Apply changes from Neal Becker to run "autoreconf
28180           --force" so that we don't set rpath for /usr/lib64, and add "libs"
28181           to %post and %postun.
28182         * AUTHORS: Thank Neal Becker.
28184 Wed Nov 08 04:27:17 GMT 2006  Olly Betts <olly@survex.com>
28186         * docs/tests.html: Update for "testsuite" -> "tests/harness".  Mark
28187           paths and programs with <code>...</code>.  Improve wording in a few
28188           places.
28190 Wed Nov 08 03:10:37 GMT 2006  Olly Betts <olly@survex.com>
28192         * bin/xapian-tcpsrv.cc: Need '#include "safeerrno.h"' for EADDRINUSE.
28194 Wed Nov 08 02:36:59 GMT 2006  Olly Betts <olly@survex.com>
28196         * bin/Makefile.am,bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc:
28197           xapian-progsrv now uses getopt for option processing, and we can
28198           now generate a man page using help2man.  Fixes Bug #98.
28200 Wed Nov 08 01:47:19 GMT 2006  Olly Betts <olly@survex.com>
28202         * bin/xapian-tcpsrv.cc: If the port requested is in use, exit with
28203           code 69 (EX_UNAVAILABLE) which is useful if you're trying to
28204           automate launching of xapian-tcpsrv instances.
28205         * tests/harness/backendmanager.cc: If we can't start xapian-tcpsrv
28206           because the port is in use, try higher numbered ports.
28207         * tests/harness/testsuite.cc: Catch and report std::string exceptions.
28209 Tue Nov 07 22:40:58 GMT 2006  Olly Betts <olly@survex.com>
28211         * net/tcpclient.cc: Turn on TCP_NODELAY for the client too.
28213 Tue Nov 07 21:46:39 GMT 2006  Olly Betts <olly@survex.com>
28215         * net/tcpserver.cc: Turn on TCP_NODELAY for xapian-tcpsrv which
28216           increases throughput for the remote backend over tcp.
28218 Tue Nov 07 21:08:57 GMT 2006  Olly Betts <olly@survex.com>
28220         * backends/flint/flint_btreebase.cc: Add missing '#include'-s.
28222 Tue Nov 07 17:57:22 GMT 2006  Olly Betts <olly@survex.com>
28224         * backends/quartz/btree_base.cc: Add missing '#include'-s.
28226 Tue Nov 07 05:12:40 GMT 2006  Olly Betts <olly@survex.com>
28228         * backends/flint/flint_positionlist.h,backends/flint/flint_table.cc,
28229           backends/quartz/btree.cc: Add missing '#include <vector>' which
28230           "utils.h" was implicitly pulling in.
28231         * common/utils.h: Move '#include "safefcntl.h"' to more logical place.
28233 Tue Nov 07 04:18:27 GMT 2006  Olly Betts <olly@survex.com>
28235         * common/safefcntl.h: Actually add the new file to SVN.
28237 Tue Nov 07 03:36:59 GMT 2006  Olly Betts <olly@survex.com>
28239         * HACKING,backends/flint/flint_io.h,backends/flint/flint_lock.cc,
28240           backends/flint/flint_lock.h,backends/muscat36/io_system.cc,common/,
28241           net/tcpserver.cc,tests/harness/backendmanager.cc,
28242           tests/harness/testsuite.cc: Create "safefcntl.h" as a replacement
28243           for <fcntl.h> instead of using "utils.h" for this purpose, since
28244           "utils.h" pulls in many other things we often don't want.
28245         * common/utils.cc,common/utils.h,net/progclient.cc: Move split_words
28246           to progclient.cc which is the only user of it.  Rewrite it to not
28247           modified the string being split which risks being O(n^2).
28248         * net/progclient.cc,common/progclient.h: Pass std::string by const
28249           reference.
28250         * configure.ac: Fix DJGPP build (fork is present but always fails).
28252 Tue Nov 07 03:21:24 GMT 2006  Olly Betts <olly@survex.com>
28254         * matcher/biaspostlist.h: Don't need '#include "utils.h"'.
28256 Tue Nov 07 01:15:14 GMT 2006  Olly Betts <olly@survex.com>
28258         * common/c_strtod.cc: Remove file which was checked in but is unused!
28260 Mon Nov 06 15:24:02 GMT 2006  Olly Betts <olly@survex.com>
28262         * tests/internaltest.cc: Disable serialiselength1 and serialisedoc1
28263           when the remote backend is disabled.
28265 Mon Nov 06 15:23:40 GMT 2006  Olly Betts <olly@survex.com>
28267         * tests/Makefile.am: Fix typo in recent check-in.
28269 Mon Nov 06 01:43:37 GMT 2006  Olly Betts <olly@survex.com>
28271         * tests/Makefile.am: Need "harness" in "$(srcdir)" for VPATH builds to
28272           work.
28274 Sun Nov 05 19:55:26 GMT 2006  Olly Betts <olly@survex.com>
28276         * backends/quartz/Makefile.am: Remove explicit dependency of
28277           libbtreecheck.la on libxapian.la.  We always link in libxapian.la
28278           and the explicit dependency makes it hard to build things in a
28279           sane order.
28281 Sun Nov 05 19:29:17 GMT 2006  Olly Betts <olly@survex.com>
28283         * net/tcpserver.cc: Don't define on_SIGCHLD() unless we'll use it.
28284         * tests/harness/backendmanager.cc: Use a proper signal handler for
28285           SIGCHLD if we have waitpid() - POSIX leaves the semantics of
28286           SIG_IGN on SIGCHLD unspecified.
28288 Sun Nov 05 19:11:36 GMT 2006  Olly Betts <olly@survex.com>
28290         * backends/quartz/Makefile.am,backends/quartz/btreecheck.cc,
28291           backends/quartz/btreecheck.h,bin/Makefile.am,tests/Makefile.am,
28292           tests/harness/: Use _exit(0) instead of exit(0) in the child
28293           process which closes the pipe to xapian-tcpsrv in BackendManager
28294           since we don't want to call atexit functions from the child.  Move
28295           btreecheck stuff into backends/quartz.
28297 Sun Nov 05 17:12:05 GMT 2006  Olly Betts <olly@survex.com>
28299         * Makefile.am,bin/Makefile.am,configure.ac,tests/Makefile.am,
28300           tests/harness/Makefile.am,tests/harness/dir_contents,testsuite/:
28301           Move the testsuite harness from "testsuite/" to "tests/harness/".
28303 Sun Nov 05 16:36:56 GMT 2006  Olly Betts <olly@survex.com>
28305         * testsuite/backendmanager.cc,testsuite/backendmanager.h: Now needs
28306           <stdio.h>.  Set SIG_IGN for SIG_CHLD so we don't get zombie child
28307           processes.
28309 Sun Nov 05 03:53:24 GMT 2006  Olly Betts <olly@survex.com>
28311         * tests/apitest.cc: Make backendmanager static.
28313 Sun Nov 05 03:51:36 GMT 2006  Olly Betts <olly@survex.com>
28315         * bin/xapian-tcpsrv.cc: Output "Listening..." once the socket is
28316           open and read for connections.
28317         * testsuite/backendmanager.cc: Use popen() to run xapian-tcpsrv
28318           and wait for "Listening..." before returning rather than just
28319           sleeping for 1 second and hoping that's enough.
28321 Sun Nov 05 02:54:23 GMT 2006  Olly Betts <olly@survex.com>
28323         * tests/api_db.cc: Remove unnecessary inclusion of backendmanager.h.
28325 Fri Nov 03 02:09:26 GMT 2006  Olly Betts <olly@survex.com>
28327         * HACKING: Update debian packaging checklist.
28329 Fri Nov 03 00:57:35 GMT 2006  Olly Betts <olly@survex.com>
28331         * docs/Makefile.am: Building sourcedoc.pdf needs a larger pool_size
28332           now.
28334 Thu Nov 02 19:12:34 GMT 2006  Olly Betts <olly@survex.com>
28336         * AUTHORS: Updated.
28338 Thu Nov 02 15:41:46 GMT 2006  Olly Betts <olly@survex.com>
28340         * HACKING,NEWS,configure.ac: Update for 0.9.8.
28342 Thu Nov 02 15:20:05 GMT 2006  Olly Betts <olly@survex.com>
28344         * PLATFORMS: Update from tinderbox.
28346 Thu Nov 02 11:53:53 GMT 2006  Olly Betts <olly@survex.com>
28348         * configure.ac: GCC's -Wendif-labels is enabled by default on versions
28349           which support it, which simplifies our tests.
28351 Thu Nov 02 00:22:44 GMT 2006  Olly Betts <olly@survex.com>
28353         * backends/remote/dir_contents: Update.
28355 Wed Nov 01 15:33:12 GMT 2006  Olly Betts <olly@survex.com>
28357         * common/omstringstream.h: Fix our implementation of om_ostringstream
28358           to work with OmTime.
28360 Wed Nov 01 03:27:36 GMT 2006  Olly Betts <olly@survex.com>
28362         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Don't
28363           require a prefixed boolean term to start with an alphanumeric
28364           - allow the same set of characters as we do for the second and
28365           subsequent characters.
28367 Sat Oct 28 04:12:13 BST 2006  Olly Betts <olly@survex.com>
28369         * bin/quartzcheck.cc: Add catch for unknown exceptions.
28371 Sat Oct 28 03:49:19 BST 2006  Olly Betts <olly@survex.com>
28373         * HACKING,configure.ac,docs/Makefile.am,docs/doxygen_api_conf.in,
28374           docs/doxygen_full_conf.in: Produce a PDF for apidoc rather than
28375           PostScript, since the PDF is smaller, and easier to view for most
28376           users.  Use pdflatex to generate the PDF directly rather than
28377           going via a DVI file.  This also avoids problems on some Linux
28378           distros where latex is a symlink to pdfelatex (bug#81, bug#95).
28380 Thu Oct 26 22:12:20 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28382         * bin/quartzcheck.cc: Catch (and display) any exceptions which are
28383           of type "const char *error".  btreecheck.cc raises an exception
28384           of this type if a btree error is found, and this avoids
28385           quartzcheck dying quite so horribly in this case.
28387 Wed Oct 25 23:30:26 BST 2006  Olly Betts <olly@survex.com>
28389         * configure.ac: -Wendif-labels is new in GCC 3.3.
28390         * configure.ac: Revert accidental change which turned on -Werror in
28391           non-maintainer builds.
28392         * configure.ac: Avoid non-portable use of double quotes in
28393           double-quoted backticks.
28395 Wed Oct 25 01:19:24 BST 2006  Olly Betts <olly@survex.com>
28397         * configure.ac: Redhat's GCC 2.96 doesn't support -Wundef even
28398           though real GCC version before and after it do!  Also, use
28399           -Wshadow and -Wendif-labels even when not in maintainer mode.
28401 Tue Oct 24 04:17:58 BST 2006  Olly Betts <olly@survex.com>
28403         * backends/flint/flint_lock.cc,bin/quartzcheck.cc: Eliminate
28404           a couple of variables whose value is never used.
28406 Tue Oct 24 00:31:25 BST 2006  Olly Betts <olly@survex.com>
28408         * backends/quartz/quartz_database.cc: Only force a flush on
28409           WritableDatabase::allterms_begin() if there are actually pending
28410           changes.
28412 Mon Oct 23 23:49:52 BST 2006  Olly Betts <olly@survex.com>
28414         * backends/flint/flint_database.cc: Only force a flush on
28415           WritableDatabase::allterms_begin() if there are actually pending
28416           changes.
28418 Mon Oct 23 02:24:12 BST 2006  Olly Betts <olly@survex.com>
28420         * configure.ac: When checking if we need -lm, don't use a constant
28421           argument to log as the compiler might simply evaluate the whole
28422           expression at compile time.
28424 Sat Oct 21 20:42:52 BST 2006  Olly Betts <olly@survex.com>
28426         * HACKING: Mention automake 1.10 is out but we've not tested it yet.
28428 Sat Oct 21 20:39:57 BST 2006  Olly Betts <olly@survex.com>
28430         * HACKING: Add entries to release checklist: make sure new API methods
28431           are wrapped by the bindings, and that bug submitters are thanked.
28433 Fri Oct 20 13:56:50 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28435         * backends/flint/flint_io.cc: Fix compilation on windows (needs to
28436           #include "safewindows.h" to get definition of SSIZE_T).
28438 Tue Oct 17 02:16:37 BST 2006  Olly Betts <olly@survex.com>
28440         * testsuite/backendmanager.cc: Fix compilation when valgrind is
28441           detected by configure.
28443 Thu Oct 12 13:30:05 BST 2006  Olly Betts <olly@survex.com>
28445         * xapian.spec.in: Package xapian-progsrv.
28447 Thu Oct 12 00:49:47 BST 2006  Olly Betts <olly@survex.com>
28449         * HACKING: Note that on Debian, tetex-extra is needed for
28450           fancyhdr.sty.
28451         * HACKING: Note that dch can be used to update debian/changelog.
28453 Wed Oct 11 23:35:08 BST 2006  Olly Betts <olly@survex.com>
28455         * docs/Makefile.am: If running latex on refman.ps fails, cat
28456           refman.log since that is likely to show what failed.
28458 Tue Oct 10 17:24:00 BST 2006  Olly Betts <olly@survex.com>
28460         * NEWS: Bump release date.
28462 Sun Oct 08 21:41:04 BST 2006  Olly Betts <olly@survex.com>
28464         * NEWS,PLATFORMS,configure.ac: Update for 0.9.7.
28466 Sun Oct 08 10:06:51 BST 2006  Olly Betts <olly@survex.com>
28468         * testsuite/testsuite.cc: Use lseek() to skip existing valgrind output
28469           instead of repeated calls to read.  Handle the old valgrind naming
28470           convention for log files.
28472 Sun Oct 08 09:35:59 BST 2006  Olly Betts <olly@survex.com>
28474         * matcher/multimatch.cc: Fix a couple of typos in comments.
28476 Sun Oct 08 05:36:36 BST 2006  Olly Betts <olly@survex.com>
28478         * configure.ac: Disable probing and short-cut tests for a FORTRAN
28479           compiler.  We don't use one, but current libtool versions always
28480           check for it regardless.
28482 Sat Oct 07 21:19:35 BST 2006  Olly Betts <olly@survex.com>
28484         * configure.ac,tests/runtest.in,testsuite/backendmanager.cc,
28485           testsuite/testsuite.cc: Fix testsuite harness to show valgrind
28486           output when a test fails (when running under valgrind in verbose
28487           mode).  This probably stopped working due to changes in valgrind 3.
28488         * testsuite/backendmanager.cc: Run xapian-tcpsrv under valgrind if
28489           apitest is.
28491 Fri Oct  6 18:27:13 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28493         * tests/runtest.in: export $LIBTOOL, $VALGRIND and $VG_LOG_FD.
28494         * testsuite/backendmanager.cc: If $LIBTOOL, $VALGRIND and
28495           $VG_LOG_FD are set, run progsrv under valgrind.  Fixes
28496           Bug #94.
28497         * net/remoteserver.cc: Use an AutoPtr to hold the unserialised
28498           query, so it gets deleted if an exception is thrown.
28499         * api/omqueryinternal.cc: Use AutoPtr in one place, and a try-catch
28500           in another, to ensure that partially unserialised queries get
28501           deleted if exceptions are thrown.
28502         * tests/internaltest.cc: Add copyright notices to file for recent
28503           change.
28504         * AUTHORS: Add myself as a current developer, now that I've started
28505           committing to the core again.
28507 Fri Oct 06 17:44:21 BST 2006  Olly Betts <olly@survex.com>
28509         * api/omqueryinternal.cc: Fix memory leak in query unserialisation.
28511 Fri Oct  6 17:34:59 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28513         * tests/runtest.in: Cache result of test for $VG_LOG_FD if we
28514           find the new option.  Saves 2 seconds for each invocation on my
28515           machine, which is half the time when running just a single simple
28516           test.
28518 Fri Oct  6 16:35:46 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28520         * tests/internaltest.cc: Check serialisation and unserialisation of
28521           Query objects.  Currently fails under valgrind due to a memory
28522           leak somewhere in the unserialisation code.
28524 Thu Oct 05 14:13:55 BST 2006  Olly Betts <olly@survex.com>
28526         * include/xapian/error.h: Only enable the SWIG visibility hook when
28527           using GCC 4 or later.
28529 Wed Oct 04 20:32:43 BST 2006  Olly Betts <olly@survex.com>
28531         * m4/xapian.m4: Remove overquoting.
28533 Wed Oct  4 13:28:09 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28535         * common/utils.h: MSVC seems to #define open.  However, the
28536           workaround for this problem implemented for old versions of
28537           solaris doesn't work for windows, so avoid applying the fix for
28538           windows, and just #undef open.  (Windows seems to define some
28539           open() functions, as well as #defining open!)
28541 Wed Oct  4 13:26:18 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28543         * net/serialise.cc: Use "unsigned char" instead of "char" when
28544           serialising lengths, to avoid problems on platforms where char is
28545           signed (eg, windows).
28547 Wed Oct 04 12:25:51 BST 2006  Olly Betts <olly@survex.com>
28549         * backends/flint/flint_version.cc: Remove "100" from start of file so
28550           it actually compiles.
28552 Mon Oct 02 13:57:56 BST 2006  Olly Betts <olly@survex.com>
28554         * xapian-config.in: Fix typo - "@libdir" should be "@libdir@".
28555           This would lead to -L/usr/lib not being pruned, which is really
28556           just a cosmetic problem (the typo was introduced in 0.9.3).
28558 Thu Sep 28 02:00:05 BST 2006  Olly Betts <olly@survex.com>
28560         * matcher/multimatch.cc: Reserve the right number of entries in the
28561           subrsets vector.
28563 Fri Sep 22 07:48:32 BST 2006  Olly Betts <olly@survex.com>
28565         * common/serialise-double.cc: Fix warning with aCC.
28567 Fri Sep 22 04:43:06 BST 2006  Olly Betts <olly@survex.com>
28569         * HACKING: Expand note on _GLIBCXX_DEBUG;  Now using autoconf 2.60 for
28570           snapshots and releases;  Now using a libtool patch which improves
28571           support for -library=stlport4 with Sun's C++;  Give URL to Alexandre
28572           Duret-Lutz's autotools tutorial, which is much more up-to-date than
28573           the "goat book".
28575 Fri Sep 22 04:42:08 BST 2006  Olly Betts <olly@survex.com>
28577         * common/serialise-double.cc: Fix a few compiler warnings.
28579 Fri Sep 22 04:29:18 BST 2006  Olly Betts <olly@survex.com>
28581         * backends/flint/flint_lock.cc: Retry on EINTR from fcntl or waitpid.
28583 Fri Sep 22 03:39:12 BST 2006  Olly Betts <olly@survex.com>
28585         * include/xapian/version_h.cc: Only check _GLIBCXX_DEBUG for GCC 3.4
28586           and later (which are the versions which support it).
28588 Fri Sep 22 03:37:02 BST 2006  Olly Betts <olly@survex.com>
28590         * bin/xapian-tcpsrv.cc: Report errno if we catch a Xapian::Error which
28591           has it set.
28593 Fri Sep 22 03:30:25 BST 2006  Olly Betts <olly@survex.com>
28595         * configure.ac: Turn on -Wportability to help ensure our Makefile.am's
28596           are written in a portable way.
28598 Fri Sep 22 03:29:25 BST 2006  Olly Betts <olly@survex.com>
28600         * tests/runtest.in: Turn on GLIBCXX_FORCE_NEW when running tests under
28601           valgrind.
28603 Tue Sep 19 06:28:47 BST 2006  Olly Betts <olly@survex.com>
28605         * tests/internaltest.cc: Check that the the destructor on a temporary
28606           object gets called at the correct time (Sun C++ deliberately gets
28607           this wrong by default).
28609 Tue Sep 19 04:32:04 BST 2006  Olly Betts <olly@survex.com>
28611         * include/xapian/enquire.h: Revert change to Xapian::Weight's copy
28612           constructor because it prevents Omega from compiling.
28614 Tue Sep 19 04:01:14 BST 2006  Olly Betts <olly@survex.com>
28616         * configure.ac: Make the argument of log() a double to avoid
28617           potential compiler warnings.
28619 Mon Sep 18 22:58:19 BST 2006  Olly Betts <olly@survex.com>
28621         * include/xapian/enquire.h: Xapian::Weight's copy constructor should
28622           be private not protected (direct copying isn't allowed).
28624 Mon Sep 18 07:03:51 BST 2006  Olly Betts <olly@survex.com>
28626         * configure.ac: We reportedly need "-lm" to get maths functions on
28627           some versions of Sun's C++ compiler.
28629 Sat Sep 16 12:08:25 BST 2006  Olly Betts <olly@survex.com>
28631         * configure.ac: Sun's C++ compiler implements non-standards-conforming
28632           lifetimes for temporary objects (for "backwards compatibility" with
28633           old Sun C++ specific code).  We don't care about such code, so
28634           always pass "-features=tmplife" for Sun C++.
28636 Sat Sep 16 03:04:57 BST 2006  Olly Betts <olly@survex.com>
28638         * bin/xapian-progsrv.cc: Oops, fix compilation error.
28640 Sat Sep 16 02:13:22 BST 2006  Olly Betts <olly@survex.com>
28642         * bin/xapian-progsrv.cc: Fix messages send by xapian-progsrv if an
28643           exception is thrown while opening the database.
28645 Fri Sep 15 06:29:55 BST 2006  Olly Betts <olly@survex.com>
28647         * tests/internaltest.cc: 1/DBL_MAX may be less than DBL_MIN but on
28648           platforms like x86 which hold results in registers with extra
28649           precision, this is still representable, but not reliably so
28650           the test sometimes fails.
28652 Fri Sep 15 02:40:52 BST 2006  Olly Betts <olly@survex.com>
28654         * backends/flint/flint_btreebase.cc: Avoid copying beyond the end of
28655           the bitmap block.
28657 Thu Sep 14 02:01:58 BST 2006  Olly Betts <olly@survex.com>
28659         * backends/flint/flint_version.cc: Fix warning from GCC 4.1.0.
28661 Wed Sep 13 18:12:43 BST 2006  Olly Betts <olly@survex.com>
28663         * backends/flint/flint_io.cc,backends/flint/flint_io.h,
28664           backends/flint/flint_version.cc: Fix compiler warnings.
28666 Wed Sep 13 06:09:40 BST 2006  Olly Betts <olly@survex.com>
28668         * backends/flint/flint_version.cc,backends/flint/flint_version.h:
28669           Actually commit the new files!
28671 Wed Sep 13 05:21:04 BST 2006  Olly Betts <olly@survex.com>
28673         * backends/flint/,common/utils.h: Rewrite some of flint's low level IO
28674           functions, and the "iamflint" handling class.
28676 Tue Sep 12 20:22:57 BST 2006  Olly Betts <olly@survex.com>
28678         * backends/remote/remote-database.cc: Fix to compile.
28680 Tue Sep 12 18:56:16 BST 2006  Olly Betts <olly@survex.com>
28682         * backends/remote/remote-database.cc,common/remote-database.h:
28683           Fix bug in remote backend which incorrectly returned an empty MSet
28684           under certain circumstances!
28686 Tue Sep 12 11:51:31 BST 2006  Olly Betts <olly@survex.com>
28688         * matcher/msetcmp.cc: "static inline" -> "inline" since the static is
28689           superfluous and Sun's C++ warns.
28691 Mon Sep 11 23:42:28 BST 2006  Olly Betts <olly@survex.com>
28693         * configure.ac: Check $CXX not $CC to identify which C++ compiler we
28694           have.
28696 Mon Sep 11 16:32:37 BST 2006  Olly Betts <olly@survex.com>
28698         * api/omenquire.cc,api/vectortermlist.h,
28699           backends/flint/flint_positionlist.cc,configure.ac,
28700           net/remoteconnection.cc,net/tcpclient.cc,
28701           queryparser/queryparser.lemony,tests/api_anydb.cc,tests/api_db.cc,
28702           tests/api_nodb.cc: I've discovered that -library=stlport4 puts
28703           Sun's compiler into an "ANSI C++ compliant" mode, so do that
28704           automatically in configure and throw away all the annoying special
28705           bits of alternative code we'd accumulated just for this one
28706           compiler.
28708 Mon Sep 11 16:01:20 BST 2006  Olly Betts <olly@survex.com>
28710         * tests/api_wrdb.cc: Speed up deldoc4 when run in verbose mode
28711           - some stringstream implementations are very inefficient when
28712           the string grows long.
28714 Mon Sep 11 05:30:29 BST 2006  Olly Betts <olly@survex.com>
28716         * HACKING: Add some advice regarding debugging using -D_GLIBCXX_DEBUG,
28717           valgrind, and gdb.
28719 Sun Sep 10 02:24:47 BST 2006  Olly Betts <olly@survex.com>
28721         * configure.ac: Fix last check-in to actually work.
28723 Sat Sep 09 04:19:44 BST 2006  Olly Betts <olly@survex.com>
28725         * configure.ac: Ensure that if _GLIBCXX_DEBUG has been specified that
28726           it also passed when generating version.h.
28728 Sat Sep 09 04:01:40 BST 2006  Olly Betts <olly@survex.com>
28730         * tests/internaltest.cc: Give more useful output should the double
28731           serialisation test fail.
28733 Sat Sep 09 03:19:20 BST 2006  Olly Betts <olly@survex.com>
28735         * include/xapian/version_h.cc: Add a check that _GLIBCXX_DEBUG is
28736           set compatibly if we're compiling with GNU C++.
28738 Sat Sep 09 02:55:38 BST 2006  Olly Betts <olly@survex.com>
28740         * backends/flint/flint_modifiedpostlist.cc: Fix potential access to
28741           iterator which has already reached its end.
28743 Fri Sep 08 04:05:28 BST 2006  Olly Betts <olly@survex.com>
28745         * backends/remote/remote-database.cc,common/,matcher/bm25weight.cc,
28746           matcher/tradweight.cc,net/,tests/internaltest.cc: Split the double
28747           serialisation code off into its own file - it is used by BM25Weight
28748           and TradWeight, so it needs to be compiled in even when the remote
28749           backend is disabled.
28751 Thu Sep 07 00:09:41 BST 2006  Olly Betts <olly@survex.com>
28753         * testsuite/backendmanager.cc: Discard stderr from xapian-tcpsrv
28754           so we don't get "write error" messages appearing in the testsuite
28755           output when we've just closed the connection at the client side.
28757 Tue Sep 05 21:07:40 BST 2006  Olly Betts <olly@survex.com>
28759         * api/omqueryinternal.cc: Fix warning when remote backend
28760           is disabled.
28762 Tue Sep 05 20:58:52 BST 2006  Olly Betts <olly@survex.com>
28764         * docs/Makefile.am: Add extra dependencies so that parallel make
28765           doesn't try to run latex twice simultaneously.
28767 Tue Sep 05 20:58:13 BST 2006  Olly Betts <olly@survex.com>
28769         * AUTHORS: Updated.
28771 Tue Sep 05 20:56:50 BST 2006  Olly Betts <olly@survex.com>
28773         * Makefile.am: Fix typo.
28775 Tue Sep 05 03:23:14 BST 2006  Olly Betts <olly@survex.com>
28777         * docs/queryparser.html,queryparser/queryparser.lemony,
28778           tests/queryparsertest.cc: Implement "ADJ" operator - like
28779           "NEAR" except the terms must appear in matching documents in the
28780           same order as in the query.
28782 Tue Sep 05 03:19:12 BST 2006  Olly Betts <olly@survex.com>
28784         * backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
28785           matcher/bm25weight.cc,matcher/tradweight.cc,net/remoteserver.cc,
28786           net/serialise.cc,tests/internaltest.cc: Change how doubles are
28787           serialised by TradWeight, BM25Weight, and in the remote backend
28788           protocol.  The new encoding allows us to transfer any double
28789           value which can be represented by both machines precisely and
28790           compactly.
28792 Tue Sep 05 02:27:36 BST 2006  Olly Betts <olly@survex.com>
28794         * docs/queryparser.html,queryparser/queryparser.lemony,
28795           tests/queryparsertest.cc: Allow a distance to be specified
28796           for NEAR - e.g. "cats NEAR/3 dogs" (bug#92).
28798 Fri Sep 01 00:29:10 BST 2006  Olly Betts <olly@survex.com>
28800         * backends/remote/remote-database.cc,common/remote-database.h:
28801           Fix RemoteDatabase::reopen() to not be const so it actually
28802           overrides the virtual method it is supposed to.
28804 Thu Aug 31 21:40:53 BST 2006  Olly Betts <olly@survex.com>
28806         * testsuite/backendmanager.h: Remove unneeded BackendManager::
28807           qualifications.
28809 Thu Aug 31 17:08:16 BST 2006  Olly Betts <olly@survex.com>
28811         * matcher/msetpostlist.cc,matcher/msetpostlist.h: Move #include
28812           "omenquireinternal.h" into the header to fix compilation error
28813           with older versions of GCC.
28815 Thu Aug 31 16:38:33 BST 2006  Olly Betts <olly@survex.com>
28817         * PLATFORMS: Added success report for Nexenta (alpha 5).
28819 Wed Aug 30 23:41:08 BST 2006  Olly Betts <olly@survex.com>
28821         * configure.ac: Fix generation of version.h to work with Solaris sed.
28823 Sat Aug 26 15:28:22 BST 2006  Olly Betts <olly@survex.com>
28825         * docs/index.html: Add links to the wiki.
28827 Sun Jul 16 03:48:26 BST 2006  Olly Betts <olly@survex.com>
28829         * common/Makefile.am: Ship remoteprotocol.h.
28831 Sun Jul 16 02:23:54 BST 2006  Olly Betts <olly@survex.com>
28833         * common/remote-database.h: Add new file I missed in the previous
28834           commit.
28836 Sun Jul 16 01:58:25 BST 2006  Olly Betts <olly@survex.com>
28838         * Makefile.am,api/,backends/Makefile.am,backends/database.cc,
28839           backends/dbfactory_remote.cc,backends/flint/flint_database.cc,
28840           backends/flint/flint_termlist.cc,backends/flint/flint_termlist.h,
28841           backends/inmemory/inmemory_database.cc,
28842           backends/inmemory/inmemory_database.h,
28843           backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
28844           backends/net/,backends/quartz/quartz_termlist.cc,
28845           backends/quartz/quartz_termlist.h,backends/remote/,bin/Makefile.am,
28846           bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc,common/,configure.ac,
28847           docs/remote_protocol.html,include/xapian/,matcher/,net/,tests/,
28848           testsuite/backendmanager.cc,testsuite/backendmanager.h: Rewrite
28849           most of the remote backend.  It now supports most operations
28850           which a local database does (including writing!), the protocol
28851           used is more compact, and a number of layers of classes have
28852           been eliminated and the sequences of method calls simplified, so the
28853           code should be easier to understand and maintain despite doing more.
28854           A number of bugs have been fixed in the process.
28856 Sat Jul 15 05:10:38 BST 2006  Olly Betts <olly@survex.com>
28858         * tests/api_nodb.cc: Doesn't need <iostream>.
28860 Sat Jul 15 01:06:27 BST 2006  Olly Betts <olly@survex.com>
28862         * README: Add link to the wiki.  Tweak wording.
28864 Fri Jul 14 15:21:39 BST 2006  Olly Betts <olly@survex.com>
28866         * configure.ac: Note in error message that dot is in graphviz.
28868 Fri Jul 14 15:17:36 BST 2006  Olly Betts <olly@survex.com>
28870         * docs/overview.html: Add discussion of uses of terms vs values.
28872 Fri Jul 14 15:01:04 BST 2006  Olly Betts <olly@survex.com>
28874         * docs/overview.html: Rewrite the section on Xapian::Document to
28875           remove some very out-of-date information and make it clearer.
28877 Tue Jul 11 18:41:07 BST 2006  Olly Betts <olly@survex.com>
28879         * queryparser/queryparser.lemony: Fix problem I believe was introduced
28880           by previous fix.
28881         * tests/queryparsertest.cc: Add regression test and some additional
28882           related test cases.
28884 Tue Jul 11 03:32:48 BST 2006  Olly Betts <olly@survex.com>
28886         * queryparser/queryparser.lemony: Fix bug in how we handle prefixed
28887           quoted phrases and prefixed brackets.
28888         * tests/queryparsertest.cc: Add regression tests.
28890 Mon Jul 10 23:17:58 BST 2006  Olly Betts <olly@survex.com>
28892         * include/xapian/database.h: Note that automatically allocated
28893           document IDs don't reuse IDs from deleted document.
28895 Wed Jul 05 01:06:35 BST 2006  Olly Betts <olly@survex.com>
28897         * tests/api_wrdb.cc: Tweak whitespace.
28899 Mon Jun 26 23:56:02 BST 2006  Olly Betts <olly@survex.com>
28901         * PLATFORMS: Added success reports for MSVC and sparc linux.
28903 Sat Jun 17 02:01:35 BST 2006  Olly Betts <olly@survex.com>
28905         * Makefile.am,tests/Makefile.am: Tweak new check-* rules to be more
28906           portable and robust.
28908 Sun Jun 11 23:29:48 BST 2006  Olly Betts <olly@survex.com>
28910         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix parsing
28911           of loved and hated prefixed phrases and bracketted expressions.  Fix
28912           handling of stopwords in boolean expressions.  Don't ignore a
28913           stopword if it's the only query term.  Add regression tests for all
28914           these cases.
28916 Fri Jun 09 15:21:07 BST 2006  Olly Betts <olly@survex.com>
28918         * docs/queryparser.html: Add pointer to set_database when describing
28919           FLAG_WILDCARD.
28921 Fri Jun 09 13:51:03 BST 2006  Olly Betts <olly@survex.com>
28923         * include/xapian/queryparser.h: Add note that FLAG_WILDCARD requires
28924           you to call set_database.
28926 Fri Jun 09 13:49:34 BST 2006  Olly Betts <olly@survex.com>
28928         * api/omqueryinternal.cc: Don't compile query serialisation if the
28929           remote backend is disabled.
28931 Fri Jun 09 01:48:25 BST 2006  Olly Betts <olly@survex.com>
28933         * api/omdocument.cc,tests/api_nodb.cc: add_value failed to replace an
28934           existing value with the same number, contrary to what the
28935           documentation says (bug #82).
28937 Thu Jun 08 21:36:54 BST 2006  Olly Betts <olly@survex.com>
28939         * matcher/multimatch.cc: Don't fetch the document data when fetching
28940           the value to sort on.  Simple benchmarking showed this to speed
28941           up sort by value by a factor of between 3 and 9!
28943 Sun Jun 04 17:36:01 BST 2006  Olly Betts <olly@survex.com>
28945         * backends/flint/: Remove forced flush when iterating the posting list
28946           of a term which has modified posting pending.
28948 Sat Jun 03 21:38:43 BST 2006  Olly Betts <olly@survex.com>
28950         * backends/flint/flint_database.cc,backends/flint/flint_termlist.cc,
28951           backends/quartz/quartz_database.cc,tests/api_wrdb.cc: We can't flush
28952           during a transaction, which means that we can't use flush to avoid
28953           having to handle corner cases (like deleting a document right after
28954           adding it before it's been flushed) so handle corner cases properly
28955           (except for postlist_begin() and allterms_begin() which are
28956           harder - these now throw UnimplementedError at least...)
28957         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
28958           replace_document(did, doc) was double-incrementing the "changes"
28959           counter when document did didn't exist - fixed.
28961 Sat Jun 03 17:53:41 BST 2006  Olly Betts <olly@survex.com>
28963         * HACKING: Document "make check-flint" and "make check-quartz".
28965 Sat Jun 03 17:49:25 BST 2006  Olly Betts <olly@survex.com>
28967         * Makefile.am,tests/Makefile.am: Added make targets "check-flint" and
28968           "check-quartz" which run the subset of tests which test the flint
28969           and quartz backends respectively.
28971 Sat Jun 03 04:03:00 BST 2006  Olly Betts <olly@survex.com>
28973         * api/omdatabase.cc,backends/database.cc,
28974           backends/flint/flint_database.cc,backends/flint/flint_database.h,
28975           backends/inmemory/inmemory_database.cc,
28976           backends/inmemory/inmemory_database.h,backends/quartz/dir_contents,
28977           backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
28978           common/database.h,include/xapian/database.h,tests/apitest.cc:
28979           Rework transactions to support "unflushed" transactions, and so
28980           they work with quartz as well as with flint.
28982 Sat Jun 03 03:18:22 BST 2006  Olly Betts <olly@survex.com>
28984         * HACKING: Document "make check-remote".
28986 Sat Jun 03 00:23:46 BST 2006  Olly Betts <olly@survex.com>
28988         * backends/database.cc,backends/flint/dir_contents,
28989           backends/flint/flint_database.cc,backends/flint/flint_database.h,
28990           backends/quartz/dir_contents,common/database.h,
28991           include/xapian/database.h,tests/: Implement transactions for
28992           flint.
28994 Sat Jun 03 00:14:37 BST 2006  Olly Betts <olly@survex.com>
28996         * tests/apitest.cc: Run tests on flint if flint is enabled, rather
28997           than if quartz is enabled.
28999 Sun May 28 23:01:45 BST 2006  Olly Betts <olly@survex.com>
29001         * common/omtime.h: Add operator+ and operator+= with argument of
29002           type Xapian::timeout.
29004 Sun May 28 22:02:30 BST 2006  Olly Betts <olly@survex.com>
29006         * include/xapian/errorhandler.h: Fix typos in private assignment
29007           operator and copy ctor (Error -> ErrorHandler!)
29009 Sun May 28 21:54:05 BST 2006  Olly Betts <olly@survex.com>
29011         * Makefile.am,tests/Makefile.am: Add "check-remote" target which runs
29012           the subset of tests which test the remote backend.
29014 Thu May 25 16:06:06 BST 2006  Olly Betts <olly@survex.com>
29016         * api/omdatabase.cc,backends/database.cc,common/database.h:
29017           Merge Xapian::Internal::open_database() into the Xapian::Database
29018           ctor which calls it; merge Xapian::Internal::open_writable_database()
29019           into the Xapian::WritableDatabase ctor which calls it.
29021 Wed May 24 08:28:40 BST 2006  Olly Betts <olly@survex.com>
29023         * net/socketserver.cc: OmLineBuf -> OmSocketLineBuf.
29025 Wed May 24 08:27:22 BST 2006  Olly Betts <olly@survex.com>
29027         * common/socketserver.h: OmLineBuf -> OmSocketLineBuf.
29029 Wed May 24 07:50:51 BST 2006  Olly Betts <olly@survex.com>
29031         * common/Makefile.am,common/omlinebuf.h,common/socketcommon.h,
29032           net/Makefile.am,net/omlinebuf.cc,net/socketcommon.cc:
29033           Merge OmLineBuf into OmSocketLineBuf.
29034         * common/Makefile.am: Fix netutils.cc to be conditionally included
29035           when the remote backend is enabled, not the quartz backend!
29037 Tue May 23 18:59:09 BST 2006  Olly Betts <olly@survex.com>
29039         * api/Makefile.am,api/errorhandler.cc,api/omerror.cc,
29040           include/xapian/error.h,include/xapian/errorhandler.h:
29041           Redo the Xapian::Error and Xapian::ErrorHandler classes.
29042           The new versions have better, clearer documentation comments
29043           and are cleaner internally.
29044         * include/xapian/error.h: Add hook to allow SWIG bindings to
29045           be built using GCC's visibility support.
29047 Tue May 23 10:08:02 BST 2006  Olly Betts <olly@survex.com>
29049         * backends/quartz/btree.cc: Remove superfluous '#include <autoptr.h>'.
29051 Tue May 23 09:42:52 BST 2006  Olly Betts <olly@survex.com>
29053         * backends/Makefile.am,backends/database.cc,
29054           backends/dbfactory_remote.cc,backends/net/net_database.cc,
29055           backends/net/net_termlist.cc,backends/net/net_termlist.h,common/,
29056           include/xapian/dbfactory.h,matcher/,net/socketclient.cc,
29057           net/socketcommon.cc: Eliminate the NetClient class by merging
29058           it into NetDatabase.
29060 Mon May 22 08:51:16 BST 2006  Olly Betts <olly@survex.com>
29062         * common/omtime.h: Fix OmTime::operator> which failed to return false
29063           if the seconds were strictly less but the microsecond fraction was
29064           more.
29066 Sun May 21 11:53:29 BST 2006  Olly Betts <olly@survex.com>
29068         * Makefile.am,bin/Makefile.am,docs/Makefile.am,examples/Makefile.am:
29069           Make use of the dist_ prefix to avoid having to list files in
29070           EXTRA_DIST as well as in *_DATA and man_MANS.
29072 Sun May 21 05:55:00 BST 2006  Olly Betts <olly@survex.com>
29074         * api/dir_contents,getopt/dir_contents,queryparser/dir_contents:
29075           Add missing dir_contents files.
29077 Sun May 21 05:45:44 BST 2006  Olly Betts <olly@survex.com>
29079         * tests/remotetest.cc: Remove unnecessary "#include <sys/wait.h>".
29081 Sat May 20 11:02:43 BST 2006  Olly Betts <olly@survex.com>
29083         * docs/Makefile.am: doxygen_api_conf and doxygen_full_conf are
29084           generated, so aren't in srcdir!
29086 Sat May 20 10:14:52 BST 2006  Olly Betts <olly@survex.com>
29088         * docs/Makefile.am: automake adds suitable rules for rebuilding
29089           doxygen_api_conf and doxygen_source_conf, so remove our less
29090           accurate versions.
29092 Fri May 19 14:43:47 BST 2006  Olly Betts <olly@survex.com>
29094         * docs/Makefile.am,docs/doxygen_api_conf.in,docs/doxygen_full_conf.in:
29095           Remove "XAPIAN_DEPRECATED" from generated documentation.
29096         * docs/Makefile.am: Fix dependencies for regenerating the doxygen
29097           documentation.
29099 Fri May 19 08:12:51 BST 2006  Olly Betts <olly@survex.com>
29101         * docs/scalability.html: quartzcompact and xapian-compact now allow
29102           you to set the blocksize, so there's no need to use copydatabase
29103           if you want to migrate a database to a larger blocksize.  Mention
29104           gmane.  Other minor tweaks.
29106 Fri May 19 07:52:23 BST 2006  Olly Betts <olly@survex.com>
29108         * bin/quartzcompact.cc: Add --blocksize option to allow the blocksize
29109           to be set (default is 8K as before.)
29111 Fri May 19 07:47:13 BST 2006  Olly Betts <olly@survex.com>
29113         * bin/xapian-compact.cc: Add --blocksize option to allow the blocksize
29114           to be set (default is 8K as before.)
29116 Thu May 18 11:24:17 BST 2006  Olly Betts <olly@survex.com>
29118         * api/vectortermlist.h: Whitespace tweak.
29120 Tue May 16 10:09:53 BST 2006  Olly Betts <olly@survex.com>
29122         * HACKING: Update details of the debian stable backport version
29123           numbering scheme.
29125 Tue May 16 06:55:14 BST 2006  Olly Betts <olly@survex.com>
29127         * configure.ac: Remove unused variable from snprintf testing code.
29129 Tue May 16 04:32:34 BST 2006  Olly Betts <olly@survex.com>
29131         * HACKING: Expand on the debian package building checklist.
29133 Tue May 16 04:32:07 BST 2006  Olly Betts <olly@survex.com>
29135         * include/xapian/enquire.h: Note that "set_sort_by_relevance" is the
29136           default setting.
29138 Mon May 15 06:59:01 BST 2006  Olly Betts <olly@survex.com>
29140         * HACKING: Update debian package building checklist.
29142 Mon May 15 03:53:53 BST 2006  Olly Betts <olly@survex.com>
29144         * PLATFORMS: Update one more result before the actual release.
29146 Mon May 15 02:15:18 BST 2006  Olly Betts <olly@survex.com>
29148         * NEWS,configure.ac: Updated for 0.9.6.
29150 Mon May 15 01:35:33 BST 2006  Olly Betts <olly@survex.com>
29152         * PLATFORMS: Updated in preparation for the next release.
29154 Sun May 14 19:05:37 BST 2006  Olly Betts <olly@survex.com>
29156         * backends/flint/flint_lock.h: Added workaround for newlib header bug.
29158 Sat May 13 07:04:14 BST 2006  Olly Betts <olly@survex.com>
29160         * configure.ac: Fix snprintf tests.
29162 Sat May 13 04:52:53 BST 2006  Olly Betts <olly@survex.com>
29164         * configure.ac: Tweak version.h generation to cope with CXXCPP putting
29165           carriage returns into its output as can happen on cygwin.
29167 Fri May 12 21:49:33 BST 2006  Olly Betts <olly@survex.com>
29169         * HACKING: Update with the libtool patches we're now using.
29171 Fri May 12 21:43:02 BST 2006  Olly Betts <olly@survex.com>
29173         * include/xapian/version_h.cc: Trim trailing whitespace.
29175 Fri May 12 20:43:47 BST 2006  Olly Betts <olly@survex.com>
29177         * configure.ac,include/xapian/version_h.cc: Replace @@ with " instead
29178           of @, so we can write @deprecated.  Fix more compilation problems.
29180 Fri May 12 19:00:08 BST 2006  Olly Betts <olly@survex.com>
29182         * include/xapian/version_h.cc: Fix compilation problem.
29184 Fri May 12 01:19:14 BST 2006  Olly Betts <olly@survex.com>
29186         * api/version.cc,include/xapian/version_h.cc: Rename
29187           Xapian::xapian_version_string() and companions to
29188           Xapian::version_string().  Keep the old functions as aliases
29189           which are marked as deprecated.
29191 Wed May 10 18:25:59 BST 2006  Olly Betts <olly@survex.com>
29193         * include/xapian/enquire.h: Remove bogus documentation for a
29194           parameter which doesn't exist.
29196 Tue May 09 19:17:23 BST 2006  Olly Betts <olly@survex.com>
29198         * bin/Makefile.am: Remove trailing whitespace.
29199         * bin/xapian-compact.cc: Fix renaming of "iamflint.tmp" for MS Windows
29200           where you can't rename an open file.
29202 Tue May 09 15:57:26 BST 2006  Olly Betts <olly@survex.com>
29204         * configure.ac: Fix reversed conditional in test for snprintf (which
29205           affects cygwin).
29207 Mon May 01 21:49:46 BST 2006  Olly Betts <olly@survex.com>
29209         * tests/queryparsertest.cc: Add another prefix testcase to improve
29210           coverage.
29212 Sat Apr 29 20:16:46 BST 2006  Olly Betts <olly@survex.com>
29214         * docs/remote_protocol.html: Document keep-alive messages.
29216 Thu Apr 13 14:49:48 BST 2006  Olly Betts <olly@survex.com>
29218         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Add rules
29219           to handle a boolean filter with a "+" in front (such as
29220           +site:xapian.org).
29222 Wed Apr 12 18:42:31 BST 2006  Olly Betts <olly@survex.com>
29224         * PLATFORMS: More updates for 0.9.5.
29226 Tue Apr 11 19:56:16 BST 2006  Olly Betts <olly@survex.com>
29228         * matcher/Makefile.am: Need to add "-I${top_builddir}/include" to
29229           INCLUDES so that xapian/version.h is found.
29231 Tue Apr 11 19:24:59 BST 2006  Olly Betts <olly@survex.com>
29233         * backends/database.cc,configure.ac,include/xapian/version_h.cc,
29234           matcher/multimatch.cc,matcher/stats.cc,tests/apitest.cc,
29235           testsuite/backendmanager.cc,testsuite/backendmanager.h:
29236           Eliminate XAPIAN_BUILD_BACKEND_* from config.h and just use
29237           XAPIAN_HAS_*_BACKEND from xapian/version.h instead.
29239 Tue Apr 11 18:32:52 BST 2006  Olly Betts <olly@survex.com>
29241         * include/Makefile.am: Add xapian/version.h.timestamp as a dependency
29242           on all-local so that xapian/version.h actually gets regenerated
29243           when required.
29245 Tue Apr 11 17:52:24 BST 2006  Olly Betts <olly@survex.com>
29247         * api/omenquire.cc,backends/flint/flint_btreebase.cc,
29248           backends/quartz/btree_base.cc,common/utils.h,configure.ac:
29249           Disable MSVC warning 4800 (on int to bool conversions) in config.h
29250           and then we can remove the "fixes" elsewhere.
29252 Tue Apr 11 16:28:01 BST 2006  Olly Betts <olly@survex.com>
29254         * configure.ac: Simpler check for VALGRIND being set to empty value.
29256 Tue Apr 11 01:04:32 BST 2006  Olly Betts <olly@survex.com>
29258         * PLATFORMS: Add a summary.
29260 Tue Apr 11 00:45:55 BST 2006  Olly Betts <olly@survex.com>
29262         * PLATFORMS: Updates from boxes which were down when I did the
29263           release.
29265 Mon Apr 10 17:06:46 BST 2006  Olly Betts <olly@survex.com>
29267         * api/omenquire.cc,backends/flint/flint_btreebase.cc,
29268           backends/flint/flint_utils.h,backends/quartz/btree_base.cc,
29269           backends/quartz/quartz_utils.h,common/omassert.h:
29270           Fix more MSVC7 warnings (I spoke too soon).
29272 Mon Apr 10 15:56:52 BST 2006  Olly Betts <olly@survex.com>
29274         * include/xapian/query.h: Another MSVC7 warning fix.  Should be free
29275           of warnings now.
29277 Mon Apr 10 14:46:34 BST 2006  Olly Betts <olly@survex.com>
29279         * backends/flint/flint_database.cc,backends/flint/flint_utils.h,
29280           backends/quartz/quartz_utils.h,bin/quartzcompact.cc,
29281           bin/xapian-compact.cc,common/omdebug.h,common/utils.h,
29282           include/xapian/query.h,languages/header.h,matcher/multimatch.cc:
29283           Fix assorted MSVC7 warnings.
29285 Sun Apr 09 04:56:09 BST 2006  Olly Betts <olly@survex.com>
29287         * HACKING: Expand on details of what's required when changing Xapian
29288           (discuss documentation requirements, expand on why feature tests
29289           are vital).
29290         * HACKING: Update section on building debian packages.
29292 Sat Apr 08 20:02:19 BST 2006  Olly Betts <olly@survex.com>
29294         * NEWS,PLATFORMS,configure.ac: Updated for 0.9.5.
29296 Fri Apr 07 23:53:08 BST 2006  Olly Betts <olly@survex.com>
29298         * tests/api_anydb.cc,tests/api_db.cc,tests/btreetest.cc: Correct
29299           spelling of "existant" to "existent".
29301 Fri Apr 07 19:13:24 BST 2006  Olly Betts <olly@survex.com>
29303         * configure.ac: We don't use strcasecmp, so don't probe for it.
29305 Fri Apr 07 18:30:40 BST 2006  Olly Betts <olly@survex.com>
29307         * common/utils.h: Fixes for MSVC7 compilation.
29309 Fri Apr 07 17:19:43 BST 2006  Olly Betts <olly@survex.com>
29311         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Fixes for
29312           MSVC compilation.
29314 Fri Apr 07 16:04:08 BST 2006  Olly Betts <olly@survex.com>
29316         * backends/flint/flint_cursor.h: Fix incorrect example code in
29317           documentation comment.
29318         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
29319           Remove unused method FlintTable::find_key().
29321 Fri Apr 07 16:02:40 BST 2006  Olly Betts <olly@survex.com>
29323         * AUTHORS: Updated.
29325 Fri Apr 07 15:58:31 BST 2006  Olly Betts <olly@survex.com>
29327         * debian/control.in: copydatabase and xapian-compact are packaged
29328           in xapian-tools, so add them to the documented list of tools
29329           included.
29331 Fri Apr 07 15:12:43 BST 2006  Olly Betts <olly@survex.com>
29333         * net/tcpserver.cc: Set xapian-tcpsrv to allow 5 connections in the
29334           listen queue instead of just one.
29336 Fri Apr 07 13:28:15 BST 2006  Olly Betts <olly@survex.com>
29338         * tests/remotetest.cc: Check mset size in tcpmatch1.
29340 Fri Apr 07 01:26:03 BST 2006  Olly Betts <olly@survex.com>
29342         * xapian.spec.in: Man pages may be gzipped.
29344 Thu Apr 06 14:41:29 BST 2006  Olly Betts <olly@survex.com>
29346         * HACKING: aclocal is part of automake, not autoconf.
29348 Thu Apr 06 01:29:21 BST 2006  Olly Betts <olly@survex.com>
29350         * bin/,examples/copydatabase.cc,examples/delve.cc,examples/quest.cc:
29351           In the "--help" output, add "Options:" before the list of options.
29353 Thu Apr 06 01:11:31 BST 2006  Olly Betts <olly@survex.com>
29355         * xapian-config.in: Tweak to improve help2man output.
29357 Wed Apr 05 16:26:15 BST 2006  Fabrice Colin
29359         * xapian.spec.in: Package man pages.
29361 Wed Apr 05 16:23:49 BST 2006  Olly Betts <olly@survex.com>
29363         * Makefile.am,bin/Makefile.am,examples/Makefile.am: Include generated
29364           man pages in the distribution tarball.
29366 Wed Apr 05 02:48:27 BST 2006  Olly Betts <olly@survex.com>
29368         * debian/TODO: Updated.
29370 Wed Apr 05 02:44:15 BST 2006  Olly Betts <olly@survex.com>
29372         * ./,examples: svn:ignore man pages.
29374 Wed Apr 05 02:43:08 BST 2006  Olly Betts <olly@survex.com>
29376         * bin/Makefile.am,examples/Makefile.am: No need to make man pages
29377           depend on config.h, since the binaries will already.
29379 Wed Apr 05 02:42:42 BST 2006  Olly Betts <olly@survex.com>
29381         * Makefile.am: Generate man page for xapian-config.
29383 Wed Apr 05 00:59:53 BST 2006  Olly Betts <olly@survex.com>
29385         * examples/Makefile.am: Use help2man to generate manpages for the
29386           installed binaries in examples.
29388 Wed Apr 05 00:56:11 BST 2006  Olly Betts <olly@survex.com>
29390         * bin/omtcpsrv.cc: Rename to bin/xapian-tcpsrv.cc.
29391         * bin/omprogsrv.cc: Rename to bin/xapian-progsrv.cc.
29392         * HACKING,bin/Makefile.am,configure.ac: Use help2man to generate
29393           manpages for the installed binaries in bin.
29395 Tue Apr 04 16:44:54 BST 2006  Olly Betts <olly@survex.com>
29397         * include/xapian/enquire.h: Note example of BM25Weight parameters
29398           which make set_sort_by_relevance_then_value useful.
29400 Tue Apr 04 16:35:58 BST 2006  Olly Betts <olly@survex.com>
29402         * api/omenquire.cc,include/xapian/enquire.h,matcher/,tests/api_db.cc:
29403           Implement Enquire::set_sort_by_relevance_then_value().
29405 Tue Apr 04 01:05:41 BST 2006  Olly Betts <olly@survex.com>
29407         * common/omenquireinternal.h: sort_key no longer needs to be mutable
29408           now that MSetSortCmp has been removed.
29410 Mon Apr 03 02:03:12 BST 2006  Olly Betts <olly@survex.com>
29412         * matcher/multimatch.cc: Removed dead code (class MSetSortCmp).
29414 Sun Apr 02 16:37:38 BST 2006  Olly Betts <olly@survex.com>
29416         * net/tcpserver.cc: Don't perform a name lookup on the IP address
29417           which an incoming connection is from as that could easily slow
29418           down the search response - instead just print the IP address itself
29419           if output is verbose.
29421 Sun Apr 02 13:28:31 BST 2006  Olly Betts <olly@survex.com>
29423         * api/omenquire.cc,common/,docs/remote_protocol.html,
29424           matcher/multimatch.cc,matcher/networkmatch.cc,matcher/networkmatch.h,
29425           net/socketclient.cc,net/socketserver.cc: Change bool
29426           sort_by_relevance to enum sort_by in preparation for adding
29427           "sort_by_relevance_then_value".
29429 Fri Mar 31 22:32:16 BST 2006  Olly Betts <olly@survex.com>
29431         * examples/copydatabase.cc,examples/quest.cc: Add --help and --version
29432           options.
29433         * examples/delve.cc: Tidy up output from --help and --version options.
29435 Fri Mar 31 19:01:25 BST 2006  Olly Betts <olly@survex.com>
29437         * bin/quartzcheck.cc: Fix SEGV when run with no arguments (introduced
29438           by last change).
29440 Fri Mar 31 17:57:27 BST 2006  Olly Betts <olly@survex.com>
29442         * bin/quartzcheck.cc: Add --version option.  Tidy up output from
29443           --help.
29445 Fri Mar 31 17:43:25 BST 2006  Olly Betts <olly@survex.com>
29447         * bin/quartzcompact.cc: Include --help and --version in --help output.
29448         * bin/quartzdump.cc: Add --help and --version options.  Terminate list
29449           of long options so that "quartzdump --foo" no longer segfaults.
29451 Fri Mar 31 17:27:09 BST 2006  Olly Betts <olly@survex.com>
29453         * bin/quartzcompact.cc: Tweak --help and --version output for
29454           consistency with other binaries.  Terminate list of long options so
29455           that "quartzcompact --foo" no longer segfaults.
29457 Fri Mar 31 16:47:02 BST 2006  Olly Betts <olly@survex.com>
29459         * bin/omtcpsrv.cc: Make OPT_HELP and OPT_VERSION positive numbers.
29460           Only give synopsis line for --help, not for syntax error.
29461         * bin/xapian-compact.cc: List --help and --version in --help output.
29462           Terminate list of long options so that "xapian-compact --foo" no
29463           longer segfaults.
29465 Fri Mar 31 16:20:24 BST 2006  Olly Betts <olly@survex.com>
29467         * bin/omtcpsrv.cc: Added --help and --version options.
29469 Thu Mar 30 11:51:21 BST 2006  Philip Neustrom
29471         * docs/remote_protocol.html: Document messages for requesting and
29472           sending a termlist and a document.
29474 Wed Mar 29 19:39:05 BST 2006  Olly Betts <olly@survex.com>
29476         * backends/flint/flint_termlist.cc,backends/quartz/quartz_termlist.cc:
29477           Add missing spaces in debug output.
29479 Fri Mar 17 09:22:54 GMT 2006  Olly Betts <olly@survex.com>
29481         * api/vectortermlist.h,backends/net/net_termlist.cc,
29482           backends/net/net_termlist.h,common/alltermslist.h,common/termlist.h,
29483           matcher/branchtermlist.h: Make TermList::positionlist_begin() pure
29484           virtual and put dummy implementations in BranchTermList and other
29485           subclasses which can't (or don't) implement it.  This makes it
29486           hard to accidentally fail to implement it in a backend's TermList
29487           subclass.
29488         * backends/net/net_termlist.h: positionlist_begin() now throws
29489           UnimplementedError instead of InvalidOperationError.
29491 Fri Mar 17 08:46:52 GMT 2006  Olly Betts <olly@survex.com>
29493         * api/omdatabase.cc: There's no need for the MultiTermList wrapper in
29494           the common case where we're only dealing with a single database.
29496 Fri Mar 17 07:54:54 GMT 2006  Olly Betts <olly@survex.com>
29498         * backends/net/net_termlist.h: Remove unused "positions" member.
29500 Fri Mar 17 07:07:57 GMT 2006  Olly Betts <olly@survex.com>
29502         * backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
29503           tests/api_posdb.cc: Fix TermIterator::positionlist_begin() to work
29504           on TermIterator from Database::termlist_begin().
29506 Fri Mar 17 03:47:04 GMT 2006  Olly Betts <olly@survex.com>
29508         * include/xapian/enquire.h: Fix "unused parameter" warning from
29509           previous change.
29511 Thu Mar 16 05:20:16 GMT 2006  Olly Betts <olly@survex.com>
29513         * api/omenquire.cc,include/xapian/enquire.h:  Move
29514           Enquire::get_matching_terms_end() inline in header.
29516 Thu Mar 16 04:28:20 GMT 2006  Olly Betts <olly@survex.com>
29518         * api/omdocument.cc,configure.ac,include/xapian/document.h: Move
29519           Document::termlist_end() inline in header.
29521 Fri Mar 10 04:55:57 GMT 2006  Olly Betts <olly@survex.com>
29523         * INSTALL: Improve wording.
29525 Fri Mar 10 04:49:09 GMT 2006  Olly Betts <olly@survex.com>
29527         * backends/quartz/bcursor.h: Fix incorrect method name in
29528           documentation comment.
29530 Fri Mar 10 04:39:45 GMT 2006  Olly Betts <olly@survex.com>
29532         * backends/quartz/btree.cc,backends/quartz/btree.h: Btree::find_key()
29533           is unused so remove it.
29535 Fri Mar 10 04:29:46 GMT 2006  Olly Betts <olly@survex.com>
29537         * HACKING: Note that we now use a lightly patched version of libtool
29538           1.5.22.
29540 Fri Mar 10 02:55:48 GMT 2006  Olly Betts <olly@survex.com>
29542         * docs/overview.html: Bring up to date.
29544 Wed Mar 08 02:32:49 GMT 2006  Olly Betts <olly@survex.com>
29546         * queryparser/queryparser.lemony: Fix FLAG_BOOLEAN_ANY_CASE to really
29547           allow any case combination - previously it only allowed all
29548           uppercase or all lowercase.
29549         * tests/queryparsertest.cc: Add feature and regression tests for
29550           FLAG_BOOLEAN_ANY_CASE.
29551         * tests/queryparsertest.cc: Rename test cases to more descriptive
29552           names.
29554 Tue Mar 07 19:59:54 GMT 2006  Olly Betts <olly@survex.com>
29556         * queryparser/queryparser.lemony,tests/queryparsertest.cc:
29557           Fix QueryParser's handling of terms with trailing "#", "+",
29558           or "-" when set_database has been called and the term doesn't
29559           exist in the database with the suffix.
29561 Tue Feb 21 21:14:22 GMT 2006  Olly Betts <olly@survex.com>
29563         * include/xapian/deprecated.h: Allow xapian-bindings to override
29564           deprecation warnings.
29566 Tue Feb 21 17:55:17 GMT 2006  Olly Betts <olly@survex.com>
29568         * backends/flint/flint_database.cc: Note that "flicklock" should be
29569           "flintlock"!
29571 Tue Feb 21 14:13:08 GMT 2006  Olly Betts <olly@survex.com>
29573         * PLATFORMS: Updated.
29575 Tue Feb 21 14:12:47 GMT 2006  Olly Betts <olly@survex.com>
29577         * HACKING: Update the "how to do a release" list.
29579 Tue Feb 21 00:17:40 GMT 2006  Olly Betts <olly@survex.com>
29581         * NEWS,PLATFORMS,configure.ac: Updated for 0.9.4.
29583 Mon Feb 20 21:15:46 GMT 2006  Olly Betts <olly@survex.com>
29585         * api/omdocument.cc,api/omenquire.cc,api/omquery.cc,include/xapian/,
29586           queryparser/queryparser.cc: GCC 3.2 actually doesn't like
29587           __attribute__((deprecated)) on method definitions, so just
29588           put declarations of deprecated methods in the headers, and
29589           move definitions into the library.
29591 Mon Feb 20 16:04:33 GMT 2006  Olly Betts <olly@survex.com>
29593         * tests/api_anydb.cc,tests/api_db.cc,tests/api_nodb.cc: Update uses
29594           of deprecated methods and functions.
29596 Mon Feb 20 15:47:31 GMT 2006  Olly Betts <olly@survex.com>
29598         * include/xapian/document.h: __attribute__((deprecated)) doesn't
29599           work on method definitions with default parameters on GCC 3.2
29600           so fix header to overload instead.
29602 Mon Feb 20 13:44:14 GMT 2006  Olly Betts <olly@survex.com>
29604         * include/xapian/enquire.h: Add documentation comment for
29605           Enquire::set_sort_by_value_then_relevance().
29607 Sun Feb 19 23:18:09 GMT 2006  Olly Betts <olly@survex.com>
29609         * include/Makefile.am,include/xapian/: Flag deprecated methods such
29610           that the compiler gives a warning, for compilers which support
29611           such a feature.
29613 Sun Feb 19 22:58:55 GMT 2006  Olly Betts <olly@survex.com>
29615         * COPYING: Update second occurrence of old FSF address.
29617 Sun Feb 19 22:46:49 GMT 2006  Olly Betts <olly@survex.com>
29619         * README: Add pointer to HACKING.  Change "CVS access" to "SVN
29620           access".
29622 Sun Feb 19 01:46:00 GMT 2006  Olly Betts <olly@survex.com>
29624         * api/version.cc: Correct typo in name of function xapian_revision().
29626 Thu Feb 16 10:23:59 GMT 2006  Olly Betts <olly@survex.com>
29628         * xapian-config.in: Oops, fix previous fix (I'd pasted the substituted
29629           result from testing the patch...)
29631 Thu Feb 16 10:16:31 GMT 2006  Olly Betts <olly@survex.com>
29633         * PLATFORMS: Updated from tinderbox.
29635 Thu Feb 16 10:15:51 GMT 2006  Olly Betts <olly@survex.com>
29637         * xapian-config.in: Need to set exec_prefix and prefix at top of
29638           script as they're used by various @SUBSTITUTIONS@.
29640 Thu Feb 16 00:09:34 GMT 2006  Olly Betts <olly@survex.com>
29642         * NEWS,PLATFORMS,configure.ac: Updated for 0.9.3.
29644 Wed Feb 15 21:58:23 GMT 2006  Olly Betts <olly@survex.com>
29646         * xapian-config.in: Fix option loop to work on shells other than bash.
29648 Wed Feb 15 21:38:38 GMT 2006  Olly Betts <olly@survex.com>
29650         * include/xapian/database.h: Tweak wording of a documentation comment.
29652 Wed Feb 15 21:34:55 GMT 2006  Olly Betts <olly@survex.com>
29654         * include/xapian/queryparser.h: Fix documentation comments for the
29655           values of QueryParser::feature_flag so doxygen actually pulls out
29656           the documentation for them.  Add documentation for the parameters
29657           of QueryParser::parse_query().
29659 Wed Feb 15 21:26:48 GMT 2006  Olly Betts <olly@survex.com>
29661         * bin/quartzcheck.cc: If the database is too broken to open, emit a
29662           warning message and bump the error count.
29664 Wed Feb 15 21:23:38 GMT 2006  Olly Betts <olly@survex.com>
29666         * docs/queryparser.html: Document right-truncation.
29668 Wed Feb 15 21:08:37 GMT 2006  Olly Betts <olly@survex.com>
29670         * xapian-config.in: Fixed to output usage correctly if no arguments
29671           are specified.
29673 Mon Feb 13 17:43:08 GMT 2006  Olly Betts <olly@survex.com>
29675         * xapian-config.in: Expand dependency_libs recursively.  It's not
29676           *that* hard, and we're just storing up problems for the future
29677           by ignoring the issue.
29679 Mon Feb 13 16:57:36 GMT 2006  Olly Betts <olly@survex.com>
29681         * HACKING: Devlopers also need makeindex installed for documentation
29682           building.  Note that dvips and makeindex are usually packaged with
29683           TeX.
29685 Mon Feb 13 15:16:02 GMT 2006  Olly Betts <olly@survex.com>
29687         * configure.ac,xapian-config.in: Some Linux distros have an
29688           unhelpful policy of not packaging .la files, and on Linux
29689           link_all_deplibs_CXX=no so we don't actually need to link
29690           in the dependency_libs.  So use the value of link_all_deplibs_CXX
29691           from configure to control whether we link against dependency_libs.
29692         * xapian-config.in: Factor out common code into shell functions,
29693           and tidy up --help output.
29694         * xapian-config.in: Re entry "Tue May 11 20:55:56 BST 2004": the (C)
29695           dates I mined from CVS included a BrightStation (C), but the few
29696           fragments of that version which survive are actually from
29697           glib-config (or one of the myriad of *-config scripts which look
29698           very like it), and are just standard Bourne shell idioms anyway.
29700 Mon Feb 13 13:59:02 GMT 2006  Olly Betts <olly@survex.com>
29702         * PLATFORMS: td174 is gone.
29703         * PLATFORMS: Compaq C++ 7.1 seems to have better template support
29704           (but fails to link binaries).
29706 Mon Feb 13 12:22:23 GMT 2006  Olly Betts <olly@survex.com>
29708         * HACKING,testsuite/testsuite.cc: XAPIAN_TESTSUITE_PLAIN_OUTPUT
29709           -> XAPIAN_TESTSUITE_OUTPUT=plain.
29711 Sun Feb 12 18:29:55 GMT 2006  Olly Betts <olly@survex.com>
29713         * backends/database.cc,tests/api_nodb.cc: Trying to open a database
29714           for reading which doesn't exist now fails with DatabaseOpeningError
29715           instead of FeatureUnavailableError.  Added regression test
29716           nosuchdb1.
29718 Thu Feb 09 10:48:10 GMT 2006  Olly Betts <olly@survex.com>
29720         * net/socketserver.cc: Add missing '#include <iostream>'
29721           when TIMING_PATCH is defined.
29723 Wed Feb 08 08:22:09 GMT 2006  Olly Betts <olly@survex.com>
29725         * HACKING: Now use libtool 1.5.22 for generating snapshots and
29726           releases (includes a number of bug-fixes).
29727         * HACKING,docs/doxygen_api_header.html_tmpl,
29728           docs/doxygen_full_header.html_tmpl: Now use doxygen 1.4.6 for
29729           generating snapshots and releases (nicer output).
29730         * docs/doxygen_full_header.html_tmpl: Title "Internal Source
29731           Documentation" rather than "Full source documentation".
29733 Sun Feb 05 06:19:29 GMT 2006  Olly Betts <olly@survex.com>
29735         * queryparser/queryparser.lemony,tests/queryparsertest.cc: The
29736           QueryParser now recognises "AND NOT" as a synonym for "NOT".
29738 Mon Jan 16 18:19:26 GMT 2006  Olly Betts <olly@survex.com>
29740         * backends/quartz/quartz_utils.h: Fix compiler warning.
29742 Mon Jan 16 18:17:27 GMT 2006  Olly Betts <olly@survex.com>
29744         * HACKING,backends/flint/,backends/muscat36/,backends/quartz/,
29745           bin/quartzcompact.cc,bin/xapian-compact.cc,common/Makefile.am,
29746           common/safeerrno.h,net/,tests/btreetest.cc,tests/quartztest.cc,
29747           testsuite/backendmanager.cc,testsuite/testsuite.cc: Sorted out
29748           a cleaner workaround for Compaq C++'s <errno.h> oddity.
29750 Mon Jan 16 17:18:56 GMT 2006  Olly Betts <olly@survex.com>
29752         * common/safewindows.h: Fix typo in file description.
29754 Mon Jan 16 13:29:48 GMT 2006  Olly Betts <olly@survex.com>
29756         * backends/quartz/quartz_database.cc: Reverse order of errno includes
29757           which seems to make Compaq's C++ compiler happier.
29759 Sun Jan 15 23:52:01 GMT 2006  Olly Betts <olly@survex.com>
29761         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
29762           backends/quartz/btree.cc,backends/quartz/quartz_database.cc,
29763           backends/quartz/quartz_log.cc,configure.ac,net/socketcommon.cc,
29764           net/tcpclient.cc,testsuite/backendmanager.cc: Compaq C++ requires
29765           sys/errno.h to get ENOENT and most other EXXX codes defined.
29767 Sun Jan 15 23:41:15 GMT 2006  Olly Betts <olly@survex.com>
29769         * bin/xapian-compact.cc: Initialise 2 variables to avoid compiler
29770           warnings.
29772 Sun Jan 15 23:38:11 GMT 2006  Olly Betts <olly@survex.com>
29774         * xapian-config.in: If libxapian.la's dependency_libs contains
29775           another .la file, crudely transform to a pair of -L and -l
29776           options.  Ideally we should recursively pull in dependency_libs
29777           from that .la file, but that's too hard to do in sh.
29779 Sun Jan 15 21:43:26 GMT 2006  Olly Betts <olly@survex.com>
29781         * queryparser/queryparser.lemony,queryparser/queryparser.lt:
29782           Eliminate ParseAlloc's mallocProc parameter and ParseFree's freeProc
29783           parameter - we always pass malloc and free, and get warnings from
29784           some compilers because we're passing a C-linkage function for a
29785           C++-linkage function pointer.
29786         * testsuite/testsuite.cc,testsuite/testsuite.h: Fix functions
29787           registered as signal handlers and pass to atexit to have C linkage.
29789 Sun Jan 15 14:49:45 GMT 2006  Olly Betts <olly@survex.com>
29791         * backends/quartz/quartz_log.cc: #include <string.h> for strerror.
29793 Sun Jan 15 04:36:49 GMT 2006  Olly Betts <olly@survex.com>
29795         * include/xapian/queryparser.h,queryparser/queryparser.cc:
29796           Add Stopper::get_description() and SimpleStopper::get_description().
29798 Sat Jan 14 21:43:32 GMT 2006  Olly Betts <olly@survex.com>
29800         * configure.ac: Fix backwards logic in snprintf configure test.
29801           Also define SNPRINTF_ISO to be an snprintf with ISO C90 semantics
29802           for the return value (if one exists), with SNPRINTF being defined
29803           to any snprintf which at least performs truncation (which in many
29804           cases is sufficient).
29806 Sat Jan 14 04:47:33 GMT 2006  Olly Betts <olly@survex.com>
29808         * queryparser/queryparser.lt: Fix aCC warnings.
29810 Sat Jan 14 04:47:00 GMT 2006  Olly Betts <olly@survex.com>
29812         * common/utils.h: Fix aCC warning.
29814 Fri Jan 13 18:25:04 GMT 2006  Olly Betts <olly@survex.com>
29816         * configure.ac: Turn on more warnings for aCC; suppress existing
29817           warning ("Entire translation unit was empty") since it's not
29818           useful to us.
29820 Fri Jan 13 03:22:26 GMT 2006  Olly Betts <olly@survex.com>
29822         * configure.ac: The configure test for snprintf uses memcmp, so
29823           we need to "#include <string.h>" for it to work reliably.
29825 Wed Jan 11 03:14:30 GMT 2006  Olly Betts <olly@survex.com>
29827         * configure.ac: If not cross-compiling, try to actually run a test
29828           program built with the C++ compiler, not just link one.
29830 Wed Jan 11 03:06:28 GMT 2006  Olly Betts <olly@survex.com>
29832         * configure.ac: Note the library version info which 0.9.3 will
29833           probably need.
29835 Tue Jan 10 22:41:36 GMT 2006  Olly Betts <olly@survex.com>
29837         * configure.ac: Fix to actually skip the check for valgrind if
29838           VALGRIND is set to an empty value.
29840 Tue Jan 10 01:08:10 GMT 2006  Olly Betts <olly@survex.com>
29842         * PLATFORMS: Updates from the tinderbox.
29844 Mon Jan 09 01:35:57 GMT 2006  Olly Betts <olly@survex.com>
29846         * backends/muscat36/io_system.cc,bin/xapian-compact.cc,
29847           common/omdebug.cc: More sprintf tweaks.
29849 Mon Jan 09 00:58:33 GMT 2006  Olly Betts <olly@survex.com>
29851         * bin/xapian-compact.cc: Use snprintf if we have it.
29853 Sun Jan 08 03:51:52 GMT 2006  Olly Betts <olly@survex.com>
29855         * testsuite/backendmanager.cc: Fix conditional compilation of
29856           flint backend to use XAPIAN_BUILD_BACKEND_FLINT instead
29857           of XAPIAN_BUILD_BACKEND_QUARTZ.
29859 Sun Jan 08 02:11:30 GMT 2006  Olly Betts <olly@survex.com>
29861         * configure.ac: Disable flint backend by default if building for
29862           djgpp or msdos.
29864 Sun Jan 08 02:09:48 GMT 2006  Olly Betts <olly@survex.com>
29866         * backends/flint/flint_lock.cc: Cast NULL to (void*) to avoid
29867           "missing sentinel" warning from GCC4.
29869 Sat Jan 07 19:09:33 GMT 2006  Olly Betts <olly@survex.com>
29871         * HACKING,docs/tests.html: Merge the "running tests" section of
29872           docs/tests.html into the similar section in HACKING, and make
29873           docs/tests.html refer the reader to HACKING for more information.
29874         * HACKING,tests/apitest.cc: Remove OM_TEST_BACKEND.  You can now
29875           use the "-b" switch to apitest to control which backend is used
29876           so it's pretty much redundant.
29877         * HACKING,testsuite/testsuite.cc: Rename XAPIAN_SIG_DFL to
29878           XAPIAN_TESTSUITE_SIG_DFL.
29879         * HACKING,testsuite/testsuite.cc: Add XAPIAN_TESTSUITE_PLAIN_OUTPUT
29880           to disable use of ANSI escape sequences in test output.
29882 Sat Jan 07 09:13:06 GMT 2006  Olly Betts <olly@survex.com>
29884         * tests/queryparsertest.cc: Write top-bit set characters using \xXX
29885           notation to avoid warnings from Intel's C++ compiler.
29887 Sat Jan 07 07:13:25 GMT 2006  Olly Betts <olly@survex.com>
29889         * configure.ac: TYPE_SOCKLEN_T fails hard, so only run it if we've
29890           successfully run other socket tests.
29892 Sat Jan 07 05:29:39 GMT 2006  Olly Betts <olly@survex.com>
29894         * queryparser/accentnormalisingitor.h: #include <limits.h> for
29895           CHAR_BIT.
29897 Fri Jan 06 21:24:01 GMT 2006  Olly Betts <olly@survex.com>
29899         * bin/xapian-compact.cc: Fix printf type mismatch on 64 bit platforms.
29901 Fri Jan 06 18:05:30 GMT 2006  Olly Betts <olly@survex.com>
29903         * queryparser/queryparser.cc,queryparser/queryparser.lemony,
29904           queryparser/queryparser_internal.h: Replace pair<bool, string>
29905           with a simple class BoolAndString - the pair results in a
29906           4328 byte symbol on HP-UX which gets truncated (to 4000 bytes).
29908 Fri Jan 06 12:55:37 GMT 2006  Olly Betts <olly@survex.com>
29910         * PLATFORMS: Updated from tinderbox.
29912 Thu Jan 05 16:12:00 GMT 2006  Olly Betts <olly@survex.com>
29914         * configure.ac: Oops, remove hack left over from testing.
29916 Thu Jan 05 16:09:06 GMT 2006  Olly Betts <olly@survex.com>
29918         * configure.ac: Add sanity check for MS Windows that "find" is
29919           Unix-like find, not MSDOS-like.
29921 Thu Jan 05 04:27:29 GMT 2006  Olly Betts <olly@survex.com>
29923         * INSTALL,PLATFORMS,README: Updated.
29925 Mon Dec 19 12:53:38 GMT 2005  Olly Betts <olly@survex.com>
29927         * AUTHORS,PLATFORMS: Add success report for Fedora Core 4.
29929 Mon Dec 19 12:52:55 GMT 2005  Olly Betts <olly@survex.com>
29931         * include/xapian/database.h: Improve a couple of documentation
29932           comments.
29934 Sun Dec 11 01:33:58 GMT 2005  Olly Betts <olly@survex.com>
29936         * queryparser/queryparser.lemony: Fix handling of "+" terms in a query
29937           when the default query operator is AND.
29938         * tests/queryparsertest.cc: Add regression test.
29940 Fri Dec 09 05:54:33 GMT 2005  Olly Betts <olly@survex.com>
29942         * languages/api.cc: Check for malloc and calloc failing to allocate
29943           memory and throw an exception.  Richard has fix this upstream in
29944           snowball, so this is a temporary fix until we import a new version
29945           of snowball.
29947 Fri Dec 09 02:15:38 GMT 2005  Olly Betts <olly@survex.com>
29949         * api/omenquire.cc: Added assertions that the internal ptr isn't NULL
29950           to ESet::end() and ESet::get_description().
29952 Fri Dec 09 02:14:13 GMT 2005  Olly Betts <olly@survex.com>
29954         * HACKING: Note platforms valgrind now has solid support for; Improve
29955           phrasing in a few places.
29957 Thu Dec 08 23:13:09 GMT 2005  Olly Betts <olly@survex.com>
29959         * INSTALL: Update URL for stlport to sourceforge site, which seems to
29960           be where the action is now.
29962 Thu Dec 08 04:13:11 GMT 2005  Olly Betts <olly@survex.com>
29964         * testsuite/testsuite.cc: Fix testsuite harness to work with valgrind
29965           on 64 bit platforms (it's not documented, but VALGRIND_COUNT_LEAKS
29966           requires the count parameters to be 64 bit on such platforms - i.e.
29967           long rather than int as we were using).
29969 Tue Nov 01 13:22:50 GMT 2005  Olly Betts <olly@survex.com>
29971         * PLATFORMS: Sourceforge have a ppc64 linux box.  Xapian builds and
29972           works out of the box, so add success report for this platform.
29974 Thu Oct 27 09:32:24 BST 2005  Fabrice Colin
29976         * xapian.spec.in: Invoke %setup correctly.
29978 Sat Oct 01 03:25:50 BST 2005  Olly Betts <olly@survex.com>
29980         * bin/xapian-compact.cc: Added "--multipass" option to merge postlists
29981           in pairs or triples until all are merged.  Generally this is faster
29982           than an N-way merge, but it does require more disk space for
29983           temporary files so it's not the default.
29985 Fri Sep 30 18:02:32 BST 2005  Olly Betts <olly@survex.com>
29987         * include/xapian/enquire.h: Give pointer to replacements for the
29988           deprecated Enquire sorting methods.
29990 Wed Sep 28 02:16:03 BST 2005  Olly Betts <olly@survex.com>
29992         * bin/xapian-compact.cc: Use a vector<string> to store the list of
29993           source databases, in preparation for merging multiple postlist
29994           tables in more than one pass.
29996 Mon Sep 26 22:22:24 BST 2005  Olly Betts <olly@survex.com>
29998         * .: svn:ignore docsource.mk.
30000 Mon Sep 26 19:54:15 BST 2005  Olly Betts <olly@survex.com>
30002         * bin/: svn:ignore xapian-compact.
30004 Mon Sep 26 19:50:13 BST 2005  Olly Betts <olly@survex.com>
30006         * backends/flint/flint_positionlist.cc: Remove trailing whitespace.
30008 Wed Sep 21 01:31:23 BST 2005  Olly Betts <olly@survex.com>
30010         * api/Makefile.am: Fixed VPATH build which was broken by the addition
30011           of version.cc.
30013 Tue Sep 20 23:38:05 BST 2005  Olly Betts <olly@survex.com>
30015         * backends/flint/flint_lock.cc: Don't pass NULL for second parameter
30016           of execl().
30018 Tue Sep 20 21:32:04 BST 2005  Olly Betts <olly@survex.com>
30020         * api/Makefile.am,api/version.cc,include/xapian/version_h.cc: Add 4
30021           functions to report version information for the library version
30022           being used (which may not be the same as that compiled against
30023           if shared libraries are in use):  xapian_version_string(),
30024           xapian_major_version(), xapian_minor_version(), xapian_revision().
30026 Sat Sep 17 14:07:32 BST 2005  Richard Boulton <richard@tartarus.org>
30028         * backends/flint/flint_lock.cc: Pass two NULLs to execl() to avoid
30029           getting a warning ("not enough variable arguments to fit a
30030           sentinel", observed on Ubuntu breezy powerpc).  Reported by
30031           Sidnei da Silva.
30033 Wed Sep 14 23:54:14 BST 2005  Olly Betts <olly@survex.com>
30035         * HACKING: Now generate snapshots and releases with automake 1.9.6
30036           (was 1.9.5) and libtool 1.5.20 (was 1.5.18).
30038 Tue Aug 30 14:01:55 BST 2005  Olly Betts <olly@survex.com>
30040         * backends/inmemory/inmemory_database.h: Forward declare class
30041           InMemoryDatabase to fix compilation with GCC 4.0.1.
30043 Fri Aug 19 12:13:39 BST 2005  Olly Betts <olly@survex.com>
30045         * backends/quartz/quartz_postlist.cc,backends/flint/flint_postlist.cc:
30046           Correct uses of termcount which should be doccount.
30048 Fri Aug 19 11:48:51 BST 2005  Olly Betts <olly@survex.com>
30050         * include/xapian/enquire.h: Fix prototype for ESet::operator[] to
30051           take parameter of type termcount instead of doccount.
30053 Wed Aug 17 11:50:54 BST 2005  Olly Betts <olly@survex.com>
30055         * common/safewindows.h: Fix compilation for cygwin.
30057 Tue Aug 16 16:01:36 BST 2005  Olly Betts <olly@survex.com>
30059         * backends/flint/flint_types.h,backends/quartz/quartz_types.h:  Using
30060           a double to hold the total document length would be a bad idea as
30061           we need to store it exactly so kill FIXME comments that suggest
30062           perhaps we should.
30064 Fri Jul 15 11:11:35 BST 2005  Olly Betts <olly@survex.com>
30066         * configure.ac,NEWS,PLATFORMS: Updated for 0.9.2.
30068 Fri Jul 15 02:31:11 BST 2005  Olly Betts <olly@survex.com>
30070         * preautoreconf: Change directory to the directory that the
30071           preautoreconf script is in before doing anything else.
30073 Fri Jul 15 01:02:29 BST 2005  Olly Betts <olly@survex.com>
30075         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in,configure.ac:
30076           Eliminate TOP_SRCDIR and TOP_BUILDDIR - it's better to just use
30077           top_srcdir and top_builddir directly.
30079 Fri Jul 15 00:48:39 BST 2005  Olly Betts <olly@survex.com>
30081         * configure.ac: Fix superfluous shell quoting.
30083 Fri Jul 15 00:28:40 BST 2005  Olly Betts <olly@survex.com>
30085         * configure.ac,docs/Makefile.am,preautoreconf,Makefile.am: Generate
30086           the list of source files to feed to doxygen by inspecting all the
30087           Makefile.am files prior to running autoreconf rather than by using
30088           "find" when the user runs ./configure.  This speeds up configure,
30089           avoids generating docs for random .cc and .h files which aren't
30090           part of xapian-core, and avoids problems with picking up FIND.EXE
30091           on MS Windows.
30093 Thu Jul 14 12:49:36 BST 2005  Olly Betts <olly@survex.com>
30095         * common/,matcher/multimatch.cc,matcher/networkmatch.cc,
30096           matcher/networkmatch.h,net/socketclient.cc,net/socketserver.cc,
30097           tests/api_db.cc: Implement sorting on a value with the remote
30098           backend.
30100 Wed Jul 13 01:25:17 BST 2005  Olly Betts <olly@survex.com>
30102         * include/xapian/database.h,include/xapian/dbfactory.h,
30103           net/socketclient.cc: Regularise horizontal whitespace.
30105 Tue Jul 05 03:03:57 BST 2005  Olly Betts <olly@survex.com>
30107         * include/xapian/queryparser.h: Oops, failed to check in header
30108           changes for last change.
30110 Mon Jul 04 15:50:55 BST 2005  Olly Betts <olly@survex.com>
30112         * queryparser/queryparser.lemony,queryparser/queryparser.cc:
30113           Add flag FLAG_BOOLEAN_ANY_CASE which tells the QueryParser that
30114           boolean operators such as "AND", "OR", and "NEAR" should be
30115           recognised even if they aren't fully capitalised (so "and",
30116           "And", "aNd", etc will work too).  Add flag FLAG_WILDCARD which
30117           tells the QueryParser to allow right truncation e.g. "xap*".
30118         * tests/queryparsertest.cc: Add tests for FLAG_WILDCARD.
30120 Sun Jul 03 15:24:12 BST 2005  Olly Betts <olly@survex.com>
30122         * backends/database.cc: Fixed to auto-detect database type when
30123           opening an existing Flint database as a WritableDatabase.
30125 Sat Jul 02 18:49:22 BST 2005  Olly Betts <olly@survex.com>
30127         * tests/queryparsertest.cc: Add test case: "-site:xapian.org mail".
30129 Sat Jul 02 18:49:03 BST 2005  Olly Betts <olly@survex.com>
30131         * common/Makefile.am: Ship safewindows.h header.
30133 Sat Jul 02 18:04:18 BST 2005  Olly Betts <olly@survex.com>
30135         * bin/quartzcompact.cc,bin/xapian-compact.cc,
30136           backends/muscat36/io_system.cc,backends/quartz/btree.cc,
30137           backends/quartz/quartz_log.cc,backends/quartz/quartz_database.cc,
30138           backends/flint/,common/,net/,tests/,testsuite/backendmanager.cc,
30139           testsuite/testsuite.cc: Assorted tweaks towards allowing
30140           compilation with MSVC.
30142 Sat Jul 02 05:08:54 BST 2005  Olly Betts <olly@survex.com>
30144         * backends/quartz/: Always define WIN32_LEAN_AND_MEAN before
30145           including windows.h to reduce the amount of stuff it includes
30146           and speed up builds; Eliminate Btree::max_key_len as MSVC
30147           doesn't like the way we define it and it actually seems
30148           simpler to just use BTREE_MAX_KEY_LEN everywhere anyway.
30149         * backends/quartz/btree.cc: Added a few more assertions.
30151 Sat Jul 02 04:11:01 BST 2005  Olly Betts <olly@survex.com>
30153         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fixed to
30154           handle "-site:microsoft.com" where site is a boolean prefix.
30155         * queryparser/Makefile.am: Add dependency to generate
30156           queryparser_token.h.
30158 Thu Jun 30 02:14:16 BST 2005  Olly Betts <olly@survex.com>
30160         * testsuite/testsuite.cc: Update URL for valgrind FAQ in comment.
30162 Thu Jun 30 00:11:52 BST 2005  Olly Betts <olly@survex.com>
30164         * include/xapian/enquire.h: More explicit explanation of the
30165           "descending docid with boolean weighting" trick for fast
30166           date ordered searching.
30168 Wed Jun 29 13:16:13 BST 2005  Olly Betts <olly@survex.com>
30170         * NEWS: Fix typo: "configurec" -> "configure".
30172 Mon Jun 27 04:21:34 BST 2005  Olly Betts <olly@survex.com>
30174         * xapian.spec.in: Package xapian-compact.
30176 Mon Jun 27 03:41:23 BST 2005  Olly Betts <olly@survex.com>
30178         * backends/flint/flint_positionlist.cc,tests/api_wrdb.cc: Fixed
30179           mispacking of length for Flint positionlists with more than 127
30180           entries, and added regression test longpositionlist1.
30182 Sun Jun 26 02:04:33 BST 2005  Olly Betts <olly@survex.com>
30184         * bin/xapian-compact.cc,backends/flint/flint_cursor.h: Let
30185           PostlistCursor take ownership of the FlintTable it's iterating over
30186           which makes clean-up tidier.
30187         * bin/xapian-compact.cc: We were accidentally skipping the first
30188           entry in various tables (which essentially meant the first
30189           document from each database would go missing when merging
30190           databases).
30192 Sat Jun 25 23:45:42 BST 2005  Olly Betts <olly@survex.com>
30194         * api/omdatabase.cc: Tweak get_lastdocid() code to be a little
30195           clearer.
30197 Wed Jun 22 20:50:43 BST 2005  Olly Betts <olly@survex.com>
30199         * configure.ac,include/xapian/version.h.in,include/xapian/version_h.cc,
30200           include/Makefile.am: Eliminate use of "ln -s" when generating
30201           include/xapian/version.h since it seems to cause problems on Solaris
30202           in some setups and isn't really necessary.  Also add dependency
30203           mechanism so version.h gets regenerated when the template is
30204           changed.
30206 Wed Jun 22 18:47:05 BST 2005  Olly Betts <olly@survex.com>
30208         * docs/intro_ir.html: Citeseer has moved, so update link.
30210 Mon Jun 20 13:33:42 BST 2005  Olly Betts <olly@survex.com>
30212         * configure.ac: -Wshadow causes false positives with GCC 3.0.4, so
30213           only enable it for 3.1 and up.
30215 Mon Jun 20 03:09:07 BST 2005  Olly Betts <olly@survex.com>
30217         * queryparser/queryparser.lemony: "utilpy" -> "utility"!
30219 Fri Jun 17 19:54:44 BST 2005  Olly Betts <olly@survex.com>
30221         * COPYING: Update FSF address.
30223 Thu Jun 16 18:43:33 BST 2005  Olly Betts <olly@survex.com>
30225         * backends/flint/flint_table.cc: Fix warnings from older GCC versions.
30226         * backends/flint/flint_lock.cc: '#include <signal.h>' so that SIGHUP
30227           gets defined reliably.
30229 Thu Jun 16 17:54:39 BST 2005  Olly Betts <olly@survex.com>
30231         * bin/Makefile.am,bin/xapian-compact.cc: Added new "xapian-compact"
30232           program which can compact and merge flint databases in a similar
30233           way to how quartzcompact does for quartz databases.
30235 Thu Jun 16 01:22:45 BST 2005  Olly Betts <olly@survex.com>
30237         * configure.ac: Check for spaces in build directory, source directory,
30238           or install prefix and die with a helpful message.
30240 Wed Jun 15 01:00:11 BST 2005  Olly Betts <olly@survex.com>
30242         * backends/flint/flint_lock.cc: It seems we need to explicitly kill
30243           the child process.  Otherwise when we have two databases locked
30244           just closing the connection doesn't cause the child to die.  I
30245           don't understand why it's needed, but this fix is at least clean.
30247 Mon Jun 13 00:13:33 BST 2005  Olly Betts <olly@survex.com>
30249         * backends/flint/flint_alltermslist.cc,
30250           backends/flint/flint_alltermslist.h,
30251           backends/flint/flint_database.cc: Rewrite of FlintAllTermsList
30252           with several fewer member variables.  Also fixes a bug (the old
30253           version wasn't ignoring the metainfo entry so tests were failing).
30255 Sun Jun 12 13:08:16 BST 2005  Olly Betts <olly@survex.com>
30257         * backends/quartz/quartz_alltermslist.cc: Disable assertion which is
30258           incorrect in a corner case.
30259         * tests/api_db.cc: Add test_specialterms2 as a regression test.
30261 Sun Jun 12 02:03:52 BST 2005  Olly Betts <olly@survex.com>
30263         * backends/flint/flint_positionlist.cc: Encoding and decoding of
30264           position list size, and first and last entries didn't match.
30265           Reworked to match using a slightly smaller encoding.
30266         * backends/flint/flint_metafile.cc: Bumped format version.
30268 Sun Jun 12 02:02:35 BST 2005  Olly Betts <olly@survex.com>
30270         * backends/flint/flint_table.cc: We were failing to append "DB" to the
30271           path when opening a table for reading - fixed.
30273 Sun Jun 12 02:00:30 BST 2005  Olly Betts <olly@survex.com>
30275         * testsuite/backendmanager.cc: When a flint database was requested, we
30276           were incorrectly creating a quartz database instead - fixed.
30278 Sat Jun 11 17:53:12 BST 2005  Olly Betts <olly@survex.com>
30280         * bin/quartzcompact.cc: Fix mis-repacking of keys in positionlist
30281           table when merging several databases.
30283 Thu Jun 09 01:06:35 BST 2005  Olly Betts <olly@survex.com>
30285         * Makefile.am,configure.ac: Pass automake options to AM_INIT_AUTOMAKE
30286           rather than specifying them in Makefile.am.  This way, the version
30287           requirements for autoconf and automake are stated close together.
30289 Mon Jun 06 19:49:36 BST 2005  Olly Betts <olly@survex.com>
30291         * HACKING: Minor updates to release checklist.
30293 Mon Jun 06 17:44:19 BST 2005  Olly Betts <olly@survex.com>
30295         * NEWS,configure.ac: Updated for 0.9.1.
30297 Mon Jun 06 17:28:34 BST 2005  Olly Betts <olly@survex.com>
30299         * configure.ac: Describe CC_FOR_BUILD in configure --help output.
30301 Mon Jun 06 16:00:26 BST 2005  Olly Betts <olly@survex.com>
30303         * PLATFORMS: Updated for 0.9.1.
30305 Fri Jun 03 03:49:33 BST 2005  Olly Betts <olly@survex.com>
30307         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Fixed
30308           compilation failure on mingw.
30310 Fri Jun 03 01:58:08 BST 2005  Olly Betts <olly@survex.com>
30312         * PLATFORMS: Updated from tinderbox.
30314 Fri Jun 03 00:46:00 BST 2005  Olly Betts <olly@survex.com>
30316         * HACKING,NEWS: Snapshot and release tarballs are now bootstrapped
30317           using libtool 1.5.18 and automake 1.9.5 (though neither is currently
30318           an enforced requirement for bootstrapping).
30320 Thu Jun 02 17:36:36 BST 2005  Olly Betts <olly@survex.com>
30322         * NEWS: First draft of release notes for 0.9.1.
30324 Thu Jun 02 02:05:47 BST 2005  Olly Betts <olly@survex.com>
30326         * backends/flint/flint_record.cc: Fix get_doccount() to not return
30327           one too low now that the special entry is no longer in the record
30328           table!
30330 Wed Jun 01 12:41:59 BST 2005  Olly Betts <olly@survex.com>
30332         * backends/flint/flint_positionlist.cc: Placate Sun's C++ compiler.
30334 Tue May 31 19:31:24 BST 2005  Olly Betts <olly@survex.com>
30336         * backends/flint/flint_positionlist.h,
30337           backends/flint/flint_positionlist.cc,
30338           backends/flint/flint_metafile.cc: positionlist entries are now
30339           stored using interpolative coding (which is significantly more
30340           compact).
30342 Mon May 30 01:48:17 BST 2005  Olly Betts <olly@survex.com>
30344         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h:  Added
30345           locking code for MS Windows (untested).
30347 Sun May 29 01:00:41 BST 2005  Olly Betts <olly@survex.com>
30349         * HACKING,NEWS,testsuite/testsuite.h: Fixed spelling mistakes.
30351 Sat May 28 22:51:15 BST 2005  Olly Betts <olly@survex.com>
30353         * tests/: svn:ignore .flint/ subdirectory.
30354         * tests/Makefile.am: Remove .flint subdirectory on 'make clean'.
30356 Sat May 28 22:45:24 BST 2005  Olly Betts <olly@survex.com>
30358         * docs/quartzdesign.html: Remove warning that quartz is still in
30359           development.
30361 Sat May 28 16:24:43 BST 2005  Olly Betts <olly@survex.com>
30363         * backends/flint/flint_lock.h: Removed unused FlintLock method
30364           'operator int()' which was confusing Sun's C++ compiler.
30366 Sat May 28 16:18:11 BST 2005  Olly Betts <olly@survex.com>
30368         * include/xapian/query.h: Removed superfluous "Query::" which was
30369           causing the build to fail with aCC.
30371 Sat May 28 14:31:33 BST 2005  Olly Betts <olly@survex.com>
30373         * backends/flint/flint_metafile.cc: Added missing '#include <errno.h>'.
30375 Sat May 28 14:15:36 BST 2005  Olly Betts <olly@survex.com>
30377         * backends/flint/flint_positionlist.cc: Simplify code a bit.
30379 Sat May 28 02:01:12 BST 2005  Olly Betts <olly@survex.com>
30381         * backends/flint/: Move the special item holding the total document
30382           length and doc id high water mark from the record table to the
30383           postlist table.  This means that when appending documents, the
30384           insertion point will now always be at the end of the record table.
30385           We need to jump around the postlist table to merge anyway.
30387 Sat May 28 00:42:25 BST 2005  Olly Betts <olly@survex.com>
30389         * backends/flint/flint_metafile.cc: Change metafile magic to be
30390           different from quartz, and make the metafile version a datestamp
30391           which we'll change each time the format changes; check the return
30392           value of close on the metafile.
30394 Fri May 27 22:09:45 BST 2005  Olly Betts <olly@survex.com>
30396         * backends/Makefile.am,backends/flint/: Implement new fork+fcntl+exec
30397           based locking;  Fix new GCC warnings.
30399 Fri May 27 22:06:14 BST 2005  Olly Betts <olly@survex.com>
30401         * api/omquery.cc: Missed a warning fix.
30403 Fri May 27 22:04:18 BST 2005  Olly Betts <olly@survex.com>
30405         * backends/quartz/btree.cc,backends/quartz/btree.h,
30406           backends/quartz/quartz_postlist.cc,common/omtime.h,matcher/,
30407           net/socketserver.cc,net/socketcommon.cc,net/socketclient.cc,
30408           testsuite/btreecheck.h,testsuite/testsuite.cc: Fix GCC warnings
30409           from new flags.
30411 Fri May 27 20:06:52 BST 2005  Olly Betts <olly@survex.com>
30413         * queryparser/queryparser.lemony: Add missing '#include <config.h>'.
30415 Fri May 27 12:20:03 BST 2005  Olly Betts <olly@survex.com>
30417         * common/omdebug.h: Oops, change to static_cast reveals that we were
30418           discarding const (harmlessly).
30420 Fri May 27 12:16:03 BST 2005  Olly Betts <olly@survex.com>
30422         * common/omdebug.h: Replace C style cast with static_cast<>.
30424 Fri May 27 12:07:48 BST 2005  Olly Betts <olly@survex.com>
30426         * configure.ac: -Wendif should be -Wendif-labels.
30428 Wed May 25 20:41:39 BST 2005  Olly Betts <olly@survex.com>
30430         * configure.ac: Pass more -W flags to g++ (including -Wundef which
30431           caught the getopt problem fixed by the previous commit).
30433 Wed May 25 20:32:35 BST 2005  Olly Betts <olly@survex.com>
30435         * getopt/getopt.cc: Added accidentally pruned #define so that getopt
30436           code isn't compiled in when the system uses glibc.
30438 Wed May 25 18:36:41 BST 2005  Olly Betts <olly@survex.com>
30440         * configure.ac: Add -Wredundant-decls to the default CXXFLAGS for GCC.
30442 Wed May 25 03:33:34 BST 2005  Olly Betts <olly@survex.com>
30444         * tests/apitest.cc,tests/api_db.cc,tests/api_db.h,
30445           testsuite/backendmanager.cc,testsuite/backendmanager.h:
30446           apitest now runs tests on flint as well.
30448 Wed May 25 03:20:12 BST 2005  Olly Betts <olly@survex.com>
30450         * backends/database.cc: When automatically determining which backend
30451           to use when creating a WritableDatabase, don't try to open it as
30452           both Flint *AND* Quartz (an "else" was missing).
30454 Wed May 25 03:19:21 BST 2005  Olly Betts <olly@survex.com>
30456         * backends/flint/flint_btreebase.cc: Fix typo in code which prevented
30457           a flint database from being opened.
30459 Wed May 25 01:10:51 BST 2005  Olly Betts <olly@survex.com>
30461         * include/xapian/version.h.in,include/xapian/dbfactory.h,
30462           include/xapian/queryparser.h,backends/quartz/,backends/flint/:
30463           Flint backend hooked in fully, and everything now builds once
30464           more.
30466 Tue May 24 02:30:39 BST 2005  Olly Betts <olly@survex.com>
30468         * HACKING: Add "email Fabrice" to the release checklist so that RPM
30469           spec files don't lag behind.  The new svn-tag-release script
30470           actually builds the release tarballs rather than just copying
30471           snapshots like cvs-tag-release did, so document that.
30473 Tue May 24 01:21:18 BST 2005  Olly Betts <olly@survex.com>
30475         * include/xapian/queryparser.h: Added missing documentation comments.
30477 Mon May 23 02:36:06 BST 2005  Olly Betts <olly@survex.com>
30479         * configure.ac,backends/database.cc,backends/Makefile.am,
30480           backends/flint/: Cloned the quartz backend to form the basis of the
30481           new flint backend.  Currently it's the same except that the quartz
30482           log feature has been removed.  When creating a database without a
30483           specified backend, quartz is still used unless the environmental
30484           variable XAPIAN_PREFER_FLINT is set to a non-empty value.
30486 Sat May 21 20:58:48 BST 2005  Olly Betts <olly@survex.com>
30488         * xapian.spec.in: Remove bogus %setup line left over from when we
30489           packaged xapian-core and xapian-examples together from separate
30490           tarballs.
30492 Thu May 19 01:12:27 BST 2005  Olly Betts <olly@survex.com>
30494         * bin/quartzcheck.cc: Fixed corner case where you couldn't check a
30495           single Btree table which was just the DB and baseA/baseB files
30496           in a directory (Xapian doesn't produce anything like this, but
30497           btreetest does while unit testing the Btree code).
30499 Wed May 18 16:59:23 BST 2005  Olly Betts <olly@survex.com>
30501         * api/omquery.cc,include/xapian/query.h: Put Query::get_terms_end()
30502           inline in header.
30504 Wed May 18 16:41:56 BST 2005  Olly Betts <olly@survex.com>
30506         * api/omquery.cc,tests/api_nodb.cc: Fix SEGV on get_terms_begin()
30507           on an empty Query object.
30509 Mon May 16 22:58:09 BST 2005  Olly Betts <olly@survex.com>
30511         * api/omqueryinternal.cc: Fixed compilation with --enable-debug.
30513 Sat May 14 01:02:33 BST 2005  Olly Betts <olly@survex.com>
30515         * docs/doxygen_full_conf.in: Fix lingering DOXYGEN_HAVE_DOT reference.
30517 Sat May 14 00:36:14 BST 2005  Olly Betts <olly@survex.com>
30519         * HACKING: Update information about the SVN tag name to use for
30520           debian files.
30522 Fri May 13 23:21:54 BST 2005  Olly Betts <olly@survex.com>
30524         * HACKING: Updated release instructions to refer to SVN.
30526 Fri May 13 20:58:15 BST 2005  Olly Betts <olly@survex.com>
30528         * PLATFORMS: Updated for 0.9.0.
30530 Fri May 13 02:47:42 BST 2005  Olly Betts <olly@survex.com>
30532         * include/xapian/queryparser.h: Fix for Sun's C++ compiler.
30534 Fri May 13 00:09:07 BST 2005  Olly Betts <olly@survex.com>
30536         * NEWS,configure.ac: Updated for 0.9.0.
30538 Thu May 12 18:54:11 BST 2005  Olly Betts <olly@survex.com>
30540         * docs/doxygen_api_conf.in,docs/Makefile.am: Fix to generate docs
30541           for all backend factory functions like 0.8.5 did.
30543 Thu May 12 16:59:22 BST 2005  Olly Betts <olly@survex.com>
30545         * backends/database.cc,backends/Makefile.am,include/xapian/database.h,
30546           include/xapian/dbfactory.h,include/xapian.h,include/Makefile.am:
30547           Split off database factory methods into xapian/dbfactory.h - this
30548           allows us to fix recent breakage in VPATH builds (caused by the
30549           need to include the generated file xapian/version.h from
30550           xapian/database.h) without modifying almost every Makefile.am.
30552 Wed May 11 16:52:41 BST 2005  Olly Betts <olly@survex.com>
30554         * queryparser/queryparser.lemony: Move prefixed, bracketed
30555           subexpression to be an alternative for stop_term which allows
30556           "term prefix:(term2 term3)" to parse correctly. Also move
30557           non-prefixed, bracketed subexpression to be an alternative
30558           for stop_term - this doesn't change how things parse, but
30559           makes the grammar simpler.
30560         * tests/queryparsertest.cc: Added regression test for the above.
30561         * tests/Makefile.am,tests/queryparsertest.cc: Reworked queryparsertest
30562           to use the standard testsuite harness.
30564 Wed May 11 16:09:32 BST 2005  Olly Betts <olly@survex.com>
30566         * include/xapian/query.h: Fix OP_ELITE_SET at 10 (the value it had
30567           in 0.8.5).
30569 Tue May 10 22:56:45 BST 2005  Olly Betts <olly@survex.com>
30571         * docs/Makefile.am: Removed check for DOXYGEN_HAVE_DOT which I removed
30572           recently.
30574 Tue May 10 01:09:01 BST 2005  Olly Betts <olly@survex.com>
30576         * queryparser/queryparser.lemony: Removed state parameter from
30577           TermList::add_term() since it is no longer used.
30579 Mon May 09 20:56:40 BST 2005  Olly Betts <olly@survex.com>
30581         * docs/Makefile.am: Explicitly set the pool_size for latex, because we
30582           seem to overflow the default setting on many systems.
30583         * docs/Makefile.am: Use $(MAKE) instead of make.
30585 Sun May 08 23:22:37 BST 2005  Olly Betts <olly@survex.com>
30587         * configure.ac: Corrected $CC -> $CXX to fix bogus message "Checking
30588           for  option to enable ANSI C++ mode".
30589         * configure.ac: If any tools needed for documentation are missing
30590           and we're in maintainer mode, die with a suitable error in
30591           configure rather than with strange errors when building the
30592           documentation.
30594 Sun May 08 01:43:55 BST 2005  Olly Betts <olly@survex.com>
30596         * include/xapian/queryparser.h,queryparser/queryparser.lemony,
30597           queryparser/queryparser_internal.h,queryparser/queryparser.cc:
30598           Remove QueryParser::termlist_begin() and termlist_end() since
30599           you can just use Query::terms_begin() and terms_end() on the
30600           Query object returned by QueryParser::parse_query().
30602 Thu May 05 01:00:26 BST 2005  Olly Betts <olly@survex.com>
30604         * common/utils.cc: On WIN32, don't define NOMINMAX if it is already
30605           defined.
30607 Wed May 04 00:52:04 BST 2005  Olly Betts <olly@survex.com>
30609         * matcher/bm25weight.cc: Avoid needing document length if we're simply
30610           going to multiply it by zero!
30612 Tue May 03 14:07:20 BST 2005  Olly Betts <olly@survex.com>
30614         * HACKING: CVS -> SVN;  Note that tabs should be 8 spaces.
30616 Thu Apr 28 21:13:17 BST 2005  Olly Betts <olly@survex.com>
30618         * include/xapian/database.h: Don't declare the backend factory
30619           functions if the corresponding backend has been disabled.  This
30620           means that trying to use a disabled backend will be caught at
30621           compile time rather than link time.
30623 Thu Apr 28 21:12:43 BST 2005  Olly Betts <olly@survex.com>
30625         * docs/intro_ir.html: Corrected two errors.
30627 Wed Apr 27 23:04:53 BST 2005  Olly Betts <olly@survex.com>
30629         * configure.ac,include/xapian/version.h.in: Define
30630           XAPIAN_HAS_xxx_BACKEND for each backend which is enabled.  The
30631           bindings need this, and user code might find it useful too.
30633 Wed Apr 27 03:31:50 BST 2005  Olly Betts <olly@survex.com>
30635         * api/omdatabase.cc,api/ompostlistiterator.cc,
30636           api/omtermlistiterator.cc,include/xapian/,
30637           queryparser/queryparser.cc: Where end iterator is just
30638           FooIterator(NULL) put it inline in the header for efficiency.
30639           If we ever need to change an implementation, we can easily move
30640           methods back into the library and bump the library version suitably.
30642 Wed Apr 27 02:40:43 BST 2005  Olly Betts <olly@survex.com>
30644         * examples/quest.cc,include/xapian/queryparser.h,
30645           queryparser/queryparser.cc,tests/queryparsertest.cc: Rename
30646           QueryParser::set_stemming_options() to set_stemming_strategy()
30647           - it's a better name and avoids confusion with the old deprecated
30648           method called set_stemming_options().
30649         * examples/quest.cc: Added stopword handling.
30651 Wed Apr 27 02:39:33 BST 2005  Olly Betts <olly@survex.com>
30653         * include/xapian/enquire.h: Fixed documentation comment.
30655 Sun Apr 24 03:02:47 BST 2005  Olly Betts <olly@survex.com>
30657         * api/omstem.cc: Simplified Xapian::Stem::Internal.
30659 Sun Apr 24 02:21:22 BST 2005  Olly Betts <olly@survex.com>
30661         * tests/api_nodb.cc: Extended stemlang1 to check that trying to create
30662           a stemmer for a non-existent language throws InvalidArgumentError.
30664 Fri Apr 22 01:20:57 BST 2005  Olly Betts <olly@survex.com>
30666         * include/xapian/document.h: Clearer documentation comments.
30668 Thu Apr 21 15:03:42 BST 2005  Olly Betts <olly@survex.com>
30670         * docs/overview.html,include/xapian/query.h: Removed lingering
30671           references to OP_WEIGHT_CUTOFF.
30673 Thu Apr 21 01:46:51 BST 2005  Olly Betts <olly@survex.com>
30675         * PLATFORMS: Added success report for Ubuntu 5.04 on x86_64.
30677 Mon Apr 18 02:54:10 BST 2005  Olly Betts <olly@survex.com>
30679         * docs/stemming.html: Stemming appears to be applicable to Japanese
30680           so don't say it isn't!
30682 Sat Apr 16 01:08:22 BST 2005  Olly Betts <olly@survex.com>
30684         * PLATFORMS: Updated from tinderbox.
30686 Fri Apr 15 23:18:58 BST 2005  Olly Betts <olly@survex.com>
30688         * languages/: Remove lingering .c versions of snowball generated
30689           sources.
30691 Fri Apr 15 02:05:27 BST 2005  Olly Betts <olly@survex.com>
30693         * include/xapian/queryparser.h,queryparser/queryparser_internal.h,
30694           queryparser/queryparser.cc: Implemented QueryParser::set_database()
30695           method.
30696         * queryparser/queryparser.lemony: Allow searches for C#, etc.  If a
30697           database has been set, for this and + and - suffixes, check if the
30698           term actually exists, and if not, ignore the suffix if the
30699           unsuffixed term exists.
30700         * tests/queryparsertest.cc: Added tests for # suffix.
30702 Thu Apr 14 23:39:57 BST 2005  Olly Betts <olly@survex.com>
30704         * include/xapian/stem.h: Rewritten with better documentation comments.
30705         * include/xapian/stem.h: Added operator() as preferred alternative
30706           to stem_word().
30707         * api/omstem.cc,include/xapian/stem.h: Simplified by restructuring
30708           to eliminate a few internal methods.
30710 Thu Apr 14 23:35:47 BST 2005  Olly Betts <olly@survex.com>
30712         * queryparser/queryparser.cc: Make get_description() debug tracing
30713           message category INTRO not API.
30715 Thu Apr 14 19:57:06 BST 2005  Olly Betts <olly@survex.com>
30717         * include/xapian/queryparser.h,queryparser/queryparser.cc: Added
30718           QueryParser::get_description() method (not very descriptive yet!)
30720 Thu Apr 14 03:30:09 BST 2005  Olly Betts <olly@survex.com>
30722         * include/xapian/queryparser.h: Fixed to only include the xapian
30723           headers we actually depend on.
30724         * include/xapian/queryparser.h: Added \file and \brief documentation
30725           comments.
30727 Thu Apr 14 02:50:36 BST 2005  Olly Betts <olly@survex.com>
30729         * examples/quest.cc,include/xapian.h,tests/queryparsertest.cc:
30730           Change xapian.h to automatically include xapian/queryparser.h
30731           and fix direct includes of xapian/queryparser.h in tests and
30732           examples.
30734 Thu Apr 14 01:48:39 BST 2005  Olly Betts <olly@survex.com>
30736         * include/xapian/queryparser.h: Added Xapian::SimpleStopper which
30737           should be sufficient for the majority of uses.
30738         * include/xapian/queryparser.h,queryparser/queryparser_internal.h,
30739           queryparser/queryparser.cc: Changed QueryParser::set_stopper() to
30740           take a const pointer.
30742 Thu Apr 07 15:57:15 BST 2005  Olly Betts <olly@survex.com>
30744         * api/omenquire.cc,common/omenquireinternal.h,common/multimatch.h,
30745           matcher/multimatch.cc,net/socketserver.cc: Tidy up after sort_bands.
30747 Thu Apr 07 15:15:27 BST 2005  Olly Betts <olly@survex.com>
30749         * api/omenquire.cc,common/,include/xapian/enquire.h,
30750           matcher/networkmatch.cc,matcher/multimatch.cc,matcher/networkmatch.h,
30751           net/socketserver.cc,net/socketclient.cc,tests/api_db.cc:
30752           Enhanced Enquire sorting API and added ability to reverse sort on
30753           a value.
30754         * api/omenquire.cc: Enquire::get_description() now includes output of
30755           Enquire::Internal::get_description().
30757 Thu Apr 07 13:55:56 BST 2005  Olly Betts <olly@survex.com>
30759         * HACKING: Fixed a typo.
30761 Thu Apr 07 13:37:02 BST 2005  Olly Betts <olly@survex.com>
30763         * backends/quartz/btree.cc,backends/quartz/btree.h,
30764           bin/quartzcompact.cc: The "fuller compaction" code needs changes
30765           to btree.h which I'd failed to check in.  Also document --fuller
30766           in 'quartzcompact --help'.
30768 Thu Apr 07 03:35:36 BST 2005  Olly Betts <olly@survex.com>
30770         * bin/quartzcompact.cc: Added "fuller compaction" mode, which ignores
30771           the usual "at least 4 items per block" rule.
30773 Thu Apr 07 03:28:32 BST 2005  Olly Betts <olly@survex.com>
30775         * PLATFORMS: Added success result for GCC 3.2.3 on FreeBSD 4.8; fixed
30776           a typo.
30778 Wed Apr 06 23:04:15 BST 2005  Olly Betts <olly@survex.com>
30780         * queryparser/queryparser.lemony: Added FIXME comment.
30782 Wed Apr 06 22:52:53 BST 2005  Olly Betts <olly@survex.com>
30784         * ./: Removed ylwrap from svn:ignore.
30786 Tue Apr 05 22:34:16 BST 2005  Olly Betts <olly@survex.com>
30788         * queryparser/queryparsertest.cc,queryparser/Makefile.am,
30789           tests/Makefile.am: Moved queryparsertest into tests/.
30791 Tue Apr 05 22:15:05 BST 2005  Olly Betts <olly@survex.com>
30793         * examples/: Updated svn:ignore property.
30795 Tue Apr 05 21:34:13 BST 2005  Olly Betts <olly@survex.com>
30797         * queryparser/Makefile.am,configure.ac,extra/xapian/queryparser.h,
30798           extra/,include/Makefile.am,Makefile.am: Move extra/ to queryparser/;
30799           Merge extra/xapian/ into include/xapian/.
30801 Tue Apr 05 16:37:32 BST 2005  Olly Betts <olly@survex.com>
30803         * m4/xapian.m4: Fix m4 quoting (argh!)
30805 Tue Apr 05 16:28:06 BST 2005  Olly Betts <olly@survex.com>
30807         * m4/xapian.m4: Fix XO_LIB_XAPIAN to trim off any _svn6789 from
30808           XAPIAN_VERSION.
30810 Tue Apr 05 16:17:31 BST 2005  Olly Betts <olly@survex.com>
30812         * configure.ac: Fix m4 quoting.
30814 Tue Apr 05 15:16:38 BST 2005  Olly Betts <olly@survex.com>
30816         * configure.ac: #define VERSION in version.h shouldn't include any
30817           _svn6789 suffix.
30819 Tue Apr 05 13:28:23 BST 2005  Olly Betts <olly@survex.com>
30821         * configure.ac: Snapshot generator now appends _svn6789 or similar to
30822           the version string, so take that into account when finding REVISION.
30824 Tue Apr 05 12:55:52 BST 2005  Olly Betts <olly@survex.com>
30826         * ChangeLog.examples,Makefile.am,examples/ChangeLog: Move
30827           xapian-examples ChangeLog to ChangeLog.examples in the top-level
30828           and include in the tarball.
30830 Tue Apr 05 02:18:08 BST 2005  Olly Betts <olly@survex.com>
30832         * examples/dir_contents,examples/README: Converted xapian-examples
30833           README into a dir_contents file.
30835 Tue Apr 05 02:12:31 BST 2005  Olly Betts <olly@survex.com>
30837         * docs/overview.html,docs/install.html,configure.ac,Makefile.am,
30838           xapian.spec.in,examples/Makefile.am: Moved xapian-examples module
30839           to examples subdirectory of xapian-core.
30841 Tue Apr 05 00:37:05 BST 2005  Olly Betts <olly@survex.com>
30843         * m4/.cvsignore,debian/.cvsignore,matcher/.cvsignore,docs/.cvsignore,
30844           tests/.cvsignore,bin/.cvsignore,.cvsignore,autoconf/.cvsignore,
30845           extra/.cvsignore,include/xapian/.cvsignore,include/.cvsignore,
30846           net/.cvsignore,common/.cvsignore,testsuite/.cvsignore,
30847           getopt/.cvsignore,languages/.cvsignore,api/.cvsignore,
30848           backends/inmemory/.cvsignore,backends/muscat36/.cvsignore,
30849           backends/net/.cvsignore,backends/quartz/.cvsignore,
30850           backends/multi/.cvsignore,backends/.cvsignore: Remove .cvsignore
30851           files, as they're not used by SVN.
30853 Thu Mar 10 01:48:20 GMT 2005  Olly Betts <olly@survex.com>
30855         * testsuite/backendmanager.cc,testsuite/index_utils.cc,
30856           testsuite/index_utils.h: Rewrite of index_utils code, removing
30857           unused and unusual features.
30858         * tests/testdata/: Cleaned up data for apitest now that paragraphs
30859           don't have the odd minimum number of lines!
30860         * tests/testdata/apitest_space.txt: New index_utils code has C-like
30861           \ escapes for control characters rather than ^ escapes.
30863 Wed Mar 09 22:04:08 GMT 2005  Olly Betts <olly@survex.com>
30865         * common/utils.h: Added C_isxdigit and C_isnotxdigit.
30867 Wed Mar 09 15:22:35 GMT 2005  Olly Betts <olly@survex.com>
30869         * testsuite/index_utils.cc: Fixed ^x to actually decode hex values
30870           correctly.
30872 Tue Mar 08 16:57:25 GMT 2005  Olly Betts <olly@survex.com>
30874         * matcher/multimatch.cc: Minor code tidy.
30876 Tue Mar 08 15:48:38 GMT 2005  Olly Betts <olly@survex.com>
30878         * api/omenquire.cc,docs/matcherdesign.html,include/xapian/enquire.h,
30879           matcher/multimatch.cc,tests/api_db.cc: Removed sort_bands support.
30881 Tue Mar 08 04:13:03 GMT 2005  Olly Betts <olly@survex.com>
30883         * bin/quartzcompact.cc: Fixed to add items for all tables in key order
30884           which produces results around 40% more compact (previously in the
30885           merge case, this was only happening for the postlist table).
30887 Tue Mar 08 03:30:06 GMT 2005  Olly Betts <olly@survex.com>
30889         * testsuite/btreecheck.cc: Make default check output fit on a single
30890           line (at least for many databases).
30892 Tue Mar 08 02:34:41 GMT 2005  Olly Betts <olly@survex.com>
30894         * matcher/multimatch.cc: Fix warning from newer versions of GCC.
30896 Sat Mar 05 00:25:07 GMT 2005  Olly Betts <olly@survex.com>
30898         * api/omenquire.cc,common/omenquireinternal.h,include/xapian/enquire.h,
30899           matcher/multimatch.cc,tests/api_db.cc: Fixed Xapian::RSet to have
30900           the same "it's a handle" copy semantics as most of the other
30901           classes.
30903 Sat Mar 05 00:23:47 GMT 2005  Olly Betts <olly@survex.com>
30905         * testsuite/testsuite.h: Fixed TEST_EQUAL_DOUBLE to use DBL_EPSILON
30906           correctly.
30908 Fri Mar 04 21:06:38 GMT 2005  Olly Betts <olly@survex.com>
30910         * tests/testdata/etext.txt: Stripped carriage returns.
30912 Fri Mar 04 21:04:25 GMT 2005  Olly Betts <olly@survex.com>
30914         * PLATFORMS: Assorted updates.
30916 Thu Mar 03 01:17:07 GMT 2005  Olly Betts <olly@survex.com>
30918         * bin/quartzcompact.cc: Fixed to allow compacting a single database.
30919           Fixed handling of very last term when merging postlists.
30921 Wed Mar 02 03:18:30 GMT 2005  Olly Betts <olly@survex.com>
30923         * backends/quartz/quartz_values.cc: Values are stored in sorted order
30924           so we can stop unpacking the list once we get to one after the one
30925           we're looking for.
30927 Wed Mar 02 02:59:23 GMT 2005  Olly Betts <olly@survex.com>
30929         * bin/quartzcheck.cc: Now checks the structure of all the tables, not
30930           just the postlist table, and cross-checks doclen values between
30931           termlist and postlist tables.  Recognises "--help" option.  Should
30932           now continue after an error (typically it would crash before), and
30933           counts the number of errors found.  Now exits with non-zero status
30934           if any errors were found.
30936 Tue Mar 01 18:48:25 GMT 2005  Olly Betts <olly@survex.com>
30938         * xapian.spec.in: '/usr/share' -> '%{_datadir}'.
30940 Tue Mar 01 16:21:07 GMT 2005  Olly Betts <olly@survex.com>
30942         * tests/api_db.cc: Fixed warning from Sun's C++ compiler.
30944 Tue Mar 01 02:02:15 GMT 2005  Olly Betts <olly@survex.com>
30946         * bin/quartzcompact.cc: Extended to allow merging several quartz
30947           databases to produce a single compact quartz database.  This
30948           allows for faster building - simple index in chunks, then merge
30949           the chunks.
30951 Tue Mar 01 00:08:12 GMT 2005  Olly Betts <olly@survex.com>
30953         * xapian.spec.in: Put the .so in the -devel package (it's only useful
30954           for linking to - the .so.* files are all that's needed at runtime).
30956 Tue Mar 01 00:05:25 GMT 2005  Olly Betts <olly@survex.com>
30958         * Makefile.am,xapian-config.in,xapian.spec.in,extra/.cvsignore,
30959           extra/Makefile.am: Eliminated the extra library for the queryparser
30960           - it's tiny compared to the main library and having it around just
30961           complicates things.
30963 Mon Feb 28 23:52:19 GMT 2005  Olly Betts <olly@survex.com>
30965         * tests/api_anydb.cc: More set_length() changes.
30967 Mon Feb 28 20:31:13 GMT 2005  Olly Betts <olly@survex.com>
30969         * net/socketclient.cc,net/socketserver.cc,api/omenquire.cc,
30970           api/omquery.cc,api/omqueryinternal.cc,common/,
30971           include/xapian/enquire.h,include/xapian/query.h,matcher/:
30972           Remove Query::set_length() in favour of an optional length
30973           parameter to Enquire::set_query().
30975 Mon Feb 28 15:32:32 GMT 2005  Olly Betts <olly@survex.com>
30977         * api/omqueryinternal.cc,common/Makefile.am,common/deleter_vector.h:
30978           Removed deleter_vector as it's no longer used anywhere.
30980 Mon Feb 28 15:27:42 GMT 2005  Olly Betts <olly@survex.com>
30982         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
30983           matcher/localmatch.cc,tests/api_anydb.cc,tests/api_nodb.cc:
30984           Eliminated Query::set_elite_set_size().
30986 Mon Feb 28 15:15:45 GMT 2005  Olly Betts <olly@survex.com>
30988         * HACKING: Note how to disable use of VALGRIND on the make check
30989           command line, or when using runtest directly.
30991 Mon Feb 28 13:36:07 GMT 2005  Olly Betts <olly@survex.com>
30993         * common/omqueryinternal.h: Removed out-of-date commented out version
30994           of Xapian::Query::Internal.
30996 Mon Feb 28 13:07:42 GMT 2005  Olly Betts <olly@survex.com>
30998         * backends/quartz/quartz_alltermslist.cc,tests/api_db.cc: Updated (C)
30999           dates for changes earlier this year.
31001 Mon Feb 28 13:04:41 GMT 2005  Olly Betts <olly@survex.com>
31003         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
31004           matcher/localmatch.cc,matcher/localmatch.h,tests/api_anydb.cc,
31005           tests/api_nodb.cc,tests/api_posdb.cc: Eliminated Query::set_window
31006           in favour of an optional parameter to the constructor, with the aim
31007           of making Query objects immutable once constructed.
31009 Mon Feb 28 12:32:26 GMT 2005  Olly Betts <olly@survex.com>
31011         * extra/queryparser.lemony: Updated 2 uses of Query::set_window().
31013 Mon Feb 28 04:43:20 GMT 2005  Olly Betts <olly@survex.com>
31015         * api/omquery.cc,api/omqueryinternal.cc,common/socketcommon.h,
31016           include/xapian/query.h,matcher/,tests/api_anydb.cc:
31017           Removed OP_WEIGHT_CUTOFF, since it doesn't actually seem to
31018           add useful functionality over using Enquire::set_cutoff().
31020 Mon Feb 28 04:31:58 GMT 2005  Olly Betts <olly@survex.com>
31022         * matcher/weightcutoffpostlist.cc: Fix updating of docid in
31023           WeightCutoffPostList - the current code works, but can end up doing
31024           lots (potentially millions) of pointless loop iterations.
31026 Mon Feb 28 02:57:29 GMT 2005  Olly Betts <olly@survex.com>
31028         * docs/queryparser.html: Note that + and - work on phrases and
31029           bracketed expressions.
31031 Fri Feb 25 17:06:23 GMT 2005  Olly Betts <olly@survex.com>
31033         * backends/quartz/quartz_alltermslist.cc: Fix skip_to on an allterms
31034           TermIterator to set the current term when the skip_to-ed term is
31035           in the database.
31036         * tests/api_db.cc: Add regression test for this (allterms5).
31038 Wed Feb 23 19:07:30 GMT 2005  Olly Betts <olly@survex.com>
31040         * configure.ac: Suppress 2 Intel C++ warnings which we can't easily
31041           code around, and enable -Werror automatically with
31042           --enable-maintainer-mode.
31043         * configure.ac: Check that the C++ compiler can actually link a
31044           program.  AC_LANG_CXX doesn't, and if it can't find a C++ compiler
31045           it'll just return "g++" which just leads to a later configure
31046           test failing in a confusing way.
31048 Tue Feb 22 13:39:07 GMT 2005  Olly Betts <olly@survex.com>
31050         * include/xapian/enquire.h: Improved documentation comments.
31051         * api/omenquire.cc,include/xapian/enquire.h: MSet::max_size() (which
31052           only exists so that MSet is an STL compiler) now returns
31053           MSet::size() and is inlined from the header.
31054         * include/xapian/enquire.h: Added ESet::max_size() (for STL
31055           compatibility).
31057 Tue Feb 22 00:18:33 GMT 2005  Olly Betts <olly@survex.com>
31059         * configure.ac: corrected "none known for yes" or "none known for no"
31060           to "none known for g++-3.2" or similar.
31061         * configure.ac: autoconf identifies Intel's C++ compiler as GCC, so
31062           probe for which it actually is.
31064 Mon Feb 21 21:54:29 GMT 2005  Olly Betts <olly@survex.com>
31066         * PLATFORMS: Updated.
31068 Mon Feb 21 16:06:32 GMT 2005  Olly Betts <olly@survex.com>
31070         * PLATFORMS: Added success report for Intel C++ 8.1 on ia64 Linux
31071           (and also GCC 3.2.3 on ia64 Linux).
31073 Mon Feb 21 05:33:46 GMT 2005  Olly Betts <olly@survex.com>
31075         * backends/multi/: Don't delare methods in headers if they're virtual
31076           or large.
31078 Mon Feb 21 04:11:23 GMT 2005  Olly Betts <olly@survex.com>
31080         * backends/inmemory/inmemory_database.cc,
31081           backends/inmemory/inmemory_database.h: Don't delare methods in
31082           headers if they're virtual or large.
31084 Sun Feb 20 21:13:40 GMT 2005  Olly Betts <olly@survex.com>
31086         * common/multimatch.h: Removed unused "class SocketServer;".
31088 Sun Feb 20 19:47:01 GMT 2005  Olly Betts <olly@survex.com>
31090         * net/socketserver.cc: Fixed typo in debug code.
31092 Sat Feb 19 18:44:17 GMT 2005  Olly Betts <olly@survex.com>
31094         * PLATFORMS: Added minimal testcase which fails to compile with
31095           Compaq's C++ compiler (cxx).
31097 Sat Feb 19 04:23:51 GMT 2005  Olly Betts <olly@survex.com>
31099         * backends/quartz/btree.cc,backends/quartz/btree.h: Change
31100           Btree::find_in_block to take a bool indicating if this is a leaf
31101           block rather than an offset to subtract when it is.
31103 Fri Feb 18 04:27:16 GMT 2005  Olly Betts <olly@survex.com>
31105         * HACKING: Added better description of how reference-counted API
31106           classes are structured.
31107         * include/xapian/postingiterator.h,include/xapian/termiterator.h:
31108           More (and better) documentation comments.
31110 Fri Feb 18 03:05:40 GMT 2005  Olly Betts <olly@survex.com>
31112         * backends/quartz/btree.cc: Made full compaction a tiny bit more
31113           compact.  Improved compaction by a few % in non-full case.
31114           Tighter bound on amount of memory to reserve to read the tag
31115           into.
31117 Fri Feb 18 00:47:41 GMT 2005  Olly Betts <olly@survex.com>
31119         * api/omenquire.cc: Removed duplicate "#include <xapian/enquire.h>".
31121 Thu Feb 17 01:33:01 GMT 2005  Olly Betts <olly@survex.com>
31123         * extra/queryparser_internal.h: Further Sun C++ fixes.
31125 Wed Feb 16 05:32:40 GMT 2005  Olly Betts <olly@survex.com>
31127         * extra/queryparser.lemony: Attempted fix for Sun's C++ compiler.
31129 Tue Feb 15 02:10:35 GMT 2005  Olly Betts <olly@survex.com>
31131         * extra/queryparser.cc,extra/queryparser.lemony,
31132           extra/queryparser_internal.h: Fixed namespace stuff to keep Sun's C++
31133           compiler happy.
31135 Mon Feb 14 21:21:08 GMT 2005  Olly Betts <olly@survex.com>
31137         * api/vectortermlist.h: Workaround a shortcoming in Sun's C++
31138           compiler.
31140 Mon Feb 14 21:16:05 GMT 2005  Olly Betts <olly@survex.com>
31142         * PLATFORMS: Results from upgraded sourceforge x86_64 box.
31144 Mon Feb 14 18:36:40 GMT 2005  Olly Betts <olly@survex.com>
31146         * extra/xapian/queryparser.h: Fixed compilation error.
31148 Mon Feb 14 18:00:12 GMT 2005  Olly Betts <olly@survex.com>
31150         * extra/xapian/queryparser.h: Added backward compatibility wrapper for
31151           old version of QueryParser::set_stemming_options().
31153 Mon Feb 14 17:50:47 GMT 2005  Olly Betts <olly@survex.com>
31155         * extra/xapian/queryparser.h: Added dummy QueryParser::set_database()
31156           (currently it ignores the parameter).
31158 Mon Feb 14 15:34:13 GMT 2005  Olly Betts <olly@survex.com>
31160         * extra/lemon.c: C90, not C99!
31162 Mon Feb 14 15:20:11 GMT 2005  Olly Betts <olly@survex.com>
31164         * extra/lemon.c: C, not C++.
31166 Mon Feb 14 05:49:50 GMT 2005  Olly Betts <olly@survex.com>
31168         * extra/: Tweak lemon so we can avoid generating files in builddir
31169           in a VPATH build.
31171 Mon Feb 14 02:44:17 GMT 2005  Olly Betts <olly@survex.com>
31173         * extra/Makefile.am: Update to reflect lempar.c -> queryparser.lt.
31175 Mon Feb 14 02:25:53 GMT 2005  Olly Betts <olly@survex.com>
31177         * extra/lempar.c,extra/queryparser.lt: Rename lemon template to .lt
31178           which is more sensible than calling it lempar.c and should work
31179           with VPATH builds.
31181 Mon Feb 14 02:12:51 GMT 2005  Olly Betts <olly@survex.com>
31183         * extra/Makefile.am: Fixes for VPATH builds.
31185 Mon Feb 14 01:43:59 GMT 2005  Olly Betts <olly@survex.com>
31187         * configure.ac: Need to AC_SUBST(CC_FOR_BUILD).
31189 Mon Feb 14 00:19:45 GMT 2005  Olly Betts <olly@survex.com>
31191         * extra/Makefile.am: Added dependency for building queryparser.h.
31193 Sun Feb 13 23:30:02 GMT 2005  Olly Betts <olly@survex.com>
31195         * extra/queryparser.cc,extra/queryparser_internal.h,
31196           extra/xapian/queryparser.h: Fixed to compile with GCC 3.3.
31198 Sun Feb 13 23:09:15 GMT 2005  Olly Betts <olly@survex.com>
31200         * configure.ac: Enhanced valgrind test to (a) see if --tool=memcheck
31201           is needed and (b) see if valgrind actually works (we don't want to
31202           try to use an x86 valgrind on an x86_64 box).
31204 Mon Jan 17 03:21:29 GMT 2005  Olly Betts <olly@survex.com>
31206         * api/vectortermlist.h,extra/,extra/xapian/queryparser.h: Rewritten
31207           QueryParser class.  Uses Lemon instead of Bison to generate the
31208           parser, which enables us to stop using static data, so this class
31209           is at last reentrant.  It now uses a PIMPL style with reference
31210           counted internals like most of the other Xapian classes.  And
31211           direct access to member variables has gone, which unfortunately
31212           forces an API change (bug #39).  The rewrite also supports more
31213           features than the original did.
31214         * HACKING,configure.ac: No longer need Bison.
31215         * configure.ac: Need CC_FOR_BUILD to compile Lemon with.
31217 Mon Jan 17 02:40:40 GMT 2005  Olly Betts <olly@survex.com>
31219         * PLATFORMS: IRIX + SGI C++ now compiles with just two warnings -
31220           unused variables in Snowball generated code.
31222 Sun Jan 16 03:19:56 GMT 2005  Olly Betts <olly@survex.com>
31224         * xapian.spec.in: Don't say "%makeinstall" in a comment since rpm
31225           tries to expand it and explodes.
31227 Sat Jan 15 03:30:33 GMT 2005  Olly Betts <olly@survex.com>
31229         * docs/Makefile.am: Clearer rules for making Postscript doxygen docs.
31231 Sat Jan 15 02:45:19 GMT 2005  Olly Betts <olly@survex.com>
31233         * HACKING: Note that '#include <limits>' isn't supported by GCC 2.95,
31234           and other assorted minor tweaks.
31236 Sat Jan 08 16:09:10 GMT 2005  Olly Betts <olly@survex.com>
31238         * api/maptermlist.h,backends/inmemory/inmemory_database.h,
31239           backends/quartz/quartz_postlist.h,common/,matcher/localmatch.h,
31240           matcher/mergepostlist.h,matcher/phrasepostlist.h,net/progclient.cc:
31241           Fixes for SGI C++ warnings.
31243 Fri Jan  7 13:02:49 GMT 2005  Richard Boulton <richard@tartarus.org>
31245         * common/positionlist.h: Correct out-of-date documentation comment.
31247 Tue Jan 04 03:05:26 GMT 2005  Olly Betts <olly@survex.com>
31249         * matcher/multimatch.cc: Removed unnecessary class declaration.
31251 Tue Jan 04 03:02:02 GMT 2005  Olly Betts <olly@survex.com>
31253         * configure.ac: Automatically enable ANSI C++ mode for SGI's compiler
31254           with '-LANG:std'; check that any automatically determined flags
31255           for ANSI C++ mode actually allow us to compile a trivial program
31256           - if they don't it probably means the compiler isn't the one we
31257           were expecting, but one installed with the same name, so we now
31258           drop the flags in this case.
31260 Thu Dec 30 00:50:58 GMT 2004  Olly Betts <olly@survex.com>
31262         * extra/queryparser.yy: QueryParser::parse_query() was failing to
31263           clear termlist and unstem.
31265 Fri Dec 24 00:07:28 GMT 2004  Olly Betts <olly@survex.com>
31267         * PLATFORMS: Updated from tinderbox.
31269 Thu Dec 23 21:13:46 GMT 2004  Olly Betts <olly@survex.com>
31271         * backends/quartz/btree.cc: Fixed GCC compilation warning.
31273 Thu Dec 23 17:22:15 GMT 2004  Olly Betts <olly@survex.com>
31275         * INSTALL,README: Updated.
31276         * README: Don't quote chunks of the GPL - just refer people to the
31277           full text in COPYING.
31279 Thu Dec 23 16:55:03 GMT 2004  Olly Betts <olly@survex.com>
31281         * NEWS,PLATFORMS,configure.ac: Updated for 0.8.5 release.
31283 Tue Dec 21 13:26:55 GMT 2004  Olly Betts <olly@survex.com>
31285         * docs/quickstart.html: Improved wording.
31287 Tue Dec 21 13:03:06 GMT 2004  Olly Betts <olly@survex.com>
31289         * HACKING: Updated to reflect extra jobs which cvs-tag-release now
31290           does.
31292 Mon Dec 20 16:25:21 GMT 2004  Olly Betts <olly@survex.com>
31294         * bin/Makefile.am: quartzcompact now uses getopt, so need to link
31295           it in our version to build on non-glibc platforms.
31297 Mon Dec 20 16:23:28 GMT 2004  Olly Betts <olly@survex.com>
31299         * backends/quartz/btree.cc: Added comment noting why we can't
31300           truncate separating keys at higher levels.
31302 Thu Dec 16 14:46:28 GMT 2004  Olly Betts <olly@survex.com>
31304         * HACKING: Fixed a typo, and improved wording.
31306 Mon Dec 13 02:52:52 GMT 2004  Olly Betts <olly@survex.com>
31308         * backends/multi/multi_postlist.cc: Updated (C) date.
31310 Mon Dec 13 02:50:44 GMT 2004  Olly Betts <olly@survex.com>
31312         * languages/: Added missing '#include <config.h>' to .cc files
31313           (probably harmless, but it should be included as the first thing any
31314           source file does).
31316 Mon Dec 13 02:21:28 GMT 2004  Olly Betts <olly@survex.com>
31318         * bin/quartzdump.cc: Mark the long options as const.
31320 Mon Dec 13 02:20:08 GMT 2004  Olly Betts <olly@survex.com>
31322         * bin/quartzcompact.cc: Tables sizes will always be a whole number of
31323           Kbytes, since the blocksize is, so report the size in K.  Also
31324           report the change in size as well as the before and after sizes.
31326 Mon Dec 13 02:11:59 GMT 2004  Olly Betts <olly@survex.com>
31328         * common/netutils.cc: Added missing '#include <config.h>' (probably
31329           harmless, but it should be included as the first thing any source
31330           file does).
31332 Mon Dec 13 01:39:53 GMT 2004  Olly Betts <olly@survex.com>
31334         * backends/quartz/btree.cc,backends/quartz/btree.h: Renamed
31335           Btree::compress() to Btree::compact() for consistency with
31336           "full_compaction" and "quartzcompact".  Also, "compress" is
31337           confusing since use "compact" and we use that term in the zlib
31338           patch.
31339         * backends/quartz/btree.cc: When full_compaction is enabled, don't
31340           fill the last few bytes of a block if that would mean we needed
31341           an extra item and the overhead for that item would use up more
31342           of the next block than we save.  This reduces the table size
31343           after full compaction by up to 0.2% in my tests!
31345 Mon Dec 13 01:39:02 GMT 2004  Olly Betts <olly@survex.com>
31347         * backends/multi/multi_postlist.cc: Fixed to build with AssertParanoid
31348           enabled.
31350 Mon Dec 13 00:41:28 GMT 2004  Olly Betts <olly@survex.com>
31352         * bin/quartzcompact.cc: Added missing '#include <config.h>' so that
31353           largefile support is enabled and we report compression statistics
31354           for tables > 2G.
31355         * bin/quartzcompact.cc: Added --no-full / -n option to disable full
31356           compaction.  This may be useful if you want to update the database
31357           after compacting it (need to test to see if this option is actually
31358           useful).
31360 Sun Dec 12 21:26:27 GMT 2004  Olly Betts <olly@survex.com>
31362         * xapian-config.in: Previous attempted fix to --libs output was wrong
31363           - made it actually work.
31365 Sun Dec 12 21:24:44 GMT 2004  Olly Betts <olly@survex.com>
31367         * xapian.spec.in: %makeinstall puts the wrong paths in the .la files
31368           so use "make DESTDIR=... install" instead.
31370 Wed Dec 08 15:59:44 GMT 2004  Olly Betts <olly@survex.com>
31372         * NEWS: Bumped the 0.8.4 release date.
31374 Wed Dec 08 15:32:46 GMT 2004  Olly Betts <olly@survex.com>
31376         * xapian-config.in: Make sure that --libs output doesn't include
31377           libxapian.la (from libxapianqueryparser.la's dependencies).
31379 Tue Dec 07 18:18:26 GMT 2004  Olly Betts <olly@survex.com>
31381         * backends/quartz/quartz_log.cc: Fixed to compile on mingw.
31383 Tue Dec 07 15:57:44 GMT 2004  Olly Betts <olly@survex.com>
31385         * NEWS: Updated.
31386         * api/omdatabase.cc,backends/database.cc,bin/omtcpsrv.cc,
31387           common/database.h,docs/,include/xapian/database.h,tests/api_db.cc:
31388           Added constructors to Database and WritableDatabase which fulfil the
31389           role that the Auto::open() factory functions currently do.
31390           Auto::open() is now deprecated.
31391         * api/,backends/inmemory/inmemory_database.cc,
31392           backends/quartz/quartz_database.cc,backends/quartz/quartz_postlist.h,
31393           common/expandweight.h,common/stats.h,include/xapian.h:
31394           #include <xapian.h> no longer pulls in xapian/output.h - this
31395           removes the external ability to write a Xapian object to an
31396           ostream directly, as it's little used and potentially dangerous
31397           ('cout << mset[i];' will compile, but you almost certainly meant
31398           'cout << *mset[i];').  You can get the old effect by writing
31399           'cout << obj->get_description();' instead of 'cout << obj;'.
31400           Adjusted all the library sources which relied on xapian/output.h
31401           pulling in various other xapian/ headers.
31402         * backends/muscat36/da_database.cc,backends/muscat36/db_database.cc:
31403           Debug output tweaks.
31404         * common/emptypostlist.h,matcher/mergepostlist.cc,matcher/multimatch.cc:
31405           Added EmptyPostList::get_maxweight() which always returns 0, so you
31406           no longer need to explicitly set a weighting scheme on an
31407           EmptyPostList.
31408         * common/omdebug.h: Only include omstringstream.h if
31409           XAPIAN_DEBUG_VERBOSE is in effect.
31410         * extra/Makefile.am: queryparsertest needs to link to libxapian.la
31411           explicitly.
31412         * net/progclient.cc: Whitespace tweak.
31413         * testsuite/: Eliminated barely used sources indexer.h,
31414           textfile_indexer.h, and textfile_indexer.cc.
31415         * testsuite/backendmanager.cc: Removed unused functions
31416           make_strvec() and index_file_to_database().
31418 Wed Dec 01 07:15:46 GMT 2004  Olly Betts <olly@survex.com>
31420         * PLATFORMS: SF CF x86_64 machine no longer needs --disable-shared.
31422 Tue Nov 30 21:53:33 GMT 2004  Olly Betts <olly@survex.com>
31424         * NEWS,PLATFORMS,configure.ac: Updated for 0.8.4 release.
31426 Tue Nov 30 03:07:43 GMT 2004  Olly Betts <olly@survex.com>
31428         * configure.ac,backends/database.cc,backends/quartz/bcursor.cc,
31429           backends/quartz/quartz_database.cc,
31430           backends/quartz/quartz_postlist.cc,common/omassert.h,
31431           common/omdebug.cc,common/omdebug.h,docs/doxygen_full_conf.in,
31432           matcher/localmatch.cc,matcher/multimatch.cc,matcher/stats.cc,
31433           tests/apitest.cc,tests/btreetest.cc,testsuite/backendmanager.cc,
31434           testsuite/backendmanager.h,testsuite/testsuite.cc: Rename all the
31435           MUS_xxx defines to XAPIAN_xxx.
31437 Tue Nov 30 02:36:33 GMT 2004  Olly Betts <olly@survex.com>
31439         * configure.ac,backends/quartz/btree.cc: Get configure to probe for
31440           the prototypes (if any) needed for pread and pwrite.
31442 Tue Nov 30 01:09:26 GMT 2004  Olly Betts <olly@survex.com>
31444         * backends/quartz/btree.cc: Instead of trying to coax pread/pwrite
31445           prototypes out of the system headers, let's try just providing our
31446           own!
31448 Mon Nov 29 19:51:13 GMT 2004  Olly Betts <olly@survex.com>
31450         * extra/Makefile.am: Moved -no-undefined to the right place, plus we
31451           also need to pass @ldflags@ and ../libxapian.la in
31452           libxapianqueryparser_la_LIBADD.
31454 Mon Nov 29 18:28:57 GMT 2004  Olly Betts <olly@survex.com>
31456         * AUTHORS: Updated.
31458 Mon Nov 29 18:27:12 GMT 2004  Olly Betts <olly@survex.com>
31460         * extra/Makefile.am: Added -no-undefined to
31461           libxapianqueryparser_la_LDFLAGS so it builds on mingw.
31463 Mon Nov 29 17:46:54 GMT 2004  Olly Betts <olly@survex.com>
31465         * tests/Makefile.am: Don't try to run "runtest" as a test - it just
31466           needs to be a dependency of the tests.
31468 Sat Nov 27 02:58:28 GMT 2004  Olly Betts <olly@survex.com>
31470         * backends/inmemory/dir_contents: Trimmed whitespace.
31472 Sat Nov 27 02:05:51 GMT 2004  Olly Betts <olly@survex.com>
31474         * NEWS: Updated ready for 0.8.4 release.
31476 Sat Nov 27 02:03:40 GMT 2004  Olly Betts <olly@survex.com>
31478         * tests/Makefile.am: Added a dependency so "make check" regenerates
31479           runtest if necessary.
31481 Sat Nov 27 02:02:58 GMT 2004  Olly Betts <olly@survex.com>
31483         * AUTHORS: Updated.
31485 Sat Nov 27 01:59:18 GMT 2004  Olly Betts <olly@survex.com>
31487         * README: Minor tweak.
31489 Sat Nov 27 01:58:53 GMT 2004  Olly Betts <olly@survex.com>
31491         * configure.ac: Improved a couple of comments.
31493 Sat Nov 27 01:42:32 GMT 2004  Olly Betts <olly@survex.com>
31495         * docs/: Trimmed trailing whitespace.
31497 Sat Nov 27 01:41:33 GMT 2004  Olly Betts <olly@survex.com>
31499         * docs/stemming.html: Reworded text from BrightStation times which
31500           talked about "the open source release".
31502 Fri Nov 26 17:32:55 GMT 2004  Olly Betts <olly@survex.com>
31504         * docs/indexerquickstart.html: Removed dead documentation.
31506 Fri Nov 26 17:11:19 GMT 2004  Olly Betts <olly@survex.com>
31508         * PLATFORMS: Updated with new cygwin report.
31510 Fri Nov 26 17:07:21 GMT 2004  Olly Betts <olly@survex.com>
31512         * tests/api_anydb.cc,tests/api_nodb.cc,docs/bm25.html,
31513           include/xapian/enquire.h,matcher/bm25weight.cc: Renamed BM25
31514           parameters to match standard naming in papers and elsewhere
31515           (A->k3, B->k1, C->k2, D->b), eliminated the extra factor of 2
31516           which our C had, and reordered the parameters to k1, k2, k3.
31517           This is an incompatible API change for BM25Weight(), so if
31518           you are using custom parameters for BM25 you'll need to
31519           update your code.
31521 Fri Nov 26 15:20:16 GMT 2004  Olly Betts <olly@survex.com>
31523         * tests/runtest.in: Allow VALGRIND environmental variable to override
31524           the value we got from configure.
31526 Fri Nov 26 03:50:36 GMT 2004  Olly Betts <olly@survex.com>
31528         * matcher/bm25weight.cc,matcher/tradweight.cc: termfreq is always
31529           exact for matching (we only approximate it for query expansion)
31530           so replace code to work around bad approximations with Assert() to
31531           make sure this never happens.
31533 Fri Nov 26 00:19:22 GMT 2004  Olly Betts <olly@survex.com>
31535         * matcher/expandweight.cc,matcher/tradweight.cc: If we estimate the
31536           term frequency, ensure it has a sane value (>= r and <= N - R + r)
31537           rather than bodging around the problem later on.
31539 Thu Nov 25 01:29:36 GMT 2004  Olly Betts <olly@survex.com>
31541         * backends/quartz/quartz_database.cc: Fixed recent cygwin change to
31542           actually compile.
31544 Thu Nov 25 01:06:03 GMT 2004  Olly Betts <olly@survex.com>
31546         * bin/quartzcompact.cc: Added --help and --version; Check that the
31547           source path and desitination path aren't the same; Report each table
31548           name when we start compacting it, and some simple stats on the
31549           compaction achieved when we finish.
31551 Tue Nov 23 16:19:09 GMT 2004  Olly Betts <olly@survex.com>
31553         * configure.ac: Fixed m4 quoting problem.
31555 Tue Nov 23 12:47:54 GMT 2004  Olly Betts <olly@survex.com>
31557         * configure.ac: Fix the test for GCC3 used to turn on -Werror with
31558           --enable-maintainer-mode.
31560 Mon Nov 22 03:08:10 GMT 2004  Olly Betts <olly@survex.com>
31562         * PLATFORMS: Assorted updates.
31564 Mon Nov 22 02:15:22 GMT 2004  Olly Betts <olly@survex.com>
31566         * tests/quartztest.cc: Test with DB_CREATE_OR_OPEN in writelock1.
31568 Mon Nov 22 01:37:13 GMT 2004  Olly Betts <olly@survex.com>
31570         * common/utils.cc: define NOMINMAX as a cleaner way to prevent
31571           windows.h from polluting the namespace and colliding with ANSI C++.
31573 Sat Nov 20 14:36:43 GMT 2004  Olly Betts <olly@survex.com>
31575         * tests/runtest.in: --logfile-fd was renamed to --log-fd in valgrind
31576           2.1.2 with no support for the old option name, so we must probe
31577           to decide which to use.
31579 Fri Nov 19 13:18:43 GMT 2004  Olly Betts <olly@survex.com>
31581         * backends/quartz/bcursor.cc,backends/quartz/bcursor.h: Eliminated
31582           Bcursor::get_tag() - it's an internal method only used from one
31583           other method, and it now just a trivial wrapper around
31584           Btree::read_tag().
31586 Fri Nov 19 04:20:39 GMT 2004  Olly Betts <olly@survex.com>
31588         * backends/quartz/bcursor.cc,backends/quartz/btree.cc,
31589           backends/quartz/btree.h: Factored out near identical code from
31590           Btree::find_tag() and Bcursor::get_tag() into Btree::read_tag().
31592 Thu Nov 18 03:27:52 GMT 2004  Olly Betts <olly@survex.com>
31594         * backends/quartz/btree.cc: Applied the Quartz "DANGEROUS" patch, but
31595           disabled for now.  This way it won't keep being broken by changes
31596           to the code.
31598 Tue Nov 16 04:29:25 GMT 2004  Olly Betts <olly@survex.com>
31600         * backends/quartz/btree.cc: Ah, it's __sun__/__sun/sun, not
31601           __solaris__ (at least for x86 Solaris 9).
31603 Tue Nov 16 02:56:44 GMT 2004  Olly Betts <olly@survex.com>
31605         * backends/quartz/btree.cc: Solaris defines __solaris__ not
31606           __SOLARIS__.
31608 Mon Nov 15 12:40:38 GMT 2004  Olly Betts <olly@survex.com>
31610         * tests/api_db.cc: Added new test userweight1 to test user defined
31611           matching schemes.
31613 Sun Nov 14 05:20:34 GMT 2004  Olly Betts <olly@survex.com>
31615         * backends/quartz/quartz_metafile.cc,
31616           backends/quartz/quartz_metafile.h: Removed unused
31617           QuartzMetaFile::erase() method.
31619 Sun Nov 14 04:55:05 GMT 2004  Olly Betts <olly@survex.com>
31621         * backends/quartz/quartz_database.cc: For cygwin, use the underlying
31622           MoveFile API call for locking, as link() doesn't work on FAT
31623           partitions.  And don't rely on HAVE_LINK to control whether we
31624           use link() otherwise - if the configure test somehow misfires, a
31625           compilation error is better than using rename() on Unix as that
31626           would cause a second writer to smash the lock of the first.
31628 Thu Nov 11 06:58:41 GMT 2004  Olly Betts <olly@survex.com>
31630         * backends/quartz/btree.cc: Removed superfluous statement.
31632 Tue Nov 09 23:50:10 GMT 2004  Olly Betts <olly@survex.com>
31634         * backends/quartz/btree.cc: Need to include sys/types.h to define
31635           ssize_t, size_t, and off_t before we prototype pread and pwrite
31636           for OSF.
31638 Tue Nov 09 22:39:00 GMT 2004  Olly Betts <olly@survex.com>
31640         * backends/quartz/btree.cc: Tweaked the pread/pwrite mess to try to
31641           get it to work on OSF and x86 Solaris while not breaking it
31642           elsewhere.
31644 Tue Nov 09 19:29:37 GMT 2004  Olly Betts <olly@survex.com>
31646         * backends/quartz/btree.cc,backends/quartz/btree.h: More refactoring.
31648 Tue Nov 09 17:13:10 GMT 2004  Olly Betts <olly@survex.com>
31650         * backends/quartz/: More refactoring.  Also rearranged the contents
31651           of the quartz and btree headers, eliminating btree_types.h in the
31652           process.
31654 Tue Nov 09 16:47:13 GMT 2004  Olly Betts <olly@survex.com>
31656         * backends/quartz/quartz_metafile.cc: Using fdcloser is less clear in
31657           trivial cases.
31659 Tue Nov 09 16:38:47 GMT 2004  Olly Betts <olly@survex.com>
31661         * backends/quartz/quartz_database.cc: Close the fd of the lock file
31662           before trying to rename it on Windows.
31664 Tue Nov 09 07:58:02 GMT 2004  Olly Betts <olly@survex.com>
31666         * backends/quartz/btree.cc,backends/quartz/btree.h,
31667           backends/quartz/btree_util.h: More refactoring.
31669 Tue Nov 09 03:24:59 GMT 2004  Olly Betts <olly@survex.com>
31671         * xapian-config.in: Added --swigflags option for use with SWIG.
31673 Mon Nov 08 22:54:55 GMT 2004  Olly Betts <olly@survex.com>
31675         * configure.ac,xapian-config.in: If flags are needed to select ANSI
31676           mode with the current compiler, then make xapian-config --cxxflags
31677           include them so that Xapian users don't have to jump through the
31678           same hoops we do.
31680 Mon Nov 08 04:49:21 GMT 2004  Olly Betts <olly@survex.com>
31682         * backends/inmemory/inmemory_database.cc,
31683           backends/inmemory/inmemory_database.h,backends/muscat36/,
31684           backends/net/net_database.cc,backends/quartz/quartz_database.cc,
31685           backends/quartz/quartz_database.h,common/database.h,
31686           common/net_database.h,matcher/localmatch.cc: If a database contains
31687           no positional information, change NEAR and PHRASE queries into AND
31688           queries (as otherwise they'd return no matches at all) (bug#56).
31689         * tests/api_wrdb.cc: Added feature test phraseorneartoand1.
31691 Mon Nov 08 04:09:04 GMT 2004  Olly Betts <olly@survex.com>
31693         * configure.ac,backends/quartz/btree.cc: Improved what we do to
31694           turn on pread and pwrite declarations in unistd.h so that it works
31695           on OSF and doesn't need the HAVE_GLIBC test, yet still works on
31696           OpenBSD.
31698 Mon Nov 08 03:55:51 GMT 2004  Olly Betts <olly@survex.com>
31700         * backends/quartz/,testsuite/btreecheck.cc: More refactoring.
31702 Sun Nov 07 20:42:32 GMT 2004  Olly Betts <olly@survex.com>
31704         * configure.ac: One more tweak.
31706 Sun Nov 07 18:18:19 GMT 2004  Olly Betts <olly@survex.com>
31708         * configure.ac,include/xapian/version.h.in: Another tweak to hopefully
31709           get version.h generation to work everywhere.
31711 Sun Nov 07 15:01:23 GMT 2004  Olly Betts <olly@survex.com>
31713         * configure.ac,include/xapian/version.h.in: Terminating lines with 'N'
31714           makes Sun's C++ unhappy.  Try ',' instead.
31716 Sun Nov 07 03:54:42 GMT 2004  Olly Betts <olly@survex.com>
31718         * tests/api_nodb.cc: Added test_weight1 which tests the built-in
31719           Xapian::Weight subclasses (bug#8).
31721 Sun Nov 07 03:36:19 GMT 2004  Olly Betts <olly@survex.com>
31723         * backends/quartz/btree.cc,backends/quartz/btree_util.h,
31724           testsuite/btreecheck.cc: More refactoring.
31726 Sun Nov 07 03:33:24 GMT 2004  Olly Betts <olly@survex.com>
31728         * matcher/bm25weight.cc,matcher/tradweight.cc: Fixed definitions to
31729           match declarations after recent change.
31731 Sun Nov 07 02:33:50 GMT 2004  Olly Betts <olly@survex.com>
31733         * configure.ac: Noted LIBRARY_VERSION_INFO which 0.8.4 will get.
31735 Sun Nov 07 02:28:38 GMT 2004  Olly Betts <olly@survex.com>
31737         * include/xapian/enquire.h: BoolWeight::unserialise() returns
31738           BoolWeight*, etc.  BoolWeight::clone() returns BoolWeight *.
31740 Sun Nov 07 02:24:17 GMT 2004  Olly Betts <olly@survex.com>
31742         * HACKING: Note that C++ style casts are preferable to C style casts;
31743           Improve wording in a few places.
31745 Sun Nov 07 01:05:58 GMT 2004  Olly Betts <olly@survex.com>
31747         * backends/quartz/btree.cc,backends/quartz/btree_util.h,
31748           testsuite/btreecheck.cc: Moved set_block_given_by()
31749           and block_given_by() into Item class.
31751 Sat Nov 06 21:16:15 GMT 2004  Olly Betts <olly@survex.com>
31753         * configure.ac,include/xapian/version.h.in: Fix generation of
31754           version.h to work with aCC -E which concatenates adjacent literal
31755           strings.
31757 Sat Nov 06 20:58:00 GMT 2004  Olly Betts <olly@survex.com>
31759         * backends/quartz/,testsuite/btreecheck.cc: Started to refactor the
31760           Btree manager by introducing Item and Key classes which take care
31761           of handling the on-disk format.
31763 Sat Nov 06 15:40:05 GMT 2004  Olly Betts <olly@survex.com>
31765         * xapian-config.in,m4/xapian.m4: Pass across ac_top_srcdir and use it
31766           if provided to say "configure.ac" or "configure.in" rather than
31767           "configure.in (or configure.ac)" in the "Add AC_PROG_LIBTOOL"
31768           error message.
31770 Sat Nov 06 14:49:05 GMT 2004  Olly Betts <olly@survex.com>
31772         * configure.ac: Updated comment - we now find SOURCEDOC in 2 goes (as
31773           there are no longer any C sources).
31775 Sat Nov 06 14:43:16 GMT 2004  Olly Betts <olly@survex.com>
31777         * configure.ac: Oops, STLPORT_CXXFLAGS *is* used (in xapian-config.in)
31778           so revert the change which removes it.
31780 Sat Nov 06 13:37:23 GMT 2004  Olly Betts <olly@survex.com>
31782         * include/xapian/enquire.h,matcher/bm25weight.cc,
31783           matcher/tradweight.cc: Move virtual methods of BM25Weight and
31784           TradWeight out of the header.
31786 Sat Nov 06 13:19:32 GMT 2004  Olly Betts <olly@survex.com>
31788         * configure.ac,include/xapian/version.h.in: Another rework of how
31789           include/xapian/version.h is generated - this time to make it work
31790           with Sun's C++ compiler again; XAPIAN_VERSION is now a string;
31791           Define XAPIAN_REVISION (which is 4 for version 0.8.4).
31793 Sat Nov 06 04:22:57 GMT 2004  Olly Betts <olly@survex.com>
31795         * configure.ac: Don't AC_SUBST(STLPORT_CXXFLAGS) as it is never used
31796           that way (it's included in AM_CXXFLAGS).
31798 Sat Nov 06 01:03:53 GMT 2004  Olly Betts <olly@survex.com>
31800         * testsuite/testsuite.h: Removed incorrect comment about how STRINGIZE
31801           is used.
31803 Fri Nov 05 14:41:59 GMT 2004  Olly Betts <olly@survex.com>
31805         * include/xapian/database.h: Removed a default parameter value from one
31806           variant of open_db so that there's only one candidate for
31807           open_db(string).
31809 Fri Nov 05 14:40:38 GMT 2004  Olly Betts <olly@survex.com>
31811         * backends/database.cc: Renamed parameter from keys to values to
31812           reflect current external naming.
31814 Fri Nov 05 14:38:07 GMT 2004  Olly Betts <olly@survex.com>
31816         * include/xapian/version.h.in,configure.ac: Fixed generation of
31817           include/xapian/version.h to work with aCC.
31819 Thu Nov 04 12:17:50 GMT 2004  Olly Betts <olly@survex.com>
31821         * configure.ac: Try "-std strict_ansi" for Compaq C++.
31823 Thu Nov 04 11:22:52 GMT 2004  Olly Betts <olly@survex.com>
31825         * configure.ac: Fourth argument to AC_CHECK_HEADERS must be non-empty
31826           to make a difference.
31828 Thu Nov 04 10:21:25 GMT 2004  Olly Betts <olly@survex.com>
31830         * configure.ac: Found clean fix for inttypes.h problem (previous bodge
31831           didn't work anyway).
31833 Thu Nov 04 01:18:55 GMT 2004  Olly Betts <olly@survex.com>
31835         * configure.ac: Eliminated use of \( \) in sed expression as it
31836           appears to cause problems on HP-UX.
31838 Thu Nov 04 00:54:11 GMT 2004  Olly Betts <olly@survex.com>
31840         * configure.ac: Added icky workaround to Compaq C++ oddness - cc can
31841           find inttypes.h but cxx can't.
31843 Wed Nov 03 23:58:48 GMT 2004  Olly Betts <olly@survex.com>
31845         * api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
31846           net/socketserver.cc: Tweaked to compile with Compaq C++.
31848 Wed Nov 03 22:55:04 GMT 2004  Olly Betts <olly@survex.com>
31850         * configure.ac: Need to put flags to select ANSI C++ mode in CXXFLAGS
31851           not AM_CXXFLAGS.
31853 Wed Nov 03 22:27:08 GMT 2004  Olly Betts <olly@survex.com>
31855         * api/omenquire.cc: Fixed typo.
31857 Wed Nov 03 21:58:53 GMT 2004  Olly Betts <olly@survex.com>
31859         * api/omenquire.cc: Added explicit cast to try to help Compaq C++
31860           build.
31862 Wed Nov 03 21:38:29 GMT 2004  Olly Betts <olly@survex.com>
31864         * configure.ac: Probe for C++ compiler switches for ANSI mode as early
31865           as possible.  With Compaq's C++, we need -D__USE_STD_IOSTREAM to
31866           successfully #include <streambuf>.
31868 Wed Nov 03 21:07:43 GMT 2004  Olly Betts <olly@survex.com>
31870         * configure.ac: Fixed snprintf configure test.
31872 Wed Nov 03 19:37:32 GMT 2004  Olly Betts <olly@survex.com>
31874         * common/utils.cc: Fixed typo.
31876 Wed Nov 03 19:27:22 GMT 2004  Olly Betts <olly@survex.com>
31878         * configure.ac,common/utils.cc: Improved snprintf checking.
31880 Wed Nov 03 15:43:54 GMT 2004  Olly Betts <olly@survex.com>
31882         * getopt/getopt.cc: Fixed to compile when not using glibc.
31884 Wed Nov 03 14:55:29 GMT 2004  Olly Betts <olly@survex.com>
31886         * bin/omtcpsrv.cc,bin/quartzdump.cc,common/Makefile.am,common/getopt.h,
31887           common/gnu_getopt.h,getopt/,testsuite/testsuite.cc: Major overhaul
31888           of getopt use.  Move from getopt(), getopt_long(), getopt_long_only()
31889           to gnu_getopt(), etc so we don't need to dance around avoiding
31890           clashes with getopt() stuff in system headers.  The new gnu_getopt.h
31891           header is cruft free and hopefully won't trip up assorted compilers
31892           or platforms.
31894 Wed Nov 03 14:53:39 GMT 2004  Olly Betts <olly@survex.com>
31896         * tests/Makefile.am: quartztest doesn't use getopt directly, so no
31897           need to link it.
31899 Wed Nov 03 12:56:56 GMT 2004  Olly Betts <olly@survex.com>
31901         * tests/stemtest.cc: Prune unused #includes.
31903 Wed Nov 03 03:47:46 GMT 2004  Olly Betts <olly@survex.com>
31905         * getopt/getopt.cc: Defining _NO_PROTO is a really bad idea for C++
31906           code!
31908 Wed Nov 03 03:34:06 GMT 2004  Olly Betts <olly@survex.com>
31910         * configure.ac: Removed AC_HEADER_STDC - Compaq's C++ compiler can't
31911           find inttypes.h, but their C compiler can!
31913 Wed Nov 03 02:48:04 GMT 2004  Olly Betts <olly@survex.com>
31915         * net/tcpclient.cc,net/tcpserver.cc: Use SOCKLEN_T for the type we
31916           need to pass to various socket calls, since HPUX defines socklen_t
31917           yet wants int in those calls.
31919 Wed Nov 03 02:43:26 GMT 2004  Olly Betts <olly@survex.com>
31921         * autoconf/type_socklen_t.m4,matcher/networkmatch.cc,net/: If
31922           __WIN32__ is defined, we want winsock2.h instead of sys/socket.h.
31923           Mingw doesn't seem to even have the latter, so I think previously
31924           we've been compiling by picking one up from somewhere random!
31926 Wed Nov 03 01:10:01 GMT 2004  Olly Betts <olly@survex.com>
31928         * autoconf/type_socklen_t.m4: Rewritten to work with HPUX which
31929           helpfully defines socklen_t but doesn't use it!
31931 Tue Nov 02 21:29:40 GMT 2004  Olly Betts <olly@survex.com>
31933         * getopt/getopt.cc: Fixes for Compaq C++.
31935 Tue Nov 02 18:51:43 GMT 2004  Olly Betts <olly@survex.com>
31937         * getopt/getopt.cc: Protect getopt definition for possible getopt
31938           macro declared in getopt.h.
31940 Tue Nov 02 16:52:21 GMT 2004  Olly Betts <olly@survex.com>
31942         * configure.ac: AM_CONFIG_HEADER -> AC_CONFIG_HEADERS; removed
31943           commented out AC_LANG_SAVE and AC_LANG_RESTORE.
31945 Tue Nov 02 15:56:02 GMT 2004  Olly Betts <olly@survex.com>
31947         * configure.ac: # comments -> dnl comments.
31949 Tue Nov 02 15:54:46 GMT 2004  Olly Betts <olly@survex.com>
31951         * configure.ac: $GCC -> $GXX; $CC -> $CXX.
31953 Tue Nov 02 15:38:21 GMT 2004  Olly Betts <olly@survex.com>
31955         * configure.ac,docs/Makefile.am: Removed SOURCEDOC_C_SRC.
31957 Tue Nov 02 06:51:39 GMT 2004  Olly Betts <olly@survex.com>
31959         * getopt/getopt.cc,getopt/getopt1.cc: Fixed function declarations to
31960           not use K&R C syntax.
31962 Tue Nov 02 05:31:57 GMT 2004  Olly Betts <olly@survex.com>
31964         * getopt/getopt.cc: Make _getopt_internal extern "C" too.
31966 Tue Nov 02 04:43:08 GMT 2004  Olly Betts <olly@survex.com>
31968         * Makefile.am,configure.ac,HACKING,PLATFORMS,backends/muscat36/,
31969           getopt/Makefile.am,getopt/getopt.cc,getopt/getopt1.cc,languages/:
31970           Change the few C sources to be C++.  This way we don't need to
31971           worry about configure choosing a mismatching pair of compilers,
31972           or about whether configure tests with the C compiler don't apply
31973           to the C++ compiler, or vice versa.
31975 Tue Nov 02 04:31:49 GMT 2004  Olly Betts <olly@survex.com>
31977         * backends/muscat36/: More C casts converted to C++ casts.
31979 Tue Nov 02 04:28:07 GMT 2004  Olly Betts <olly@survex.com>
31981         * matcher/bm25weight.cc,matcher/tradweight.cc: More C casts converted
31982           to C++ casts.
31984 Tue Nov 02 03:22:52 GMT 2004  Olly Betts <olly@survex.com>
31986         * backends/muscat36/: Removed unused test harness sources.
31988 Tue Nov 02 02:44:34 GMT 2004  Olly Betts <olly@survex.com>
31990         * languages/pool.c,languages/pool.h: Removed unused sources.
31992 Tue Nov 02 01:51:30 GMT 2004  Olly Betts <olly@survex.com>
31994         * configure.ac: AC_TYPE_SIZE_T causes problems with Compaq C++ when it
31995           fails to spot size_t (which is there) and the "#define size_t
31996           unsigned long" it adds to config.h breaks "using std::size_t;".
31997           Also removed AC_C_CONST as I don't believe that's needed either
31998           in a largely C++ library.  Both of these have been in configure.in
31999           since the very first version so I suspect autoscan decided we wanted
32000           them.
32002 Mon Nov 01 05:44:02 GMT 2004  Olly Betts <olly@survex.com>
32004         * matcher/multimatch.cc: Fixed compilation problem on alpha Linux.
32006 Mon Nov 01 03:16:36 GMT 2004  Olly Betts <olly@survex.com>
32008         * api/omqueryinternal.cc,api/omstem.cc,
32009           backends/inmemory/inmemory_database.h,
32010           backends/multi/multi_termlist.h,backends/quartz/,
32011           extra/queryparser.yy,matcher/,net/tcpserver.cc,tests/api_anydb.cc,
32012           tests/api_db.cc,tests/quartztest.cc,testsuite/backendmanager.cc,
32013           testsuite/btreecheck.cc,testsuite/testsuite.cc: Changed C style
32014           casts to C++ style.  The syntax is ugly, but they do make the intent
32015           clearer which is a good thing.
32017 Mon Nov 01 02:56:31 GMT 2004  Olly Betts <olly@survex.com>
32019         * configure.ac: Select ANSI iostream implementation for Compaq C++.
32021 Mon Nov 01 02:41:58 GMT 2004  Olly Betts <olly@survex.com>
32023         * configure.ac: Compaq's C++ compiler doesn't know snprintf, yet their
32024           C compiler does.  Let's try running *all* the configure checks with
32025           the C++ compiler, since that's what we compile most code with.
32027 Mon Nov 01 01:12:43 GMT 2004  Olly Betts <olly@survex.com>
32029         * common/netutils.cc: Fixed to compile.
32031 Mon Nov 01 01:06:13 GMT 2004  Olly Betts <olly@survex.com>
32033         * common/Makefile.am,common/netutils.cc,common/netutils.h:
32034           encode_tname() and decode_tname() aren't really sensible candidates
32035           for inlining so move them out of a header.
32037 Sun Oct 31 15:34:18 GMT 2004  Olly Betts <olly@survex.com>
32039         * configure.ac: Turn on -AA when compiling with HP's aCC.
32041 Sun Oct 31 15:10:02 GMT 2004  Olly Betts <olly@survex.com>
32043         * testsuite/testutils.cc: Fixed mset_range_is_same() and
32044           mset_range_is_same_weights() which were only comparing the
32045           first items in the range.  Luckily the tests still all pass
32046           so this wasn't hiding any bugs.
32048 Sat Oct 30 19:15:48 BST 2004  Olly Betts <olly@survex.com>
32050         * configure.ac: Disable pread/pwrite on HP-UX as they don't work when
32051           LFS in enabled, and we definitely want LFS.
32053 Sat Oct 30 16:42:24 BST 2004  Olly Betts <olly@survex.com>
32055         * backends/quartz/bcursor.cc: Fix Bcursor::del() which didn't always
32056           leave the cursor on the next item like it should.
32057         * backends/quartz/quartz_postlist.cc: If we're removing a posting
32058           list entirely, often there will only be one chunk, so avoid
32059           creating a Bcursor in this case.
32061 Sat Oct 30 16:55:19 BST 2004  Olly Betts <olly@survex.com>
32063         * languages/header.h: Removed unused #define MAXINT and MININT which
32064           were clashing with some header on HP-UX.
32066 Sat Oct 30 07:09:33 BST 2004  Olly Betts <olly@survex.com>
32068         * docs/bm25.html,docs/intro_ir.html: Reworked to talk about Xapian
32069           rather than Muscat.  Also improved the appearance of the formulae.
32071 Sat Oct 30 06:07:14 BST 2004  Olly Betts <olly@survex.com>
32073         * backends/quartz/btree.cc: Btree::read_block - debug log the value
32074           of p, not the irrelevant contents of the block it points to.
32076 Fri Oct 29 22:37:31 BST 2004  Olly Betts <olly@survex.com>
32078         * backends/quartz/quartz_postlist.cc: Improved comments.
32080 Fri Oct 29 05:10:02 BST 2004  Olly Betts <olly@survex.com>
32082         * backends/quartz/btree.cc: Fixed ultra-obscure bug in the code which
32083           finds a key suitable to discriminating between two blocks in a
32084           B-tree branch (discovered by reading the code).  Comparing the keys
32085           didn't consider the length of the second, so it is possible the code
32086           would miscompare.  But in reality this is extremely unlikely to
32087           happen, and even then would probably just mean that the
32088           discriminating key wouldn't be as short as it could be.
32090 Fri Oct 29 04:12:09 BST 2004  Olly Betts <olly@survex.com>
32092         * backends/quartz/btree.cc: Simplified Btree::compare_keys() by
32093           removing the last case which was dead code as it was covered by
32094           an earlier case.
32096 Wed Oct 27 21:17:12 BST 2004  Olly Betts <olly@survex.com>
32098         * HACKING,tests/runtest.in:
32099           Enhanced runtest to allow it to run test programs under valgrind
32100           and other tools (gdb was already supported).
32101         * testsuite/testsuite.cc: Point the user to the runtest script if
32102           srcdir can't be guessed.  And no longer look for the test program
32103           in the tests subdirectory of the current directory.
32104         * common/omdebug.cc: Removed compatibility code for checking
32105           OM_DEBUG_FILE and OM_DEBUG_TYPES.
32106         * HACKING: Document that %% in XAPIAN_DEBUG_LOG is substituted with
32107           the process-id, and that setting XAPIAN_DEBUG_FLAGS to -1 enables
32108           all debug messages.
32109         * HACKING: Valgrind now supports x86 FreeBSD and PowerPC Linux.
32110         * HACKING: Removed mentions of long-dead configure options
32111           --enable-profiling, --enable-purify and --enable-insure.
32113 Wed Oct 27 21:16:10 BST 2004  Olly Betts <olly@survex.com>
32115         * include/xapian/enquire.h: Document parameters of
32116           Enquire::register_match_decider().
32118 Wed Oct 27 21:14:32 BST 2004  Olly Betts <olly@survex.com>
32120         * PLATFORMS: Updated.
32122 Wed Oct 13 20:21:38 BST 2004  Olly Betts <olly@survex.com>
32124         * backends/quartz/btree.cc,backends/quartz/btree.h: Revert the
32125           previous change as runtime sized arrays are a g++ extension.
32126           Calling new and delete on every call to add_item() is probably
32127           unwise.
32129 Tue Oct 12 23:40:36 BST 2004  Olly Betts <olly@survex.com>
32131         * backends/quartz/btree.cc,backends/quartz/btree.h: split_p is only
32132           used by Btree::add_item(), so make it a temporary in that method
32133           rather than a class member variable which we need to take care to
32134           allocate and deallocate.
32136 Mon Oct 11 16:32:10 BST 2004  Olly Betts <olly@survex.com>
32138         * tests/btreetest.cc: Fix memory leaks in test_cursor1.
32140 Mon Oct 11 02:24:50 BST 2004  Olly Betts <olly@survex.com>
32142         * docs/quartzdesign.html: Use 5 tables in the example for how we keep
32143           revisions in step, since we use 5 tables in quartz.
32145 Thu Oct 07 22:51:28 BST 2004  Olly Betts <olly@survex.com>
32147         * backends/quartz/btree.cc: An interrupted update could cause any
32148           further updates to fail with "New revision too low" because the
32149           new revision was being calculated incorrectly - fixed.
32151 Wed Oct 06 15:42:31 BST 2004  Olly Betts <olly@survex.com>
32153         * backends/quartz/btree.cc,include/xapian/database.h: Check that any
32154           user specified block size is a power of 2.  And if the block size
32155           passed is invalid, use the default of 8192 rather than throwing an
32156           exception.
32158 Wed Oct 06 12:19:39 BST 2004  Olly Betts <olly@survex.com>
32160         * PLATFORMS: Updated from tinderbox.
32162 Wed Oct 06 01:10:46 BST 2004  Olly Betts <olly@survex.com>
32164         * backends/quartz/btree.cc,backends/quartz/quartz_document.cc,
32165           matcher/multimatch.cc,common/multimatch.h: Fix some warnings
32166           from Sun's C++ compiler.
32168 Thu Sep 30 22:16:37 BST 2004  Olly Betts <olly@survex.com>
32170         * common/utils.cc,common/utils.h: Fixes for win32 and sun's c++
32171           compiler.
32173 Thu Sep 30 18:24:20 BST 2004  Olly Betts <olly@survex.com>
32175         * common/utils.h,extra/queryparser.yy: Fixed bug which caused
32176           misparsing of certain prefixed queries, introduced by C_isXXXXX
32177           change.
32179 Thu Sep 30 11:09:17 BST 2004  Olly Betts <olly@survex.com>
32181         * tests/api_anydb.cc: Modified version of changequery1 fails - the
32182           fix is tricky, so just make it SKIP for now.
32184 Wed Sep 29 21:33:29 BST 2004  Olly Betts <olly@survex.com>
32186         * extra/Makefile.am: Fixed to work when srcdir != builddir.
32188 Wed Sep 29 18:52:04 BST 2004  Olly Betts <olly@survex.com>
32190         * PLATFORMS,docs/Makefile.am: Workaround odd latex problem.
32192 Wed Sep 29 17:10:00 BST 2004  Olly Betts <olly@survex.com>
32194         * configure.ac,docs/doxygen_api_conf.in,docs/doxygen_full_conf.in:
32195           Updated doxygen conf files for doxygen 1.3.8.
32197 Wed Sep 29 16:52:53 BST 2004  Olly Betts <olly@survex.com>
32199         * common/utils.cc,common/utils.h,extra/Makefile.am,
32200           extra/queryparser.yy,tests/api_anydb.cc,testsuite/index_utils.cc:
32201           Provide our own C_isalpha(), etc replacements for isalpha(), etc
32202           which always work in the C locale and avoid signed char problems.
32204 Tue Sep 28 00:04:11 BST 2004  Olly Betts <olly@survex.com>
32206         * common/utils.cc,common/utils.h: rmdir() isn't a sensible candidate
32207           for inlining so move it out of the header.
32209 Mon Sep 27 17:33:23 BST 2004  Olly Betts <olly@survex.com>
32211         * extra/queryparser.yy: Be smarter about when to add a ':' when adding
32212           a term prefix.
32214 Mon Sep 27 16:01:37 BST 2004  Olly Betts <olly@survex.com>
32216         * docs/scalability.html: Added note warning about benchmarking from
32217           cold.
32219 Mon Sep 27 15:20:13 BST 2004  Olly Betts <olly@survex.com>
32221         * HACKING: Note that we use doxygen 1.3.8 for snapshots and releases;
32222           Note that --enable-maintainer-mode now automatically enables -Werror
32223           with GCC 3.0 or newer.
32225 Wed Sep 22 16:49:20 BST 2004  Olly Betts <olly@survex.com>
32227         * matcher/: Pruned unneeded #include-s and other tidying, some
32228           enabled by the previous change.
32230 Wed Sep 22 14:04:27 BST 2004  Olly Betts <olly@survex.com>
32232         * common/positionlist.h,matcher/: Moved all of the implementations
32233           of the XXXPostList classes from the .h files into the .cc files.
32234           All the methods are virtual, so we aren't going to gain anything
32235           from being able to inline them.
32237 Wed Sep 22 02:58:59 BST 2004  Olly Betts <olly@survex.com>
32239         * configure.ac: Automatically add -Werror to CFLAGS and CXXFLAGS if
32240           maintainer mode is enabled and we're using GCC3 or newer.  Don't
32241           do this for older GCCs as GCC 2.95 issues spurious warnings.
32243 Wed Sep 22 02:41:41 BST 2004  Olly Betts <olly@survex.com>
32245         * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h:
32246           Introduced CASSERT_TYPE_UNSIGNED to replace the common use of
32247           CASSERT to assert at compile time that a type is unsigned.
32249 Tue Sep 21 15:58:05 BST 2004  Olly Betts <olly@survex.com>
32251         * PLATFORMS: Removed reports from versions prior to 0.7.0.  So much
32252           has changed that these are of little value.
32254 Mon Sep 20 15:24:27 BST 2004  Olly Betts <olly@survex.com>
32256         * NEWS,PLATFORMS,configure.ac: Version 0.8.3.
32258 Mon Sep 20 15:13:34 BST 2004  Olly Betts <olly@survex.com>
32260         * AUTHORS: Updated.
32262 Mon Sep 20 14:26:35 BST 2004  Olly Betts <olly@survex.com>
32264         * xapian.spec.in: Removed reference to xapian-examples' createdatabase
32265           (which is no longer in xapian-examples).
32267 Mon Sep 20 13:06:59 BST 2004  Olly Betts <olly@survex.com>
32269         * xapian.spec.in: Updated version from Fabrice Colin (incorporating
32270           changes from Alan Cox's RPM spec files): split off libs into a
32271           separate package to allow 32 and 64 bit versions to be installed
32272           concurrently; include binaries from xapian-examples; updated source
32273           URLs.
32275 Mon Sep 20 03:25:44 BST 2004  Olly Betts <olly@survex.com>
32277         * tests/api_anydb.cc: Added regression test for previous bug (test
32278           checkatleast1).
32280 Mon Sep 20 03:16:14 BST 2004  Olly Betts <olly@survex.com>
32282         * matcher/multimatch.cc: Fixed segfault with check_at_least when there
32283           were no matches.
32285 Sun Sep 19 17:54:52 BST 2004  Olly Betts <olly@survex.com>
32287         * api/omenquire.cc,common/omdebug.cc: Fixed to compile with debug
32288           tracing enabled.
32290 Sat Sep 18 19:02:54 BST 2004  Olly Betts <olly@survex.com>
32292         * tests/api_db.cc: Updated missed use of omprogsrv to xapian-progsrv.
32294 Tue Sep 14 18:09:19 BST 2004  Olly Betts <olly@survex.com>
32296         * xapian.spec.in,bin/.cvsignore,bin/Makefile.am,debian/control.in,
32297           debian/xapian-tools.install,docs/remote.html,tests/remotetest.cc,
32298           testsuite/backendmanager.cc: Rename omtcpsrv to xapian-tcpsrv and
32299           omprogsrv to xapian-progsrv.
32301 Tue Sep 14 16:25:06 BST 2004  Olly Betts <olly@survex.com>
32303         * xapian.spec.in: Fixed mangled URL in last checkin.
32305 Tue Sep 14 15:35:00 BST 2004  Olly Betts <olly@survex.com>
32307         * xapian.spec.in: Updated URL for tarball.
32309 Tue Sep 14 02:49:34 BST 2004  Olly Betts <olly@survex.com>
32311         * HACKING: Updated the "how to do a release" tasklist.
32313 Mon Sep 13 03:19:47 BST 2004  Olly Betts <olly@survex.com>
32315         * NEWS,PLATFORMS,configure.ac: Version 0.8.2.
32317 Sat Sep 11 16:39:08 BST 2004  Olly Betts <olly@survex.com>
32319         * include/xapian/version.h.in: GCC 3.1 reported the wrong value for
32320           __GXX_ABI_VERSION (100 not 101) so check 3.0 and 3.1 by version
32321           number, keeping the __GXX_ABI_VERSION check for newer versions.
32323 Sat Sep 11 02:57:48 BST 2004  Olly Betts <olly@survex.com>
32325         * backends/quartz/bcursor.cc: Fixed and reenabled Bcursor::prev()
32326           (not currently used, but it will be useful for running posting
32327           lists backwards!)
32329 Fri Sep 10 13:13:51 BST 2004  Olly Betts <olly@survex.com>
32331         * tests/Makefile.am: Need to ship test data for new test.
32333 Thu Sep 09 21:58:37 BST 2004  Olly Betts <olly@survex.com>
32335         * tests/api_db.cc: Extended feature test sortrel1 to check interaction
32336           with Enquire::set_sort_forward(false).
32338 Thu Sep 09 21:46:12 BST 2004  Olly Betts <olly@survex.com>
32340         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
32341           include/xapian/enquire.h,matcher/multimatch.cc,net/socketserver.cc,
32342           tests/api_db.cc,tests/testdata/apitest_sortrel.txt: You can now
32343           specify to sort by value, then relevance, then docid instead of
32344           by value then docid.
32346 Thu Sep 09 19:30:07 BST 2004  Olly Betts <olly@survex.com>
32348         * docs/todo.xml: Removed unused file - todo entries are now in
32349           bugzilla.
32351 Thu Sep 09 13:11:52 BST 2004  Olly Betts <olly@survex.com>
32353         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
32354           include/xapian/enquire.h,matcher/multimatch.cc,net/socketserver.cc:
32355           Added optional "checkatleast" parameter to Enquire::get_mset()
32356           which allows Omega's MIN_HITS functionality to be implemented
32357           in the matcher (a bit more efficient).
32359 Thu Sep 09 04:18:32 BST 2004  Olly Betts <olly@survex.com>
32361         * NEWS: Updated.
32363 Thu Sep 09 03:39:52 BST 2004  Olly Betts <olly@survex.com>
32365         * PLATFORMS: Updated from the tinderbox.  Sun's C++ compiler can
32366           now build Xapian on sparc!
32368 Thu Sep 09 02:19:43 BST 2004  Olly Betts <olly@survex.com>
32370         * tests/api_wrdb.cc: Added feature test for
32371           WritableDatabase::replace_document() and delete_document() with
32372           a unique term (apitest:uniqueterm1.
32373         * backends/inmemory/inmemory_alltermslist.cc,
32374           backends/inmemory/inmemory_database.cc,
32375           backends/inmemory/inmemory_database.h:
32376           Fixed bugs thrown up by the new test.
32378 Wed Sep 08 19:45:37 BST 2004  Olly Betts <olly@survex.com>
32380         * HACKING: Updated details of Solaris open workaround.
32382 Wed Sep 08 19:42:15 BST 2004  Olly Betts <olly@survex.com>
32384         * common/utils.h,backends/quartz/btree.cc,
32385           backends/quartz/quartz_database.cc,backends/quartz/quartz_log.cc:
32386           New version of the Solaris open dance - now we always pass in
32387           const char * for the filename, and we don't need the dance on
32388           new versions, so only dance if open is defined.
32390 Wed Sep 08 16:26:15 BST 2004  Olly Betts <olly@survex.com>
32392         * api/omquery.cc,include/xapian/query.h: Renamed Query::is_empty()
32393           to Query::empty() for consistency.  Keep Query::is_empty() for
32394           now as a deprecated alias.
32396 Wed Sep 08 16:24:44 BST 2004  Olly Betts <olly@survex.com>
32398         * tests/api_wrdb.cc: replace_doc -> replace_doc1; added new test
32399           replace_doc2 to test using replace_doc to add a document with
32400           a specified docid.
32402 Wed Sep 08 16:23:50 BST 2004  Olly Betts <olly@survex.com>
32404         * backends/inmemory/inmemory_database.h: Removed unused member
32405           variable "indexing".
32407 Wed Sep 08 16:14:47 BST 2004  Olly Betts <olly@survex.com>
32409         * backends/quartz/quartz_database.cc: If replace_document() is used
32410           to add a document with did greater than lastdocid, raise lastdocid
32411           so future calls to add_document() won't clash.
32413 Wed Sep 08 16:13:51 BST 2004  Olly Betts <olly@survex.com>
32415         * backends/inmemory/inmemory_database.cc: Fixed bug
32416           Database::replace_document() to work with a document id greater
32417           than lastdocid.
32419 Wed Sep 08 05:10:01 BST 2004  Olly Betts <olly@survex.com>
32421         * common/utils.h: The latest fcntl.h dance causes a compile error on
32422           mingw, so don't use it there.
32424 Wed Sep 08 03:38:20 BST 2004  Olly Betts <olly@survex.com>
32426         * common/utils.h: Use a namespace as an extra step in the Sun fcntl
32427           open64 dance.
32429 Tue Sep 07 02:33:50 BST 2004  Olly Betts <olly@survex.com>
32431         * tests/test.da: Another cruft file removed.
32433 Tue Sep 07 02:21:49 BST 2004  Olly Betts <olly@survex.com>
32435         * tests/btreetest.cc,tests/quartztest.cc: Moved overwrite1 from
32436           quartztest to btreetest.  Added const in a few places.
32438 Tue Sep 07 02:07:43 BST 2004  Olly Betts <olly@survex.com>
32440         * tests/quartztest.cc: Removed overwrite2 test.  Digging back in CVS
32441           it's been disabled since the day after it added.  After all this
32442           time it's hard to guess exactly what it was intended to test, so
32443           just removing it seems simplest.  We already have overwrite1 to test
32444           getting DatabaseModifiedError.
32446 Tue Sep 07 01:52:25 BST 2004  Olly Betts <olly@survex.com>
32448         * tests/btreetest.cc: Cleaned up paths to temporary Btrees.
32450 Mon Sep 06 17:51:27 BST 2004  Olly Betts <olly@survex.com>
32452         * tests/btreetest.cc,tests/quartztest.cc: Now that QuartzTable,
32453           QuartzDiskTable, QuartzBufferedTable, QuartzCursor,
32454           QuartzDiskCursor, and QuartzBufferedCursor are gone, move
32455           quartztest tests which now just use Btree and Bcursor to btreetest.
32456           This is more logical and should help make quartztest less of a
32457           monster to compile.
32459 Mon Sep 06 12:47:47 BST 2004  Olly Betts <olly@survex.com>
32461         * tests/Makefile.am: Ship testdata/apitest_allterms4.txt.
32463 Mon Sep 06 02:46:32 BST 2004  Olly Betts <olly@survex.com>
32465         * tests/quartztest.cc: Xapian::Database will create the directory for
32466           the database so there's no need to create it ourselves.
32468 Mon Sep 06 02:40:57 BST 2004  Olly Betts <olly@survex.com>
32470         * tests/,tests/testdata/apitest_allterms4.txt: Split off tests which
32471           require a writable database backend and tests which should work with
32472           any database backend from api_db.cc as it was getting rather large.
32473           Fixed simplequery2 to work with backends which don't return the
32474           document length (such as the muscat36 backends).  Fixed allterms4
32475           to work with muscat36 backends.
32477 Mon Sep 06 02:39:29 BST 2004  Olly Betts <olly@survex.com>
32479         * backends/muscat36/da_database.cc,backends/muscat36/db_database.cc:
32480           Fixed to compile now that internal_end_session() has gone.
32482 Mon Sep 06 00:59:36 BST 2004  Olly Betts <olly@survex.com>
32484         * tests/runtest.in: Added support for running gdb on a test program,
32485           automatically sorting out srcdir and libtool.
32487 Mon Sep 06 00:49:11 BST 2004  Olly Betts <olly@survex.com>
32489         * tests/apitest_parser.pm: Removed long unused file.
32491 Sun Sep 05 22:53:27 BST 2004  Olly Betts <olly@survex.com>
32493         * include/xapian/enquire.h: Tweaked documentation comment to stop
32494           doxygen parsing a hyphen as a single entry bullet point list.
32496 Sun Sep 05 20:20:01 BST 2004  Olly Betts <olly@survex.com>
32498         * testsuite/backendmanager.h: Added missing "std::" so code will
32499           compile with GCC >= 3.
32501 Sun Sep 05 13:54:58 BST 2004  Olly Betts <olly@survex.com>
32503         * testsuite/backendmanager.h: Removed superfluous "BackendManager::".
32505 Sun Sep 05 01:54:49 BST 2004  Olly Betts <olly@survex.com>
32507         * common/utils.cc,common/utils.h: Removed now unused files_exist()
32508           function.
32510 Sun Sep 05 01:50:35 BST 2004  Olly Betts <olly@survex.com>
32512         * tests/api_db.cc,tests/apitest.cc,tests/apitest.h,
32513           testsuite/backendmanager.cc,testsuite/backendmanager.h:
32514           Cleaned up BackendManager by removing complications only required
32515           by absentfile1 test, which can be implemented more directly anyway.
32517 Sun Sep 05 01:33:16 BST 2004  Olly Betts <olly@survex.com>
32519         * tests/quartztest.cc: Cleaned up rather odd code which is a hangover
32520           from when keys and tags weren't simply C++ strings.
32522 Sat Sep 04 12:35:12 BST 2004  Olly Betts <olly@survex.com>
32524         * HACKING: Updated details of which autotools we require.
32526 Fri Sep 03 17:51:59 BST 2004  Olly Betts <olly@survex.com>
32528         * configure.ac: Require autoconf 2.59.  Noted LIBRARY_VERSION_INFO
32529           which 0.8.2 will probably have.
32530         * Makefile.am: Require automake 1.8.5.
32532 Fri Sep 03 16:40:11 BST 2004  Olly Betts <olly@survex.com>
32534         * PLATFORMS: Updated with results from tinderbox.
32536 Fri Sep 03 14:34:00 BST 2004  Olly Betts <olly@survex.com>
32538         * autoconf/definedir.m4,autoconf/rjb_find_stlport.m4: Quote macro
32539           names to fix warning from newer aclocal.  Removed comments about
32540           future autodetection of stlport, as the user will always need to
32541           decide between the STL supplied with the compiler and stlport.
32543 Thu Sep 02 17:55:33 BST 2004  Olly Betts <olly@survex.com>
32545         * matcher/andpostlist.cc: Initialise lmax and rmax to 0.  Hopefully
32546           this will fix SIGFPE on apitest's qterminfo2 on alpha linux.
32548 Thu Sep 02 14:50:20 BST 2004  Olly Betts <olly@survex.com>
32550         * backends/quartz/quartz_database.cc: Not storing the document length
32551           and last docid on every add means that the magic key won't always
32552           exists when there are records and
32553           QuartzWritableDatabase::get_doccount() is sometimes off by one.  Fix
32554           crudely for now by making sure that the magic key does always exist.
32555           Longer term the magic key probably should be in the postlist table
32556           but that's an incompatible change.
32558 Wed Sep 01 16:15:23 BST 2004  Olly Betts <olly@survex.com>
32560         * backends/quartz/: Change QuartzWritableDatabase to store the total
32561           document length and the last docid itself rather than tallying added
32562           and removed document length and writing the last docid back every
32563           time a document is added.  This gives cleaner code and a small
32564           performance win.  Removed XAPIAN_FLUSH_THRESHOLD_LENGTH as we no
32565           longer tally the length changes, and made the default flush
32566           threshold 10000 documents (was 1000).
32568 Wed Sep 01 14:21:19 BST 2004  Olly Betts <olly@survex.com>
32570         * backends/quartz/btree.cc: Turn on previously commented-out code to
32571           make the first key null for blocks more than 1 away from the leaves.
32572           It saves disk space for a tiny CPU and RAM cost so is bound to be
32573           a win overall.
32575 Tue Aug 31 13:55:58 BST 2004  Olly Betts <olly@survex.com>
32577         * backends/quartz/btree.cc,backends/quartz/btree.h,
32578           backends/quartz/btree_util.h: Merged Btree::make_index_item() into
32579           Btree::enter_key().
32581 Tue Aug 31 01:07:19 BST 2004  Olly Betts <olly@survex.com>
32583         * NEWS: Updated in preparation for a release.
32585 Tue Aug 31 00:53:35 BST 2004  Olly Betts <olly@survex.com>
32587         * backends/quartz/btree.cc: Short-cutting Btree::cancel causes
32588           problems so disable that for the time being at least.
32590 Fri Aug 27 13:09:56 BST 2004  Olly Betts <olly@survex.com>
32592         * testsuite/btreecheck.cc: Fixed %% to % (presumably a hangover from
32593           converting printf to cout).
32595 Thu Aug 26 18:11:50 BST 2004  Olly Betts <olly@survex.com>
32597         * backends/quartz/quartz_postlist.cc: Reduce quartz postlist chunk
32598           threshold from 2048 to 2000 so that chunks won't get split by the
32599           Btree.
32601 Thu Aug 26 18:10:27 BST 2004  Olly Betts <olly@survex.com>
32603         * backends/quartz/quartz_record.cc: Throw DocNotFoundError if we
32604           try to delete a record which doesn't exist.
32606 Thu Aug 26 17:18:56 BST 2004  Olly Betts <olly@survex.com>
32608         * configure.ac: Don't define DATADIR - we no longer use it and clashes
32609           with more recent mingw headers.
32611 Wed Aug 25 22:47:06 BST 2004  Olly Betts <olly@survex.com>
32613         * docs/quartzdesign.html: Started section on quartzcompact.
32615 Wed Aug 25 22:45:48 BST 2004  Olly Betts <olly@survex.com>
32617         * api/omdatabase.cc,include/xapian/database.h: Changed new
32618           WritableDatabase::replace_document(term, doc) method to return
32619           the docid which the document was given.
32621 Tue Aug 24 13:45:52 BST 2004  Olly Betts <olly@survex.com>
32623         * api/omenquire.cc,include/xapian/enquire.h: Added new ESet methods
32624           swap(), back() and operator[].
32625         * include/xapian/enquire.h: Added documentation comments for
32626           MSet methods size(), empty(), swap(), begin(), end(), back().
32627         * include/xapian/enquire.h: Removed bogus documentation saying
32628           that some Enquire methods can throw DatabaseOpeningError.
32630 Tue Aug 24 10:24:30 BST 2004  Olly Betts <olly@survex.com>
32632         * HACKING: Noted automake 1.8 may be problematic.  Tweaked list of
32633           release tasks.
32635 Tue Aug 24 10:16:38 BST 2004  Olly Betts <olly@survex.com>
32637         * matcher/multimatch.cc: If a matchdecider is specified and no matches
32638           are requested, the lower bound on the number of matches must be 0
32639           (since the matchdecider could reject all the matches).
32641 Mon Aug 23 23:03:12 BST 2004  Olly Betts <olly@survex.com>
32643         * backends/quartz/btree.cc: Improved the "Db block overwritten"
32644           message.  The DatabaseCorruptError version now suggests multiple
32645           writers may be the cause, while the DatabaseModifiedError version
32646           uses less alarming wording and says to call Database::reopen().
32648 Sun Aug 22 14:07:35 BST 2004  Olly Betts <olly@survex.com>
32650         * indexer/: Removed the old XML-based indexer framework.  It's not
32651           worked for ages, and nobody seems interested in ressurecting it.
32652           If anyone ever is, they can fetch it back from CVS, but otherwise
32653           it's just bulking up CVS checkouts.
32655 Sun Aug 22 13:02:25 BST 2004  Olly Betts <olly@survex.com>
32657         * Makefile.am,configure.ac,extra/Makefile.am: Moved the older library
32658           version information into configure.ac.
32660 Sun Aug 22 12:58:21 BST 2004  Olly Betts <olly@survex.com>
32662         * HACKING,configure.in,configure.ac,backends/Makefile.am,
32663           docs/Makefile.am: Renamed configure.in to configure.ac.
32665 Sun Aug 22 12:47:43 BST 2004  Olly Betts <olly@survex.com>
32667         * xapian-config.in: Add "(or configure.ac)" in message telling the
32668           user to add a line to their configure.in.
32670 Sun Aug 22 11:38:55 BST 2004  Olly Betts <olly@survex.com>
32672         * backends/quartz/btree.cc,backends/quartz/btree_util.h: Adjusted
32673           some Asserts to check c is within blocksize rather than
32674           65536.  Added a FIXME for those which can't be trivially changed.
32676 Sun Aug 22 10:56:56 BST 2004  Olly Betts <olly@survex.com>
32678         * backends/quartz/quartz_database.cc: No need to force a flush on
32679           QuartzWritableDatabase::open_document() (the document will read
32680           things lazily from the database, and that may trigger a forced
32681           flush).
32682         * backends/quartz/quartz_database.cc,
32683           backends/quartz/quartz_database.h: Eliminated
32684           QuartzDatabase::open_post_list_internal() and
32685           QuartzDatabase::open_term_list_internal().
32687 Sun Aug 22 01:33:05 BST 2004  Olly Betts <olly@survex.com>
32689         * backends/quartz/quartz_database.cc,backends/quartz/quartz_record.cc,
32690           backends/quartz/quartz_record.h: WritableDatabase::get_avlength()
32691           no longer forces pending changes to be flushed.  This means you can
32692           now search a modified WritableDatabase without causing a flush
32693           unless the search includes a term whose postlist has pending
32694           modifications.
32696 Fri Aug 20 20:03:59 BST 2004  Olly Betts <olly@survex.com>
32698         * backends/quartz/btree_util.h,common/,docs/overview.html,
32699           docs/quickstart.html,include/xapian/enquire.h,
32700           matcher/branchpostlist.h,matcher/multimatch.cc,tests/api_db.cc:
32701           Corrected multiple occurrences of "an Xapian::XXX" to "a Xapian::XXX"
32702           (presumably these all resulted from replacing "Om" with "Xapian::").
32704 Fri Aug 20 17:38:15 BST 2004  Olly Betts <olly@survex.com>
32706         * backends/quartz/,bin/quartzcheck.cc,bin/quartzcompact.cc,
32707           bin/quartzdump.cc,tests/btreetest.cc,tests/quartztest.cc:
32708           Merged QuartzCursor into Bcursor.
32710 Fri Aug 20 13:43:04 BST 2004  Olly Betts <olly@survex.com>
32712         * NEWS,backends/quartz/: Fixed the problem with "lazy tag reading"
32713           in QuartzCursor and reenable that code.  The problem was with
32714           deleting the current key, so added QuartzCursor::del() which
32715           deletes the current key, leaving the cursor on the next item.
32717 Fri Aug 20 13:04:33 BST 2004  Olly Betts <olly@survex.com>
32719         * tests/api_db.cc: Reenabled test allterms2, but with the iterator
32720           copying parts removed - TermIterator is an input_iterator so
32721           that part was invalid.
32723 Thu Aug 19 19:19:48 BST 2004  Olly Betts <olly@survex.com>
32725         * NEWS: Updated from recent ChangeLog entries.
32727 Thu Aug 19 14:09:28 BST 2004  Olly Betts <olly@survex.com>
32729         * tests/api_db.cc: Added regression test for bug #37.
32731 Thu Aug 19 13:31:37 BST 2004  Olly Betts <olly@survex.com>
32733         * matcher/localmatch.cc: Fixed problems handling termweights in
32734           queries with the same term repeated (bug #37).
32736 Thu Aug 19 13:22:12 BST 2004  Olly Betts <olly@survex.com>
32738         * backends/quartz/quartz_table.cc: Disable the "lazy tag reading" in
32739           QuartzCursor for the time being - it seems to cause problems.
32741 Thu Aug 19 12:58:10 BST 2004  Olly Betts <olly@survex.com>
32743         * bin/quartzcheck.cc,bin/quartzdump.cc: Added calls to
32744           QuartzCursor::read_tag().
32746 Thu Aug 19 12:56:53 BST 2004  Olly Betts <olly@survex.com>
32748         * matcher/multimatch.cc: Removed superfluous clear() of a map.
32750 Thu Aug 19 12:56:08 BST 2004  Olly Betts <olly@survex.com>
32752         * tests/api_db.cc: Corrected a comment - a pure boolean query has all
32753           weights set to 0, not 1.
32755 Mon Aug 16 15:41:33 BST 2004  Olly Betts <olly@survex.com>
32757         * docs/: Removed unused and very out of date class diagrams in dia
32758           format.  Doxygen generates similar but up-to-date diagrams
32759           automatically anyway.
32761 Mon Aug 16 15:27:30 BST 2004  Olly Betts <olly@survex.com>
32763         * xapian.spec.in,debian/libxapianVERSION-dev.install,
32764           extra/.cvsignore,extra/Makefile.am,extra/omparsequery.h,
32765           include/Makefile.am,include/om/.cvsignore,include/om/dir_contents,
32766           include/om/om.h,m4/xapian.m4: Removed the compatibility layer which
32767           allowed programs written against the pre-0.7.0 API to be compiled.
32769 Mon Aug 16 15:08:08 BST 2004  Olly Betts <olly@survex.com>
32771         * backends/quartz/quartz_table.cc: Fixed QuartzCursor::find()
32772           to work again after the last change.
32774 Mon Aug 16 14:43:08 BST 2004  Olly Betts <olly@survex.com>
32776         * backends/quartz/,tests/quartztest.cc: QuartzCursor no longer
32777           automatically reads the tag - you have to call read_tag() to
32778           get it read.  This speeds up iterator over all the terms in
32779           a database.  Also commented out QuartzCursor::prev as it's
32780           unused and untested (at least in its latest form).
32782 Mon Aug 16 12:39:56 BST 2004  Olly Betts <olly@survex.com>
32784         * backends/quartz/btree_types.h: Made Bcursor.rewrite bool rather than
32785           int.
32787 Mon Aug 16 12:35:07 BST 2004  Olly Betts <olly@survex.com>
32789         * backends/quartz/btree.cc,backends/quartz/btree.h: Calculate and
32790           store the latest revision number, rather than storing the other
32791           one and working out which is newer every time we're asked.
32793 Mon Aug 16 12:32:59 BST 2004  Olly Betts <olly@survex.com>
32795         * docs/install.html: We haven't "only [...] UNIX" for ages, so don't
32796           claim we are.  We use libtool as well as autoconf and automake.
32797           Link to the CVS snapshots.  And also mention downloading omega.
32799 Mon Aug 16 12:20:04 BST 2004  Olly Betts <olly@survex.com>
32801         * docs/index.html: exaplains -> explains.
32803 Mon Aug 16 12:18:34 BST 2004  Olly Betts <olly@survex.com>
32805         * docs/overview.html: Removed references to "our company" (meaning
32806           BrightStation) and to the now defunct special parameters which
32807           the inmemory backend accepted to cause deliberate errors for
32808           testing.
32810 Sun Aug 15 23:48:20 BST 2004  Olly Betts <olly@survex.com>
32812         * tests/btreetest.cc: item_count -> get_entry_count(); revision_number
32813           -> get_open_revision_number().
32815 Sun Aug 15 23:15:34 BST 2004  Olly Betts <olly@survex.com>
32817         * backends/Makefile.am,backends/inmemory/Makefile.am: Fixed to compile
32818           with --disable-inmemory (bug #33).
32820 Sat Aug 14 18:56:06 BST 2004  Olly Betts <olly@survex.com>
32822         * Makefile.am: Improved library versioning comment.
32824 Sat Aug 14 18:55:17 BST 2004  Olly Betts <olly@survex.com>
32826         * docs/overview.html: Fixed om_queryop to Xapian::Query::op, and added
32827           missing OP_* codes to the list.
32829 Sat Aug 14 17:44:39 BST 2004  Olly Betts <olly@survex.com>
32831         * backends/quartz/bcursor.h,backends/quartz/btree.cc,
32832           backends/quartz/btree.h,bin/quartzcompact.cc,docs/quartzdesign.html:
32833           Updated quartz design docs to reflect recent changes.  Also pulled
32834           out the Btree and Bcursor API docs and slotted them in as doxygen
32835           documentation comments - this way they're much more likely to
32836           be kept up-to-date.
32838 Sat Aug 14 15:59:07 BST 2004  Olly Betts <olly@survex.com>
32840         * backends/quartz/btree.cc,backends/quartz/btree.h: Removed unused
32841           Btree default ctor.
32843 Sat Aug 14 15:45:28 BST 2004  Olly Betts <olly@survex.com>
32845         * backends/quartz/btree.cc,backends/quartz/btree.h: Don't redundantly
32846           store next_revision - it's always just revision_number + 1.
32848 Sat Aug 14 15:30:30 BST 2004  Olly Betts <olly@survex.com>
32850         * backends/quartz/btree.cc: Implemented Btree::cancel directly rather
32851           than closing and reopening the Btree.
32853 Sat Aug 14 14:46:43 BST 2004  Olly Betts <olly@survex.com>
32855         * backends/quartz/,bin/quartzcheck.cc,bin/quartzcompact.cc,
32856           bin/quartzdump.cc,tests/btreetest.cc,tests/quartztest.cc,
32857           testsuite/btreecheck.cc,testsuite/btreecheck.h: Eliminated
32858           QuartzTable which had become just a thin wrapper around Btree.
32860 Fri Aug 13 19:19:02 BST 2004  Olly Betts <olly@survex.com>
32862         * backends/quartz/quartz_postlist.cc:
32863           QuartzPostList::move_to_chunk_containing now calls next_chunk if
32864           required, rather than forcing the caller to do the fix-up.
32866 Fri Aug 13 17:54:53 BST 2004  Olly Betts <olly@survex.com>
32868         * backends/quartz/quartz_database.cc,
32869           backends/quartz/quartz_database.h: Added tunable flush thresholds
32870           - set XAPIAN_FLUSH_THRESHOLD=5000 to flush every 5000 documents
32871           or XAPIAN_FLUSH_THRESHOLD_LENGTH=1000000 to flush every 1000000
32872           total change in document length.  Set both to flush whichever is
32873           reached first.  Set neither and the default is to flush every
32874           1000 documents as before.
32876 Fri Aug 13 15:54:21 BST 2004  Olly Betts <olly@survex.com>
32878         * backends/quartz/: Removed no-longer-used Btree::erase and
32879           QuartzTable::erase methods.
32881 Fri Aug 13 15:37:15 BST 2004  Olly Betts <olly@survex.com>
32883         * backends/quartz/btree.cc,backends/quartz/quartz_database.cc:
32884           Changed Btree::create() to remove any pre-existing alternate base
32885           file, so we no longer need to call Btree::erase before
32886           Btree::create.
32888 Fri Aug 13 15:37:15 BST 2004  Olly Betts <olly@survex.com>
32890         * NEWS: Updated with changes since last release.
32892 Fri Aug 13 15:36:04 BST 2004  Olly Betts <olly@survex.com>
32894         * tests/api_posdb.cc,tests/quartztest.cc: Reworked quartztest's
32895           positionlist1 into a generic api test as apitest's poslist3.
32897 Thu Aug 12 16:26:42 BST 2004  Olly Betts <olly@survex.com>
32899         * backends/quartz/quartz_table.cc,backends/quartz/quartz_table.h,
32900           bin/quartzcheck.cc,bin/quartzdump.cc: QuartzCursor now has a
32901           Bcursor member, rather than an AutoPtr<Bcursor> member.
32903 Thu Aug 12 14:13:37 BST 2004  Olly Betts <olly@survex.com>
32905         * tests/btreetest.cc: Fixed up in line with the recent refactoring.
32907 Thu Aug 12 13:23:31 BST 2004  Olly Betts <olly@survex.com>
32909         * m4/xapian.m4: XO_LIB_XAPIAN now AC_SUBSTs XAPIAN_VERSION.
32911 Thu Aug 12 13:21:36 BST 2004  Olly Betts <olly@survex.com>
32913         * backends/quartz/,tests/quartztest.cc: Refactored, replacing
32914           Quartz*Manager with Quartz*Table.
32916 Thu Aug 12 02:00:58 BST 2004  Olly Betts <olly@survex.com>
32918         * backends/quartz/: Merged QuartzTableManager into QuartzDatabase.
32920 Wed Aug 11 23:40:34 BST 2004  Olly Betts <olly@survex.com>
32922         * backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h:
32923           Eliminated buffered_tables member of QuartzWritableDatabase.
32925 Wed Aug 11 21:26:35 BST 2004  Olly Betts <olly@survex.com>
32927         * backends/inmemory/inmemory_database.cc,
32928           backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
32929           docs/todo.xml: WritableDatabase::replace_document can now be used
32930           to add a document with a specific docid (to allow keeping docids
32931           in sync with numeric UIDs from another system).
32933 Wed Aug 11 20:09:15 BST 2004  Olly Betts <olly@survex.com>
32935         * api/omdatabase.cc,include/xapian/database.h: Added replace_document
32936           and delete_document variants which take a unique id term name rather
32937           than a document id.
32938         * include/xapian/database.h: Better documentation for replace_document
32939           and delete_document.
32941 Wed Aug 11 16:15:10 BST 2004  Olly Betts <olly@survex.com>
32943         * backends/quartz/,bin/quartzcheck.cc,bin/quartzdump.cc,
32944           tests/quartztest.cc: Eliminated QuartzBufferedTable.
32946 Wed Jun 30 20:34:08 BST 2004  Olly Betts <olly@survex.com>
32948         * NEWS: Fixed an unwrapped line.
32950 Wed Jun 30 20:32:31 BST 2004  Olly Betts <olly@survex.com>
32952         * HACKING: Added note about the cvs-tag-release script.
32954 Wed Jun 30 19:05:45 BST 2004  Olly Betts <olly@survex.com>
32956         * HACKING,NEWS,PLATFORMS,configure.in: Version 0.8.1.
32958 Wed Jun 30 14:23:20 BST 2004  Olly Betts <olly@survex.com>
32960         * AUTHORS,PLATFORMS: Updated.
32962 Tue Jun 29 23:24:59 BST 2004  Olly Betts <olly@survex.com>
32964         * tests/api_nodb.cc: Make emptyquery1 check that Query("") causes an
32965           InvalidArgumentError exception.
32967 Tue Jun 29 17:29:03 BST 2004  Richard Boulton <richard@tartarus.org>
32969         * Makefile.am: Remove Debian files from distribution tarballs,
32970           since there will often be multiple patch releases for each
32971           release.  Debian files will be available from an apt repository
32972           in future.
32974 Mon Jun 28 01:29:00 BST 2004  Olly Betts <olly@survex.com>
32976         * NEWS: Mostly updated for 0.8.1 release.
32978 Sun Jun 27 23:37:01 BST 2004  Olly Betts <olly@survex.com>
32980         * backends/quartz/quartz_postlist.cc: Fixed bug in postlist merging.
32982 Sat Jun 26 00:51:04 BST 2004  Olly Betts <olly@survex.com>
32984         * AUTHORS: Add Malcolm Baldridge (helped fix a problem with building
32985           the PHP bindings with newer versions of SWIG and PHP).
32987 Fri Jun 26 00:29:10 BST 2004  Olly Betts <olly@survex.com>
32989         * HACKING,api/ompositionlistiterator.cc,api/ompostlistiterator.cc,
32990           api/omtermlistiterator.cc,include/xapian/: MSetIterator and
32991           ESetIterator are now bidirectional iterators (rather than
32992           just input iterators);  Fixed post-increment forms of
32993           PostingIterator, TermIterator, PositionIterator, and ValueIterator
32994           so that *i++ works (as it must for them to be true input iterators).
32996 Thu Jun 24 18:03:46 BST 2004  Olly Betts <olly@survex.com>
32998         * PLATFORMS: Added success report for Slackware Linux 9.1.
33000 Mon Jun 21 16:33:16 BST 2004  Olly Betts <olly@survex.com>
33002         * backends/quartz/quartz_postlist.cc: Corrected -> to . so code
33003           compiles with debug enabled.
33005 Mon Jun 21 03:25:24 BST 2004  Olly Betts <olly@survex.com>
33007         * backends/quartz/btree.cc: Eliminated two calls to abort() - throw
33008           exceptions instead.
33010 Mon Jun 21 03:21:14 BST 2004  Olly Betts <olly@survex.com>
33012         * backends/quartz/quartz_postlist.cc: Finish backing out incorrect
33013           change from "Fri May 07 03:16:29 BST 2004" - failed to change two
33014           lines back before.
33016 Fri Jun 18 16:48:10 BST 2004  Richard Boulton <richard@tartarus.org>
33018         * configure.in: Fix typo (STLPORT_CXXLAGS -> STLPORT_CXXFLAGS)
33020 Thu Jun 17 03:46:32 BST 2004  Olly Betts <olly@survex.com>
33022         * backends/quartz/quartz_database.cc: Cleaned up code to track
33023           add vs delete vs modify of a posting list entry since we now
33024           force a flush if an entry is about to be retouched.
33026 Thu Jun 17 03:44:21 BST 2004  Olly Betts <olly@survex.com>
33028         * backends/quartz/quartz_postlist.cc: Back out incorrect change from
33029           "Fri May 07 03:16:29 BST 2004".  We do need to call get_or_make_tag
33030           in this case because we're modifying the tag.
33032 Wed Jun 16 15:40:21 BST 2004  Olly Betts <olly@survex.com>
33034         * backends/inmemory/inmemory_database.h: Implemented get_lastdocid()
33035           for InMemory backend.
33037 Wed Jun 16 02:39:41 BST 2004  Olly Betts <olly@survex.com>
33039         * configure.in: Note the value of LIBRARY_VERSION_INFO which 0.8.1
33040           would get if it were released now.
33042 Wed Jun 16 02:39:11 BST 2004  Robert Pollak <robert.pollak@fabasoft.com>
33044         * api/omdatabase.cc, include/xapian/database.h,
33045           backends/database.cc, common/database.h,
33046           backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h,
33047           backends/quartz/quartz_record.cc, backends/quartz/quartz_record.h:
33048           New method Database::get_lastdocid for re-synchronizing an old
33049           quartz index.
33051 Wed Jun 16 02:05:07 BST 2004  Richard Boulton <richard@tartarus.org>
33053         * matcher/multimatch.cc: When collapsing, keep track of the number
33054           of collapses performed, and use this information to modify the
33055           bounds and estimate of the number of matches.
33056         * tests/api_db.cc: Added tests for this.
33057         * include/xapian/enquire.h: Update documentation comments for
33058           MSet::get_matches_*() functions to make clear that collapsing and
33059           cutoffs are taken into account.  (Previously, the most likely
33060           interpretation of the comments was that they wouldn't be taken
33061           into account, but the implementation was that percentage cutoffs
33062           were taken into account.)  Due to this ambiguity, I think it is
33063           reasonable to say this isn't an API change.
33065 Wed Jun 16 01:55:29 BST 2004  Olly Betts <olly@survex.com>
33067         * matcher/multimatch.cc: Rearranged code so that the behaviour can
33068           be easily seen to be unchanged, but so that it's closer to the
33069           result of applying Richard's patch for bug #31.
33071 Wed Jun 16 01:27:09 BST 2004  Olly Betts <olly@survex.com>
33073         * matcher/multimatch.cc: Trimmed extra whitespace.
33075 Tue Jun 15 15:40:11 BST 2004  Olly Betts <olly@survex.com>
33077         * backends/quartz/quartz_postlist.cc: Fixed PostlistChunkReader to
33078           take a copy of the postlist data being read to avoid problems with
33079           reading data from a string that's been deleted.
33081 Tue Jun 15 15:26:54 BST 2004  Olly Betts <olly@survex.com>
33083         * HACKING: Updated the list of tasks required for a new release.
33085 Tue Jun 15 15:24:04 BST 2004  Olly Betts <olly@survex.com>
33087         * Makefile.am,configure.in,extra/Makefile.am: Unify the shlib version
33088           numbers (the small benefit of tracking them individually makes it
33089           hard to justify the extra work required, and having one version
33090           simplifies debian packaging too).
33092 Tue Jun 15 14:52:36 BST 2004  Robert Pollak <robert.pollak@fabasoft.com>
33094         * extra/xapian/queryparser.h: Fixed memory leaked upon QueryParser
33095           destruction.
33097 Fri Jun 11 02:18:35 BST 2004  Olly Betts <olly@survex.com>
33099         * backends/quartz/quartz_postlist.cc: Refactored a loop.
33101 Fri Jun 11 02:17:05 BST 2004  Olly Betts <olly@survex.com>
33103         * backends/quartz/quartz_postlist.cc: Fixed bug which meant we
33104           sometimes failed to remove a posting when deleting or replacing
33105           a document.
33107 Fri Jun 11 02:16:16 BST 2004  Olly Betts <olly@survex.com>
33109         * backends/quartz/quartz_postlist.cc,
33110           backends/quartz/quartz_postlist.h: Merged move_to() into skip_to().
33112 Fri Jun 11 02:14:56 BST 2004  Olly Betts <olly@survex.com>
33114         * backends/quartz/quartz_postlist.cc: Fixed typo in comment.
33116 Thu May 27 15:41:45 BST 2004  Olly Betts <olly@survex.com>
33118         * backends/quartz/btree.cc,backends/quartz/btree.h: Eliminated the
33119           split cursor - we only actually need a single block buffer to
33120           handle splitting blocks.
33122 Wed May 26 04:02:18 BST 2004  Olly Betts <olly@survex.com>
33124         * include/om/om.h,include/xapian/errortypes.h: Removed several unused
33125           Xapian::Error subclasses (these were used by the indexer framework
33126           which we decided was a failed experiment).
33128 Wed May 26 01:54:13 BST 2004  Olly Betts <olly@survex.com>
33130         * backends/quartz/btree.cc,backends/quartz/btree.h: More DEBUGCALL
33131           tracing added; split_root now uses level member rather than a
33132           parameter.
33134 Sun May 23 00:56:41 BST 2004  Olly Betts <olly@survex.com>
33136         * backends/quartz/btree.cc,backends/quartz/btree.h: Merge split_off()
33137           into add_item().
33139 Sat May 22 01:28:58 BST 2004  Olly Betts <olly@survex.com>
33141         * backends/quartz/btree.cc: Another DEBUGCALL.
33142         * backends/quartz/quartz_table.h: Improved comments.
33144 Fri May 21 23:17:01 BST 2004  Olly Betts <olly@survex.com>
33146         * backends/quartz/btree.cc: Removed unnecessary assignment which is
33147           a hangover from the shared level code we removed long ago.
33149 Fri May 21 20:31:56 BST 2004  Olly Betts <olly@survex.com>
33151         * backends/quartz/,docs/quartzdesign.html,testsuite/btreecheck.cc:
33152           Removed overwritten flag (unused as we throw an exception anyway).
33153           If Btree is writable, throw DatabaseCorruptError if we detect
33154           overwritten.  Make use of bool return types consistent.  Removed
33155           documentation of Btree error codes (the error codes themselves
33156           were removed a month ago).
33158 Thu May 20 03:50:46 BST 2004  Olly Betts <olly@survex.com>
33160         * include/xapian/database.h: Remove references to sessions in doxygen
33161           comments.
33163 Thu May 20 03:44:28 BST 2004  Olly Betts <olly@survex.com>
33165         * api/omdatabase.cc,backends/database.cc,
33166           backends/inmemory/inmemory_database.cc,
33167           backends/inmemory/inmemory_database.h,
33168           backends/muscat36/da_database.h,backends/muscat36/db_database.h,
33169           backends/net/net_database.cc,backends/quartz/quartz_database.cc,
33170           backends/quartz/quartz_database.h,common/database.h,
33171           common/net_database.h: Clean up the backend interface.
33173 Thu May 20 03:18:30 BST 2004  Olly Betts <olly@survex.com>
33175         * backends/database.cc,backends/inmemory/inmemory_database.cc,
33176           backends/inmemory/inmemory_database.h,backends/muscat36/,
33177           backends/net/net_database.cc,backends/quartz/quartz_database.cc,
33178           backends/quartz/quartz_database.h,common/database.h:
33179           Stripped out the session machinery - all that is actually required
33180           is to ensure that any unflushed changes are flushed when the dtor
33181           runs.
33183 Mon May 17 01:04:17 BST 2004  Olly Betts <olly@survex.com>
33185         * backends/quartz/btree.cc,backends/quartz/btree.h,
33186           backends/quartz/btree_types.h: Reworked split_p and split_n
33187           members of Cursor into a separate C_split cursor.  This
33188           reduces the memory overhead of each Bcursor (and hence each
33189           QuartzPostList).
33191 Sat May 15 01:29:40 BST 2004  Olly Betts <olly@survex.com>
33193         * docs/quickstart.html: Corrected lingering reference to "om.h" and
33194           note that we need <iostream>.
33195         * docs/quickstartindex.cc.html,docs/quickstartexpand.cc.html,
33196           docs/quickstartsearch.cc.html: Add <iostream>.
33197         * AUTHORS: Add John Ward for pointing out the above problems.
33199 Fri May 14 00:59:51 BST 2004  Olly Betts <olly@survex.com>
33201         * HACKING: Added the start of a list of subtasks when doing a release.
33202           Currently it's always me that does this, but it may not always be
33203           and anyhow it'll help me to have a list to run through.
33205 Fri May 14 00:59:21 BST 2004  Olly Betts <olly@survex.com>
33207         * docs/todo.xml: Updated.
33209 Thu May 13 17:14:18 BST 2004  Olly Betts <olly@survex.com>
33211         * extra/queryparser.yy: When stripping non-alphanums prior to
33212           reparsing, keep dots ('.').
33213         * extra/queryparsertest.cc: Pruned near-duplicate queryparsertest
33214           testcases.
33216 Thu May 13 12:09:19 BST 2004  Olly Betts <olly@survex.com>
33218         * docs/quartzdesign.html: "interger" -> "integer".
33220 Thu May 13 11:20:44 BST 2004  Olly Betts <olly@survex.com>
33222         * Makefile.am: Removed bogus extra line added by last change.
33224 Thu May 13 11:11:31 BST 2004  Olly Betts <olly@survex.com>
33226         * configure.in,Makefile.am,autoconf/.cvsignore,autoconf/Makefile.am,
33227           m4/.cvsignore,m4/Makefile.am: Removed trivial m4/Makefile.am and
33228           and autoconf/Makefile.am and do the work from the top level
33229           Makefile.am instead.  It's easy to see the structure this way, and
33230           it also removes a couple of recursive make invocations.
33232 Thu May 13 09:32:22 BST 2004  Olly Betts <olly@survex.com>
33234         * backends/quartz/btree.cc,backends/quartz/btree.h: Added DEBUGCALL
33235           tracing;  Stripped out C_ parameters where they are always the
33236           internal cursor C.
33238 Thu May 13 00:05:45 BST 2004  Olly Betts <olly@survex.com>
33240         * extra/queryparser.yy,extra/queryparsertest.cc: If we fail to parse
33241           a query, try stripping out non-alphanumerics and reparsing.
33243 Wed May 12 14:32:54 BST 2004  Olly Betts <olly@survex.com>
33245         * common/omtime.h: Corrected file description.
33247 Wed May 12 02:08:44 BST 2004  Olly Betts <olly@survex.com>
33249         * backends/quartz/btree.cc: Fixed typos in comment.
33251 Tue May 11 20:55:56 BST 2004  Olly Betts <olly@survex.com>
33253         * xapian-config.in: Added comment saying why we filter out
33254           -I/usr/include; Removed no longer used "optarg" stuff; Added licence
33255           boilerplate text (with (C) dates mined from CVS).
33257 Tue May 11 13:42:38 BST 2004  Olly Betts <olly@survex.com>
33259         * backends/quartz/bcursor.cc,backends/quartz/btree.cc: Added lots
33260           of assertions.
33262 Tue May 11 09:29:51 BST 2004  Richard Boulton <richard@tartarus.org>
33264         * debian/: Added basic Debian packaging.
33266 Mon May 10 17:17:45 BST 2004  Olly Betts <olly@survex.com>
33268         * docs/quartzdsign.html: Corrected various pieces of out of date
33269           information.
33271 Mon May 10 01:30:35 BST 2004  Olly Betts <olly@survex.com>
33273         * backends/quartz/btree.h: Removed unused forward declaration of
33274           class BtreeCheck.
33276 Mon May 10 01:30:24 BST 2004  Olly Betts <olly@survex.com>
33278         * backends/quartz/btree.cc: Fixed typo.
33280 Sat May 08 20:14:40 BST 2004  Olly Betts <olly@survex.com>
33282         * backends/quartz/: Pruned some #include-s which were unused, or could
33283           be replaced by forward class declarations.
33285 Fri May 07 14:38:10 BST 2004  Olly Betts <olly@survex.com>
33287         * backends/quartz/quartz_postlist.cc: Slight efficiency tweak to the
33288           "deleting the whole posting list" case.
33290 Fri May 07 03:16:29 BST 2004  Olly Betts <olly@survex.com>
33292         * backends/quartz/quartz_postlist.cc: Removed another unnecessary use
33293           of QuartzBufferedTable::get_or_make_tag().
33295 Fri May 07 02:56:22 BST 2004  Olly Betts <olly@survex.com>
33297         * backends/quartz/btree.cc: Initialise prev_ptr and next_ptr at open
33298           time for a writable Btree.
33300 Fri May 07 02:46:53 BST 2004  Olly Betts <olly@survex.com>
33302         * backends/quartz/quartz_postlist.cc: Remove unneeded call to
33303           QuartzBufferedTable::get_or_make_tag() in a case when we're using a
33304           cursor which has already fetched the tag.
33306 Thu May 06 23:30:12 BST 2004  Olly Betts <olly@survex.com>
33308         * backends/quartz/btree.cc: Improved a comment.
33310 Thu May 06 22:20:43 BST 2004  Olly Betts <olly@survex.com>
33312         * backends/quartz/btree.cc: Added a few more assertions.
33314 Thu May 06 02:25:33 BST 2004  Olly Betts <olly@survex.com>
33316         * backends/quartz/quartz_positionlist.cc,
33317           backends/quartz/quartz_utils.h: Added SON_OF_QUARTZ define to
33318           disable incompatible changes to database formats by default, and
33319           use it to control the docid encoding for keys such that we're always
33320           inserting at the end of the table when added new documents.
33322 Thu May 06 02:23:02 BST 2004  Olly Betts <olly@survex.com>
33324         * backends/quartz/quartz_postlist.cc: Improved a FIXME comment.
33326 Thu May 06 00:32:17 BST 2004  Olly Betts <olly@survex.com>
33328         * extra/queryparsertest.cc: Added test case for `term NOT "a phrase'.
33330 Thu May 06 00:28:32 BST 2004  Olly Betts <olly@survex.com>
33332         * common/omdebug.cc,common/omdebug.h: Renamed OmTimer class used
33333           internally by the --enable-debug=profile code to
33334           Xapian::Internal::Timer.
33336 Wed May 05 13:59:47 BST 2004  Olly Betts <olly@survex.com>
33338         * docs/scalability.html: Reworded to remove use of first person.
33340 Mon May 03 21:42:05 BST 2004  Olly Betts <olly@survex.com>
33342         * Makefile.am: Improved wording of a FIXME comment.
33344 Sun May 02 10:18:55 BST 2004  Olly Betts <olly@survex.com>
33346         * backends/quartz/btree.cc: Improved a couple of comments.
33348 Sat May 01 04:42:43 BST 2004  Olly Betts <olly@survex.com>
33350         * backends/quartz/btree.cc,backends/quartz/btree.h,
33351           backends/quartz/quartz_table.cc: Reopening the readonly version
33352           of a writable Btree is now more efficient.
33354 Sat May 01 01:41:24 BST 2004  Olly Betts <olly@survex.com>
33356         * PLATFORMS: Added up-to-date success reports for x86-openbsd and
33357           x86-solaris.
33359 Fri Apr 30 04:05:15 BST 2004  Olly Betts <olly@survex.com>
33361         * backends/quartz/: Don't delete and reload the Btree_base just after
33362           saving it - instead reuse the existing Btree_base object.
33364 Fri Apr 30 02:41:50 BST 2004  Olly Betts <olly@survex.com>
33366         * backends/quartz/btree.cc: Clean up new code in Btree::commit()
33367           from last change.
33369 Thu Apr 29 22:41:05 BST 2004  Olly Betts <olly@survex.com>
33371         * backends/quartz/btree.cc,backends/quartz/quartz_table.cc: Don't
33372           close and reopen the database table file descriptors every time
33373           we flush changes.
33375 Thu Apr 29 22:40:36 BST 2004  Olly Betts <olly@survex.com>
33377         * docs/quartzdesign.html: Improved wording in a couple of places.
33379 Thu Apr 29 16:50:45 BST 2004  Olly Betts <olly@survex.com>
33381         * backends/quartz/bcursor.cc: Removed references to Btree::error
33382           from debug code since Btree::error was removed a week ago.
33384 Tue Apr 27 20:46:25 BST 2004  Olly Betts <olly@survex.com>
33386         * backends/quartz/btree.cc,configure.in: Added configure test for
33387           glibc, because otherwise we need to include a header before we
33388           can check for glibc in order to define something we should be
33389           defining before we include any headers!
33391 Tue Apr 27 17:45:51 BST 2004  Olly Betts <olly@survex.com>
33393         * backends/quartz/btree.cc: Only defined _XOPEN_SOURCE if __GLIBC__
33394           is defined.  OpenBSD seems to do the opposite to Linux and *disable*
33395           pread and pwrite if this is defined!
33397 Tue Apr 27 14:35:47 BST 2004  Olly Betts <olly@survex.com>
33399         * api/omenquire.cc,tests/api_db.cc: Need to adjust index by firstitem
33400           when indexing into items (bug#28).
33402 Mon Apr 26 23:45:15 BST 2004  Olly Betts <olly@survex.com>
33404         * PLATFORMS: Successfully built with gcc-3.5-20040327 snapshot on x86
33405           linux.
33407 Fri Apr 23 11:26:07 BST 2004  Olly Betts <olly@survex.com>
33409         * PLATFORMS: Successfully built and tested on arm linux.
33411 Fri Apr 23 11:24:23 BST 2004  Olly Betts <olly@survex.com>
33413         * tests/remotetest.cc: Use 127.0.0.1 instead of localhost so that
33414           tcpmatch1 doesn't fail just because the network setup is broken.
33416 Thu Apr 22 00:54:58 BST 2004  Olly Betts <olly@survex.com>
33418         * backends/quartz/: Stripped out Btree_errors as it's almost
33419           totally unused now.  Fixed up the last few uses.
33420         * backends/quartz/quartz_table.cc: Fixed another case where read
33421           and write Btrees should share fds.
33423 Wed Apr 21 02:51:08 BST 2004  Olly Betts <olly@survex.com>
33425         * backends/quartz/btree.cc: Check the return value of
33426           fdatasync()/fsync()/_commit() and raise an error.  They aren't
33427           likely to fail harmlessly.
33429 Wed Apr 21 02:45:28 BST 2004  Olly Betts <olly@survex.com>
33431         * backends/quartz/btree.cc,backends/quartz/btree.h,
33432           backends/quartz/quartz_table.cc: Share file descriptors between
33433           the read and write Btree objects so that a quartz WritableDatabase
33434           now uses 5 fds rather than 10.
33436 Wed Apr 21 02:37:38 BST 2004  Olly Betts <olly@survex.com>
33438         * docs/scalability.html: Removed the reference to the Quartz update
33439           bottleneck "currently being addressed for Xapian 0.8" as it's now
33440           been addressed!
33442 Wed Apr 21 00:24:08 BST 2004  Olly Betts <olly@survex.com>
33444         * backends/quartz/btree.cc: Corrected a comment.
33446 Mon Apr 19 14:42:06 BST 2004  Olly Betts <olly@survex.com>
33448         * NEWS: Final update for 0.8.0.
33450 Mon Apr 19 14:02:33 BST 2004  Olly Betts <olly@survex.com>
33452         * AUTHORS: Added people who've contributed build reports for the
33453           PLATFORMS file.
33455 Mon Apr 19 14:01:38 BST 2004  Olly Betts <olly@survex.com>
33457         * PLATFORMS: More updates from tinderbox and elsewhere.
33459 Sat Apr 17 02:24:11 BST 2004  Olly Betts <olly@survex.com>
33461         * PLATFORMS: Lots of updates from tinderbox and mailing list.
33463 Sat Apr 17 00:13:26 BST 2004  Olly Betts <olly@survex.com>
33465         * HACKING: Added notes about using "using", and pointers to a couple
33466           of useful C++ web resources.
33468 Mon Apr 12 00:56:04 BST 2004  Olly Betts <olly@survex.com>
33470         * Makefile.am,NEWS,configure.in,extra/Makefile.am: Version 0.8.0.
33472 Mon Apr 12 00:31:15 BST 2004  Olly Betts <olly@survex.com>
33474         * NEWS: Updated for 0.8.0.
33476 Sun Apr 11 21:18:47 BST 2004  Olly Betts <olly@survex.com>
33478         * extra/queryparser.yy,extra/queryparsertest.cc: Don't use a raw term
33479           for a term which starts with a digit.
33481 Sat Apr 10 17:20:23 BST 2004  Olly Betts <olly@survex.com>
33483         * AUTHORS: "Open Muscat" not "OmSee"; Updated the list of contributors
33484           (more work needed...)
33486 Sat Apr 10 16:41:28 BST 2004  Olly Betts <olly@survex.com>
33488         * m4/xapian.m4: Make XO_LIB_XAPIAN with no arguments do what most
33489           users will want: check for Xapian and fail if it's not found,
33490           or AC_SUBST XAPIAN_CXXFLAGS and XAPIAN_LIBS if it is.  Those
33491           will unusual needs can supply one or both arguments as at
33492           present.
33494 Sat Apr 10 15:00:28 BST 2004  Olly Betts <olly@survex.com>
33496         * docs/todo.xml: Updated.
33498 Sat Apr 10 00:32:07 BST 2004  Olly Betts <olly@survex.com>
33500         * PLATFORMS: Added success report for GCC 3.4 (prerelease).
33502 Sat Apr 10 00:27:58 BST 2004  Olly Betts <olly@survex.com>
33504         * extra/xapian/queryparser.h: Added doxygen documentation comments.
33506 Sat Apr 10 00:23:13 BST 2004  Olly Betts <olly@survex.com>
33508         * testsuite/testsuite.cc: Removed a now superfluous line.
33510 Sat Apr 10 00:21:15 BST 2004  Olly Betts <olly@survex.com>
33512         * testsuite/testsuite.cc: Give a more accurate message if valgrind
33513           spots a test doing something dodgy (e.g. free() of memory allocated
33514           with new).
33516 Thu Apr 08 17:22:20 BST 2004  Olly Betts <olly@survex.com>
33518         * net/.cvsignore: No longer need to ignore readquery.cc.
33520 Thu Apr 08 17:19:43 BST 2004  Olly Betts <olly@survex.com>
33522         * include/xapian/base.h: Note in doxygen comment why the ref_count
33523           is mutable.
33525 Thu Apr 08 15:33:16 BST 2004  Olly Betts <olly@survex.com>
33527         * testsuite/testsuite.cc: valgrinding code needs errno.h too.
33529 Thu Apr 08 15:28:44 BST 2004  Olly Betts <olly@survex.com>
33531         * include/xapian/enquire.h: Make Xapian::Weight::Weight() protected
33532           rather than private as we want to be able to call it from derived
33533           classes (GCC 3.4 flags this, other compilers seem to miss it).
33535 Tue Apr 06 03:32:39 BST 2004  Olly Betts <olly@survex.com>
33537         * net/omerr_string.cc,include/xapian/error.h,
33538           include/xapian/errortypes.h,include/xapian/output.h:
33539           Fixed some doxygen warnings.
33541 Mon Apr 05 17:21:06 BST 2004  Olly Betts <olly@survex.com>
33543         * README: There never was an Omsee release - the last BrightStation
33544           release was "OpenMuscat 0.4.1".
33546 Mon Apr 05 17:19:38 BST 2004  Olly Betts <olly@survex.com>
33548         * backends/quartz/quartz_database.cc,
33549           backends/quartz/quartz_database.h: Make the flush criterion 1000
33550           documents changed (added, removed, or replaced) as that seems to
33551           perform much better over a wide variety of document sizes.
33553 Thu Apr 01 01:04:17 BST 2004  Olly Betts <olly@survex.com>
33555         * tests/quartztest.cc: Fixed temporary directory used (a slash was
33556           missing).
33558 Thu Apr 01 00:39:59 BST 2004  Olly Betts <olly@survex.com>
33560         * docs/todo.xml: Updated.
33562 Fri Mar 26 22:33:30 GMT 2004  Olly Betts <olly@survex.com>
33564         * backends/quartz/quartz_database.cc: Fix problems with termfreq and
33565           collfreq in postlist getting out of step when a recently modified
33566           or deleted document is deleted or remodified.
33568 Fri Mar 26 12:31:24 GMT 2004  Olly Betts <olly@survex.com>
33570         * configure.in: Fixed check for --enable-runtime-pseudo-reloc.
33572 Fri Mar 26 12:31:00 GMT 2004  Olly Betts <olly@survex.com>
33574         * bin/Makefile.am: Removed spurious "-lz" from quartzdump_LDADD.
33576 Thu Mar 25 00:22:13 GMT 2004  Olly Betts <olly@survex.com>
33578         * bin/quartzcheck.cc: Check the structure with the postlist Btree
33579           as well as the Btree structures themselves.
33581 Sun Mar 21 00:00:59 GMT 2004  Olly Betts <olly@survex.com>
33583         * backends/quartz/quartz_table_manager.cc: Fix for building on mingw.
33585 Sat Mar 20 23:04:27 GMT 2004  Olly Betts <olly@survex.com>
33587         * include/xapian/positioniterator.h,include/xapian/postingiterator.h:
33588           Add doxygen comments in front of PostingIterator and
33589           PositionListIterator classes so that doxygen pulls out the
33590           existing documentation for their methods.
33592 Sat Mar 20 16:23:13 GMT 2004  Olly Betts <olly@survex.com>
33594         * configure.in,backends/quartz/quartz_table_manager.cc,common/utils.h:
33595           Added configure test for link() to avoid infinite loop on mingw!
33597 Thu Mar 18 12:20:18 GMT 2004  Olly Betts <olly@survex.com>
33599         * configure.in: Improved the --enable-runtime-pseudo-reloc check.
33601 Thu Mar 18 00:45:15 GMT 2004  Olly Betts <olly@survex.com>
33603         * bin/Makefile.am,tests/Makefile.am: Pass the magic mingw/cygwin flag
33604           when linking the programs in bin and tests.
33606 Thu Mar 18 00:33:22 GMT 2004  Olly Betts <olly@survex.com>
33608         * configure.in,xapian-config.in: mingw and cygwin both need
33609           -Wl,--enable-runtime-pseudo-reloc passing when linking.
33610           Arrange for xapian-config to include this, and check that
33611           the ld installed is a new enough version (or at least that
33612           it was at configure time).
33614 Tue Mar 16 01:40:43 GMT 2004  Olly Betts <olly@survex.com>
33616         * docs/matcherdesign.html: Merged in more details from a message I
33617           sent to the mailing list.
33619 Mon Mar 15 20:39:21 GMT 2004  Olly Betts <olly@survex.com>
33621         * tests/quartztest.cc: Fail the test if there's still a directory after
33622           rmdir(), or there isn't a directory after mkdir().  Close a
33623           QuartzDatabase or QuartzWritableDatabase before trying to overwrite
33624           it - cygwin doesn't allow use to delete open/locked files...
33626 Mon Mar 15 20:38:11 GMT 2004  Olly Betts <olly@survex.com>
33628         * backends/database.cc: Database::Internal::Internal::keep_alive()
33629           should be Database::Internal::keep_alive().
33631 Mon Mar 15 17:20:58 GMT 2004  Olly Betts <olly@survex.com>
33633         * include/xapian/base.h: Returning a void result makes SGI's compiler
33634           complain - don't!
33636 Mon Mar 15 14:34:44 GMT 2004  Olly Betts <olly@survex.com>
33638         * common/omdebug.cc: Only use O_SYNC (on the debug log) if we have it.
33640 Sun Mar 14 17:48:52 GMT 2004  Olly Betts <olly@survex.com>
33642         * tests/runtest.in: Mark with @configure_input@.
33644 Thu Mar 11 23:53:43 GMT 2004  Olly Betts <olly@survex.com>
33646         * common/database.h,common/termlist.h,include/xapian/database.h,
33647           include/xapian/enquire.h: Attempted fixes for warnings given by
33648           SGI's MIPSpro C++ compiler.
33650 Thu Mar 11 23:51:10 GMT 2004  Olly Betts <olly@survex.com>
33652         * configure.in: GCC 2.95 supported -Wno-long-long and is our minimum
33653           recommended version, so unconditionally use -Wno-long-long with
33654           GCC, and don't test for it on other compilers (the test incorrectly
33655           decided to use it with SGI's compiler leading to a warning for
33656           every file compiled).
33658 Thu Mar 11 17:29:24 GMT 2004  Olly Betts <olly@survex.com>
33660         * docs/intro_ir.html: Added a link to "Information Retrieval"
33661           by Keith v.R. which can be read on his website!
33663 Thu Mar 11 17:12:35 GMT 2004  Olly Betts <olly@survex.com>
33665         * PLATFORMS: Added IRIX success reports from Jim Lynch.
33667 Thu Mar 11 12:17:21 GMT 2004  Olly Betts <olly@survex.com>
33669         * backends/quartz/quartz_database.cc: Fixes for Sun C++'s fussy
33670           template matching.
33672 Thu Mar 11 12:12:46 GMT 2004  Olly Betts <olly@survex.com>
33674         * include/xapian/enquire.h: Another friend fix for Sun's C++.
33676 Thu Mar 11 01:56:19 GMT 2004  Olly Betts <olly@survex.com>
33678         * include/xapian/query.h: Another fix for Sun's C++.
33680 Tue Mar 09 21:02:08 GMT 2004  Olly Betts <olly@survex.com>
33682         * include/xapian/document.h: string -> std::string.
33684 Tue Mar 09 19:04:48 GMT 2004  Olly Betts <olly@survex.com>
33686         * api/omdocument.cc,common/document.h,include/xapian/document.h,
33687           tests/api_db.cc,tests/api_posdb.cc: Renamed
33688           Xapian::Document::add_term_nopos to Xapian::Document::add_term
33689           (with forwarding wrapper method for compatibility with existing
33690           code).
33692 Sat Mar 06 02:32:58 GMT 2004  Olly Betts <olly@survex.com>
33694         * docs/: Updated the quickstart tutorial and removed the warning
33695           that "this document isn't up to date".
33697 Sat Mar 06 01:56:17 GMT 2004  Olly Betts <olly@survex.com>
33699         * api/omenquire.cc: Another tweak for Sun's C++ compiler.
33701 Sat Mar 06 01:31:29 GMT 2004  Olly Betts <olly@survex.com>
33703         * common/omenquireinternal.h: Tweaked friend class declarations a
33704           bit so Sun's C++ compiler can cope.
33706 Thu Mar 04 23:58:17 GMT 2004  Olly Betts <olly@survex.com>
33708         * PLATFORMS: Updated with results from the tinderbox.
33710 Thu Mar 04 23:29:28 GMT 2004  Olly Betts <olly@survex.com>
33712         * tests/btreetest.cc,tests/quartztest.cc: NetBSD mkdir() doesn't cope
33713           with a trailing / on the path - fixed our code to cope with this.
33715 Wed Mar 03 19:14:09 GMT 2004  Olly Betts <olly@survex.com>
33717         * docs/todo.xml: Updated.
33719 Fri Feb 13 23:56:44 GMT 2004  Olly Betts <olly@survex.com>
33721         * api/omquery.cc,tests/api_nodb.cc: Throw error when an empty query is
33722           used to build in the binary operator Query ctor.  Added regression
33723           test.
33725 Fri Feb 13 15:08:09 GMT 2004  Olly Betts <olly@survex.com>
33727         * HACKING: XAPIAN_DEBUG_TYPES should be XAPIAN_DEBUG_FLAGS.
33729 Sat Feb 07 14:26:54 GMT 2004  Olly Betts <olly@survex.com>
33731         * docs/queryparser.html: Grammar fixes.
33733 Fri Jan 16 02:06:53 GMT 2004  Olly Betts <olly@survex.com>
33735         * backends/quartz/quartz_postlist.cc: Fixed bug flagged up by deldoc4.
33737 Thu Jan 15 01:00:48 GMT 2004  Olly Betts <olly@survex.com>
33739         * backends/quartz/quartz_termlist.cc: Use Xapian::doccount instead of
33740           unsigned int in set_entries().
33742 Thu Jan 15 00:56:47 GMT 2004  Olly Betts <olly@survex.com>
33744         * backends/quartz/btree.cc,backends/quartz/btree.h,
33745           testsuite/btreecheck.cc: Made some static functions into static
33746           member functions of Btree so we can avoid duplicating code in
33747           btreecheck.cc.  Also tweaked compare_keys to use memcmp and
33748           special case when the keys are the same length (each of these
33749           changes gives a very small speed gain).
33751 Thu Jan 15 00:54:47 GMT 2004  Olly Betts <olly@survex.com>
33753         * api/maptermlist.h: Removed a FIXME which already had been fixed.
33754           Removed a couple of asserts from a function which should never be
33755           called (and so had `Assert(false)' anyway).
33757 Mon Jan 12 00:32:37 GMT 2004  Olly Betts <olly@survex.com>
33759         * bin/quartzdump.cc: Backslash escape space and backslash in output
33760           rather than hex encoding them; renamed start-term and end-term to
33761           start-key and end-key; removed rather pointless "Calling next"
33762           message; if there's an error, write it to stderr not stdout, and
33763           exit with return code 1.
33765 Sun Jan 11 03:23:17 GMT 2004  Olly Betts <olly@survex.com>
33767         * backends/quartz/quartz_termlist.cc: When possible, pack the wdf into
33768           the same byte as the reuse length - doing so typically makes the
33769           termlist 14% smaller!  This change is backward compatible.
33771 Sat Jan 10 03:04:22 GMT 2004  Olly Betts <olly@survex.com>
33773         * backends/quartz/quartz_postlist.cc: Fixed bug in new postlist
33774           chunking code.
33776 Sat Jan 10 00:45:04 GMT 2004  Olly Betts <olly@survex.com>
33778         * backends/quartz/quartz_termlist.cc: Removed unused
33779           OLD_TERMLIST_FORMAT code.
33781 Fri Jan 09 21:54:34 GMT 2004  Olly Betts <olly@survex.com>
33783         * backends/quartz/quartz_postlist.cc: Fix incorrect code which just
33784           happens to build and work with GCC 2.95.
33786 Fri Jan 09 14:40:00 GMT 2004  Olly Betts <olly@survex.com>
33788         * backends/quartz/quartz_postlist.cc: Tidied the initial call to
33789           get_chunk() out of the merge loop (gives ~4% speedup!)
33791 Fri Jan 09 01:31:05 GMT 2004  Olly Betts <olly@survex.com>
33793         * backends/quartz/quartz_postlist.cc: Implement chunking of postlists
33794           once again.
33796 Thu Jan 08 21:06:37 GMT 2004  Olly Betts <olly@survex.com>
33798         * backends/quartz/quartz_postlist.cc: Shortcut the very common case
33799           of appending to a posting list (which happens when we're just
33800           adding new documents).  Declare small helper functions as "inline".
33802 Wed Jan 07 23:21:59 GMT 2004  Olly Betts <olly@survex.com>
33804         * backends/quartz/quartz_database.cc: Set threshold for flushing to
33805           a saner value for the value we are now using.
33806         * backends/quartz/: Use freq_deltas to update the stats in the first
33807           chunk of each postlist.
33809 Mon Jan 05 16:00:07 GMT 2004  Olly Betts <olly@survex.com>
33811         * include/xapian/enquire.h: Made the TradWeight constructor explicit.
33812           This is technically an API change as before you could pass a
33813           double where a Xapian::Weight was required - now you must pass
33814           Xapian::TradWeight(2.0) instead of 2.0.  That seems desirable, and
33815           it's unlikely any existing code will be affected.
33817 Mon Jan 05 15:08:26 GMT 2004  Olly Betts <olly@survex.com>
33819         * include/xapian/: Added "explicit" qualifier to internal ctors
33820           which take a single parameter.
33822 Mon Jan 05 15:04:12 GMT 2004  Olly Betts <olly@survex.com>
33824         * include/xapian/base.h: Assigning a normal pointer to a RefCntPtr no
33825           longer creates a temporary RefCntPtr from it.
33827 Thu Dec 25 05:49:03 GMT 2003  Olly Betts <olly@survex.com>
33829         * backends/quartz/quartz_postlist.cc: Changed to merge a batch of
33830           changes into a posting list in one pass.
33832 Thu Dec 25 05:48:09 GMT 2003  Olly Betts <olly@survex.com>
33834         * docs/quartzdesign.html: Some minor improvements.
33836 Thu Dec 25 05:39:57 GMT 2003  Olly Betts <olly@survex.com>
33838         * tests/api_db.cc: Check returned docids are the expected values in a
33839           couple more cases.  Improved wording of a comment.
33841 Thu Dec 25 05:38:43 GMT 2003  Olly Betts <olly@survex.com>
33843         * backends/quartz/quartz_utils.h: Updated explanation of string
33844           encoding.
33846 Thu Dec 25 05:37:36 GMT 2003  Olly Betts <olly@survex.com>
33848         * backends/quartz/quartz_values.cc: Fixed problem with dereferencing
33849           a pointer to the end of a string in debug output.
33851 Sun Dec 21 23:35:49 GMT 2003  Olly Betts <olly@survex.com>
33853         * backends/quartz/quartz_postlist.cc: Refactor recently relocated code
33854           to reduce duplication.
33856 Sun Dec 21 21:44:07 GMT 2003  Olly Betts <olly@survex.com>
33858         * backends/quartz/quartz_postlist.cc: Renamed
33859           skip_and_check_tname_in_key() to check_tname_in_key() as it doesn't
33860           do any sort of skipping!
33862 Sun Dec 21 14:54:49 GMT 2003  Olly Betts <olly@survex.com>
33864         * backends/quartz/quartz_postlist.cc,backends/quartz/quartz_postlist.h,
33865           tests/quartztest.cc: Subsumed QuartzPostList::add_entry and
33866           QuartzPostList::delete_entry into QuartzPostList::merge_changes.
33868 Sun Dec 21 03:21:42 GMT 2003  Olly Betts <olly@survex.com>
33870         * backends/quartz/quartz_database.cc,
33871           backends/quartz/quartz_postlist.cc,
33872           backends/quartz/quartz_postlist.h: Move merging on postlist changes
33873           into QuartzPostList in preparation for an efficient
33874           reimplementation.
33876 Sun Dec 21 01:47:07 GMT 2003  Olly Betts <olly@survex.com>
33878         * backends/quartz/quartz_postlist.h,
33879           backends/quartz/quartz_table_entries.h: Fixed typos and incorrect
33880           comments.
33882 Sat Dec 20 22:11:26 GMT 2003  Olly Betts <olly@survex.com>
33884         * backends/quartz/: Removed several needless inclusions of
33885           quartz_table_entries.h.
33887 Sat Dec 20 16:31:46 GMT 2003  Olly Betts <olly@survex.com>
33889         * backends/quartz/,docs/quartzdesign.html: Removed all the quartz
33890           lexicon code and docs.  It's been disabled for ages, and we've
33891           not missed it.
33893 Sat Dec 20 01:21:47 GMT 2003  Olly Betts <olly@survex.com>
33895         * backends/quartz/quartz_database.h: Added doxygen comments for the
33896           QuartzWritableDatabase members we use to buffer changes.
33898 Sat Dec 20 01:19:10 GMT 2003  Olly Betts <olly@survex.com>
33900         * backends/quartz/quartz_database.cc: Trigger autoflush on
33901           totlen_added + totlen_removed rather than specially tracking the
33902           number of document add/delete/replace operations.
33904 Fri Dec 19 22:51:26 GMT 2003  Olly Betts <olly@survex.com>
33906         * backends/quartz/: Buffer up changes to the postlists and apply them
33907           all at once (at present they're applied inefficiently, but this is
33908           change enables us to apply them with an efficient merge).
33909         * tests/api_db.cc,tests/quartztest.cc: Added a couple of tests, and
33910           commented out some test lines which fail in debug builds.
33912 Sun Dec 14 03:38:55 GMT 2003  Olly Betts <olly@survex.com>
33914         * common/omdebug.cc: Open debug log with flag O_WRONLY so that we can
33915           actually write to it!
33917 Mon Dec 08 01:53:24 GMT 2003  Olly Betts <olly@survex.com>
33919         * HACKING: Update to mention that building from CVS requires
33920           ./configure --enable-maintainer-mode (or use bootstrap).
33922 Mon Dec 01 19:03:00 GMT 2003  Olly Betts <olly@survex.com>
33924         * configure.in: Fixed the "fixed" valgrind test.
33926 Sun Nov 30 23:42:52 GMT 2003  Olly Betts <olly@survex.com>
33928         * configure.in,testsuite/testsuite.cc: Fix test for valgrind - it
33929           wasn't working correctly when valgrind was installed but was too
33930           a version to support VALGRIND_COUNT_ERRORS and VALGRIND_COUNT_LEAKS.
33932 Wed Nov 26 16:31:19 GMT 2003  Olly Betts <olly@survex.com>
33934         * Makefile.am,extra/Makefile.am: Updated libtool -version-info
33935           parameters for 0.7.5.
33937 Wed Nov 26 15:32:45 GMT 2003  Olly Betts <olly@survex.com>
33939         * NEWS,PLATFORMS,configure.in: Version 0.7.5.
33941 Wed Nov 26 15:31:56 GMT 2003  Olly Betts <olly@survex.com>
33943         * extra/queryparser.yy: Special case stemming language "none".
33945 Tue Nov 25 04:37:50 GMT 2003  Olly Betts <olly@survex.com>
33947         * api/ompositionlistiterator.cc,api/ompostlistiterator.cc,
33948           include/xapian/positioniterator.h,include/xapian/postingiterator.h,
33949           tests/api_db.cc: Added missing default ctors for PostingIterator and
33950           PositionIterator classes; fixed PositionIterator assignment operator.
33952 Tue Nov 25 03:40:11 GMT 2003  Olly Betts <olly@survex.com>
33954         * tests/btreetest.cc: Fixed 2 compiler warnings.
33956 Tue Nov 25 02:47:16 GMT 2003  Olly Betts <olly@survex.com>
33958         * common/,include/xapian/: Fixed incorrect doxygen comments which
33959           resulted in some missing text in the collated API and internal
33960           classes documentation.
33962 Fri Nov 21 03:23:57 GMT 2003  Olly Betts <olly@survex.com>
33964         * Makefile.am,include/xapian/termiterator.h,api/omtermlistiterator.cc:
33965           TermIterator::TermIterator() fix which actually works!
33967 Fri Nov 21 01:14:23 GMT 2003  Olly Betts <olly@survex.com>
33969         * HACKING,configure.in,docs/Makefile.am,extra/Makefile.am: Change to
33970           using AM_MAINTAINER_MODE.  If you're doing development work on
33971           Xapian, you should configure with "--enable-maintainer-mode" and
33972           ideally use GNU make.
33974 Fri Nov 21 01:13:25 GMT 2003  Olly Betts <olly@survex.com>
33976         * include/xapian/termiterator.h,tests/api_nodb.cc: Added TermIterator
33977           default ctor which had disappeared somehow.  Added regression test.
33979 Thu Nov 20 03:19:37 GMT 2003  Olly Betts <olly@survex.com>
33981         * configure.in: Fixed test for fdatasync to work (I suspect a change
33982           in a recent autoconf broke it as it relied on autoconf internal
33983           naming).
33985 Tue Nov 18 17:53:29 GMT 2003  Olly Betts <olly@survex.com>
33987         * extra/Makefile.am: Tweaked workaround for FreeBSD make in VPATH
33988           builds.
33990 Tue Nov 18 17:53:01 GMT 2003  Olly Betts <olly@survex.com>
33992         * extra/queryparsertest.cc: Added another testcase.
33994 Tue Nov 18 17:37:20 GMT 2003  Olly Betts <olly@survex.com>
33996         * docs/: Added first cut of documentation for Xapian::QueryParser
33997           query syntax.
33998         * docs/scalability.html: Fixed typo.
34000 Fri Oct 31 18:17:13 GMT 2003  Olly Betts <olly@survex.com>
34002         * extra/queryparser.yy,extra/queryparsertest.cc: Added support for
34003           term prefixes on phrases and expressions (e.g. author:(twain OR poe)
34004           subject:"space flight").
34006 Tue Oct 28 15:03:01 GMT 2003  Olly Betts <olly@survex.com>
34008         * api/omenquire.cc: Added FIXME comment.
34010 Tue Oct 28 15:01:14 GMT 2003  Olly Betts <olly@survex.com>
34012         * docs/todo.xml: Removed Java from list of language bindings we'd
34013           like to support, as we should have up-to-date Java bindings soon.
34015 Sun Oct 26 20:18:24 GMT 2003  Olly Betts <olly@survex.com>
34017         * bin/quartzcompact.cc: Fix the name that the meta file gets copied
34018           to (was /path/to/dbdirmeta rather than /path/to/dbdir/meta).
34020 Tue Oct 21 22:26:51 BST 2003  Olly Betts <olly@survex.com>
34022         * extra/Makefile.am: Backed out previous change - the original rule
34023           does work, but the build machine had a generated file which stopped
34024           the symlink being generated.
34026 Tue Oct 21 22:14:22 BST 2003  Olly Betts <olly@survex.com>
34028         * extra/Makefile.am: Tweaked rule to symlink queryparser.cc.
34030 Tue Oct 21 17:31:10 BST 2003  Olly Betts <olly@survex.com>
34032         * extra/Makefile.am: Added rule to symlink queryparser.cc from source
34033           tree to build tree - otherwise FreeBSD's make insists on
34034           regenerating it...
34036 Wed Oct 08 14:04:44 BST 2003  Olly Betts <olly@survex.com>
34038         * backends/quartz/.cvsignore,tests/Makefile.am,testsuite/.cvsignore:
34039           Updated to reflect move of libbtreecheck.la from backends/quartz
34040           to testsuite.
34042 Wed Oct 08 13:22:08 BST 2003  Olly Betts <olly@survex.com>
34044         * backends/quartz/btree.cc: Don't pass mode argument to open when we
34045           aren't specifying O_CREAT.
34047 Thu Oct 02 15:29:38 BST 2003  Olly Betts <olly@survex.com>
34049         * NEWS: Another entry for omega for 0.7.4.
34051 Thu Oct 02 14:57:25 BST 2003  Olly Betts <olly@survex.com>
34053         * configure.in,extra/Makefile.am: Version 0.7.4.
34055 Thu Oct 02 14:56:36 BST 2003  Olly Betts <olly@survex.com>
34057         * HACKING: Improved wording in a few places.
34059 Thu Oct 02 14:39:49 BST 2003  Olly Betts <olly@survex.com>
34061         * NEWS: Updated.
34063 Thu Oct 02 13:35:46 BST 2003  Olly Betts <olly@survex.com>
34065         * xapian.spec.in: Don't hardcode the shared library versioning info.
34067 Wed Oct 01 13:51:15 BST 2003  Olly Betts <olly@survex.com>
34069         * PLATFORMS: Updated - Solaris 8 + Sun Workshop C++ doesn't actually
34070           pass "make check" (I forgot the tinderbox builds omega before "make
34071           check").
34073 Tue Sep 30 21:39:20 BST 2003  Olly Betts <olly@survex.com>
34075         * configure.in: Another stab at fixing the test for -lsocket.
34077 Tue Sep 30 18:29:31 BST 2003  Olly Betts <olly@survex.com>
34079         * configure.in: Quote arguments to test in a couple of places.
34081 Tue Sep 30 11:20:09 BST 2003  Olly Betts <olly@survex.com>
34083         * configure.in: Fixed test for -lsocket.
34085 Tue Sep 30 10:17:09 BST 2003  Olly Betts <olly@survex.com>
34087         * PLATFORMS: Updated - Solaris 8 + Sun Workshop C++ builds and passes
34088           "make check" (but Omega fails to build).
34090 Mon Sep 29 00:41:19 BST 2003  Olly Betts <olly@survex.com>
34092         * configure.in: Fixed dependency libs for libxapian.
34094 Sun Sep 28 23:55:49 BST 2003  Olly Betts <olly@survex.com>
34096         * Makefile.am,backends/quartz/Makefile.am,
34097           backends/quartz/btreecheck.cc,backends/quartz/btreecheck.h,
34098           bin/Makefile.am,testsuite/Makefile.am,testsuite/btreecheck.cc,
34099           testsuite/btreecheck.h: libbtreecheck.la now has an explicit
34100           dependency on libxapian.la.
34102 Sun Sep 28 17:29:55 BST 2003  Olly Betts <olly@survex.com>
34104         * Makefile.am,configure.in: Tell libtool about any libraries which
34105           libxapian needs to depend on.
34107 Fri Sep 26 09:39:29 BST 2003  Olly Betts <olly@survex.com>
34109         * bin/Makefile.am: Swap order of libbtreecheck.la and libxapian.la
34110           when linking quartzcheck to see if that gets it to work with
34111           Sun's CC.
34113 Thu Sep 25 17:25:17 BST 2003  Olly Betts <olly@survex.com>
34115         * xapian-config.in: Fixed stupid mistake in previous check-in.
34117 Thu Sep 25 16:50:00 BST 2003  Olly Betts <olly@survex.com>
34119         * xapian-config.in: Link with libxapianqueryparser before libxapian,
34120           since that's the dependency order.
34122 Thu Sep 25 16:43:20 BST 2003  Olly Betts <olly@survex.com>
34124         * include/om/om.h: Updated comment about why we `#include <iostream>'.
34126 Thu Sep 25 13:13:37 BST 2003  Olly Betts <olly@survex.com>
34128         * api/omqueryinternal.cc,backends/database.cc,common/omdebug.cc,
34129           common/omstringstream.h,include/xapian/output.h: Removed or replaced
34130           uses of <iostream> and <iosfwd> - we don't need or want the library
34131           to pull in cin and friends.
34133 Thu Sep 25 13:12:31 BST 2003  Olly Betts <olly@survex.com>
34135         * Makefile.am: Improved several comments.
34137 Thu Sep 25 11:57:03 BST 2003  Olly Betts <olly@survex.com>
34139         * api/omqueryinternal.cc: Removed `#include <iostream>' left over from
34140           debugging; changed to `using namespace std;'.
34142 Mon Sep 15 00:41:10 BST 2003  Olly Betts <olly@survex.com>
34144         * extra/queryparser.yy: Fixed to build with Sun's C++ compiler.
34146 Thu Sep 11 03:35:29 BST 2003  Olly Betts <olly@survex.com>
34148         * dummy.c,dummy.cc,Makefile.am: Change the default file to be C++ so
34149           that automake tells libtool that this is a C++ library.
34150         * Makefile.am: Pass -no-undefined to libtool so that it will build
34151           a DLL on MS Windows.
34153 Wed Sep 10 02:53:46 BST 2003  Olly Betts <olly@survex.com>
34155         * docs/scalability.html: Fixed oops (32GB should be 32TB);  Added
34156           note about Linux 2.4 and ext2 filesize limits.
34158 Tue Sep 09 03:36:05 BST 2003  Olly Betts <olly@survex.com>
34160         * backends/quartz/quartz_database.cc: don't start the document's
34161           TermIterator from scratch on every iteration in replace_document().
34162           Should be a small performance win.
34164 Sun Sep 07 22:17:27 BST 2003  Olly Betts <olly@survex.com>
34166         * configure.in: Fixed check for socketpair - we were automatically
34167           disabling the remote backend on platforms where socketpair is
34168           in libsocket (such as Solaris).
34170 Sun Sep 07 19:56:57 BST 2003  Olly Betts <olly@survex.com>
34172         * PLATFORMS: Added success report for cygwin from Eric B. Ridge.
34174 Sun Sep 07 03:53:48 BST 2003  Olly Betts <olly@survex.com>
34176         * testsuite/testsuite.cc: Also need to rerun test if it "probably
34177           leaked".
34179 Sun Sep 07 03:51:37 BST 2003  Olly Betts <olly@survex.com>
34181         * tests/api_db.cc: Use x & (x - 1) trick to check for x being a power
34182           of 2, rather than an elaborate loop with shifting; use Xapian::docid
34183           rather than "int" and "unsigned int".
34185 Sun Sep 07 02:24:06 BST 2003  Olly Betts <olly@survex.com>
34187         * api/omenquire.cc: Fixed small memory leak if
34188           Xapian::Enquire::set_query() is called more than once.
34190 Sun Sep 07 02:12:47 BST 2003  Olly Betts <olly@survex.com>
34192         * common/omenquireinternal.h,include/xapian/enquire.h: Fixed
34193           Xapian::ESet to have reference counted internals
34194         * Makefile.am: bumped libxapian version-info to 1:0:0 because of this.
34196 Sun Sep 07 02:09:50 BST 2003  Olly Betts <olly@survex.com>
34198         * testsuite/testsuite.cc: Delete any buffered test output before
34199           asking valgrind to check for leaks, as otherwise the buffered
34200           output may be reported as a leak; also fixed |= to != in several
34201           places - a cosmetic bug which lead to extra newlines after test
34202           output.
34204 Sun Sep 07 00:09:32 BST 2003  Olly Betts <olly@survex.com>
34206         * testsuite/testsuite.cc: Actually open temporary file for valgrind
34207           to log to.
34209 Sat Sep 06 20:50:58 BST 2003  Olly Betts <olly@survex.com>
34211         * configure.in,testsuite/testsuite.cc: Fixed up detection of valgrind
34212           and testsuite code to use it.
34214 Sat Sep 06 20:48:17 BST 2003  Olly Betts <olly@survex.com>
34216         * tests/btreetest.cc: Reinstated non-superfluous `/'s which I had
34217           overeagerly removed!
34219 Sat Sep 06 17:28:00 BST 2003  Olly Betts <olly@survex.com>
34221         * matcher/Makefile.am: Ship networkmatch.cc even if "make dist" is run
34222           from a tree with the remote backend disabled.
34224 Thu Aug 28 00:01:22 BST 2003  Olly Betts <olly@survex.com>
34226         * tests/btreetest.cc: Removed superfluous `/'s from constructed paths.
34228 Fri Aug 15 15:12:24 BST 2003  Olly Betts <olly@survex.com>
34230         * PLATFORMS: Updated with current testsuite results for mingw build.
34232 Fri Aug 15 15:10:59 BST 2003  Olly Betts <olly@survex.com>
34234         * backends/quartz/btree.cc: Use O_BINARY for database I/O if it
34235           exists.
34237 Fri Aug 15 15:10:30 BST 2003  Olly Betts <olly@survex.com>
34239         * common/utils.h: mkdir() only takes one argument on mingw.
34241 Fri Aug 15 01:26:22 BST 2003  Olly Betts <olly@survex.com>
34243         * common/utils.h,testsuite/backendmanager.cc: Touch file using
34244           open() rather than system().
34246 Fri Aug 15 01:06:06 BST 2003  Olly Betts <olly@survex.com>
34248         * common/utils.h: Fixed parameter name of system from "filename" to
34249           "command" (cosmetic change).
34251 Thu Aug 14 22:31:23 BST 2003  Olly Betts <olly@survex.com>
34253         * net/progclient.cc: Tidied a little.
34255 Tue Aug 12 12:50:19 BST 2003  Olly Betts <olly@survex.com>
34257         * backends/quartz/quartz_database.cc: Pass 0 for the lexicon/postlist
34258           table when creating a termlist just to find the doc length.
34260 Tue Aug 12 02:08:50 BST 2003  Olly Betts <olly@survex.com>
34262         * api/maptermlist.h,api/omdocument.cc,common/documentterm.h:
34263           Removed unused OmDocumentTerm::termfreq member variable.
34265 Tue Aug 12 00:53:02 BST 2003  Olly Betts <olly@survex.com>
34267         * api/omdocument.cc,common/documentterm.h: OmDocumentTerm ctor now
34268           takes wdf, and replaced set_wdf() with inc_wdf() and dec_wdf().
34270 Mon Aug 11 16:11:26 BST 2003  Olly Betts <olly@survex.com>
34272         * backends/quartz/quartz_table_entries.cc: Removed rather unnecessary
34273           use of const_cast.
34275 Mon Aug 11 16:11:05 BST 2003  Olly Betts <olly@survex.com>
34277         * backends/quartz/quartz_table.cc: Removed unused variable.
34279 Mon Aug 11 16:09:57 BST 2003  Olly Betts <olly@survex.com>
34281         * backends/quartz/quartz_postlist.cc: Fixed typo in comment.
34283 Mon Aug 11 15:51:20 BST 2003  Olly Betts <olly@survex.com>
34285         * tests/quartztest.cc: adddoc2 now checks that there weren't any extra
34286           values created.
34288 Mon Aug 11 12:55:49 BST 2003  Olly Betts <olly@survex.com>
34290         * configure.in: Sorted out tests for gethostbyname and gethostbyaddr
34291           using standard autoconf macros.
34293 Mon Aug 11 12:05:13 BST 2003  Olly Betts <olly@survex.com>
34295         * common/match.h,matcher/: Removed unused open_document() method from
34296           SubMatch and derived classes; calls made by the matcher to
34297           Document::Internal::open_document() now use the lazy flag provided
34298           for precisely this purpose, but apparently never used - this should
34299           give quite a speed boost to any matcher options which use values
34300           (e.g. sort, collapse).
34302 Sun Aug 10 02:25:59 BST 2003  Olly Betts <olly@survex.com>
34304         * PLATFORMS: Out of curiosity, I tried to build with a Linux->DJGPP
34305           cross-compiler I had to hand.  It built (just had to disable the
34306           remote backend if socketpair isn't found and add the workaround for
34307           not having snprintf).
34309 Sun Aug 10 01:38:17 BST 2003  Olly Betts <olly@survex.com>
34311         * common/utils.cc: Fixed to compile if snprintf isn't available.
34313 Sun Aug 10 01:37:44 BST 2003  Olly Betts <olly@survex.com>
34315         * backends/quartz/btree.cc: Fixed "initialisation reordered" warning.
34317 Sun Aug 10 01:26:58 BST 2003  Olly Betts <olly@survex.com>
34319         * acinclude.m4: Updated in line with previous change.
34321 Sun Aug 10 01:00:08 BST 2003  Olly Betts <olly@survex.com>
34323         * configure.in: If fork is found, but socketpair isn't, automatically
34324           disable the remote backend rather than configure dying with an
34325           error.
34326         * autoconf/: Removed various unused autoconf macros.
34328 Sat Aug 09 23:57:44 BST 2003  Olly Betts <olly@survex.com>
34330         * backends/quartz/btree.h: Made "overwritten" protected.
34332 Sat Aug 09 23:45:26 BST 2003  Olly Betts <olly@survex.com>
34334         * docs/quartzdesign.html: Wrapped an overlong line.
34336 Sat Aug 09 23:31:30 BST 2003  Olly Betts <olly@survex.com>
34338         * backends/quartz/btree.cc,backends/quartz/btree.h,
34339           backends/quartz/quartz_table.cc,docs/quartzdesign.html:
34340           Improved class Btree's encapsulation.
34342 Sat Aug 09 22:30:13 BST 2003  Olly Betts <olly@survex.com>
34344         * NEWS: Fixed a few typos.
34346 Sat Aug 09 22:29:52 BST 2003  Olly Betts <olly@survex.com>
34348         * PLATFORMS: Updated with results from the Tinderbox.
34350 Sat Aug 09 22:19:12 BST 2003  Fabrice Colin
34352         * xapian.spec.in: Updated RPM packaging to reflect changes in 0.7.3.
34354 Fri Aug 08 01:38:40 BST 2003  Olly Betts <olly@survex.com>
34356         * Makefile.am,configure.in,extra/Makefile.am: Version 0.7.3.
34358 Fri Aug 08 01:35:04 BST 2003  Olly Betts <olly@survex.com>
34360         * NEWS: Updated.
34362 Fri Aug 08 01:34:29 BST 2003  Olly Betts <olly@survex.com>
34364         * PLATFORMS: Updated with more tinderbox results.
34366 Wed Aug 06 16:27:34 BST 2003  Olly Betts <olly@survex.com>
34368         * HACKING: Noted that libtool 1.5 is the first version to actually
34369           support linking C++ libraries properly.
34371 Wed Aug 06 16:25:15 BST 2003  Olly Betts <olly@survex.com>
34373         * api/omenquire.cc,net/socketcommon.cc,common/omenquireinternal.h:
34374           Moved rset serialisation into a method of RSet::Internal, so
34375           omrset_to_string() is now just glue code.  This eliminates the
34376           need for it to be a friend of RSet::Internal which Sun's C++
34377           compiler didn't seem to be able to cope with.
34379 Wed Aug 06 01:57:11 BST 2003  Olly Betts <olly@survex.com>
34381         * api/omenquire.cc: Applied patch from Olivier Galibert to fix
34382           MSetIterator::get_document() when get_mset() was called with
34383           first != 0.
34384         * tests/api_db.cc: Added regression test (msetiterator3).
34386 Mon Aug 04 12:40:25 BST 2003  Olly Betts <olly@survex.com>
34388         * languages/Makefile.am: Fixed compilation for compilers other than
34389           GCC.
34391 Wed Jul 30 17:03:14 BST 2003  Olly Betts <olly@survex.com>
34393         * common/getopt.h: Another try - the previous one failed on FreeBSD.
34395 Wed Jul 30 15:07:58 BST 2003  Olly Betts <olly@survex.com>
34397         * common/getopt.h: Another iteration of the getopt C++ prototype fix
34398           as the previous one failed on Solaris.
34400 Wed Jul 30 02:38:47 BST 2003  Olly Betts <olly@survex.com>
34402         * testsuite/backendmanager.cc: Fixed breakage caused by remotetest
34403           cleanup.
34405 Tue Jul 29 13:22:20 BST 2003  Olly Betts <olly@survex.com>
34407         * tests/remotetest.cc: Cleaned up uses of
34408           BackendManager::get_database() to pass a string rather than a vector
34409           with one string in.
34411 Tue Jul 29 11:58:21 BST 2003  Olly Betts <olly@survex.com>
34413         * testsuite/testutils.cc: Added output of const vector<unsigned int>
34414           for platforms which use our internal stringstream implementation.
34416 Tue Jul 29 11:42:54 BST 2003  Olly Betts <olly@survex.com>
34418         * PLATFORMS: Updated with results from the tinderbox.
34420 Tue Jul 29 01:21:53 BST 2003  Olly Betts <olly@survex.com>
34422         * testsuite/testsuite.cc,testsuite/testsuite.h: Only use \r in test
34423           output if the output is a tty.
34425 Mon Jul 28 23:56:10 BST 2003  Olly Betts <olly@survex.com>
34427         * xapian-config.in: Fixed fix of --cxxflags for uninstalled VPATH
34428           builds.
34430 Mon Jul 28 23:37:15 BST 2003  Olly Betts <olly@survex.com>
34432         * testsuite/backendmanager.cc: Increased default timeout used by
34433           tests running on the remote backend from 10 seconds to 5 minutes
34434           to avoid tests failing just because the machine running them is
34435           slow and/or busy.
34437 Mon Jul 28 15:41:12 BST 2003  Olly Betts <olly@survex.com>
34439         * testsuite/testutils.h: Fixed check for broken exception handling
34440           - we were getting "Xapian::" prefixed to one version and not on the
34441           other.
34443 Mon Jul 28 15:34:54 BST 2003  Olly Betts <olly@survex.com>
34445         * tests/runtest.in: Set srcdir if it isn't already to make it easy
34446           to manually run test programs from a VPATH build.
34448 Mon Jul 28 10:38:04 BST 2003  Olly Betts <olly@survex.com>
34450         * xapian-config.in: Fixed --cxxflags for uninstalled VPATH builds.
34452 Mon Jul 28 10:37:17 BST 2003  Olly Betts <olly@survex.com>
34454         * PLATFORMS: Updated FreeBSD success report.
34456 Sun Jul 27 16:01:25 BST 2003  Olly Betts <olly@survex.com>
34458         * configure.in: Explicitly remove include/xapian/version.h from
34459           APIDOC_SRC to avoid us trying to run doxygen unnecessarily.
34461 Sun Jul 27 14:31:36 BST 2003  Olly Betts <olly@survex.com>
34463         * docs/todo.xml: Assorted updates.
34465 Sun Jul 27 13:02:36 BST 2003  Olly Betts <olly@survex.com>
34467         * extra/.cvsignore: We still create libomqueryparser.la for backward
34468           compatibility.
34470 Sun Jul 27 04:56:40 BST 2003  Olly Betts <olly@survex.com>
34472         * xapian-config.in,m4/xapian.m4: Added --from-xo-lib-xapian option
34473           to xapian-config for use by XO_LIB_XAPIAN to allow us to give a
34474           more helpful error message if asked to link an uninstalled
34475           libxapian.
34477 Sun Jul 27 04:46:48 BST 2003  Olly Betts <olly@survex.com>
34479         * xapian-config.in: Fixed --cxxflags in non-installed case.
34480           Tidied up --help output and error messages.
34482 Sun Jul 27 01:40:39 BST 2003  Olly Betts <olly@survex.com>
34484         * tests/api_db.cc: Check termfreq in allterms4.
34486 Sun Jul 27 01:39:57 BST 2003  Olly Betts <olly@survex.com>
34488         * extra/queryparsertest.cc: Fixed for relocated queryparser.h.
34490 Sun Jul 27 00:59:56 BST 2003  Olly Betts <olly@survex.com>
34492         * .cvsignore,backends/quartz/.cvsignore,extra/.cvsignore: Updated.
34494 Sun Jul 27 00:19:11 BST 2003  Olly Betts <olly@survex.com>
34496         * tests/Makefile.am: Oops, failed to remove btreecheck.cc reference
34497           in previous check-in.
34499 Sat Jul 26 23:36:01 BST 2003  Olly Betts <olly@survex.com>
34501         * backends/quartz/Makefile.am,bin/Makefile.am,tests/Makefile.am:
34502           Hopefully fixed "make dist" in VPATH builds.
34504 Sat Jul 26 22:58:27 BST 2003  Olly Betts <olly@survex.com>
34506         * backends/quartz/Makefile.am: Need to distribute btreecheck.cc.
34508 Sat Jul 26 20:05:47 BST 2003  Olly Betts <olly@survex.com>
34510         * xapian-config.in,extra/Makefile.am,extra/queryparser.h,
34511           extra/queryparser.yy,extra/xapian/queryparser.h: Sorted out
34512           xapian-config so it handles using QueryParser too.
34514 Sat Jul 26 19:03:04 BST 2003  Olly Betts <olly@survex.com>
34516         * xapian-config.in: Updated logic in --libs and --cxxflags in line
34517           with recent change in --ltlibs.
34519 Sat Jul 26 18:31:11 BST 2003  Olly Betts <olly@survex.com>
34521         * xapian-config.in: Reworked logic for finding libxapian.la in
34522           --ltlibs - it may not yet exist in the non-installed case.
34523         * m4/xapian.m4: Don't pass --libs when checking if xapian-config
34524           works as it will fail in the non-installed case.
34526 Sat Jul 26 01:25:46 BST 2003  Olly Betts <olly@survex.com>
34528         * NEWS: Updated.
34530 Fri Jul 25 10:20:18 BST 2003  Olly Betts <olly@survex.com>
34532         * NEWS: Updated in preparation for 0.7.3 release.
34534 Thu Jul 24 23:20:14 BST 2003  Olly Betts <olly@survex.com>
34536         * backends/quartz/quartz_alltermslist.cc,
34537           backends/quartz/quartz_alltermslist.h,tests/api_db.cc:
34538           Fixed allterms TermIterator to not give duplicate terms with a
34539           quartz database when a posting list is chunked; added regression
34540           test (allterms4).
34542 Mon Jul 21 15:06:59 BST 2003  Richard Boulton <richard@tartarus.org>
34544         * include/xapian/enquire.h: Fix incorrect documentation comment
34545           for Enquire::set_set_forward().  (Looked like a cut&paste error)
34547 Mon Jul 21 01:10:55 BST 2003  Olly Betts <olly@survex.com>
34549         * docs/install.html,m4/xapian.m4: Added XO_LIB_XAPIAN to replace
34550           OM_PATH_XAPIAN.  XO_LIB_XAPIAN will automagically enable use of
34551           "xapian-config --ltlibs" if A[CM]_PROG_LIBTOOL is used in
34552           configure.in.
34554 Sun Jul 20 16:00:43 BST 2003  Olly Betts <olly@survex.com>
34556         * .cvsignore,Makefile.am,configure.in,xapian-config.in,
34557           xapian-config.nodep.in: Reworked xapian-config so that it
34558           now supports linking with libtool - using libtool means that the
34559           run-time library path is set and that you can now link with an
34560           uninstalled libxapian.  Also xapian-config will now work
34561           once configure is run, rather than only after "make all".
34563 Thu Jul 17 01:42:47 BST 2003  Olly Betts <olly@survex.com>
34565         * backends/quartz/bcursor.cc,backends/quartz/btree.cc: Check for
34566           EINTR when reading or writing blocks and retry the operation.
34568 Thu Jul 17 00:56:35 BST 2003  Olly Betts <olly@survex.com>
34570         * COPYING: Updated FSF address, and reinstated missing section: "How
34571           to Apply These Terms to Your New Programs"
34573 Thu Jul 17 00:48:40 BST 2003  Olly Betts <olly@survex.com>
34575         * HACKING,bootstrap: Removed bootstrap in favour of top-level
34576           bootstrap.
34578 Mon Jul 14 23:36:14 BST 2003  Olly Betts <olly@survex.com>
34580         * PLATFORMS: Updated some linux results: RH7.3 on x86, and Debian on
34581           alpha and arm.
34583 Mon Jul 14 23:33:17 BST 2003  Olly Betts <olly@survex.com>
34585         * configure.in,Makefile.am,extra/Makefile.am: Added versioning
34586           information to libxapian and libomqueryparser.
34588 Mon Jul 14 23:32:15 BST 2003  Olly Betts <olly@survex.com>
34590         * bin/quartzdump.cc,testsuite/testsuite.cc: Added long option support
34591           to quartzdump, and to the testsuite programs.
34593 Mon Jul 14 22:45:53 BST 2003  Olly Betts <olly@survex.com>
34595         * tests/internaltest.cc: Changed test exception1 to actually test
34596           something (hopefully what was originally intended!)
34598 Mon Jul 14 17:15:28 BST 2003  Olly Betts <olly@survex.com>
34600         * common/getopt.h: #include <stdlib.h> before defining getopt as a
34601           macro - hopefully that'll avoid problems with clobbering prototypes
34602           of getopt() in system headers.
34604 Sat Jul 12 09:15:26 BST 2003  Olly Betts <olly@survex.com>
34606         * bin/quartzcompact.cc: Need stdio.h for rename().
34608 Sat Jul 12 01:11:54 BST 2003  Olly Betts <olly@survex.com>
34610         * HACKING: Noted another reason why libtool 1.5 is needed.
34612 Sat Jul 12 01:11:08 BST 2003  Olly Betts <olly@survex.com>
34614         * docs/mkdoc.pl: Don't choke on a comment at the end of the
34615           DIST_SUBDIRS line in a Makefile.am.
34617 Fri Jul 11 22:00:36 BST 2003  Olly Betts <olly@survex.com>
34619         * HACKING: Added note about additional tools needed for building a
34620           distribution.
34622 Fri Jul 11 15:13:08 BST 2003  Olly Betts <olly@survex.com>
34624         * NEWS,PLATFORMS,configure.in: Version 0.7.2.
34626 Fri Jul 11 12:36:18 BST 2003  Olly Betts <olly@survex.com>
34628         * NEWS: Updated in preparation for 0.7.2.
34630 Fri Jul 11 12:12:40 BST 2003  Olly Betts <olly@survex.com>
34632         * configure.in: Fixed test for snprintf.
34634 Fri Jul 11 09:37:14 BST 2003  Olly Betts <olly@survex.com>
34636         * testsuite/testsuite.cc: Fixed dereference of a NULL pointer which
34637           was happening when a test threw an unexpected exception.
34639 Fri Jul 11 09:31:40 BST 2003  Olly Betts <olly@survex.com>
34641         * testsuite/backendmanager.cc: Backed out incorrect hunk of previous
34642           patch which was causing test failures.
34644 Fri Jul 11 01:48:21 BST 2003  Olly Betts <olly@survex.com>
34646         * backends/quartz/quartz_table_manager.cc,tests/quartztest.cc,
34647           testsuite/backendmanager.cc: Tidying up around directory creation.
34649 Fri Jul 11 00:57:12 BST 2003  Olly Betts <olly@survex.com>
34651         * include/xapian/database.h: Document that the directory is created.
34653 Fri Jul 11 00:53:59 BST 2003  Olly Betts <olly@survex.com>
34655         * backends/quartz/quartz_table_manager.cc: When asked to create a
34656           quartz database, try to create the directory if it doesn't already
34657           exist.  Then we don't have to do it in every single Xapian program
34658           which wants to create a database...
34660 Fri Jul 11 00:36:00 BST 2003  Olly Betts <olly@survex.com>
34662         * common/getopt.h: Removed space between \ and newline.
34664 Fri Jul 11 00:32:40 BST 2003  Olly Betts <olly@survex.com>
34666         * PLATFORMS: Added MacOS X 10.2 success report.
34668 Thu Jul 10 20:05:58 BST 2003  Olly Betts <olly@survex.com>
34670         * common/getopt.h: Fixed to work better with C++ compilers on
34671           non-glibc platforms.
34673 Thu Jul 10 19:21:00 BST 2003  Olly Betts <olly@survex.com>
34675         * backends/quartz/btree.cc: Modified setting of _XOPEN_SOURCE to
34676           actually work!
34678 Thu Jul 10 19:19:30 BST 2003  Olly Betts <olly@survex.com>
34680         * backends/quartz/btree.cc: Defined _XOPEN_SOURCE=500 for GLIBC
34681           so we get pread() and pwrite().
34683 Thu Jul 10 00:28:25 BST 2003  Olly Betts <olly@survex.com>
34685         * HACKING,Makefile.am,configure.in,bindings/.cvsignore,
34686           bindings/Makefile.am,bindings/dir_contents,bindings/guile/.cvsignore,
34687           bindings/guile/Makefile.am,bindings/php4/.cvsignore,
34688           bindings/php4/ABOUT,bindings/php4/Makefile.am,bindings/python/,
34689           bindings/swig/,bindings/tcl8/.cvsignore,bindings/tcl8/Makefile.am,
34690           docs/todo.xml: Removed bindings - they'll shortly reappear in a
34691           separate module named xapian-bindings.
34693 Thu Jul 10 00:03:04 BST 2003  Olly Betts <olly@survex.com>
34695         * bindings/swig/om_util_perl5.i: Removed.
34697 Wed Jul 09 15:35:56 BST 2003  Olly Betts <olly@survex.com>
34699         * bindings/guile/Makefile.am,bindings/php4/Makefile.am,
34700           bindings/python/Makefile.am,bindings/swig/,
34701           bindings/tcl8/Makefile.am: Removed omtypes.i and merged omstem.i
34702           into xapian.i; added forward declaration for upwrapped classes
34703           to xapian.i.
34705 Wed Jul 09 15:34:11 BST 2003  Olly Betts <olly@survex.com>
34707         * bindings/java/,bindings/java/com/muscat/om/,bindings/java/native/:
34708           Removed old Java bindings - we'll do them using SWIG instead.
34710 Wed Jul 09 14:51:51 BST 2003  Olly Betts <olly@survex.com>
34712         * bindings/php4/Makefile.am,bindings/php4/xapian/.cvsignore: More
34713           work on the php4 bindings.
34715 Wed Jul 09 03:00:17 BST 2003  Olly Betts <olly@survex.com>
34717         * bindings/guile/Makefile.am,bindings/python/Makefile.am,
34718           bindings/tcl8/Makefile.am: Worked towards getting guile and tcl8
34719           bindings up-to-date.
34720         * bindings/php4/.cvsignore: Ignore the whole xapian subdirectory.
34722 Wed Jul 09 02:37:12 BST 2003  Olly Betts <olly@survex.com>
34724         * bindings/perl5/: Removed remaining files.
34726 Wed Jul 09 02:30:55 BST 2003  Olly Betts <olly@survex.com>
34728         * configure.in,bindings/Makefile.am,bindings/php4/Makefile.am:
34729           Working towards getting the php4 bindings functional again.
34731 Wed Jul 09 01:27:39 BST 2003  Olly Betts <olly@survex.com>
34733         * bindings/swig/om_util_php4.i: om_termname -> std::string.
34735 Wed Jul 09 01:25:11 BST 2003  Olly Betts <olly@survex.com>
34737         * docs/overview.html,include/xapian/base.h,include/xapian/database.h:
34738           Improvements to doxygen-generated documentation.
34740 Wed Jul 09 01:23:55 BST 2003  Olly Betts <olly@survex.com>
34742         * configure.in,docs/todo.xml: Added check for SWIG version (require
34743           at least 1.3.14).
34745 Tue Jul  8 20:59:08 2003  James Aylett  <james@tartarus.org>
34747         * common/utils.h: missing #include <ctype.h>
34749 Tue Jul  8 18:06:23 2003  James Aylett  <james@tartarus.org>
34751         * bindings/swig/xapian.i: over-enthusiastic automatic
34752           conversion of termname to std::string
34754 Tue Jul 08 17:45:16 BST 2003  Olly Betts <olly@survex.com>
34756         * common/utils.h: Improved mingw implementation of rmdir().
34758 Tue Jul 08 17:43:21 BST 2003  Olly Betts <olly@survex.com>
34760         * NEWS,PLATFORMS,configure.in: Version 0.7.1.
34762 Sun Jul 06 21:35:08 BST 2003  Olly Betts <olly@survex.com>
34764         * backends/quartz/btree.cc: Minor tweak.
34766 Sun Jul 06 21:34:30 BST 2003  Olly Betts <olly@survex.com>
34768         * common/utils.h: Compile fixes for mingw.
34770 Sun Jul 06 17:59:26 BST 2003  Olly Betts <olly@survex.com>
34772         * docs/scalability.html: Fixed typo.
34774 Sun Jul 06 13:02:09 BST 2003  Olly Betts <olly@survex.com>
34776         * docs/scalability.html: Fixed typo.
34778 Sun Jul 06 12:56:08 BST 2003  Olly Betts <olly@survex.com>
34780         * docs/Makefile.am,docs/index.html,docs/scalability.html: Added new
34781           document on Xapian's scalability.
34783 Sun Jul 06 12:15:34 BST 2003  Olly Betts <olly@survex.com>
34785         * backends/quartz/: Made quartz block count unsigned, which should
34786           nearly double the size of database for a given block size.
34788 Sun Jul 06 11:47:46 BST 2003  Olly Betts <olly@survex.com>
34790         * backends/quartz/: Use BLK_UNUSED rather than literal -1.
34792 Sun Jul 06 11:47:14 BST 2003  Olly Betts <olly@survex.com>
34794         * common/utils.h: Fixed last check-in to compile.
34796 Sun Jul 06 11:01:03 BST 2003  Olly Betts <olly@survex.com>
34798         * common/utils.h,tests/btreetest.cc,tests/quartztest.cc,
34799           testsuite/backendmanager.cc: Replaced system("rm -rf ...") with
34800           rmdir() function and added two ms windows implementations for
34801           Sam to try.
34803 Sat Jul 05 10:37:35 BST 2003  Olly Betts <olly@survex.com>
34805         * getopt/getopt.c: Suppress "unused variable" warnings from getopt.c.
34807 Sat Jul 05 02:21:11 BST 2003  Olly Betts <olly@survex.com>
34809         * docs/todo.xml: Updated.
34811 Sat Jul 05 02:09:06 BST 2003  Olly Betts <olly@survex.com>
34813         * configure.in,backends/quartz/btree.cc: Use pread() and pwrite() if
34814           available - this avoids one syscall per block read/write.
34816 Fri Jul 04 22:05:14 BST 2003  Olly Betts <olly@survex.com>
34818         * PLATFORMS: Added results from building 0.7.0 on my Linux dev box.
34820 Fri Jul 04 18:52:07 BST 2003  Olly Betts <olly@survex.com>
34822         * extra/Makefile.am: Distribute symboltab.h.
34824 Fri Jul 04 18:04:53 BST 2003  Olly Betts <olly@survex.com>
34826         * common/Makefile.am: Distribute documentterm.h.
34828 Fri Jul 04 15:30:28 BST 2003  Olly Betts <olly@survex.com>
34830         * configure.in: Disabled guile, tcl8, and php4 here as well as in
34831           bindings/Makefile.am.
34833 Fri Jul  4 11:27:53 2003  James Aylett  <james@tartarus.org>
34835         * bindings/Makefile.am: change commenting so mkdoc.pl doesn't
34836           choke
34838 Fri Jul  4 10:51:04 2003  James Aylett  <james@tartarus.org>
34840         * bootstrap: add missing ';;' as case pattern delimiter
34842 Thu Jul 03 23:46:14 BST 2003  Olly Betts <olly@survex.com>
34844         * bindings/Makefile.am,bindings/python/Makefile.am: Fixed to work with
34845           "make dist".
34847 Thu Jul 03 23:29:06 BST 2003  Olly Betts <olly@survex.com>
34849         * NEWS,PLATFORMS,configure.in: Version 0.7.0.
34851 Thu Jul 03 22:57:22 BST 2003  Olly Betts <olly@survex.com>
34853         * PLATFORMS: Updated (Linux GCC 2.95 and Linux to mingw cross).
34855 Thu Jul 03 22:55:54 BST 2003  Olly Betts <olly@survex.com>
34857         * extra/queryparser.yy,extra/queryparsertest.cc: Allow more than one
34858           adjacent phrase generating character.
34860 Thu Jul 03 22:12:18 BST 2003  Olly Betts <olly@survex.com>
34862         * extra/queryparser.yy,extra/queryparsertest.cc: Always ignore phrase
34863           generating characters at start and end of query.
34865 Thu Jul 03 21:02:10 BST 2003  Olly Betts <olly@survex.com>
34867         * extra/Makefile.am: Fixed for mingw compile.
34869 Thu Jul 03 19:24:50 BST 2003  Olly Betts <olly@survex.com>
34871         * buildall,docs/OMAims: Removed unwanted old files.
34873 Thu Jul 03 19:18:41 BST 2003  Olly Betts <olly@survex.com>
34875         * backends/quartz/runquartztest: Obsolete, so removed.
34877 Thu Jul 03 01:26:03 BST 2003  Olly Betts <olly@survex.com>
34879         * common/omenquireinternal.h: Fix for building with GCC 3.3.
34881 Thu Jul 03 01:02:54 BST 2003  Olly Betts <olly@survex.com>
34883         * NEWS: Updated.
34885 Wed Jul 02 22:18:07 BST 2003  Olly Betts <olly@survex.com>
34887         * backends/quartz/bcursor.cc,backends/quartz/bcursor.h:
34888           Made Bcursor::get_key(string * key) const.
34890 Wed Jul 02 21:51:43 BST 2003  Olly Betts <olly@survex.com>
34892         * backends/quartz/: Workaround for shared_level problem turns out to
34893           be arguably the better approach, so made it permanent and tidied up
34894           code.
34896 Mon Jun 23 21:39:50 BST 2003  Olly Betts <olly@survex.com>
34898         * NEWS: Updated in preparation for 0.7.0 release.
34900 Mon Jun 23 21:18:23 BST 2003  Olly Betts <olly@survex.com>
34902         * extra/omparsequery.h: Corrected include protection token comment on
34903           #endif to match that used in the #ifdef.
34905 Mon Jun 23 21:10:33 BST 2003  Olly Betts <olly@survex.com>
34907         * bootstrap: Check for Bison 1.875 which doesn't work with Xapian.
34909 Mon Jun 23 21:08:35 BST 2003  Olly Betts <olly@survex.com>
34911         * HACKING: Automake 1.7 works reliably with Xapian; CFLAGS=-Werror can
34912           now be used as we suppress the warnings from the Snowball generated
34913           C code.
34915 Mon Jun 23 16:55:54 BST 2003  Olly Betts <olly@survex.com>
34917         * api/,backends/inmemory/inmemory_database.cc,
34918           backends/inmemory/inmemory_database.h,backends/quartz/,
34919           bindings/swig/om_util_python.i,bindings/swig/xapian.i,common/,
34920           include/Makefile.am,include/xapian.h,include/om/om.h,include/xapian/,
34921           matcher/localmatch.h,matcher/phrasepostlist.h,tests/api_db.cc,
34922           tests/api_posdb.cc,tests/quartztest.cc:
34923           Xapian::Xapian::PostListIterator -> Xapian::PostingIterator;
34924           Xapian::PositionListIterator -> Xapian::PositionIterator;
34925           xapian/postlistiterator.h -> xapian/postingiterator.h;
34926           xapian/positionlistiterator.h -> xapian/positioniterator.h.
34928 Mon Jun 23 15:31:30 BST 2003  Olly Betts <olly@survex.com>
34930         * backends/database.cc,backends/inmemory/inmemory_database.h,
34931           backends/muscat36/,backends/quartz/,bindings/python/Makefile.am,
34932           bindings/swig/om_util.i,bindings/swig/omstem.i,docs/quickstart.html,
34933           docs/todo.xml,include/xapian/database.h,include/xapian/enquire.h,
34934           include/xapian/errortypes.h,tests/api_db.cc,tests/quartztest.cc,
34935           testsuite/backendmanager.cc,testsuite/textfile_indexer.cc:
34936           Xapian::OpeningError renamed to Xapian::DatabaseOpeningError.
34937         * include/om/om.h: OmOpeningError now maps to
34938           Xapian::DatabaseOpeningError.
34940 Mon Jun 23 01:44:45 BST 2003  Olly Betts <olly@survex.com>
34942         * api/,backends/inmemory/inmemory_database.cc,
34943           backends/muscat36/da_database.cc,backends/muscat36/db_database.cc,
34944           backends/net/net_database.cc,backends/net/net_termlist.cc,
34945           backends/net/net_termlist.h,backends/quartz/,bin/omprogsrv.cc,
34946           bin/quartzdump.cc,common/,include/xapian/error.h,
34947           include/xapian/errorhandler.h,matcher/emptymatch.h,net/,
34948           tests/quartztest.cc,tests/stemtest.cc,testsuite/testsuite.cc,
34949           testsuite/textfile_indexer.cc: Use '#include <...>' for headers
34950           in include/.
34952 Thu Jun 19 17:55:07 BST 2003  Olly Betts <olly@survex.com>
34954         * common/netserver.h,common/socketserver.h,matcher/localmatch.cc,
34955           matcher/multimatch.cc,net/socketserver.cc: Removed unused header
34956           inclusion; pass Stats and Xapian::Database by const reference, not
34957           value.
34959 Thu Jun 19 14:50:49 BST 2003  Olly Betts <olly@survex.com>
34961         * extra/queryparser.yy,extra/symboltab.h: Force control characters to
34962           spaces; Added note that accent normalisation is perhaps done at the
34963           wrong time...
34965 Thu Jun 19 14:40:36 BST 2003  Olly Betts <olly@survex.com>
34967         * extra/queryparsertest.cc: Added test for control characters.
34969 Thu Jun 19 14:31:12 BST 2003  Olly Betts <olly@survex.com>
34971         * extra/queryparsertest.cc: Added checks for weird whitespace in
34972           queries.
34974 Wed Jun 18 19:02:14 BST 2003  Olly Betts <olly@survex.com>
34976         * extra/queryparser.yy: Reworked parsing of boolean operators to
34977           improve error reporting.
34978         * extra/queryparsertest.cc: Added 2 more testcases and fixed to better
34979           handle tests for expected errors.
34981 Wed Jun 18 19:00:55 BST 2003  Olly Betts <olly@survex.com>
34983         * extra/queryparser.yy: Trim leading and trailing whitespace before
34984           attempting to parse the query.
34986 Wed Jun 18 17:58:56 BST 2003  Olly Betts <olly@survex.com>
34988         * extra/queryparser.yy: `using namespace Xapian;'
34990 Fri Jun 06 01:33:33 BST 2003  Olly Betts <olly@survex.com>
34992         * docs/quartzdesign.html: Commented out the section on the Lexicon,
34993           which we no longer use.
34995 Thu Jun 05 22:40:21 BST 2003  Olly Betts <olly@survex.com>
34997         * bindings/python/.cvsignore,bindings/python/Makefile.am,
34998           bindings/python/dothemake.txt,bindings/swig/om_util_python.i:
34999           Cleaned up building of python bindings by making better use of
35000           automake.
35002 Thu Jun 05 22:17:40 BST 2003  Olly Betts <olly@survex.com>
35004         * languages/Makefile.am: Reenable standard warnings apart from the
35005           -Wunused.
35007 Thu Jun 05 20:21:08 BST 2003  Olly Betts <olly@survex.com>
35009         * api/omqueryinternal.cc: Fixed a couple of problems with the new
35010           query serialisation.
35012 Thu Jun 05 17:55:21 BST 2003  Olly Betts <olly@survex.com>
35014         * HACKING,configure.in: Flex is no longer used, so removed configure
35015           tests and note in HACKING.
35017 Thu Jun 05 17:53:30 BST 2003  Olly Betts <olly@survex.com>
35019         * tests/remotetest.cc: In test netexpand1, use TEST() rather than
35020           Assert() so that the check is made in non-debug builds too.
35022 Thu Jun 05 17:52:17 BST 2003  Olly Betts <olly@survex.com>
35024         * api/omqueryinternal.cc,common/socketcommon.h,docs/todo.xml,
35025           include/xapian/query.h,net/: Reworked query serialisation so that
35026           the code is now all in api/omqueryinternal.cc.  Serialisation is
35027           now rather more compact and no longer relies on flex for parsing.
35029 Thu Jun 05 17:45:00 BST 2003  Olly Betts <olly@survex.com>
35031         * bin/Makefile.am: omprogsrv depends on libtest.la, so it need to be
35032           in check_PROGRAMS.
35034 Thu Jun 05 17:09:10 BST 2003  Olly Betts <olly@survex.com>
35036         * Makefile.am: Moved bindings after extra in SUBDIRS - the bindings
35037           wrap Xapian::QueryParser so they need to be built after it.
35039 Thu Jun 05 01:28:01 BST 2003  Olly Betts <olly@survex.com>
35041         * bindings/python/Makefile.am: Use $(SWIG) (as detected by configure).
35043 Thu Jun 05 00:46:16 BST 2003  Olly Betts <olly@survex.com>
35045         * configure.in,bindings/Makefile.am,bindings/python/Makefile.am:
35046           Check for python and find the correct paths for building python
35047           bindings; Added dependencies for building _xapian.so.
35049 Wed Jun  4 17:19:37 2003  James Aylett  <james@tartarus.org>
35051         * configure.in, Makefile.am, bindings: build system will build
35052           bindings as part of normal build process.  No longer build
35053           Perl or Java bindings; for Perl, use Search::Xapian; Java will
35054           be replaced with SWIG-based bindings.
35056         * bindings: bindings now use Xapian:: namespace names rather than
35057           the old Om* ones. Almost all of the API should now be wrapped.
35059 Wed Jun 04 02:52:38 BST 2003  Olly Betts <olly@survex.com>
35061         * docs/overview.html: Added start of "Design Principles" section.
35062         * docs/todo.xml: Added a couple more items.
35064 Wed Jun 04 02:51:56 BST 2003  Olly Betts <olly@survex.com>
35066         * Makefile.am: Build testsuite later - it now doesn't need to be built
35067           until just before tests.
35069 Wed Jun 04 02:43:08 BST 2003  Olly Betts <olly@survex.com>
35071         * backends/muscat36/: Split up spec into comments in the appropriate
35072           header files; fixed to build after recent Om -> Xapian changes.
35074 Wed Jun 04 01:56:46 BST 2003  Olly Betts <olly@survex.com>
35076         * HACKING: Bison 1.75 and 1.875a both checked with parsequery.yy
35077           - no problems found.
35079 Mon Jun 02 20:14:22 BST 2003  Olly Betts <olly@survex.com>
35081         * ChangeLog.0: Fixed 2 typos.
35083 Mon Jun 02 20:09:01 BST 2003  Olly Betts <olly@survex.com>
35085         * NEWS: Updated in preparation for 0.7.0 release.
35087 Mon Jun 02 16:25:18 BST 2003  Olly Betts <olly@survex.com>
35089         * configure.in: Fix m4 quoting so that MINOR_VERSION is set correctly.
35091 Mon Jun  2 15:22:30 2003  James Aylett  <james@tartarus.org>
35093         * bindings/swig/xapian.i: move QueryParser wrapping to use
35094           the new namespace location, and fix include so it can work
35095           out of the build directory rather than just the installed
35096           library
35098 Mon Jun 02 14:15:14 BST 2003  Olly Betts <olly@survex.com>
35100         * Makefile.am,configure.in,bindings/Makefile.am,docs/todo.xml:
35101           Added --enable-bindings to configure - if this is specified and
35102           swig is detected, try to build the language bindings.
35104 Mon Jun 02 12:46:18 BST 2003  Olly Betts <olly@survex.com>
35106         * backends/database.cc: Fixed parsing of port number in remote stub
35107           databases.
35109 Sat May 31 15:03:47 BST 2003  James Aylett  <james@tartarus.org>
35111         * bindings/swig: update so can build Python bindings against
35112           latest Xapian; untested, and other languages are likely to
35113           fail
35115 Fri May 30 02:59:48 BST 2003  Olly Betts <olly@survex.com>
35117         * extra/queryparser.yy,extra/queryparsertest.cc: Embedded '.' is
35118           now a phrase maker; Ignore `""' in query; Ignore ')' at start
35119           of query.
35121 Fri May 30 01:22:49 BST 2003  Olly Betts <olly@survex.com>
35123         * extra/queryparsertest.cc: Added another 405 queries which fail to
35124           parse (courtesy of Arjen van der Meijden).
35126 Thu May 29 19:08:28 BST 2003  Olly Betts <olly@survex.com>
35128         * docs/todo.xml,extra/queryparsertest.cc: Extracted two more
35129           queryparser testcases which need fixing from the old todo list.
35131 Thu May 29 17:14:04 BST 2003  Olly Betts <olly@survex.com>
35133         * extra/queryparser.yy,extra/queryparsertest.cc: A phrasemaker isn't
35134           a phrasemaker unless it's preceded by an alphanumeric, "+", or "-";
35135           If a single term is in (), ignore the ().
35137 Thu May 29 16:45:39 BST 2003  Olly Betts <olly@survex.com>
35139         * extra/queryparser.yy,extra/queryparsertest.cc: Improved handling
35140           of various odd queries encountered in real life applications.
35142 Thu May 29 01:50:51 BST 2003  Olly Betts <olly@survex.com>
35144         * docs/todo.xml: Updated more.
35146 Thu May 29 01:26:50 BST 2003  Olly Betts <olly@survex.com>
35148         * api/,backends/database.cc,backends/inmemory/,backends/multi/,
35149           backends/muscat36/,backends/net/,backends/quartz/,common/,
35150           docs/overview.html,docs/quickstart.html,
35151           docs/quickstartexpand.cc.html,extra/queryparser.yy,include/om/om.h,
35152           include/xapian/,matcher/,net/,tests/api_db.cc,tests/api_posdb.cc,
35153           tests/quartztest.cc,testsuite/: Converted remaining om_xxx types
35154           to Xapian::xxx.
35156 Wed May 28 23:06:18 BST 2003  Olly Betts <olly@survex.com>
35158         * docs/todo.xml: Updated.
35160 Wed May 28 22:59:17 BST 2003  Olly Betts <olly@survex.com>
35162         * tests/api_db.cc: Spelling correction: accross -> across.
35164 Wed May 28 20:24:32 BST 2003  Olly Betts <olly@survex.com>
35166         * extra/: OmQueryParser -> Xapian::QueryParser, etc.
35168 Wed May 28 20:03:48 BST 2003  Olly Betts <olly@survex.com>
35170         * api/omdocument.cc: Removed include of defunct header
35171           modifieddocument.h.
35173 Wed May 28 20:00:56 BST 2003  Olly Betts <olly@survex.com>
35175         * api/maptermlist.h,api/omdocument.cc,api/omvalueiterator.cc,
35176           backends/inmemory/inmemory_document.cc,
35177           backends/inmemory/inmemory_document.h,backends/muscat36/,
35178           backends/net/net_document.cc,backends/net/net_document.h,
35179           backends/quartz/quartz_document.cc,backends/quartz/quartz_document.h,
35180           common/Makefile.am,common/document.h,common/modifieddocument.h,
35181           include/xapian/document.h,tests/api_db.cc: Fixed bug in refactored
35182           Xapian::Document when modifying a copy.  Added regression test.
35184 Wed May 28 19:23:26 BST 2003  Olly Betts <olly@survex.com>
35186         * common/omenquireinternal.h,include/xapian/database.h,
35187           include/xapian/enquire.h,include/xapian/query.h: Where possible,
35188           declare classes rather than including headers (in public headers).
35190 Wed May 28 17:32:14 BST 2003  Olly Betts <olly@survex.com>
35192         * include/xapian/document.h: Just declare "class TermIterator;" rather
35193           than including <xapian/termiterator.h>.
35195 Tue May 27 16:59:34 BST 2003  Olly Betts <olly@survex.com>
35197         * common/progserver.h,common/socketserver.h,net/socketserver.cc:
35198           Reduced needless header inclusion.
35200 Tue May 27 16:53:40 BST 2003  Olly Betts <olly@survex.com>
35202         * bin/omprogsrv.cc,tests/api_db.cc: Use variable name "dbs" in
35203           preference to "dbgrp".  OmDatabaseGroup hasn't existed for
35204           years!
35206 Tue May 27 16:51:30 BST 2003  Olly Betts <olly@survex.com>
35208         * Makefile.am: Fixed typo: "bin" should be "net" in remote_subdirs.
35210 Tue May 27 02:43:32 BST 2003  Olly Betts <olly@survex.com>
35212         * backends/quartz/Makefile.am: Removed -I referencing testsuite
35213           directory.
35215 Tue May 27 02:39:43 BST 2003  Olly Betts <olly@survex.com>
35217         * backends/quartz/,docs/tests.html,tests/: Moved quartztest and
35218           btreetest to tests/ directory.
35220 Tue May 27 02:03:07 BST 2003  Olly Betts <olly@survex.com>
35222         * Makefile.am,configure.in,xapian.spec.in,backends/quartz/,bin/,
35223           docs/remote.html,netprogs/,tests/api_db.cc,tests/remotetest.cc,
35224           testsuite/backendmanager.cc,testsuite/testsuite.cc: Sorted out
35225           the source tree structure so that programs which aren't tests which
35226           were previously built by "make check" are now be built by "make".
35228 Tue May 27 01:01:40 BST 2003  Olly Betts <olly@survex.com>
35230         * autoconf/dir_contents,backends/dir_contents,
35231           backends/inmemory/dir_contents,backends/multi/dir_contents,
35232           backends/muscat36/dir_contents,backends/net/dir_contents,
35233           backends/quartz/dir_contents,bindings/dir_contents,
35234           common/dir_contents,docs/dir_contents,include/om/dir_contents,
35235           include/xapian/dir_contents,include/dir_contents,
35236           indexer/dir_contents,indexer/indexgraph/dir_contents,
35237           languages/dir_contents,m4/dir_contents,tests/dir_contents:
35238           Updated all the dir_contents files - many were out-of-date.
35240 Tue May 27 00:42:54 BST 2003  Olly Betts <olly@survex.com>
35242         * Makefile.am: Filter any .la files out of dependency_libs.
35244 Tue May 27 00:11:18 BST 2003  Olly Betts <olly@survex.com>
35246         * netprogs/.cvsignore,netprogs/Makefile.am,netprogs/nettest.cc,
35247           tests/.cvsignore,tests/Makefile.am,tests/remotetest.cc:
35248           netprogs/nettest -> tests/remotetest.
35250 Mon May 26 23:49:49 BST 2003  Olly Betts <olly@survex.com>
35252         * netprogs/nettest.cc: Removed test tcpclient1 - the functionality it
35253           tests is also tested by tcpmatch1, and it introduces dependencies on
35254           internal headers.
35256 Mon May 26 22:00:01 BST 2003  Olly Betts <olly@survex.com>
35258         * backends/quartz/quartz_table_manager.cc: Give a better error message
35259           if asked to open a pre-0.6 Quartz database.
35261 Mon May 26 20:43:21 BST 2003  Olly Betts <olly@survex.com>
35263         * HACKING,Makefile.am,backends/Makefile.am,docs/mkdoc.pl,
35264           net/Makefile.am: Fixed to never leave partial files in place of the
35265           expected output if a build is interrupted.
35267 Mon May 26 16:50:59 BST 2003  Olly Betts <olly@survex.com>
35269         * HACKING: Added note adapted from an old email noting why compile-time
35270           options are generally best avoided.
35272 Mon May 26 12:03:29 BST 2003  Olly Betts <olly@survex.com>
35274         * testsuite/backendmanager.cc,testsuite/textfile_indexer.cc: Corrected
35275           odd uses of std::string::erase() (instead of `str = str.erase(n, m)'
35276           just use `str.erase(n,m)').
35278 Sun May 25 22:59:44 BST 2003  Olly Betts <olly@survex.com>
35280         * PLATFORMS: Updated.
35282 Sun May 25 22:58:28 BST 2003  Olly Betts <olly@survex.com>
35284         * languages/Makefile.am: Suppress "unused" warnings in Snowball
35285           generated C code.
35287 Sun May 25 21:43:34 BST 2003  Olly Betts <olly@survex.com>
35289         * api/omtermlistiterator.cc: Removed iostream.h include left over from
35290           debugging.
35292 Sun May 25 12:27:11 BST 2003  Olly Betts <olly@survex.com>
35294         * docs/,extra/omparsequery.h,extra/parsequery.yy,include/Makefile.am,
35295           include/xapian.h,include/om/om.h,tests/,testsuite/backendmanager.cc,
35296           testsuite/backendmanager.h,testsuite/testutils.h: Created xapian.h
35297           header and changed everything to use it.
35299 Sat May 24 23:35:46 BST 2003  Olly Betts <olly@survex.com>
35301         * api/,backends/inmemory/inmemory_database.cc,
35302           backends/inmemory/inmemory_document.h,
35303           backends/quartz/quartz_database.cc,backends/quartz/quartztest.cc,
35304           common/,include/Makefile.am,include/om/om.h,
35305           include/om/omvalueiterator.h,include/xapian/,
35306           testsuite/backendmanager.cc: OmValueIterator -> Xapian::ValueIterator
35307           etc.
35309 Fri May 23 15:32:29 BST 2003  Olly Betts <olly@survex.com>
35311         * api/,backends/database.cc,backends/inmemory/,backends/muscat36/,
35312           backends/net/net_database.cc,backends/net/net_document.cc,
35313           backends/net/net_document.h,backends/quartz/,common/,docs/,
35314           include/Makefile.am,include/om/om.h,include/om/omdocument.h,
35315           include/om/omvalueiterator.h,include/xapian/,indexer/omindexer.h,
35316           matcher/,net/,netprogs/nettest.cc,tests/api_db.cc,tests/api_posdb.cc,
35317           tests/internaltest.cc,testsuite/: OmDocument -> Xapian::Document, etc.
35318         * include/Makefile.am: Fixed library headers to install in xapian and
35319           om subdirectories as they should.
35321 Fri May 23 15:31:05 BST 2003  Olly Betts <olly@survex.com>
35323         * backends/quartz/btree.cc: Consistently use int4 for block number -
35324           it really should be unsigned and this is a first step.
35326 Mon May 19 13:20:46 BST 2003  Olly Betts <olly@survex.com>
35328         * configure.in: Create include/xapian if it doesn't exist so that
35329           VPATH builds work.
35331 Mon May 19 13:17:16 BST 2003  Olly Betts <olly@survex.com>
35333         * Makefile.am: Disabled exported symbol regex for now.
35335 Tue May 13 05:08:54 BST 2003  Olly Betts <olly@survex.com>
35337         * api/,backends/database.cc,backends/dir_contents,backends/inmemory/,
35338           backends/multi/,backends/muscat36/,backends/net/,backends/quartz/,
35339           common/,docs/,extra/omparsequery.h,include/,matcher/,net/,netprogs/,
35340           tests/: OmDatabase -> Xapian::Database, etc.
35342 Tue May 13 05:07:41 BST 2003  Olly Betts <olly@survex.com>
35344         * NEWS: Corrected spelling: "maintainance" to "maintenance".
35346 Tue May 13 00:40:47 BST 2003  Olly Betts <olly@survex.com>
35348         * ChangeLog.0,NEWS,backends/inmemory/inmemory_database.h,
35349           backends/muscat36/da_database.h,backends/muscat36/db_database.h,
35350           backends/quartz/quartz_postlist.h,
35351           indexer/indexgraph/omstopwordnode.cc: Spelling correction:
35352           "occurence" should be "occurrence".
35354 Mon May 12 22:39:27 BST 2003  Olly Betts <olly@survex.com>
35356         * api/ompositionlistiteratorinternal.h,
35357           include/om/ompositionlistiterator.h: Removed unused files.
35359 Mon May 12 20:51:03 BST 2003  Olly Betts <olly@survex.com>
35361         * api/omdatabaseinternal.cc,backends/database.cc: Moved database
35362           factory functions from api to backends.
35364 Fri May 09 04:02:29 BST 2003  Olly Betts <olly@survex.com>
35366         * common/expandweight.h: Removed cruft.
35368 Fri May 09 03:50:36 BST 2003  Olly Betts <olly@survex.com>
35370         * common/rset.h: Removed unused RSetI ctor variant.
35372 Fri May 09 02:00:03 BST 2003  Olly Betts <olly@survex.com>
35374         * api/omenquire.cc,common/,docs/overview.html,include/om/om.h,
35375           include/xapian/enquire.h,include/xapian/output.h,matcher/,
35376           net/socketclient.cc,net/socketcommon.cc,net/socketserver.cc,
35377           netprogs/nettest.cc,tests/api_db.cc: OmRSet -> Xapian::RSet.
35379 Fri May 09 01:06:32 BST 2003  Olly Betts <olly@survex.com>
35381         * api/omenquire.cc: Fixed MSet::Internal::get_description() to include
35382           class name.
35384 Fri May 09 01:04:12 BST 2003  Olly Betts <olly@survex.com>
35386         * common/rset.h,matcher/expand.cc,matcher/rset.cc: RSetI now uses
35387           set<Xapian::docid> (as OmRSet::Internal) rather than
35388           vector<RSetItem>.
35390 Fri May 09 00:41:20 BST 2003  Olly Betts <olly@survex.com>
35392         * api/omenquire.cc,common/,docs/quickstartexpand.cc.html,matcher/:
35393           RSet internal class renamed to RSetI to aid upcoming OmRSet ->
35394           Xapian::RSet change.  RSetI looks like it can be eliminated
35395           later.
35397 Thu May 08 23:54:44 BST 2003  Olly Betts <olly@survex.com>
35399         * tests/: Removed make_dbgrp() helper function from apitest as it
35400           makes the test code less clear without making it easier to write.
35402 Thu May 08 01:24:53 BST 2003  Olly Betts <olly@survex.com>
35404         * api/ompostlistiterator.cc,docs/overview.html,tests/api_db.cc:
35405           Fixed OmWeight and OmMatchDecider in comments, docs, and
35406           testsuite.
35408 Thu May 08 01:16:30 BST 2003  Olly Betts <olly@survex.com>
35410         * api/omenquire.cc,backends/multi/multi_postlist.h,common/,
35411           include/om/om.h,include/xapian/enquire.h,matcher/,
35412           net/socketclient.cc,net/socketserver.cc: OmMatchDecider ->
35413           Xapian::MatchDecider; OmWeight -> Xapian::Weight; BoolWeight,
35414           TradWeight, BM25Weight -> Xapian::.
35416 Wed May 07 23:06:47 BST 2003  Olly Betts <olly@survex.com>
35418         * backends/quartz/btreetest.cc,backends/quartz/quartztest.cc,
35419           configure.in,netprogs/nettest.cc,tests/,testsuite/: Minor overhaul
35420           of testsuite.
35422 Wed May 07 17:54:34 BST 2003  Olly Betts <olly@survex.com>
35424         * backends/,common/document.h,matcher/Makefile.am,matcher/document.cc:
35425           Removed do_ wrappers for Document methods get_value(),
35426           get_all_values() and get_data().  The wrappers used to perform
35427           thread locking, but now they're just pointless overhead.
35429 Wed May 07 17:24:00 BST 2003  Olly Betts <olly@survex.com>
35431         * HACKING: Started section of API structure.
35433 Wed May 07 02:16:03 BST 2003  Olly Betts <olly@survex.com>
35435         * api/omenquire.cc,common/expand.h,common/omenquireinternal.h,
35436           common/omstringstream.h,docs/quickstart.html,include/om/om.h,
35437           include/xapian/enquire.h,include/xapian/output.h,matcher/expand.cc,
35438           matcher/multimatch.cc,net/socketcommon.cc,netprogs/nettest.cc,
35439           tests/api_db.cc,testsuite/testutils.cc: OmMSet -> Xapian::MSet,
35440           similarly for OmMSetIterator, OmESet, and OmESetIterator.
35442 Tue May 06 19:31:42 BST 2003  Olly Betts <olly@survex.com>
35444         * include/xapian/query.h: New file I failed to checkin on Friday.
35446 Tue May 06 14:16:41 BST 2003  Olly Betts <olly@survex.com>
35448         * HACKING,configure.in,tests/.cvsignore,tests/Makefile.am,
35449           tests/runtest.in,testsuite/testsuite.cc: Sorted out autodetection
35450           of valgrind for running testsuite.
35451         * HACKING: Added note about how to run gdb on dynamically linked
35452           binaries built using libtool.
35453         * HACKING: Recommend libtool 1.5 as in 1.4.2 libtool --mode=execute
35454           doesn't seem to handle programs with arguments.
35456 Tue May 06 00:25:03 BST 2003  Olly Betts <olly@survex.com>
35458         * PLATFORMS: Updated.
35460 Fri May 02 16:58:15 BST 2003  Olly Betts <olly@survex.com>
35462         * configure.in: Improved check that LEX is flex - it will now accept
35463           "flex" with a path and/or prefix.
35465 Fri May 02 16:12:46 BST 2003  Olly Betts <olly@survex.com>
35467         * api/,common/,include/,matcher/,net/,netprogs/nettest.cc,
35468           netprogs/omtcpsrv.cc,tests/api_db.cc,tests/api_posdb.cc,
35469           testsuite/testutils.cc,testsuite/testutils.h: OmEnquire ->
35470           Xapian::Enquire, OmQuery -> Xapian::Query, etc.
35472 Fri May 02 03:14:28 BST 2003  Olly Betts <olly@survex.com>
35474         * tests/internaltest.cc: Reenabled tests for leak checking and fixed
35475           them up to work with valgrind.
35477 Fri May 02 02:14:28 BST 2003  Olly Betts <olly@survex.com>
35479         * testsuite/testsuite.cc,testsuite/testsuite.h: If a testsuite program
35480           is run using "valgrind --logfile-fd=255 ./footest" then the harness
35481           will show valgrind's output for tests which fail because valgrind
35482           spotted errors or leaks (untested under valgrind).
35484 Thu May 01 21:25:01 BST 2003  Olly Betts <olly@survex.com>
35486         * api/omenquire.cc,api/omquery.cc,api/omqueryinternal.cc,common/,
35487           docs/overview.html,docs/quickstart.html,extra/omparsequery.h,
35488           extra/parsequery.yy,extra/parsequerytest.cc,include/,matcher/,
35489           net/,netprogs/nettest.cc,tests/api_db.cc,tests/api_nodb.cc,
35490           tests/api_posdb.cc: OmQuery -> Xapian::Query, etc.  For now
35491           I've had to expose Xapian::Query::Internal in xapian/query.h
35492           which isn't ideal.
35494 Wed Apr 30 20:37:27 BST 2003  Olly Betts <olly@survex.com>
35496         * api/omenquire.cc,common/omenquireinternal.h,include/:
35497           typedefs om_* -> Xapian::*, but not changed all internal uses yet.
35499 Wed Apr 30 03:51:52 BST 2003  Olly Betts <olly@survex.com>
35501         * api/,backends/,common/,extra/omparsequery.h,extra/parsequery.yy,
35502           include/,matcher/localmatch.h,matcher/orpostlist.h,tests/api_db.cc:
35503           OmPostListIterator -> Xapian::PostListIterator, etc.
35505 Wed Apr 30 02:13:31 BST 2003  Olly Betts <olly@survex.com>
35507         * docs/matcherdesign.html,include/om/omenquire.h: Merged docs
35508           discussing OmMSetIterator::get_collapse_count() into the doxygen
35509           documentation comments - they're docs aimed at the API user so
35510           really don't belong in the internal matcher design docs.
35512 Wed Apr 30 01:08:39 BST 2003  Olly Betts <olly@survex.com>
35514         * .cvsignore: Added config.guess.
35516 Tue Apr 29 21:08:40 BST 2003  Olly Betts <olly@survex.com>
35518         * include/om/om.h,include/xapian/base.h,include/xapian/error.h,
35519           include/xapian/errorhandler.h,include/xapian/expanddecider.h,
35520           include/xapian/positionlistiterator.h,include/xapian/stem.h,
35521           include/xapian/termiterator.h: OM_HGUARD_* -> XAPIAN_INCLUDED_*.
35523 Tue Apr 29 20:37:01 BST 2003  Olly Betts <olly@survex.com>
35525         * api/,backends/,common/,include/,indexer/omnodeinstanceiterator.h,
35526           indexer/ompaditerator.h,net/readquery.h,testsuite/indexer.h:
35527           om/omoutput.h -> xapian/output.h; om/omtypes.h -> xapian/types.h.
35529 Tue Apr 29 18:28:27 BST 2003  Olly Betts <olly@survex.com>
35531         * api/,backends/,common/,include/,matcher/,net/socketserver.cc,tests/,
35532           testsuite/backendmanager.cc,testsuite/testsuite.cc: OmTermIterator
35533           -> Xapian::TermIterator, etc.
35535 Tue Apr 29 17:39:34 BST 2003  Olly Betts <olly@survex.com>
35537         * common/omdebug.cc: Setting XAPIAN_DEBUG_LOG caused an exception
35538           (with GCC 3.0 at least) unless the value contained %% - fixed.
35540 Tue Apr 29 14:29:36 BST 2003  Olly Betts <olly@survex.com>
35542         * api/ompositionlistiterator.cc: Fixed to compile in debug mode.
35544 Tue Apr 29 01:06:02 BST 2003  Olly Betts <olly@survex.com>
35546         * xapian.spec.in: Removed %changelog - it hasn't been reliably updated
35547           and only really makes sense when the packaging is done by a third
35548           party anyway.
35550 Tue Apr 29 01:03:20 BST 2003  Fabrice Colin
35552         * xapian.spec.in: Fixed packaging of docs.
35554 Tue Apr 29 00:33:21 BST 2003  Olly Betts <olly@survex.com>
35556         * HACKING,testsuite/testsuite.cc,testsuite/testsuite.h: valgrind is
35557           now mostly hooked into the testsuite.
35558         * HACKING: Bison 1.875 doesn't work but Bison 1.875a probably does;
35559           suggest CXXFLAGS=-Werror, not CFLAGS.
35561 Tue Apr 29 00:14:00 BST 2003  Olly Betts <olly@survex.com>
35563         * INSTALL: Updated.
35565 Wed Apr 23 14:31:51 BST 2003  Olly Betts <olly@survex.com>
35567         * api/omtermlistiterator.cc,api/omtermlistiteratorinternal.h,
35568           api/omvalueiteratorinternal.h,backends/inmemory/inmemory_database.cc,
35569           backends/inmemory/inmemory_positionlist.cc,
35570           common/inmemory_positionlist.h: Added InMemoryPositionList ctor
35571           which takes the positions data to avoid needing to construct and
35572           immediately call set_data().
35574 Wed Apr 23 14:14:34 BST 2003  Olly Betts <olly@survex.com>
35576         * api/,backends/,common/,include/,matcher/: OmPositionListIterator
35577           -> Xapian::PositionListIterator, etc.
35579 Wed Apr 23 13:47:49 BST 2003  Olly Betts <olly@survex.com>
35581         * xapian.spec.in: Minor tweaks.
35583 Sun Apr 20 22:55:04 BST 2003  Olly Betts <olly@survex.com>
35585         * extra/omparsequery.h,include/xapian/stem.h,tests/api_db.cc,
35586           tests/api_nodb.cc,tests/api_posdb.cc,testsuite/backendmanager.cc:
35587           OmStem -> Xapian::Stem; OmExpandDecider -> Xapian::ExpandDecider.
35589 Sun Apr 20 22:52:42 BST 2003  Olly Betts <olly@survex.com>
35591         * configure.in,api/omenquire.cc,common/expand.h,
35592           common/omenquireinternal.h,docs/overview.html,include/,
35593           matcher/expand.cc,tests/api_db.cc: OmExpandDecider ->
35594           Xapian::ExpandDecider, etc.
35596 Sun Apr 20 22:42:32 BST 2003  Olly Betts <olly@survex.com>
35598         * PLATFORMS,api/,backends/,common/,docs/,include/,matcher/,net/,
35599           netprogs/,tests/,testsuite/: OmError -> Xapian::Error, etc.
35601 Fri Apr 18 22:40:31 BST 2003  Sam Liddicott <sam@liddicott.com>
35603         * matcher/multimatch.cc: Fixed so that it updates the OmMSetItem in
35604           the MSet with the collapse_count from the OmMSetItem twin in
35605           collapse_tab or we lose collapse_count if newer collapsing hits are
35606           less relevant than the hits they collapse over.  I think we need
35607           collapse_tab maybe to keep a reference to the item in the mset?  But
35608           this works for now.
35609         * xapian.spec.in: Fixed to also install include/xapian stuff
35611 Fri Apr 18 19:17:56 BST 2003  Olly Betts <olly@survex.com>
35613         * configure.in,include/Makefile.am,include/om/.cvsignore,
35614           include/om/Makefile.am,include/om/om.h,include/om/om.h.in,
35615           include/xapian/.cvsignore,include/xapian/Makefile.am,
35616           include/xapian/dir_contents,include/xapian/version.h.in:
35617           C++ ABI version checking is now done by xapian/version.h.
35619 Fri Apr 18 17:57:21 BST 2003  Olly Betts <olly@survex.com>
35621         * configure.in,api/omstem.cc,include/Makefile.am,include/om/om.h.in,
35622           include/om/omstem.h,include/xapian/.cvsignore,
35623           include/xapian/Makefile.am,include/xapian/base.h,
35624           include/xapian/stem.h: Reworked OmStem to use reference counted
35625           internals; renamed OmStem to Xapian::Stem and added a #define for
35626           compatibility with existing code.
35628 Fri Apr 18 17:02:56 BST 2003  Olly Betts <olly@survex.com>
35630         * api/,backends/,common/,docs/overview.html,docs/quickstart.html,
35631           docs/quickstartexpand.cc.html,extra/,include/om/,matcher/,net/,
35632           tests/,testsuite/: Use std::string instead of typedef-ing it as
35633           om_termname.  The typedef doesn't really buy us anything.  Keep
35634           a typedef for compatibility with existing code for now.
35636 Fri Apr 18 16:12:32 BST 2003  Olly Betts <olly@survex.com>
35638         * PLATFORMS: GCC 3.2.2 on Redhat 7.1 works with CXXFLAGS=-Werror
35640 Thu Apr 10 20:05:27 BST 2003  Olly Betts <olly@survex.com>
35642         * common/Makefile.am,common/indexer.h,testsuite/Makefile.am,
35643           testsuite/indexer.h: Moved indexer.h from common to testsuite
35644           and altered it to use iosfwd instead of iostream and to
35645           declare OmDocument as a class instead of include omdocument.h.
35647 Thu Apr 10 18:55:55 BST 2003  Olly Betts <olly@survex.com>
35649         * xapian-config.nodep.in: Removed --prefix and --exec-prefix - you
35650           can't reliably install Xapian with a different prefix to the one
35651           it was configured with, yet these options give the impression you
35652           can.
35654 Thu Apr 10 18:53:53 BST 2003  Olly Betts <olly@survex.com>
35656         * .cvsignore: Added config.sub.
35658 Thu Apr 10 02:41:50 BST 2003  Olly Betts <olly@survex.com>
35660         * NEWS,configure.in: Updated for 0.6.5 release.
35662 Thu Apr 10 02:29:12 BST 2003  Olly Betts <olly@survex.com>
35664         * docs/doxygen_api_footer.html_tmpl,docs/doxygen_full_footer.html_tmpl,
35665           docs/overview.html: Use http://www.doxygen.org/ as URL for doxygen.
35666         * docs/overview.html: Fixed bad link to our own website!
35668 Thu Apr 10 02:12:00 BST 2003  Olly Betts <olly@survex.com>
35670         * Makefile.am,backends/Makefile.am,backends/net/.cvsignore,
35671           backends/net/Makefile.am,netprogs/.cvsignore: Renamed libnetdb.la
35672           to libremote.la, and LIB_REMOTE1 to LIBNET_LA.
35674 Thu Apr 10 02:08:24 BST 2003  Olly Betts <olly@survex.com>
35676         * PLATFORMS: Updated mingw notes to reflect the change to
35677           automatically disable the remote backend when fork() isn't
35678           available.
35680 Thu Apr 10 01:56:34 BST 2003  Olly Betts <olly@survex.com>
35682         * docs/mkdoc.pl: Fixed to only look at directories listed in
35683           DIST_SUBDIRS.
35685 Thu Apr 10 00:23:28 BST 2003  Olly Betts <olly@survex.com>
35687         * configure.in: Automatically disable the remote backend if we don't
35688           have fork() since the remote backend requires it in several places;
35689           AM_CONDITIONAL ENABLE_SHARED isn't used anywhere so commented it
35690           out.
35692 Wed Apr 09 22:48:20 BST 2003  Olly Betts <olly@survex.com>
35694         * NEWS: Updated with recent changes.
35696 Wed Apr 09 22:43:31 BST 2003  Olly Betts <olly@survex.com>
35698         * docs/remote_protocol.html: Talk about Server/Client rather than
35699           ProgServer/ProgClient; reworked first paragraph.
35701 Wed Apr 09 13:23:05 BST 2003  Olly Betts <olly@survex.com>
35703         * docs/Makefile.am: Install docs in /usr/share/doc/xapian-core to be
35704           FHS compliant.
35705         * xapian.spec.in: Package quartzcheck and quartzcompact too; sorted
35706           out docs so they all install in the right place.
35708 Wed Apr 09 01:16:11 BST 2003  Olly Betts <olly@survex.com>
35710         * configure.in,backends/quartz/quartz_log.cc,
35711           backends/quartz/quartz_table_manager.cc,common/omdebug.cc,
35712           common/omdebug.h: Don't use HAVE_GETPID - if it's not set we assume
35713           GetCurrentProcessId() works, so it's cleaner to test with
35714           #ifdef WIN32 instead.
35716 Tue Apr 08 19:56:57 BST 2003  Olly Betts <olly@survex.com>
35718         * PLATFORMS: Updated with the results of many test builds.
35720 Tue Apr 08 19:55:15 BST 2003  Olly Betts <olly@survex.com>
35722         * configure.in,backends/quartz/Makefile.am,backends/quartz/btree.cc,
35723           netprogs/nettest.cc,common/getopt.h,common/omtime.h,common/utils.cc,
35724           common/utils.h,tests/Makefile.am,tests/api_db.cc: Now builds with
35725           Linux to mingw cross-compiler.
35726         * tests/Makefile.am: don't include findheaders.pl in the tarball -
35727           it's no longer used.
35728         * tests/internaltest.cc: removed "#include <dlfcn.h>" and disabled
35729           code which used to use it.
35730         * testsuite/backendmanager.cc,testsuite/backendmanager.h: fixed to
35731           work if any backends are disabled.
35733 Tue Apr 08 16:09:11 BST 2003  Olly Betts <olly@survex.com>
35735         * backends/quartz/btree.cc,backends/quartz/quartz_log.cc,
35736           backends/quartz/quartz_table_manager.cc,testsuite/testsuite.cc:
35737           Some fixes for building with Linux to mingw cross-compiler.
35739 Tue Apr 08 02:26:51 BST 2003  Olly Betts <olly@survex.com>
35741         * backends/quartz/btreetest.cc: If we don't have <sstream> and so are
35742           using our own stringstream implementation, we can't pass it as an
35743           ostream reference so BtreeCheck::check() can't be run in btreetest.
35744           This is only an issue on old compilers (for GCC <= 2.95.2 it seems)
35745           so just disable the checking in that case - it's probably not worth
35746           the effort of trying to make our stringstream a subclass of ostream.
35748 Tue Apr 08 01:20:36 BST 2003  Olly Betts <olly@survex.com>
35750         * testsuite/testsuite.cc: Updated unfinished hooks to use valgrind in
35751           the test harness.
35753 Fri Apr 04 03:12:27 BST 2003  Olly Betts <olly@survex.com>
35755         * api/omenquire.cc,api/omstem.cc,common/omdebug.cc: Fixed to compile
35756           when configure-d with --enable-debug-verbose --enable-debug=full.
35758 Fri Apr 04 03:10:53 BST 2003  Olly Betts <olly@survex.com>
35760         * common/omstringstream.h: Removed unused code for writing
35761           vector<string> to our own implementation of om_ostringstream.
35763 Fri Apr 04 03:08:35 BST 2003  Olly Betts <olly@survex.com>
35765         * api/ompostlistiterator.cc: Use "using namespace std;"; replaced
35766           gratuitous use of om_ostringstream.
35768 Fri Apr 04 03:07:05 BST 2003  Olly Betts <olly@survex.com>
35770         * tests/api_nodb.cc: Use "using namespace std;"; removed stray cout
35771           debug line.
35773 Wed Apr 02 16:54:50 BST 2003  Olly Betts <olly@survex.com>
35775         * tests/internaltest.cc: More Sun C++ fixes.
35776         * PLATFORMS: Updated.
35778 Wed Apr 02 16:39:48 BST 2003  Olly Betts <olly@survex.com>
35780         * tests/api_db.cc,net/tcpserver.cc,common/tcpserver.h: More Sun C++
35781           fettling.
35783 Wed Apr 02 15:42:54 BST 2003  Olly Betts <olly@survex.com>
35785         * matcher/emptymatch.h,tests/api_db.cc: More fixes for Sun C++.
35787 Wed Apr 02 15:13:58 BST 2003  Olly Betts <olly@survex.com>
35789         * api/omenquire.cc,api/omqueryinternal.cc,
35790           backends/inmemory/inmemory_database.h,common/document.h,
35791           common/netclient.h,common/netserver.h,common/networkstats.h,
35792           common/omlinebuf.h,common/stats.h,include/om/omerror.h,
35793           include/om/omerrorhandler.h,indexer/indexgraph/nodetest.cc,
35794           indexer/indexgraph/omindexerbuilder.cc,
35795           indexer/indexgraph/omindexerinternal.h,
35796           indexer/indexgraph/omstopwordnode.cc,
35797           indexer/indexgraph/regexcommon.h,indexer/indexgraph/toposort.h,
35798           tests/api_db.cc,tests/api_nodb.cc,testsuite/backendmanager.h:
35799           More fixes for Sun C++; removed many superfluous ";" after "}".
35801 Wed Apr 02 03:45:42 BST 2003  Olly Betts <olly@survex.com>
35803         * api/omdocument.cc,api/omenquire.cc,api/omtermlistiteratorinternal.h,
35804           backends/inmemory/inmemory_database.h,backends/quartz/btree.cc,
35805           backends/quartz/btree.h,common/alltermslist.h,common/expandweight.h,
35806           common/getopt.h,common/utils.h,include/om/omenquire.h,
35807           matcher/expandweight.cc,matcher/multimatch.cc,
35808           testsuite/backendmanager.h: Resolved various issues so that
35809           libxapian now builds with Sun's C++ compiler.  However
35810           libomqueryparser and the test programs don't yet.
35812 Tue Apr 01 02:52:57 BST 2003  Olly Betts <olly@survex.com>
35814         * backends/quartz/quartz_types.h: use "unsigned int" rather than
35815           "unsigned long int" so that quartz_tablesize_t matches om_doccount
35816           on 64 bit machines.
35818 Mon Mar 31 19:34:54 BST 2003  Olly Betts <olly@survex.com>
35820         * AUTHORS,xapian.spec.in: Merged in changes to RPM packaging from
35821           Fabrice Colin and reworked further.
35823 Fri Mar 28 20:04:04 GMT 2003  Olly Betts <olly@survex.com>
35825         * NEWS: Updated.
35827 Fri Mar 28 19:53:59 GMT 2003  Olly Betts <olly@survex.com>
35829         * README: Removed out-of-date sourceforge references; tidied up
35830           wording in places.
35832 Fri Mar 28 19:52:11 GMT 2003  Olly Betts <olly@survex.com>
35834         * HACKING: Removed out-of-date sourceforge references; tidied up
35835           wording in places; docs/tests.txt is now docs/tests.html .
35837 Fri Mar 28 17:35:15 GMT 2003  Olly Betts <olly@survex.com>
35839         * NEWS: Wrote most of the entries for the next release.
35841 Fri Mar 28 17:34:57 GMT 2003  Olly Betts <olly@survex.com>
35843         * docs/todo.xml: Updated.
35845 Thu Mar 27 05:42:41 GMT 2003  Olly Betts <olly@survex.com>
35847         * .cvsignore,Makefile.am,configure.in,docs/.cvsignore,docs/Makefile.am,
35848           docs/index.html,docs/todo2html.pl: removed machinery to generate
35849           TODO, TODO.release, docs/todo.html, and docs/todo-release.html from
35850           docs/todo.xml - bug and todo items will be tracked in bugzilla
35851           instead.
35853 Thu Mar 27 05:25:12 GMT 2003  Olly Betts <olly@survex.com>
35855         * docs/todo.xml: Removed completed items and those already fed into
35856           bugzilla.
35858 Thu Mar 27 05:17:05 GMT 2003  Olly Betts <olly@survex.com>
35860         * api/omstem.cc,include/om/omstem.h: Added default OmStem ctor,
35861           and "none" language.  Both of these give a stemmer object which
35862           leaves terms unchanged which should allow for simpler logic
35863           in programs using Xapian.  The default ctor also removes the
35864           need to mess with pointers in some cases.
35866 Thu Mar 27 04:52:27 GMT 2003  Olly Betts <olly@survex.com>
35868         * NEWS: Started to prepare for next release.
35870 Thu Mar 27 04:49:52 GMT 2003  Olly Betts <olly@survex.com>
35872         * include/om/omenquire.h,include/om/omerror.h: Improved documentation
35873           comments.
35875 Thu Mar 27 01:09:04 GMT 2003  Olly Betts <olly@survex.com>
35877         * docs/todo.xml,tests/api_db.cc: Added regression test for Quartz
35878           bug which caused problems with long terms on machines with signed
35879           chars.
35881 Wed Mar 26 20:30:18 GMT 2003  Olly Betts <olly@survex.com>
35883         * matcher/multimatch.cc: fixed interaction of collapsing and
35884           sort_bands == 1.
35886 Wed Mar 26 01:04:30 GMT 2003  Olly Betts <olly@survex.com>
35888         * matcher/multimatch.cc: Fixed sort_bands == 1 bug which would
35889           incorrectly reject many documents with a low score.
35891 Thu Mar 06 13:04:06 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35893         * docs/matcherdesign.html: Add writeup about document collapsing.
35895 Thu Mar 06 11:32:05 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35897         * Add collapse_count threshold checking to ensure that most
35898           relevant collapsed-away hit is more relevant than threshold
35899           (if specified)
35901 Mon Mar 03 14:04:56 GMT 2003  Olly Betts <olly@survex.com>
35903         * docs/quartzdesign.html: Corrected 2kB to 2KB.
35905 Fri Feb 28 10:11:04 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35907         * Add get_collapse_count() to OmMSetIterator
35908         * Add collapse_count to OmMSetItem
35909         * Add collapse_count tracking to get_mset()
35911 Thu Feb 27 15:28:08 GMT 2003  Olly Betts <olly@survex.com>
35913         * common/match.h,common/multimatch.h,matcher/multimatch.cc: Optimise
35914           the common sort_bands == 1 case better.
35915         * tests/api_db.cc: sortbands2 now tests 1 sortband as well as 10.
35917 Wed Feb 26 09:58:01 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35919         * bootstrap: Fix success message when building in non-src dir
35920           as configure is written to the src dir.
35922 Mon Feb 24 10:33:52 GMT 2003  Olly Betts <olly@survex.com>
35924         * matcher/multimatch.cc: Disabled (for now) sort_bands
35925           optimisation which is misbehaving.  Fixed forward ordered boolean
35926           optimisation broken by last check-in.
35927         * tests/api_db.cc: Added test_sortbands2 based on James' test code.
35929 Sun Feb 23 20:28:47 GMT 2003  Olly Betts <olly@survex.com>
35931         * matcher/multimatch.cc: Fixed problem with sort_bands when asking
35932           for an m-set which didn't start with the first match.
35934 Sun Jan 05 22:20:33 GMT 2003  Olly Betts <olly@survex.com>
35936         * testsuite/index_utils.cc: Handling of ^x was just downright wrong
35937           due to a typo.
35939 Sun Jan 05 22:19:56 GMT 2003  Olly Betts <olly@survex.com>
35941         * backends/quartz/.cvsignore: Ignore quartzcompact binary.
35943 Sun Jan 05 22:18:57 GMT 2003  Olly Betts <olly@survex.com>
35945         * extra/parsequerytest.cc: Fixed to build with GCC 2.95.
35947 Tue Dec 24 20:21:03 GMT 2002  Olly Betts <olly@survex.com>
35949         * NEWS: Added omega 0.6.4 changes.
35951 Tue Dec 24 19:53:10 GMT 2002  Olly Betts <olly@survex.com>
35953         * NEWS,PLATFORMS,configure.in: Version 0.6.4.
35955 Tue Dec 24 19:29:27 GMT 2002  Olly Betts <olly@survex.com>
35957         * backends/quartz/quartz_database.cc,backends/quartz/quartz_table.cc:
35958           Don't bother checking is position_list is empty - just delete it and
35959           let the layer below handle not having anything to delete.
35960         * backends/quartz/quartz_termlist.cc,docs/todo.xml: Fixed unpacking
35961           of termlist on platforms where char is signed.
35963 Tue Dec 24 05:48:06 GMT 2002  Olly Betts <olly@survex.com>
35965         * backends/quartz/quartz_database.cc: Fixed double setting of position
35966           list when updating a document with term position information.  The
35967           behaviour before was correct, just inefficient.
35969 Mon Dec 23 04:44:46 GMT 2002  Olly Betts <olly@survex.com>
35971         * docs/todo.xml: Updated.
35973 Mon Dec 23 03:22:19 GMT 2002  Olly Betts <olly@survex.com>
35975         * extra/parsequery.yy: If a stemmed form with a "." is in the query,
35976           include the "." on the form in the unstem multimap.
35978 Sun Dec 22 21:44:06 GMT 2002  Olly Betts <olly@survex.com>
35980         * extra/omparsequery.h,extra/parsequery.yy,extra/parsequerytest.cc:
35981           Added support for searching probabilistic fields (using
35982           <field>:<term>).
35984 Sat Dec 21 01:38:59 GMT 2002  Olly Betts <olly@survex.com>
35986         * configure.in: Don't include "om.h" in APIDOC_SRC, otherwise
35987           people building from source will need to regenerate the source
35988           docs which will require them to have doxygen installed.
35990 Fri Dec 20 15:39:51 GMT 2002  James Aylett  <james@tartarus.org>
35992         * Bindings build using SWIG 1.3.14u-20020706-1222, with very
35993           basic functionality tested with the Python target.
35995 Fri Dec 20 12:38:26 GMT 2002  James Aylett  <tartarus@users.sourceforge.net>
35997         * Tidied up some bindings-related issues, including changes to
35998           the Python bindings to work with Python 2.2. This probably won't
35999           compile as it stands, but it's disabled anyway.
36001 Sun Dec 15 18:23:42 GMT 2002  Olly Betts <olly@survex.com>
36003         * api/omdatabase.cc,backends/muscat36/da_database.cc,
36004           backends/muscat36/db_database.cc,matcher/phrasepostlist.cc:
36005           Muscat 3.6 DA and DB databases don't have word position information.
36006           Instead of throwing an exception when this information is requested,
36007           return an empty position list (i.e. behave as a quartz database with
36008           no position information would).
36010 Sun Dec 15 03:08:28 GMT 2002  Olly Betts <olly@survex.com>
36012         * backends/muscat36/: DADatabase and DBDatabase ctors need to public
36013           so that they can called from the database factory functions.
36014         * api/omenquire.cc,backends/muscat36/,backends/quartz/btree.cc,
36015           tests/api_db.cc: Fixed compilation warnings.
36017 Sat Dec 14 23:02:55 GMT 2002  Olly Betts <olly@survex.com>
36019         * docs/quartzdesign.html,docs/todo.xml: Updated.
36021 Sat Dec 14 22:57:41 GMT 2002  Olly Betts <olly@survex.com>
36023         * backends/quartz/Makefile.am,backends/quartz/quartzcheck.cc,
36024           backends/quartz/quartzcompact.cc,backends/quartz/quartzdump.cc:
36025           Enhanced quartzcheck to check all the btrees in a quartz database
36026           if passed a directory name.  It also default to "v" rather than
36027           "+" which is more appropriate for an end user checking if tables
36028           in a non-trivial sized database are corrupt.  Added quartzcompact
36029           utility to make a copy of a quartz database with full compaction
36030           turned on - this results in a smaller database which is faster to
36031           search.  The next update will result in a lot of block splitting
36032           though (since all blocks are as full as possible).
36034 Sat Dec 14 16:28:11 GMT 2002  Olly Betts <olly@survex.com>
36036         * NEWS: Updated for 0.6.3 release.
36038 Sat Dec 14 04:28:16 GMT 2002  Olly Betts <olly@survex.com>
36040         * PLATFORMS,configure.in: Version 0.6.3.
36042 Sat Dec 14 03:54:08 GMT 2002  Olly Betts <olly@survex.com>
36044         * extra/omparsequery.h,extra/parsequery.yy: Create an "unstem" multimap
36045           so users can convert the stemmed terms back into their query
36046           representation.
36048 Sat Dec 14 03:48:27 GMT 2002  Olly Betts <olly@survex.com>
36050         * docs/todo.xml: Updated.
36052 Sat Dec 14 02:37:41 GMT 2002  Olly Betts <olly@survex.com>
36054         * docs/todo.xml: Updated.
36056 Sat Dec 14 02:26:29 GMT 2002  Olly Betts <olly@survex.com>
36058         * docs/remote_protocol.html,net/socketclient.cc,net/socketserver.cc:
36059           Updated remote protocol description.
36061 Sat Dec 14 02:05:59 GMT 2002  Olly Betts <olly@survex.com>
36063         * docs/: Updated.
36065 Fri Dec 13 23:43:23 GMT 2002  Olly Betts <olly@survex.com>
36067         * include/om/om.h.in: Removed bogus // in the middle of a comment.
36069 Fri Dec 13 22:17:41 GMT 2002  Olly Betts <olly@survex.com>
36071         * configure.in,testsuite/testsuite.cc: Added hooks for using valgrind
36072           to find leaks in the test suite.  Just need to sort out suitable
36073           hooks in valgrind now!
36075 Fri Dec 13 19:57:23 GMT 2002  Olly Betts <olly@survex.com>
36077         * docs/: OmSettings removal updates.
36079 Fri Dec 13 19:44:23 GMT 2002  Olly Betts <olly@survex.com>
36081         * bindings/: Made a start updating bindings for OmSettings removal.
36083 Fri Dec 13 19:13:36 GMT 2002  Olly Betts <olly@survex.com>
36085         * api/omenquire.cc,common/omenquireinternal.h,include/om/omenquire.h,
36086           net/socketclient.cc,tests/api_db.cc: Finished removal of OmSettings
36087           - all tests now pass once more!
36089 Fri Dec 13 16:35:12 GMT 2002  Olly Betts <olly@survex.com>
36091         * api/,backends/quartz/quartz_table_manager.h,common/,docs/,include/,
36092           matcher/,net/,tests/internaltest.cc: Removed last use of OmSettings.
36093           Just a check-point check in - the code compiles, but doesn't pass
36094           tests yet.
36096 Fri Dec 13 12:53:01 GMT 2002  Olly Betts <olly@survex.com>
36098         * netprogs/nettest.cc: Updated disabled code to use new database
36099           factory functions; Added "using namespace std;".
36101 Thu Dec 12 23:52:32 GMT 2002  Olly Betts <olly@survex.com>
36103         * docs/todo.xml: Tidied my desk and converted lots of scraps of paper
36104           to todo entries.
36106 Thu Dec 12 16:43:22 GMT 2002  Olly Betts <olly@survex.com>
36108         * backends/quartz/btree.cc: Added workaround for shared_level problem;
36109           Improved error reporting.
36111 Thu Dec 12 01:05:00 GMT 2002  Olly Betts <olly@survex.com>
36113         * docs/overview.html: Updated docs on stub databases.
36115 Wed Dec 11 20:49:11 GMT 2002  Olly Betts <olly@survex.com>
36117         * api/omdatabaseinternal.cc,include/om/omdatabase.h,tests/api_db.cc:
36118           Reimplemented stub databases in the new scheme of things.
36119         * backends/inmemory/: fully disabled inmemory_errornext and
36120           inmemory_abortnext code.
36122 Tue Dec 10 13:47:44 GMT 2002  Olly Betts <olly@survex.com>
36124         * HACKING: Added note that Bison 1.50 seems to work with Xapian's
36125           .yy files.
36127 Mon Dec 09 20:13:00 GMT 2002  Olly Betts <olly@survex.com>
36129         * api/omenquire.cc,common/omenquireinternal.h,docs/todo.xml,
36130           include/om/omenquire.h,tests/api_db.cc: OmEnquire::get_eset()
36131           now takes a flags argument of bit constants |-ed together
36132           instead of 2 bools.
36134 Mon Dec 09 12:52:38 GMT 2002  Olly Betts <olly@survex.com>
36136         * backends/quartz/btree.cc,backends/quartz/btree.h: Applied patch
36137           from Martin Porter with better fix for sequential addition bug.
36139 Mon Dec 09 09:57:42 GMT 2002  Olly Betts <olly@survex.com>
36141         * docs/todo.xml: Updated.
36143 Mon Dec 09 07:32:46 GMT 2002  Olly Betts <olly@survex.com>
36145         * backends/quartz/quartztest.cc: Corrected name of database used
36146           by test adddoc2 (was using testdb_adddoc1!)
36148 Mon Dec 09 05:10:09 GMT 2002  Olly Betts <olly@survex.com>
36150         * backends/quartz/quartz_postlist.cc,backends/quartz/quartz_table.cc:
36151           More fettling.
36153 Mon Dec 09 04:48:39 GMT 2002  Olly Betts <olly@survex.com>
36155         * backends/quartz/: Minor code fettle.
36157 Mon Dec 09 03:32:11 GMT 2002  Olly Betts <olly@survex.com>
36159         * backends/quartz/quartz_postlist.cc: Gratuitous layout fettling.
36161 Mon Dec 09 03:30:27 GMT 2002  Olly Betts <olly@survex.com>
36163         * docs/quartzdesign.html: Improved wording and punctuation in 3
36164           places.
36166 Mon Dec 09 03:25:09 GMT 2002  Olly Betts <olly@survex.com>
36168         * common/,docs/todo.xml,include/om/omenquire.h,matcher/,
36169           net/socketclient.cc,net/socketserver.cc,netprogs/omprogsrv.cc,
36170           netprogs/omtcpsrv.cc: Fixed the remote backend to handle non-default
36171           weighting schemes.  You can now even implement your own weighting
36172           scheme and use it with the remote backend provided you register it
36173           with SocketServer at runtime.
36175 Sat Dec 07 21:18:39 GMT 2002  Olly Betts <olly@survex.com>
36177         * PLATFORMS: Updated.
36179 Sat Dec 07 21:09:52 GMT 2002  Olly Betts <olly@survex.com>
36181         * NEWS,PLATFORMS,configure.in: Version 0.6.2.
36183 Sat Dec 07 20:24:46 GMT 2002  Olly Betts <olly@survex.com>
36185         * NEWS: Updated.
36187 Sat Dec 07 20:21:41 GMT 2002  Olly Betts <olly@survex.com>
36189         * docs/quickstart.html: Fixed parameters passed to OmQuartz__open().
36191 Sat Dec 07 20:17:42 GMT 2002  Olly Betts <olly@survex.com>
36193         * backends/quartz/quartztest.cc: Fixed parameters passed to
36194           OmQuartz__open().
36196 Sat Dec 07 16:41:25 GMT 2002  Olly Betts <olly@survex.com>
36198         * docs/tests.html,testsuite/testsuite.cc: The testsuite won't install
36199           its signal handler if XAPIAN_SIG_DFL is set.
36201 Sat Dec 07 16:39:01 GMT 2002  Olly Betts <olly@survex.com>
36203         * HACKING: OM_DEBUG_XXX -> XAPIAN_DEBUG_YYY.
36205 Sat Dec 07 04:48:37 GMT 2002  Olly Betts <olly@survex.com>
36207         * backends/quartz/btree.cc: max_item_size wasn't being set due to
36208           some over-zealous code pruning.  It was defaulting to 0, and
36209           was causing the code to write off the end of allocated memory
36210           blocks.
36212 Sat Dec 07 03:22:05 GMT 2002  Olly Betts <olly@survex.com>
36214         * backends/inmemory/,matcher/multimatch.cc: Minor code tidying.
36215         * backends/quartz/btree.cc: Added Assert in Btree::add() to detect
36216           running off end of buffer.
36218 Sat Dec 07 03:20:52 GMT 2002  Olly Betts <olly@survex.com>
36220         * matcher/localmatch.cc: fixed handling of wtscheme() - we were
36221           trying to use it for the extra weights, and then double
36222           deleting it!
36224 Fri Dec 06 23:05:22 GMT 2002  Olly Betts <olly@survex.com>
36226         * api/omstem.cc,backends/quartz/,common/omdebug.cc,common/utils.h,
36227           matcher/tradweight.cc,net/socketcommon.cc,net/tcpclient.cc,
36228           tests/api_db.cc: Fixed to build with configure --enable-debug=full.
36230 Fri Dec 06 23:01:08 GMT 2002  Olly Betts <olly@survex.com>
36232         * common/omdebug.cc,common/omdebug.h: Fixed permissions on newly
36233           created log file (was getting 000!); Simplified class internals;
36234           Renamed env vars: OM_DEBUG_FILE is now XAPIAN_DEBUG_LOG,
36235           OM_DEBUG_TYPES is now XAPIAN_DEBUG_FLAGS (old versions still work
36236           for now).
36238 Fri Dec 06 22:58:57 GMT 2002  Olly Betts <olly@survex.com>
36240         * testsuite/testsuite.cc: Fixed so running "gdb .libs/apitest"
36241           finds srcdir (for an in-tree build at least).
36243 Fri Dec 06 03:51:35 GMT 2002  Olly Betts <olly@survex.com>
36245         * common/,include/om/omenquire.h,matcher/localmatch.h,matcher/rset.cc,
36246           matcher/stats.cc: Fixed to compile with GCC 3.0.
36248 Thu Dec 05 23:28:29 GMT 2002  Olly Betts <olly@survex.com>
36250         * include/om/omdatabase.h: Added missing "std::".
36252 Thu Dec 05 23:27:57 GMT 2002  Olly Betts <olly@survex.com>
36254         * docs/remote.html: Updated from OmSettings to factory functions.
36256 Thu Dec 05 23:26:42 GMT 2002  Olly Betts <olly@survex.com>
36258         * PLATFORMS: ixion is actually Linux 2.2.
36260 Thu Dec 05 04:32:40 GMT 2002  Olly Betts <olly@survex.com>
36262         * testsuite/backendmanager.cc: Fixed BackendManager::do_getdb_quartz()
36263           and do_getwritedb_quartz() to work correctly and so resolved some
36264           test failures.
36266 Wed Dec 04 03:35:12 GMT 2002  Olly Betts <olly@survex.com>
36268         * api/omdatabaseinternal.cc,backends/quartz/,docs/todo.xml,
36269           include/om/omdatabase.h: Replace create and allow_overwrite
36270           boolean flags with OM_DB_XXX constants.  And we now support
36271           OM_DB_CREATE_OR_OPEN which is a common action to want to
36272           perform, but was fiddly to achieve before.
36274 Tue Dec 03 23:59:30 GMT 2002  Olly Betts <olly@survex.com>
36276         * docs/todo.xml: Updated.
36278 Tue Dec 03 23:26:27 GMT 2002  Olly Betts <olly@survex.com>
36280         * api/omenquire.cc,backends/quartz/quartz_postlist.h,common/,
36281           docs/omsettings,docs/todo.xml,include/om/omenquire.h,matcher/,
36282           net/socketcommon.cc,net/socketserver.cc,tests/api_db.cc,
36283           tests/api_posdb.cc: Weighting schemes are now specified by passing
36284           in a weighting object, rather than via OmSetttings.  The weight
36285           class can be sub-classed by the library user to allow them to
36286           specify their own weighting scheme).  Everything works apart
36287           from the remote backend where the weighting scheme type and
36288           parameters aren't passed across the link.
36290 Mon Dec 02 20:12:31 GMT 2002  Olly Betts <olly@survex.com>
36292         * NEWS: Updated with changes since 0.6.1.
36294 Mon Dec 02 19:44:37 GMT 2002  Olly Betts <olly@survex.com>
36296         * api/ompostlistiterator.cc,backends/multi/multi_postlist.h,
36297           common/irweight.h,common/leafpostlist.h,matcher/: IRWeight
36298           renamed to OmWeight in preparation for making it externally
36299           visible.
36301 Mon Dec 02 18:10:55 GMT 2002  Olly Betts <olly@survex.com>
36303         * matcher/bm25weight.cc,matcher/irweight.cc,matcher/tradweight.cc,
36304           matcher/tradweight.h: Started to rework weighting scheme code.
36306 Mon Dec 02 17:36:21 GMT 2002  Olly Betts <olly@survex.com>
36308         * api/omdatabaseinternal.cc,backends/quartz/quartz_table_manager.cc:
36309           Tidying up after the recent backend reworking.
36311 Mon Dec 02 03:59:39 GMT 2002  Olly Betts <olly@survex.com>
36313         * matcher/: Changed BoolWeight ctor not to take an OmSettings
36314           parameter which is simply ignored.
36316 Mon Dec 02 01:35:41 GMT 2002  Olly Betts <olly@survex.com>
36318         * include/om/omdatabase.h: Added documentation comments for all of
36319           the database factory functions.
36321 Sun Dec 01 21:45:49 GMT 2002  Olly Betts <olly@survex.com>
36323         * include/om: Added \file documentation comments so doxygen
36324           extracts documentation for functions too.
36325         * docs/: Made a start on updating for the new database factory
36326           functions.
36328 Sun Dec 01 15:38:10 GMT 2002  Olly Betts <olly@survex.com>
36330         * api/,backends/,common/,docs/omsettings,docs/todo.xml,
36331           include/om/omdatabase.h,netprogs/,tests/,testsuite/backendmanager.cc,
36332           testsuite/backendmanager.h: No longer use OmSettings to specify
36333           parameters for constructing databases.  Instead there's a factory
36334           function for each database type - temporary naming scheme is
36335           OmXxx__open(), mostly because it's easy to grep for later.  At
36336           present stub databases and the machinery in InMemory to allow
36337           the multierrhandler1 test aren't working.  Everything else should
36338           be.
36340 Thu Nov 28 20:15:47 GMT 2002  Olly Betts <olly@survex.com>
36342         * api/omenquire.cc,common/omenquireinternal.h,docs/omsettings,
36343           docs/overview.html,include/om/omenquire.h,tests/api_db.cc:
36344           No longer use OmSettings in OmEnquire::get_eset(); fixed
36345           reversed sense of use_query_terms (and fixed reversed sense
36346           test in apitest which meant this wasn't spotted).
36348 Thu Nov 28 20:14:54 GMT 2002  Olly Betts <olly@survex.com>
36350         * docs/index.html: Link to annotated class lists in doxygen generated
36351           documentation rather than rather empty index page.
36353 Thu Nov 28 02:23:33 GMT 2002  Olly Betts <olly@survex.com>
36355         * configure.in,NEWS: Version 0.6.1.
36357 Thu Nov 28 01:38:05 GMT 2002  Olly Betts <olly@survex.com>
36359         * PLATFORMS: Updated.
36361 Thu Nov 28 01:33:25 GMT 2002  Olly Betts <olly@survex.com>
36363         * backends/quartz/: Fixed to compile with GCC 3.0.
36365 Thu Nov 28 01:32:31 GMT 2002  Olly Betts <olly@survex.com>
36367         * PLATFORMS: Updated with test results from 0.5.4 release.
36369 Wed Nov 27 22:11:38 GMT 2002  Olly Betts <olly@survex.com>
36371         * backends/quartz/btree.h: fixed "public:" bodge added during
36372           factoring-out of BtreeCheck.
36374 Wed Nov 27 05:01:14 GMT 2002  Olly Betts <olly@survex.com>
36376         * NEWS,PLATFORMS,configure.in: Updated for 0.6.0 release.
36378 Wed Nov 27 05:00:39 GMT 2002  Olly Betts <olly@survex.com>
36380         * AUTHORS,HACKING: Removed or replaced sourceforge.net URLs.
36382 Wed Nov 27 04:58:29 GMT 2002  Olly Betts <olly@survex.com>
36384         * docs/quartzdesign.html: Reworded "under development" warning;
36385           Updated Btree::check(), which is now BtreeCheck::check().
36387 Wed Nov 27 01:36:26 GMT 2002  Olly Betts <olly@survex.com>
36389         * backends/quartz/btreecheck.cc,backends/quartz/btreecheck.h,
36390           backends/quartz/btreetest.cc: Tidied up BtreeCheck - btreetest now
36391           sends check output to tout so it's only displayed if the check fails
36392           (or btreetest is run with -v).
36394 Tue Nov 26 19:47:24 GMT 2002  Olly Betts <olly@survex.com>
36396         * backends/quartz/: Split the btree checking code out into a separate
36397           file, so it's not linked in when we don't need it.
36399 Tue Nov 26 05:47:32 GMT 2002  Olly Betts <olly@survex.com>
36401         * backends/quartz/btree.cc: Suppress all output from a successful
36402           Btree::Check() is no options are specified, so that btreetest
36403           generates clean output when all tests pass.
36405 Tue Nov 19 02:08:30 GMT 2002  Olly Betts <olly@survex.com>
36407         * NEWS: Updated.
36409 Tue Nov 19 01:46:35 GMT 2002  Olly Betts <olly@survex.com>
36411         * backends/quartz/btree.cc,backends/quartz/btree.h,
36412           backends/quartz/btreetest.cc,backends/quartz/quartztest.cc,
36413           docs/quartzdesign.html: Quartz B-tree minimum blocksize is
36414           now 2048 bytes (as was in fact documented already).  This
36415           means the max term length is now always 252 bytes.
36417 Mon Nov 18 22:16:57 GMT 2002  Olly Betts <olly@survex.com>
36419         * api/omenquire.cc,matcher/expand.cc,matcher/expandweight.cc:
36420           Bit of an expand tidy up.
36422 Mon Nov 18 19:49:09 GMT 2002  Olly Betts <olly@survex.com>
36424         * backends/quartz/quartz_termlist.cc: I'd put the new termlist stuff
36425           in the disabled branch of a "#ifdef" so it wasn't being used!  Fixed
36426           this and made it actually compile as an encore.
36428 Mon Nov 18 02:51:55 GMT 2002  Olly Betts <olly@survex.com>
36430         * docs/todo.xml: Retargetted 0.6 tasks for 0.7 or 0.8; updated a few
36431           entries.
36433 Mon Nov 18 02:28:55 GMT 2002  Olly Betts <olly@survex.com>
36435         * docs/quartzdesign.html,backends/quartz/: We can just store the term
36436           name raw in position list key, since we know its length from the key
36437           length; tweaked storing of deltas to store (delta - 1) as 0 is
36438           invalid.
36440 Mon Nov 18 00:47:54 GMT 2002  Olly Betts <olly@survex.com>
36442         * backends/quartz/quartz_termlist.cc: First cut of compressed term
36443           lists.
36445 Sun Nov 17 20:19:23 GMT 2002  Olly Betts <olly@survex.com>
36447         * backends/quartz/quartz_lexicon.cc,backends/quartz/quartz_values.cc:
36448           Use new pack_uint_last() and unpack_uint_last() where appropriate.
36450 Sun Nov 17 20:03:24 GMT 2002  Olly Betts <olly@survex.com>
36452         * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h:
36453           Added a more compact integer packing for the last integer in
36454           a key or tag.
36456 Sun Nov 17 18:54:05 GMT 2002  Olly Betts <olly@survex.com>
36458         * backends/quartz/btree.cc,backends/quartz/btree.h: more
36459           int -> bool changes.
36460         * backends/quartz/btree_base.cc: Clarified comments.
36462 Sun Nov 17 14:19:30 GMT 2002  Olly Betts <olly@survex.com>
36464         * docs/quartzdesign.html: Updated to reflect removal of Btree_item.
36466 Sun Nov 17 14:12:12 GMT 2002  Olly Betts <olly@survex.com>
36468         * backends/quartz/: Eliminate Btree_item - wherever it's used we
36469           only actually want the tag or key, so it's cleaner and clearer
36470           to just pass a pointer to a string.
36472 Sun Nov 17 13:34:08 GMT 2002  Olly Betts <olly@survex.com>
36474         * backends/quartz/,docs/quartzdesign.html: Quartz mini-overhaul:
36475           Removed Btree::Bcursor_create() and just made Bcursor's ctor
36476           public - now you can just create a Bcursor on the stack rather
36477           than being forced to use AutoPtr; removed valid_handle - the
36478           code is clearer without it; sys_close now inlined from header;
36479           changed int/char to bool where appropriate; changed some methods
36480           which now always throw on error to return void not bool; moved
36481           quartztest's test_btree1 to btreetest as test_simple1; changed
36482           a few remaining uses of "struct Btree" to just plain "Btree";
36483           brought the btree docs in quartzdesign.html up-to-date, apart
36484           from the error handling section.
36486 Sat Nov 16 01:45:28 GMT 2002  Olly Betts <olly@survex.com>
36488         * backends/inmemory/inmemory_database.cc,
36489           backends/inmemory/inmemory_database.h,
36490           backends/quartz/quartz_table.cc: Tidying up odds and ends.
36492 Fri Nov 15 17:46:38 GMT 2002  Olly Betts <olly@survex.com>
36494         * NEWS: Updated ready for 0.6.0 with changes made so far.
36496 Fri Nov 15 17:06:58 GMT 2002  Olly Betts <olly@survex.com>
36498         * testsuite/testsuite.cc: Avoid double debug output if we get a
36499           signal inside the testsuite code itself.
36501 Fri Nov 15 17:00:15 GMT 2002  Olly Betts <olly@survex.com>
36503         * backends/quartz/btree_api.txt,docs/Makefile.am,docs/index.html,
36504           docs/quartzdesign.html,docs/remote_protocol.html,
36505           net/README_progprotocol.txt: Converted Btree API documentation
36506           to HTML and add it to the quartz design document; converted the
36507           (seriously out of date) remote protocol document to HTML, moved it
36508           into docs/, and linked it in.
36510 Fri Nov 15 13:05:06 GMT 2002  Olly Betts <olly@survex.com>
36512         * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h,
36513           docs/quartzdesign.html: Changed encoding of keys for quartz record
36514           and termlist tables.
36516 Fri Nov 15 12:54:39 GMT 2002  Olly Betts <olly@survex.com>
36518         * backends/quartz/quartz_table_entries.cc: Fixed
36519           QuartzTableEntries::empty() which would never return true before.
36521 Fri Nov 15 03:08:49 GMT 2002  Olly Betts <olly@survex.com>
36523         * backends/quartz/btree_api.txt: Fixed typos.
36525 Fri Nov 15 03:06:41 GMT 2002  Olly Betts <olly@survex.com>
36527         * backends/quartz/quartztest.cc,backends/quartz/btreetest.cc:
36528           added another test (btreetest: emptykey1) and added extra
36529           checks to existing tests.
36531 Thu Nov 14 01:59:06 GMT 2002  Olly Betts <olly@survex.com>
36533         * matcher/multimatch.cc,tests/api_db.cc,docs/todo.xml:
36534           match_sort_bands code fettled, and added regression test for the
36535           >100% problem (test_sortbands1).
36537 Tue Nov 12 00:00:44 GMT 2002  Olly Betts <olly@survex.com>
36539         * backends/inmemory/inmemory_database.h,backends/quartz/,
36540           include/om/omtypes.h: Pushed average length calc down into
36541           QuartzRecordManager; removed unnecessary types om_totlength
36542           and om_termid.
36544 Mon Nov 11 18:10:23 GMT 2002  Olly Betts <olly@survex.com>
36546         * docs/index.html: Fixed broken link.
36548 Mon Nov 11 18:07:41 GMT 2002  Olly Betts <olly@survex.com>
36550         * backends/quartz/,docs/quartzdesign.html: Store next free docid
36551           and total doc length in the same tag in QuartzRecord.
36553 Wed Nov 06 22:38:40 GMT 2002  Olly Betts <olly@survex.com>
36555         * backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h:
36556           Eliminated QuartzDatabase::get_doccount_internal() and
36557           QuartzDatabase::get_avlength_internal() - now the thread
36558           locking code has gone, the indirection serves no purpose.
36560 Wed Nov 06 17:50:12 GMT 2002  Olly Betts <olly@survex.com>
36562         * backends/quartz/: Removed QuartzBufferedTable::write() (unused and
36563           unimplemented), and merged QuartzBufferedTable::write_internal()
36564           into QuartzBufferedTable::write_internal().
36566 Wed Nov 06 01:56:41 GMT 2002  Olly Betts <olly@survex.com>
36568         * backends/quartz/: disable quartz lexicon table unless USE_LEXICON
36569           is defined.
36571 Wed Nov 06 01:54:30 GMT 2002  Olly Betts <olly@survex.com>
36573         * docs/overview.html: Corrected link to API docs on website.
36575 Mon Nov 04 02:35:22 GMT 2002  Olly Betts <olly@survex.com>
36577         * include/om/omerror.h,net/omerr_string.cc,netprogs/omprogsrv.cc,
36578           netprogs/omtcpsrv.cc,testsuite/testsuite.cc: don't use typeid().
36580 Mon Nov 04 01:31:47 GMT 2002  Olly Betts <olly@survex.com>
36582         * testsuite/testsuite.cc: Catch by const reference.
36584 Mon Nov 04 01:18:53 GMT 2002  Olly Betts <olly@survex.com>
36586         * HACKING: Added note about use of various C++ features.  Also
36587           tidied up various odds and ends.
36589 Sun Nov 03 22:59:34 GMT 2002  Olly Betts <olly@survex.com>
36591         * api/omdatabaseinternal.cc: Eliminated entirely superfluous use of
36592           dynamic_cast.
36594 Sun Nov 03 22:46:34 GMT 2002  Olly Betts <olly@survex.com>
36596         * matcher/multimatch.cc,common/database.h,common/net_database.h:
36597           Replace Database::is_network() with Database::as_networkdatabase()
36598           which returns a pointer or NULL.  This eliminates the need to use
36599           dynamic_cast in MultiMatch.
36601 Wed Oct 23 05:24:14 BST 2002  Olly Betts <olly@survex.com>
36603         * docs/todo.xml: Resolved TODO entry by consulting Stroustrup
36604           (it is safe to throw and catch an exception in a destructor,
36605           even when that destructor is being called during a stack unwind
36606           caused by an exception being thrown).
36608 Wed Oct 16 20:05:39 BST 2002  Olly Betts <olly@survex.com>
36610         * backends/quartz/btreetest.cc: Suppress (most) output from
36611           Btree::check unless verbose (-v) is enabled.
36613 Mon Oct 14 15:13:18 BST 2002  Olly Betts <olly@survex.com>
36615         * testsuite/testsuite.cc: Fixed compilation problem with std:: on
36616           GCC 3.2.
36618 Mon Oct 14 15:07:03 BST 2002  Olly Betts <olly@survex.com>
36620         * api/omstem.cc: French and Finnish stemmers were switched!
36622 Mon Oct 14 02:49:12 BST 2002  Olly Betts <olly@survex.com>
36624         * backends/quartz/quartz_utils.h: change sort preserving packing for
36625           strings.  This one does better provided the strings being packed
36626           don't contain many zero bytes (which is true of the termnames which
36627           we pack with this).
36629 Mon Oct 14 02:45:20 BST 2002  Olly Betts <olly@survex.com>
36631         * tests/stemtest.cc: Updated to reflect new naming of stemming test
36632           data.
36634 Sun Oct 13 17:06:26 BST 2002  Olly Betts <olly@survex.com>
36636         * docs/todo.xml: Updated.
36638 Sun Oct 13 16:40:24 BST 2002  Olly Betts <olly@survex.com>
36640         * api/omstem.cc,backends/quartz/,common/,extra/omparsequery.h,matcher/,
36641           net/socketclient.cc: Added private copy ctors and assignment
36642           operators to classes with pointer members (which shouldn't be
36643           copied).
36645 Sun Oct 13 15:12:40 BST 2002  Olly Betts <olly@survex.com>
36647         * docs/todo.xml: Updated.
36649 Sun Oct 13 02:33:57 BST 2002  Olly Betts <olly@survex.com>
36651         * .cvsignore: Added install-sh.
36653 Sun Oct 13 02:16:31 BST 2002  Olly Betts <olly@survex.com>
36655         * backends/quartz/{quartz_lexicon.cc,quartz_lexicon.h}: key to lexicon
36656           is now simply the termname - no need to encode the length there too
36657           since the Btree knows how long the key is.
36658         * backends/quartz/{quartz_table_manager.cc,quartz_values.cc}: finished
36659           the terminology change from "attribute" to "value" (including
36660           renaming the btree files, which is why it wasn't done before).
36662 Sun Oct 13 02:09:00 BST 2002  Olly Betts <olly@survex.com>
36664         * tests/api_db.cc: Snowball stems "this" to "this" rather than "thi",
36665           so update apitest source to reflect this.
36667 Sun Oct 13 01:03:04 BST 2002  Olly Betts <olly@survex.com>
36669         * configure.in: Removed references to languages/*/Makefile.
36671 Sun Oct 13 00:50:01 BST 2002  Olly Betts <olly@survex.com>
36673         * docs/indexerquickstart.html,docs/quartzdesign.html: Updated.
36675 Sat Oct 12 23:34:52 BST 2002  Olly Betts <olly@survex.com>
36677         * languages/{api.c,api.h,header.h,utilities.c}: 4 new files.
36679 Sat Oct 12 23:29:50 BST 2002  Olly Betts <olly@survex.com>
36681         * languages/: removed all the old .cvsignore files.
36683 Sat Oct 12 22:34:01 BST 2002  Olly Betts <olly@survex.com>
36685         * api/omstem.cc,docs/stemming.html,docs/todo.xml,languages/: Replaced
36686           our stemmers with those from Snowball.  Note that these give better
36687           results, but this also means that existing databases won't work
36688           quite correctly if they contain stemmed terms.
36690 Sat Oct 12 17:17:26 BST 2002  Olly Betts <olly@survex.com>
36692         * configure.in,NEWS: Version 0.5.3.
36694 Sat Oct 12 16:49:50 BST 2002  Olly Betts <olly@survex.com>
36696         * PLATFORMS,api/omvalueiteratorinternal.h,extra/parsequery.yy,
36697           include/om/omdocument.h: Fixed std:: namespace issues to
36698           allow compilation with GCC 3 once again.
36700 Sat Oct 12 15:43:22 BST 2002  Olly Betts <olly@survex.com>
36702         * docs/todo.xml: Updated.
36704 Fri Oct 11 02:14:47 BST 2002  Olly Betts <olly@survex.com>
36706         * backends/quartz/Makefile.am: Include test data for btreetest
36707           in distribution tarball.
36709 Fri Oct 11 01:43:03 BST 2002  Olly Betts <olly@survex.com>
36711         * backends/quartz/{z_note,z_sequence,z_Cversion/,z_make/,z_test/}:
36712           Removed all the unused old C btree stuff.
36714 Thu Oct 10 17:32:10 BST 2002  Olly Betts <olly@survex.com>
36716         * backends/quartz/{btree.cc,btree.h}: More Btree tidying.
36718 Thu Oct 10 17:14:28 BST 2002  Olly Betts <olly@survex.com>
36720         * backends/quartz/{bcursor.cc,btree.cc,btree.h}: Btree::prev* and
36721           Btree::next* are no longer static methods.
36722         * backends/quartz/btree.h: Tweaked comments so doxygen will
36723           understand them.
36725 Thu Oct 10 16:12:29 BST 2002  Olly Betts <olly@survex.com>
36727         * backends/quartz/quartz_postlist.cc: return docids rather
36728           than passing in a pointer to fill in.
36730 Thu Oct 10 16:08:22 BST 2002  Olly Betts <olly@survex.com>
36732         * backends/quartz/quartzcheck.cc: Fixed #include-d files;
36733           Example in usage message now uses the directory where
36734           omega looks for its database by default.
36736 Thu Oct 10 15:25:10 BST 2002  Olly Betts <olly@survex.com>
36738         * backends/quartz/btree.cc,backends/quartz/btree.h: More comment
36739           improvements; Removed superfluous Cursor parameter from
36740           Btree::add_kt() - it always gets passed the C member of Btree
36741           which we have available anyway.
36743 Thu Oct 10 14:49:11 BST 2002  Olly Betts <olly@survex.com>
36745         * backends/quartz/btree.cc: Removed "struct" from in front of
36746           Btree and Cursor; Updated and reformatted many comments.
36748 Thu Oct 10 03:45:56 BST 2002  Olly Betts <olly@survex.com>
36750         * testsuite/backendmanager.cc: Reworded comment to make it clearer.
36752 Thu Oct 10 03:29:52 BST 2002  Olly Betts <olly@survex.com>
36754         * docs/todo.xml: Updated.
36756 Wed Oct 09 14:05:07 BST 2002  Olly Betts <olly@survex.com>
36758         * backends/quartz/{quartz_alltermslist.cc,quartz_alltermslist.h,
36759           quartz_database.cc}: Implemented
36760           QuartzAllTermsList::get_approx_size().
36762 Wed Oct 09 10:46:42 BST 2002  Olly Betts <olly@survex.com>
36764         * extra/omparsequery.h,include/om/omvalueiterator.h: Don't use
36765           "using std::foo;" in externally visible headers.
36767 Wed Oct 09 10:26:05 BST 2002  Olly Betts <olly@survex.com>
36769         * extra/omparsequery.h: fixed unused parameter warning.
36771 Tue Oct 08 20:32:46 BST 2002  Olly Betts <olly@survex.com>
36773         * tests/stemtest.cc: Added missing space to output.
36775 Tue Oct 08 20:10:35 BST 2002  Olly Betts <olly@survex.com>
36777         * With GCC, add warning flags "-Wall -W" rather than "-Wall -Wunused"
36778           (-Wall implies -Wunused anyway).  Fixed all the warnings this throws
36779           up, except in languages/ (that code is to be replaced with Snowball
36780           soon).
36782 Tue Oct 08 19:57:03 BST 2002  Olly Betts <olly@survex.com>
36784         * testsuite/: Disable colour test output if stdout isn't a terminal;
36785           reworked check for broken exception handling as the previous
36786           version never seemed to fire; added "using" for all the things
36787           we want from std::; improved how signal handlers are set and
36788           unset; report exception class for exceptions derived from OmError
36789           rather than a blanket "OMEXCEPT"; added private copy ctor and
36790           assignment to test_driver to prevent copying.
36792 Tue Oct 08 19:53:02 BST 2002  Olly Betts <olly@survex.com>
36794         * include/om/Makefile.am: remove include/om/om.h on "make distclean",
36795           not "make clean".  Otherwise "./configure ; make clean ; make"
36796           fails which is wrong.
36798 Sun Oct 06 18:37:39 BST 2002  Olly Betts <olly@survex.com>
36800         * PLATFORMS: Updated.
36801         * docs/: Removed Martin's paper - background information for stemmers
36802           is best left to the Snowball documentation.
36804 Sat Oct 05 20:31:55 BST 2002  Olly Betts <olly@survex.com>
36806         * NEWS,configure.in: 0.5.2 release.
36808 Sat Oct 05 03:01:49 BST 2002  Olly Betts <olly@survex.com>
36810         * PLATFORMS: Updated.
36812 Sat Oct 05 02:09:35 BST 2002  Olly Betts <olly@survex.com>
36814         * docs/todo.xml: Updated.
36816 Fri Oct 04 22:34:12 BST 2002  Olly Betts <olly@survex.com>
36818         * PLATFORMS,testsuite/testutils.h: Code to spot mishandled exceptions
36819           doesn't always work - noted this in PLATFORMS, and tweaked the code
36820           a little.
36822 Fri Oct 04 19:08:08 BST 2002  Olly Betts <olly@survex.com>
36824         * backends/quartz/.cvsignore: Added quartzcheck.
36826 Fri Oct 04 18:24:55 BST 2002  Olly Betts <olly@survex.com>
36828         * docs/: converted all text docs to HTML (except omsettings which will
36829           has odd markup (LaTeX?) and will probably soon be obsolete anyway).
36830         * docs/todo.xml: updated.
36832 Fri Oct 04 17:18:33 BST 2002  Olly Betts <olly@survex.com>
36834         * net/socketcommon.cc: Fixed handling of timeouts in the past.
36836 Fri Oct 04 13:51:39 BST 2002  Olly Betts <olly@survex.com>
36838         * PLATFORMS,testsuite/testutils.h: Use typeid() to spot when GCC 2.95
36839           mishandles an exception, and don't count this as a test failure.
36841 Fri Oct 04 03:59:29 BST 2002  Olly Betts <olly@survex.com>
36843         * api/omdatabaseinternal.cc,backends/multi/multi_termlist.h,
36844           matcher/multimatch.cc,matcher/networkmatch.cc,matcher/networkmatch.h:
36845           pulled uses of dynamic_cast<> to higher up in the code.
36847 Fri Oct 04 03:53:44 BST 2002  Olly Betts <olly@survex.com>
36849         * PLATFORMS,backends/quartz/{btree.cc,quartz_metafile.cc}: Fixed quartz
36850           problems on platforms where sizeof(long) != 4.
36851         * PLATFORMS: Updated in the light of investigations into test failures
36852           on x86 Redhat Linux - only multierrhandler1 with the remote backend
36853           is actually a problem.
36855 Wed Oct 02 16:32:48 BST 2002  Olly Betts <olly@survex.com>
36857         * NEWS: Updated for 0.5.1 release.
36859 Wed Oct 02 16:01:50 BST 2002  Olly Betts <olly@survex.com>
36861         * PLATFORMS,configure.in: 0.5.1 release.
36863 Tue Oct 01 13:34:24 BST 2002  Olly Betts <olly@survex.com>
36865         * docs/: tweaked navigation links in index.html; converted bm25
36866           text document to HTML and linked it in; added todo entry to
36867           locate the "illusion of control" paper.
36869 Tue Oct 01 12:48:41 BST 2002  Olly Betts <olly@survex.com>
36871         * docs/: renamed intro.html to install.html, and userman.html to
36872           overview.html; changed navbar on index.html.
36874 Tue Oct 01 12:37:20 BST 2002  Olly Betts <olly@survex.com>
36876         * bootstrap: fixed adding of directory with xapian.m4 in to
36877           ACLOCAL_FLAGS; added trap to tell user if bootstrapping failed.
36879 Tue Oct 01 12:33:38 BST 2002  Olly Betts <olly@survex.com>
36881         * HACKING,Makefile.am,bootstrap,buildall,xapian.spec.in,
36882           autoconf/dir_contents,docs/todo.xml: Added bootstrap script as a
36883           replacement for buildall (buildall left in place for now until
36884           bootstrap receives wider testing).
36886 Tue Oct 01 12:19:32 BST 2002  Olly Betts <olly@survex.com>
36888         * HACKING,Makefile.am,configure.in,PLATFORMS: require automake 1.6.3
36889           (and hence autoconf 2.54) to fix problem building tests/internaltest
36890           with Solaris make.
36892 Mon Sep 30 20:30:42 BST 2002  Olly Betts <olly@survex.com>
36894         * PLATFORMS: Improved wording about bogus OMEXCEPT failures);
36895           Added results for OpenBSD 3.0 and Solaris 8 on x86 (both work).
36897 Mon Sep 30 20:25:03 BST 2002  Olly Betts <olly@survex.com>
36899         * docs/: Pruned .cvsignore; removed cvs.html (link to CVS info
36900           on website directly); removed using_stemmers.html - those
36901           wishing to use the C API to the stemmers ought to look at
36902           Snowball instead; include HTML versions of quickstart*.cc
36903           in tarballs; improved wording in various places.
36905 Mon Sep 23 19:33:31 BST 2002  Olly Betts <olly@survex.com>
36907         * net/Makefile.am: Fixed building of readquery.cc from readquery.ll.
36909 Sun Sep 22 03:57:20 BST 2002  Olly Betts <olly@survex.com>
36911         * PLATFORMS: Updated.
36913 Fri Sep 20 15:09:25 BST 2002  Olly Betts <olly@survex.com>
36915         * PLATFORMS: Added note about bogus OMEXCEPT test failures with
36916           GCC 2.95.
36918 Fri Sep 20 01:36:35 BST 2002  Olly Betts <olly@survex.com>
36920         * NEWS,PLATFORMS,configure.in: 0.5.0 release!
36922 Fri Sep 20 01:01:52 BST 2002  Olly Betts <olly@survex.com>
36924         * Makefile.am: Perl module we need to process todo.xml is XML::Parser
36925           not XML, so corrected error message.
36926         * configure.in: Commented out MSG_WARN() when Perl modules XML::Parser
36927           or Text::Format aren't found.  In a release tarball, this only
36928           matters if you modify docs/todo.xml, and the warning message(s) may
36929           alarm those building the software.
36931 Thu Sep 19 00:57:23 BST 2002  Olly Betts <olly@survex.com>
36933         * .cvsignore: Added depcomp, missing, mkinstalldirs.
36935 Thu Sep 19 00:49:01 BST 2002  Olly Betts <olly@survex.com>
36937         * HACKING: Added note about safe way to generate files in make rules.
36939 Thu Sep 19 00:45:51 BST 2002  Olly Betts <olly@survex.com>
36941         * PLATFORMS: Tested on Solaris 7 with GCC 2.95.3 (works) and Solaris 8
36942           Sun Workshop C++ compiler (fails to compile).
36944 Thu Sep 19 00:41:53 BST 2002  Olly Betts <olly@survex.com>
36946         * ar-wrapper-solaris,ltconfig,Makefile.am: libtool 1.4 doesn't use
36947           ltconfig, and that's the only thing that uses ar-wrapper-solaris,
36948           so removed both.  Fairly sure the problem they address was fixed
36949           in libtool so time ago.  Xapian doesn't build with Sun's C++
36950           compiler at the moment anyway, so it's moot for the release.
36952 Thu Sep 19 00:26:37 BST 2002  Olly Betts <olly@survex.com>
36954         * docs/todo2html.pl: Handle release "*" specially - it indicates
36955           tasks to be done for each release.
36957 Thu Sep 19 00:05:40 BST 2002  Olly Betts <olly@survex.com>
36959         * configure.in,include/om/om.h.in: Tweaked how generation of om.h
36960           works to avoid problems with Sun's C++ compiler.
36962 Wed Sep 18 19:21:47 BST 2002  Olly Betts <olly@survex.com>
36964         * net/Makefile.am,net/readquery.ll: #include <config.h>
36965           must be included before any other headers, but that seems to be
36966           impossible to arrange in lex/flex so we use echo and cat in the
36967           Makefile to arrange this.
36969 Wed Sep 18 17:35:00 BST 2002  Olly Betts <olly@survex.com>
36971         * include/om/Makefile.am: We want to install om/om.h, but not
36972           distribute it or people with a different compiler to whoever
36973           ran "make dist" will get the "ABI mismatch" error.
36975 Wed Sep 18 13:16:14 BST 2002  Richard Boulton <richard@tartarus.org>
36977         * docs/.cvsignore: Add docs/doxygen_full_warnings.
36978         * include/om/.cvsignore: Add include/om/om.h.
36980 Wed Sep 18 11:06:12 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36982         * include/om/Makefile.am: We really should install om/om.h, or
36983           applications can't build against us.
36985 Wed Sep 18 05:10:24 BST 2002  Richard Boulton <richard@tartarus.org>
36987         * docs/doxygen_{api,full}_header.html_tmpl: Remove meta robots tag -
36988           why shouldn't this be indexed?  Now the omega I set up pointing
36989           at copies of this should actually index something.
36991 Wed Sep 18 04:52:20 BST 2002  Olly Betts <olly@survex.com>
36993         * configure.in: Merged two sed invocations into one - we don't want
36994           configure to run any slower than it has to.
36996 Wed Sep 18 04:17:58 BST 2002  Richard Boulton <richard@tartarus.org>
36998         * configure.in: Don't put confdefs.h into SOURCEDOC_H_SRC - this
36999           file only exists during the configure run.  Fixes failure of
37000           "make doxygen_docs" in docs/
37002 Tue Sep 17 13:07:39 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37004         * Updated PLATFORMS file.
37006 Mon Sep 16 19:40:02 BST 2002  Olly Betts <olly@survex.com>
37008         * docs/todo.xml: Updated.
37010 Mon Sep 16 18:09:29 BST 2002  Olly Betts <olly@survex.com>
37012         * tests/api_db.cc: don't run consistency1 test on the remote backend
37013           - it's particularly slow with that, and testing it there doesn't
37014           actually improve the test coverage really.
37016 Mon Sep 16 17:15:46 BST 2002  Olly Betts <olly@survex.com>
37018         * configure.in,docs/Makefile.am: Added workaround for pattern length
37019           limits in Solaris sed.
37021 Mon Sep 16 17:13:20 BST 2002  Olly Betts <olly@survex.com>
37023         * include/om/om.h.in: Added explanatory comments for developers.
37025 Mon Sep 16 14:22:48 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37027         * om/om.h needs to be in CLEANFILES or make distcheck fails
37029 Mon Sep 16 13:37:04 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37031         * Now om/om.h is built from om/om.h.in, it may be in the build
37032           directly. Consequently, we need to add that to the include path
37033           for VPATH builds. Plus (also for VPATH), om/om.h needs to be
37034           output after AC_OUTPUT, because otherwise the destination
37035           directory may not exist.
37037 Mon Sep 16 04:19:54 BST 2002  Olly Betts <olly@survex.com>
37039         * configure.in,docs/todo.xml,include/om/Makefile.am,include/om/om.h,
37040           include/om/om.h.in: When building the library with GCC, generate
37041           include/om/om.h with preprocessor code to check that any version
37042           of GCC used to build applications has a matching C++ ABI.
37044           This means that users get a nice explanatory error message rather
37045           than a confusing link failure (or worse a program which builds
37046           but crashes).  Another benefit is that the check happens near the
37047           start of compilation of the first source file which uses Xapian
37048           in the user's application, rather than during the first attempt
37049           to link with Xapian.
37051 Sun Sep 15 01:42:19 BST 2002  Olly Betts <olly@survex.com>
37053         * net/tcpserver.cc: Solved std mystery - "using namespace std;" was
37054           inside a #ifdef which wasn't enabled!
37056 Sun Sep 15 01:21:34 BST 2002  Richard Boulton <richard@tartarus.org>
37058         * tests/tcpserver.cc: Hacky fix to compile with gcc-3.2 snapshot in
37059           Debian unstable - add a FIXME to work out why this is needed.
37060         * todo: add entry about checking ABI versions using
37061           __GXX_ABI_VERSION macro.
37063 Sat Sep 14 22:39:11 BST 2002  Olly Betts <olly@survex.com>
37065         * configure.in,tests/Makefile.am,tests/internaltest.cc: It turns out
37066           that internaltest *does* need -fno-access-control, so put it back.
37067           Not quite sure how I missed this.  Changed to skip refcnt tests
37068           when -fno-access-control isn't available (rather than omitting them
37069           entirely).
37071         * tests/api_db.cc: Fixed compile problem.
37073 Sat Sep 14 21:44:34 BST 2002  Olly Betts <olly@survex.com>
37075         * internaltest: doesn't actually need -fno-access-control these
37076           days, so removed it and the configure tests for it.
37078         * stemtest: recoded to be all in C++ and removed use of intermediate
37079           files for random data tests - now runs ~15% faster; no longer need
37080           HAVE_PERL so removed from configure.
37082         * apitest: use C++ streams rather than stdio; stubdb1 now cleans up
37083           the temporary file it creates.
37085 Sat Sep 14 12:54:52 BST 2002  Olly Betts <olly@survex.com>
37087         * docs/Makefile.am: fix "mv apidoc/latex/refman.ps avidoc.ps" which
37088           fails after recent change.
37090 Sat Sep 14 11:15:33 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37092         * Renamed simple* programs in quickstart docs to quickstart* to
37093           avoid confusion with the simple* programs in xapian-examples.
37094           (Thanks to Alex Bowley for pointing out the confusion.)
37096 Sat Sep 14 10:00:35 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37098         * configure.in: returned AC_CONDITIONAL for HAVE_PERL
37100 Sat Sep 14 09:29:08 BST 2002  Richard Boulton <richard@tartarus.org>
37102         * buildall: change to srcdir before testing for necessary tools
37103           so that scripts which guess which autotools version to use have more
37104           information available to guess with: for example, the Debian
37105           autoconf version guessing script looks for "configure.ac" as a sign
37106           that autoconf 2.50+ is required.
37108 Sat Sep 14 02:50:23 BST 2002  Olly Betts <olly@survex.com>
37110         * docs/distributed.txt,docs/quartzdesign.html,docs/todo.xml: assorted
37111           documentation updates.
37113 Sat Sep 14 02:10:12 BST 2002  Olly Betts <olly@survex.com>
37115         * PLATFORMS: removed note about VPATH problems.
37117 Sat Sep 14 02:02:58 BST 2002  Olly Betts <olly@survex.com>
37119         * btree.cc,btree.h: rearranged Btree::del() so control flow is clearer.
37121 Sat Sep 14 01:56:44 BST 2002  Olly Betts <olly@survex.com>
37123         * HACKING,docs/Makefile.am: added evil hack to allow VPATH builds to
37124           work with BSD make.
37126 Wed Sep 11 11:29:07 BST 2002  Olly Betts <olly@survex.com>
37128         * backends/database_builder.cc: Quartz is fairly mature - change
37129           comment which suggests that the btree names will change.
37131 Wed Sep 11 11:13:43 BST 2002  Olly Betts <olly@survex.com>
37133         * configure.in: Don't double quote `$MISSING foo' as autoconf adds them
37134         * docs/Makefile.am: Use `test a = b' rather than `test a == b'
37136 Tue Sep 10 14:50:16 BST 2002  Olly Betts <olly@survex.com>
37138         * configure.in: tweaked test for perl modules - stderr is now
37139           fully suppressed on sh (which behaves slightly differently to bash).
37141 Tue Sep 10 14:27:15 BST 2002  Richard Boulton <richard@tartarus.org>
37143         * backend_manager.cc: Fix stub database code so that it doesn't use
37144           the gnu extension "getline()".
37146 Tue Sep 10 13:51:20 BST 2002  Olly Betts <olly@survex.com>
37148         * quartz_table.cc: don't form tag when we just want to check if a
37149           key is present before calling Btree::del().  Working out why
37150           we can't call Btree::del() would still be worthwhile though.
37152 Tue Sep 10 13:02:04 BST 2002  Olly Betts <olly@survex.com>
37154         * quartztest.cc: removed unused #include-s; describe valid options
37155           in usage message.
37157 Tue Sep 10 02:07:29 BST 2002  Olly Betts <olly@survex.com>
37159         * remote backend: implemented term_exists() and get_termfreq();
37160           added test to check they work.
37162 Mon Sep  9 12:59:15 BST 2002  Richard Boulton <richard@tartarus.org>
37164         * Add stub databases: if backend type is auto, and auto_dir points
37165           to a file, read in settings from the file (overwriting the
37166           existing ones), and then use them to open the database.
37167           This allows, for example, omega to open a remote database by
37168           putting in a stub database file in the omega directory.
37169           Updated documentation for opening databases in userman.html.
37170         * apitest: Added test for stub databases.
37172 Mon Sep 09 02:26:36 BST 2002  Olly Betts <olly@survex.com>
37174         * Documentation updates: move suggested books into intro_ir.html
37175           and added URL for citeseer reference Richard posted to mailing
37176           list recently; clarified wording in a couple of places.
37178 Sat Sep  7 12:52:12 2002  James Aylett  <tartarus@users.sourceforge.net>
37180         * docs: fixed references to OmDocumentContents (now OmDocument)
37181           which had clearly been broken for a while. Also fixed get_data()
37182           and set_data() example usage so it reflects reality (I hope).
37184 Wed Sep 04 22:46:17 BST 2002  Olly Betts <olly@survex.com>
37186         * Corrected min_item.wt to min_wt in two assertions.
37188 Thu Aug 15 11:42:20 BST 2002  Richard Boulton <richard@tartarus.org>
37190         * buildall: Only add the directory derived from xapian-config
37191           to ACLOCAL_FLAGS if it actually exists.
37193 Mon Aug 12 01:13:55 BST 2002  Richard Boulton <richard@tartarus.org>
37195         * quartz_table.cc: Check that a key exists before calling
37196           Btree::del() - there seems to be a bug in the btree code
37197           causing a failure when deleting keys if they don't exist.
37198           This work around appears to make things work correctly, but
37199           won't be terribly efficient.
37201 Mon Aug 12 00:09:21 BST 2002  Richard Boulton <richard@tartarus.org>
37203         * quartz_table_manager.cc: When unable to apply modifications,
37204           call cancel on the buffered table after reopening disk table
37205           at old revision - otherwise, the entry count gets messed up.
37206         * quartz_table.cc, quartz_database.cc: Improve debugging and
37207           error reporting: I'm trying to work out why the failure Olly
37208           reported is occurring.
37210 Sat Aug 10 15:12:42 2002  James Aylett  <tartarus@users.sourceforge.net>
37212         * Fixed missing include in quartzcheck.cc
37214 Sat Aug 10 14:57:17 2002  James Aylett  <tartarus@users.sourceforge.net>
37216         * Fixed typo in quartzcheck.cc
37218 Tue Jul 23 22:12:34 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37220         * Added a note to the effect that the indexgraph stuff isn't
37221           really considered useful to the HTML document introducing it.
37223 Tue Jul 23 22:09:39 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37225         * Added some comments in quartztest test_create1(), in case anyone
37226           else who didn't write it needs to understand it.
37228         * Added Olly as an active participant to the AUTHORS file :)
37230 Tue Jul 23 21:59:50 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37232         * Reworded quickstart document so it does not refer to the example
37233           code (it was never actually in sync).
37235 Mon Jul 22 14:07:18 BST 2002  Sam Liddicott <sam@ananova.com>
37237         * Forgot to actually add the quartzcheck.cc file last time
37239 Mon Jul 22 13:28:09 BST 2002  Sam Liddicott <sam@ananova.com>
37241         * Add buildprereq to package
37242           Add quartzcheck which runs btree::check to backends
37244 Tue Jul 16 09:44:56 BST 2002  Sam Liddicott <sam@ananova.com>
37246         * Fix banding problem; bands are now based on the percentage
37247           not the weight, and using integer maths to avoid problems
37248           with ceil() rounding up supposed integers which are really
37249           slightly larger due to precision errors
37251 Thu Jul 11 00:16:22 BST 2002  Olly Betts <olly@survex.com>
37253         * configure.in, docs/Makefile.am: configure fixes for Solaris - clear
37254           cached result for fdatasync since it may be wrong if we decide we
37255           need to link librt; split SOURCEDOC_SRC into two to avoid hitting
37256           4096 char line length in Solaris sed.
37258 Tue Jul 09 17:47:31 BST 2002  Olly Betts <olly@survex.com>
37260         * PLATFORMS, tests/Makefile.am: improved internaltest.cc automake rules
37261           - they should now work in VPATH builds with Solaris make.
37263 Tue Jul 09 03:30:41 BST 2002  Olly Betts <olly@survex.com>
37265         * configure.in, docs/Makefile.am: Fixed up apidoc and sourcedoc
37266           dependencies so that they work correctly in VPATH builds.  Also
37267           only use portable find arguments to generate SOURCEDOC_SRC.
37269 Sat Jul 06 13:53:27 BST 2002  Olly Betts <olly@survex.com>
37271         * xapian.spec.in: Updated in preparation for release.
37273 Sat Jul 06 13:04:45 BST 2002  Olly Betts <olly@survex.com>
37275         * docs/Makefile.am: Run latex twice to get forward references resolved.
37277 Fri Jul 05 18:23:08 BST 2002  Olly Betts <olly@survex.com>
37279         * matcher/multimatch.cc: better (perhaps even completely correct) fix
37280           for sorting into bands.
37282         * matcer/localmatch.cc: removed entirely bogus comment from over-eager
37283           cut-and-paste.
37285         * tests/api_db.cc: added otherwise pointless statement to deldoc3
37286           which seems to fix occasional miscompilation by GCC 2.95.
37288 Fri Jul 05 16:37:12 BST 2002  Olly Betts <olly@survex.com>
37290         * docs/Makefile.am: "make dist" now fails if dot (part of graphviz)
37291           isn't installed.
37293 Fri Jul 05 08:54:33 BST 2002  Sam Liddicott <sam@ananova.com>
37295         * bindings/: removed some typemap hacks as swig has better typemaps now
37297 Fri Jul 05 08:46:06 BST 2002  Sam Liddicott <sam@ananova.com>
37299         * matcher/multimatch.cc: Quick hack to stop 100% being in a band all on
37300           its own.  The real problem is that bands need to include the integer
37301           at the upper end of the range, rather than the lower end.
37303 Thu Jul 04 16:23:52 BST 2002  Olly Betts <olly@survex.com>
37305         * docs/mkdoc.pl: Fixed to work in VPATH builds.
37307 Thu Jul 04 12:42:06 BST 2002  Olly Betts <olly@survex.com>
37309         * configure.in, docs/Makefile.am: use "missing" to give more helpful
37310           errors when we don't find tools we need.
37312 Wed Jul 03 12:39:15 BST 2002  Olly Betts <olly@survex.com>
37314         * NEWS: incorporated recent changes into provisional version.
37316         * docs/: sorted out make rules for running doxygen; don't tell doxygen
37317           to build man pages which we aren't using.
37319 Tue Jul 02 16:36:54 BST 2002  Olly Betts <olly@survex.com>
37321         * docs/: run through ispell; fixed OM_MOP to OmQuery::OP; other
37322           corrections.
37324 Fri Jun 28 02:59:49 BST 2002  Olly Betts <olly@survex.com>
37326         * Backend "auto" now works when creating an OmWritableDatabase which
37327           doesn't already exist - it'll pick a backend which supports writing
37328           and is compiled in (currently this means quartz).
37330 Thu Jun 27 20:31:13 BST 2002  Richard Boulton <richard@tartarus.org>
37332         * backends/quartz/btreetest.cc (sequent1): Add regression test for
37333           recently fixed bug with sequential addition.
37334         * backends/quartz/z_data/ordnum[+-]: Data files for new test.
37336 Thu Jun 27 13:13:37 BST 2002  Olly Betts <olly@survex.com>
37338         * Documentation fettling: removed docs/Notes and
37339           docs/coding_policy.txt moving relevant content into HACKING,
37340           common/postlist.h, docs/todo.xml, and include/om/omtypes.h; install
37341           docs as PostScript rather than DVI; include text docs in tarball and
37342           install them; "make dist" will now fail if a tool needed to build
37343           docs is missing; removed last vestiges of Doc++ support;
37344           doc/Makefile no longer uses include (include isn't portable);
37345           improved doc/tests.txt.
37347 Thu Jun 27 12:10:37 BST 2002  Olly Betts <olly@survex.com>
37349         * apitest: doesn't directly use anything from utils.h, so don't
37350           #include it.
37352 Thu Jun 27 12:05:53 BST 2002  Olly Betts <olly@survex.com>
37354         * Removed includetest - it was useful early in development, but isn't
37355           really now.
37357 Wed Jun 26 22:09:57 BST 2002  Olly Betts <olly@survex.com>
37359         * apitest: deldoc2 and deldoc3 now pass when the library is compiled
37360           with --enable-debug.
37362 Wed Jun 26 19:35:56 BST 2002  Olly Betts <olly@survex.com>
37364         * Removed code which causes quartztest to fail with an --enable-debug
37365           build.
37367 Wed Jun 26 13:55:11 BST 2002  Olly Betts <olly@survex.com>
37369         * todo.xml: added note to fix 100% being in its own sort band.
37371 Wed Jun 26 13:46:02 BST 2002  Richard Boulton <richard@tartarus.org>
37373         * btree.cc: Fix splitting of blocks in sequential mode to ensure
37374           that split happens no earlier than the midpoint.
37376 Wed Jun 26 12:32:47 BST 2002  Richard Boulton <richard@tartarus.org>
37378         * btree.cc: Asserts to check that add_item in sequential mode
37379           when splitting a block is not trying to add to the wrong block,
37380           or to add to a new block which is not empty (or containing more
37381           than one item).
37383 Tue Jun 25 17:53:19 BST 2002  Olly Betts <olly@survex.com>
37385         * Assert that the value of c is sane in GETINT1, etc.
37387 Tue Jun 25 16:30:09 BST 2002  Olly Betts <olly@survex.com>
37389         * btreetest.cc: use C++ IO rather than C stdio; removed commented out
37390           LFSinsertdelete1 test (it was never written and a test suite which
37391           creates 2G files is probably a bit too resource hungry).
37393 Tue Jun 25 13:56:01 BST 2002  Olly Betts <olly@survex.com>
37395         * btree/quartz: More use of const pointers; more use of C++ strings.
37397 Wed Jun 19 08:56:00 BST 2002  Sam Liddicott <sam@ananova.com>
37399         * Fixed spec file to build for prefix=/usr not just install there
37401 Fri Jun 14 16:35:04 BST 2002  Olly Betts <olly@survex.com>
37403         * docs/todo.xml: added 4 new tasks.
37405 Fri Jun 14 16:33:08 BST 2002  Olly Betts <olly@survex.com>
37407         * backends/quartz/quartz_database.cc: Cosmetic changes.
37409 Wed Jun 12 16:31:11 BST 2002  Olly Betts <olly@survex.com>
37411         * QuartzDbKey, QuartzDbTag: just use a string instead of a string
37412           wrapped in a structure.  We've stopped inflicting this on external
37413           developers (OmData, OmKey/OmValue) so why inflict it on ourselves?
37415 Wed Jun 12 12:26:04 BST 2002  Olly Betts <olly@survex.com>
37417         * Btree_item: use C++ strings rather than trying to reimplement them.
37419         * Fix a few warnings about unused parameters.
37421 Wed Jun 12 02:53:16 BST 2002  Olly Betts <olly@survex.com>
37423         * Btree_full_compaction, Btree_close: removed - they just wrap methods
37424           of Btree.
37426 Wed Jun 12 02:28:30 BST 2002  Olly Betts <olly@survex.com>
37428         * Btree_item_create and Btree_item_lose subsumed into Btree_item
37429           and ~Btree_item.
37431         * Pass C++ strings rather than const char * into various Btree open
37432           methods.
37434         * Removed pointless wrapper functions for Btree open methods.
37436         * Btree_quit removed (just use delete directly).
37438         * Btree_create removed (just use Btree::create directly).
37440 Wed Jun 12 00:48:52 BST 2002  Olly Betts <olly@survex.com>
37442         * form_key is now a method of Btree; more passing of strings rather
37443           than pointer/length pairs); buffer overrun check added to btreetest.
37445 Tue Jun 11 18:04:08 BST 2002  Olly Betts <olly@survex.com>
37447         * More C++ like interfaces (e.g. bool returns, strings rather than
37448           pointer/length pairs).
37450 Tue Jun 11 16:40:08 BST 2002  Richard Boulton <richard@tartarus.org>
37452         * quartz/btree.cc: Fix so that it compiles when BTREE_FULL_DEBUG is on,
37453           and added a couple of Assert()s.
37455 Tue Jun 11 13:09:39 BST 2002  Olly Betts <olly@survex.com>
37457         * Removed a number of btree functions which were simply wrappers for
37458           calling methods on their first parameter, and most of which weren't
37459           even used!
37461         * btree_api.txt: updated to better reflect the object-ized API.
37463 Tue Jun 11 02:01:53 BST 2002  Olly Betts <olly@survex.com>
37465         * Btree::make_index_item(): Added check for buffer overflow.
37467 Tue Jun 11 01:49:51 BST 2002  Olly Betts <olly@survex.com>
37469         * Still more...
37471 Tue Jun 11 01:08:03 BST 2002  Olly Betts <olly@survex.com>
37473         * More btree and quartz tidying.
37475 Mon Jun 10 20:33:24 BST 2002  Olly Betts <olly@survex.com>
37477         * btree.cc,btree.h: cleaned up further.
37479 Mon Jun 10 15:54:49 BST 2002  Olly Betts <olly@survex.com>
37481         * Further btree and quartz cleanups.
37483 Mon Jun 10 14:46:00 BST 2002  Olly Betts <olly@survex.com>
37485         * Fixed typo in recent quartzdump change.
37487 Mon Jun 10 13:20:20 BST 2002  Olly Betts <olly@survex.com>
37489         * Quartz clean-ups - especially QuartzTermList.
37491 Mon Jun 10 12:18:40 BST 2002  Olly Betts <olly@survex.com>
37493         * Bcursor_create made a method of class Btree as suggested by a FIXME.
37495 Mon Jun 10 01:57:53 BST 2002  Olly Betts <olly@survex.com>
37497         * More btree fixes and tidying.  Fixed bug introduced by typo in
37498           previous change which causes tests to fail.
37500 Sun Jun 09 17:50:28 BST 2002  Olly Betts <olly@survex.com>
37502         * btree_util.h: use inlines rather than macros.
37504         * Fix CompileTimeAssert() to avoid potential clashes.
37506 Sun Jun 09 12:46:25 BST 2002  Olly Betts <olly@survex.com>
37508         * btree.cc,btree.h: fixed bug caused by local variable masking member
37509           variable with same name.  Tidied up a lot.
37511 Wed Jun  5 12:22:57 BST 2002  Sam Liddicott <sam@ananova.com>
37513         * Fix OmQuery::op enum handling.
37515 Mon May 27 14:28:06 BST 2002  Sam Liddicott <sam@ananova.com>
37517         * Add crash-protected next() to OmMSetIterator
37519         * Add ->valid() method to iterator which returns FALSE if
37520           the iterator has reached the end
37522         * Added namespace fixes for latest cvs swig to be released next month
37524 Fri May 24 15:28:18 BST 2002  Sam Liddicott <sam@ananova.com>
37526         * Took out the string typemaps as swig now has them in stl.i
37528         * Added om_percent to omtypes.i - I wonder if we might just
37529           read omtypes.h instead, as swig can
37531         * Added OmMSetIterator and made changes to OmMSet
37533 Fri May 24 11:46:50 BST 2002  Sam Liddicott <sam@ananova.com>
37535         * Now support get_matching_terms via swig
37536           I'm not sure how to generally map iterators to php but in
37537           cases where we know only a small number of items exist
37538           to be iterated over it makes sense to return them as a
37539           php array
37541 Tue May 21 15:28:40 BST 2002  Richard Boulton <richard@tartarus.org>
37543         * multi_postlist.cc (get_doclength):  Get the document length from
37544           the appropriate sub-postlist, rather than from the database.
37545           This causes a huge speedup in some cases, since it avoids having
37546           to go to the termlist database for every document considered for
37547           an mset to get the document length.
37548           Added an AssertParanoid to check that the value from the postlist
37549           is the same as that from the database.
37550           This problem was noticed because "delve -v" was running several
37551           orders of magnitude slower than without -v - it is now of
37552           comparable speed.
37554 Tue May 21 15:27:37 BST 2002  Richard Boulton <richard@tartarus.org>
37556         * quartz_values.cc: Small fixes to enable it to compile with debug
37557           turned on.
37559 Fri May 17 14:52:45 BST 2002  Olly Betts <olly@survex.com>
37561         * OmQueryParser::set_database() method added.
37563         * Added disabled code to search for a keyword used in the query.
37565         * Added ' and * to the list of "phrase making characters".
37567         * To make a phrase, a phrase-maker must be followed by an alphanumeric
37568           rather than just a non-space.
37570 Fri May 17 14:49:54 BST 2002  Olly Betts <olly@survex.com>
37572         * INSTALL: GCC 3.1 release version works, so noted this.
37574         * HACKING: Added note about warning-free compilation being desirable
37575           and suggesting using "./configure CFLAGS=-Werror" to promote this.
37577         * NEWS: Minor updates.
37579 Thu May 16 16:57:42 BST 2002  Olly Betts <olly@survex.com>
37581         * Minor tweaks to get a warning-less compile with GCC 3.1.
37583 Thu May 16 13:36:19 BST 2002  Sam Liddicott <sam@ananova.com>
37585         * Clean up the spec file
37587 Thu May 16 12:20:09 BST 2002  Olly Betts <olly@survex.com>
37589         * Documented match_sort_key.
37591 Thu May 16 10:42:47 BST 2002  Sam Liddicott <sam@ananova.com>
37593         * A few quick tips from Olly, now the tarfile name and version no.
37594           stuff comes from autoconf so the spec file won't need tweaking
37595           each time the version number changes
37597 Wed May 15 15:48:42 BST 2002  Sam Liddicott <sam@ananova.com>
37599         * This can build RPM packages.
37600           Get the make-dist tarball and do:
37601           rpm -ta xapian-core-0.4.1-cvs.tar.gz
37602           and it will make source and binary rpms
37603           It doesn't build bindings packages yet but this will come when I
37604           build them
37606 Wed May 15 13:27:21 BST 2002  Richard Boulton <richard@tartarus.org>
37608         * buildall: Allow use of automake 1.6.1 and later, and CVS
37609           automake (versions 1.6[a-z])
37611 Wed May 15 11:40:58 BST 2002  Sam Liddicott <sam@ananova.com>
37613         * SWIG cvs (php4) now writes all output files to the same directory as
37614           the main output file, so need for hacks to move these, also no more
37615           clobbering our source files when building in the checkout dir
37617 Tue May 14 21:54:02 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37619         * Updated PLATFORMS file.
37621 Tue May 14 16:48:07 BST 2002  Olly Betts <olly@survex.com>
37623         * Removed multiple-include protection from config.h - if it's
37624           included more than once it's now a bug and we want to know!
37626 Tue May 14 15:25:05 BST 2002  Olly Betts <olly@survex.com>
37628         * OmQueryParser: parse acronyms as a single term (so "E.T." -> "ET"
37629           and "N.A.T.O" -> "NATO").
37631 Tue May 14 15:23:20 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37633         * Fixed config.h includes: source definition (ie not header) files
37634           #include <config.h> as their first action.
37636 Tue May 14 14:47:00 BST 2002  Olly Betts <olly@survex.com>
37638         * Updated todo.
37640         * extra/parsequery.yy: Fettled indentation.
37642 Tue May 14 13:14:51 BST 2002  Olly Betts <olly@survex.com>
37644         * Added test case for new "embedded &" rule, and fix problem bug it
37645           revealed.
37647 Tue May 14 13:10:33 BST 2002  Olly Betts <olly@survex.com>
37649         * OmQueryParser: Parse <word>&<word> as a single term (e.g. AT&T,
37650           M&S, A&P).
37652 Tue May 14 11:50:03 BST 2002  Olly Betts <olly@survex.com>
37654         * When including config.h, always specify it as <config.h>, not
37655           "config.h", and always do it first.  Both are recommended by
37656           the autoconf documentation.
37658 Mon May 13 17:17:13 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37660         * missing fallback rule all-local in docs/Makefile.am was failing
37661           the build on Solaris
37663 Mon May 13 15:50:31 BST 2002  Sam Liddicott <sam@ananova.com>
37665         * Use new %extends notation for swig.
37667         * Update for new omValue usage
37669         * Add omqueryparser support
37671 Mon May 13 15:12:30 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37673         * shipped getopt will now build in absence of system getopt
37675 Mon May 13 15:09:17 BST 2002  Olly Betts <olly@survex.com>
37677         * configure.in: Moved AH_TOP/AH_BOTTOM to more logical place.
37679         * docs/todo.xml: Updated.
37681 Mon May 13 14:13:27 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37683         * added getopt to DIST_SUBDIRS so distributions work
37685 Fri May 10 14:54:06 BST 2002  Olly Betts <olly@survex.com>
37687         * getopt/: Checked in files I missed last time.
37689 Fri May 10 14:35:52 BST 2002  Olly Betts <olly@survex.com>
37691         * Make sure GNU getopt is linked to everything which might need it so
37692           we build in non-glibc environments.
37694 Fri May 10 13:42:59 BST 2002  Olly Betts <olly@survex.com>
37696         * Replaced second match_sort_key optimisation with one which is
37697           faster and not flawed.
37699 Thu May 09 18:27:30 BST 2002  Olly Betts <olly@survex.com>
37701         * match_sort_key now runs at a sensible speed (approx. 20x speed
37702           up on my test case).
37704 Thu May 09 16:58:11 BST 2002  Olly Betts <olly@survex.com>
37706         * Added another optimisation for match_sort_key - my test case
37707           is now 25% faster (still slow though).
37709 Thu May 09 11:57:59 BST 2002  Olly Betts <olly@survex.com>
37711         * NEWS, PLATFORMS, README: Updated to something approximating what we
37712           want for a release.
37714         * docs/todo.xml: Updated.
37716 Thu May 09 10:57:59 BST 2002  Olly Betts <olly@survex.com>
37718         * Removed references to match_max_or_terms (which was replaced
37719           by OmQuery::OP_ELITE_SET long, long ago).
37721 Wed May 08 17:38:50 BST 2002  Olly Betts <olly@survex.com>
37723         * Improved api documentation comments.
37725 Wed May 08 17:09:14 BST 2002  Olly Betts <olly@survex.com>
37727         * Include findheaders.pl in tarball.
37729 Wed May 08 16:09:14 BST 2002  Olly Betts <olly@survex.com>
37731         * Killed off acconfig.h.
37733 Wed May 08 15:53:11 BST 2002  Olly Betts <olly@survex.com>
37735         * Added autom4te-*.cache to .cvsignore.
37737 Wed May 08 15:50:56 BST 2002  Olly Betts <olly@survex.com>
37739         * Rebuild docs on "make", not just "make dist" or "make install".
37741 Wed May 08 15:07:01 BST 2002  Olly Betts <olly@survex.com>
37743         * Added workaround for problems with <fcntl.h> on Solaris when LFS
37744           is enabled.
37746 Wed May 08 13:44:10 BST 2002  Olly Betts <olly@survex.com>
37748         * Matcher can now sort on a key.  Can be rather slow at present...
37750 Wed May 08 13:15:21 BST 2002  Olly Betts <olly@survex.com>
37752         * Updated todo.
37754 Wed May 08 12:22:53 BST 2002  Olly Betts <olly@survex.com>
37756         * Removed ltmain.sh-s from CVS.
37758 Wed May 08 12:21:32 BST 2002  Olly Betts <olly@survex.com>
37760         * buildall: run libtoolize; stripped out unnecessary stuff.
37762 Wed May 08 09:44:45 BST 2002  Olly Betts <olly@survex.com>
37764         * matcher/msetpostlist.cc: Removed bogus comment cut and pasted from
37765           matcher/mergepostlist.cc.
37767 Tue May 07 17:51:57 BST 2002  Olly Betts <olly@survex.com>
37769         * It's "m4_include", not "m4include".
37771 Tue May 07 17:52:36 BST 2002  Olly Betts <olly@survex.com>
37773         * Added autoconf/type_socklen_t macro.
37775 Tue May 07 16:50:20 BST 2002  Olly Betts <olly@survex.com>
37777         * Now require autoconf 2.50, which allows us to clean up some of the
37778           more unpleasant parts of the build system.
37780 Tue May 07 14:55:37 BST 2002  Olly Betts <olly@survex.com>
37782         * Added "match_sort_bands" option to sort results within relevance
37783           bands.  Currently the sort within each band is by document id, which
37784           isn't really very useful.  The plan is to allow sorting by a key.
37786 Tue May 07 14:54:12 BST 2002  Olly Betts <olly@survex.com>
37788         * Sorted out tests/findheaders.pl wrt last change.
37790 Tue May 07 13:12:23 BST 2002  Olly Betts <olly@survex.com>
37792         * Run perl scripts from Makefiles explicitly with $(PERL) rather than
37793           having them as generated files in AC_OUTPUT.
37795 Mon May  6 16:04:37 2002  James Aylett  <tartarus@users.sourceforge.net>
37797         * Distribution fixes: make clean should now clear up all
37798           required files.
37800 Mon May  6 14:42:46 2002  James Aylett  <tartarus@users.sourceforge.net>
37802         * Don't include dlfcn.h since we don't use it (and doesn't exist
37803           on some target platforms).
37805 Mon May  6 14:07:24 2002  James Aylett  <tartarus@users.sourceforge.net>
37807         * Minor documentation corrections.
37809 Fri May 03 18:14:14 BST 2002  Olly Betts <olly@survex.com>
37811         * Changed autoconf/automake project name to xapian-core, and updated
37812           the documentation to reflect this.
37814         * Disabled the bindings from being included in distribution tarballs.
37816 Fri May 03 18:13:43 BST 2002  Olly Betts <olly@survex.com>
37818         * Updated todo list.
37820 Fri May  3 18:02:06 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37822         * Overloading ambiguity resolutions for linux/alpha build on CF
37824 Fri May 03 17:13:36 BST 2002  Olly Betts <olly@survex.com>
37826         * buildall: Don't run configure or make; removed --no-make and --quiet.
37828 Fri May  3 16:52:01 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37830         * tests/testdata/etext.txt needs to be included in the distribution
37832 Fri May 03 16:18:38 BST 2002  Olly Betts <olly@survex.com>
37834         * Removed OmValue in favour of simply using a string (analogous to
37835           recent OmData change).
37837 Fri May 03 14:52:04 BST 2002  Olly Betts <olly@survex.com>
37839         * Removed unused om_docname typedef.
37841 Fri May 03 14:42:31 BST 2002  Olly Betts <olly@survex.com>
37843         * Terminology change - a "key" (in the OmKey sense) is now a "value".
37845 Fri May  3 14:31:57 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37847         * Fixed up todo list and HTML generation script to cope with
37848           items without an assigned priority.
37850 Fri May 03 14:29:58 BST 2002  Olly Betts <olly@survex.com>
37852         * It's HACKING (not INSTALL) that has details of developer tools.
37854 Thu May 02 15:57:48 BST 2002  Olly Betts <olly@survex.com>
37856         * Removed OmData - just return and take a string instead.
37858 Thu May 02 14:40:21 BST 2002  Olly Betts <olly@survex.com>
37860         * docs/.cvsignore: updated.
37862 Thu May 02 14:38:36 BST 2002  Olly Betts <olly@survex.com>
37864         * Removed assorted references to pthread locking; updated HACKING.
37866 Thu May 02 14:15:47 BST 2002  Olly Betts <olly@survex.com>
37868         * Stripped out OmBatchEnquire stuff, as it's unlikely to get sorted
37869           out any time soon, and it can be extracted from CVS when someone
37870           wants it.
37872 Thu May 02 13:50:04 BST 2002  Olly Betts <olly@survex.com>
37874         * Check for bison >= 1.35 in buildall.
37876 Wed May 01 17:39:57 BST 2002  Olly Betts <olly@survex.com>
37878         * Removed lingering references to Omsee and OpenMuscat.
37880 Wed May 01 16:34:13 BST 2002  Olly Betts <olly@survex.com>
37882         * Removed unused methods from NetClient (read_data and write_data).
37884 Wed May 01 14:01:12 BST 2002  Olly Betts <olly@survex.com>
37886         * Added test consistency1 to check matcher optimisations don't
37887           result in inconsistent results (i.e. that same matches and
37888           weights are returned regardless of size of mset asked for).
37890 Wed May 01 11:48:10 BST 2002  Olly Betts <olly@survex.com>
37892         * Fixed mismatched tags in todo.xml.
37894 Wed May 01 11:46:42 BST 2002  Olly Betts <olly@survex.com>
37896         * Updated todo.
37898 Wed May 01 11:40:47 BST 2002  Olly Betts <olly@survex.com>
37900         * Corrected configure warning message - it's XML::Parser not XML.
37902 Wed May 01 11:34:49 BST 2002  Olly Betts <olly@survex.com>
37904         * Tweaks to get queryparser building cleanly.
37906 Tue Apr 30 17:44:48 BST 2002  Olly Betts <olly@survex.com>
37908         * Updated query parser in extra from the updated one in omega,
37909           and fettled it to cope better with multiple instantiations
37910           (though it's a long way from being reentrant at the moment).
37912 Tue Apr 30 11:03:44 BST 2002  Olly Betts <olly@survex.com>
37914         * Updated todo.
37916 Mon Apr 29 19:28:04 BST 2002  Olly Betts <olly@survex.com>
37918         * More string.c_str() tidying.
37920 Mon Apr 29 17:41:33 BST 2002  Olly Betts <olly@survex.com>
37922         * Tidied up some uses of string.c_str().
37924         * Cleaned up todo list.
37926 Mon Apr 29 16:08:21 BST 2002  Olly Betts <olly@survex.com>
37928         * Updated buildall to check various tools have the required version
37929           numbers.
37931 Mon Apr 29 15:58:57 BST 2002  Olly Betts <olly@survex.com>
37933         * Tweaked use of HAVE_STREAMBUF
37935 Fri Apr 26 14:41:09 BST 2002  Sam Liddicott <sam@ananova.com>
37937         * Swig is now modified so it can build config.m4 and Makefile.in
37938           for php modules so I removed these from bindings/php4
37940 Tue Apr 23 18:21:03 BST 2002  Olly Betts <olly@survex.com>
37942         * Tried compiling with GCC 3.1 prerelease snapshot and fixed various
37943           STL-related warnings (mostly uses of istrstream).
37945         * Fixed usage of AM_CFLAGS and AM_CXXFLAGS.
37947 Tue Apr 23 15:48:36 BST 2002  Olly Betts <olly@survex.com>
37949         * Updated buildall (and had to tweak it again, sigh).
37951 Tue Apr 23 14:21:01 BST 2002  Sam Liddicott <sam@ananova.com>
37953         * Added typemap conversion to generate OmSettings from php hash
37954         * Changed order of classes in interface file
37956 Tue Apr 23 14:20:05 BST 2002  Olly Betts <olly@survex.com>
37958         * Revamped xapian-config and xapian.m4.  Important change - it's now
37959           "xapian-config --cxxflags" and XAPIAN_CXXFLAGS, not --cflags and
37960           _CFLAGS.
37962 Mon Apr 22 17:58:56 BST 2002  Olly Betts <olly@survex.com>
37964         * Removed leak checker.
37966 Mon Apr 22 13:40:01 BST 2002  Olly Betts <olly@survex.com>
37968         * Tiny code tweak.
37970 Mon Apr 22 13:11:32 BST 2002  Olly Betts <olly@survex.com>
37972         * Write debug log using unbuffered IO and O_APPEND which should prevent
37973           the log file becoming garbled when used from applications which use
37974           Xapian objects in multiple threads.
37976 Mon Apr 22 12:19:18 BST 2002  Olly Betts <olly@survex.com>
37978         * Updated copyright notices for last change.
37980 Mon Apr 22 11:20:28 BST 2002  Olly Betts <olly@survex.com>
37982         * Removed thread locks.
37984 Fri Apr 19 17:38:23 BST 2002  Olly Betts <olly@survex.com>
37986         * Removed completed tasks from todo list.
37988 Fri Apr 19 17:26:23 BST 2002  Olly Betts <olly@survex.com>
37990         * Removed placeholder code for OmQuery::OP_PERCENT_CUTOFF - it's
37991           actually impossible to implement since we started rescaling
37992           percentages so that 100% is attainable.
37994 Fri Apr 19 16:42:42 BST 2002  Olly Betts <olly@survex.com>
37996         * Tracked down and fixed the bug in the quartz backend which was making
37997           test poslist2 fail.
37999 Fri Apr 19 16:06:39 BST 2002  Olly Betts <olly@survex.com>
38001         * Fixed some compilation problems which I somehow failed to notice
38002           before the last check-in.
38004 Fri Apr 19 15:04:13 BST 2002  Olly Betts <olly@survex.com>
38006         * Added more RETURN(...) wrappers.
38008 Fri Apr 19 14:46:19 BST 2002  Olly Betts <olly@survex.com>
38010         * Added more DEBUGCALL tracing to quartz.
38012 Fri Apr 19 13:29:57 BST 2002  Olly Betts <olly@survex.com>
38014         * Minor tweaks to quartz_database.cc.
38016 Fri Apr 19 13:07:50 BST 2002  Olly Betts <olly@survex.com>
38018         * Moved test poslist1 into correct place and renamed it to poslist2
38019           since there's already a poslist1...
38021 Fri Apr 19 11:19:15 BST 2002  Olly Betts <olly@survex.com>
38023         * poslist1 (when actually run!) reveals that Quartz fails to throw
38024           errors in this case.  Disabled test for now, as I can't see why it
38025           fails to throw...
38027 Thu Apr 18 17:44:56 BST 2002  Olly Betts <olly@survex.com>
38029         * Added poslist1 test as suggested by a TODO entry.
38031 Thu Apr 18 14:17:24 BST 2002  Olly Betts <olly@survex.com>
38033         * buildall: Removed search for GNU make (as of automake
38034           1.5 it's not needed for automake and we aim to have portable
38035           makefiles).  Made buildall more portable.
38037 Thu Apr 18 14:16:18 BST 2002  Olly Betts <olly@survex.com>
38039         * xapian-config.nodep is a generated file, so don't look for it in
38040           srcdir.
38042 Thu Apr 18 12:45:04 BST 2002  Olly Betts <olly@survex.com>
38044         * Added bindings/php4/xapian/.cvsignore.
38046 Thu Apr 18 12:36:53 BST 2002  Olly Betts <olly@survex.com>
38048         * Minor tweaks to "Makefile" section in HACKING.
38050 Thu Apr 18 12:26:21 BST 2002  Olly Betts <olly@survex.com>
38052         * Yet more Makefile portability fixes; added section to HACKING
38053           summarising my recent experiences.
38055 Thu Apr 18 11:26:37 BST 2002  Olly Betts <olly@survex.com>
38057         * Corrected the sense of the test in the previous check-in.
38059 Thu Apr 18 11:08:04 BST 2002  Olly Betts <olly@survex.com>
38061         * Use case instead of echo/sed to replace dirname.
38063 Thu Apr 18 10:19:01 BST 2002  Olly Betts <olly@survex.com>
38065         * Another Makefile portability tweak.
38067 Wed Apr 17 16:07:02 BST 2002  Olly Betts <olly@survex.com>
38069         * bindings/php4/Makefile.am: Fixed a couple of problems with
38070           recent changes.
38072 Wed Apr 17 15:32:44 BST 2002  Olly Betts <olly@survex.com>
38074         * Makefile portability improvements.
38076 Wed Apr 17 14:29:21 BST 2002  Olly Betts <olly@survex.com>
38078         * Replaced uses of GNU make specific features with more portable
38079           ones.
38081 Wed Apr 17 12:43:07 BST 2002  Olly Betts <olly@survex.com>
38083         * Update todo list.
38085 Wed Apr 17 12:41:03 BST 2002  Olly Betts <olly@survex.com>
38087         * Removed BrightStation's logo from the documentation.
38089 Wed Apr 17 12:27:07 BST 2002  Olly Betts <olly@survex.com>
38091         * xapian-config: Removed --uninst support - it's very hard to make it
38092           work reliably and we're better off directing our efforts towards
38093           improving the library than trying to get it working and keep it
38094           working.
38096 Wed Apr 17 10:39:02 BST 2002  Olly Betts <olly@survex.com>
38098         * Fixed btreetest code to use new names "ord+" and "ord-" for
38099           datafiles; disabled LFSinsertdelete1 test as it's exactly the
38100           same as insertdelete1 (despite the comment above which suggests
38101           it tests files >2G).
38103 Mon Apr 15 17:14:22 BST 2002  Olly Betts <olly@survex.com>
38105         * Fix a few OmDatabase::InternalInterface uses I'd somehow missed.
38107 Mon Apr 15 16:08:20 BST 2002  Olly Betts <olly@survex.com>
38109         * Mark internal classes as @internal for doxygen; removed all uses
38110           of OmDatabase::InternalInterface as it's no longer needed.
38112 Mon Apr 15 15:42:47 BST 2002  Olly Betts <olly@survex.com>
38114         * Updated TODO list.
38116 Mon Apr 15 2002  Sam Liddicott <sam@ananova.com>
38118         * Hacked around bindings and bindings/php to remove some SWIG
38119           workarounds.  SWIG cvs + some new non-committed patches is need still.
38121 Mon Apr 15 12:12:05 BST 2002  Olly Betts <olly@survex.com>
38123         * stemtest: getopt fix.
38125         * stemtest.pl.in: output now: less verbose by default and coloured.
38127 Mon Apr 15 11:18:58 BST 2002  Olly Betts <olly@survex.com>
38129         * Updated HACKING to say that automake 1.5 is required, and note that
38130           automake 1.6.1 is better than 1.6.
38132 Sat Apr 13 20:35:51 2002  James Aylett  <tartarus@users.sourceforge.net>
38134         * Fixed stemtest getopt usage so it works again.
38136 Sat Apr 13 20:20:52 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
38138         * Fixed omtcpsrv getopt usage so it works again.
38140 Fri Apr 12 16:24:06 BST 2002  Olly Betts <olly@survex.com>
38142         * Require automake 1.5.
38144 Fri Apr 12 12:11:57 BST 2002  Olly Betts <olly@survex.com>
38146         * omtcpsrv: Namespace fixes.
38148 Fri Apr 12 12:25:42 BST 2002  Olly Betts <olly@survex.com>
38150         * Fixed everything to use getopt rather than icky handparsing of
38151           options.
38153 Fri Apr 12 11:26:57 BST 2002  Olly Betts <olly@survex.com>
38155         * Removed delve - it's going to be an example program.
38157 Thu Apr 11 18:09:35 BST 2002  Olly Betts <olly@survex.com>
38159         * Command line argument improvements - added FIXMEs where getopt
38160           should be used.
38162 Thu Apr 11 17:01:44 BST 2002  Richard Boulton <richard@tartarus.org>
38164         * Fixes to work with automake 1.6.1.
38165           I recommend using 1.6.1 rather than 1.6, since this fixes many
38166           bugs in 1.6.  I havn't tested with 1.6 recently, but it is likely
38167           to report problems.
38169 Thu Apr 11 17:25:37 BST 2002  Olly Betts <olly@survex.com>
38171         * Use GNU getopt.
38173 Thu Apr 11 15:06:15 BST 2002  Olly Betts <olly@survex.com>
38175         * Updated to recommend automake 1.5, noting problem with automake 1.4
38176           and that we'll probably soon insist on 1.5, and later autoconf 2.50.
38177           Also added notes on recommended and usable GCC versions.
38179 Thu Apr 11 14:23:44 BST 2002  Olly Betts <olly@survex.com>
38181         * Cleaning up build system.
38183 Thu Apr 11 13:18:23 BST 2002  Olly Betts <olly@survex.com>
38185         * Use AndPostList with boolean weights on the RHS instead of
38186           FilterPostList - this appears to fix a bug, but I suspect it's
38187           actually just moving it around.  Will investigate later.
38189 Thu Apr 11 10:11:11 BST 2002  Olly Betts <olly@survex.com>
38191         * Sorted out automake for php4 bindings.
38193 Wed Apr 10 14:44:50 BST 2002  Olly Betts <olly@survex.com>
38195         * Removed a superfluous DEBUGLINE.
38197 Tue Apr  9 19:02:09 BST 2002  Richard Boulton <richard@tartarus.org>
38199         * Fix some DEBUGLINE() macros in the matcher which had
38200           the first parameter missing.
38202 Tue Apr 09 17:50:44 BST 2002  Olly Betts <olly@survex.com>
38204         * Removed stray bit of debug code.
38206 Tue Apr 09 17:05:09 BST 2002  Olly Betts <olly@survex.com>
38208         * More debug tracing added.
38210 Tue Apr 09 10:48:42 BST 2002  Olly Betts <olly@survex.com>
38212         * Disabled pthread support by default.
38214 Sat Apr  6 20:45:21 2002  James Aylett  <tartarus@users.sourceforge.net>
38216         * Reordered some output generation in configure so it won't
38217           complain about directories not existing. (I don't understand
38218           what the problem is, but this does fix it.)
38220 Sat Apr 06 20:27:57 BST 2002  Olly Betts <olly@survex.com>
38222         * Moved a few lingering traces of XML indexer stuff to indexer
38223           subdirectory.
38225 Sat Apr 06 17:37:02 BST 2002  Olly Betts <olly@survex.com>
38227         * Removed -pedantic (read the gcc docs - it's doesn't turn on
38228           useful warnings) and fixed all the remaining compilation
38229           warnings in a non-debug build.
38231 Fri Apr 05 10:21:28 BST 2002  Olly Betts <olly@survex.com>
38233         * Removed --enable-profiling, --enable-purify, and --enable-insure.
38234           They don't do anything which can't be achieved by passing
38235           environment variables and switches to configure (now documented
38236           in HACKING).  Adding a separate switch for every profiling and
38237           code-quality tool out there isn't a sensible approach.
38239 Thu Apr 04 20:37:12 BST 2002  Olly Betts <olly@survex.com>
38241         * Updated .cvsignore files.
38243 Thu Apr 04 20:25:41 BST 2002  Olly Betts <olly@survex.com>
38245         * PTHREAD_CFLAGS was only being used for compiling C, not C++, which
38246           was causing builds to fail unless threading was disabled.  This
38247           problem has been there a long time, but until recently was hidden
38248           by the check for fdatasync erroneously linking in -lrt which pulls
38249           in pthreads anyway (at least this is the situation on Linux).
38251 Thu Apr 04 20:06:00 BST 2002  Olly Betts <olly@survex.com>
38253         * Removed XML indexer stuff from the main xapian library.  All the
38254           removed bits are now in the indexer subdirectory, ready to be
38255           reassembled into a supplementary library.
38257 Thu Apr 04 15:43:43 BST 2002  Olly Betts <olly@survex.com>
38259         * More debug tracing in the matcher.
38261 Thu Apr 04 14:17:10 BST 2002  Olly Betts <olly@survex.com>
38263         * Added debug tracing to most of the matcher.
38265 Thu Mar 28 17:21:16 GMT 2002  Olly Betts <olly@survex.com>
38267         * Give up trying to make internals private or protected in the
38268           header files in include - the consequences are just too ugly, and
38269           it's clear enough that they shouldn't be messed with except by the
38270           library itself.
38272 Wed Mar 27 10:24:26 GMT 2002  Olly Betts <olly@survex.com>
38274         * Don't add "-lrt" to the link line unless it's actually needed for
38275           fdatasync().
38277 Wed Mar 27 10:11:09 GMT 2002  Olly Betts <olly@survex.com>
38279         * Fixed two problems in the matcher which were respectively causing
38280           problems with boolean filters, and with situations where OR or
38281           ANDMAYBE decayed to AND.
38283 Fri Jan 11 18:00:44 GMT 2002  James Aylett  <tartarus@users.sourceforge.net>
38285         * Various build fixes for libxml2: define CHAR as needed,
38286           --enable-validation (off by default), check for and discard
38287           'blank' text/cdata nodes as we encounter them
38289 Fri Jan 11 15:40:50 GMT 2002  Sam Liddicott <sam@ananova.com>
38291         * Added Large File Support in the same way it was added to GNU tar.
38292           (If it's good enough for them...)
38293           This is by means of autoconf/ac_sys_largefile which I'm told is
38294           built in to later versions of autoconf, and may possibly give us
38295           trouble redefining it for those versions...  But we'll see about
38296           that when/if it happens.
38298           It seems to work fine here on some DB's which I had to stop growing
38299           cos they got too big; I'm now past the 2G boundary with no problems
38301           I guess we should still add overflow detection for 2^31 blocks.
38302           Ideas?
38304           I need some help on the btreetest.cc as I haven't yet worked out
38305           what it does; so while I've added a test, it doesn't yet test
38306           what it says it does.  I have changed btreetest.cc so you can
38307           tell it where to dump the test DB
38309 Fri Dec 21 17:48:09 GMT 2001  Olly Betts <olly@survex.com>
38311         * Fixed halflife calculation in OmBiasFunctor.
38313 Fri Dec 21 15:24:58 GMT 2001  Olly Betts <olly@survex.com>
38315         * Added a temporary API to allow use of OmBiasFunctor.
38317 Fri Dec 21 12:58:23 GMT 2001  Olly Betts <olly@survex.com>
38319         * Disable conversion of OR to AND/ANDMAYBE in matcher tree - there's
38320           a bug which sometimes manifests when there's a date filter and a
38321           threshold cutoff in omega, and results in just one match when there
38322           should be more.  I don't believe the bug is actually in OrPostList
38323           but I've been tracking it for 4 days without success and turning off
38324           this optimisation seems to stop it occurring so will have to do for
38325           now.
38327 Thu Dec 20 17:41:04 GMT 2001  Olly Betts <olly@survex.com>
38329         * matcher/multimatch.cc: added more percent_cutoff assertions.
38331 Thu Dec 20 13:41:41 GMT 2001  Olly Betts <olly@survex.com>
38333         * Fixed incorrectly classified debug message; fixed compiler warning;
38334           more comments about matches_* with a percent_cutoff.
38336 Thu Dec 20 13:09:51 GMT 2001  Olly Betts <olly@survex.com>
38338         * Better OmPostListIterator::get_description() (call get_description
38339           on internal->postlist).
38341 Thu Dec 20 12:42:55 GMT 2001  Olly Betts <olly@survex.com>
38343         * Fixed assorted problems with omtcpsrv and co from recent change.
38345 Thu Dec 20 10:41:57 GMT 2001  Richard Boulton <richard@tartarus.org>
38347         * In ./configure --help, correctly report muscat36 backend as
38348           defaulting to off.
38350 Thu Dec 20 10:36:18 GMT 2001  Olly Betts <olly@survex.com>
38352         * Don't delete internal in ~OmWritableDatabase - ~OmDatabase
38353           does that for us (internal was zeroed after delete, so this
38354           was probably harmless)
38356         * Tweaked OmEnquire::get_description() and
38357           OmPostListIterator::get_description() to do less - there's a
38358           debug related bug somewhere and get_description() should be a
38359           non-intrusive method...
38361 Thu Dec 20 10:32:56 GMT 2001  Richard Boulton <richard@tartarus.org>
38363         * Fix a couple of misquoted messages in configure.in.
38365 Tue Dec 18 23:22:00 2001  James Aylett  <tartarus@users.sourceforge.net>
38367         * Use xapian.org where appropriate in documentation references
38369 Tue Dec 18 14:32:32 2001  James Aylett  <tartarus@users.sourceforge.net>
38371         * Use xapian.org not sourceforge for schemas
38373 Mon Dec 17 18:47:08 GMT 2001  Olly Betts <olly@survex.com>
38375         * Cured problems with string('x') caused by overzealous search
38376           and replace on my part.
38378 Mon Dec 17 16:44:31 GMT 2001  Olly Betts <olly@survex.com>
38380         * Improved matches_estimated when a percent_cutoff is in effect.
38382 Sun Dec 16 18:09:28 GMT 2001  Olly Betts <olly@survex.com>
38384         * You can now register a match decider functor by name with an
38385           OmEnquire object.  It's not yet used for anything though.
38387 Sun Dec 16 17:31:08 GMT 2001  Olly Betts <olly@survex.com>
38389         * omtcpsrv: simplified arguments - just list database directories and
38390           they'll be opened with the auto backend.  Removed --im as it didn't
38391           work as advertised and nobody's noticed (as actually implemented it
38392           was useless).
38394 Sat Dec 15 14:10:32 GMT 2001  Olly Betts <olly@survex.com>
38396         * Minor update to todo.xml.
38398 Sat Dec 15 13:43:47 GMT 2001  Olly Betts <olly@survex.com>
38400         * More fettling of OmBiasFunctor stuff - still not ready for use yet...
38402 Tue Dec 11 13:06:08 GMT 2001  Olly Betts <olly@survex.com>
38404         * Don't work out probabilistic weights for boolean bits of the query
38405           (rhs of FILTER and AND_NOT) which fixes incorrect percentage weights
38406           in filtered queries.
38408 Tue Dec 11 12:26:44 GMT 2001  Olly Betts <olly@survex.com>
38410         * Added test singlesubq1 to keep an eye on can_replace_by_single_subq.
38412 Mon Dec 10 16:58:21 GMT 2001  Olly Betts <olly@survex.com>
38414         * can_replace_by_single_subq shouldn't return true for OP_ELITE_SET
38415           since you can't call set_elite_set_size() on an arbitrary subquery.
38417 Thu Dec  6 15:02:05 GMT 2001  Richard Boulton <richard@tartarus.org>
38419         * (omqueryinternal.cc, omtermlistiteratorinternal.h)
38420           Fix some compiler warnings (when compiling with no debug) due
38421           to methods which should return a value but simply contain
38422           "Assert(false);".  Throw an exception in such methods instead
38423           (after the Assert).
38425 Mon Dec 03 11:20:42 GMT 2001  Olly Betts <olly@survex.com>
38427         * New BiasPostList - not yet enabled as it needs more work.
38429 Mon Dec 03 11:16:44 GMT 2001  Olly Betts <olly@survex.com>
38431         * quartzdump: give syntax error if no tables specified.
38433 Thu Nov 29 14:10:43 GMT 2001  Olly Betts <olly@survex.com>
38435         * ExtraWeightPostlist wasn't handling prune correctly.
38437 Thu Nov 22 13:46:59 GMT 2001  Olly Betts <olly@survex.com>
38439         * Fixed segfault when percentage_cutoff emptied the proto-mset.
38441 Thu Nov 22 12:27:49 GMT 2001  Olly Betts <olly@survex.com>
38443         * Enhanced test emptyquery1.
38445 Fri Nov 16 15:32:09 GMT 2001  Olly Betts <olly@survex.com>
38447         * Added OmQuery::is_empty() method.
38449 Thu Nov 15 15:36:07 GMT 2001  Olly Betts <olly@survex.com>
38451         * Updated todo list.
38453 Thu Nov 15 13:03:05 GMT 2001  Olly Betts <olly@survex.com>
38455         * Fixed percent_cutoff problems.
38457 Wed Nov 14 12:05:44 GMT 2001  Olly Betts <olly@survex.com>
38459         * Empty OmQuery() now matches no documents (rather than causing an
38460           exception).
38462 Thu Nov 08 18:23:21 GMT 2001  Olly Betts <olly@survex.com>
38464         * SIGSTKFLT isn't portable, so added #ifdef checks for it.
38466 Wed Nov 07 15:34:29 GMT 2001  Olly Betts <olly@survex.com>
38468         * Fixed 2 GCC 3.0 warnings in muscat36 backend.
38470 Wed Nov 07 14:21:47 GMT 2001  Olly Betts <olly@survex.com>
38472         * Made doc counts returned from percentage cutoff matches more
38473           accurate.
38475 Wed Nov 07 12:30:32 GMT 2001  Olly Betts <olly@survex.com>
38477         * GCC 3.0 fixes.
38479 Tue Nov 06 11:16:42 GMT 2001  Olly Betts <olly@survex.com>
38481         * Matcher now calculates percentages like Omega does (or did as I'm
38482           about to remove that code from Omega), rather than as a percentage
38483           of the theoretical maximum possible weight.  The old way generally
38484           gives disappointingly low values, and by pushing the percentage
38485           code down into the matcher, it can be used to optimise the query.
38487 Tue Nov 06 11:13:06 GMT 2001  Olly Betts <olly@survex.com>
38489         * Quick fix for problems with null OmQuery-s.
38491 Mon Nov 05 15:52:55 GMT 2001  Olly Betts <olly@survex.com>
38493         * Added signal handling to testsuite - if a testcase generates a
38494           signal it is caught and reported, then the testsuite continues
38495           with further testcases.
38497 Wed Oct 31 14:26:59 GMT 2001  Olly Betts <olly@survex.com>
38499         * Removed needless complications in matcher when a weight threshold
38500           has been set.
38502 Tue Oct 30 16:50:46 GMT 2001  Olly Betts <olly@survex.com>
38504         * Removed superfluous lines from configure.in; fixed warning from
38505           automake 1.5.
38507 Mon Oct 29 11:54:36 GMT 2001  Olly Betts <olly@survex.com>
38509         * Changed matcher to form proto-mset using a min-heap (as described
38510           in "Managing Gigabytes", 2nd ed., pp 211-213).  Compared to the
38511           previous "nth-element" approach, this uses about half the memory,
38512           allows the min-weight based matcher optimisations to work sooner,
38513           and should be inherently faster (not yet benchmarked though).  The
38514           code's slightly simpler too.
38516 Mon Oct 29 11:53:38 GMT 2001  Olly Betts <olly@survex.com>
38518         * Fixed remote backend to pass match_cutoff setting across.
38520 Fri Oct 26 13:43:08 BST 2001  Olly Betts <olly@survex.com>
38522         * Reserve size needed for mset vector.
38524 Thu Oct 25 18:00:54 BST 2001  Olly Betts <olly@survex.com>
38526         * Fixed a couple of stray references to the old sleepycat backend.
38528 Tue Oct 23 18:19:32 BST 2001  Olly Betts <olly@survex.com>
38530         * More cleaning up of MultiMatch.
38532 Tue Oct 23 16:14:27 BST 2001  Olly Betts <olly@survex.com>
38534         * Removed RemotePostList - it was an experimental idea which proved
38535           to be too slow even on a fast network.  Cleaned up code where hooks
38536           were bodged in for it.
38538 Tue Oct 23 13:27:12 2001  James Aylett  <tartarus@users.sourceforge.net>
38540         * Added documentation of the test system (albeit brief). Also
38541           mentioned the autotools book in HACKING.
38543 Tue Oct 23 12:07:59 BST 2001  Olly Betts <olly@survex.com>
38545         * Updated .cvsignore files.
38547 Tue Oct 23 11:29:47 BST 2001  Olly Betts <olly@survex.com>
38549         * Code tidying while investigating sporadic fails from quartztest.
38551 Mon Oct 22 17:42:30 BST 2001  Olly Betts <olly@survex.com>
38553         * Minor fettles to quartztest: fixed warnings, whitespace tidying,
38554           use mkdir(...) rather than system("mkdir ...")
38556 Mon Oct 22 16:41:12 2001  James Aylett  <tartarus@users.sourceforge.net>
38558         * Renamed project to Xapian.
38560 Mon Oct 22 14:22:00 BST 2001  Olly Betts <olly@survex.com>
38562         * Fixed non-ISO C++ code so Xapian will compile under GCC 3.0
38563           (and also RedHat's "GCC 2.96").
38565 Mon Oct 22 11:21:45 2001  James Aylett  <tartarus@users.sourceforge.net>
38567         * Altered omseek-config and the AC m4 macro to make uninst
38568           executables link to the right version of the library
38570 Mon Oct 22 10:38:20 2001  James Aylett  <tartarus@users.sourceforge.net>
38572         * Minor fixes to enable build (and test) under Solaris.
38574 Fri Jun 22 13:24:59 2001  Sam Liddicott <sam@ananova.com>
38576         * Added some explicit type casts in xmlindexer and quartz backend
38577           to help gcc2.96 compile.
38579 Thu Jun 21 11:05:31 2001  James Aylett  <tartarus@users.sourceforge.net>
38581         * HACKING updated to (a) remove inaccurate statements about
38582           copyright assignment, and (b) talk about developer write
38583           access to CVS.
38585 Mon Jun 11 13:24:43 2001  James Aylett  <tartarus@users.sourceforge.net>
38587         * pthread support detected using an automake macro. Should
38588           be more portable as a result.
38590         * We need GNU make: buildall now tries to find it.
38592 Mon Jun 11 12:07:00 2001  Hein Ragas <hragas@users.sourceforge.net>
38594         * Modified QuartzWritableDatabase::do_add_document and
38595           QuartzWritableDatabase::do_replace_document to leave the PositionList
38596           empty for a term with no positions associated with it.
38598 Mon May 29 12:17:00 2001  Hein Ragas <hragas@users.sourceforge.net>
38600         * Modified QuartzPostList::add_entry to allow for adding of entries
38601           in the middle of the postlist, not only at the end.
38603 Mon May 28 12:00:00 2001  Hein Ragas <hragas@users.sourceforge.net>
38605         * Fixed a bug in replace_document for Quartz, added a test to
38606           ensure proper working of the fix.
38608 Fri Apr 27 15:16:10 2001  James Aylett  <tartarus@users.sourceforge.net>
38610         * Project name change to Omseek.
38612 Wed Apr 11 09:06:37 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38614         * Implemented deleting of items from postlists, and added some
38615           tests to check that it works properly.
38617         * Fixed a potential memory leak in QuartzPostList if an exception
38618           was thrown from the constructor.
38620         * BackendManager now sets the quartz_logfile setting, to make
38621           the logs available from the testsuite.
38623         * Added mention of quartz_logfile to docs/omsettings
38625         * Removed a bad assert from InMemoryDatabase::get_doclength()
38627 Mon Apr  9 21:48:18 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38629         * Added #include <cmath> to testutils.cc
38631 Fri Mar 30 17:37:24 BST 2001 Olly Betts
38633         * Added extra/.cvsignore
38635 Fri Mar 30 17:22:13 BST 2001 Olly Betts
38637         * Disabled allocation checking of new[] and delete[] since some STL
38638           implementations use them which leads to leaks being reported where
38639           none exist.  This is addressable longer term...
38641 Thu Mar 29 19:05:46 BST 2001  Richard Boulton <richard.boulton@omsee.com>
38643         * Add "extra" directory to om source tree, to hold extra libraries
38644           for use with omsee, which aren't part of the core.
38646         * Put a query parser into "extra".  This is roughly the parser
38647           from omega.  Needs some work: in particular, it needs to be
38648           made reentrant.
38650         * Added extra/ directory to top level Makefile.am and configure.in.
38651           Added AC_PROG_YACC to Makefile.am
38653         * Add includes of required header files to omquery.h.
38655 Wed Mar 28 17:15:22 BST 2001  Richard Boulton <richard.boulton@omsee.com>
38657         * Modifications to OmQuery.  Remove the isbool flag: there is
38658           no longer any need for the concept of a "pure boolean query".
38659           The same effect as was obtained by setting isbool can be
38660           obtained by setting the match_weighting_scheme parameter to
38661           bool.
38663         * Also, undefined queries may no longer be used when
38664           building up composite queries; the correct behaviour for this
38665           is hard to define and implement and harder to document, and
38666           removing this removes lots of special case code.
38668         * Updated network query passing code.
38670         * Remove special cases for bool weighting in localmatch and irweight.
38672         * Updated omsettings docs.  Updated comments in omsetting.h.
38674         * Updated todo.xml
38676         * Incremented network protocol version.
38678         * Added test_emptyop1, which checks what happens when an attempt is
38679           made to use an empty list of subqueries to build up a query, and
38680           then use the query.
38682         * Remove test_boolsubq1: no such thing as a boolean query now, so
38683           no need to test what happens when one is used.
38685         * Updated testsuite to use "match_weighting_scheme" setting, rather
38686           than calling OmQuery::set_bool().
38688 Wed Mar 28 15:05:46 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38690         * Fixes to InMemoryDatabase:
38691           + do_open_post_list returns an EmptyPostList rather than an
38692             assertion error if the term doesn't exist
38693           + Fixed doccount(), which wasn't decrementing on delete_doc()
38694           + Remove terms from the database when they have no more postings.
38695           + Implement collection frequencies, and run collfreq tests for
38696             inmemory.
38698 Wed Mar 28 14:24:38 BST 2001  Richard Boulton <richard.boulton@omsee.com>
38700         * Set elite set size to max(10, sqrt(number of subqueries)) by
38701           default.  This is rather more useful than the old default of 0.
38703 Wed Mar 28 10:25:35 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38705         * QuartzDatabase now implements replace_document(), and
38706           delete_document() now removes keys/attributes as well.
38707           However, postlist entries are not yet correctly removed,
38708           so this will cause problems.
38710         * Added a test for deleting/replacing documents, which passes.
38712 Tue Mar 27 17:31:58 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38714         * QuartzAttributes now has a method to delete a document's
38715           attributes, and QuartzRecordManager has a replace_ method.
38716           (But the code which uses these isn't in this commit).
38718 Thu Mar 22 15:58:08 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38720         * Change definition of OmQuery::is_defined(), so that elite set
38721           queries are undefined until a size is specified for the set.
38723 Wed Mar 21 14:29:04 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38725         * Implemented delete_document and replace_document in inmemory
38726           database.
38728 Wed Mar 21 12:39:13 GMT 2001 Olly Betts
38730         * Tweak to docs/quickstart.html.
38732 Wed Mar 21 02:50:19 GMT 2001 Olly Betts
38734         * Entirely removed sleepcat backend and all references to it.
38736         * Disable muscat36 backend by default.
38738 Tue Mar 20 18:47:12 GMT 2001 Olly Betts
38740         * open_document() now takes a lazy flag - if not set we need to check
38741           that the docid given actually exists.
38743         * heavy_duty flag now a bool instead of an int.
38745 Mon Mar 19 19:16:34 GMT 2001 Olly Betts
38747         * Added test getdoc1 to check exceptions are thrown for out-of-range
38748           docids (currently they aren't for quartz and muscat36 backends).
38750 Mon Mar 19 17:17:31 GMT 2001 Olly Betts
38752         * New simpler implementation of leak detection in testsuite.
38753           Currently doesn't support malloc/calloc/realloc/free.
38755 Mon Mar 19 16:46:16 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38757         * Further small modification to omsee-config: will now look in
38758           .libs subdirectories, too.
38760 Mon Mar 19 15:57:18 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38762         * Update omsee-config to work when a prefix is specified that
38763           points directly to the directory with the library, rather than
38764           expecting the library to be in a subdir "libs/".  (libs/ is
38765           still used if it exists).
38767         * Update omsee.m4, to use omsee-config even when using an
38768           uninstalled version of omsee.  This in turn fixes problems using
38769           uninstalled versions of omsee with STLport.
38771 Fri Mar 16 18:14:52 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38773         * Updated licenses, to include year 2001.
38775 Fri Mar 16 15:40:49 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38777         * Fix up small bug in quartztest causing it to fail for lack of an
38778           expected exception.  Initialise values in quartz_positionlist.cc
38779           when position list is not present.
38781 Thu Mar 15 17:40:38 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38783         * Make timeout absolute, rather than cumulative, when fetching
38784           multiple documents from database: if two nodes fail, the total
38785           timeout should still be that specified, not twice it.
38787         * Make the timeout set by SocketClient::set_query() get reset
38788           correctly if an exception happens (which used to prevent
38789           SocketClient::get_mset() ever getting called).
38791 Thu Mar 15 17:06:51 GMT 2001 Olly Betts
38793         * Oops, checked in too much - backing out the wrong stuff.
38795 Thu Mar 15 16:30:14 GMT 2001 Olly Betts
38797         * Include autoconf/definedir.m4 in tarball.
38799 Thu Mar 15 16:06:02 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38801         * Updated network protocol number to reflect change adding
38802           OP_ELITE_SET.
38804 Thu Mar 15 15:31:35 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38806         * QuartzPositionList should no longer complain if positional
38807           information isn't available for a particular term / document
38808           combination.
38810         * Updated todo.
38812 Thu Mar 15 13:55:53 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38814         * Removed OmDocument::set_wdf() and OmDocument::add_term().
38815           Replaced with OmDocument::add_term_nopos(), which adds a term
38816           without specifying positional information, taking an optional
38817           wdfinc parameter.  Updated testsuite correspondingly.
38819 Thu Mar 15 13:14:10 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38821         * Update TODO
38823 Wed Mar 14 17:51:40 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38825         * Added new operator OP_ELITE_SET, which replaces match_max_or_terms
38826           option.  Can now specify exactly which terms to apply max_or_terms
38827           to.  max_or_terms is obsolete: an error will be thrown if an
38828           attempt is made to use it.
38830 Wed Mar 14 15:56:20 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38832         * Added test for and implementation of multiple XOR queries.
38834         * Fix small bugs with get_termfreq_est() for xor and andnot
38835           postlists.
38837 Mon Mar  5 16:08:01 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38839         * Catch exceptions within the loop in SocketServer - exceptions
38840           should normally not kill the server.  This means that that a
38841           client still works after eg an OmDocNotFoundError, which was
38842           causing problems before.
38844 Fri Mar  2 18:15:47 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38846         * Add a new query operator, OP_WEIGHT_CUTOFF, which returns only
38847           those documents from a query which have a weight greater than a
38848           specified cutoff value.  Also added OP_PERCENT_CUTOFF, but this
38849           is not yet implemented.
38851         * Added test of new cutoff function, cutoff2.
38853         * Updated network protocol to pass new queries.  Increased protocol
38854           version number (to 10).
38856         * Added set_cutoff() function to OmQuery, to set cutoff parameter.
38858         * Updated TODO.
38860         * Remove unused member "PostList * postlist" of LocalSubMatch.
38862 Thu Mar  1 12:04:53 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38864         * Updates to HACKING.
38866 Wed Feb 28 18:42:47 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38868         * Fixes to neaten up configure output, and to test for the Perl
38869           Text::Format module, thanks to James Aylett (patch slightly
38870           modified, so if it doesn't work it's probably my fault).
38872         * configure.in checks for presence of ftime() and gettimeofday()
38874         * Added OmTime, a class to deal with times to an accuracy of
38875           microseconds, or whatever the best accuracy the system supports
38876           is.
38878         * Use OmTime in network code instead of time(NULL).
38880 Wed Feb 28 14:23:11 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38882         * Merge common code from OmSocketLineBuf::wait_for_data() and
38883           OmSocketLineBuf::do_readline() into
38884           OmSocketLineBuf::attempt_to_read(), and thus fix bug in
38885           wait_for_data() when 0 bytes returned from read().
38887 Tue Feb 27 18:40:33 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38889         * Fixes to remote matcher code to cope better with failure of
38890           submatchers:
38891           - Timeout for all submatches now correctly start at same time.
38893         * Added more extensive testing of above code, involving adding
38894           new parameters to inmemory to cause abort()s at various stages of
38895           the match.
38897         * Remove obsolete (and unused) method
38898           SocketServer::read_global_stats()
38900         * Errors are now generated from strings by using omerrortypes.h with
38901           suitable #defines before including it.  Updated todo accordingly.
38903         * Extend scope of try{} clause in socketserver, so that
38904           SocketServerFinished exception never escapes.
38906         * Default timeout in progserver increased to 30000.
38908         * Default timeout in tcpserver increased to 15000.
38910 Mon Feb 26 23:51:23 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38912         * Split query generation into stages: make new query, add subqueries,
38913           then finalise.  Add private methods to OmQuery reflecting this, and
38914           convert constructors into template methods, allowing any iterator
38915           to be used for constructing queries.  Removed reference to
38916           <vector> from omquery.h
38918         * Add omqueryinternal.cc, containing implementation of query
38919           internals. (surprise!)
38921         * OmQuery::Internal now has some helper functions to determine the
38922           properties of each particular query.  These should be converted
38923           into a lookup table, and the remaining hard-coded properties (for
38924           AND_MAYBE, AND_NOT and FILTER) factored out.
38926         * window property removed from constructor.  This can now be set by a
38927           separate call, to "OmQuery::set_window()"
38929         * Added a deleter_vector class, to store subquery pointers in a more
38930           exception-safe way.
38932         * Represent undefined queries by the new OP_UNDEF operation, rather
38933           than a dedicated flag - cleaned up some logic.
38935         * Some modifications to XOR handling: should now behave like OR and
38936           AND - doesn't need to be binary.  (*untested*)
38938         * Fixes to serialisation code in socketcommon.cc to work with new
38939           OmQuery::Internals - this should really be done in
38940           OmQuery::Internal.
38942         * One tiny fix in tcpclient.cc - an &fdset was missed for exception
38943           conditions in a select() call.
38945         * Testsuite modified and expanded to check changes to OmQuery.
38947 Mon Feb 26 18:20:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38949         * Fixed some compiler warnings reported by James Aylett.
38951 Mon Feb 26 14:27:09 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38953         * Avoid waiting for a timeout when closing a SocketClient.
38955 Fri Feb 23 14:38:09 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38957         * Updated todo.xml
38959 Thu Feb 22 18:14:41 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38961         * OmRegexFilterNode has an output for non-matching strings as
38962           well as matching.  "out" output renamed to "matching".
38964 Thu Feb 22 16:56:33 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38966         * Fixed a bug in the fetch() bits: requesting documents at the
38967           same time from different OmMSet instances could cause a
38968           document to disappear from the cache at the wrong moment.
38970 Thu Feb 22 15:39:49 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38972         * Updated todo.
38974 Thu Feb 22 12:14:12 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38976         * Some small changes in quartz to improve exception safety and
38977           error checking.
38979         * Remove unwanted OmExpandWeight::get_expand_k() method.
38981 Wed Feb 21 19:02:44 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38983         * Overhauled the OmMSet::fetch() etc. methods.  Documents are
38984           requested when fetch() is called, but are only fetched (all
38985           at once) when the first get_document() is called.
38987 Wed Feb 21 19:30:20 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38989         * Add an errorhandler member to MultiMatch, and remove it from
38990           various calls which used to pass it about.
38992         * Add an EmptyMatch object, which always returns an emptypostlist.
38994         * Implement errorhandlers at start of query for initially down
38995           nodes.  Improve test for errorhandlers to cover many more cases.
38997         * Add many debug messages to error handling code.
38999 Wed Feb 21 14:33:50 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39001         * Use a deque<> directly instead of a queue, due to conflict
39002           with Solaris headers.
39004         * Split the collect_doc loop into a separate function
39006         * SocketClient should be more robust against request_doc() being
39007           used without collect_doc().
39009 Tue Feb 20 18:01:13 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39011         * SocketClient implements a queue/cache system which means that
39012           collect_doc() doesn't need to be called in the same order as
39013           request_doc().
39015 Mon Feb 19 15:43:49 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39017         * Converted btree code to use new/delete instead of [mc]alloc/free.
39019 Mon Feb 19 13:52:23 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39021         * Added new test collapsekey2 designed to work with muscat36
39022           databases, which have different key handling.  Added two new
39023           categories of tests to cope with this.
39025         * Adjusted BackendManager's key generation, and updated
39026           test_specialterms1() accordingly.
39028 Fri Feb 16 17:26:59 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39030         * Implemented a test for keep-alives
39032         * Added "-tNNNN" option to omprogsrv to pass a timeout value in.
39034         * Added get_network_database() in apitest to set the timeout.
39036 Fri Feb 16 16:13:47 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39038         * Incremented the remote protocol version, since a new message
39039           type has been added.
39041 Fri Feb 16 15:55:31 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39043         * Added an OmDatabase keep_alive() method to gently prod any
39044           remote databases.  Applications can use it to avoid the remote
39045           servers timing out between queries.  Not properly tested yet...
39047 Thu Feb 15 19:05:24 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39049         * The remote server now supports a separate timeout used while
39050           idle, rather than actually servicing a request from the client.
39051           Options --idle-timeout and --active-timeout added to omtcpsrv,
39052           and --timeout sets both timeouts.
39054         * Added a documentation comment or two.
39056 Wed Feb 14 18:43:00 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39058         * In Muscat3.6 backends, don't read the key from the keyfile unless
39059           keyno is 0.
39061 Tue Feb 13 13:57:34 GMT 2001 Andy MacFarlane <andym@omsee.com>
39063         * Added parameter expand_k in omsettings in order to change
39064           value of weighting in expand process.
39066 Tue Feb 13 13:25:45 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39068         * Network timeouts now apply to write() operations as well
39069           as read().
39071         * SocketLineBuf::do_writeline() now correctly deals with EAGAIN.
39073         * SocketServer has new method writeline() which handles write
39074           access to the OmLineBuf.
39076 Mon Feb 12 12:35:41 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39078         * Make OmPositionListIterators and any other appropriate iterators
39079           (postlist, termlist) have a default constructor allowing them to
39080           be declared uninitialised.
39082 Mon Feb 12 10:51:41 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39084         * Updated todo.xml
39086 Thu Feb  8 17:59:44 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39088         * Moved omnodepad.h from include/om to indexer/indexgraph/
39090         * Updated todo.xml
39092 Thu Feb  8 17:35:45 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39094         * Updated todo.xml
39096 Thu Feb  8 17:00:02 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39098         * Quartz now has a metafile which for now has a magic string
39099           and a version number.
39101         * sys_open_to_read() and delete_file() exported from btree.cc.
39102           The latter was renamed to sys_unlink_if_exists().
39104         * Include btree_types.h from btree_util.h
39106 Wed Feb  7 17:33:00 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39108         * Fix to InMemory databases: terms can be added even if they
39109           don't have any positions.  (Was causing adddoc2 to fail).
39111 Tue Feb  6 18:06:13 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39113         * Rename OmMSet::fetch_items() to fetch().  Add an overloaded
39114           fetch() method taking a single iterator, to fetch a single item.
39116         * Fix some documentation comments.
39118 Mon Feb  5 19:16:45 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39120         * Update TODO
39122 Mon Feb  5 19:12:39 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39124         * Test behaviour of OmDocument methods add_term(), set_wdf(),
39125           remove_posting() and remove_term().  Fails for inmemory databases.
39127 Mon Feb  5 17:46:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39129         * Modified the behaviour of timeouts during a match.  Internally,
39130           an absolute timeout time is set from start_match().  Now remote
39131           nodes should timeout at NOW + remote_timeout, rather than
39132           waiting remote_timeout milliseconds for each read().  Needs
39133           some more testing.
39135 Mon Feb  5 17:21:52 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39137         * Fix a missing #include in socketcommon.h
39139 Mon Feb  5 17:15:46 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39141         * Sort generated todo lists.
39143 Fri Feb  2 17:44:54 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39145         * Add an OmDocument::add_term() method.
39147         * Remove an unwanted check that wdf's are greater than 0: wdf of 0
39148           _is_ allowed.
39150 Fri Feb  2 15:04:08 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39152         * Hopefully, a fix for segfaults/assertions when network errors
39153           happen halfway through a match, when handled by OmErrorHandler
39154           objects: give the place-holder EmptyTermLists weighting objects.
39156 Thu Feb  1 19:03:10 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39158         * Fixes to OmDocument interface: add parameters specifying the
39159           changes to be made to the wdf to add_posting and remove_posting,
39160           properly implement remove_posting and remove_term, including
39161           throwing of exceptions, and add a set_wdf() method to set the wdf
39162           to an absolute value.  Corresponding modifications to
39163           OmDocumentTerm.
39165         * Fix commented out errorhandler code in multimatch.cc, so it still
39166           compiles.
39168         * Add a check to avoid division by zero in bm25weight.cc
39170 Thu Feb  1 15:59:30 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39172         * Add a missed #include to omqueryinternal.h
39174 Thu Feb  1 14:44:04 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39176         * Add some error handler code, with a "#if 0"ed out comment,
39177           to multimatch.cc
39179 Wed Jan 31 15:45:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39181         * Remote servers should close down more gracefully when the
39182           client closes down in the middle of a request.
39184 Tue Jan 30 16:52:05 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39186         * Removed unneeded #includes of STL headers from API headers.
39188         * All #includes of files which are not installed use "" rather than
39189           <>.  This means all #includes of OM files except for those which
39190           are in example programs (and hence might be compiled against the
39191           installed library).  "" search paths are a superset of <> search
39192           paths: hence this should ensure that the om headers work however
39193           they are used.
39195         * Moved supplied OmExpandDecider subclasses into
39196           include/om/omexpanddecider.h
39198         * Remove om_termname_list from API: not used except by code which
39199           displays it, and in testsuite.
39201 Tue Jan 30 12:45:22 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39203         * Removed #include <vector> from omstem.h
39205 Tue Jan 30 11:09:29 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39207         * OmStem::get_available_languages() now returns a string
39208           rather than a vector.  Languages are space-separated.
39209           Updated apitest.
39211         * Added definition of RTLD_DEFAULT to internaltest.cc
39213 Mon Jan 29 16:11:15 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39215         * OmIndexerMessage's copy-on-write slightly more careful.
39217         * Improved debugging in OmIndexerNode
39219         * Fixed a bug in the termlistadd node - it tried to append to a
39220           non-vector.
39222 Fri Jan 26 16:21:09 GMT 2001 Olly Betts
39224         * indexerxml.cc: Removed some dead code.
39226 Fri Jan 26 16:11:13 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39228         * Added omindexerdescinternal.h to the Makefile
39230 Fri Jan 26 15:50:32 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39232         * Move OmQuery definition into a separate header file.
39234 Fri Jan 26 15:46:42 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39236         * Move OmQuery::OP_LEAF out of public visibility, by taking it out
39237           of the enum, making it a static const member of OmQuery::Internal,
39238           and introducing an OmQuery::Internal::op_t to store query
39239           operators in internally.  We lose the ability for the compiler to
39240           warn us if we forget to check for a particular operator in a
39241           switch statement, but this can't really be avoided.
39243 Fri Jan 26 13:49:33 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39245         * Added get_output_{node,pad} to OmIndexerDesc
39247         * Implemented and testes OmNodeInstanceIterator
39249         * Implemented OmIndexerBuilder::build_from_desc, which somehow
39250           hadn't been.  indextest now uses it.
39252 Thu Jan 25 18:47:08 GMT 2001 Olly Betts
39254         * Fixed various .cvsignore files (omus -> omsee, and
39255           bindings/java/.cvsignore which seemed to have been copied from
39256           the top level one at some point).
39258         * Fixed bug in OrPostList when used in a pure boolean context
39259           (uninitialised variables).
39261         * tests/internaltest.cc: removed unused reference to getopt.h.
39263         * tests/stemtest.pl.in: removed lots of bogus semicolons after
39264           closing braces.
39266 Thu Jan 25 17:53:08 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39268         * Turn debugging messages (OM_DEBUG_TYPES) off by default.
39270         * Add todo items for release to pages generated for website.
39272 Thu Jan 25 15:11:14 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39274         * Add a couple of documentation comments: we need many more of
39275           these.  No method, and certainly no class, in the API should be
39276           without an explanatory comment (not least so that they're
39277           accessible from the doxygen browser).
39279 Thu Jan 25 14:51:55 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39281         * Hide the internals of OmIndexerDesc, and adding member functions
39282           to do all the necessary operations (not all yet implemented).
39284         * Indexer internals mostly deal with OmIndexerDesc::Internal
39286         * Removed '#include <vector>' from omindexerdesc.h
39288 Thu Jan 25 13:45:49 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39290         * When setting up an RSet, allow documents to be referenced by
39291           OmMSetIterator, for convenience.
39293         * Allow OmMSetIterators and OmESetIterators to be created without
39294           initialising, also for convenience.
39296         * Include CFLAGS for STLPORT in the flags produced by omsee-config.
39298         * Change several more missed "omus"s to omsee.
39300 Thu Jan 25 13:50:06 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39302         * Changed a mention of libomus in netprogs/Makefile.am to libomsee
39304 Thu Jan 25 12:33:46 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39306         * Build only the API docs when making dist / install.  Full source
39307           docs only get built if explicitly asked for.
39309 Thu Jan 25 11:36:39 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39311         * Project name changed to Omsee.
39313           Ramifications from a technical viewpoint are:
39315           - library name changed from libomus.* to libomsee.*
39316           - libomus-config renamed to omsee-config
39317           - Autoconf macro file libomus.m4 renamed to omsee.m4,
39318             macro name OM_PATH_LIBOMUS changed to OM_PATH_OMSEE
39319             and macro now defines OMSEE_CFLAGS and OMSEE_LIBS rather
39320             than LIBOMUS_CFLAGS and LIBOMUS_LIBS.  configure arguments
39321             changed name, also.
39323 Wed Jan 24 15:57:10 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39325         * Improve test of OmMSetIterators equality comparisons.
39327         * Update TODO
39329 Wed Jan 24 15:11:11 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39331         * Renamed OmNodeConnection to OmNodePad.  The old name was
39332           confusing.
39334         * Added OmPadIterator, and OmNodeDescriptor::{in,out}puts_{begin,end}.
39335           Also implemented OmNodeDescriptor::get_type()
39337         * Added output function for OmPadIterator
39339         * Added test for OmPadIterators
39341 Tue Jan 23 19:01:29 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39343         * Remove OmBatchEnquire from system: it may return at a later date,
39344           but for now it is simply out of date and a maintenance liability,
39345           and gives no significant advantage.  Code now exists in
39346           ombatchenquire.h in CVS, but is not part of build process.
39348         * Make OmEnquire and OmMSet have reference counted internals: this
39349           introduces a further layer of indirection, but tidies up things
39350           greatly.
39352         * Remove get_docs() and get_doc() methods from OmEnquire.
39353           get_doc(docid) is catered for by OmDatabase::get_document(docid).
39354           Added OmMSetIterator::get_document() to replace get_doc on a
39355           MSetIterator.  Added OmMSet::fetch_items() to replace get_docs():
39356           it prefetches the documents (or just those specified by some
39357           MSetIterators into a cache in the Mset).
39359         * OmMSet internals now have a reference to the creating OmEnquire
39360           object: this is set up after the mset returns from the matcher.
39361           If the reference is null, the Mset was created standalone, and
39362           get_doc methods will fail.
39364         * OmMSetIterators now have a reference to the MSet, instead of a
39365           percent_factor stored.  This allows the percent_factor to be
39366           lazily calculated, and also allows get_doc to work.
39368         * Add get_rank() method to OmMSetIterators.
39370         * Improve introspection on OmDocument, and fix a bug with assignment
39371           of OmDocument (wasn't assigning most of the internals).
39373         * Add a missing std:: on a string in omstopwordnode.
39375         * Fixed several documentation comments.
39377         * Add some more debugging to quartz.
39379         * Update TODO.
39381         * Add test_fetchdocs1 to apitest.  Disable test_batchquery1.
39383         * Remove sign comparison error in VectorTermList.
39385 Tue Jan 23 16:24:04 GMT 2001 Olly Betts
39387         * No longer compile with -ansi under gcc - it causes problems by
39388           preventing Linux system headers defining various functions we need.
39390         * testsuite/testsuite.cc: when reporting exceptions, display
39391           exception's errno value if set.
39393 Tue Jan 23 15:13:58 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39395         * Killed OmIndexerBuilder::NodeType.  Now use OmNodeDescriptor
39396           in its place, getting rid of another vector usage in the API.
39398         * OmNodeDescriptor adjusted for its new role: internals are
39399           refcounted, and some query as well as setting functions.
39401         * Cast the fourth argument to getsockopt() to void *.  On Solaris
39402           that argument is char *.
39404 Tue Jan 23 11:24:13 GMT 2001 Olly Betts
39406         * Tiny tweak to da_document.cc.
39408 Fri Jan 19 18:36:15 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39410         * Removed get/set vector methods from OmSettings
39412         * Remote/prog arguments now passed in a string separated be spaces,
39413           not a vector.
39415         * split_words() moved from netutils.h to utils.{h,cc}
39417         * Some unnecessary #include <vector> lines removed from API headers
39419         * Removed get_config_vector() from OmIndexerNode
39421         * OmConstantNode no longer handles vector values, and
39422           OmStopWordNode and OmSelectItemsNode use space-separated
39423           values instead.
39425 Thu Jan 18 17:31:55 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39427         * Removed mentions of std::vector from OmIndexerMessage, and
39428           updated the relevant bits.
39430         * Fixed a bug with the copy-on-write parts of OmIndexerMessage.
39432 Thu Jan 18 17:09:43 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39434         * Fix to btreetest.cc: shouldn't fail if test data files are not
39435           available.
39437         * Fix to multimatch.cc: clamp hits values to number of documents
39438           matched after collapsing and match functors, rather than before.
39440 Thu Jan 18 14:13:21 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39442         * Fix error messages thrown by quartz when a database doesn't exist /
39443           already exists and isn't to be overwritten.
39445         * Make quartz clean up an old database directory, if
39446           database_allow_overwrite is specified, so that old base files don't
39447           confuse things.
39449 Wed Jan 17 18:18:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39451         * Added all used toplevel directories to DIST_SUBDIRS
39453 Wed Jan 17 18:13:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39455         * Martin committed changes to btree.cc which should fix some random
39456           problems experienced with quartz.
39458         * Added in a test framework for the btree code, which exhibited the
39459           bug fixed by martin until updating to his fixed version.
39461 Wed Jan 17 16:10:02 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39463         * Moved the socklen_t definition so that tcpclient.cc could see
39464           it.
39466 Tue Jan 16 20:35:18 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39468         * Fix creation of quartz databases in backendmanager: all tests should
39469           now pass.
39471 Tue Jan 16 20:28:46 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39473         * Fix quartztest so that the tables / databases get created.
39474           Implement new test "create1" to check that creation of databases
39475           works as specified.
39477         * Fix test for whether we are allowed to overwrite a database.
39479         * Implement much better logging from quartz when making new databases.
39481         * Clean up an error message from btree.cc
39483 Tue Jan 16 19:24:49 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39485         * Don't display messages about allocation failures in the first
39486           iteration: if the failures go away when repeating, we're not
39487           interested.
39489 Tue Jan 16 18:28:03 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39491         * Add two new OmSettings, for use when opening databases:
39492           database_create and database_allow_overwrite.  The idea is that
39493           databases will only be created if database_create is specified,
39494           and that when they are being created an exception will be thrown
39495           if there's an existing database unless database_allow_overwrite
39496           is specified.
39498         * Implemented database_create and database_allow_overwrite for
39499           Quartz, which is the only relevant type for now.  Note that this
39500           breaks the testsuite, quite badly.
39502         * Add OmDatabaseCreateError, which is thrown when creating a database
39503           fails.
39505 Tue Jan 16 17:08:47 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39507         * Fixed a typo in -ldl detection
39509 Tue Jan 16 15:15:30 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39511         * Remove OmNeedRecoveryError, and quartz's quartz_perform_recovery
39512           parameter.  Quartz now always performs recovery if needed: there
39513           is no need for this added complication.
39515         * Update TODO
39517 Tue Jan 16 14:25:03 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39519         * Changed references to SIGCLD to SIGCHLD as it's more portable.
39521 Tue Jan 16 14:02:34 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39523         * Added check for whether -ldl is necessary.
39525 Tue Jan 16 11:51:25 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39527         * Added compatibility bits for early libxml1 versions.
39529 Mon Jan 15 18:18:01 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39531         * Removed use of hstrerror, which isn't portable.
39533 Mon Jan 15 18:02:42 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39535         * Fix assertion which was the wrong way round in multimatch.cc
39537 Mon Jan 15 17:46:13 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39539         * Fix initialisation of Btree_base::sequential when creating database.
39541 Mon Jan 15 15:43:46 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39543         * Renamed some uses of XML node structure for libxml2 compatibility.
39545 Mon Jan 15 15:35:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39547         * Add some fixes to sequential access to btrees from Martin.
39549 Mon Jan 15 12:23:02 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39551         * Set matches_* to the known value of the number of hits if we have
39552           been unable to return as many hits as were requested, and therefore
39553           know the exact number.
39555         * Update test_matches1() to check this works correctly.  Passes.
39557 Fri Jan 12 17:45:27 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39559         * Implement get_doclength() for QuartzDatabase
39561         * Remove unused parameter from QuartzRecordManager::add_record()
39563 Fri Jan 12 17:14:16 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39565         * Fixed MultiAllTermsList, which had stopped working.
39567 Fri Jan 12 15:32:34 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39569         * Add test to apitest (postlist6) that doclengths got from postlists
39570           are the same as those from databases.  Fails for Quartz for the
39571           moment.
39573         * Add test to quartztest (disktable3) to try and bring out a bug in
39574           adding to tables.
39576 Fri Jan 12 15:20:09 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39578         * Fix STLport macro so that it will accept an STLport installation
39579           with foo/include/stlport and foo/lib instead of foo/stlport and
39580           foo/lib.
39582 Fri Jan 12 14:04:37 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39584         * Fixed buglet in configure.in which produced a bogus warning
39585           about regex libraries.
39587         * Added an AC_MSG_RESULT corresponding to an AC_MSG_CHECKING
39588           for the libxml flags
39590 Fri Jan 12 13:18:07 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39592         * Fixed skip_to() in QuartzAllTermsList
39594 Fri Jan 12 12:52:57 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39596         * Turn debugging off in btree.cc: accidentally committed a version
39597           with lots of verbose debugging on.
39599 Fri Jan 12 11:16:17 GMT 2001 Olly Betts
39601         * glibc 2.2 needs `#define _GNU_SOURCE' to give us RTLD_NEXT.
39603         * C++ comments changed to C comments in malloccheck.c.
39605 Thu Jan 11 16:42:07 GMT 2001 Olly Betts
39607         * Removed unnecessary `#include "alltermslist.h"' from
39608           d[ab]_database.h.
39610 Wed Jan 10 14:28:10 GMT 2001 Olly Betts
39612         * Updated various .cvsignore files.
39614 Tue Jan 09 19:03:12 GMT 2001 Olly Betts
39616         * Tidied up dead code from OmAllTermIterator.
39618 Tue Jan 09 18:41:21 GMT 2001 Olly Betts
39620         * OmAllTermsIterator merged into OmTermIterator.
39622         * When iterating over all terms, skip_to() doesn't set at_end()
39623           when it skips off the end.  Fixed except for quartz and added
39624           regression test (allterms3).
39626 Tue Jan  9 18:14:04 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39628         * Add some extra debugging code into btree code in quartz.
39630 Tue Jan  9 17:22:12 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39632         * Make skip_to() work (ie, do nothing) on OmTermIterators, when the
39633           term iterator is at_end() already.
39635 Tue Jan  9 13:32:08 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39637         * Updates to make the quartzdump utility more useful.
39639         * Added new test to test cursor behaviour in quartz.
39641 Tue Jan  9 11:31:26 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39643         * Remove an item from TODO
39645 Tue Jan  9 10:27:35 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39647         * Add a missing \ in tests/Makefile.am
39649 Mon Jan  8 19:03:42 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39651         * Increment format number in quartz/btree_base.cc.  This isn't
39652           actually due to a change in the btree format, but to ensure that
39653           some databases which were causing problems are rebuilt.
39655           We need to add quartz format numbers, separate from the btree format
39656           numbers, to check this kind of thing.
39658 Mon Jan  8 15:13:04 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39660         * Add some debugging, and fix a test data file.
39662 Mon Jan  8 13:49:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39664         * Fix failure to initialise OmMSet::Internal::have_percent_factor.
39666 Thu Jan  4 17:21:24 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39668         * Add new test for a postlist with many documents, designed to fail
39669           and exhibit the bug andy has found.  So far doesn't fail.
39671 Wed Jan  3 19:30:30 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39673         * Add get_percent method to OmMSetIterator.  Untested.
39675         * Add om_percent type to om_types.
39677         * Add test of sort order of terms in get_matching_terms.
39679 Tue Jan  2 15:05:53 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39681         * Move documentation of parameters for OmSettings out of omsettings.h
39682           and into docs/.  Not in distribution at the moment: it is awaiting
39683           placement into a permanent home (I think the user manual is the
39684           correct place).
39686         * Add a bm25weight_min_normlen parameter: this specifies a cutoff
39687           on the minimum value that can be used for a normalised document
39688           length: smaller values will be forced up to this cutoff.  This
39689           prevents very small documents getting a huge bonus weight.
39691 Wed Dec 20 16:54:41 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39693         * Fix warning in QuartzTable
39695 Wed Dec 20 15:13:05 GMT 2000 Olly Betts
39697         * OmTermListIterator merged into OmTermIterator.
39699         * Added OmRSet::contains() - checks if an RSet contains a given
39700           docid.
39702         * Methods returning `const om_termname' now just return
39703           `om_termname'.
39705 Tue Dec 19 16:55:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39707         * Implemented AllTermsIterator for DA and Multi databases.
39708           Added a test which actually uses a multidatabase, but
39709           disabled it as it currently fails for both Quartz and DA.
39711 Tue Dec 19 12:14:05 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39713         * Adjusted TODO
39715 Tue Dec 19 20:06:43 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39717         * Escaping for termnames in remote database communication modified
39718           to use only characters in range 33 to 126.  Should now work on all
39719           architectures.
39721         * Increased OM_SOCKET_PROTOCOL_VERSION to 8.
39723 Mon Dec 18 17:23:48 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39725         * Added "match_cutoff" option to get_mset OmSettings.
39727         * Added test for "match_cutoff" to apitest.
39729         * Updated todo.xml
39731 Mon Dec 18 17:19:40 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39733         * Implemented opening positionlists from inmemory databases.  Added
39734           a testcase as well, which is run for quartz and inmemory.
39736 Mon Dec 18 15:48:16 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39738         * Implemented AllTermsIterator for quartz.  Interaction with
39739           QuartzPostList needs to be cleaned up.
39741         * Added new functions [un]pack_string_preserving_sort(), which
39742           pack a string in a way which preserves sort order.  Added a
39743           testcase to quartztest.
39745         * Now use [un]pack_string_preserving_order() on postlist keys, so
39746           that we can get at terms in sorted order.  (And get_tname_from_key()
39747           added to separate out the term-unpacking as well as the packing)
39749         * Enabled test_allterms1 in apitest, but put it in a group of
39750           tests only run for inmemory and quartz.  This should be extended
39751           to other backends.
39753 Mon Dec 18 14:33:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39755         * Implemented tests of msetiterator and esetiterator copying and
39756           assignment.
39758         * Fix segfault when assigning to [me]setiterator to end.
39760         * Updated todo.xml
39762 Mon Dec 18 13:52:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39764         * Move creation of first key in a quartz postlist into a named
39765           function (was scattered through the code).
39767 Mon Dec 18 11:19:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39769         * Update todo.xml
39771 Mon Dec 18 10:47:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39773         * Remove const from reverse_iterators in api_db.cc, so get around
39774           brokenness of egcs 1.1.2
39776 Mon Dec 18 09:41:54 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39778         * Added apitest_space.txt to the Makefile.am
39780 Sun Dec 17 16:15:03 GMT 2000 Olly Betts
39782         * Replaced all API uses of om_termname_list with OmTermIterator.
39784 Fri Dec 15 18:54:10 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39786         * Implemented OmAllTermsIterator interface in API.  It works for
39787           inmemory - the rest haven't been implemented yet.  The test
39788           is commented out.
39790 Fri Dec 15 15:47:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39792         * Updated TODO.
39794         * database returns positionlists as AutoPtrs; this neatens some of
39795           the code from the previous changelog entry, and makes explicit the
39796           ownership of the pointer.  postlists and termlists should be
39797           AutoPtrs, likewise.
39799 Fri Dec 15 14:59:41 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39801         * Make OmPositionListIterators retrieved from OmPostListIterators
39802           valid indefinitely (were only valid until OmPostListIterator was
39803           moved).  This makes them consistent with OmPositionListIterators
39804           retrieved from OmDatabases.
39806         * Renamed PostList::get_position_list() to read_position_list.
39807           Added PostList::open_position_list() which opens a new positionlist
39808           and returns it as an AutoPtr.
39810 Fri Dec 15 13:09:51 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39812         * Make TODO.release file, containing TODO items for next release.
39814 Fri Dec 15 12:06:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39816         * QuartzDatabases now autoflush after 1000 changes.
39818 Fri Dec 15 11:40:37 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39820         * Fix segfault in quartz_table
39822 Fri Dec 15 11:23:15 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39824         * Removed begin/end_session() from quartztest
39826 Thu Dec 14 19:19:40 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39828         * Done todo item: For writable databases, make the behaviour currently
39829           obtained by calling begin_session() and later end_session() the
39830           default behaviour.  If users want the changes to be applied
39831           immediately following a change, they should call flush().
39833 Thu Dec 14 17:48:27 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39835         * Fix problem with recalc_maxweight() not being called before a
39836           get_maxweight() in multimatch.cc if a node prunes at the top level,
39837           since recalculate_w_max wasn't being checked at this point.
39838           Introduced helper function getorrecalc_maxweight() to tidy this up.
39840         * Tidy up Asserts in common/netutils.h.
39842 Thu Dec 14 17:11:17 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39844         * Adjusted todo.xml
39846 Thu Dec 14 16:21:27 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39848         * Removed handling of OmDatabaseModifiedError in the API - it's
39849           up to the users to know what to do.  Disabled quartzoverwrite2
39850           as it's now inappropriate.
39852         * Added OmDatabase::reopen() to help them do so.
39854         * Adjusted todo.xml
39856 Thu Dec 14 14:38:39 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39858         * Added another quoting regression test.
39860 Thu Dec 14 14:36:53 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39862         * Fixed the quoting _again_, since it broke with backslashes.
39864 Thu Dec 14 12:49:58 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39866         * Fix problems with recalculation of maxweight in postlists, causing
39867           AssertParanoid at multimatch.cc:393.  When a prune was happening,
39868           recalc_maxweight flag was not always being set, because some
39869           {next,skip_to}_handling_prune() methods weren't being passed the
39870           matcher, and a default argument of 0 was being used.  I've now
39871           removed the default argument and pass the matcher always.
39873           Sometimes the recalc could perhaps be avoided, but this is
39874           certainly safer for now.
39876 Thu Dec 14 12:30:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39878         * Sleepcat is now disabled by default.
39880         * Fixed a problem with tabs not being quoted in the remote case.  All
39881           control characters are now quoted.  Incremented the protocol ver
39882           number.
39884 Thu Dec 14 11:54:17 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39886         * Added regression test to check that all characters can be
39887           are safe to exist in document keys.
39889         * Fixed OmDebug so that it can display messages containing zero bytes
39890           (use fwrite instead for fprintf)
39892 Wed Dec 13 18:43:40 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39894         * Add regression tests to apitest to check that OmMSet and OmESet
39895           begin() and end() iterators compare equal if the mset is empty.
39896           Fix matchfunctor used in test_matchfunctor1 so that it works for
39897           Muscat3.6 databases.
39899 Wed Dec 13 18:35:05 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39901         * Fixed bugs in OmMSet and OmESet iterators: begin() when the set
39902           was empty produced an invalid iterator, and the assignment
39903           operators would have failed when end iterators were involved.
39905         * Added a check in test_matchfunctor1() that the mset returned is
39906           not empty.
39908 Wed Dec 13 18:18:09 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39910         * Turn off tests involving terms with newlines or zero bytes in terms
39911           with Muscat3.6 backends; these can't be expected to work.
39913 Wed Dec 13 18:06:29 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39915         * Uncommented the code in pctcutoff1 - test now passes.
39917 Wed Dec 13 17:53:19 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39919         * Fix: m36_key_file parameter wasn't being set with DA flimsy
39920           databases (thanks to Mark Hagger).
39922         * indextest.cc changed to use "\n" instead of endl - compiles
39923           with STLport again.
39925 Wed Dec 13 17:27:17 GMT 2000 Olly Betts
39927         * OmMSet is now an STL compatible container.
39929         * Om*Iterator::difference_type was unsigned - now signed.
39931         * net/readquery.ll: fixed compiler warning.
39933         * Remote backend was defaulting to collapse on key 0.
39935 Wed Dec 13 16:48:49 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39937         * Add handling of DatabaseModified to OmEnquire::get_mset()
39939 Wed Dec 13 16:28:47 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39941         * Escape zero bytes in the network protocol, since these were
39942           breaking things when being passed across as part of keys.
39944         * Add test of having zero bytes in the collapse keys.
39946         * In testsuite, only display the context of errors if there is one
39947           present.
39949 Wed Dec 13 14:44:46 GMT 2000 Olly Betts
39951         * Implemented OmMSet::operator[]().
39953 Wed Dec 13 14:30:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39955         * Added support for handling overwritten database conditions.
39956           Currently works for OmDocument::get_{data,key}().
39958 Wed Dec 13 13:20:45 GMT 2000 Olly Betts
39960         * Elaborated API hitlist in todo.xml.
39962 Wed Dec 13 12:28:18 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39964         * Fix to BackendManager to stop it removing tables prematurely.
39966 Wed Dec 13 11:49:53 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39968         * Apply the stemmer to query terms used in spaceterms1.  (Not doing
39969           so caused the test to fail spuriously on local databases, since the
39970           terms are stemmed at index time).  The test still fails with da and
39971           db databases.
39973         * Fixed a problem when stats were unpacked from the network stream,
39974           where term names were not correctly unquoted.  This led to double
39975           quoting of global statistics.
39977 Wed Dec 13 02:49:05 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39979         * Implement copy and assignment methods for OmPositionListIterator.
39981 Wed Dec 13 02:37:14 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39983         * ESet and MSet iterators now cope with being copied / assigned when
39984           the internals are null.
39986         * Added copy method to OmPositionListIterator interface.  No
39987           implementation for this yet though, or for the already existing
39988           assignment method.
39990         * Added a couple of easy items to the todo list to check regarding
39991           iterators.
39993 Wed Dec 13 02:19:50 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39995         * Fix small bug in mset_range_is_same{,_weights}()
39997 Wed Dec 13 02:07:59 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39999         * And add copy and assignment for OmESet, similarly.
40001 Wed Dec 13 01:58:38 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40003         * Add copy and assignment operators to OmMSet so that the internals
40004           get copied (rather than just the pointer to them).  Really want a
40005           small internals class, holding a refcount to the real internals, or
40006           else to use refcntptrs for the members of OmMSet::Internal which are
40007           potentially large (eg, items)
40009 Wed Dec 13 01:05:44 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40011         * Add Asserts to api/omdatabaseinternal.cc to ensure that there is at
40012           least one database present when opening termlists, etc.  This should
40013           really be done by throwing errors.
40015         * Add destructor to OmMSet, deleting internals.
40017         * Implement getting positionlists from QuartzDatabases.
40019         * Fix bug in copy constructor of OmDocument::Internal - some fields
40020           were not being copied.
40022         * Fix api_db.cc so it compiles: code referring to mset by subscripting
40023           temporarily commented out.
40025 Tue Dec 12 20:05:10 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40027         * Fix bug with truncation of intermediate keys in btrees.
40029 Tue Dec 12 18:33:12 GMT 2000 Olly Betts
40031         * OmMSet::get_docs() now takes sane parameters.
40033         * Various test programs updated to nearly work with new OmMSet
40034           interface.
40036 Tue Dec 12 17:18:33 GMT 2000 Olly Betts
40038         * Finished cleaning up OmMSet; updated TODO to reflect this.
40040 Tue Dec 12 17:16:02 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40042         * Fix bug with sorting keys in btrees.
40044         * Various fixes to quartzdump.
40046 Tue Dec 12 15:40:28 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40048         * Nettest compiles with new OmMSet interface.
40050 Tue Dec 12 15:09:14 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40052         * Fixed an endless loop in QuartzWritableDatabase::do_delete_document.
40054 Tue Dec 12 15:07:39 GMT 2000 Olly Betts
40056         * OmMSetItem replaced by OmMSetIterator.
40058         * Added OmESet::empty().
40060         * Fixed == on OmESetIterator.
40062 Tue Dec 12 14:16:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40064         * Renamed arguments to compare_keys()
40066 Tue Dec 12 12:05:24 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40068         * Added quartzdump utility to dump the contents of a quartz table.
40070 Tue Dec 12 10:54:44 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40072         * Added constructors and destructor to OmRSet.
40074 Mon Dec 11 16:32:07 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40076         * Remove caching of average length in OmDatabaseInternal, was breaking
40077           asking for the average length of a database which was being
40078           modified.
40080 Mon Dec 11 16:03:46 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40082         * If no documents in database, don't divide by zero in
40083           omdatabaseinternal.cc
40085         * If a document object doesn't come from the database, when iterating
40086           through its termlist don't open postlists from the nonexistent
40087           database; open them from the DocumentTerm objects in the document
40088           instead.
40090         * Remove old unused and undefined method
40091           OmDocument::Internal::add_posting()
40093 Mon Dec 11 13:53:18 GMT 2000 Olly Betts
40095         * omenquire.h: Removed superfluous declaration of OmMSetCmp.
40097 Mon Dec 11 13:38:12 GMT 2000 Olly Betts
40099         * Updated TODO list.
40101 Mon Dec 11 13:24:45 GMT 2000 Olly Betts
40103         * OmRSet internals encapsulated.
40105 Mon Dec 11 12:42:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40107         * OmIndexerMessage::get_element and ...::operator[] now have
40108           non-const versions.  Fixes const-warning in omstemmernode.cc.
40110 Mon Dec 11 12:17:32 GMT 2000 Olly Betts
40112         * Better typedef-s for Om*Iterator::difference_type.
40114 Sun Dec 10 17:51:41 GMT 2000 Olly Betts
40116         * Corrected various typedef-s for Om*Iterator.
40118 Sun Dec 10 17:28:59 GMT 2000 Olly Betts
40120         * Updated TODO to reflect OmESet being cleaned up.
40122         * Term position argument to OmDocument::add_posting() is now
40123           optional (as it was for OmDocumentContents).
40125 Sun Dec 10 16:55:17 GMT 2000 Olly Betts
40127         * OmESetItem is dead - long live OmESetIterator!
40129         * net/socketclient.cc: fixed compiler warning.
40131         * net/socketserver.cc: fixed compiler warning.
40133 Sun Dec 10 13:29:15 GMT 2000 Olly Betts
40135         * Started to encapsulate OmESet/OmESetItem interface.  Interface is
40136           close, but currently implementation is exposed in omenquire.h.
40138         * apitest wasn't running puncterms1 or spaceterms1 - fixed.
40140 Sun Dec 10 11:34:39 GMT 2000 Olly Betts
40142         * om/autoptr.h -> autoptr.h in lots of places.
40144 Fri Dec  8 17:20:04 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40146         * Updated indextest to not use AutoPtr<OmIndexer>
40148 Fri Dec  8 17:14:09 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40150         * Oops - removed one too many #include "autoptr.h"
40152 Fri Dec 08 16:50:42 GMT 2000 Olly Betts
40154         * Updated TODO.
40156 Fri Dec  8 16:44:26 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40158         * IndexerBuilder now returns OmIndexer objects instead of
40159           AutoPtr<OmIndexer>.  OmIndexer's internals are reference
40160           counted.
40162         * Moved autoptr.h from include/om to common/, since it's no
40163           longer used in the API.
40165 Fri Dec  8 16:22:48 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40167         * Fixed omstemmer node bug and made debug slightly more verbose
40168           in indextest.cc.
40170 Fri Dec  8 16:13:36 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40172         * Added a test for OmIndexerMessage to indextest
40174         * Added output operator for OmIndexerMessage
40176         * Fixed a bug introduced into omvectorsplit node
40178         * Changed couts in indextest.cc to touts.
40180 Fri Dec 08 14:53:24 GMT 2000 Olly Betts
40182         * quartztest: removed OmDocumentTerm reference so that it'll
40183           compile (tests fail though).
40185 Fri Dec  8 14:42:46 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40187         * OmIndexerMessage is now a class by itself, replacing OmIndexerData
40188           and the typedef to AutoPtr<OmindexerData>.  It's now a copy-on-write
40189           object.
40191         * The indexer stuff all changed.
40193 Fri Dec 08 14:24:02 GMT 2000 Olly Betts
40195         * omindexdoc.{cc,h}: no longer used so removed.
40197         * Pushed OmDocumentTerm from API level into the internals of the
40198           library.
40200         * Updated TODO.
40202 Fri Dec 08 12:08:49 GMT 2000 Olly Betts
40204         * delve: if just given a database (or list of databases), report the
40205           number of documents and average document length.
40207 Thu Dec  7 20:39:24 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40209         * Fix bug: Om*Iterators which were created over empty lists didn't
40210           have null internals, causing them not to compare equal to end
40211           iterators.
40213         * Added many asserts to iterator code.
40215 Thu Dec  7 20:02:43 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40217         * Removed OmTermListIteratorMap - OmTermListIterator can now be
40218           across either a map or an actual termlist.
40220         * Om*Iterator classes all now delete internals when reaching end,
40221           freeing resources sooner and making the comparison operators much
40222           simpler.
40224 Thu Dec  7 18:33:03 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40226         * Updates to TODO
40228 Thu Dec  7 18:32:39 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40230         * Implementation of write locks for Quartz
40232 Thu Dec  7 18:28:55 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40234         * Fix to backendmanager which doesn't return writable databases
40235           unnecessarily (which breaks things when there are write locks)
40237 Thu Dec  7 18:25:50 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40239         * Added test for Quartz write locks
40241 Thu Dec  7 17:56:19 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40243         * Add OmDocument::set_data() method which takes a string, instead of
40244           an OmData object.  This allows, implicitly, use of const char *'s
40245           as well.
40247         * Further fixes to quartztest.  It now compiles (though I've not
40248           tried linking it yet...)  :)
40250 Thu Dec  7 17:49:50 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40252         * Fixed omkeylistiterator return types.
40254 Thu Dec  7 17:27:57 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40256         * Moved get_document() from OmWritableDatabase to OmDatabase.
40258         * Added -> operator to OmKeyListIterator.  Fixed return values
40259           and constness of Om*Iterator::operator *() methods.
40261         * Some fixes to quartztest.cc, but not enough to get it compiling.
40263 Thu Dec 07 16:21:28 GMT 2000 Olly Betts
40265         * Some work on getting quartztest working.
40267 Thu Dec 07 16:10:00 GMT 2000 Olly Betts
40269         * The library now builds, but "make check" still fails.
40271 Thu Dec  7 15:39:19 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40273         * Fixes to testsuite/index_utils.cc to not segfault.
40275 Thu Dec  7 14:31:56 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40277         * Fixes to api_db.cc so that it compiles.
40279 Wed Dec  6 18:50:48 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40281         * Add test for terms with spaces, newlines, zero bytes, or
40282           backslashes.
40284         * Updates to TODO
40286 Wed Dec 06 18:18:16 GMT 2000 Olly Betts
40288         * Woohoo!  Now builds with just --disable-indexer!
40289           (still doesn't pass any tests).
40291 Wed Dec 06 17:24:19 GMT 2000 Olly Betts
40293         * Minor fix.  Now builds with --disable-indexer
40294           --disable-quartz-backend (but doesn't pass any tests).
40296 Wed Dec 06 16:35:34 GMT 2000 Olly Betts
40298         * Fixed up lots of build errors.
40300 Wed Dec 06 14:56:59 GMT 2000 Olly Betts
40302         * Begin the long job of replacing OmDocumentContents with
40303           OmDocument.  Won't currently build - expect the tree to be broken
40304           for a few days.  As usual, if you want a working build, use the
40305           "snapshot_latest" tag.
40307 Wed Dec  6 12:03:44 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40309         * Backed out yesterday's overwritten-handling stuff.
40311 Wed Dec  6 11:36:55 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40313         * Increase sleep in tcpclient1 to 3 (did tcpmatch1 last time, duh!)
40315 Tue Dec  5 17:13:38 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40317         * QuartzDocument now has a QuartzTableManager pointer rather than
40318           two QuartzTable pointers.
40320         * QuartzDatabase::do_get_document_internal() copes with Btree
40321           overwritten conditions.
40323         * QuartzDocument methods cope with Btree overwritten conditions
40325         * New method QuartzTableManager::reopen_tables_because_overwritten()
40326           for helping with the above.
40328         * New test in quartztest for testing overwritten problems from the
40329           API rather than just internally to Quartz.
40331         * Fixed a typo in omsettings.h comment (quartz_dir used to refer to
40332           a sleepycat database)
40334 Tue Dec  5 16:53:46 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40336         * Update todo.
40338         * Fix undesirable assert in stats.h
40340 Tue Dec  5 15:41:40 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40342         * Replace OmMSet::docs_considered with
40343           OmMSet::matches_{lower_bound,estimated,upper_bound}, giving more
40344           useful information.
40346         * PostLists now have get_termfreq_{min,est,max}(), instead of
40347           get_termfreq(), so the postlist tree can be used to calculate
40348           the matches_* values for the mset.  Implemented for all the
40349           postlist subclasses.
40351           LeafPostList's still has a virtual get_termfreq() method,
40352           and implements get_termfreq_* in terms of it, so database postlists
40353           don't need to be modified.
40355         * Passing of MSets across network modified to pass the new
40356           information.
40358         * PendingMSet uses the values from the mset to return the values
40359           of get_termfreq_*().  This assumes that recalc_maxweight has been
40360           called first, which is has been.
40362         * Muscat36 databases get_termfreq() methods fixed to use a
40363           LeafPostList rather than a PostList.
40365         * Renamed test docs_considered1 to matches1, and add several
40366           more cases to it.
40368 Tue Dec 05 15:38:27 GMT 2000 Olly Betts
40370         * Added tests/testdata/apitest_punc.txt to distribution.
40372 Tue Dec 05 15:07:26 GMT 2000 Olly Betts
40374         * Oops, failed to add new file `tests/testdata/apitest_punc.txt'
40375           with last check-in.
40377 Tue Dec 05 14:34:04 GMT 2000 Olly Betts
40379         * OmTermListIterator implemented for an OmDocument with terms stored
40380           in a map rather than coming from a Document.
40382         * Fixes to remote protocol so solve problems with terms with
40383           punctuation in (regression test punc_terms1).
40385 Mon Dec  4 15:02:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40387         * Makefile tweak in docs/
40389 Mon Dec 04 14:13:05 GMT 2000 Olly Betts
40391         * More OmDocument work.
40393 Mon Dec  4 11:43:46 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40395         * Renamed OmMSet::mbound to docs_considered.
40397 Mon Dec  4 10:11:11 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40399         * Added some more std:: prefixes for STLport.
40401 Fri Dec  1 17:45:01 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40403         * Increase the sleep after the server is started by tcpclient1 to 3
40404           seconds so that the server is more likely to have started when
40405           then test ran.  This seems to be what was causing the test to
40406           randomly fail.  Really, we want a better solution to this (such as
40407           the server picking a port and writing it out on stdout once it is
40408           listening.)
40410 Fri Dec  1 17:27:02 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40412         * Swapped the ports used by tcpclient1 and tcpmatch1 to see if the
40413           random failures follow suit.
40415 Fri Dec  1 17:21:07 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40417         * Another minor fix to work with STLport.
40419 Fri Dec  1 17:01:02 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40421         * Add std::'s and similar to fix compilation with STLport.
40423         * Fix bug in expander due to nth_element being called on the wrong
40424           element.  This is the counterpoint of the bug fixed on Nov 24th
40425           with the matcher.
40427 Fri Dec  1 16:30:26 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40429         * Minor tweaks in error strings.
40431 Fri Dec 01 12:57:59 GMT 2000 Olly Betts
40433         * Corrected erroneous documentation comment.
40435 Thu Nov 30 18:50:16 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40437         * OmSettings no longer throws exceptions internally (at the cost of
40438           slightly more code duplication).
40440 Thu Nov 30 18:05:39 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40442         * Add a few std::'s to strings which had been missed.
40444 Thu Nov 30 16:41:11 GMT 2000 Olly Betts
40446         * OmDocument::Internal now knows its OmDatabase.
40448 Thu Nov 30 16:40:33 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40450         * Add context to network errors thrown from OmSocketLineBuf.
40452 Thu Nov 30 16:21:47 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40454         * Added a quartz test for largish bitmaps.
40456         * Fixed the code so that the above test would pass.
40458 Thu Nov 30 16:10:37 GMT 2000 Olly Betts
40460         * OmDocument::add_posting() pretty much done.
40462 Thu Nov 30 15:51:46 GMT 2000 Olly Betts
40464         * More work on OmDocument::add_posting().
40466         * Added OmTermListIterator::positionlist_begin() and
40467           OmTermListIterator::positionlist_end().
40469 Thu Nov 30 14:16:28 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40471         * Fixed a prototype bug introduced with the last commit.
40473 Thu Nov 30 13:23:14 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40475         * Bcursor::find_key now more const-correct.
40477         * Bcursor_create now returns an AutoPtr.  The resultant changes
40478           fixed a memory leak.
40480         * New exception: OmDatabaseModifiedError.  Thrown when an open
40481           revision of a table is no longer valid due to multiple updates.
40483         * quartzoverwrite1 test re-enabled, and passes.
40485 Thu Nov 30 13:23:27 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40487         * nettest now uses quartz backend: should always run all tests now
40488           (apart from tcpdead1, which doesn't work).
40490 Wed Nov 29 19:46:22 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40492         * In testsuite, report the context of Om exceptions as well as their
40493           type and message.
40495 Wed Nov 29 18:30:10 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40497         * Add "remote_connect_timeout" parameter to be supplied when opening
40498           a remote database, to specify a separate timeout for the connect
40499           operation to that used once the connection has been opened.
40501         * Add setting of the context of errors thrown by tcpclient or
40502           progclient, so that the node which failed can be determined.
40504 Wed Nov 29 17:50:03 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40506         * Reworked Btree_base::read() a bit so that it's hopefully more
40507           readable.
40509         * Hopefully fixed a bug when the bitmap approaches 1k.
40511         * Fix to catch problems re-opening databases after an apply in
40512           Quartz.
40514 Wed Nov 29 17:30:26 GMT 2000 Olly Betts
40516         * Added OmDocument::termlist_begin() and OmDocument::termlist_end()
40518 Wed Nov 29 16:53:13 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40520         * Comment out quartzoverwrite1 test so that it doesn't cause problems
40521           for other developers.
40523 Wed Nov 29 16:27:19 GMT 2000 Olly Betts
40525         * docid now in Document class rather than subclasses.
40527 Wed Nov 29 14:54:13 GMT 2000 Olly Betts
40529         * leafdocument.cc renamed to document.cc
40531         * Document class now has a pointer to the associated Database class
40532           so we can open termlists, etc.
40534 Wed Nov 29 14:03:43 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40536         * Add quartztest to test for case when a database block gets
40537           overwritten.  Currently, this fails because an exception doesn't
40538           get thrown when it should.
40540 Wed Nov 29 13:18:24 GMT 2000 Olly Betts
40542         * LeafDocument class renamed to Document.
40544 Wed Nov 29 12:35:49 GMT 2000 Olly Betts
40546         * Added OmDocument::remove_posting(), OmDocument::remove_term(),
40547           and OmDocument::clear_terms()
40549 Wed Nov 29 12:31:22 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40551         * Added another revision number in the middle of the base file,
40552           before the bitmap.  Also now check that there isn't any extra
40553           data at the end after we finish reading it.  Incremented the
40554           database format.
40556 Wed Nov 29 11:55:03 GMT 2000 Olly Betts
40558         * Added OmDocument::remove_key() and OmDocument::clear_keys()
40560 Tue Nov 28 18:34:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40562         * Btree bitmap now merged with base - one object, one file.
40564 Tue Nov 28 17:13:56 GMT 2000 Olly Betts
40566         * Added OmDocument::set_data()
40568 Tue Nov 28 16:47:06 GMT 2000 Olly Betts
40570         * Started to alter OmDocument to be a general purpose document class
40571           which includes the functionality currently in OmDocumentContents.
40573 Tue Nov 28 15:08:38 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40575         * Added OmSplitOnCharsNode, which does a subset of OmRegexSplitNode
40576           but less slowly.
40578         * Modified RegexSplit node and regexcommon so that less copying
40579           of strings is needed.
40581 Tue Nov 28 13:42:41 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40583         * Moved the Btree's bitmap into a separate object.
40585 Tue Nov 28 13:06:36 GMT 2000 Olly Betts
40587         * Eliminated OmDocumentParams.
40589         * Removed unnecessary mutex from OmDocument::Internal.
40591 Mon Nov 27 18:45:27 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40593         * Implement get_position_list() on databases.  Untested.  Also needs
40594           some work to make consistent with open_position_list() on posting
40595           lists: see todo list.
40597 Mon Nov 27 18:29:00 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40599         * Change #define LEVEL ... to #define GET_LEVEL ... in btree_util.h:
40600           fixes problem reported by includetest
40602 Mon Nov 27 18:20:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40604         * Added a set of modifications to the todo.xml.  Also, add a
40605           "release" field, recording the release that the work must be
40606           performed by.
40608 Mon Nov 27 18:08:35 GMT 2000 Olly Betts
40610         * A RefCntPtr now copes with being assigned to itself (used to
40611           delete the underlying object if the reference count was 1).  Added
40612           regression test (refcnt2).
40614         * Now overwrite pointer inside RefCntPtr before deleting the pointed
40615           to object so there's no window where another thread can access the
40616           pointer and get the just-deleted object.
40618 Mon Nov 27 14:36:59 GMT 2000 Olly Betts
40620         * OmError class now optionally stores an errno value.
40622 Mon Nov 27 13:04:18 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40624         * Quartztest builds its test databases in a subdirectory, which
40625           is now in .cvsignore, so we shouldn't get cvs complaining about
40626           so many unknown files any more.
40628 Mon Nov 27 12:53:16 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40630         * Another TODO item.
40632 Mon Nov 27 12:15:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40634         * Added a couple of new items to the todo list.
40636 Fri Nov 24 19:23:56 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40638         * Quartztests now deletes all old tables, so that database formats
40639           don't cause problems.
40641 Fri Nov 24 19:03:59 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40643         * Added std:: prefix to lots of strings which didn't have it.
40644           I've probably added some where they shouldn't be: there were rather
40645           a lot of cases of this.
40647 Fri Nov 24 18:27:06 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40649         * Major bug fix!  When removing elements, matcher was performing
40650           nth_element() on the first element to be thrown away, rather than
40651           the lowest element to keep.  This meant that, after throwing away
40652           low scoring items, items.back() was a random item rather than the
40653           lowest scoring item.  This caused the min weight for getting into
40654           the mset to go up faster than it should have done, and generally
40655           broke everything.
40657           It will be interesting to compare evaluation measures before and
40658           after this fix.
40660 Fri Nov 24 15:34:17 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40662         * Declare this to be version 0.4.1