NEWS.SKELETON: Remove section for "flint backend" from template.
[xapian.git] / xapian-core / ChangeLog
blob24faa734adcf593886bcb4e5f6bd3b7a59c4d134
1 Mon Jun 01 13:11:02 GMT 2015  Olly Betts <olly@survex.com>
3         * NEWS.SKELETON: Remove section for "flint backend" from template.
5 Mon Jun 01 13:09:55 GMT 2015  Olly Betts <olly@survex.com>
7         * NEWS,configure.ac: Update for 1.3.3.
9 Mon May 25 04:33:15 GMT 2015  Olly Betts <olly@survex.com>
11         * NEWS: Update.
13 Sun May 24 12:52:47 GMT 2015  Olly Betts <olly@survex.com>
15         * tests/api_postingsource.cc: timer_create() seems to always fail on
16           AIX with EAGAIN, so just skip the matchtimelimit1 testcase there.
18 Sun May 24 11:48:30 GMT 2015  Olly Betts <olly@survex.com>
20         * net/tcpserver.cc: Under __WIN32__, inet_ntop()'s second parameter
21           is 'void*' (to POSIX says it should be 'const void*').
23 Sun May 24 11:46:25 GMT 2015  Olly Betts <olly@survex.com>
25         * common/safenetdb.h: Under __WIN32__, MSDN says that newer platforms
26           need <ws2def.h> for AI_* constants.  And mingw doesn't seem to
27           define AI_NUMERICSERV yet.
29 Sun May 24 10:41:39 GMT 2015  Olly Betts <olly@survex.com>
31         * common/safewindows.h,configure.ac: Under __WIN32__, we need to
32           specify Vista as the minimum supported version to get the
33           AI_ADDRCONFIG flag.  Older versions seem to all be out of support
34           anyway.
36 Sun May 24 06:46:15 GMT 2015  Olly Betts <olly@survex.com>
38         * net/tcpclient.cc: Add missing declaration of variable under
39           __WIN32__.
41 Sun May 24 06:39:56 GMT 2015  Olly Betts <olly@survex.com>
43         * tests/harness/testsuite.h: Simplify FAIL_TEST and SKIP_TEST
44           slightly.
46 Sat May 23 11:52:03 GMT 2015  Olly Betts <olly@survex.com>
48         * tests/harness/backendmanager_remotetcp.cc: Don't leave an extra fd
49           open when starting xapian-tcpsrv for remotetcp tests.
51 Sat May 23 10:12:31 GMT 2015  Olly Betts <olly@survex.com>
53         * tests/harness/backendmanager_remotetcp.cc: Add spaces between literal
54           strings and macros which expand to literal strings for C++11
55           compatibility in __WIN32__-specific code.
57 Fri May 22 03:22:03 GMT 2015  Olly Betts <olly@survex.com>
59         * NEWS: Update.
61 Wed May 20 14:24:03 GMT 2015  Olly Betts <olly@survex.com>
63         * include/xapian/version_h.cc: If old and new __GXX_ABI_VERSION are
64           both >= 1002 (which means GCC >= 3.4), then issue a warning about
65           mismatching versions instead of an error.  The changes in these
66           versions are bug fixes for corner cases, so there's a good chance of
67           things working - e.g. building xapian-bindings with GCC 5.1 (which
68           defaults to __GXX_ABI_VERSION 1008) against xapian-core built with
69           GCC 4.9 (1002) seems to work OK.  A warning is still useful as a
70           clue to what is going on if linking fails due to a missing symbol.
72 Wed May 20 13:47:50 GMT 2015  Olly Betts <olly@survex.com>
74         * net/serialise.cc: Don't use encode_length() on a bool - it's
75           overkill, and leads to a warning from GCC 5.1 (due to the
76           comparison (bool_value < 255) from the template expansion
77           always being true).
79 Wed May 20 01:49:18 GMT 2015  Olly Betts <olly@survex.com>
81         * api/matchspy.cc: Fix comparison function not to return true for two
82           equal elements, which fixes matchspy4 test failure with clang and
83           libc++.
85 Wed May 20 00:20:56 GMT 2015  Olly Betts <olly@survex.com>
87         * configure.ac: Disable "<FUNCTION> is expected to return a value"
88           warning from Sun's C++ compiler, as it fires even for functions we
89           end in a "throw" statement.  Genuine instances will be caught by
90           compilers with superior warning machinery.
92 Mon May 18 04:18:37 GMT 2015  Olly Betts <olly@survex.com>
94         * configure.ac: Arrange to pass command line option so that xlC
95           actually fails to compile the test code for typeid() when RTTI isn't
96           enabled.
98 Sun May 17 11:35:36 GMT 2015  Olly Betts <olly@survex.com>
100         * backends/glass/glass_version.cc: When reporting an error that the
101           glass format version doesn't match, don't append an uninitialised
102           char[] buffer to the error string (code accidentally left behind
103           by the previous change in this area).
105 Sat May 16 12:08:17 GMT 2015  Olly Betts <olly@survex.com>
107         * common/socket_utils.cc: Fix casts on the 4th argument of
108           setsockopt() so they compile on platforms which expect
109           char * or const char * there.
111 Fri May 15 13:24:55 GMT 2015  Olly Betts <olly@survex.com>
113         * configure.ac: Enhance the probe for whether the test harness can use
114           RTTI so that it works for xlC (which defaults to not generating
115           RTTI).
117 Fri May 15 12:28:32 GMT 2015  Olly Betts <olly@survex.com>
119         * common/debuglog.h: Remove commented out STATIC_ASSERT() which
120           is conceptually flawed.
122 Fri May 15 12:27:45 GMT 2015  Olly Betts <olly@survex.com>
124         * common/omassert.h,common/pack.h,tests/api_wrdb.cc,
125           tests/internaltest.cc: Replace STATIC_ASSERT() with C++11's
126           static_assert().
128 Fri May 15 11:34:47 GMT 2015  Olly Betts <olly@survex.com>
130         * common/stringutils.cc: Use static_assert rather than an adhoc check
131           via a negative array size.
133 Fri May 15 11:16:18 GMT 2015  Olly Betts <olly@survex.com>
135         * common/io_utils.cc: Replace the code used on platforms without
136           F_DUPFD with simpler code which actually compiles.
138 Fri May 15 03:43:16 GMT 2015  Olly Betts <olly@survex.com>
140         * pkgconfig/xapian-core.pc.in: Include @ldflags@ in pkg-config .pc
141           file.
143 Fri May 15 03:33:40 GMT 2015  Olly Betts <olly@survex.com>
145         * pkgconfig/xapian-core.pc.in: Fix include directory reported by
146           pkg-config.
148 Fri May 15 03:31:43 GMT 2015  Olly Betts <olly@survex.com>
150         * configure.ac,pkgconfig/xapian-core.pc.in,xapian-config.in: When
151           compiling with xlC on AIX, _LARGE_FILES gets defined by
152           AC_SYS_LARGEFILE to enable large file support, and defining this
153           changes the ABI of std::string, so include it in xapian-config
154           --cxxflags and the pkg-config equivalent.
156 Fri May 15 02:52:10 GMT 2015  Olly Betts <olly@survex.com>
158         * tests/Makefile.am,tests/perftest/Makefile.mk: Use $(NO_INSTALL)
159           rather than @NO_INSTALL@ to allow make-time overriding.
161 Fri May 15 02:33:11 GMT 2015  Olly Betts <olly@survex.com>
163         * tests/soaktest/Makefile.mk: Use -no-fast-install instead of
164           -no-install for linking soaktest on platforms where libtool issues
165           a warning for -no-install, like we already do for all the other test
166           programs.
168 Fri May 15 02:14:16 GMT 2015  Olly Betts <olly@survex.com>
170         * examples/simpleexpand.cc,examples/simpleindex.cc,
171           examples/simplesearch.cc: '#include <config.h>' in the examples, as
172           when compiling with xlC on AIX, _LARGE_FILES gets defined by
173           AC_SYS_LARGEFILE to enable large file support, and defining this
174           changes the ABI of std::string, so it also needs to be defined when
175           compiling code using Xapian.
177 Thu May 14 03:17:28 GMT 2015  Olly Betts <olly@survex.com>
179         * backends/chert/chert_cursor.cc: Correct delete to delete [].
181 Tue May 12 14:33:28 GMT 2015  Olly Betts <olly@survex.com>
183         * docs/deprecation.rst: Add deprecation of --preserve-nonduplicates
184           which happened in 1.2.4.
186 Tue May 12 07:38:12 GMT 2015  Olly Betts <olly@survex.com>
188         * Makefile.am: Actually use $(NO_UNDEFINED).
190 Tue May 12 06:40:38 GMT 2015  Olly Betts <olly@survex.com>
192         * configure.ac: Only pass -no-undefined when linking the library if
193           it's actually required for the current platform.  Sun C++ doesn't
194           link the C++ runtime libraries to shared objects, so the build
195           fails with -no-undefined.
197 Tue May 12 06:39:26 GMT 2015  Olly Betts <olly@survex.com>
199         * INSTALL,configure.ac: Fix comment and doc typos.
201 Tue May 12 03:49:38 GMT 2015  Olly Betts <olly@survex.com>
203         * configure.ac: Add workaround for odd <cmath> issue with Sun C++.
205 Tue May 12 03:49:15 GMT 2015  Olly Betts <olly@survex.com>
207         * configure.ac: On Solaris, inet_ntop() needs -lnsl.
209 Tue May 12 03:48:48 GMT 2015  Olly Betts <olly@survex.com>
211         * api/keymaker.cc: Fix error compiling with Sun C++.
213 Tue May 12 03:07:06 GMT 2015  Olly Betts <olly@survex.com>
215         * include/xapian/attributes.h: Fix typo in definition of
216           XAPIAN_NOTHROW() definition for C++11 compilers other than GCC and
217           MSVC.
219 Tue May 12 01:48:19 GMT 2015  Olly Betts <olly@survex.com>
221         * exception_data.pm: Fix not to parse mentions of XAPIAN_THROW() in
222           comments.
224 Mon May 11 14:16:22 GMT 2015  Olly Betts <olly@survex.com>
226         * HACKING: libtool 2.4.6 is now used for snapshots and releases.
228 Mon May 11 14:14:04 GMT 2015  Olly Betts <olly@survex.com>
230         * common/str.cc,expand/bo1eweight.cc,geospatial/geoencode.cc,
231           matcher/multiandpostlist.cc,net/remoteconnection.cc,weight/:
232           Fixes for errors when compiling with Sun C++.
234 Mon May 11 10:53:47 GMT 2015  Olly Betts <olly@survex.com>
236         * common/log2.h,configure.ac: Change probe for log2() to check for a
237           declaration and '#include <cmath>' to get it to fix build on Solaris
238           with Sun C++.  C++11 compilers should all provide log2(), but let's
239           not rely on that just yet as it's easy to provide a fallback
240           implementation.
242 Mon May 11 07:04:06 GMT 2015  Olly Betts <olly@survex.com>
244         * common/getopt.cc,net/tcpserver.cc: Fix clang warnings on OS X.
245           Reported by Germán M. Bravo.
247 Mon May 11 06:29:42 GMT 2015  Olly Betts <olly@survex.com>
249         * api/constinfo.cc,docs/doxygen_api.conf.in,
250           docs/doxygen_source.conf.in,include/xapian/: C++11's noexcept
251           needs to be on definitions as well as declarations, but GCC
252           function attributes must only be on declarations, so split
253           XAPIAN_NOEXCEPT off from XAPIAN_NOTHROW.
255 Sun May 10 13:26:24 GMT 2015  Olly Betts <olly@survex.com>
257         * include/xapian/queryparser.h,queryparser/queryparser_internal.h,
258           tests/api_none.cc: Add support for optional reference counting of
259           FieldProcessor objects.
261 Sun May 10 11:07:36 GMT 2015  Olly Betts <olly@survex.com>
263         * include/xapian/intrusive_ptr.h,include/xapian/queryparser.h,
264           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
265           tests/api_none.cc: Add support for optional reference counting of
266           ValueRangeProcessor objects.
268 Thu May 07 12:42:11 GMT 2015  Olly Betts <olly@survex.com>
270         * bin/xapian-replicate.cc,common/socket_utils.cc,common/socket_utils.h,
271           net/replicatetcpclient.cc,net/replicatetcpclient.h: Set SO_KEEPALIVE
272           for xapian-replicate's connection to the master, and add command
273           line option to allow setting socket-level timeouts (SO_RCVTIMEO and
274           SO_SNDTIMEO) on platforms that support them.  Fixes #546, reported
275           by nkvoll.
277 Thu May 07 12:00:15 GMT 2015  Olly Betts <olly@survex.com>
279         * bin/xapian-replicate.cc: Fix connection timeout to be 10 seconds
280           rather than 10000 seconds which is has been since 1.2.3.
282 Tue May 05 02:38:37 GMT 2015  Olly Betts <olly@survex.com>
284         * net/tcpserver.cc: Use inet_ntop() instead of inet_ntoa() - the
285           latter isn't thread-safe.
287 Tue May 05 02:05:27 GMT 2015  Olly Betts <olly@survex.com>
289         * include/xapian/queryparser.h: Update documentation to reflect that
290           the database passed to QueryParser::set_database() is no longer
291           used to expand wildcards and partial terms.
293 Mon May 04 11:32:40 GMT 2015  Olly Betts <olly@survex.com>
295         * api/postlist.cc,api/postlist.h,common/remoteprotocol.h,matcher/,
296           net/serialise.cc,tests/api_backend.cc: Fix sort by value when
297           multiple databases are in use and one or more are remote.  Fixes
298           #674, reported by Dylan Griffith.
300 Sun May 03 12:41:58 GMT 2015  Olly Betts <olly@survex.com>
302         * docs/deprecation.rst,include/xapian/queryparser.h,
303           queryparser/queryparser.cc,queryparser/queryparser.lemony,
304           queryparser/queryparser_internal.h,tests/queryparsertest.cc:
305           Allow setting the expansion limits and types for wildcards
306           and partial terms in the QueryParser independently.  Partial
307           terms now default to the 100 most frequent matching terms.
308           Deprecate set_max_wildcard_expansion() in favour of new
309           set_max_expansion() method which can set expansion limits
310           for partial terms too.  Completes #608.
312 Sat May 02 09:20:30 GMT 2015  Olly Betts <olly@survex.com>
314         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
315           include/xapian/query.h,queryparser/queryparser.lemony,
316           tests/api_query.cc: Add a choice of ways to apply the limit on
317           wildcard expansion.  Fixes #608, reported by boomboo.
319 Fri May 01 14:53:16 GMT 2015  Olly Betts <olly@survex.com>
321         * tests/api_replicate.cc: Reenable replicate3 for glass, as it no
322           longer fails.
324 Fri May 01 13:38:48 GMT 2015  Olly Betts <olly@survex.com>
326         * common/autoptr.h: Just map AutoPtr to std::unique_ptr now we require
327           C++11.
329 Fri May 01 13:33:28 GMT 2015  Olly Betts <olly@survex.com>
331         * matcher/multimatch.cc,net/progclient.cc: IRIX is dead, so remove
332           lingering traces of support for SGI's compiler.
334 Fri May 01 08:59:13 GMT 2015  Olly Betts <olly@survex.com>
336         * HACKING,INSTALL: STLport was last released in 2008, so (a) it's no
337           longer actively developed and (b) it won't support C++11, so strip
338           out documentation which mentions it.
339         * configure.ac: For Sun's C++ compiler, -std=c++11 enables C++11
340           support, and is incompatible with -library=stlport, so remove code
341           to enable that later option.
343 Fri May 01 01:37:24 GMT 2015  Olly Betts <olly@survex.com>
345         * configure.ac: Tweak comment to match xapian-omega's configure.
347 Fri May 01 01:36:41 GMT 2015  Olly Betts <olly@survex.com>
349         * configure.ac: Set default value for AUTOM4TE before AC_OUTPUT so the
350           default will actually get used.
352 Fri May 01 01:36:05 GMT 2015  Olly Betts <olly@survex.com>
354         * configure.ac: Add explicit AC_CANONICAL_HOST.
356 Fri May 01 01:08:56 GMT 2015  Olly Betts <olly@survex.com>
358         * api/matchspy.cc,tests/api_nodb.cc: Eliminate needless uses of
359           AutoPtr.
361 Fri May 01 00:37:42 GMT 2015  Olly Betts <olly@survex.com>
363         * tests/internaltest.cc: Remove self-assignment check of AutoPtr as
364           that doesn't work under C++11 when AutoPtr is unique_ptr, and add
365           other checks of reassignment which should work for both.
367 Fri May 01 00:37:09 GMT 2015  Olly Betts <olly@survex.com>
369         * tests/api_postingsource.cc: Remove C++11 specific test which doesn't
370           actually work with C++11.
372 Fri May 01 00:33:43 GMT 2015  Olly Betts <olly@survex.com>
374         * tests/harness/backendmanager.cc,
375           tests/harness/backendmanager_remotetcp.cc,
376           tests/harness/testsuite.h,tests/harness/testutils.h: Add spaces
377           between literal strings and macros which expand to literal strings
378           for C++11 compatibility.
380 Thu Apr 30 14:41:59 GMT 2015  Olly Betts <olly@survex.com>
382         * backends/chert/chert_table.cc,backends/glass/glass_table.cc: Remove
383           duplicate includes of "omassert.h".
385 Thu Apr 30 14:41:31 GMT 2015  Olly Betts <olly@survex.com>
387         * backends/glass/glass_freelist.cc: Add missing explicit include of
388           "omassert.h",
390 Thu Apr 30 14:38:06 GMT 2015  Olly Betts <olly@survex.com>
392         * HACKING,backends/chert/chert_table.cc,
393           backends/chert/chert_version.cc,backends/glass/glass_table.cc,
394           common/omassert.h: Remove CompileTimeAssert() and just use
395           C++11's static_assert instead.
397 Thu Apr 30 14:28:10 GMT 2015  Olly Betts <olly@survex.com>
399         * backends/glass/glass_freelist.cc: Drop conditionals for GCC >= 3.4
400           as we now require >= 4.4.
402 Thu Apr 30 14:26:13 GMT 2015  Olly Betts <olly@survex.com>
404         * api/omdatabase.cc,include/xapian/queryparser.h,
405           tests/harness/backendmanager.h: Drop workarounds for ancient Sun
406           C++ compilers, as we now require a recent version for C++11 support.
408 Thu Apr 30 14:22:46 GMT 2015  Olly Betts <olly@survex.com>
410         * INSTALL: IRIX is past EOL so drop information about IRIX make.
412 Thu Apr 30 14:22:10 GMT 2015  Olly Betts <olly@survex.com>
414         * configure.ac: OS X >= 10.4 apparently supports symbol visibility, so
415           update comment.
417 Thu Apr 30 14:21:37 GMT 2015  Olly Betts <olly@survex.com>
419         * common/unordered_map.h: No longer relevant now we require C++11.
421 Thu Apr 30 13:59:16 GMT 2015  Olly Betts <olly@survex.com>
423         * HACKING,INSTALL,configure.ac,xapian-config.in: Require a C++
424           compiler - the minimum required GCC version is now probably GCC 4.4.
426 Thu Apr 30 13:48:54 GMT 2015  Olly Betts <olly@survex.com>
428         * xapian-config.in: Remove superfluous comment left over from code
429           refactoring.
431 Thu Apr 30 13:47:30 GMT 2015  Olly Betts <olly@survex.com>
433         * xapian-config.in: Fix the include directory reported by --swigflags
434           for an installed copy to include the "/xapian-1.3" component for
435           a development version.
437 Thu Apr 30 12:34:14 GMT 2015  Olly Betts <olly@survex.com>
439         * api/omenquire.cc: Fix for C++11 where AutoPtr is unique_ptr.
441 Thu Apr 30 12:20:22 GMT 2015  Olly Betts <olly@survex.com>
443         * api/replication.cc,backends/chert/chert_database.cc,
444           backends/chert/chert_table.cc,backends/chert/chert_version.cc,
445           backends/glass/,backends/remote/remote-database.cc,bin/,
446           examples/copydatabase.cc,examples/quest.cc,
447           examples/xapian-metadata.cc,net/tcpclient.cc,
448           queryparser/queryparser.lemony: Add spaces between literal strings
449           and macros which expand to literal strings for C++11 compatibility.
451 Thu Apr 30 12:17:17 GMT 2015  Olly Betts <olly@survex.com>
453         * bin/xapian-tcpsrv.cc: Use STRINGIZE() to include defaults literally
454           in string for --help.
456 Thu Apr 30 10:48:11 GMT 2015  Olly Betts <olly@survex.com>
458         * HACKING: Update URL.
460 Thu Apr 30 10:47:10 GMT 2015  Olly Betts <olly@survex.com>
462         * m4/ax_cxx_compile_stdcxx_11.m4: Add support for HP's aCC (untested
463           as I no longer have access to this compiler).
465 Thu Apr 30 05:30:13 GMT 2015  Olly Betts <olly@survex.com>
467         * m4/ax_cxx_compile_stdcxx_11.m4: Add macro from autoconf-archive to
468           detect any compiler options needed to enable C++11 support (not yet
469           used).
471 Thu Apr 30 05:14:56 GMT 2015  Olly Betts <olly@survex.com>
473         * common/posixy_wrapper.cc: O_RDONLY, etc are better described as
474           "POSIX" than "ANSI".
476 Thu Apr 30 05:12:33 GMT 2015  Olly Betts <olly@survex.com>
478         * configure.ac,xapian-config.in: Rename ANSI_CXXFLAGS to ISO_CXXFLAGS
479           and talk about ISO C++ in configure messages.
481 Thu Apr 30 05:10:40 GMT 2015  Olly Betts <olly@survex.com>
483         * .gitignore: Adjust for m4 subdirectory to only match files which
484           aren't in git.
486 Thu Apr 30 04:07:05 GMT 2015  Olly Betts <olly@survex.com>
488         * xapian-config.in: Fix typo so cached result of test in
489           is_uninstalled() is actually used on subsequent calls.  Fixes #676,
490           reported (with patch) by Ryan Schmidt.
492 Wed Apr 29 03:00:32 GMT 2015  Olly Betts <olly@survex.com>
494         * backends/chert/chert_database.cc,backends/glass/glass_database.cc:
495           Fix get_changeset_revisions() not to potentially read uninitialised
496           data if a changeset file is truncated.
498 Wed Apr 29 00:09:57 GMT 2015  Olly Betts <olly@survex.com>
500         * backends/chert/chert_databasereplicator.cc: Use return value of
501           get_message_chunk() rather than ignoring it and repeating the check
502           in the caller.
504 Tue Apr 28 22:22:01 GMT 2015  Olly Betts <olly@survex.com>
506         * bin/xapian-progsrv.cc: Fix comment typo.
508 Tue Apr 28 04:51:33 GMT 2015  Olly Betts <olly@survex.com>
510         * backends/chert/chert_cursor.cc,backends/chert/chert_table.cc,
511           backends/glass/glass_cursor.cc,backends/glass/glass_table.cc:
512           Potentially increment the cursor version on cancel() or when the
513           database is reopened, and flag the current cursor version as used
514           when a cursor is rebuilt.  Fixes #675, reported by Germán M. Bravo.
515         * tests/api_backend.cc: Add regression test cursorbug1 based on
516           reproducer supplied by Germán.
518 Thu Apr 23 05:25:48 GMT 2015  Olly Betts <olly@survex.com>
520         * matcher/exactphrasepostlist.cc: When matching an exact phrase, if a
521           term doesn't occur where we want, we can advance "term 0" using
522           skip_to() based on where the term does next occur rather than just
523           calling next() on it.
525 Thu Apr 23 05:03:28 GMT 2015  Olly Betts <olly@survex.com>
527         * matcher/nearpostlist.cc: Be lazier about opening PositionList
528           objects, as that causes a read of all the data for that
529           positionlist.
531 Thu Apr 23 04:11:30 GMT 2015  Olly Betts <olly@survex.com>
533         * matcher/nearpostlist.cc: Make code for scanning window for duplicate
534           positions a little clearer.
536 Wed Apr 22 13:52:55 GMT 2015  Olly Betts <olly@tartarus.org>
538         * matcher/nearpostlist.cc: Fix "/*" within comment.
540 Wed Apr 22 12:53:37 GMT 2015  Olly Betts <olly@survex.com>
542         * matcher/nearpostlist.cc,matcher/nearpostlist.h: Reimplement OP_NEAR
543           check.  The new implementation consistently requires the terms to
544           occur at different positions, and fixes some false negatives.
545         * tests/api_query.cc: Add regression tests as loosenear1.
547 Mon Apr 20 12:53:04 GMT 2015  Olly Betts <olly@survex.com>
549         * matcher/phrasepostlist.cc,matcher/phrasepostlist.h: Reimplement
550           OP_PHRASE check for loose phrases - the existing implementation was
551           buggy, giving both false positives and false negatives in rare
552           cases.  Fixes #653, reported by Jean-Francois Dockes.
553         * tests/api_query.cc: Add regression test loosephrase1.
555 Thu Apr 16 06:51:31 GMT 2015  Olly Betts <olly@survex.com>
557         * common/errno_to_string.cc: Fix to build with Sun's C++ compiler.
559 Thu Apr 16 06:43:40 GMT 2015  Olly Betts <olly@survex.com>
561         * configure.ac: Fix XAPIAN_TEST_CXXFLAGS macro to append to the
562           existing value of the variable, not its name.
564 Wed Apr 15 11:36:40 GMT 2015  Olly Betts <olly@tartarus.org>
566         * tests/api_wrdb.cc: Just #ifdef out the problematic part of the
567           adddoc5 testcase for clang.
569 Wed Apr 15 06:25:13 GMT 2015  Olly Betts <olly@survex.com>
571         * common/serialise-double.cc: Fix bug in recent fix.
572         * tests/unittest.cc: Extend serialise_double() to provide regression
573           test.
575 Thu Apr 09 00:40:24 GMT 2015  Olly Betts <olly@survex.com>
577         * net/remoteconnection.h: Avoid compiler warning from clang in new
578           getaddrinfo() code.
580 Wed Apr 08 11:59:00 GMT 2015  Olly Betts <olly@survex.com>
582         * common/serialise-double.cc: Add missing cast to unsigned char when
583           we check if the value will fit in the double type.  On machines with
584           IEEE-754 doubles (which is most current platforms), which change
585           makes no difference as we're checking if the value cast to a double
586           is > 255.<something> which is never the case.
588 Wed Apr 08 10:42:43 GMT 2015  Olly Betts <olly@survex.com>
590         * common/serialise-double.cc: Avoid reading one byte past the end of
591           the serialised value.  In practice this was harmless on most
592           platforms, as dbl_max_mantissa is 255 for IEEE-754 format doubles,
593           and at least GCC's std::string keeps the buffer nul-terminated.
594           Reported by Germán M. Bravo in github PR#67.
595         * tests/unittest.cc: Copy the serialised value to a temporary buffer
596           before calling unserialise_double() so that valgrind can detect if
597           we read one byte past the end.
599 Tue Apr 07 23:02:21 GMT 2015  Olly Betts <olly@survex.com>
601         * backends/chert/: Fix problems with get_unique_terms() on a modified
602           chert database.
603         * tests/: Add more test coverage for get_unique_terms().
605 Mon Apr 06 00:22:22 GMT 2015  Olly Betts <olly@survex.com>
607         * tests/harness/backendmanager_multi.cc,
608           tests/harness/backendmanager_remote.cc: Cleaner code for checking
609           the backend subtype.
611 Mon Mar 30 03:22:29 GMT 2015  Olly Betts <olly@survex.com>
613         * backends/flint_lock.cc: If available, use F_DUPFD to dup to a file
614           descriptor which is >= 2.
616 Mon Mar 30 01:16:06 GMT 2015  Olly Betts <olly@survex.com>
618         * api/error.cc,common/safenetdb.h,configure.ac,generate-exceptions,
619           net/remoteconnection.h,net/tcpclient.cc,net/tcpserver.cc: Use
620           getaddrinfo() instead of gethostbyname(), as a step towards
621           IPv6 support (currently we still only look for IPv4 addresses).
622           See #374.
624 Sun Mar 29 03:56:12 GMT 2015  Olly Betts <olly@survex.com>
626         * Makefile.am,docs/Makefile.am: Add missing quoting.
628 Mon Mar 23 06:33:39 GMT 2015  Olly Betts <olly@survex.com>
630         * backends/chert/chert_table.cc,backends/glass/glass_table.cc,
631           common/io_utils.cc,common/io_utils.h,tests/api_backend.cc:
632           Avoid using fds < 3 for writable database tables, as it risks
633           corruption is some code in the same process tries to write to stdout
634           or stderr without realising it is closed.  (Partly addresses #651)
636 Sat Mar 21 22:11:53 GMT 2015  Olly Betts <olly@survex.com>
638         * backends/glass/glass_cursor.cc: Add comment warning that B can't be
639           used in GlassCursor's destructor.
641 Tue Mar 17 03:51:00 GMT 2015  Olly Betts <olly@survex.com>
643         * matcher/exactphrasepostlist.cc: Fixed reversed conditonal for
644           picking the shorter position list for an exact phrase of two terms.
645           The difference this fix makes isn't dramatic, but can be measured
646           (at least with cachegrind).  Thanks to kbwt for spotting this.
648 Fri Mar 13 11:21:37 GMT 2015  Olly Betts <olly@survex.com>
650         * backends/chert/chert_compact.cc: Make sure we open all the tables of
651           a database at the same revision when compacting.  (Fixes #649)
653 Thu Mar 12 04:09:07 GMT 2015  Olly Betts <olly@survex.com>
655         * examples/xapian-metadata.cc: Add 'list' subcommand to list all the
656           metadata keys.
658 Mon Mar 09 03:08:14 GMT 2015  Olly Betts <olly@survex.com>
660         * include/xapian/constants.h,include/xapian/queryparser.h: Doxygen
661           comment wording tweaks.
663 Mon Mar 09 03:07:36 GMT 2015  Olly Betts <olly@survex.com>
665         * include/xapian/constants.h,include/xapian/queryparser.h,
666           include/xapian/weight.h: Doxygen comment formatting tweaks.
668 Sat Mar 07 11:27:23 GMT 2015  Olly Betts <olly@tartarus.org>
670         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Extend the
671           set of characters allowed in the start of a range to be anything
672           except for '(' and characters <= ' '.  This better matches what's
673           accepted for a range end (anything except for ')' and characters <=
674           ' ').  Reported by Jani Nikula.
676 Thu Mar 05 11:13:56 GMT 2015  Olly Betts <olly@survex.com>
678         * backends/dbcheck.cc: When checking a single table, handle the
679           ".glass" extension on glass database tables, and use the extension
680           to guide the decision of which backend the table is from.
682 Thu Mar 05 04:38:21 GMT 2015  Olly Betts <olly@survex.com>
684         * backends/dbcheck.cc: Don't hard-code string length as number.
686 Mon Feb 23 04:48:24 GMT 2015  Olly Betts <olly@survex.com>
688         * api/emptypostlist.cc,api/emptypostlist.h: Fix handling of
689           OP_WILDCARD which expands to no terms when used under OP_SYNONYM.
690         * tests/api_query.cc: Regression test dualprefixwildcard1.
692 Mon Feb 23 04:26:52 GMT 2015  Olly Betts <olly@survex.com>
694         * tests/harness/testsuite.cc: Fix compilation issue with previous
695           change.
697 Thu Feb 19 08:04:17 GMT 2015  Olly Betts <olly@survex.com>
699         * tests/api_anydb.cc,tests/api_nodb.cc,tests/harness/testrunner.cc,
700           tests/harness/testsuite.cc,tests/stemtest.cc: Use std::string's
701           assign() or construct from substring rather than assigning or
702           initialising with the result of calling substr().
704 Tue Feb 17 18:31:25 GMT 2015  Olly Betts <olly@survex.com>
706         * include/Makefile.mk: Ship new file from previous commit.
708 Tue Feb 17 05:14:02 GMT 2015  Olly Betts <olly@survex.com>
710         * api/Makefile.mk,api/constinfo.cc,api/version.cc,include/xapian.h,
711           include/xapian/constinfo.h,include/xapian/stem.h,languages/stem.cc:
712           Put the list of stemmers into the vinfo struct and renamed it to
713           const_info.
715 Mon Feb 16 10:18:51 GMT 2015  Olly Betts <olly@survex.com>
717         * configure.ac,languages/: Merge generate-allsnowballheaders script
718           into collate-sbl.
720 Mon Feb 16 04:15:46 GMT 2015  Olly Betts <olly@survex.com>
722         * backends/chert/chert_check.cc: Fix xapian-check on a single table.
724 Fri Feb 13 10:18:45 GMT 2015  Olly Betts <olly@survex.com>
726         * generate-exceptions: Note that the change to not negate
727           WSAGetLastError() values internally was backported for 1.2.20.
729 Fri Feb 13 05:57:13 GMT 2015  Olly Betts <olly@survex.com>
731         * api/,common/remoteprotocol.h,exception_data.pm,
732           include/xapian/query.h,include/xapian/queryparser.h,matcher/,
733           queryparser/queryparser.lemony,tests/api_qpbackend.cc,
734           tests/queryparsertest.cc,weight/weightinternal.cc,
735           weight/weightinternal.h: Add new OP_WILDCARD query operator, which
736           expands wildcards lazily, so now we create the PostList tree for a
737           wildcard directly, rather than creating an intermediate Query tree.
738           See ticket#48.
740 Wed Feb 11 22:45:26 GMT 2015  Olly Betts <olly@survex.com>
742         * backends/glass/glass_table.cc: mid_point() should never fail to find
743           a split point, but just in case it does, return a usable answer.
745 Wed Feb 11 22:44:35 GMT 2015  Olly Betts <olly@survex.com>
747         * backends/chert/chert_table.cc: mid_point() should never fail to find
748           a split point, but just in case it does, return a usable answer.
750 Mon Feb 09 02:56:54 GMT 2015  Olly Betts <olly@survex.com>
752         * api/queryinternal.cc,matcher/localsubmatch.cc,
753           matcher/localsubmatch.h,matcher/queryoptimiser.h,tests/api_query.cc:
754           Don't convert an unweighted term which indexes all docs to an all
755           docs postlist if we need positional data for it.
757 Sun Jan 25 23:48:34 GMT 2015  Olly Betts <olly@survex.com>
759         * configure.ac: Check for declaration of fdatasync() first, as OS X
760           has a dummy implementation in the library which is not prototyped in
761           any header.  Reported by Vlad Shablinsky.
763 Fri Jan 09 05:19:20 GMT 2015  Olly Betts <olly@survex.com>
765         * backends/glass/glass_freelist.cc: Fix freelist handling to allow for
766           the newly loaded first block of the freelist being already used up.
768 Fri Jan 09 04:38:03 GMT 2015  Olly Betts <olly@survex.com>
770         * common/debuglog.cc: Add '#include "errno_to_string.h"'.
772 Thu Jan 08 05:59:01 GMT 2015  Olly Betts <olly@survex.com>
774         * backends/glass/glass_compact.cc: Fix compaction of position tables
775           for the change in key format.
777 Tue Jan 06 02:22:37 GMT 2015  Olly Betts <olly@survex.com>
779         * HACKING: Now using automake 1.15 and libtool 2.4.4.
781 Mon Jan 05 08:39:47 GMT 2015  Olly Betts <olly@survex.com>
783         * Makefile.am: Remove the generated .pc file on "make distclean".
785 Mon Jan 05 04:43:35 GMT 2015  Olly Betts <olly@survex.com>
787         * backends/glass/glass_table.cc: In enter_key(), we know the insertion
788           point will be the position after the current cursor position, so
789           there's no need to call find_in_block() to locate it.
791 Mon Jan 05 04:42:17 GMT 2015  Olly Betts <olly@survex.com>
793         * backends/glass/glass_table.cc: More assertions that c is valid.
795 Mon Jan 05 01:52:54 GMT 2015  Olly Betts <olly@survex.com>
797         * backends/chert/chert_dbcheck.cc,backends/glass/glass_dbcheck.cc:
798           Cross-check the position and postlist tables and report positional
799           data for non-existent documents.
801 Mon Jan 05 01:28:28 GMT 2015  Olly Betts <olly@survex.com>
803         * backends/glass/glass_dbcheck.cc: Fix decoding of positionlist keys -
804           this hadn't been updated for the key format change.
806 Mon Jan 05 01:25:17 GMT 2015  Olly Betts <olly@survex.com>
808         * backends/glass/glass_check.cc: Check that dir_end is odd.
810 Tue Dec 23 21:26:49 GMT 2014  Olly Betts <olly@survex.com>
812         * backends/chert/chert_table.cc: More assertions about c.
814 Tue Dec 23 04:26:38 GMT 2014  Olly Betts <olly@survex.com>
816         * backends/chert/chert_table.cc: Fix assertion to allow for c being
817           DIR_START - D2 in leaf blocks.
819 Tue Dec 23 04:01:54 GMT 2014  Olly Betts <olly@survex.com>
821         * backends/chert/chert_table.cc: Add more assertions that c has
822           suitable values.
824 Tue Dec 23 03:58:00 GMT 2014  Olly Betts <olly@survex.com>
826         * backends/chert/chert_table.cc: In enter_key(), we know the insertion
827           point will be the position after the current cursor position, so
828           there's no need to call find_in_block() to locate it.
830 Tue Dec 23 03:11:12 GMT 2014  Olly Betts <olly@survex.com>
832         * backends/chert/chert_check.cc: Add check that dir_end is odd.
834 Mon Dec 22 23:28:54 GMT 2014  Olly Betts <olly@survex.com>
836         * backends/chert/chert_table.cc: Document situations in which the
837           cursor can be left pointing before DIR_START.
839 Mon Dec 22 03:39:14 GMT 2014  Olly Betts <olly@survex.com>
841         * backends/glass/glass_freelist.cc: Add more freelist assertions.
843 Mon Dec 22 03:15:50 GMT 2014  Olly Betts <olly@survex.com>
845         * backends/glass/glass_freelist.cc: Allow restricting the number of
846           freelist entries per block by setting GLASS_FREELIST_SIZE.
848 Sun Dec 21 20:55:47 GMT 2014  Olly Betts <olly@survex.com>
850         * include/xapian/weight.h: Document the enum stat_flags values.
852 Sun Dec 21 20:51:47 GMT 2014  Olly Betts <olly@survex.com>
854         * include/xapian/weight.h: Fix indentation.
856 Sat Dec 20 10:40:44 GMT 2014  Sébastien Debrard <sebastien.debrard@gmail.com>
858         * Makefile.am,configure.ac,pkgconfig/,xapian-core.spec.in: Generate a
859           file for pkg-config.  (Fixes#540)
861 Fri Dec 19 22:30:39 GMT 2014  Olly Betts <olly@survex.com>
863         * common/errno_to_string.cc: Need stdlib.h under mingw.
865 Fri Dec 19 04:38:56 GMT 2014  Olly Betts <olly@survex.com>
867         * backends/glass/glass_check.cc: Distinguish between a block in use
868           and in the freelist, and a block in the freelist more than once.
870 Fri Dec 19 04:37:14 GMT 2014  Olly Betts <olly@survex.com>
872         * backends/glass/glass_freelist.cc,backends/glass/glass_freelist.h:
873           Avoid any mutual recursion between GlassFreeList::get_block() and
874           GlassFreeList::mark_block_unused().
876 Thu Dec 18 10:28:17 GMT 2014  Olly Betts <olly@survex.com>
878         * common/safesyssocket.h: Include safeerrno.h when we use errno.
880 Thu Dec 18 06:17:18 GMT 2014  Olly Betts <olly@survex.com>
882         * net/tcpclient.cc: Use POSIX O_NONBLOCK in preference to O_NDELAY
883           which has different semantics on BSD and System V.
885 Wed Dec 17 02:59:54 GMT 2014  Olly Betts <olly@survex.com>
887         * configure.ac: Drop probe for gethostbyaddr() - we've not used it for
888           over 8.5 years (since e33972a5).
890 Wed Dec 17 02:33:36 GMT 2014  Olly Betts <olly@survex.com>
892         * common/internaltypes.h: Take CHAR_BIT into account when choosing
893           types for uint2, uint4 and uint8.
895 Wed Dec 17 02:30:14 GMT 2014  Olly Betts <olly@survex.com>
897         * api/error.cc,backends/chert/chert_btreebase.cc,
898           backends/chert/chert_table.cc,backends/flint_lock.cc,
899           backends/glass/glass_table.cc,common/,configure.ac,
900           net/remoteconnection.cc: Add errno_to_string() function which is
901           thread-safe where a suitable alternative to strerror() exists.
903 Tue Dec 16 06:54:32 GMT 2014  Olly Betts <olly@survex.com>
905         * configure.ac: Add missing m4 quoting.  Generated configure file is
906           unchanged.
908 Tue Dec 16 06:28:21 GMT 2014  Olly Betts <olly@survex.com>
910         * configure.ac: Don't check for strerror - it's specified by C89, and
911           we weren't using the result of the check anyway.
913 Tue Dec 16 03:59:39 UTC 2014  Sébastien Debrard <sebastien.debrard@gmail.com>
915         * api/omenquire.cc,backends/multi/multi_postlist.cc,
916           tests/api_anydb.cc,tests/api_db.cc: Prefer ++x to x++.
918 Tue Dec 16 03:50:41 GMT 2014  Olly Betts <olly@survex.com>
920         * configure.ac: Define MINGW_HAS_SECURE_API under mingw to get
921           _putenv_s() declared in stdlib.h.
923 Sun Dec 14 09:42:01 GMT 2014  Olly Betts <olly@survex.com>
925         * api/omdatabase.cc,include/xapian/database.h: Make overloaded forms of
926           Database::allterms_begin() and Database::allterms_end() use default
927           parameters instead.
929 Sat Dec 13 02:48:10 GMT 2014  Olly Betts <olly@survex.com>
931         * api/error.cc,generate-exceptions,net/remoteconnection.h: On
932           Windows, avoid defining EADDRINUSE, etc if they're already defined,
933           and use WSAE* constants un-negated, as they start from a high value
934           so won't collide with E* constants.
936 Fri Dec 12 03:41:02 GMT 2014  Olly Betts <olly@survex.com>
938         * backends/glass/glass_freelist.cc: Avoid infinite recursion when we
939           hit the end of the freelist block we're reading and the end of the
940           block we're writing at the same time.
942 Thu Dec 11 20:45:28 GMT 2014  Olly Betts <olly@survex.com>
944         * backends/glass/glass_version.cc: Use str() rather than sprintf().
946 Thu Dec 11 03:21:46 GMT 2014  Olly Betts <olly@survex.com>
948         * net/tcpserver.cc: Fix comment.
950 Thu Dec 11 03:20:56 GMT 2014  Olly Betts <olly@survex.com>
952         * api/compactor.cc,api/error.cc,api/replication.cc,
953           backends/chert/chert_databasereplicator.cc,
954           backends/chert/chert_table.cc,
955           backends/glass/glass_databasereplicator.cc,
956           backends/glass/glass_table.cc: Remove unnecessary includes of
957           <cstdio> in files which used to need it for rename() but no longer
958           do.
960 Fri Dec 05 11:30:05 GMT 2014  Olly Betts <olly@survex.com>
962         * ChangeLog,ChangeLog.0,ChangeLog.examples,
963           backends/chert/chert_btreebase.cc,backends/chert/chert_database.h,
964           languages/compiler/driver.c,languages/turkish.sbl: Fix typos reported
965           by Veres Lajos.
967 Thu Dec 04 02:17:46 GMT 2014  Olly Betts <olly@survex.com>
969         * configure.ac: Fix detection of fdatasync(), which appears to have
970           been broken practically forever - this means we've probably been
971           using fsync() instead, which probably isn't a big additional
972           overhead.
974 Wed Dec 03 09:38:24 GMT 2014  Olly Betts <olly@survex.com>
976         * docs/Makefile.am: Quote png filenames we run through pngcrush to
977           avoid problems if there's an oddly-named extra PNG file in the
978           directory.
980 Tue Dec 02 02:58:59 GMT 2014  Olly Betts <olly@survex.com>
982         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
983           backends/chert/chert_databasereplicator.cc,backends/,
984           backends/glass/glass_compact.cc,backends/glass/glass_database.cc,
985           backends/glass/glass_databasereplicator.cc,
986           backends/remote/remote-database.cc,backends/remote/remote-database.h,
987           include/xapian/constants.h,include/xapian/database.h,
988           include/xapian/dbfactory.h,net/,tests/api_backend.cc: Add new flag
989           Xapian::DB_RETRY_LOCK which allows opening a database for writing
990           to wait until it can get a write lock.  (fixes#275)
992 Tue Dec 02 02:55:33 GMT 2014  Olly Betts <olly@survex.com>
994         * backends/glass/glass_database.h: Document parameter to internal
995           method
997 Sun Nov 30 15:55:20 GMT 2014  James Aylett <james@tartarus.org>
999         * HACKING: improve OS X docs build information.
1001 Thu Nov 27 04:00:38 GMT 2014  Olly Betts <olly@survex.com>
1003         * backends/dbcheck.cc,backends/flint_lock.cc,backends/flint_lock.h,
1004           examples/copydatabase.cc,tests/api_backend.cc: Drop support code for
1005           building on OS/2 with EMX - EMX was last updated in 2001 and comes
1006           with GCC 3.2.1, which pre-dates C++11 and we're going to require
1007           a compiler with good C++11 support in the near future.
1009 Thu Nov 27 03:15:51 GMT 2014  Olly Betts <olly@survex.com>
1011         * HACKING: Rename svn-ci to xapian-commit (see #621).
1013 Thu Nov 27 03:05:18 GMT 2014  Olly Betts <olly@survex.com>
1015         * backends/flint_lock.cc: Use F_OFD_SETLK where available, which
1016           avoids having to fork() a child process to hold the lock.  This
1017           currently requires Linux kernel >= 3.15, but it has been submitted
1018           to POSIX so hopefully will be widely supported eventually.  Thanks
1019           to Austin Clements for pointing out this now exists.
1021 Wed Nov 26 04:03:45 GMT 2014  Olly Betts <olly@survex.com>
1023         * include/xapian/geospatial.h: Drop documentation of parameter which
1024           the method doesn't actually take.
1026 Wed Nov 26 04:03:24 GMT 2014  Olly Betts <olly@survex.com>
1028         * include/xapian/enquire.h: Fix incorrect parameter name in doxygen
1029           comment.
1031 Wed Nov 26 03:29:28 GMT 2014  Olly Betts <olly@survex.com>
1033         * docs/doxygen_source.conf.in: @MAKEINDEX@ isn't substituted, so just
1034           use literal 'makeindex'.
1036 Wed Nov 26 03:28:32 GMT 2014  Olly Betts <olly@survex.com>
1038         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Update to
1039           avoid warnings about obsolete tags from newer doxygen.
1041 Tue Nov 25 21:13:51 GMT 2014  Olly Betts <olly@survex.com>
1043         * configure.ac: Update link to cygwin FAQ.
1045 Tue Nov 25 01:55:17 GMT 2014  Olly Betts <olly@survex.com>
1047         * HACKING: Update details of building Xapian packages.
1049 Tue Nov 25 01:48:44 GMT 2014  Olly Betts <olly@survex.com>
1051         * HACKING: Update for SVN to git migration.
1053 Mon Nov 24 19:50:32 GMT 2014  Olly Betts <olly@survex.com>
1055         * NEWS,configure.ac: Update for 1.3.2.
1057 Mon Nov 24 03:59:02 GMT 2014  Olly Betts <olly@survex.com>
1059         * languages/Makefile.mk: Add missing '\' at end of line in previous
1060           commit.
1062 Mon Nov 24 03:14:22 GMT 2014  Olly Betts <olly@survex.com>
1064         * languages/: Install the stopword lists as
1065           ${pkgdatadir}/stopwords/LANG.list.
1067 Sun Nov 23 23:56:02 GMT 2014  Olly Betts <olly@survex.com>
1069         * HACKING,INSTALL,NEWS,NEWS.SKELETON,api/compactor.cc,
1070           api/replication.cc,backends/Makefile.mk,backends/brass/,
1071           backends/databasereplicator.cc,backends/dbcheck.cc,
1072           backends/dbfactory.cc,backends/glass/,bin/Makefile.mk,
1073           common/Makefile.mk,common/pack.h,common/pretty.h,configure.ac,docs/,
1074           include/xapian/,net/replication_protocol.rst,tests/,tests/harness/:
1075           Rename 'brass' backend to 'glass'.
1077 Sun Nov 23 22:23:00 GMT 2014  Olly Betts <olly@survex.com>
1079         * backends/brass/brass_freelist.cc,backends/brass/brass_freelist.h:
1080           Set the revision in BrassFreeList::write_block().
1082 Thu Nov 20 21:36:35 GMT 2014  Olly Betts <olly@survex.com>
1084         * backends/brass/brass_freelist.h: Reset flw_appending when we unpack
1085           a freelist.
1087 Thu Nov 20 21:36:15 GMT 2014  Olly Betts <olly@survex.com>
1089         * backends/brass/brass_freelist.cc: Fix comment typo.
1091 Thu Nov 20 03:53:32 GMT 2014  Olly Betts <olly@survex.com>
1093         * backends/brass/brass_freelist.cc: Fix end-of-block condition when
1094           walking the freelist during database consistency checking.
1096 Thu Nov 20 02:32:37 GMT 2014  Olly Betts <olly@survex.com>
1098         * backends/brass/brass_freelist.cc: Wrap comment line.
1100 Thu Nov 20 02:31:54 GMT 2014  Olly Betts <olly@survex.com>
1102         * matcher/exactphrasepostlist.cc: Straighten out confusing comments.
1104 Sun Nov 16 23:49:38 GMT 2014  Olly Betts <olly@survex.com>
1106         * NEWS: Update.
1108 Thu Nov 13 20:35:25 GMT 2014  Olly Betts <olly@survex.com>
1110         * backends/brass/brass_freelist.cc: Wrap comment line.
1112 Tue Nov 11 22:17:48 GMT 2014  Olly Betts <olly@survex.com>
1114         * api/queryinternal.cc,api/queryinternal.h: Move all the get_op()
1115           definitions out of the header as they're virtual and there's not
1116           much scope for devirtualisation.
1118 Tue Nov 11 02:58:05 GMT 2014  Olly Betts <olly@survex.com>
1120         * exception_data.pm: Just have one copy of the licence boilerplate.
1122 Sun Nov 09 22:38:04 GMT 2014  Olly Betts <olly@survex.com>
1124         * NEWS: Update.
1126 Fri Nov 07 00:49:22 GMT 2014  Olly Betts <olly@survex.com>
1128         * queryparser/lemon.c: Sync change from upstream: "Modify the
1129           %nonassoc directive in lemon so that it generates a run-time error
1130           rather than a parsing conflict. This changes is due to a bug report
1131           on the mailing list. SQLite does not use the %nonassoc directive in
1132           its grammar so this change does not affect SQLite."  Generated code
1133           is identical.
1135 Fri Nov 07 00:44:57 GMT 2014  Olly Betts <olly@survex.com>
1137         * queryparser/lemon.c: Sync change from upstream: "Fix harmless
1138           compiler warning in LEMON."  Generated code is identical.
1140 Fri Nov 07 00:39:44 GMT 2014  Olly Betts <olly@survex.com>
1142         * queryparser/lemon.c: Sync change from upstream: "In LEMON, limit the
1143           size of the grammar file to 100MB. This ensures that the program
1144           will never experience integer overflow. To be doubly sure, use
1145           calloc() instead of malloc() when allocating arrays." Generated code
1146           is identical.
1148 Fri Nov 07 00:34:26 GMT 2014  Olly Betts <olly@survex.com>
1150         * queryparser/lemon.c: Sync change from upstream: "Add the
1151           "%token_class" directive to the LEMON parser generator. This opens
1152           up the possibility of simplifying the parser. Also remove all calls
1153           to sprintf(), strcpy(), and strcat() from LEMON to avoid compiler
1154           warnings on OpenBSD. (Aside: It is this change to avoid harmless
1155           compiler warnings that was the cause of the reason spat of bugs.)"
1156           Generated code is identical aside from whitespace changes in
1157           queryparser_token.h.
1159 Fri Nov 07 00:17:18 GMT 2014  Olly Betts <olly@survex.com>
1161         * queryparser/lemon.c: Sync change from upstream: "In Lemon, when
1162           comparing the output to the *.h file to see if it has changed, make
1163           sure that the proposed new output and the preexisting output are the
1164           same size before deciding that they are the same".  Generated code
1165           is identical, but this will fix misbehaviour in a build from a
1166           non-clean tree if new tokens get appended to queryparser_token.h.
1168 Thu Nov 06 22:23:27 GMT 2014  Olly Betts <olly@survex.com>
1170         * HACKING: Now using doxygen 1.8.8.
1172 Thu Nov 06 04:18:32 GMT 2014  Olly Betts <olly@survex.com>
1174         * HACKING: Now using libtool 2.4.3.
1176 Wed Nov 05 21:38:45 GMT 2014  Olly Betts <olly@survex.com>
1178         * backends/chert/chert_check.cc: Handle DBCHECK_FIX for a zero sized
1179           .DB file.
1181 Wed Nov 05 21:02:21 GMT 2014  Olly Betts <olly@survex.com>
1183         * backends/chert/chert_check.cc: After we successfully regenerate
1184           baseA, remove any empty baseB file to prevent it causing problems.
1185           Tracked down with help from Phil Hands.
1187 Wed Nov 05 20:58:27 GMT 2014  Olly Betts <olly@survex.com>
1189         * backends/chert/chert_check.cc: Fix DBCHECK_FIX to be able to find a
1190           level 0 root block (happens when a table has sufficiently little
1191           data in that it all fits in one block).
1193 Sun Nov 02 21:14:43 GMT 2014  Olly Betts <olly@survex.com>
1195         * docs/deprecation.rst: Fix typo.
1197 Tue Oct 28 23:35:10 GMT 2014  Olly Betts <olly@survex.com>
1199         * docs/replication.rst: Fix typo.
1201 Tue Oct 28 02:34:54 GMT 2014  Olly Betts <olly@survex.com>
1203         * docs/postingsource.rst: Use a modern class in postingsource example.
1204           (Noted by James Aylett)
1206 Mon Oct 27 21:06:55 GMT 2014  Olly Betts <olly@survex.com>
1208         * docs/,net/Makefile.mk,net/remote_protocol.rst,
1209           net/replication_protocol.rst: Move the protocol docs for the remote
1210           and replication protocols into the net/ subdirectory.
1212 Mon Oct 27 19:19:59 GMT 2014  Olly Betts <olly@survex.com>
1214         * Makefile.am,api/Makefile.mk,api/dir_contents,backends/Makefile.mk,
1215           backends/brass/Makefile.mk,backends/brass/dir_contents,
1216           backends/chert/Makefile.mk,backends/chert/dir_contents,
1217           backends/dir_contents,backends/inmemory/Makefile.mk,
1218           backends/inmemory/dir_contents,backends/multi/Makefile.mk,
1219           backends/multi/dir_contents,backends/remote/Makefile.mk,
1220           backends/remote/dir_contents,bin/Makefile.mk,bin/dir_contents,
1221           common/Makefile.mk,common/dir_contents,configure.ac,dir_contents,
1222           docs/,examples/Makefile.mk,examples/dir_contents,expand/Makefile.mk,
1223           expand/dir_contents,geospatial/Makefile.mk,geospatial/dir_contents,
1224           include/Makefile.mk,include/dir_contents,include/xapian/dir_contents,
1225           languages/Makefile.mk,languages/dir_contents,m4-macros/dir_contents,
1226           m4/dir_contents,matcher/Makefile.mk,matcher/dir_contents,
1227           net/Makefile.mk,net/dir_contents,preautoreconf,
1228           queryparser/Makefile.mk,queryparser/dir_contents,tests/Makefile.am,
1229           tests/dir_contents,tests/harness/Makefile.mk,
1230           tests/harness/dir_contents,tests/perftest/Makefile.mk,
1231           tests/perftest/dir_contents,tests/soaktest/Makefile.mk,
1232           tests/soaktest/dir_contents,unicode/Makefile.mk,unicode/dir_contents,
1233           weight/Makefile.mk,weight/dir_contents: Remove the dir_contents files
1234           and all the machinery to handle them.
1236 Sat Oct 25 19:25:06 GMT 2014  Olly Betts <olly@survex.com>
1238         * api/query.cc,api/queryinternal.cc,api/smallvector.h,
1239           include/xapian/query.h: Stop using a reference where we may end up
1240           passing *NULL, as that's invalid.  Thanks Nick Lewycky and ubsan
1241           for helping track this down.
1242         * tests/api_postingsource.cc: Fix testsuite to avoid passing literal
1243           NULL - pass nullptr for C++11 and don't bother with that part of
1244           the testcase for older C++.
1246 Sat Oct 25 19:05:07 GMT 2014  Olly Betts <olly@survex.com>
1248         * weight/dlhweight.cc,weight/dphweight.cc: Avoid dividing by zero when
1249           the collection size is 0.
1251 Fri Oct 24 23:04:24 GMT 2014  Gaurav Arora <gauravarora.daiict@gmail.com>
1253         * api/registry.cc,include/xapian/weight.h,tests/api_backend.cc,
1254           tests/api_nodb.cc,tests/api_weight.cc,weight/Makefile.mk,
1255           weight/lmweight.cc: Add Unigram LMWeight class.
1257 Tue Oct 21 19:19:32 GMT 2014  Olly Betts <olly@survex.com>
1259         * NEWS: Update for 1.2.19 release.
1261 Mon Oct 20 00:47:32 GMT 2014  Olly Betts <olly@survex.com>
1263         * .gitignore,docs/.gitignore,tests/.gitignore,unicode/.gitignore:
1264           Update to ignore new generated files.
1266 Sat Oct 18 06:15:52 GMT 2014  Olly Betts <olly@survex.com>
1268         * include/xapian/enquire.h: Don't provide a default expansion scheme
1269           name in Enquire::set_expansion_scheme().
1271 Fri Oct 17 00:33:55 GMT 2014  Olly Betts <olly@survex.com>
1273         * api/queryinternal.cc,matcher/: Split NearPostList out into separate
1274           source file and header.
1276 Wed Oct 15 04:33:31 GMT 2014  Olly Betts <olly@survex.com>
1278         * api/queryinternal.cc,matcher/exactphrasepostlist.cc: We never try to
1279           build an ExactPhrasePostList over 0 or 1 terms, so simply assert we
1280           don't, rather than having an explicit check for it in the code.
1282 Tue Oct 14 02:47:02 GMT 2014  Olly Betts <olly@survex.com>
1284         * matcher/phrasepostlist.cc,tests/api_backend.cc: If the anchor term
1285           for a phrase is the first or last, set the min or max to its
1286           position respectively.  Fixes the testcase in #657, but may not be
1287           a complete fix.
1289 Sun Oct 12 12:03:10 GMT 2014  Olly Betts <olly@survex.com>
1291         * NEWS: Update.
1293 Fri Oct 10 10:53:38 GMT 2014  Olly Betts <olly@survex.com>
1295         * backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc: The
1296           table is sync-ed after the base file, so it's the last table we want
1297           to full-sync, not the last base file.
1299 Thu Oct 09 02:39:00 GMT 2014  Olly Betts <olly@survex.com>
1301         * common/debuglog.h: Suppress unused typedef warnings from debugging
1302           logging macros, which occur in functions which always exit via
1303           throwing an exception.
1305 Thu Oct 09 01:45:00 GMT 2014  Olly Betts <olly@survex.com>
1307         * tests/harness/fdtracker.cc: Fix code typo in recent change to skip
1308           apparent leaks of /dev/urandom.
1310 Thu Oct 09 01:43:02 GMT 2014  Olly Betts <olly@survex.com>
1312         * common/pretty.h: Fix debug logging code to compile with clang.
1313           (fixes #657, reported by Germán M. Bravo)
1315 Wed Oct 08 04:43:05 GMT 2014  Olly Betts <olly@survex.com>
1317         * matcher/multimatch.cc: If an empty RSet is specified, just handle it
1318           as if no RSet were specified.
1320 Mon Oct 06 21:41:58 GMT 2014  Olly Betts <olly@survex.com>
1322         * tests/Makefile.am: Remove .replicatmp upon "make clean".
1324 Fri Sep 19 05:31:15 GMT 2014  Olly Betts <olly@survex.com>
1326         * include/xapian/enquire.h: Fix compilation with clang.  Reported by
1327           Germán M. Bravo.
1329 Fri Sep 12 17:54:34 GMT 2014  Olly Betts <olly@survex.com>
1331         * docs/overview.rst: Add missing database path to example of using
1332           xapian-progsrv in a stub database file.
1334 Thu Sep 11 21:33:49 GMT 2014  Olly Betts <olly@survex.com>
1336         * include/Makefile.mk,include/xapian/enquire.h,
1337           include/xapian/iterator.h: Add simple API to help with creating
1338           language-idiomatic iterator wrappers.
1340 Wed Sep 10 17:02:18 GMT 2014  Olly Betts <olly@survex.com>
1342         * api/queryinternal.cc: If we hit an unknown query serialisation,
1343           report the numeric code for it in the exception thrown.
1345 Wed Sep 10 16:59:20 GMT 2014  Olly Betts <olly@survex.com>
1347         * tests/queryparsertest.cc: Enable some disabled cases which actually
1348           work (in some cases with slightly tweaked expected answers which are
1349           equivalent to those that were shown).
1351 Fri Sep 05 17:41:53 GMT 2014  Olly Betts <olly@survex.com>
1353         * tests/harness/fdtracker.cc: Don't report apparent leaks of fds
1354           opened on /dev/urandom - at least on Linux, something in the C
1355           library seems to lazily open it, and the report of a possible leak
1356           followed by assurance that it's OK really is just noise we could
1357           do without.
1359 Fri Sep 05 14:06:08 GMT 2014  Olly Betts <olly@survex.com>
1361         * common/pretty.h: Add new brass-related types.
1363 Thu Sep 04 20:51:16 GMT 2014  Olly Betts <olly@survex.com>
1365         * backends/dbfactory.cc: Fix incorrect return type in logging
1366           annotations for InMemory::open().
1368 Thu Sep 04 20:48:37 GMT 2014  Olly Betts <olly@survex.com>
1370         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
1371           Fix logging annotations for get_freqs() to reflect that it now has
1372           void return type.
1374 Thu Sep 04 20:21:32 GMT 2014  Olly Betts <olly@survex.com>
1376         * api/,backends/brass/,backends/chert/,backends/dbfactory_remote.cc,
1377           matcher/mergepostlist.cc,matcher/remotesubmatch.cc,
1378           net/progclient.cc: Add missing RETURN() markup for debug logging,
1379           highlighted by warning from recent GCC.
1381 Thu Sep 04 18:02:38 GMT 2014  Olly Betts <olly@survex.com>
1383         * backends/brass/brass_freelist.cc,backends/brass/brass_freelist.h:
1384           Make the BrassTable parameter a const pointer.
1386 Thu Sep 04 17:13:57 GMT 2014  Olly Betts <olly@survex.com>
1388         * common/io_utils.cc: Reading or writing a block will almost always
1389           complete in one call, so streamline that case.
1391 Wed Sep 03 19:30:00 GMT 2014  Olly Betts <olly@survex.com>
1393         * common/internaltypes.h: Update comment to reflect C++11 now being
1394           out.
1396 Wed Sep 03 19:29:09 GMT 2014  Olly Betts <olly@survex.com>
1398         * common/internaltypes.h,configure.ac: Make uint2 available.
1400 Wed Sep 03 19:27:41 GMT 2014  Olly Betts <olly@survex.com>
1402         * backends/brass/brass_database.h: Remove method which is declared but
1403           never defined.
1405 Wed Sep 03 18:52:40 GMT 2014  Olly Betts <olly@survex.com>
1407         * generate-exceptions,include/xapian/: Use XAPIAN_IN_XAPIAN_H rather
1408           than XAPIAN_INCLUDED_XAPIAN_H in the direct inclusion of subheader
1409           checks.  Currently neither will catch the case of the user including
1410           a sub-header after <xapian.h> since the include guard for the
1411           subheader will stop us getting to the direct inclusion check, but
1412           XAPIAN_IN_XAPIAN_H will work if we move the check outside the
1413           include guard.
1415 Wed Sep 03 18:29:41 GMT 2014  Olly Betts <olly@survex.com>
1417         * include/xapian/constants.h: Hide internal constants from external
1418           users.
1420 Tue Sep 02 14:15:50 GMT 2014  Olly Betts <olly@survex.com>
1422         * backends/brass/brass_spellingwordslist.h: Explicit include
1423           brass_cursor.h since we actually use BrassCursor here.
1425 Mon Sep 01 22:03:11 GMT 2014  Olly Betts <olly@survex.com>
1427         * tests/api_backend.cc: New testcase readonlyparentdir1 to ensure that
1428           commit works with a read-only parent directory.
1430 Mon Sep 01 21:51:45 GMT 2014  Olly Betts <olly@survex.com>
1432         * tests/harness/testrunner.h: Drop "flint" flag - flint was removed
1433           from trunk some time ago.
1435 Mon Sep 01 21:42:31 GMT 2014  Olly Betts <olly@survex.com>
1437         * backends/brass/: Eliminate brass_doclen_t in favour of just using
1438           Xapian::termcount.
1440 Mon Sep 01 21:28:39 GMT 2014  Olly Betts <olly@survex.com>
1442         * backends/brass/brass_check.h: Tweak to ease upcoming big merge.
1444 Mon Sep 01 20:59:40 GMT 2014  Olly Betts <olly@survex.com>
1446         * backends/brass/,backends/dbcheck.cc: Only create a btree entry for
1447           the document data if it is non-empty.  The table is now lazily
1448           created, so won't exist if no documents have document data set.
1450 Mon Sep 01 16:54:44 GMT 2014  Olly Betts <olly@survex.com>
1452         * backends/brass/brass_record.cc,backends/brass/brass_record.h: Remove
1453           BrassRecordTable::get_doccount() as it is no longer used.
1455 Mon Sep 01 16:51:04 GMT 2014  Olly Betts <olly@survex.com>
1457         * backends/brass/: Track doccount in the database stats.
1459 Mon Sep 01 16:27:15 GMT 2014  Olly Betts <olly@survex.com>
1461         * backends/brass/brass_database.cc: Update comment and exception
1462           message not to talk about "consistent state", as that was to do
1463           with the base files.
1465 Mon Sep 01 14:57:02 GMT 2014  Olly Betts <olly@survex.com>
1467         * backends/brass/brass_database.cc: Explicitly include brass_defs.h.
1469 Mon Sep 01 14:48:01 GMT 2014  Olly Betts <olly@survex.com>
1471         * backends/brass/: Eliminate backends/brass/brass_types.h.
1473 Fri Aug 29 21:06:22 GMT 2014  Olly Betts <olly@survex.com>
1475         * backends/dbcheck.cc: Fix checking a single brass table.
1477 Thu Aug 28 16:04:59 GMT 2014  Olly Betts <olly@survex.com>
1479         * backends/brass/brass_check.cc,backends/chert/chert_check.cc,
1480           bin/xapian-check.cc,include/xapian/constants.h: Rename
1481           DBCHECK_SHOW_BITMAP to DBCHECK_SHOW_FREELIST.
1483 Tue Aug 26 22:31:32 GMT 2014  Olly Betts <olly@survex.com>
1485         * NEWS: Update.
1487 Fri Aug 22 09:09:52 GMT 2014  Gaurav Arora <gauravarora.daiict@gmail.com>
1489         * api/,backends/brass/,backends/chert/,
1490           backends/contiguousalldocspostlist.cc,
1491           backends/contiguousalldocspostlist.h,backends/database.h,
1492           backends/inmemory/inmemory_database.cc,
1493           backends/inmemory/inmemory_database.h,
1494           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
1495           backends/remote/,common/remoteprotocol.h,docs/sorting.rst,
1496           include/xapian/database.h,include/xapian/postingiterator.h,
1497           include/xapian/weight.h,matcher/,net/remoteserver.cc,
1498           net/remoteserver.h,tests/,weight/: Provide the number of distinct
1499           terms in the document to weighting schemes.  The current
1500           implementation for the disk-based backends is a bit inefficient as
1501           it has to look at the termlist table entry for the document.
1503 Thu Aug 21 12:29:57 GMT 2014  Olly Betts <olly@survex.com>
1505         * weight/weight.cc: Add missing parameter to debug logging for
1506           Weight::init_().
1508 Tue Aug 19 14:25:39 GMT 2014  Olly Betts <olly@survex.com>
1510         * backends/brass/brass_table.h: Don't sync handles for tables which
1511           aren't open.  Reported by Austin Clements.
1513 Fri Aug 15 13:13:43 GMT 2014  Olly Betts <olly@survex.com>
1515         * HACKING: freecode no longer accepts updates, so drop that item from
1516           the release checklist.
1518 Wed Aug 13 23:55:24 GMT 2014  Olly Betts <olly@survex.com>
1520         * backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc:
1521           Only full sync the final base file written.
1523 Mon Aug 11 05:30:20 GMT 2014  Olly Betts <olly@survex.com>
1525         * configure.ac: For Sun's C++ compiler, pass -library=Crun separately
1526           since libtool looks for " -library=stlport4 " (with the spaces).
1527           (fixes#650)
1529 Mon Aug 11 03:00:15 GMT 2014  Olly Betts <olly@survex.com>
1531         * configure.ac: Rename XAPIAN_TEST_CXXFLAGS_ to XAPIAN_TEST_CXXFLAGS
1532           (since the latter is never used) and make it take a variable to
1533           add the flags to.  Also, fix it to restore CXXFLAGS correctly if
1534           the success case contains "break".
1536 Wed Aug 06 10:49:46 GMT 2014  Olly Betts <olly@survex.com>
1538         * include/xapian/compactor.h: Fix formatting of doxygen comment.
1540 Wed Aug 06 10:49:20 GMT 2014  Olly Betts <olly@survex.com>
1542         * include/xapian/constants.h: Whitespace tweak.
1544 Wed Aug 06 10:08:09 GMT 2014  Olly Betts <olly@survex.com>
1546         * backends/brass/brass_version.cc,common/io_utils.h,
1547           include/xapian/constants.h: Add DB_FULL_SYNC flag - if this is set
1548           for a database, we use the Mac OS X F_FULL_SYNC instead of
1549           fdatasync()/fsync()/etc on the version file when committing.
1551 Mon Aug 04 05:58:13 GMT 2014  Olly Betts <olly@survex.com>
1553         * backends/brass/brass_compact.cc: Whitespace tweak.
1555 Mon Aug 04 05:57:27 GMT 2014  Olly Betts <olly@survex.com>
1557         * backends/brass/brass_compact.cc: When compacting, sync all the
1558           tables together at the end.
1560 Mon Aug 04 05:42:21 GMT 2014  Olly Betts <olly@survex.com>
1562         * backends/brass/brass_compact.cc,backends/brass/brass_version.cc:
1563           Clean up temporary file in BrassVersion::sync() in all failure
1564           cases.
1566 Mon Aug 04 05:21:02 GMT 2014  Olly Betts <olly@survex.com>
1568         * backends/brass/: In DB_DANGEROUS mode, update the version file
1569           in-place.
1571 Fri Aug 01 02:49:57 GMT 2014  Olly Betts <olly@survex.com>
1573         * backends/brass/brass_compact.cc: Lock the target database while
1574           we're compacting to it, which has the side effect of creating the
1575           'flintlock' file there.
1577 Fri Aug 01 02:35:35 GMT 2014  Olly Betts <olly@survex.com>
1579         * include/xapian/visibility.h: Add link to GCC Visibility wiki page.
1581 Thu Jul 31 02:54:40 GMT 2014  Olly Betts <olly@survex.com>
1583         * tests/api_weight.cc,weight/bb2weight.cc: Avoid calculating logs of 0
1584           or negative values by clamping the normalise wdf to at most one less
1585           than the collection frequency, and the collection size to at least
1586           2.
1588 Thu Jul 31 02:48:35 GMT 2014  Olly Betts <olly@survex.com>
1590         * tests/api_weight.cc,weight/bb2weight.cc: Fix upper bound for
1591           BB2Weight to not be scaled twice by wqf and factor.
1593 Wed Jul 30 05:48:46 GMT 2014  Olly Betts <olly@survex.com>
1595         * weight/bb2weight.cc: Fix comment typo, and capitalise "Stirling" in
1596           comments.
1598 Wed Jul 30 05:47:31 GMT 2014  Olly Betts <olly@survex.com>
1600         * weight/bb2weight.cc: Whitespace cleanup.
1602 Wed Jul 30 05:43:59 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1604         * include/xapian/weight.h,weight/bb2weight.cc: Optimise BB2Weight and
1605           fix incorrect upper bound in some cases.
1607 Tue Jul 29 07:20:57 GMT 2014  Olly Betts <olly@survex.com>
1609         * backends/brass/brass_version.cc: Remove assertion that table sizes
1610           are all the same, and redundant assertion that the unserialised
1611           blocksize is >= 2048.  Fixes set-but-not-used warning in
1612           non-assertion build.
1614 Mon Jul 28 06:35:45 GMT 2014  Olly Betts <olly@survex.com>
1616         * backends/brass/brass_databasereplicator.cc,
1617           backends/brass/brass_databasereplicator.h,
1618           backends/brass/brass_table.cc: Replace enum table_id with enum
1619           Brass::table_type.
1621 Mon Jul 28 04:28:12 GMT 2014  Olly Betts <olly@survex.com>
1623         * NEWS: Note the freelist implementation fixed #40.
1625 Mon Jul 28 04:26:07 GMT 2014  Olly Betts <olly@survex.com>
1627         * api/compactor.cc,backends/brass/,backends/dbcheck.cc,
1628           tests/api_wrdb.cc: Eliminate the base files, and instead store the
1629           root block and freelist pointers in the "iambrass" file.
1631 Mon Jul 28 03:22:22 GMT 2014  Olly Betts <olly@survex.com>
1633         * backends/brass/brass_databasereplicator.cc: Remove variable which is
1634           set but never used.
1636 Sun Jul 27 01:56:58 GMT 2014  Olly Betts <olly@survex.com>
1638         * backends/dbcheck.cc: Don't try to write output when no output stream
1639           is specified in the case where the database open fails and so we
1640           can't check changes files.
1642 Thu Jul 24 21:12:23 GMT 2014  Olly Betts <olly@survex.com>
1644         * NEWS: Update.
1646 Fri Jul 11 10:44:48 GMT 2014  Olly Betts <olly@survex.com>
1648         * weight/bm25weight.cc: Improve BM25 upper bound in the case when our
1649           wdf upper bound > our document length lower bound.  Thanks to
1650           Craig Macdonald for pointing out this trick.
1652 Thu Jul 10 13:29:50 GMT 2014  Olly Betts <olly@survex.com>
1654         * weight/bm25weight.cc: Pre-multiply termweight by (param_k1 + 1).
1656 Sat Jun 28 11:00:49 GMT 2014  Olly Betts <olly@survex.com>
1658         * languages/Makefile.mk: Sort the stop.list files (since loading a
1659           sorted list is likely to be more efficient) and remove any duplicate
1660           entries.
1662 Sat Jun 28 10:48:03 GMT 2014  Olly Betts <olly@survex.com>
1664         * languages/stopwords/finnish/stop.txt,
1665           languages/stopwords/norwegian/stop.txt: Remove duplicate entries.
1667 Sat Jun 28 10:38:56 GMT 2014  Olly Betts <olly@survex.com>
1669         * languages/stopwords/russian/stop.txt: Convert from KOI8-R to UTF-8.
1671 Mon Jun 23 02:26:24 GMT 2014  Olly Betts <olly@survex.com>
1673         * configure.ac: configure.ac: Add hints for which package to install
1674           for rst2html
1676 Mon Jun 23 00:54:05 GMT 2014  Olly Betts <olly@survex.com>
1678         * configure.ac: Use AS_MKDIR_P instead of test -d || mkdir.
1680 Sun Jun 22 07:32:11 GMT 2014  Olly Betts <olly@survex.com>
1682         * NEWS: Update.
1684 Sat Jun 21 03:45:19 GMT 2014  Olly Betts <olly@survex.com>
1686         * docs/Makefile.am: Use $(MKDIR_P) instead of test -d || mkdir 3
1687           times.
1689 Sat Jun 21 03:44:37 GMT 2014  Olly Betts <olly@survex.com>
1691         * languages/Makefile.mk: Generate the directories for the minimised
1692           stopword files in a VPATH build.
1694 Tue Jun 17 13:36:40 GMT 2014  Assem Chelli <assem.ch@gmail.com>
1696         * include/xapian/queryparser.h: Add the example of initializing
1697           SimpleStopper using a file as a doccomment.
1699 Tue Jun 17 13:30:09 GMT 2014  Olly Betts <olly@survex.com>
1701         * languages/Makefile.mk: Remove trailing whitespace (some of which
1702           breaks the parsing to get the lists of source files to pass to
1703           doxygen).
1705 Tue Jun 17 13:24:59 GMT 2014  Assem Chelli <assem.ch@gmail.com>
1707         * languages/: Add stopwords lists from Snowball plus an Arabic one.
1709 Tue Jun 17 11:48:12 GMT 2014  Olly Betts <olly@survex.com>
1711         * weight/dlhweight.cc: Fix comment typo.
1713 Tue Jun 17 11:46:40 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1715         * weight/dlhweight.cc: Improve the upper bound on DLH ~3-4 times.
1717 Tue Jun 17 11:32:22 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1719         * include/xapian/weight.h,weight/dphweight.cc: Combine factor into
1720           constants calculated in init().  Improve get_maxpart() a little
1721           in the (common) case where the wdf upper bound is less than half
1722           the document length upper bound.
1724 Tue Jun 17 03:42:36 GMT 2014  Olly Betts <olly@survex.com>
1726         * tests/api_unicode.cc,unicode/UnicodeData-README.txt,
1727           unicode/UnicodeData.txt: Update to Unicode 7.0.0.
1729 Mon Jun 16 14:13:18 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1731         * weight/dphweight.cc: Improved upper bound for DPH.
1733 Mon Jun 16 13:58:24 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1735         * include/xapian/weight.h,weight/ifb2weight.cc,weight/ineb2weight.cc,
1736           weight/inl2weight.cc: Include 'factor' in the constants we calculate
1737           in init_().
1739 Mon Jun 16 13:53:05 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1741         * include/xapian/weight.h,weight/dlhweight.cc: DLH optimization.
1743 Mon Jun 16 13:02:24 GMT 2014  Olly Betts <olly@survex.com>
1745         * HACKING: Need python3-sphinx to generate docs for python3.
1747 Mon Jun 16 12:37:13 GMT 2014  Assem Chelli <assem.ch@gmail.com>
1749         * HACKING: Note sphinx-doc now needed (for Python bindings API docs).
1751 Mon Jun 16 05:35:03 GMT 2014  Olly Betts <olly@survex.com>
1753         * HACKING,configure.ac,docs/Makefile.am,docs/doxygen_api.conf.in:
1754           Don't build, ship or install PDF versions of the API docs by
1755           default, but provide an easy way for people to build it for
1756           themselves if they want it.
1758 Mon Jun 16 04:20:40 GMT 2014  Olly Betts <olly@survex.com>
1760         * include/xapian/queryparser.h: Improve the descriptions of the
1761           stem_strategy values.  (Reported by "oilap" on #xapian)
1763 Fri Jun 13 07:52:53 GMT 2014  Olly Betts <olly@survex.com>
1765         * weight/dphweight.cc: Fix some comment typos.
1767 Fri Jun 13 07:47:32 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1769         * include/xapian/weight.h,weight/dphweight.cc: Optimized DPH code.
1771 Fri Jun 13 01:39:07 GMT 2014  Olly Betts <olly@survex.com>
1773         * examples/quest.cc: Fix ordering of "bm25" and "bool" in allegedly
1774           sorted list, so that --weight bm25 and --weight bool work.
1776 Thu Jun 12 13:49:19 GMT 2014  Olly Betts <olly@survex.com>
1778         * matcher/extraweightpostlist.h: Add an assertion that get_sumextra()
1779           returns a weight contribution which is <= the upper bound which
1780           get_maxextra() returns.
1782 Thu Jun 12 13:30:55 GMT 2014  Olly Betts <olly@survex.com>
1784         * api/leafpostlist.cc,matcher/synonympostlist.cc: Add assertions that
1785           get_sumpart() returns a weight contribution which is <= the upper
1786           bound which get_maxpart() returns.
1788 Wed Jun 11 05:34:16 GMT 2014  Olly Betts <olly@survex.com>
1790         * languages/hungarian.sbl: Fix incorrect Unicode codepoints for
1791           o-double-acute and u-double-acute in Hungarian Snowball stemmer.
1792           Reported by Tom Lane to snowball-discuss.
1794 Tue Jun 10 10:59:18 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1796         * include/xapian/weight.h,weight/ineb2weight.cc: Optimized IneB2:
1797           Reduced number of calculations in get_sumpart and tightened upper
1798           bound.
1800 Tue Jun 10 10:23:09 GMT 2014  Olly Betts <olly@survex.com>
1802         * weight/ineb2weight.cc: Fix closing brace indentation.
1804 Tue Jun 10 09:58:18 GMT 2014  Olly Betts <olly@survex.com>
1806         * examples/quest.cc: Rework the weight name lookup to use a table like
1807           the other lookups.  Change the weight names not to include "weight".
1809 Tue Jun 10 08:15:18 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1811         * include/xapian/weight.h,weight/ifb2weight.cc: Optimized
1812           upper bound and weighting formula in IfB2Weight.
1814 Tue Jun 10 05:34:52 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1816         * include/xapian/weight.h,weight/inl2weight.cc: Optimized
1817           upper bound and weighting formula in InL2Weight.
1819 Tue Jun 10 05:09:08 GMT 2014  Olly Betts <olly@survex.com>
1821         * examples/quest.cc: Add --weight option to allow the weighting scheme
1822           to be specified.
1824 Thu Jun 05 03:42:51 GMT 2014  Olly Betts <olly@survex.com>
1826         * api/omdatabase.cc,tests/api_backend.cc: Fix
1827           Database::get_wdf_upper_bound("") not to fail with an assertion.
1829 Tue Jun 03 22:59:10 GMT 2014  Olly Betts <olly@survex.com>
1831         * matcher/localsubmatch.cc: Use RETURN() instead of return in methods
1832           with LOGCALL annotations.
1834 Mon Jun 02 13:15:36 GMT 2014  Olly Betts <olly@survex.com>
1836         * docs/Makefile.am: Actually ship, process and install geospatial.rst.
1838 Mon Jun 02 11:40:27 GMT 2014  Olly Betts <olly@survex.com>
1840         * languages/Makefile.mk: Ship collate-sbl script.
1842 Thu May 29 12:13:06 GMT 2014  Olly Betts <olly@survex.com>
1844         * HACKING: Replace a link to the outdated autotools "goat book" with a
1845           link to the "Portable Shell" chapter of the autoconf manual.
1847 Thu May 29 03:31:10 GMT 2014  Olly Betts <olly@survex.com>
1849         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Allow
1850           the user to specify how long a snippet they want.  Only add "..." if
1851           the sample was actually truncated.
1853 Wed May 28 12:52:26 GMT 2014  Olly Betts <olly@survex.com>
1855         * include/xapian/snipper.h: Add the standard guards to prevent user
1856           code from including this header directly.
1858 Tue May 27 04:19:12 GMT 2014  Olly Betts <olly@survex.com>
1860         * include/Makefile.mk: Ship include/xapian/snipper.h in tarball.
1862 Tue May 27 04:03:09 GMT 2014  Olly Betts <olly@survex.com>
1864         * api/snipper.cc,include/xapian/snipper.h,
1865           tests/generate-api_generated: Add missing assignment operator to
1866           Xapian::Snipper class.
1868 Tue May 27 03:43:03 GMT 2014  Olly Betts <olly@survex.com>
1870         * include/xapian/snipper.h: Add missing doxygen comments.
1872 Tue May 27 03:41:08 GMT 2014  Olly Betts <olly@survex.com>
1874         * include/xapian/snipper.h,tests/api_snipper.cc: Whitespace tweaks.
1876 Tue May 27 03:36:19 GMT 2014  Olly Betts <olly@survex.com>
1878         * api/snipper.cc,include/xapian/snipper.h,tests/api_snipper.cc: Remove
1879           getters for obtaining info about the relevance model, and instead
1880           add a get_description() method which includes all such info in the
1881           returned description.
1883 Tue May 27 03:06:36 GMT 2014  Olly Betts <olly@survex.com>
1885         * api/snipper.cc: Use an iterator instead of subscripting.
1887 Tue May 27 03:03:33 GMT 2014  Olly Betts <olly@survex.com>
1889         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Use
1890           appropriate named types rather than "int" or "unsigned int".
1892 Tue May 27 03:02:48 GMT 2014  Olly Betts <olly@survex.com>
1894         * api/snipperinternal.h: Remove constants which are no longer used.
1896 Tue May 27 02:48:44 GMT 2014  Olly Betts <olly@survex.com>
1898         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h:
1899           Rework Snipper methods set_smoothing_coef() and set_window_size() as
1900           optional parameters of generate_snippet().
1902 Tue May 27 02:33:39 GMT 2014  Olly Betts <olly@survex.com>
1904         * api/snipper.cc,api/snipperinternal.h: Just pass rm_docno through to
1905           Snipper::Internal::calculate_rm() as a parameter rather than storing
1906           it in a member variable.
1908 Tue May 27 02:25:41 GMT 2014  Olly Betts <olly@survex.com>
1910         * api/snipper.cc: Use clear() method to empty a container.
1912 Tue May 27 02:22:37 GMT 2014  Olly Betts <olly@survex.com>
1914         * tests/api_snipper.cc: Drop unused <algorithm>.
1916 Tue May 27 02:21:53 GMT 2014  Olly Betts <olly@survex.com>
1918         * api/snipper.cc: Eliminate ret_value variable.
1920 Tue May 27 02:20:25 GMT 2014  Olly Betts <olly@survex.com>
1922         * api/snipper.cc: Avoid unnecessary substr operations.
1924 Tue May 27 02:17:32 GMT 2014  Olly Betts <olly@survex.com>
1926         * api/snipper.cc: Prefer ++i to i++ in loops.
1928 Tue May 27 02:16:14 GMT 2014  Olly Betts <olly@survex.com>
1930         * api/snipper.cc: Use TermIterator::positionlist_count().
1932 Tue May 27 02:14:52 GMT 2014  Olly Betts <olly@survex.com>
1934         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Fix
1935           typos in comments and variable names in new snipper code.
1937 Tue May 27 02:13:09 GMT 2014  Olly Betts <olly@survex.com>
1939         * tests/Makefile.am: Hook up new Snipper API tests to actually be
1940           used.
1942 Tue May 27 02:09:49 GMT 2014  Mihai Bivol <mm.bivol@gmail.com>
1944         * tests/api_snipper.cc: Add Snipper API tests.
1946 Tue May 27 02:04:26 GMT 2014  Olly Betts <olly@survex.com>
1948         * api/snipper.cc: Add missing #include <config.h>.
1950 Tue May 27 02:00:32 GMT 2014  Mihai Bivol <mm.bivol@gmail.com>
1952         * api/Makefile.mk,api/snipper.cc,api/snipperinternal.h,
1953           include/xapian.h,include/xapian/snipper.h: Add Xapian::Snipper
1954           class.
1956 Mon May 26 05:52:22 GMT 2014  Olly Betts <olly@survex.com>
1958         * api/omdatabase.cc,backends/brass/brass_postlist.h,
1959           backends/chert/chert_postlist.h,backends/database.h: Fix comment
1960           typos.
1962 Fri May 23 11:59:26 GMT 2014  Olly Betts <olly@survex.com>
1964         * api/matchspy.cc: Pass std::string by const reference.
1966 Thu May 22 06:31:12 GMT 2014  Olly Betts <olly@survex.com>
1968         * matcher/localsubmatch.cc: Fix the check for a term which matches all
1969           documents to use the sub-db termfreq, not the combined db termfreq.
1971 Thu May 22 06:00:47 GMT 2014  Olly Betts <olly@survex.com>
1973         * matcher/localsubmatch.cc: If a term matches all documents and its
1974           weight doesn't depend on its wdf, we can optimise it to MatchAll
1975           (the previous requirement that maxpart == 0 was unnecessarily
1976           strict).
1978 Thu May 22 05:52:15 GMT 2014  Olly Betts <olly@survex.com>
1980         * matcher/localsubmatch.cc,tests/api_percentages.cc: When we optimise
1981           a postlist for a term which matches all documents to use MatchAll,
1982           we still need to set a weight object on it to get percentages
1983           calculated correctly.
1985 Thu May 22 04:08:35 GMT 2014  Olly Betts <olly@survex.com>
1987         * api/queryinternal.cc,matcher/localsubmatch.cc,
1988           matcher/localsubmatch.h,matcher/queryoptimiser.h: Refactor to group
1989           most of the code to create a postlist for a term and set its weight
1990           into one place.
1992 Mon May 19 00:08:04 GMT 2014  Olly Betts <olly@survex.com>
1994         * backends/brass/brass_freelist.cc,tests/api_backend.cc: When we start
1995           to write a new freelist block, set the revision on the old one we
1996           write out correctly, and don't "-1" out the next block pointer
1997           before we write out the block in this case.  New regression testcase
1998           newfreelistblock1.
1999         * backends/brass/brass_freelist.cc: Add assertions that the freelist
2000           block has a next pointer when fl_end is a different block to fl.
2002 Fri May 16 04:35:21 GMT 2014  Olly Betts <olly@survex.com>
2004         * backends/brass/brass_freelist.h: Fix BrassFreeList::swap() to also
2005           swap the flw_appending members.
2007 Thu May 15 12:51:15 GMT 2014  Olly Betts <olly@survex.com>
2009         * HACKING: Add checking config/config.* are up to date to the 
2010           release checklist.
2012 Thu May 15 12:47:28 GMT 2014  Olly Betts <olly@survex.com>
2014         * HACKING: Now using automake 1.14.1 to bootstrap snapshots and
2015           1.3.x releases.
2017 Wed May 14 03:18:37 GMT 2014  Olly Betts <olly@survex.com>
2019         * api/queryinternal.cc: Only serialise parameter where it is actually
2020           used.
2022 Fri May 09 01:56:48 GMT 2014  Olly Betts <olly@survex.com>
2024         * HACKING: Now using doxygen 1.8.7 to bootstrap tarballs.
2026 Mon May 05 05:37:32 GMT 2014  Olly Betts <olly@survex.com>
2028         * backends/chert/chert_check.cc,backends/chert/chert_dbcheck.cc,
2029           backends/dbcheck.cc: Improve DBCHECK_FIX - if fixing a whole
2030           database, we now take the revision from the first table we
2031           successfully look at, which should be correct in most cases,
2032           and is definitely better than trying to determine the revision
2033           of each broken table independently.
2035 Fri May 02 02:36:05 GMT 2014  Olly Betts <olly@survex.com>
2037         * matcher/valuestreamdocument.cc,matcher/valuestreamdocument.h: Put
2038           the docid in the sub-database into the ValueStreamDocument object as
2039           that's what Xapian::Document::get_docid() is documented to return.
2040           (fixes#636, reported by Jeff Rand).
2042 Thu May 01 13:25:35 GMT 2014  Olly Betts <olly@survex.com>
2044         * api/omdatabase.cc,include/xapian/database.h,
2045           matcher/valuestreamdocument.cc: Eliminate
2046           Database::get_document_lazily_() completely.
2048 Thu May 01 11:48:00 GMT 2014  Olly Betts <olly@survex.com>
2050         * backends/database.cc,backends/slowvaluelist.cc,
2051           backends/slowvaluelist.h: Don't wrap the subdatabase object in a
2052           Xapian::Database for SlowValueList, which mean we can just call
2053           open_document(did, true) on it instead of having to use
2054           Xapian::Database::get_document_lazily_().
2056 Wed Apr 30 00:31:52 GMT 2014  Olly Betts <olly@survex.com>
2058         * api/omdatabase.cc: Explicitly '#include <algorithm>' for std::max(),
2059           fixing build with VS2013.  (fixes#641)
2061 Tue Apr 29 04:28:06 GMT 2014  Olly Betts <olly@survex.com>
2063         * common/append_filename_arg.h,net/remoteconnection.h: Comment tweaks.
2065 Tue Apr 29 04:26:26 GMT 2014  Olly Betts <olly@survex.com>
2067         * tests/harness/unixcmds.cc: Drop code supporting Microsoft Windows 9x
2068           which reached EOL in 2006.
2070 Thu Apr 17 05:06:21 GMT 2014  Olly Betts <olly@survex.com>
2072         * common/autoptr.h: Under C++11, use unique_ptr for AutoPtr.
2074 Wed Apr 09 22:16:37 GMT 2014  Olly Betts <olly@survex.com>
2076         * api/documentterm.h,api/omdocument.cc: Don't store the termname in
2077           OmDocumentTerm - we were only using it in get_description() output
2078           and an exception message.  Speeds up indexing etext.txt using
2079           simpleindex by 0.4%, and should reduce memory usage a bit too.
2080           (Change inspired by comments from Vishesh Handa on xapian-devel).
2082 Wed Apr 09 05:17:58 GMT 2014  Olly Betts <olly@survex.com>
2084         * backends/brass/brass_btreebase.cc,backends/brass/brass_table.cc:
2085           Remove comment references to using bitmaps for freespace tracking.
2087 Tue Apr 08 04:20:00 GMT 2014  Olly Betts <olly@survex.com>
2089         * bin/xapian-delve.cc: Add -A <prefix> option to list all terms with
2090           a particular prefix.
2092 Mon Apr 07 05:45:06 GMT 2014  Olly Betts <olly@survex.com>
2094         * api/omdatabase.cc,backends/brass/,backends/chert/,
2095           backends/database.cc,backends/database.h,
2096           backends/inmemory/inmemory_database.cc,
2097           backends/inmemory/inmemory_database.h,
2098           backends/remote/remote-database.cc,backends/remote/remote-database.h,
2099           common/remoteprotocol.h,matcher/const_database_wrapper.cc,
2100           matcher/const_database_wrapper.h,net/remoteserver.cc,
2101           net/remoteserver.h,weight/weightinternal.cc: Fetch termfreq and
2102           collection frequency in a single call - shaves ~0.3% off a test
2103           search.
2105 Thu Apr 03 23:40:45 GMT 2014  Olly Betts <olly@survex.com>
2107         * net/serialise.cc,weight/weightinternal.h: Make Weight::Internal
2108           track if any max_part values are set, so we don't need to
2109           serialise them when they've not been set.
2111 Thu Apr 03 05:50:13 GMT 2014  Olly Betts <olly@survex.com>
2113         * weight/weightinternal.cc: Enhance
2114           Weight::Internal::get_description() to report TermFreqs.
2116 Thu Apr 03 05:46:44 GMT 2014  Olly Betts <olly@survex.com>
2118         * api/omenquire.cc,api/omenquireinternal.h,common/submatch.h,matcher/,
2119           net/remoteserver.cc,net/serialise.cc,weight/weight.cc,
2120           weight/weightinternal.cc,weight/weightinternal.h: Eliminate the
2121           map<string, TermFreqAndWeight> in MSet::Internal, and instead just
2122           preserve the Weight::Internal object there as that holds all the
2123           information we need.
2125 Thu Apr 03 04:40:09 GMT 2014  Olly Betts <olly@survex.com>
2127         * backends/remote/remote-database.cc,net/remoteserver.cc,
2128           net/serialise.cc,net/serialise.h: Avoid returning
2129           Xapian::Weight::Internal by value from unserialise_stats().
2131 Tue Apr 01 22:41:16 GMT 2014  Olly Betts <olly@survex.com>
2133         * matcher/localsubmatch.cc,weight/weight.cc,weight/weightinternal.cc,
2134           weight/weightinternal.h: Replace Weight::Internal methods to get
2135           termfreq, reltermfreq and colltermfreq with a single inlined
2136           get_stats() method, which only needs to search the map once.
2137           Shaves ~1.6% off the time to do a wildcard query with a lot of
2138           terms.
2140 Tue Apr 01 22:11:52 GMT 2014  Olly Betts <olly@survex.com>
2142         * matcher/localsubmatch.cc: Don't refetch the termfreq if we already
2143           have it.
2145 Sun Mar 30 22:54:22 GMT 2014  Anish Kanchan <anishgkanchan@gmail.com>
2147         * include/xapian/termgenerator.h: Make TermGenerator flags an
2148           anonymous enum, and typedef TermGenerator::flags to int for backward
2149           compatibility with existing user code which uses it.  (fixes #616)
2151 Thu Mar 27 05:45:14 GMT 2014  Liu Chi <liuchi09@gmail.com>
2153         * include/xapian/stem.h,languages/Makefile.mk,
2154           languages/earlyenglish.sbl,languages/stem.cc,tests/api_stem.cc:
2155           Add an early english stemmer.
2157 Wed Mar 19 02:42:00 GMT 2014  Olly Betts <olly@survex.com>
2159         * weight/weightinternal.cc: Fix comment typo.
2161 Fri Mar 14 09:53:22 GMT 2014  Olly Betts <olly@survex.com>
2163         * HACKING: MacTeX seems to be the best option if using homebrew.
2165 Fri Mar 07 23:17:43 GMT 2014  Olly Betts <olly@survex.com>
2167         * matcher/maxpostlist.cc: More fixes for --enable.log.
2169 Fri Mar 07 23:01:45 GMT 2014  Olly Betts <olly@survex.com>
2171         * matcher/maxpostlist.cc: Fix compilation error with --enable-log on.
2172           Reported by Anurag Soni.
2174 Fri Mar 07 00:39:11 GMT 2014  Olly Betts <olly@survex.com>
2176         * HACKING: Fix typo and RST markup.
2178 Fri Mar 07 00:21:16 GMT 2014  VcamX <vcamx3@gmail.com>
2180         * HACKING: Note packages to install from homebrew on Mac OS X.
2182 Fri Mar 07 00:17:01 GMT 2014  VcamX <vcamx3@gmail.com>
2184         * backends/dbcheck.cc,common/pack.h: Fix warnings with clang 5.0.
2186 Tue Mar 04 04:25:11 GMT 2014  Olly Betts <olly@survex.com>
2188         * api/queryinternal.cc,api/queryinternal.h: Only simplify OP_SYNONYM
2189           with a single subquery if that subquery is a term or MatchAll.
2191 Tue Mar 04 04:12:58 GMT 2014  Olly Betts <olly@survex.com>
2193         * tests/api_none.cc: Test OPs with a single MatchAll subquery.
2195 Mon Mar 03 22:59:55 GMT 2014  Mayank Chaudhary <mayankchaudhary.iitr@gmail.com>
2197         * docs/Makefile.am,docs/bm25.rst,docs/intro_ir.rst: Convert equations
2198           in rst docs to use LaTeX via the math role and directive.
2200 Fri Feb 28 06:12:36 GMT 2014  Olly Betts <olly@survex.com>
2202         * backends/brass/brass_positionlist.h,
2203           backends/chert/chert_positionlist.h: Remove next_internal() methods
2204           which were declared but not defined or used (left-overs from flint).
2205           Reported by "Hurricane Tong".
2207 Wed Feb 26 01:33:50 GMT 2014  Olly Betts <olly@survex.com>
2209         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
2210           examples/quest.cc,include/xapian/query.h,matcher/Makefile.mk,
2211           matcher/maxpostlist.cc,matcher/maxpostlist.h,
2212           queryparser/queryparser.cc,tests/api_none.cc,tests/api_opsynonym.cc:
2213           Implement new OP_MAX query operator, which returns the maximum
2214           weight of any of its subqueries.  (see #360)
2216 Wed Feb 26 00:48:23 GMT 2014  Olly Betts <olly@survex.com>
2218         * matcher/localsubmatch.cc,matcher/synonympostlist.cc,
2219           matcher/synonympostlist.h: In SynonymPostList, avoid fetching the
2220           doclength if the weighting scheme doesn't need it and the calculated
2221           wdf for the synonym in <= doclength_lower_bound for the current
2222           subdatabase.  (fixes #360)
2224 Wed Feb 26 00:12:22 GMT 2014  Olly Betts <olly@survex.com>
2226         * backends/brass/brass_changes.cc: Fix compilation without
2227           --enable-assertions.
2229 Tue Feb 25 02:33:14 GMT 2014  Olly Betts <olly@survex.com>
2231         * examples/quest.cc: Add --default-op option.
2233 Tue Feb 25 01:56:34 GMT 2014  Olly Betts <olly@survex.com>
2235         * examples/quest.cc: Whitespace tweak.
2237 Mon Feb 24 06:33:37 GMT 2014  Olly Betts <olly@survex.com>
2239         * tests/api_opsynonym.cc: Refactor symonym1 so that the test data is
2240           specified by an array, rather than built up by code, so that the
2241           actual testcases can be more easily seen.
2243 Sun Feb 23 01:22:56 GMT 2014  Olly Betts <olly@survex.com>
2245         * common/bitstream.cc,common/bitstream.h: Add comments to better
2246           document BitReader and BitWriter. (fixes#252)
2248 Sun Feb 23 00:35:17 GMT 2014  Olly Betts <olly@survex.com>
2250         * HACKING: Stop trying to explicitly list compilers which support
2251           __builtin_expect (LLVM does too, others may as well).
2253 Fri Feb 21 01:34:59 GMT 2014  Olly Betts <olly@survex.com>
2255         * backends/brass/,backends/dbcheck.cc,common/,
2256           docs/replication_protocol.rst,tests/api_backend.cc,
2257           tests/api_replicate.cc: Keep track of unused blocks in the Btrees
2258           using freelists rather than bitmaps.
2260 Fri Feb 21 01:21:45 GMT 2014  Olly Betts <olly@survex.com>
2262         * tests/api_wrdb.cc: Expand crashrecovery1 to check that the expected
2263           base files exist and ones which shouldn't exist don't.
2265 Thu Feb 20 00:34:47 GMT 2014  Olly Betts <olly@survex.com>
2267         * HACKING: makeindex is now in Debian package texlive-binaries.
2269 Wed Feb 19 06:50:58 GMT 2014  Olly Betts <olly@survex.com>
2271         * docs/sorting.rst: Fix incorrect parameter types in Xapian::Weight
2272           subclass example.
2274 Tue Feb 18 23:34:19 GMT 2014  Olly Betts <olly@survex.com>
2276         * api/replication.cc: Fix conditional for enabling replication code
2277           - if chert is disabled but brass isn't, we should still enable it.
2279 Tue Feb 18 01:33:28 GMT 2014  Olly Betts <olly@survex.com>
2281         * tests/api_replicate.cc: Move comment to in front of the function it
2282           is actually talking about.
2284 Sun Feb 16 04:53:57 GMT 2014  Olly Betts <olly@survex.com>
2286         * xapian-config.in: Add some missing shell quoting identified by
2287           shellcheck.
2289 Sun Feb 16 00:53:01 GMT 2014  Olly Betts <olly@survex.com>
2291         * docs/quickstart.rst: Split --cxxflags and --libs for portability
2292           (noted by "Hurricane Tong" on xapian-devel).
2294 Sat Feb 15 04:59:37 GMT 2014  Olly Betts <olly@survex.com>
2296         * docs/glossary.rst: Add definition of "collection frequency".
2298 Fri Feb 14 22:24:26 GMT 2014  Olly Betts <olly@survex.com>
2300         * NEWS: Update.
2302 Fri Jan 17 03:50:44 GMT 2014  Olly Betts <olly@survex.com>
2304         * backends/brass/brass_databasereplicator.cc,
2305           backends/brass/brass_table.cc,
2306           backends/chert/chert_databasereplicator.cc,
2307           backends/chert/chert_table.cc,common/io_utils.cc,common/io_utils.h:
2308           Add io_read_block() and io_write_block() as wrappers around pread()
2309           and pwrite() (or lseek() plus read() and lseek() plus write()).
2311 Sat Jan 11 06:32:19 GMT 2014  Olly Betts <olly@survex.com>
2313         * configure.ac: Sun C++ seems to explicitly need Crun now.
2315 Sat Jan 11 02:23:06 GMT 2014  Olly Betts <olly@survex.com>
2317         * configure.ac: Fix checks for Sun C++.
2319 Fri Jan 10 22:38:01 GMT 2014  Olly Betts <olly@survex.com>
2321         * matcher/multimatch.cc: timer_create() doesn't handle CLOCK_MONOTONIC
2322           on Solaris, so use CLOCK_REALTIME there instead.
2324 Fri Jan 10 11:22:37 GMT 2014  Olly Betts <olly@survex.com>
2326         * configure.ac: Improve handling of Sun's C++ compiler - trick libtool
2327           into not adding -library=Cstd, and prefer -library=stdcxx4 if
2328           supported.
2330 Fri Jan 10 11:16:15 GMT 2014  Olly Betts <olly@survex.com>
2332         * configure.ac: Add XAPIAN_TEST_CXXFLAGS macro, and use it to check
2333           the flags to cxx actually work.
2335 Fri Jan 10 10:56:17 GMT 2014  Olly Betts <olly@survex.com>
2337         * configure.ac: Apply missing functional part of previous change.
2339 Fri Jan 10 10:46:53 GMT 2014  Olly Betts <olly@survex.com>
2341         * configure.ac: Avoid using grep -e as /usr/bin/grep on Solaris
2342           doesn't support it.
2344 Fri Jan 10 03:30:10 GMT 2014  Olly Betts <olly@survex.com>
2346         * backends/brass/brass_databasereplicator.cc: Whitespace tweak.
2348 Thu Jan 09 11:06:05 GMT 2014  Olly Betts <olly@survex.com>
2350         * backends/brass/brass_cursor.h,backends/brass/brass_database.cc,
2351           backends/chert/chert_database.cc,
2352           backends/chert/chert_databasereplicator.cc,
2353           backends/inmemory/inmemory_database.h,common/log2.h,
2354           common/realtime.h,matcher/multimatch.cc,weight/pl2weight.cc,
2355           weight/tradweight.cc: Fix compilations issues with Sun's C++
2356           compiler (mostly missing library headers).
2358 Thu Jan 09 06:00:03 GMT 2014  Olly Betts <olly@survex.com>
2360         * backends/dbcheck.cc: Skip absent lazily created tables in the case
2361           where out == NULL too.
2363 Thu Jan 09 05:31:40 GMT 2014  Olly Betts <olly@survex.com>
2365         * tests/api_wrdb.cc: Use Xapian::Database::check() in cursordelbug1.
2366           (partly addresses #238)
2368 Thu Jan 09 05:30:45 GMT 2014  Olly Betts <olly@survex.com>
2370         * include/xapian/database.h: Make second and third parameters to
2371           Xapian::Database::check() optional, defaulting to a quiet check.
2373 Thu Jan 09 02:52:54 GMT 2014  Olly Betts <olly@survex.com>
2375         * backends/brass/,backends/chert/,backends/dbcheck.cc,
2376           bin/xapian-check.cc,include/xapian/database.h: Alter
2377           Database::check() to take its "out" parameter as a pointer to
2378           std::ostream instead of a reference, and make passing NULL means "do
2379           not produce output".  Remove the form without the "out" parameter,
2380           which used to mean "send output to stdout" - if you want this, just
2381           pass "&std::cout" in.
2383 Thu Jan 09 01:50:14 GMT 2014  Olly Betts <olly@survex.com>
2385         * include/xapian/database.h: OS X SDK check() macro takes one
2386           argument, so there's no need to protect check() methods with
2387           more than one argument.
2388         * include/xapian/valueiterator.h: Protect the one check() method in
2389           our API which does take one argument.
2391 Wed Jan 08 11:48:58 GMT 2014  Olly Betts <olly@survex.com>
2393         * api/smallvector.cc,api/smallvector.h: Include cstddef rather than
2394           cstring for std::size_t, as it's a simpler header.  Don't assume
2395           size_t will be available unqualified.  Add SmallVector::size_type
2396           typedef.
2398 Mon Jan 06 11:54:53 GMT 2014  Olly Betts <olly@survex.com>
2400         * net/progclient.cc: Fix xlC warning.
2402 Mon Jan 06 00:31:19 GMT 2014  Olly Betts <olly@survex.com>
2404         * backends/brass/brass_table.cc,backends/chert/chert_table.cc:
2405           Validate dir_end when reading a block.  (fixes #592)
2407 Wed Jan 01 01:20:46 GMT 2014  Olly Betts <olly@survex.com>
2409         * docs/Makefile.am: Fix handling of MAINTAINER_NO_DOCS.
2411 Mon Dec 30 05:33:59 GMT 2013  Olly Betts <olly@survex.com>
2413         * tests/api_unicode.cc: Add regression test for incorrect results
2414           from Unicode::tolower() for 4 code points (U+01C5, U+01C8, U+01CB,
2415           U+01F2) with Xapian 1.2.16 and earlier.
2417 Sun Dec 29 05:46:14 GMT 2013  Olly Betts <olly@survex.com>
2419         * docs/postingsource.rst: Clarify a couple of points (reported by
2420           "vHanda" on IRC).
2422 Tue Dec 24 02:00:26 GMT 2013  Olly Betts <olly@survex.com>
2424         * tests/Makefile.am,tests/perftest/Makefile.mk: Actually use
2425           @NO_INSTALL@.
2427 Tue Dec 24 01:59:05 GMT 2013  Olly Betts <olly@survex.com>
2429         * configure.ac: Use -no-fast-install on platforms where -no-install
2430           causes libtool to emit a warning.
2432 Mon Dec 23 04:17:35 GMT 2013  Olly Betts <olly@survex.com>
2434         * HACKING: Drop note about needing git-svn if you're using git -
2435           bootstrap now only uses git-svn if your Xapian tree was checked out
2436           using git-svn.
2438 Mon Dec 23 04:16:58 GMT 2013  Olly Betts <olly@survex.com>
2440         * HACKING: Note that Tcl is now needed to generate
2441           unicode/unicode-data.cc.
2443 Mon Dec 23 04:01:05 GMT 2013  Olly Betts <olly@survex.com>
2445         * tests/api_unicode.cc: Add a test that a character due to be added in 
2446           Unicode 7.0.0 is categorised as "unassigned".
2448 Mon Dec 23 03:50:37 GMT 2013  Olly Betts <olly@survex.com>
2450         * unicode/Makefile.mk,unicode/uniParse.tcl: Adjust to not need a
2451           symlink.  Give the generated file a new name, since the "tcl" prefix
2452           doesn't make much sense here, and it avoids issues with
2453           transitioning from a file in version control to one which is
2454           generated.
2456 Mon Dec 23 03:32:40 GMT 2013  Olly Betts <olly@survex.com>
2458         * unicode/: Add the source data file and scripts to generate
2459           tclUniData.cc.
2461 Mon Dec 23 02:20:57 GMT 2013  Olly Betts <olly@survex.com>
2463         * NEWS: Update from ChangeLog.
2465 Mon Dec 23 01:04:26 GMT 2013  Olly Betts <olly@survex.com>
2467         * include/xapian/enquire.h: Note that 1.2.17 is required for the
2468           correct sense of the reverse parameter to Enquire methods
2469           set_sort_by_relevance_then_value() and
2470           set_sort_by_relevance_then_key().
2472 Mon Dec 23 00:30:53 GMT 2013  Olly Betts <olly@survex.com>
2474         * backends/brass/brass_btreebase.cc: Fix comment documenting what's in
2475           the base file (the sequential flag was missing).
2477 Fri Dec 20 03:47:56 GMT 2013  Olly Betts <olly@survex.com>
2479         * backends/brass/brass_termlisttable.h,include/xapian/constants.h,
2480           tests/api_backend.cc: Add Xapian::DB_NO_TERMLIST flag to allow
2481           creating a database without a termlist (see #181).
2483 Fri Dec 20 03:04:51 GMT 2013  Olly Betts <olly@survex.com>
2485         * include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
2486           character database to 6.3.0.
2487         * tests/api_unicode.cc: Add tests for U+061C, added in 6.3.0.
2489 Fri Dec 20 00:20:01 GMT 2013  Olly Betts <olly@survex.com>
2491         * backends/dbfactory.cc: Clear any backend flag passed in before
2492           passing the flags when opening stub databases, fixing test failure
2493           in replicate1 caused by recent change adding
2494           Xapian::DB_BACKEND_STUB.
2496 Thu Dec 19 23:11:32 GMT 2013  Olly Betts <olly@survex.com>
2498         * tests/api_backend.cc: Simplify database creation in testcase
2499           blocksize1.
2501 Thu Dec 19 23:10:37 GMT 2013  Olly Betts <olly@survex.com>
2503         * backends/dbfactory.cc: Tweak conditionals around $XAPIAN_PREFER_BRASS
2504           check.
2506 Thu Dec 19 23:09:30 GMT 2013  Olly Betts <olly@survex.com>
2508         * api/replication.cc,backends/dbfactory.cc,docs/deprecation.rst,
2509           docs/overview.rst,include/xapian/constants.h,
2510           include/xapian/dbfactory.h,tests/api_backend.cc,tests/api_db.cc:
2511           Add Xapian::DB_BACKEND_STUB and deprecate Xapian::Auto::open_stub().
2513 Thu Dec 19 06:46:15 GMT 2013  Olly Betts <olly@survex.com>
2515         * docs/deprecation.rst: Update example version to a more recent one.
2517 Thu Dec 19 04:01:31 GMT 2013  Olly Betts <olly@survex.com>
2519         * docs/deprecation.rst,include/xapian/dbfactory.h,tests/api_db.cc,
2520           tests/harness/: Deprecate Xapian::Brass::open() and
2521           Xapian::Chert::open() in favour of the new Xapian::DB_BACKEND_BRASS
2522           and Xapian::DB_BACKEND_CHERT flags.
2524 Thu Dec 19 01:17:02 GMT 2013  Olly Betts <olly@survex.com>
2526         * api/compactor.cc,backends/brass/,backends/chert/chert_database.cc,
2527           backends/chert/chert_database.h,backends/database.h,
2528           backends/dbcheck.cc,backends/dbfactory.cc,include/xapian/constants.h,
2529           include/xapian/database.h,include/xapian/dbfactory.h: Add flags
2530           which can be bitwise OR-ed into the second argument when opening a
2531           writable datase: DB_NO_SYNC (to disable use of fsync, etc) and
2532           DB_DANGEROUS (to enable in-place updates).  WritableDatabase
2533           can now be constructed from just a filename (defaulting to opening
2534           the database with DB_CREATE_OR_OPEN).
2536 Thu Dec 19 00:11:26 GMT 2013  Olly Betts <olly@survex.com>
2538         * tests/harness/backendmanager_multi.cc: Fix comment typo.
2540 Wed Dec 18 23:52:49 GMT 2013  Olly Betts <olly@survex.com>
2542         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
2543           tests/api_backend.cc: Fix handling of invalid block sizes - the
2544           size gets fixed as documented, but the uncorrected size was passed
2545           to the base file.  Also, abort() was called on 0.
2547 Wed Dec 18 22:48:18 GMT 2013  Olly Betts <olly@survex.com>
2549         * api/replication.cc,backends/brass/brass_check.cc,
2550           backends/brass/brass_database.cc,backends/chert/chert_check.cc,
2551           backends/chert/chert_database.cc,backends/database.h,
2552           backends/dbcheck.cc,bin/xapian-tcpsrv.cc,include/Makefile.mk,
2553           include/xapian.h,include/xapian/database.h,net/remoteserver.cc:
2554           Move Xapian::DB_* and Xapian:DBCHECK_* constants into
2555           xapian/constants.h.
2557 Wed Dec 18 22:30:23 GMT 2013  Olly Betts <olly@survex.com>
2559         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
2560           Include xapian/*.h with "" not <> inside the library.
2562 Wed Dec 18 22:17:15 GMT 2013  Olly Betts <olly@survex.com>
2564         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
2565           Include only the needed xapian/*.h headers (rather than xapian.h) to
2566           reduce inter-file dependencies within the library.
2568 Wed Dec 18 03:24:22 GMT 2013  Olly Betts <olly@survex.com>
2570         * tests/runtest.in: Report if a test is being run under eatmydata,
2571           like we do for running under valgrind.
2573 Wed Dec 18 02:43:47 GMT 2013  Olly Betts <olly@survex.com>
2575         * backends/brass/brass_version.h,backends/chert/chert_version.h:
2576           Comment out unused set_uuid() and set_uuid_string() methods - they
2577           may be useful in future, but we aren't currently using them.  Also
2578           make set_uuid() take a const pointer.
2580 Wed Dec 18 02:40:18 GMT 2013  Olly Betts <olly@survex.com>
2582         * HACKING,configure.ac,tests/runtest.in: Automatically probe for and
2583           hook in eatmydata to the testsuite using the wrapper script it now
2584           includes.
2586 Wed Dec 18 01:21:07 GMT 2013  Olly Betts <olly@survex.com>
2588         * HACKING: Update website update info.
2590 Sat Dec 14 06:01:33 GMT 2013  Olly Betts <olly@survex.com>
2592         * weight/dlhweight.cc,weight/dphweight.cc: Whitespace tweak.
2594 Fri Dec 13 21:06:28 GMT 2013  Olly Betts <olly@survex.com>
2596         * backends/brass/brass_cursor.cc,backends/brass/brass_cursor.h,
2597           backends/brass/brass_table.cc: Reference count blocks in the
2598           btree cursor, so cursors can cheaply share blocks.  This can
2599           significantly reduce the amount of memory used for cursors
2600           for queries which contain a lot of terms (e.g. wildcards which
2601           expand to a lot of terms).
2603 Thu Dec 12 22:37:22 GMT 2013  Olly Betts <olly@survex.com>
2605         * backends/brass/brass_btreebase.cc: Add assertions that we don't read
2606           beyond the end of the freespace bitmap.
2608 Thu Dec 12 22:25:04 GMT 2013  Olly Betts <olly@survex.com>
2610         * matcher/msetcmp.cc: Fix sense of reverse parameter to
2611           Enquire::set_sort_by_relevance_then_value.  Reported by "boomboo" on
2612           IRC.
2613         * tests/api_db.cc: Fix testcase sortrel1.
2615 Thu Dec 12 19:47:46 GMT 2013  Olly Betts <olly@survex.com>
2617         * backends/brass/: Make Brass::Cursor members n and p private.
2619 Thu Dec 12 19:46:23 GMT 2013  Olly Betts <olly@survex.com>
2621         * backends/brass/brass_check.cc,backends/brass/brass_table.cc: Add
2622           const to a few pointers we only read through.
2624 Thu Dec 12 09:04:13 GMT 2013  Olly Betts <olly@survex.com>
2626         * configure.ac: Improve reporting of GCC version.
2628 Thu Dec 12 09:01:26 GMT 2013  Olly Betts <olly@survex.com>
2630         * tests/api_query.cc,unicode/description_append.cc: Escape \x7f in
2631           object descriptions.
2633 Wed Dec 11 23:40:37 GMT 2013  Olly Betts <olly@survex.com>
2635         * api/leafpostlist.cc,api/leafpostlist.h,backends/brass/,
2636           matcher/localsubmatch.cc,matcher/localsubmatch.h,
2637           matcher/queryoptimiser.h: Under brass, optimise the turning of a
2638           query into a postlist to copy the cursor blocks for the previous
2639           term's postlist.  This is particularly effective for wildcard
2640           queries which expand to a lot of terms.
2642 Wed Dec 11 22:05:34 GMT 2013  Olly Betts <olly@survex.com>
2644         * backends/brass/brass_postlist.h: We don't have a
2645           BrassModifiedPostList class, so we don't need protected members in
2646           BrassPostList for it to use.
2648 Wed Dec 11 04:46:58 GMT 2013  Olly Betts <olly@survex.com>
2650         * weight/bm25weight.cc: Fix case where (k1 == 0 || b == 0) but k2 != 0.
2651           Reported by "boomboo" on IRC.
2652         * tests/api_weight.cc: Add regression test bm25weight5.
2654 Wed Dec 04 05:44:29 GMT 2013  Olly Betts <olly@survex.com>
2656         * NEWS: Update from 1.2.16 and ChangeLog.
2658 Mon Dec 02 02:34:43 GMT 2013  Olly Betts <olly@survex.com>
2660         * configure.ac: Clarify version of MSVCRT which we require for mingw.
2662 Fri Nov 29 04:21:46 GMT 2013  Olly Betts <olly@survex.com>
2664         * configure.ac: Fix typo in previous commit.
2666 Fri Nov 29 03:48:24 GMT 2013  Olly Betts <olly@survex.com>
2668         * configure.ac: Report GCC version.
2670 Wed Nov 27 04:06:32 GMT 2013  Olly Betts <olly@survex.com>
2672         * Backport change from brass:
2673         * backends/chert/chert_table.cc: Check if the block we want is in the
2674           internal cursor for a read-only table too - it isn't needed for
2675           correctness in this case, but it is more efficient not to reload a
2676           block which we already have.
2678 Sun Nov 24 23:05:37 GMT 2013  Olly Betts <olly@survex.com>
2680         * NEWS: Update from ChangeLog.
2682 Fri Nov 22 20:18:43 GMT 2013  Olly Betts <olly@survex.com>
2684         * backends/brass/brass_databasereplicator.cc,
2685           backends/brass/brass_databasereplicator.h: compression_stream.h
2686           isn't used in brass_databasereplicator.h, so move include to
2687           brass_databasereplicator.cc.
2689 Fri Nov 22 01:22:32 GMT 2013  Olly Betts <olly@survex.com>
2691         * queryparser/queryparser.lemony: Minor tweak to structuring of tests
2692           in check_infix().
2694 Sat Nov 09 08:51:27 GMT 2013  Olly Betts <olly@survex.com>
2696         * backends/brass/brass_table.cc: Check if the block we want is in the
2697           internal cursor for a read-only table too - it isn't needed for
2698           correctness in this case, but it is more efficient not to reload a
2699           block which we already have.
2701 Sat Nov 09 08:48:02 GMT 2013  Olly Betts <olly@survex.com>
2703         * backends/brass/: Use a separate cursor for each position list - now
2704           we're ordering the position B-tree by term first, phrase matching was
2705           causing the cursor to cycle between disparate areas of the B-tree,
2706           and it would have to reread the same blocks over and over.
2708 Fri Nov 08 09:57:52 GMT 2013  Olly Betts <olly@survex.com>
2710         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Add
2711           check for the database being closed in read_block(), which fixes
2712           pythontest.py testcase valuemods.
2714 Fri Nov 08 08:58:48 GMT 2013  Olly Betts <olly@survex.com>
2716         * api/maptermlist.h,api/termlist.cc,api/termlist.h,backends/brass/:
2717           Avoid two vector copies when storing term positions in most common
2718           cases.
2720 Fri Nov 08 08:57:07 GMT 2013  Olly Betts <olly@survex.com>
2722         * configure.ac: Bump LIBRARY_VERSION_INFO.
2724 Thu Nov 07 16:14:23 GMT 2013  Olly Betts <olly@survex.com>
2726         * backends/brass/brass_database.cc,
2727           backends/brass/brass_positionlist.cc,
2728           backends/brass/brass_positionlist.h: There's no need to pass around
2729           an end PositionIterator, and it's actually slightly more efficient
2730           not to.
2732 Thu Nov 07 16:11:27 GMT 2013  Olly Betts <olly@survex.com>
2734         * backends/brass/: Batch up positionlist changes in memory and write
2735           them out in key order.
2737 Thu Nov 07 15:30:48 GMT 2013  Olly Betts <olly@survex.com>
2739         * backends/brass/brass_positionlist.h,backends/brass/brass_version.cc:
2740           Change positionlist keys to be ordered by term first rather than
2741           docid first, which helps phrase searching significantly.
2743 Wed Nov 06 17:12:29 GMT 2013  Olly Betts <olly@survex.com>
2745         * backends/brass/brass_values.cc,backends/brass/brass_values.h,
2746           backends/chert/chert_values.cc,backends/chert/chert_values.h: Reuse
2747           a cursor for reading values from valuestreams rather than creating
2748           a new one each time.  This can dramatically reduce the number of
2749           blocks redundantly reread when sorting by value.  The rereads will
2750           generally get served from VM cache, but there's still an overhead
2751           to that.
2753 Tue Nov 05 16:28:08 GMT 2013  Olly Betts <olly@survex.com>
2755         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
2756           include/xapian/query.h,tests/api_query.cc: Having a separate 'type'
2757           enum seems to just make for clumsier code, so merged the LEAF_*
2758           values into the 'op' enum, add LEAF_MATCH_ALL and LEAF_MATCH_NOTHING
2759           and return when appropriate, and add test coverage.
2761 Tue Nov 05 15:20:15 GMT 2013  Olly Betts <olly@survex.com>
2763         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
2764           include/xapian/query.h: Add methods to allow introspection on
2765           Query objects - currently you can read the type/operator, how many
2766           subqueries there are, and get a particular subquery.  For a
2767           query which is a term, Query::get_terms_begin() allows you to
2768           get read the term.  (see #159)
2770 Mon Nov 04 19:06:38 GMT 2013  Olly Betts <olly@survex.com>
2772         * examples/quest.cc: Add --check-at-least option to quest.
2774 Thu Oct 24 04:38:52 GMT 2013  Olly Betts <olly@survex.com>
2776         * configure.ac,tests/soaktest/soaktest.cc: If srandom() and random()
2777           aren't available, use srand() and rand() instead.
2779 Thu Oct 24 02:34:06 GMT 2013  Olly Betts <olly@survex.com>
2781         * common/safewindows.h: Define WINVER to 0x0500 if not otherwise set,
2782           so we get new interfaces like MEMORYSTATUSEX under mingw.
2784 Thu Oct 24 02:11:36 GMT 2013  Olly Betts <olly@survex.com>
2786         * tests/harness/backendmanager_remotetcp.cc: Need cstdlib for free
2787           under mingw.
2789 Thu Oct 24 02:11:05 GMT 2013  Olly Betts <olly@survex.com>
2791         * configure.ac,tests/api_replicate.cc,tests/queryparsertest.cc,
2792           tests/termgentest.cc: Probe for _putenv_s() in configure as mingw
2793           doesn't provide it.
2795 Thu Oct 24 01:23:14 GMT 2013  Olly Betts <olly@survex.com>
2797         * configure.ac: Don't unset CC as it's used by libtool under mingw.
2799 Thu Oct 24 01:17:07 GMT 2013  Olly Betts <olly@survex.com>
2801         * net/tcpserver.cc: Fix mingw build error.
2803 Thu Oct 24 01:00:18 GMT 2013  Olly Betts <olly@survex.com>
2805         * common/omassert.h: Suppress "unused local typedef" warnings from
2806           GCC 4.8.
2808 Wed Oct 23 20:00:05 GMT 2013  Olly Betts <olly@survex.com>
2810         * common/realtime.h: Rework RealTime::to_timeval() under __WIN32__ to
2811           avoid having to pull in safewinsock2.h,
2813 Wed Oct 23 12:39:53 GMT 2013  Olly Betts <olly@survex.com>
2815         * common/realtime.h: Under __WIN32__, we need safewinsock2.h for
2816           struct timeval.
2818 Wed Oct 23 10:21:02 GMT 2013  Olly Betts <olly@survex.com>
2820         * common/omassert.h: If the compiler supports C++11, use
2821           static_assert to implement CompileTimeAssert.
2823 Wed Oct 23 10:02:50 GMT 2013  Olly Betts <olly@survex.com>
2825         * common/realtime.h,net/tcpclient.cc: Fix mingw build errors.
2827 Wed Oct 23 09:50:00 GMT 2013  Olly Betts <olly@survex.com>
2829         * common/win32_uuid.cc: Fix mingw compiler warning.
2831 Wed Oct 23 04:19:05 GMT 2013  jiangwen jiang <jiangwen127@gmail.com>
2833         * api/omdocument.cc,api/query.cc: Add more LOGCALL annotations.
2835 Tue Oct 22 03:09:48 GMT 2013  Olly Betts <olly@survex.com>
2837         * HACKING: Note we now use doxygen 1.8.5 for 1.3.x snapshots and
2838           releases.
2840 Mon Oct 21 01:55:48 GMT 2013  Olly Betts <olly@survex.com>
2842         * queryparser/lemon.c: Sync change from upstream: "Fix a harmless
2843           compiler warning in lemon.c."  Generated code is identical, at least
2844           on x86-64 Debian wheezy.
2846 Mon Oct 21 01:52:12 GMT 2013  Olly Betts <olly@survex.com>
2848         * queryparser/lemon.c: Sync change from upstream: "In the lemon parser
2849           generator, change all hashes to unsigned to avoid potential problems
2850           with signed integer overflow."  Generated code is identical, at
2851           least on x86-64 Debian wheezy.
2853 Sat Oct 19 06:38:48 GMT 2013  Olly Betts <olly@survex.com>
2855         * backends/flint_lock.cc: Under cygwin, use cygwin_conv_path() if
2856           using a new enough cygwin version, rather than the now deprecated
2857           cygwin_conv_to_win32_path().  Reported by "Haroogan" on the
2858           xapian-devel mailing list.
2860 Sat Oct 19 00:36:06 GMT 2013  Olly Betts <olly@survex.com>
2862         * configure.ac: Simplify test for uuid_unparse_lower().  (see #626)
2864 Sat Oct 19 00:21:37 GMT 2013  Olly Betts <olly@survex.com>
2866         * Makefile.am,configure.ac: Split XAPIAN_LIBS out of XAPIAN_LDFLAGS.
2867           (fixes#626)
2869 Fri Oct 18 11:51:40 GMT 2013  Olly Betts <olly@survex.com>
2871         * geospatial/geoencode.cc: Use lround() instead of round(), since we
2872           want the result as an int.  GCC 4.4.3 seems to optimise to use
2873           lround() anyway, but other compilers may not.
2875 Fri Oct 18 11:44:10 GMT 2013  Olly Betts <olly@survex.com>
2877         * geospatial/geoencode.cc: Include <math.h> for round() (fixes #628).
2879 Tue Oct 15 03:16:04 GMT 2013  Olly Betts <olly@survex.com>
2881         * include/xapian/enquire.h,include/xapian/unicode.h: Mark internal
2882           methods which are public for implementation convenience as
2883           "@private" for doxygen where they weren't already.
2885 Mon Oct 14 09:45:13 GMT 2013  Olly Betts <olly@survex.com>
2887         * include/xapian.h: Mark vinfo struct and get_vinfo_() function as
2888           @private for doxygen.
2890 Thu Oct 10 10:36:45 GMT 2013  Olly Betts <olly@survex.com>
2892         * include/xapian/: Methods and functions which take a string to
2893           unserialise now consistently call that parameter "serialised".
2895 Mon Oct 07 04:08:14 GMT 2013  Olly Betts <olly@survex.com>
2897         * tests/zlib-vg.c: Fix two warnings when compiled with clang.
2899 Fri Oct 04 19:46:16 GMT 2013  Olly Betts <olly@survex.com>
2901         * backends/brass/brass_check.cc,backends/chert/chert_check.cc: Correct
2902           failure message which talks above the root block when it's actually
2903           testing a leaf key.
2905 Fri Oct 04 04:51:39 GMT 2013  Olly Betts <olly@survex.com>
2907         * backends/brass/brass_check.cc,backends/chert/chert_check.cc: Escape
2908           invalid UTF-8 data in keys and tags reported by xapian-check, using
2909           the same code we use to clean up string in object descriptions.
2911 Fri Oct 04 04:50:52 GMT 2013  Olly Betts <olly@survex.com>
2913         * backends/brass/brass_check.cc,backends/chert/chert_check.cc: Fix
2914           xapian-check to report block numbers correctly for links within the
2915           B-tree.
2917 Thu Oct 03 07:35:44 GMT 2013  Olly Betts <olly@survex.com>
2919         * backends/brass/brass_dbcheck.cc,backends/chert/chert_dbcheck.cc: If
2920           the METAINFO key is missing, only report it once per table.
2922 Sat Sep 28 09:27:51 GMT 2013  Olly Betts <olly@survex.com>
2924         * include/xapian.h: Hide struct vinfo and get_vinfo_() from SWIG and
2925           doxygen.
2927 Sat Sep 28 06:25:44 GMT 2013  Olly Betts <olly@survex.com>
2929         * api/version.cc,include/xapian.h: Reimplement version functions to
2930           use a single function in libxapian which returns a pointer to a
2931           static const struct containing the version information, with inline
2932           wrappers in the API header which call this.  This means we only need
2933           one relocation instead of 4.
2934         * tests/api_none.cc: New testcase version1 to provide coverage for the
2935           version API functions.
2937 Fri Sep 27 22:53:15 GMT 2013  Olly Betts <olly@survex.com>
2939         * api/omenquire.cc,include/xapian/enquire.h,tests/api_anydb.cc: Fix
2940           backwards compatibility get_eset() wrapper to allow for the optional
2941           parameters which were supported before.  Also, just inline it from
2942           the API header.
2944 Fri Sep 27 11:19:50 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
2946         * api/omenquire.cc,api/omenquireinternal.h,expand/,
2947           include/xapian/enquire.h,tests/api_anydb.cc: Add support for the Bo1
2948           query expansion scheme.
2950 Thu Sep 26 04:11:49 GMT 2013  Olly Betts <olly@survex.com>
2952         * tests/api_weight.cc: Don't pass integer arguments to log() to avoid
2953           ambiguity errors with some compilers.  (fixes #627)
2955 Thu Sep 26 02:02:24 GMT 2013  Olly Betts <olly@survex.com>
2957         * backends/brass/,backends/chert/,backends/dbcheck.cc: Fix database
2958           consistency checking to always open all the tables at the same
2959           revision, which could lead to false errors being reported after
2960           a commit interrupted by the process being killed or the machine
2961           crashing.  Reported by Joey Hess in http://bugs.debian.org/724610
2963 Wed Sep 25 02:21:29 GMT 2013  Olly Betts <olly@survex.com>
2965         * tests/queryparsertest.cc: Add testcase for FieldProcessor on boolean
2966           prefix with quoted contents.
2968 Wed Sep 25 02:16:55 GMT 2013  Olly Betts <olly@survex.com>
2970         * queryparser/queryparser.lemony: Fix comment typo.
2972 Wed Sep 25 02:13:20 GMT 2013  Olly Betts <olly@survex.com>
2974         * api/: Split QueryVector into a template SmallVector class and then
2975           'typedef SmallVector<Query> QueryVector;', as it would be good to
2976           use the same approach for Database internals.
2978 Tue Sep 24 09:59:05 GMT 2013  Olly Betts <olly@survex.com>
2980         * .gitignore,xapian-core.spec.in: Update two references to .tar.gz
2981           files.
2983 Tue Sep 24 09:54:42 GMT 2013  Olly Betts <olly@survex.com>
2985         * docs/install.rst: Fix typo (bogus extra 'and');
2987 Tue Sep 24 09:54:01 GMT 2013  Olly Betts <olly@survex.com>
2989         * configure.ac,docs/install.rst: Compress source tarballs with xz
2990           instead of gzip.
2992 Mon Sep 23 12:58:23 GMT 2013  Olly Betts <olly@survex.com>
2994         * common/realtime.h,configure.ac,matcher/multimatch.cc: Implement
2995           RealTime::sleep() using nanosleep() where it's available, since
2996           it has a simpler API and a finer granularity than select().
2998 Mon Sep 23 12:27:37 GMT 2013  Olly Betts <olly@survex.com>
3000         * common/realtime.h,net/remoteconnection.cc,net/tcpclient.cc: Add
3001           RealTime::to_timeval() helper function to break a time interval
3002           as a double into a struct timeval.  This uses modf() which gives
3003           more compact and faster code than using fmod() as we previously
3004           did.
3006 Mon Sep 23 08:20:03 GMT 2013  Olly Betts <olly@survex.com>
3008         * common/realtime.h,configure.ac: Use clock_gettime() to implement
3009           RealTime::now() where it's available.
3011 Mon Sep 16 11:53:28 GMT 2013  Olly Betts <olly@survex.com>
3013         * api/,backends/brass/brass_postlist.cc,
3014           backends/remote/net_postlist.cc,backends/slowvaluelist.cc,
3015           expand/esetinternal.cc,include/xapian/unicode.h,
3016           matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
3017           tests/api_query.cc,tests/queryparsertest.cc,unicode/: Fix all
3018           get_description() methods to always return UTF-8 text.  (fixes #620)
3020 Mon Sep 16 11:47:16 GMT 2013  Olly Betts <olly@survex.com>
3022         * include/xapian/unicode.h: Document how Utf8Iterator handles invalid
3023           UTF-8.
3025 Mon Sep 16 11:19:48 GMT 2013  Olly Betts <olly@survex.com>
3027         * tests/queryparsertest.cc: Add test coverage for explicit synonym of
3028           a term with a prefix (e.g. ~foo:search).
3030 Fri Sep 06 07:11:29 GMT 2013  Olly Betts <olly@survex.com>
3032         * api/valueiterator.cc,tests/api_backend.cc: Don't segfault is
3033           skip_to() or check() are called on a ValueIterator which is already
3034           at_end().
3036 Fri Sep 06 06:52:49 GMT 2013  Olly Betts <olly@survex.com>
3038         * api/positioniterator.cc,api/postingiterator.cc,api/termiterator.cc,
3039           tests/api_backend.cc: Don't segfault if skip_to() is called on an
3040           iterator which is already at_end().  Reported by David Bremner.
3042 Wed Sep 04 04:52:50 GMT 2013  Olly Betts <olly@survex.com>
3044         * weight/weightinternal.cc: TermFreqs now tracks collection frequency,
3045           so make TermFreqs::get_description() report it.
3047 Thu Aug 29 01:30:45 GMT 2013  Olly Betts <olly@survex.com>
3049         * matcher/andmaybepostlist.cc,matcher/multiandpostlist.h: Fix
3050           assertion failure for when an OrPostList decays to an AndPostList
3051           - the ordering of the subqueries by estimated termfreq may not be
3052           the same as it was when the OrPostList was constructed, as the
3053           subqueries may themselves have decayed.  Reported by Michel
3054           Pelletier.
3056 Fri Aug 23 03:17:33 GMT 2013  Olly Betts <olly@survex.com>
3058         * m4-macros/xapian-1.3.m4: Handle empty or unset XAPIAN_CONFIG
3059           correctly.
3061 Mon Jul 15 12:01:17 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3063         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3064           tests/api_weight.cc,weight/Makefile.mk,weight/dphweight.cc: Add an
3065           implementation of DfR weighting scheme DPH.
3067 Sun Jul 14 07:39:37 GMT 2013  Olly Betts <olly@survex.com>
3069         * include/xapian/weight.h,weight/pl2weight.cc: Optimise PL2Weight to
3070           only calculate 2 logs per call to get_sumpart() instead of 4 by
3071           precalculating three document-independent values in init().
3073 Sun Jul 14 07:04:52 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3075         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3076           tests/api_weight.cc,weight/Makefile.mk,weight/pl2weight.cc: Add an
3077           implementation of DfR weighting scheme PL2.
3079 Sat Jul 13 11:24:20 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3081         * weight/tfidfweight.cc: Explicitly cast argument of log() to double,
3082           as xlC doesn't manage to chose an overloaded form to call otherwise.
3084 Sat Jul 13 07:29:25 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3086         * include/xapian/weight.h,tests/api_weight.cc,
3087           tests/generate-api_generated,weight/: Fix new weighting schemes to
3088           work with OP_SCALE_WEIGHT.
3090 Wed Jul 10 12:57:01 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3092         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3093           tests/api_weight.cc,weight/Makefile.mk,weight/dlhweight.cc: Add an
3094           implementation of DfR weighting scheme DLH.
3096 Wed Jul 10 07:38:15 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3098         * expand/expandweight.h: Track collection_freq and totlen restricted
3099           to the RSet in preparation for supporting DfR query expansion
3100           schemes.
3102 Mon Jul 08 06:27:05 GMT 2013  Olly Betts <olly@survex.com>
3104         * weight/Makefile.mk: Normalise whitespace in BB2 change.
3106 Sun Jul 07 12:29:48 GMT 2013  Olly Betts <olly@survex.com>
3108         * weight/bb2weight.cc: New file for BB2Weight which I failed to
3109           commit.
3111 Sun Jul 07 11:51:45 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3113         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3114           tests/api_weight.cc,weight/Makefile.mk: Add implementation of DfR
3115           weighting scheme BB2.
3117 Sat Jul 06 02:07:13 GMT 2013  Olly Betts <olly@survex.com>
3119         * api/omdatabase.cc: Fix add_document() to always use exactly the next
3120           docid after get_lastdocid() in the multidatabase case.
3122 Fri Jul 05 06:19:55 GMT 2013  Olly Betts <olly@survex.com>
3124         * backends/dbfactory.cc: Allow open a stub database containing
3125           multiple subdatabases as a WritableDatabase.
3127 Thu Jul 04 06:29:56 GMT 2013  Olly Betts <olly@survex.com>
3129         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc,
3130           tests/harness/index_utils.h: Simplify the FileIndexer class.
3132 Thu Jul 04 06:09:06 GMT 2013  Olly Betts <olly@survex.com>
3134         * tests/harness/backendmanager_multi.cc,tests/harness/index_utils.cc,
3135           tests/harness/index_utils.h: Make use of the new writable
3136           multidatabase feature to simplify the multi-database handling in the
3137           test harness.
3139 Wed Jul 03 13:58:46 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3141         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3142           tests/api_weight.cc,weight/Makefile.mk,weight/ineb2weight.cc: Add
3143           implementation of DfR weighting scheme IneB2.
3145 Wed Jul 03 13:39:11 GMT 2013  Olly Betts <olly@survex.com>
3147         * include/xapian/weight.h: "please refer:" -> "please refer to:"
3149 Wed Jul 03 13:31:59 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3151         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3152           tests/api_weight.cc,weight/Makefile.mk,weight/ifb2weight.cc: Add
3153           implementation of DfR weighting scheme IfB2.
3155 Wed Jul 03 12:42:23 GMT 2013  Olly Betts <olly@survex.com>
3157         * common/safeuuid.h: Make a few tweaks to support AIX.
3159 Wed Jul 03 12:33:40 GMT 2013  Olly Betts <olly@survex.com>
3161         * common/safeuuid.h: Remove bogus take-address-of from uuid handling
3162           code for netbsd and openbsd.
3164 Wed Jul 03 11:56:05 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3166         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3167           tests/api_weight.cc,weight/Makefile.mk,weight/inl2weight.cc: Add
3168           implementation of DfR weighting scheme InL2.
3170 Wed Jul 03 08:20:26 GMT 2013  Olly Betts <olly@survex.com>
3172         * api/error.cc,common/Makefile.mk,common/safenetdb.h,net/tcpclient.cc,
3173           net/tcpserver.cc: AIX needs _USE_IRS defined for hstrerror, so
3174           create safenetdb.h to take care of that.
3176 Wed Jul 03 07:34:13 GMT 2013  Olly Betts <olly@survex.com>
3178         * common/safeuuid.h: Add missing '#include <cstdlib>' and qualify free
3179           with std.
3181 Tue Jul 02 23:44:48 GMT 2013  Olly Betts <olly@survex.com>
3183         * api/omdatabase.cc: Add support for WritableDatabase with multiple
3184           subdatabases.
3186 Tue Jul 02 23:40:08 GMT 2013  Olly Betts <olly@survex.com>
3188         * api/omdatabase.cc,tests/api_none.cc: Trying to perform operations on
3189           a database with no subdatabases now throws InvalidOperationError not
3190           DocNotFoundError.
3192 Tue Jul 02 13:22:31 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3194         * tests/api_weight.cc: Extend checkstatsweight1 to check that
3195           Weight::get_collection_freq() returns the same number as
3196           Database::get_collection_freq().
3198 Tue Jul 02 05:00:30 GMT 2013  Olly Betts <olly@survex.com>
3200         * api/omenquire.cc,api/omenquireinternal.h,
3201           backends/remote/remote-database.cc,backends/remote/remote-database.h,
3202           common/remoteprotocol.h,configure.ac,docs/remote_protocol.rst,
3203           include/xapian/enquire.h,matcher/multimatch.cc,matcher/multimatch.h,
3204           net/remoteserver.cc,tests/api_postingsource.cc: Add
3205           Enquire::set_time_limit() method which sets a timelimit after which
3206           check_at_least will be disabled.
3208 Mon Jul 01 23:42:33 GMT 2013  Olly Betts <olly@survex.com>
3210         * tests/Makefile.am: Fix to actually removed cached databases before
3211           "make check".
3213 Mon Jul 01 22:21:41 GMT 2013  Olly Betts <olly@survex.com>
3215         * NEWS,api/queryinternal.cc,matcher/valuestreamdocument.h: Revert
3216           changes accidentally included in r17373.
3218 Sat Jun 29 12:39:10 GMT 2013  Olly Betts <olly@survex.com>
3220         * include/xapian/unicode.h,unicode/tclUniData.cc: Change
3221           Xapian::Unicode::Internal::get_character_info() to simply return
3222           Xapian::Unicode::UNASSIGNED for character outside unicode (ch >=
3223           0x110000) which avoids a special check for such values before
3224           we call get_character_info().
3226 Sat Jun 29 09:31:12 GMT 2013  Olly Betts <olly@survex.com>
3228         * tests/api_serialise.cc: Remove code from registry* testcases which
3229           tries to test the consequences of throwing an exception from a
3230           destructor - it's complex to ensure we don't leak memory while doing
3231           this (it seems GCC doesn't release the object in this case, but
3232           clang does), and it's generally frowned upon, plus C++11 makes
3233           destructors noexcept by default.
3235 Thu Jun 27 02:36:02 GMT 2013  Olly Betts <olly@survex.com>
3237         * weight/weightinternal.h: Initialise total_term_count to zero.
3238           Fixes failure of qp_flag_wildcard3 under valgrind in buildbot.
3240 Wed Jun 26 05:48:21 GMT 2013  Olly Betts <olly@survex.com>
3242         * backends/dbfactory.cc: '# if defined' -> '#ifdef' to match
3243           surrounding code better.
3245 Wed Jun 26 05:47:38 GMT 2013  Olly Betts <olly@survex.com>
3247         * backends/dbfactory.cc: Fix 'unused label' warning when chert backend
3248           is disabled.
3250 Wed Jun 26 05:40:29 GMT 2013  Olly Betts <olly@survex.com>
3252         * tests/queryparsertest.cc: Fix previous change to compile.
3254 Wed Jun 26 05:34:25 GMT 2013  Olly Betts <olly@survex.com>
3256         * tests/queryparsertest.cc: Change qp_scale1 to time 5 repetitions of
3257           the large query to help average out variations.
3259 Wed Jun 26 04:52:33 GMT 2013  Olly Betts <olly@survex.com>
3261         * configure.ac: Tweak to simplify diff against similar code in
3262           xapian-omega.
3264 Wed Jun 26 03:56:14 GMT 2013  Olly Betts <olly@survex.com>
3266         * api/matchspy.cc: Fix get_description() to work on a
3267           ValueCountMatchSpy with NULL internals - fixes matchspy5 testcase
3268           with remote backends when configured with --enable-log.
3269         * api/matchspy.cc: Add assertions that internal is non-NULL before
3270           using it.
3271         * include/xapian/matchspy.h: If internal is NULL, make
3272           ValueCountMatchSpy::get_total() return 0 rather than dereferencing
3273           NULL.
3275 Wed Jun 26 03:10:58 GMT 2013  Olly Betts <olly@survex.com>
3277         * tests/harness/testsuite.cc,tests/harness/testsuite.h: If
3278           -v/--verbose is specified more than once, show the diagnostic output
3279           for passing tests as well as failing/skipped ones.
3281 Wed Jun 26 03:08:08 GMT 2013  Olly Betts <olly@survex.com>
3283         * tests/api_scalability.cc: Change querypairwise1_helper to repeat the
3284           query build 100 times, as with a fast modern machine we were
3285           sometimes trying to so many subqueries that we would run out of
3286           stack.
3288 Wed Jun 26 02:55:20 GMT 2013  Olly Betts <olly@survex.com>
3290         * weight/tfidfweight.cc: Wrap long lines.
3292 Wed Jun 26 02:00:12 GMT 2013  Olly Betts <olly@survex.com>
3294         * configure.ac,m4-macros/xapian-1.3.m4: Fix stripping of _git suffix
3295           from snapshot versions not to relying of sed having support for \|
3296           as it doesn't on OS X.
3298 Tue Jun 25 13:21:44 GMT 2013  Olly Betts <olly@survex.com>
3300         * weight/tfidfweight.cc: Merge "impossible" cases in switch statements
3301           into possible ones which contain the same code, adding assertions
3302           that the "impossible" hasn't happened.  More robust and improves
3303           test coverage.
3305 Tue Jun 25 06:28:00 GMT 2013  Olly Betts <olly@survex.com>
3307         * m4-macros/xapian-1.3.m4: XO_LIB_XAPIAN now handles the user
3308           specifying a relative path in XAPIAN_CONFIG, e.g.: "./configure
3309           XAPIAN_CONFIG=../xapian-core/xapian-config"
3311 Tue Jun 25 05:34:41 GMT 2013  Olly Betts <olly@survex.com>
3313         * m4-macros/xapian-1.3.m4: Fix comment typo.
3315 Tue Jun 25 05:33:54 GMT 2013  Olly Betts <olly@survex.com>
3317         * configure.ac: Use AC_PATH_PROG instead of AC_PATH_PROG when there's
3318           only one name for the program to look for.
3320 Sun Jun 23 13:12:54 GMT 2013  Olly Betts <olly@survex.com>
3322         * configure.ac: clang doesn't support -Wstrict-null-sentinel or
3323           -Wlogical-op, so don't pass it these options.
3325 Sat Jun 22 13:40:40 GMT 2013  Olly Betts <olly@survex.com>
3327         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
3328           Fix failure when built with -D_GLIBCXX_DEBUG - we were modifying
3329           the top() element of a heap before calling pop(), such that the
3330           heap comparison operation (which is called when -D_GLIBCXX_DEBUG
3331           is on to verify the heap is valid) would read off the end of the
3332           data.  In a normal build, this issue would likely never manifest.
3334 Sat Jun 22 11:21:22 GMT 2013  Olly Betts <olly@survex.com>
3336         * common/bitstream.cc: Fix assertion in BitReader::decode().
3338 Sat Jun 22 09:13:13 GMT 2013  Olly Betts <olly@survex.com>
3340         * matcher/localsubmatch.cc: Fix assertion failure when built with
3341           --enable-assertions.  The behaviour when built without assertions
3342           happened to be correct.
3344 Fri Jun 21 13:10:53 GMT 2013  Olly Betts <olly@survex.com>
3346         * tests/unittest.cc: Add simple test for log2().
3348 Fri Jun 21 13:09:09 GMT 2013  Olly Betts <olly@survex.com>
3350         * common/Makefile.mk,common/log2.h,configure.ac: Add log2.h header
3351           which provides an implementation of log2() if it isn't available in
3352           the standard libraries.
3354 Fri Jun 14 13:20:58 GMT 2013  Olly Betts <olly@survex.com>
3356         * common/fd.h: Add missing header include guards.
3358 Fri Jun 14 13:19:44 GMT 2013  Olly Betts <olly@survex.com>
3360         * common/append_filename_arg.h,geospatial/geoencode.h: Fix header
3361           include guard names which don't match our naming conventions.
3363 Fri Jun 14 13:18:40 GMT 2013  Olly Betts <olly@survex.com>
3365         * backends/brass/brass_dbcheck.h,backends/chert/chert_dbcheck.h,
3366           backends/multi/multi_alltermslist.h: Fix header include guard macro
3367           names which don't match the source file names.
3369 Fri Jun 14 12:48:14 GMT 2013  Olly Betts <olly@survex.com>
3371         * common/compression_stream.h: Whitespace tweak.
3373 Thu Jun 13 13:58:14 GMT 2013  Olly Betts <olly@survex.com>
3375         * backends/chert/chert_positionlist.cc: Remove 'Assert(rd);' since rd
3376           is no longer a pointer.
3378 Thu Jun 13 13:28:43 GMT 2013  Olly Betts <olly@survex.com>
3380         * tests/harness/utestsuite.cc: Add missing GPL boilerplate and
3381           copyright statements.
3383 Thu Jun 13 13:26:07 GMT 2013  Olly Betts <olly@survex.com>
3385         * common/compression_stream.cc,common/compression_stream.h: Add
3386           missing GPL boilerplate and copyright statements.
3388 Thu Jun 13 13:24:34 GMT 2013  Olly Betts <olly@survex.com>
3390         * common/compression_stream.cc,common/compression_stream.h: Remove
3391           unused header includes; don't use "using namespace std;" in a
3392           header.
3394 Thu Jun 13 08:30:26 GMT 2013  Olly Betts <olly@survex.com>
3396         * backends/brass/brass_positionlist.cc: Remove 'Assert(rd);' since rd
3397           is no longer a pointer.
3399 Thu Jun 13 05:07:27 GMT 2013  Olly Betts <olly@survex.com>
3401         * common/compression_stream.h: Update include guard to match source
3402           file name.
3404 Thu Jun 13 02:38:20 GMT 2013  Olly Betts <olly@survex.com>
3406         * common/,net/length.h,net/serialise.h: Fix @file markup which wasn't
3407           actually in a doxygen comment.
3409 Thu Jun 13 02:14:22 GMT 2013  Olly Betts <olly@survex.com>
3411         * preautoreconf: Remove needless use of perl prototype.
3413 Tue Jun 11 00:40:37 GMT 2013  Olly Betts <olly@survex.com>
3415         * common/remoteprotocol.h,docs/remote_protocol.rst: Bump
3416           remote protocol version to 38.o.
3418 Tue Jun 11 00:37:01 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3420         * api/leafpostlist.cc,matcher/,net/serialise.cc,weight/weight.cc,
3421           weight/weightinternal.cc,weight/weightinternal.h: Make collection
3422           frequency available to Xapian::Weight subclasses.  Extracted from
3423           Gaurav Arora's LM branch.
3425 Wed May 22 10:04:25 GMT 2013  Olly Betts <olly@survex.com>
3427         * configure.ac: When generating ABI compatibility checks in
3428           xapian/version.h, pass $CXXFLAGS and $CPPFLAGS to $CXXCPP as they
3429           could contain options which affect the ABI (such as -fabi-version
3430           for GCC).  (Fixes #622)
3432 Wed May 22 04:20:39 GMT 2013  Olly Betts <olly@survex.com>
3434         * common/win32_uuid.cc: Microsoft GUIDs in binary form have reversed
3435           byte order in the first three components compared to standard UUIDs,
3436           so the same database would report a different UUID on Windows to
3437           on other platforms.  With this fix, the UUIDs of existing databases
3438           will appear to change on Windows (except in rare "palindronic" cases).
3440 Fri May 17 05:52:43 GMT 2013  Olly Betts <olly@survex.com>
3442         * docs/overview.rst: Correct documentation for stub files specifying
3443           "prog" remote databases.
3445 Thu May 16 05:47:40 GMT 2013  Olly Betts <olly@survex.com>
3447         * backends/chert/chert_dbcheck.cc: Code tweak for clarity.
3449 Thu May 16 05:46:42 GMT 2013  Olly Betts <olly@survex.com>
3451         * backends/chert/chert_dbcheck.cc: Fix database check that first docid
3452           in each doclength chunk is more than the last docid in the previous
3453           chunk - previously this didn't actually work.
3455 Thu May 16 05:45:04 GMT 2013  Olly Betts <olly@survex.com>
3457         * common/bitstream.h: Fix database check not to falsely report
3458           "position table: Junk after position data" whenever there are 7
3459           unused bits (7 is OK, *more* than 7 isn't).
3461 Tue May 14 12:42:11 GMT 2013  Olly Betts <olly@survex.com>
3463         * m4-macros/xapian-1.3.m4: Adjust XO_LIB_XAPIAN to strip _gitNNN
3464           suffix from snapshot versions.
3466 Sun May 12 06:11:36 GMT 2013  Olly Betts <olly@survex.com>
3468         * configure.ac: Simplify previous change.
3470 Sun May 12 06:06:47 GMT 2013  Olly Betts <olly@survex.com>
3472         * configure.ac: Handle git snapshot naming when calculating REVISION.
3474 Wed May 08 11:56:27 GMT 2013  Olly Betts <olly@survex.com>
3476         * HACKING,INSTALL,Makefile.am,README,docs/Makefile.am,docs/install.rst,
3477           docs/stemming.rst,languages/Makefile.mk,queryparser/Makefile.mk,
3478           tests/Makefile.am,tests/perftest/perftest.cc: SVN -> git.
3480 Wed May 08 08:51:22 GMT 2013  Olly Betts <olly@survex.com>
3482         * backends/brass/brass_version.cc,backends/chert/chert_version.cc:
3483           Remove unused '#include <cstdio>'.
3485 Mon May 06 11:10:25 GMT 2013  Olly Betts <olly@survex.com>
3487         * api/omenquire.cc,configure.ac,include/xapian/enquire.h: Merge two
3488           Enquire::get_eset() overloaded forms into one with a default value
3489           for parameter min_wt.
3491 Thu May 02 12:05:28 GMT 2013  Olly Betts <olly@survex.com>
3493         * NEWS,configure.ac: Update for 1.3.1.
3495 Thu May 02 11:13:30 GMT 2013  Olly Betts <olly@survex.com>
3497         * include/xapian/weight.h,tests/api_nodb.cc,tests/api_weight.cc,
3498           weight/tfidfweight.cc: Use lowercase letters for the TfIdfWeight
3499           descriptions to match what SMART uses.
3501 Wed May 01 05:13:07 GMT 2013  Olly Betts <olly@survex.com>
3503         * include/xapian/database.h: Work around Apple's OS X SDK defining a
3504           check() macro.
3506 Tue Apr 30 13:51:53 GMT 2013  Olly Betts <olly@survex.com>
3508         * NEWS: Update from ChangeLog.
3510 Mon Apr 29 03:09:16 GMT 2013  Olly Betts <olly@survex.com>
3512         * backends/brass/brass_dbcheck.cc,backends/chert/chert_dbcheck.cc:
3513           Use decode_interpolative_next() when checking database consistency.
3514           We also now complain about any junk after the position data.
3515         * common/bitstream.cc,common/bitstream.h: Remove the old version of
3516           decode_interpolative() which unpacks into a std::vector.
3518 Mon Apr 29 02:16:54 GMT 2013  Olly Betts <olly@survex.com>
3520         * backends/chert/chert_positionlist.cc,
3521           backends/chert/chert_positionlist.h: Backport positionlist changes
3522           from brass.
3524 Mon Apr 29 01:58:59 GMT 2013  Olly Betts <olly@survex.com>
3526         * backends/brass/brass_positionlist.cc: No need to initialise the
3527           BitReader object in the single-entry position list case.
3529 Mon Apr 29 01:58:10 GMT 2013  Olly Betts <olly@survex.com>
3531         * backends/brass/brass_positionlist.cc: Fix bug when reaching the last
3532           positionlist entry in skip_to().
3534 Mon Apr 29 00:46:10 GMT 2013  Olly Betts <olly@survex.com>
3536         * tests/api_posdb.cc: Fix comment typos.
3538 Mon Apr 29 00:27:42 GMT 2013  Olly Betts <olly@survex.com>
3540         * backends/brass/brass_positionlist.cc: Fix handling of single-entry
3541           position lists.
3543 Sun Apr 28 23:45:02 GMT 2013  Olly Betts <olly@survex.com>
3545         * backends/brass/brass_positionlist.cc: Fix BrassPositionList for case
3546           when there's no positional information for a term.
3548 Sun Apr 28 10:29:59 GMT 2013  Olly Betts <olly@survex.com>
3550         * backends/brass/brass_positionlist.cc: Simplify setting of
3551           have_started in BrassPositionList::skip_to().
3553 Sun Apr 28 10:19:52 GMT 2013  Olly Betts <olly@survex.com>
3555         * backends/brass/brass_positionlist.cc,
3556           backends/brass/brass_positionlist.h,common/bitstream.h: Make the
3557           BitReader object a member of BrassPositionList rather than tracking
3558           a pointer to it.
3560 Sun Apr 28 07:22:07 GMT 2013  Olly Betts <olly@survex.com>
3562         * backends/brass/brass_positionlist.cc,common/bitstream.h: Reuse the
3563           same BitReader object for each document rather than deleting the old
3564           one and creating a new one.
3566 Sun Apr 28 07:06:12 GMT 2013  Olly Betts <olly@survex.com>
3568         * backends/brass/brass_positionlist.cc: Move check for reaching the
3569           end after the next() in the loop in skip_to(), as we know we aren't
3570           at the end on the first iteration, and we've now handled the case of
3571           termpos == last before we get here.
3573 Sun Apr 28 07:04:54 GMT 2013  Olly Betts <olly@survex.com>
3575         * backends/brass/brass_positionlist.cc: We know what the last entry in
3576           the position list is, so special case skip_to(last_entry) to just
3577           move there rather than calling next() a lot of times.
3579 Sun Apr 28 07:03:57 GMT 2013  Olly Betts <olly@survex.com>
3581         * common/bitstream.h: We don't need to stack pos_j when doing lazy
3582           interpolative decoding.
3584 Sun Apr 28 06:48:01 GMT 2013  Olly Betts <olly@survex.com>
3586         * common/bitstream.h: Store j and k before pos_j and pos_k as it's
3587           fractionally more efficient.
3589 Sun Apr 28 06:44:32 GMT 2013  Olly Betts <olly@survex.com>
3591         * backends/brass/brass_positionlist.cc,
3592           backends/brass/brass_positionlist.h,common/bitstream.cc,
3593           common/bitstream.h: Hook up BrassPositionList to the new lazy
3594           interpolative decoder.
3596 Fri Apr 26 02:09:38 GMT 2013  Marius Tibeica <mtibeica@gmail.com>
3598         * common/bitstream.cc,common/bitstream.h: Support reading entries from
3599           an interpolative coded list one by one.
3601 Thu Apr 25 10:57:02 GMT 2013  Olly Betts <olly@survex.com>
3603         * docs/remote_protocol.rst: Correct error in documentation of
3604           REPLY_DOCDATA message.
3606 Thu Apr 25 10:44:56 GMT 2013  Marius Tibeica <mtibeica@gmail.com>
3608         * common/bitstream.cc: renamed my_fls to highest_order_bit.
3610 Thu Apr 25 06:49:48 GMT 2013  Olly Betts <olly@survex.com>
3612         * backends/remote/remote-database.cc,common/remoteprotocol.h,
3613           docs/remote_protocol.rst,net/remoteserver.cc: Prefix compress
3614           list of terms and metadata keys in the remote protocol.  
3615           This requires a remote protocol major version bump.
3617 Wed Apr 24 23:14:47 GMT 2013  Olly Betts <olly@survex.com>
3619         * queryparser/lemon.c,queryparser/queryparser.lt: Fix comment typos.
3621 Wed Apr 24 06:27:26 GMT 2013  Olly Betts <olly@survex.com>
3623         * include/xapian.h: Add catch for Wt defining a macro called slots,
3624           like we already do for Qt.
3626 Wed Apr 24 03:40:13 GMT 2013  Olly Betts <olly@survex.com>
3628         * NEWS: Update.
3630 Tue Apr 23 12:34:23 GMT 2013  Olly Betts <olly@survex.com>
3632         * backends/brass/brass_table.cc: Use a block's revision number to
3633           check if it was newly allocated in the current revision, and
3634           assert that the base file shows it block_free_at_start (previously
3635           the check and assertion were the other way around).
3637 Tue Apr 23 12:11:21 GMT 2013  Olly Betts <olly@survex.com>
3639         * HACKING: Note macports needed for development work.
3641 Tue Apr 23 11:41:17 GMT 2013  Olly Betts <olly@survex.com>
3643         * include/xapian/version_h.cc: Fix typo in doc comment.
3645 Tue Apr 23 11:39:30 GMT 2013  Olly Betts <olly@survex.com>
3647         * include/xapian/version_h.cc: Disable error for direct inclusion
3648           of xapian/version.h for now.
3650 Sun Apr 21 07:49:38 GMT 2013  Olly Betts <olly@survex.com>
3652         * include/xapian/version_h.cc: Fix quotes in new #error in version.h.
3654 Sun Apr 21 06:25:57 GMT 2013  Olly Betts <olly@survex.com>
3656         * configure.ac,generate-exceptions,include/xapian/: Give an error if
3657           user code tries to include API headers other than xapian.h directly.
3659 Sat Apr 20 10:12:23 GMT 2013  Olly Betts <olly@survex.com>
3661         * languages/compiler/generator.c: Generate '#include <config.h>' at
3662           the start of the stemmer code.
3664 Fri Apr 19 23:36:25 GMT 2013  Olly Betts <olly@survex.com>
3666         * configure.ac: Remove empty default cases.
3668 Wed Apr 17 03:06:57 GMT 2013  Olly Betts <olly@survex.com>
3670         * NEWS: Update from 1.2.15 and ChangeLog.
3672 Thu Apr 11 22:17:44 GMT 2013  Olly Betts <olly@survex.com>
3674         * backends/brass/brass_version.cc,backends/chert/chert_version.cc:
3675           Call io_sync() on the version file when we create it.
3677 Tue Apr 09 11:02:35 GMT 2013  Olly Betts <olly@survex.com>
3679         * bin/xapian-delve.cc: If -v is specified more than once, show even
3680           more info in some cases.
3682 Tue Apr 09 09:40:02 GMT 2013  Olly Betts <olly@survex.com>
3684         * tests/Makefile.am: Force automake to use the serial test driver,
3685           which requires automake 1.12 (to recognise the serial-tests driver).
3687 Mon Apr 08 06:30:40 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3689         * weight/: Added tfidfweight.cc containing the implementation of the
3690           TfIdfWeight class.
3692         * include/xapian/weight.h: Added TfIdfWeight class for the tf-idf
3693           weighting scheme.
3695         * tests/api_weight.cc: Added tests for TfIdfWeight.
3697         * tests/api_nodb.cc: Added simple tests for TfIdfWeight.
3699 Sat Apr 06 00:21:34 GMT 2013  Olly Betts <olly@survex.com>
3701         * m4-macros/xapian-1.3.m4: XO_LIB_XAPIAN now handles the user
3702           specifying XAPIAN_CONFIG without a path - e.g.: "./configure
3703           XAPIAN_CONFIG=xapian-config-1.3"
3705 Thu Apr 04 12:02:36 GMT 2013  Olly Betts <olly@survex.com>
3707         * common/Makefile.mk: Remove random comment.
3709 Thu Apr 04 10:06:53 GMT 2013  Olly Betts <olly@survex.com>
3711         * Makefile.am,configure.ac,tests/Makefile.am: Remove support for
3712           'configure --enable-quiet', 'make QUIET=' and 'make QUIET=y' -
3713           automake now supports 'configure --enable-silent-rules', 'make V=1'
3714           and 'make V=0' which are broadly equivalent and more standard.
3716 Thu Apr 04 09:58:35 GMT 2013  Olly Betts <olly@survex.com>
3718         * HACKING: Update to note that automake 1.12.2 is now a hard
3719           requirement.
3721 Tue Apr 02 10:22:44 GMT 2013  Olly Betts <olly@survex.com>
3723         * queryparser/lemon.c: Comment typo fixes.
3725 Tue Apr 02 09:47:14 GMT 2013  Olly Betts <olly@survex.com>
3727         * queryparser/lemon.c,queryparser/queryparser.lt: Sync with latest
3728           upstream version of lemon.  The only notable change is a bug fix for
3729           platforms where sizeof(long) < sizeof(void*) (LLP64 model).
3731 Tue Apr 02 05:51:12 GMT 2013  Olly Betts <olly@survex.com>
3733         * HACKING: Tell vim to syntax highlight as rst.
3735 Tue Apr 02 05:50:26 GMT 2013  Olly Betts <olly@survex.com>
3737         * HACKING: Update for recent changes to bootstrap.  In particular, we
3738           now bootstrap snapshots with automake 1.13.1.
3740 Fri Mar 29 05:18:11 GMT 2013  Olly Betts <olly@survex.com>
3742         * net/tcpclient.cc: Fix __WIN32__ conditional, accidentally broken in
3743           last change to this file.
3745 Thu Mar 28 04:19:26 GMT 2013  jiangwen jiang <jiangwen127@gmail.com>
3747         * api/expanddecider.cc,include/xapian/expanddecider.h,
3748           tests/api_anydb.cc,tests/api_nodb.cc: Add ExpandDeciderFilterPrefix
3749           class to only return terms with a particular prefix.  (fixes #467)
3751 Thu Mar 21 23:55:26 GMT 2013  Olly Betts <olly@survex.com>
3753         * tests/queryparsertest.cc: Add test coverage for change to
3754           QueryParser CJK handling in previous commit.
3756 Thu Mar 21 07:21:30 GMT 2013  Greg Banks <gnb@fastmail.fm>
3758         * queryparser/cjk-tokenizer.cc,queryparser/termgenerator_internal.cc,
3759           tests/termgentest.cc: Some CJK codepoints are also punctuation and
3760           hence not word characters, and should not really be used as fodder
3761           for generating N-grams.  Also fixes a pre-existing bug where every
3762           second sequence of N-grammable CJK characters in the text failed to
3763           generate the first 2-gram.
3765 Sun Mar 17 20:45:48 GMT 2013  Olly Betts <olly@survex.com>
3767         * common/pretty.h: Restore space after comma in output.
3769 Sun Mar 17 03:59:52 GMT 2013  Dan Colish <dcolish@gmail.com>
3771         * common/pretty.h: Correct recursion issue.
3773 Sun Mar 17 02:58:52 GMT 2013  Dan Colish <dcolish@gmail.com>
3775         * common/pretty.h: Resolve ambiguity by moving operator| to a member
3776           function of PrettyOStream
3778 Sat Mar 16 21:43:32 GMT 2013  Olly Betts <olly@survex.com>
3780         * queryparser/queryparser.lemony: std::less provides a total order over
3781           pointers, so we can just use that to implement
3782           filter_group_id::operator<() - we only need a consistent order so we
3783           can use it as the key to a std::map.
3785 Fri Mar 15 06:36:32 GMT 2013  Dan Colish <dcolish@gmail.com>
3787         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
3788           common/pretty.h: Avoid needlessly casting away const-ness in
3789           debug logging.
3791 Fri Mar 15 06:31:32 GMT 2013  Olly Betts <olly@survex.com>
3793         * matcher/multiandpostlist.cc,matcher/multixorpostlist.cc: Add a
3794           couple more LOGCALL annotations.
3796 Fri Mar 15 06:27:42 GMT 2013  Dan Colish <dcolish@gmail.com>
3798         * api/registry.cc,common/pretty.h: Fix incorrect LOGCALL return value.
3800 Fri Mar 15 06:24:11 GMT 2013  Olly Betts <olly@survex.com>
3802         * api/registry.cc,common/Makefile.mk,common/registryinternal.h:
3803           common/registryinternal.h is only included by api/registry.cc so
3804           just inline its contents.
3806 Fri Mar 15 06:11:14 GMT 2013  Olly Betts <olly@survex.com>
3808         * api/registry.cc: No need to explicitly default initialise std::map
3809           members or the base class.
3811 Fri Mar 08 04:05:31 GMT 2013  Olly Betts <olly@survex.com>
3813         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc: Fix
3814           multipass compaction not to damage document values, and to merge the
3815           database stats correctly.  (fixes #615)
3816         * tests/api_compact.cc: Add regression test compactmultipass1.
3818 Thu Mar 07 00:34:46 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3820         * tests/api_anydb.cc: Added tradweight4 testcase to test TradWeight
3821           with an RSet for weighting documents.
3823 Wed Mar 06 08:55:12 GMT 2013  Olly Betts <olly@survex.com>
3825         * HACKING: gs package has been replaced by ghostscript package in
3826           current Debian and Ubuntu releases.
3828 Tue Feb 19 04:17:19 GMT 2013  Olly Betts <olly@survex.com>
3830         * common/Tokeniseise.pm: Add the ability to append lines to the
3831           header.
3833 Fri Feb 15 05:37:09 GMT 2013  Olly Betts <olly@survex.com>
3835         * common/realtime.h: Fix RealTime::sleep() to calculate the delta to
3836           the time we want to sleep to the right way round.  Previously we
3837           wouldn't sleep if we were before the deadline, but would sleep if
3838           the deadline had already passed (and by the amount the deadline had
3839           passed)!  And on Windows, fix the sleep to be for the delta rather
3840           than 43+ years (the time elapsed since the start of 1970).  (Fixes
3841           #472)
3843 Fri Feb 15 04:09:28 GMT 2013  Olly Betts <olly@survex.com>
3845         * api/queryinternal.cc: Need <functional> for mem_fun().
3847 Fri Feb 15 03:56:32 GMT 2013  Olly Betts <olly@survex.com>
3849         * tests/harness/testsuite.cc: Don't provide explicit template types to
3850           make_pair - it isn't useful, and breaks with C++11.  Fixes build
3851           error with MSVC2012.
3853 Thu Jan 31 23:39:08 GMT 2013  Olly Betts <olly@survex.com>
3855         * common/Tokeniseise.pm: Put the binary chop tables with the larger
3856           ones last, so the offsets to the start of them are more likely to
3857           fit into a byte.
3859 Wed Jan 30 04:17:07 GMT 2013  Olly Betts <olly@survex.com>
3861         * common/Makefile.mk,common/Tokeniseise.pm,languages/Makefile.mk,
3862           languages/collate-sbl: Factor out the generic code to create a
3863           string-to-enum mapping table into a perl module so we can reuse
3864           it elsewhere.
3866 Mon Jan 28 01:44:53 GMT 2013  Olly Betts <olly@survex.com>
3868         * examples/quest.cc: Fix to build with Sun Studio 12 compiler.
3869           (ticket#611)
3871 Thu Jan 24 22:40:12 GMT 2013  Olly Betts <olly@survex.com>
3873         * common/Makefile.mk,common/keyword.cc,common/keyword.h: Commit new
3874           keyword lookup function needed by previous commit.
3876 Thu Jan 24 22:26:19 GMT 2013  Olly Betts <olly@survex.com>
3878         * languages/: Generate a compact and efficient table to convert
3879           language names to enum codes, which we can then use a C switch
3880           statement to dispatch.  The table first checks the token length,
3881           and then does a binary chop on tokens of the same length.  This
3882           is both faster and smaller than the approach we were using, with
3883           the benefit that the table is auto-generated.
3885 Wed Jan 23 00:51:42 GMT 2013  Olly Betts <olly@survex.com>
3887         * matcher/selectpostlist.cc,matcher/selectpostlist.h: Check document
3888           matches weight threshold before checking positional information,
3889           which speeds up slow phrase searches (tweaked version of
3890           positional-query-weight-check-first.patch from #394).
3892 Thu Jan 17 06:48:41 GMT 2013  Olly Betts <olly@survex.com>
3894         * tests/api_stem.cc: Extend stem2 to ensure description of the stemmer
3895           isn't the same as the description of Stem("none").  Fix description
3896           of testcase stemlangs2.
3898 Thu Jan 17 02:32:31 GMT 2013  Olly Betts <olly@survex.com>
3900         * HACKING: Update link to new home of autotools tutorial.
3902 Wed Jan 16 02:40:20 GMT 2013  Olly Betts <olly@survex.com>
3904         * HACKING,Makefile.am: Rename CHK_SOURCES to check_sources - variables
3905           ending _SOURCES usually have a special meaning in automake, so it's
3906           confusing to have one which doesn't.
3908 Wed Jan 16 01:55:50 GMT 2013  Olly Betts <olly@survex.com>
3910         * api/omenquire.cc: Don't cache documents retrieved by
3911           MSet::get_document() unless they were requested with fetch().  This
3912           avoids using a lot of memory when many MSet entries are retrieved.
3913           (Fixes #604)
3915 Wed Jan 09 11:49:58 GMT 2013  Olly Betts <olly@survex.com>
3917         * NEWS: Update from ChangeLog and 1.2 branch.
3919 Fri Jan 04 23:14:33 GMT 2013  Olly Betts <olly@survex.com>
3921         * net/progclient.cc: Fix typo so we actually use SOCK_CLOEXEC.
3923 Fri Jan 04 23:14:01 GMT 2013  Olly Betts <olly@survex.com>
3925         * common/safesyssocket.h: We need the same workaround for socket() too.
3927 Fri Jan 04 04:41:17 GMT 2013  Olly Betts <olly@survex.com>
3929         * common/safesyssocket.h: On Linux at least, sometimes SOCK_CLOEXEC is
3930           defined but the kernel doesn't handle it in socketpair(), so add a
3931           wrapper which will retry without SOCK_CLOEXEC in this case.  Noticed
3932           on Ubuntu precise.
3934 Sat Dec 29 17:53:30 GMT 2012  Olly Betts <olly@survex.com>
3936         * docs/quickstart.rst: Fix seriously outdated statement that Xapian
3937           doesn't create the database directory - that changed in 0.7.2
3938           (release 2003-07-11), pointed out by aarsh on #xapian.
3940 Thu Dec 27 06:06:30 GMT 2012  Olly Betts <olly@survex.com>
3942         * queryparser/queryparser.lemony: Adjust handling of Unicode
3943           opening/closing double quotes - if a quoted boolean term was started
3944           with ASCII double quote, then only ASCII double quote can end it, as
3945           otherwise it's impossible to quote a term containing Unicode double
3946           quotes.
3947         * tests/queryparsertest.cc: Update testcases.
3949 Sun Dec 23 18:16:52 GMT 2012  Olly Betts <olly@survex.com>
3951         * configure.ac: Fix typo in previous commit.
3953 Sun Dec 23 18:06:45 GMT 2012  Olly Betts <olly@survex.com>
3955         * configure.ac: Use the new flock()-based flint-compatible locking
3956           under DJGPP, and remove special cases to disable chert and brass
3957           under DJGPP (untested, as I no longer have a DJGPP setup or
3958           cross-compiler).
3960 Sun Dec 23 17:51:36 GMT 2012  Olly Betts <olly@survex.com>
3962         * backends/flint_lock.cc,backends/flint_lock.h: Add flock() based
3963           locking implementation, which is much simpler than using fcntl() due
3964           to saner semantics around releasing locks when closing other
3965           descriptors on the same file (at least on platforms where flock()
3966           isn't just a compatibility wrapper around fcntl()).  We can't simply
3967           switch to this without breaking locking compatibility with previous
3968           releases, though it might be useful for porting to platforms without
3969           fcntl() locking.  Also, flock() apparently doesn't work over NFS -
3970           perhaps that's OK, but we should at least check the failure mode.
3972 Sat Dec 22 06:29:23 GMT 2012  Olly Betts <olly@survex.com>
3974         * backends/flint_lock.cc: Only set close-on-exec on the lockfile fd if
3975           we are able to clear it in the child process, and clear it in the
3976           child process if we set it when we opened it.
3978 Sat Dec 22 06:14:40 GMT 2012  Olly Betts <olly@survex.com>
3980         * backends/flint_lock.cc,net/progclient.cc: Use SOCK_CLOEXEC with
3981           socketpair(), and then clear the close-on-exec flag for child process
3982           end of the pair before we call exec.
3984 Sat Dec 22 06:13:44 GMT 2012  Olly Betts <olly@survex.com>
3986         * net/progclient.cc: Remove O_CLOEXEC where we open stderr on /dev/null
3987           before calling exec as we want that fd to survive the exec!
3989 Sat Dec 22 05:53:12 GMT 2012  Olly Betts <olly@survex.com>
3991         * HACKING,backends/flint_lock.cc,common/Makefile.mk,
3992           common/safesyssocket.h,net/progclient.cc,net/tcpclient.cc,
3993           net/tcpserver.cc,tests/harness/backendmanager_remotetcp.cc:
3994           Use SOCK_CLOEXEC where available, and try FD_CLOEXEC if SOCK_CLOEXEC
3995           isn't available.
3997 Sat Dec 22 04:09:23 GMT 2012  Olly Betts <olly@survex.com>
3999         * backends/brass/,backends/chert/,backends/flint_lock.cc,
4000           common/debuglog.cc,common/replicate_utils.cc,common/safefcntl.h,
4001           net/progclient.cc,net/remoteconnection.cc,
4002           tests/harness/testsuite.cc: If O_CLOEXEC is supported, pass it to
4003           open() so fds we open are closed if the application using us calls
4004           exec().
4006 Fri Dec 21 03:48:36 GMT 2012  Olly Betts <olly@survex.com>
4008         * configure.ac: Don't autodisable the remote backend if we fail to find
4009           a required function.  It's more likely the user needs to pass
4010           LIBS=-lfoo and it's more helpful to error out so they can do that, or
4011           pass --disable-backend-remote if they really don't want it, rather
4012           than having them not notice the automatic disabling until after
4013           they've built.  This also matches what we do for the disk based
4014           backends.
4016 Fri Dec 21 03:48:11 GMT 2012  Olly Betts <olly@survex.com>
4018         * configure.ac: Expand comment about DJGPP.
4020 Fri Dec 21 03:47:13 GMT 2012  Olly Betts <olly@survex.com>
4022         * configure.ac: Update comment - we've supported the prog backend on
4023           Windows for more than 5 years now!
4025 Fri Dec 21 03:32:13 GMT 2012  Olly Betts <olly@survex.com>
4027         * tests/api_replicate.cc: Use O_BINARY in replication tests.
4029 Fri Dec 21 03:24:37 GMT 2012  Olly Betts <olly@survex.com>
4031         * common/replicate_utils.cc: Make posixy_open() always use O_BINARY.
4032         * backends/brass/brass_btreebase.cc,backends/brass/brass_database.cc,
4033           backends/brass/brass_databasereplicator.cc,
4034           backends/chert/chert_btreebase.cc,
4035           backends/chert/chert_databasereplicator.cc,common/posixy_wrapper.cc:
4036           Don't pass O_BINARY to posixy_open() in the places where we were
4037           (which wasn't everywhere, probably causing replication bugs under
4038           __WIN32__).
4040 Fri Dec 21 02:57:56 GMT 2012  Olly Betts <olly@survex.com>
4042         * net/remoteconnection.cc,net/remoteconnection.h: Only "outline"
4043           RemoteConnection dtor under __WIN32__.
4045 Fri Dec 21 02:56:28 GMT 2012  Olly Betts <olly@survex.com>
4047         * backends/remote/remote-database.cc: Make the UnimplementedError for a
4048           MatchSpy which doesn't implement name() clearer that it's this
4049           particular subclass which can't be used remotely, not all MatchSpy
4050           objects.
4052 Thu Dec 20 22:27:40 GMT 2012  Olly Betts <olly@survex.com>
4054         * configure.ac: Use user-specified LIBS for configure tests, which is
4055           what's expected, and provides a way for the user to tell configure
4056           where to find library functions which configure can't find for
4057           itself.
4059 Thu Dec 20 22:07:19 GMT 2012  Olly Betts <olly@survex.com>
4061         * api/compactor.cc,api/replication.cc,backends/brass/,backends/chert/,
4062           common/,net/remoteconnection.cc: Rename msvc_posix_rename(), etc to
4063           posixy_rename() (avoid a posix_ prefix as that's used by some library
4064           functions, and these aren't necessarily 100% POSIX compatible), and
4065           provide macro versions on Unix, so we can avoid a #ifdef at every
4066           call site.
4068 Thu Dec 20 20:57:18 GMT 2012  Olly Betts <olly@survex.com>
4070         * configure.ac: socketpair() needs -lnetwork on Haiku.
4072 Thu Dec 20 02:30:12 GMT 2012  Olly Betts <olly@survex.com>
4074         * backends/brass/brass_databasereplicator.cc,
4075           backends/chert/chert_databasereplicator.cc: Simplify how we open the
4076           .DB file on the replication slave to just call open() once with
4077           O_CREAT, rather than once without, than stat() if that fails, and
4078           then again with O_CREAT|O_TRUNC if stat() doesn't show an ordinary
4079           file exists.
4081 Thu Dec 20 02:05:12 GMT 2012  Olly Betts <olly@survex.com>
4083         * api/compactor.cc,common/,languages/compiler/syswords2.h,
4084           tests/api_compact.cc: Remove extra blank lines at end of files.
4086 Thu Dec 20 01:54:47 GMT 2012  Olly Betts <olly@survex.com>
4088         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
4089           Fix "if (fd > 0)" tests to be "if (fd >= 0)" in code related to
4090           replication.  In practice this is unlikely to actually have caused
4091           problems in real world cases.
4093 Sun Dec 16 23:10:13 GMT 2012  Olly Betts <olly@survex.com>
4095         * bin/Makefile.mk: INCLUDES is always used, AM_CPPFLAGS isn't if there
4096           are per-executable CPPFLAGS, so add AM_CPPFLAGS explicitly when we
4097           use per-executable CPPFLAGS.
4099 Fri Dec 14 21:25:58 GMT 2012  Olly Betts <olly@survex.com>
4101         * Makefile.am,languages/Makefile.mk,queryparser/Makefile.mk,
4102           tests/Makefile.am: In automake, INCLUDES is now deprecated in favour
4103           of AM_CPPFLAGS so update to use the latter.
4105 Tue Nov 27 05:39:30 GMT 2012  Olly Betts <olly@survex.com>
4107         * examples/quest.cc: Need <algorithm> for lower_bound().
4109 Mon Nov 26 23:46:43 GMT 2012  Olly Betts <olly@survex.com>
4111         * examples/quest.cc: Align option descriptions in --help output, and
4112           make the initial letter of such descriptions consistently lowercase.
4114 Mon Nov 26 19:52:50 GMT 2012  Olly Betts <olly@survex.com>
4116         * examples/quest.cc: Add --flags command line option to allow setting
4117           arbitrary QueryParser flags.
4119 Mon Nov 26 03:02:03 GMT 2012  Olly Betts <olly@survex.com>
4121         * api/valuerangeproc.cc: Move 3 declarations to where we first use the
4122           variables.
4124 Mon Nov 26 02:59:41 GMT 2012  Olly Betts <olly@survex.com>
4126         * matcher/multimatch.cc: We no longer use the highest weighted
4127           MSet entry to calculate percentages, so stop searching for it.
4128           (Spotted by cppcheck)
4130 Mon Nov 26 02:59:02 GMT 2012  Olly Betts <olly@survex.com>
4132         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
4133           Remove unused variables (spotted by cppcheck).
4135 Mon Nov 26 02:12:19 GMT 2012  Olly Betts <olly@survex.com>
4137         * api/maptermlist.h,api/matchspy.cc,api/omdatabase.cc,
4138           backends/inmemory/inmemory_database.cc,
4139           backends/inmemory/inmemory_positionlist.cc,
4140           backends/multi/multi_postlist.cc,backends/remote/net_termlist.cc,
4141           bin/xapian-delve.cc,matcher/exactphrasepostlist.cc,
4142           matcher/mergepostlist.cc,matcher/phrasepostlist.cc,
4143           tests/harness/backendmanager.cc: Prefer ++i to i++.
4145 Fri Nov 23 03:38:39 GMT 2012  Olly Betts <olly@survex.com>
4147         * HACKING,Makefile.am: With lcov 1.10, we no longer need any of our
4148           hacky workarounds, so make this a requirement and simplify the rules
4149           in the makefile.
4151 Thu Nov 22 23:34:09 GMT 2012  Olly Betts <olly@survex.com>
4153         * Makefile.am: Pass -f to lcov, which should avoid the need for the
4154           patch we've been applying to lcov.
4156 Thu Nov 22 01:34:05 GMT 2012  Olly Betts <olly@survex.com>
4158         * backends/flint_lock.cc: Close excess file handles before we get the
4159           fcntl() lock, just in case one of those file handles is open on the
4160           lock file.
4161         * tests/api_backend.cc: Add regression test lockfilealreadyopen1.
4163 Thu Nov 22 00:35:51 GMT 2012  Olly Betts <olly@survex.com>
4165         * common/closefrom.cc,configure.ac: On platforms with the F_MAXFD
4166           fcntl but without closefrom(), we were failing to close the highest
4167           numbered open fd in our closefrom() replacement.  We now also work
4168           around valgrind not hiding some extra fds it has open, but then
4169           complaining if we try to close them.
4171 Wed Nov 21 22:50:21 GMT 2012  Olly Betts <olly@survex.com>
4173         * tests/harness/testsuite.cc: When reporting valgrind error, skip any
4174           warnings.
4176 Tue Nov 20 07:26:24 GMT 2012  Olly Betts <olly@survex.com>
4178         * tests/api_anydb.cc: msetweights1 makes multidb1 and multidb2
4179           redundant, so remove them.
4181 Tue Nov 20 07:21:46 GMT 2012  Olly Betts <olly@survex.com>
4183         * tests/api_backend.cc: Extend msetweights1 to test the case where
4184           only even docids match, so in the multi_* case, only docids from
4185           one subdatabase match.
4187 Tue Nov 20 07:04:55 GMT 2012  Olly Betts <olly@survex.com>
4189         * tests/api_backend.cc: Add testcase msetweights1 which checks we
4190           get the weights we expect for a two term query.
4192 Mon Nov 19 21:17:33 GMT 2012  Olly Betts <olly@survex.com>
4194         * queryparser/termgenerator.cc: TermGenerator internal member can
4195           never be NULL, so drop NULL test.
4197 Sat Nov 17 20:54:50 GMT 2012  Olly Betts <olly@survex.com>
4199         * tests/harness/testsuite.cc: Remove compatibility code for valgrind <
4200           3.3.0, since we reject such old versions at configure time.
4202 Sat Nov 17 00:05:36 GMT 2012  Olly Betts <olly@survex.com>
4204         * matcher/localsubmatch.cc: Optimise an unweighted query term which
4205           matches all the documents in a subdatabase to use the "MatchAll"
4206           postlist.  (ticket#387)
4208 Fri Nov 16 23:36:34 GMT 2012  Olly Betts <olly@survex.com>
4210         * tests/api_weight.cc: New testcase checkstatsweight1 which checks a
4211           weight subclass gets the correct values for all the stats.
4213 Fri Nov 16 07:30:18 GMT 2012  Olly Betts <olly@survex.com>
4215         * include/xapian/version_h.cc: Generate a check for compatible _DEBUG
4216           settings if built with MSVC.  (ticket#389)
4218 Fri Nov 16 01:28:55 GMT 2012  Olly Betts <olly@survex.com>
4220         * queryparser/queryparser.lemony: Improve a couple of comments.
4222 Fri Nov 16 01:25:28 GMT 2012  Olly Betts <olly@survex.com>
4224         * queryparser/queryparser.lemony: Implicitly close any unclosed brackets
4225           at the end of the query string.  Patch from Sehaj Singh Kalra.
4226         * tests/queryparsertest.cc: Adjust existing testcases and feature tests.
4228 Thu Nov 15 23:57:10 GMT 2012  Olly Betts <olly@survex.com>
4230         * tests/api_query.cc: Add testcase xor3 to ensure that XOR handles all
4231           remaining subqueries running out at the same time.
4233 Thu Nov 15 10:57:32 GMT 2012  Olly Betts <olly@survex.com>
4235         * tests/api_query.cc: One test here does need a backend, and it seems
4236           a more useful category, so drop the "don't need a backend" part from
4237           the @brief documentation comment.
4239 Thu Nov 15 09:29:47 GMT 2012  Olly Betts <olly@survex.com>
4241         * matcher/multimatch.cc: Fix calculation of 0.0/0.0 in some cases.
4242           This then got used as a minimum weight, but it seems this gives -nan
4243           (at least on x86-64 Linux) so it may have been harmless in practice.
4245 Thu Nov 15 05:39:47 GMT 2012  Olly Betts <olly@survex.com>
4247         * tests/api_anydb.cc: Eliminate workarounds for egcs 1.1.2 (certainly
4248           we no longer support a compiler that old, but maybe some newer
4249           compilers have the same issue, so I've rewritten the code to iterate
4250           backwards over one MSet, which is a useful feature to have coverage
4251           for).
4253 Thu Nov 15 05:28:40 GMT 2012  Olly Betts <olly@survex.com>
4255         * tests/api_anydb.cc: Fix reversebool1 and reversebool2 to actually
4256           use the result when they check an MSetIterator against end().
4258 Thu Nov 15 01:55:15 GMT 2012  Olly Betts <olly@survex.com>
4260         * bin/xapian-replicate.cc: Add --quiet option to xapian-replicate, and
4261           be a little more verbose by default.
4263 Thu Nov 15 01:54:14 GMT 2012  Olly Betts <olly@survex.com>
4265         * bin/xapian-replicate.cc: xapian-replicate --force-copy now only
4266           forces a single copy, and then attempts to replicate incrementally.
4268 Thu Nov 15 00:51:50 GMT 2012  Olly Betts <olly@survex.com>
4270         * bin/xapian-replicate.cc: Tweak code layout.
4272 Wed Nov 14 21:40:45 GMT 2012  Olly Betts <olly@survex.com>
4274         * net/remoteconnection.cc: Allow files > 32G to be be copied by
4275           replication.
4277 Tue Nov 13 03:44:03 GMT 2012  Olly Betts <olly@survex.com>
4279         * tests/api_replicate.cc: Pass 'true' or 'false' for 'bool' parameter,
4280           not '0' or '1' (especially confusing as the two previous parameters
4281           were integers which were often 0 or 1...)
4283 Tue Nov 13 03:34:42 GMT 2012  Olly Betts <olly@survex.com>
4285         * bin/xapian-replicate.cc,net/replicatetcpclient.cc,
4286           net/replicatetcpclient.h: Add --full-copy option to xapian-replicate.
4287         * tests/api_replicate.cc: New testcase replicate6 which tests the same
4288           code path used by 'xapian-replicate --full-copy'.
4290 Tue Nov 13 02:55:44 GMT 2012  Olly Betts <olly@survex.com>
4292         * tests/api_replicate.cc: Use '++' instead of '+= 1'.  Drop superfluous
4293           'return;' at end of function returning void.
4295 Tue Nov 13 01:12:33 GMT 2012  Olly Betts <olly@survex.com>
4297         * tests/harness/unixcmds.cc: Tweak to avoid default initialisation of
4298           string.
4300 Mon Nov 12 23:25:14 GMT 2012  Olly Betts <olly@survex.com>
4302         * include/xapian/unicode.h: GCC 4.6.3 doesn't optimise the asr idion
4303           either.  Add links to the PR I filed and the GCC documentation that
4304           signed right shift does sign extension.
4306 Mon Nov 12 10:21:19 GMT 2012  Olly Betts <olly@survex.com>
4308         * include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
4309           character database to 6.2.0.
4310         * tests/api_unicode.cc: Add tests for U+20BA, added in 6.2.0.
4312 Sat Nov 10 05:39:16 GMT 2012  Olly Betts <olly@survex.com>
4314         * api/leafpostlist.cc,matcher/multiandpostlist.cc: Improved fix for
4315           #590 - count all matching LeafPostList objects with a Weight object
4316           rather than trying to prune at the MultiAndPostList level based on
4317           max_wt (if wdf is always zero for a term, BM25 gives max_wt of 0,
4318           which leads to us never counting that subquery.
4319         * tests/api_percentages.cc: Add regression test topercent7.
4321 Fri Nov 09 04:25:32 GMT 2012  Olly Betts <olly@survex.com>
4323         * tests/api_percentages.cc: Note bug number in regression test for
4324           #590.
4326 Tue Nov 06 22:42:31 GMT 2012  Olly Betts <olly@survex.com>
4328         * backends/brass/brass_table.cc: Restore two missing lines in database
4329           checking where we report a block with the wrong level.
4331 Tue Oct 16 11:19:42 GMT 2012  Olly Betts <olly@survex.com>
4333         * api/compactor.cc,backends/dbcheck.cc,backends/dbfactory.cc,
4334           common/Makefile.mk: Fix to build when configured with
4335           --disable-backend-brass --disable-backend-chert.  (ticket#586)
4337 Mon Oct 15 04:07:30 GMT 2012  Olly Betts <olly@survex.com>
4339         * HACKING: automake 1.12.4 is now used to generate snapshots and
4340           releases.
4342 Sat Oct 13 09:34:21 GMT 2012  Olly Betts <olly@survex.com>
4344         * weight/weightinternal.h: Revert addition of "#include <config.h>" in
4345           r16820.
4346         * HACKING: Document that we don't include <config.h> from header
4347           files, and the reason why.
4349 Sat Oct 13 09:00:23 GMT 2012  Olly Betts <olly@survex.com>
4351         * include/xapian/queryparser.h: Fix documentation comment typos:
4352           "covert" -> "convert".
4354 Thu Oct 11 12:28:30 GMT 2012  Olly Betts <olly@survex.com>
4356         * docs/valueranges.rst: Update documentation to reflect change in
4357           Xapian 1.1.2 - DateValueRangeProcessor and StringValueRangeProcessor
4358           now support a prefix or suffix.
4360 Mon Oct 01 05:05:54 GMT 2012  Olly Betts <olly@survex.com>
4362         * HACKING: Try to make it clearer we're looking for a dual-licence
4363           on submitted patches.
4365 Tue Sep 25 08:09:08 GMT 2012  Olly Betts <olly@survex.com>
4367         * common/Makefile.mk,common/append_filename_arg.h,
4368           tests/harness/unixcmds.cc: Split out append_filename_argument() into
4369           its own file so it can be used elsewhere.
4371 Tue Sep 25 06:46:03 GMT 2012  Olly Betts <olly@survex.com>
4373         * include/xapian/enquire.h: Mark MSetIterator::at_end() and
4374           ESetIterator::at_end() as @private @internal so that they don't
4375           appear in the API docs.
4377 Tue Sep 25 06:45:07 GMT 2012  Olly Betts <olly@survex.com>
4379         * include/xapian/enquire.h: Remove FIXMEs about converting MSetIterator
4380           and ESetIterator to use Internal classes - as HACKING notes, the
4381           current implementation is that way for performance reasons.
4383 Tue Sep 25 06:36:37 GMT 2012  Olly Betts <olly@survex.com>
4385         * tests/harness/unixcmds.cc: Escape filenames on POSIX platforms by
4386           wrapping in single quotes and specially handling single quotes in
4387           the filename - previously newlines in filenames got eaten by the
4388           shell.
4390 Tue Sep 25 06:32:36 GMT 2012  Olly Betts <olly@survex.com>
4392         * tests/harness/unixcmds.cc: Protect filenames which start with '-' on
4393           MS Windows like we already do on other platforms.  The built-in
4394           commands generally only interpret '/' as the character introducing a
4395           command line option (which we already convert to '\'), but many
4396           ported programs understand '-' too/instead.
4398 Sat Aug 25 16:09:50 GMT 2012  Dan Colish <dcolish@gmail.com>
4400         * include/xapian/enquire.h: Add function to test MSetIterator and
4401           ESetIterator exhaustion against the size of the underlying interee
4402           since comparison against an empty Itor is not suitable for an
4403           exhaustion test. Add FIXME that these Iterators should use an Internal
4404           class. 
4406 Thu Aug 09 21:50:52 GMT 2012  Dan Colish <dcolish@gmail.com>
4408         * weight/weightinternal.h: Include config.h since macros are used
4409           from it. 
4411 Wed Aug 08 15:40:38 GMT 2012  Dan Colish <dcolish@gmail.com>
4413         * api/queryvector.h: Backout previous fix. When compiling with -O0,
4414           increase the stack limit to > 8M when running scalability tests.
4416 Wed Aug 08 02:10:21 GMT 2012  Dan Colish <dcolish@gmail.com>
4418         * api/queryvector.h: Fix SIGBUS when clearing QueryVectors
4420 Wed Aug 01 15:25:25 GMT 2012  Dan Colish <dcolish@gmail.com>
4422         * HACKING,Makefile.am,tests/Makefile.am: Fix non-portable warnings
4423         from automake, add HACKING doc for check-syntax make target
4425 Wed Aug 01 04:54:18 GMT 2012  Dan Colish <dcolish@gmail.com>
4427         * Makefile.am,api/Makefile,backends/Makefile,backends/brass/Makefile,
4428           backends/chert/Makefile,backends/inmemory/Makefile,
4429           backends/multi/Makefile,backends/remote/Makefile,bin/Makefile,
4430           common/Makefile,examples/Makefile,expand/Makefile,
4431           geospatial/Makefile,include/Makefile,include/xapian/Makefile,
4432           languages/Makefile,matcher/Makefile,net/Makefile,
4433           queryparser/Makefile,tests/harness/Makefile,unicode/Makefile,
4434           weight/Makefile: Add check-syntax target to Makefiles to support
4435           editor syntax checks
4437 Sun Jul 29 15:32:00 GMT 2012  Olly Betts <olly@survex.com>
4439         * configure.ac: Bump LIBRARY_VERSION_INFO so I can package a snapshot
4440           cleanly.
4442 Tue Jul 24 01:35:17 GMT 2012  Olly Betts <olly@survex.com>
4444         * include/xapian/queryparser.h,queryparser/queryparser.cc,
4445           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
4446           tests/queryparsertest.cc: Add FieldProcessor class (ticket#128) -
4447           currently marked as an experimental API while we sort out how best
4448           to sort out exactly how it interacts with other QueryParser features.
4450 Tue Jul 24 01:19:03 GMT 2012  Olly Betts <olly@survex.com>
4452         * include/xapian/queryparser.h: Add extra DateValueRangeProcessor
4453           constructor overloaded form so that in DateValueRangeProcessor(1,
4454           "date:"), the const char * gets interpreted as std::string rather
4455           than bool.
4456         * tests/queryparsertest.cc: Add regression test.
4458 Thu Jul 19 05:32:04 GMT 2012  Olly Betts <olly@survex.com>
4460         * backends/brass/brass_dbcheck.h,
4461           backends/inmemory/inmemory_alltermslist.cc,bin/xapian-delve.cc: Fix
4462           filenames in comments which mismatch actual name of file.
4464 Thu Jul 19 05:27:38 GMT 2012  Olly Betts <olly@survex.com>
4466         * queryparser/termgenerator_internal.cc: Remove "FIXME: Add API to
4467           allow control of how stemming is used?", as we have now added such
4468           an API.
4470 Thu Jul 19 05:24:49 GMT 2012  Olly Betts <olly@survex.com>
4472         * include/xapian/termgenerator.h,queryparser/termgenerator.cc,
4473           queryparser/termgenerator_internal.cc,
4474           queryparser/termgenerator_internal.h,tests/termgentest.cc: Add new
4475           method TermGenerator::set_max_word_length() to allow this limit to
4476           be adjusted by the user.
4478 Mon Jul 16 03:34:27 GMT 2012  Olly Betts <olly@survex.com>
4480         * include/xapian/enquire.h: Clarify that the "reverse" parameter of
4481           set_sort_by_relevance_then_value() and
4482           set_sort_by_relevance_then_key() only affects the ordering of the
4483           value/key part of the sort.
4485 Fri Jul 13 04:55:26 GMT 2012  Dan Colish <dcolish@gmail.com>
4487         * matcher/multimatch.cc: Remove duplicate import
4489 Thu Jul 12 05:13:57 GMT 2012  Olly Betts <olly@survex.com>
4491         * common/debuglog.cc: Preserve errno over debug logging calls, so they
4492           can safely be added to code which expects errno not to change.
4494 Mon Jul 02 05:27:43 GMT 2012  Dan Colish <dcolish@gmail.com>
4496         * backends/brass/brass_databasereplicator.cc: Use new/delete to avoid
4497           variable length array gcc extension and comply with c++98
4499 Mon Jul 02 05:02:14 GMT 2012  Dan Colish <dcolish@gmail.com>
4501         * api/omdatabase.cc,tests/api_wrdb.cc: Prefer container.empty() to
4502           container.size() == 0.
4504 Sun Jul 01 10:46:19 GMT 2012  Olly Betts <olly@survex.com>
4506         * NEWS: Update from ChangeLog, 1.2.11 and 1.2.12.
4508 Fri Jun 29 15:32:11 GMT 2012  Dan Colish <dcolish@>
4510         * tests/harness/testsuite.cc: Add safeunistd.h unconditionally for
4511           isatty, required by GCC 4.7
4513 Wed Jun 27 10:45:13 GMT 2012  Olly Betts <olly@survex.com>
4515         * AUTHORS: Add GSoC students.
4517 Tue Jun 26 08:45:03 GMT 2012  Olly Betts <olly@survex.com>
4519         * include/xapian.h: Add check for Qt headers being included before us
4520           and defining 'slots' as a macro - if they are, give a clear error
4521           advising how to work around this.
4523 Thu Jun 14 23:48:15 GMT 2012  Olly Betts <olly@survex.com>
4525         * docs/admin_notes.rst: Correction - we don't "create a lock file", we
4526           "lock a file".
4528 Tue Jun 12 13:08:58 GMT 2012  Olly Betts <olly@survex.com>
4530         * tests/api_replicate.cc: Make sure XAPIAN_MAX_CHANGESETS gets unset
4531           after testcases which set it, so further testcases don't waste time
4532           generating changesets.
4534 Tue Jun 12 12:11:51 GMT 2012  Olly Betts <olly@survex.com>
4536         * docs/replication.rst: The value of XAPIAN_MAX_CHANGESETS does now
4537           actually determine how many changesets we keep.
4539 Tue Jun 12 01:20:59 GMT 2012  Olly Betts <olly@survex.com>
4541         * configure.ac: Force link_all_deplibs_CXX=no for Solaris.
4543 Tue Jun 12 01:08:17 GMT 2012  Olly Betts <olly@survex.com>
4545         * xapian-config.in: Don't interpret a missing .la file as meaning that
4546           we only have static libraries.
4548 Sun Jun 10 12:57:16 GMT 2012  Olly Betts <olly@survex.com>
4550         * backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
4551           backends/brass/brass_check.cc: Remove is_empty(), tweak
4552           calculate_last_block() to calculate the bit map size correctly in
4553           the case of an empty table, and use the bit map size instead of
4554           is_empty() in xapian-check.
4555         * backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h,
4556           backends/chert/chert_check.cc: Make equivalent changes for chert.
4558 Sun Jun 10 11:27:52 GMT 2012  Olly Betts <olly@survex.com>
4560         * backends/brass/brass_table.cc,backends/brass/brass_table.h: We don't
4561           need the workaround for existing tables which were built with a 32
4562           bit item count for brass, since that bug was fixed in 1.1.4, which
4563           is the same version which brass was added in.
4565 Sun Jun 10 11:20:58 GMT 2012  Olly Betts <olly@survex.com>
4567         * backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
4568           backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h:
4569           Remove unused copy constructors for BrassTable_base and
4570           ChertTable_base.
4572 Wed Jun 06 11:10:26 GMT 2012  Olly Betts <olly@survex.com>
4574         * include/xapian/queryparser.h: Note that STEM_ALL_Z was added in
4575           1.2.11.  Change already made on 1.2 branch.
4577 Tue Jun 05 06:51:12 GMT 2012  Olly Betts <olly@survex.com>
4579         * common/compression_stream.cc,common/compression_stream.h: Move the
4580           default argument to the CompressionStream constructor to the header
4581           and mark the constructor as explicit, since it has a single argument
4582           form.
4584 Tue Jun 05 06:41:22 GMT 2012  Olly Betts <olly@survex.com>
4586         * api/queryvector.h: Fix somewhat dubious warning from clang.
4588 Tue Jun 05 06:33:09 GMT 2012  Olly Betts <olly@survex.com>
4590         * configure.ac: Overhaul handling of compilers which pretend to be GCC,
4591           using a simple "case" on the preprocessed output of '__INTEL_COMPILER
4592           __clang__' to tell which is in use.  We now explicitly check for
4593           clang, and only pass it warning flags it actually understands.  GCC
4594           4.0 is now lumped in with 3.*, since we handle it exactly the same.
4595           Enable -Wdouble-promotion for GCC >= 4.6.  Check for symbol
4596           visibility support under any GCC-alike (which means we now run the
4597           test with Intel's compiler).  Move the check for -Bsymbolic-functions 
4598           to be run for all compilers.
4600 Mon Jun 04 06:21:02 GMT 2012  Olly Betts <olly@survex.com>
4602         * backends/dbfactory.cc: Test if we fail to open a stub database file
4603           in Xapian::Auto::open_stub() and throw an exception if so.
4604         * tests/api_backend.cc: Add regression test stubdb7.
4606 Sun Jun 03 11:43:44 GMT 2012  Olly Betts <olly@survex.com>
4608         * include/xapian/query.h: Add second fake specialised form of the
4609           templated iterator Query constructor, for use in the Java bindings.
4611 Sat Jun 02 12:15:11 GMT 2012  Olly Betts <olly@survex.com>
4613         * docs/scalability.rst: Update gmane size, fix a typo, tweak wording.
4615 Sat Jun 02 12:10:55 GMT 2012  Olly Betts <olly@survex.com>
4617         * Makefile.am,api/omdocument.cc,api/omenquire.cc,backends/brass/,
4618           backends/chert/,bin/xapian-delve.cc,common/getopt.cc,configure.ac,
4619           docs/,m4-macros/xapian-1.3.m4,matcher/multimatch.cc,preautoreconf,
4620           tests/Makefile.am,tests/api_db.cc,tests/harness/testsuite.h,
4621           tests/harness/testutils.h: Change `...' quoting in prose to '...'.
4623 Fri Jun 01 07:40:48 GMT 2012  Olly Betts <olly@survex.com>
4625         * HACKING,Makefile.am: If you run "make coverage-check" by hand, the
4626           default of compressed HTML is unhelpful, so don't default to passing
4627           --html-gzip to genhtml, but instead add support for GENHTML_ARGS.
4629 Thu May 31 11:41:19 GMT 2012  Olly Betts <olly@survex.com>
4631         * tests/api_weight.cc: Add test that init() is now called for the
4632           term-independent weight contribution.
4634 Thu May 31 11:23:05 GMT 2012  Olly Betts <olly@survex.com>
4636         * weight/bm25weight.cc: Avoid use of undefined values when k1 or b are
4637           zero.
4639 Wed May 30 21:50:54 GMT 2012  Olly Betts <olly@survex.com>
4641         * tests/api_matchspy.cc: Use a cached generated database for matchspy2
4642           and matchspy4.
4644 Wed May 30 13:22:54 GMT 2012  Olly Betts <olly@survex.com>
4646         * include/xapian/weight.h,weight/weight.cc: We were failing to call
4647           init() for Weight objects providing the term-independent weight.
4648           These now get called with init(0.0).
4650 Wed May 30 13:13:03 GMT 2012  Olly Betts <olly@survex.com>
4652         * include/xapian/weight.h: Remove duplicate "need_stat(WDF);" calls,
4653           accidentally added by merge of opsynonym branch in r12609.
4655 Wed May 30 07:44:23 GMT 2012  Olly Betts <olly@survex.com>
4657         * weight/bm25weight.cc: Fix use of uninitialised value found by new
4658           bm25weight4 testcase.
4660 Wed May 30 05:38:58 GMT 2012  Olly Betts <olly@survex.com>
4662         * tests/api_weight.cc: Add tests for BM25 parameter combinations where
4663           doclen shouldn't affect the weights.
4665 Wed May 30 05:11:34 GMT 2012  Olly Betts <olly@survex.com>
4667         * tests/Makefile.am: Move api_geospatial.cc into alphabetical order.
4669 Wed May 30 05:07:51 GMT 2012  Olly Betts <olly@survex.com>
4671         * weight/bm25weight.cc,weight/tradweight.cc: Throw SerialisationError
4672           not NetworkError if unserialise() fails.
4673         * tests/.gitignore,tests/Makefile.am,tests/api_weight.cc: Add test
4674           coverage for this.
4676 Wed May 30 05:01:33 GMT 2012  Olly Betts <olly@survex.com>
4678         * weight/tradweight.cc: BM25Weight -> TradWeight in exception message.
4680 Wed May 30 04:28:43 GMT 2012  Olly Betts <olly@survex.com>
4682         * tests/queryparsertest.cc: Fix feature test added for STEM_ALL_Z.
4684 Tue May 29 07:29:01 GMT 2012  Olly Betts <olly@survex.com>
4686         * tests/harness/testutils.cc,tests/harness/testutils.h: Remove unused
4687           test helper mset_range_is_same_percents() (thanks, lcov!)
4689 Tue May 29 04:10:07 GMT 2012  Olly Betts <olly@survex.com>
4691         * tests/generate-api_generated: Test that the string returned by a
4692           get_description() method isn't empty.
4694 Tue May 29 03:54:15 GMT 2012  Olly Betts <olly@survex.com>
4696         * generate-exceptions: Use function attributes in generated error.h.
4698 Tue May 29 02:10:23 GMT 2012  Olly Betts <olly@survex.com>
4700         * configure.ac,tests/runsrv.in: In the testsuite, only run remote
4701           servers under valgrind if x87 FP instructions are in use.
4703 Tue May 29 00:24:42 GMT 2012  Olly Betts <olly@survex.com>
4705         * include/xapian/: Use the new function attributes on various API
4706           methods.
4707         * tests/api_wrdb.cc: get_termfreq() is now marked as pure, so the
4708           testsuite needs to actually use the return value to check its
4709           exception behaviour.
4711 Mon May 28 22:31:21 GMT 2012  Olly Betts <olly@survex.com>
4713         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
4714           include/xapian/query.h: Pass vector<pair<Xapian::termpos>, string> >&
4715           argument to Query::Internal::gather_terms() as a void* to avoid
4716           having to include <vector> in query.h.
4718 Mon May 28 05:07:02 GMT 2012  Olly Betts <olly@survex.com>
4720         * include/xapian/attributes.h: Remove unused XAPIAN_NOTHROW_API_METHOD
4721           as we're handling that a different way instead.
4723 Mon May 28 00:41:55 GMT 2012  Olly Betts <olly@survex.com>
4725         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Hide new
4726           function attribute macros from doxygen.
4728 Sun May 27 14:04:34 GMT 2012  Olly Betts <olly@survex.com>
4730         * include/xapian/query.h: Use "Internal" instead of "Query::Internal"
4731           in constructor prototype argument list for consistency with other
4732           cosntructors, and so this constructor gets ignored by SWIG.
4734 Sun May 27 07:38:56 GMT 2012  Olly Betts <olly@survex.com>
4736         * exception_data.pm: Fix typo to fix warning and so that XAPIAN_NOTHROW
4737           on a method will work.
4739 Sun May 27 01:43:30 GMT 2012  Olly Betts <olly@survex.com>
4741         * exception_data.pm,include/Makefile.mk,include/xapian.h,
4742           include/xapian/attributes.h,include/xapian/unicode.h: Add
4743           XAPIAN_CONST_FUNCTION, XAPIAN_PURE_FUNCTION, and XAPIAN_NOTHROW
4744           macros for marking functions and methods with those attributes.
4745           (tickets #151, #454)
4747 Fri May 25 06:42:35 GMT 2012  Olly Betts <olly@survex.com>
4749         * include/xapian/weight.h: Fix documentation comment typo ("k1" ->
4750           "k").
4752 Fri May 25 05:44:05 GMT 2012  Olly Betts <olly@survex.com>
4754         * backends/flint_lock.h: Mark FlintLock::throw_databaselockerror() as
4755           XAPIAN_NORETURN.
4757 Thu May 24 12:28:35 GMT 2012  Olly Betts <olly@survex.com>
4759         * include/xapian/termgenerator.h,queryparser/termgenerator.cc,
4760           queryparser/termgenerator_internal.cc,
4761           queryparser/termgenerator_internal.h: Add
4762           TermGenerator::set_stemming_strategy() method, with strategies which
4763           correspond to those of QueryParser.  Based on patch from Sehaj Singh
4764           Kalra, with some tweaks for adding term positions in more cases.
4765           (Fixes ticket#563)
4766         * tests/termgentest.cc: Add test coverage for the new features.
4768 Thu May 24 01:37:31 GMT 2012  Olly Betts <olly@survex.com>
4770         * include/xapian/queryparser.h: Add doc comment for stem_strategy
4771           typedef.
4773 Wed May 23 11:33:08 GMT 2012  Olly Betts <olly@survex.com>
4775         * include/xapian/queryparser.h,queryparser/queryparser.lemony:
4776           Add new QueryParser::STEM_ALL_Z stemming strategy, which stems all
4777           terms and adds a Z prefix.  (Patch from Sehaj Singh Kalra, fixes
4778           ticket#562)
4779         * tests/queryparsertest.cc: Add test coverage for
4780           QueryParser::STEM_ALL_Z.
4782 Wed May 23 05:37:20 GMT 2012  Olly Betts <olly@survex.com>
4784         * api/valuesetmatchdecider.cc,include/xapian/valuesetmatchdecider.h:
4785           "Limited" to "Ltd" in (C) two statements, for consistency (and with
4786           Charlie's agreement on IRC).
4788 Wed May 23 02:25:53 GMT 2012  Olly Betts <olly@survex.com>
4790         * api/,include/xapian/query.h: Rework QueryBranch to use a special
4791           QueryVector class rather than std::vector<Xapian::Query>.  The
4792           special class is no bigger than std::vector<Xapian::Query>, and
4793           handles up to two entries by holding them within the object (at
4794           least GCC's std::vector doesn't currently do this space optimisation)
4795           which significantly reduces the memory used by a pairwise operator,
4796           which is very desirable as we no longer flatten a tree of the same
4797           pairwise operator as we build the query.
4799 Tue May 22 06:25:10 GMT 2012  Olly Betts <olly@survex.com>
4801         * api/queryinternal.cc: Handle the left side of AND_NOT and
4802           AND_MAYBE being MatchNothing in add_subquery() rather than
4803           in done().
4805 Tue May 22 02:40:45 GMT 2012  Olly Betts <olly@survex.com>
4807         * api/queryinternal.cc: Handle QueryAndLike with a MatchNothing
4808           subquery in add_subquery() rather than done().
4810 Tue May 22 02:01:00 GMT 2012  Olly Betts <olly@survex.com>
4812         * api/queryinternal.cc,api/queryinternal.h: Drop MatchNothing
4813           subqueries in OR-like situations in add_subquery() rather than
4814           adding them and then handling it later.
4816 Sat May 19 00:27:23 GMT 2012  Olly Betts <olly@survex.com>
4818         * tests/runsrv.in: Add explanation of why we have this script.
4820 Sat May 19 00:27:10 GMT 2012  Olly Betts <olly@survex.com>
4822         * tests/runtest.in: Fix comment typo.
4824 Fri May 18 12:50:08 GMT 2012  Olly Betts <olly@survex.com>
4826         * backends/inmemory/inmemory_database.cc: Check if the database is
4827           closed when asked to iterate metadata keys.  Fixes recently added
4828           testcase closedb10 for inmemory.
4830 Fri May 18 12:34:24 GMT 2012  Olly Betts <olly@survex.com>
4832         * tests/Makefile.am: Pass -ldl last when compiling zlib-vg.so, as that
4833           seems to be needed on Ubuntu 12.04.
4835 Fri May 18 04:54:09 GMT 2012  Olly Betts <olly@survex.com>
4837         * tests/api_closedb.cc: We now test almost all methods of Database
4838           and WritableDatabase after calling close().  (ticket#337)
4840 Thu May 17 14:26:11 GMT 2012  Olly Betts <olly@survex.com>
4842         * backends/brass/,backends/chert/: After closing the database, methods
4843           which try to use the termlist would throw FeatureUnavailableError
4844           with message "Database has no termlist", assuming that the termlist
4845           table not being open meant it wasn't present.  Fix to check if the
4846           postlist_table is open to determine which case we're in.
4847         * tests/api_closedb.cc: Improve test coverage for closed databases.
4848           (ticket#337)
4850 Tue May 15 11:24:34 GMT 2012  Olly Betts <olly@survex.com>
4852         * NEWS: Update from ChangeLog and 1.2.10.
4854 Tue May 15 11:12:42 GMT 2012  Olly Betts <olly@survex.com>
4856         * backends/chert/chert_cursor.cc: Fix incorrect use of "delete" to
4857           "delete []".  The type is POD, so I suspect this mistake didn't
4858           actually cause any problems, and it only happens when a cursor
4859           gets rebuilt because the B-tree has gained a level, so it's
4860           a rather rare occurrence.
4862 Tue May 15 11:09:44 GMT 2012  Olly Betts <olly@survex.com>
4864         * backends/brass/brass_cursor.cc: Fix incorrect use of "delete" to
4865           "delete []".  The type is POD, so I suspect this mistake didn't
4866           actually cause any problems, and it only happens when a cursor
4867           gets rebuilt because the B-tree has gained a level, so it's
4868           a rather rare occurrence.
4870 Thu May 10 02:16:21 GMT 2012  Olly Betts <olly@survex.com>
4872         * HACKING: Update Debian/Ubuntu packaging instructions.
4874 Thu May 10 02:14:48 GMT 2012  Olly Betts <olly@survex.com>
4876         * HACKING: freshmeat -> freecode.
4878 Wed May 09 02:54:40 GMT 2012  Olly Betts <olly@survex.com>
4880         * tests/api_wrdb.cc: Add "safeunistd.h", required for GCC 4.7.
4882 Wed May 09 00:09:17 GMT 2012  Olly Betts <olly@survex.com>
4884         * api/query.cc: Construct MatchAll using constructor rather than
4885           assignment syntax.
4887 Wed May 09 00:08:29 GMT 2012  Olly Betts <olly@survex.com>
4889         * backends/brass/brass_cursor.h: Whitespace tweaks.
4891 Tue May 08 23:51:01 GMT 2012  Olly Betts <olly@survex.com>
4893         * docs/admin_notes.rst: Document xapian-check for fixing corrupted
4894           databases.
4896 Tue May 08 11:30:06 GMT 2012  Olly Betts <olly@survex.com>
4898         * common/fileutils.cc: Add safeunistd.h for mkdir, required by GCC
4899           4.7 (reported by Gaurav Arora).
4901 Wed May 02 03:44:25 GMT 2012  Olly Betts <olly@survex.com>
4903         * weight/weightinternal.cc: Using AssertEq() on NULL doesn't compile,
4904           at least with recent GCC.
4906 Wed May 02 02:58:37 GMT 2012  Olly Betts <olly@survex.com>
4908         * common/omassert.cc: Fix warning with GCC in build with assertions
4909           enabled.
4911 Wed May 02 02:55:54 GMT 2012  Olly Betts <olly@survex.com>
4913         * HACKING: We're now using automake 1.12 to generate snapshots and
4914           releases.
4916 Mon Apr 23 13:16:36 GMT 2012  Olly Betts <olly@survex.com>
4918         * tests/api_anydb.cc: Fix tradweight1 to test that TradWeight(0)
4919           means that wdf and doc length don't affect the weight of a term.
4921 Mon Apr 23 03:44:02 GMT 2012  Olly Betts <olly@survex.com>
4923         * backends/chert/,backends/dbcheck.cc,bin/xapian-check.cc,
4924           include/xapian/database.h: Add "fix" option to xapian-check, which
4925           currently will regenerate iamchert if it isn't valid, and will
4926           regenerate base files from the .DB files (only really tested on
4927           databases which have just been compacted).
4929 Mon Apr 23 03:40:35 GMT 2012  Olly Betts <olly@survex.com>
4931         * common/filetests.h: Add new function file_size() to get the size
4932           of a file from a path or file descriptor.
4933         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
4934           net/remoteconnection.cc,tests/api_replicate.cc: Use this new
4935           function.
4937 Wed Apr 18 01:35:21 GMT 2012  Olly Betts <olly@survex.com>
4939         * weight/bm25weight.cc,weight/tradweight.cc: Fix comment typo.
4941 Wed Apr 11 08:26:42 GMT 2012  Olly Betts <olly@survex.com>
4943         * HACKING: Update section on patches to mention git (git diff and git
4944           format-patch), and using "-r" with normal diff, and also that
4945           ptardiff offers a nice way to diff against an unpacked tarball.
4947 Wed Apr 04 02:22:04 GMT 2012  Olly Betts <olly@survex.com>
4949         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
4950           If the output database is empty, don't write a metainfo tag out.
4951           Take care not to divide by zero when computing the percentage
4952           size change for a table.
4953         * tests/api_compact.cc: Add new testcase compactempty1 to provide
4954           regression tests.
4956 Wed Apr 04 01:48:34 GMT 2012  Olly Betts <olly@survex.com>
4958         * backends/dbcheck.cc: If the database couldn't be opened, don't try
4959           to reserve space for cross-checking doclens, as that just results in
4960           us reporting a confusing warning about there being too many documents
4961           to cross-check doclens.
4963 Fri Mar 30 22:23:53 GMT 2012  Olly Betts <olly@survex.com>
4965         * backends/document.h: "An string" -> "A string" in internal doc
4966           comment.
4968 Fri Mar 30 22:20:11 GMT 2012  Olly Betts <olly@survex.com>
4970         * include/xapian/weight.h: Fix switched lower and upper in doc comments
4971           for Weight methods get_doclength_lower_bound() and
4972           get_doclength_upper_bound().  Correct maximum to minimum in
4973           get_doclength_lower_bound() comment and note that this excludes zero
4974           length documents.  Fix "An lower" to "A lower".
4976 Wed Mar 28 09:54:33 GMT 2012  Olly Betts <olly@survex.com>
4978         * NEWS: Fix typos in another old entry.
4980 Wed Mar 28 09:53:00 GMT 2012  Olly Betts <olly@survex.com>
4982         * NEWS: DatabaseCoruptError -> DatabaseCorruptError in old entries.
4984 Wed Mar 28 08:05:13 GMT 2012  Olly Betts <olly@survex.com>
4986         * tests/termgentest.cc: Add test coverage for discarding of terms > 64
4987           bytes by TermGenerator.
4989 Tue Mar 27 21:07:07 GMT 2012  Olly Betts <olly@survex.com>
4991         * include/xapian/database.h: Note when Database::close() was added.
4993 Tue Mar 27 13:03:22 GMT 2012  Olly Betts <olly@survex.com>
4995         * api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h,
4996           include/xapian/errorhandler.h: Deprecate Xapian::ErrorHandler.
4997           (ticket#3)
4999 Tue Mar 27 13:01:53 GMT 2012  Olly Betts <olly@survex.com>
5001         * HACKING,docs/deprecation.rst,docs/doxygen_api.conf.in,
5002           docs/doxygen_source.conf.in: Updates for addition of
5003           XAPIAN_DEPRECATED_EX() and XAPIAN_DEPRECATED_CLASS_EX.
5005 Tue Mar 27 10:11:23 GMT 2012  Olly Betts <olly@survex.com>
5007         * HACKING,include/xapian.h,include/xapian/deprecated.h: Add
5008           XAPIAN_DEPRECATED_EX() and XAPIAN_DEPRECATED_CLASS_EX macros which
5009           mark a feature as deprecated externally but not when building the
5010           library.
5012 Tue Mar 27 08:46:29 GMT 2012  Olly Betts <olly@survex.com>
5014         * api/compactor.cc: Include the xapian sub-headers we actually use
5015           rather than xapian.h, to avoid needless rebuilds.
5017 Tue Mar 27 08:33:28 GMT 2012  Olly Betts <olly@survex.com>
5019         * HACKING: Add example of deprecating a pure virtual method.
5021 Tue Mar 27 08:30:17 GMT 2012  Olly Betts <olly@survex.com>
5023         * NEWS: Update from ChangeLog.
5025 Sat Mar 24 12:33:44 GMT 2012  Olly Betts <olly@survex.com>
5027         * backends/brass/brass_databasereplicator.cc: Fix signed vs unsigned
5028           comparison warning with GCC 4.4.3.
5030 Sat Mar 24 12:26:13 GMT 2012  Olly Betts <olly@survex.com>
5032         * include/xapian/queryparser.h,queryparser/queryparser_internal.h:
5033           Change the default stemming strategy to STEM_SOME, to eliminate
5034           the API gotcha that setting a stemmer is ignored until you also
5035           set a strategy.
5036         * tests/queryparsertest.cc: Add testcase qp_defaultstrategysome1 to
5037           check that the default is STEM_SOME.
5039 Fri Mar 23 04:29:32 GMT 2012  Olly Betts <olly@survex.com>
5041         * tests/perftest/perftest.cc: Fix comment cut-and-paste error.
5043 Fri Mar 23 04:28:24 GMT 2012  Olly Betts <olly@survex.com>
5045         * Makefile.am: Use git commit hash in the title of a coverage report
5046           generated from a git tree.
5048 Thu Mar 22 04:29:38 GMT 2012  Olly Betts <olly@survex.com>
5050         * xapian-core.spec.in: Remove xapian-chert-update.
5052 Mon Mar 19 05:42:50 GMT 2012  Olly Betts <olly@survex.com>
5054         * matcher/multiandpostlist.cc: Don't count unweighted subqueries of
5055           MultiAndPostList for percentage calculations, as OP_FILTER maps to
5056           MultiAndPostList now.  (ticket#590)
5057         * tests/api_percentages.cc: Regression test topercent6.
5059 Sun Mar 18 23:24:04 GMT 2012  Dan Colish <dcolish@>
5061         * backends/brass/brass_databasereplicator.cc: size out buffer to the
5062           incoming blocksize
5064 Sun Mar 18 17:02:14 GMT 2012  Dan Colish <dcolish@>
5066         * .gitignore: ignore /.deps as well
5068 Sun Mar 18 16:46:45 GMT 2012  Dan Colish <dcolish@>
5070         * .gitignore:Update gitignore for bump to libxapian-1.3
5072 Sun Mar 18 04:37:37 GMT 2012  Olly Betts <olly@survex.com>
5074         * configure.ac: Set LIBRARY_VERSION_SUFFIX to -1.3.
5076 Sun Mar 18 00:48:05 GMT 2012  Dan Colish <dcolish@gmail.com>
5078         * backends/brass/,common/Makefile.mk, common/compression_stream.h,
5079           common/compression_stream.cc: Compress changesets in brass
5080           replication. Increments the changeset version. Ticket #348
5082 Sun Mar 18 00:39:23 GMT 2012  Dan Colish <dcolish@gmail.com>
5084         * tests/.gitignore,tests/soaktest/.gitignore: Add additional ignores
5085           for test artifacts
5087 Fri Mar 16 05:23:54 GMT 2012  Olly Betts <olly@survex.com>
5089         * common/Makefile.mk: Missing part of previous change.
5091 Fri Mar 16 04:59:53 GMT 2012  Olly Betts <olly@survex.com>
5093         * Makefile.am,m4-macros/xapian.m4: Rename libxapian to libxapian-1.3
5094           and xapian.m4 to xapian-1.3.m4.
5096 Wed Mar 14 04:58:55 GMT 2012  Olly Betts <olly@survex.com>
5098         * NEWS,tests/api_unicode.cc,unicode/tclUniData.cc: Update
5099           Unicode character database to 6.1.0.
5101 Wed Mar 14 02:23:27 GMT 2012  Olly Betts <olly@survex.com>
5103         * NEWS: Update for 1.3.0.
5105 Tue Mar 13 07:44:32 GMT 2012  Olly Betts <olly@survex.com>
5107         * NEWS: Update from 1.2.9 and ChangeLog.
5109 Tue Mar 13 00:28:58 GMT 2012  Olly Betts <olly@survex.com>
5111         * docs/geospatial.rst: Fix typo - it's LatLongCoords::append() not
5112           LatLongCoords::insert().
5114 Mon Mar 12 23:14:20 GMT 2012  Olly Betts <olly@survex.com>
5116         * docs/admin_notes.rst: Fix typo - need "1.2.x" not "1.0.x" to get
5117           both flint and chert support.
5119 Mon Mar 12 11:54:19 GMT 2012  Olly Betts <olly@survex.com>
5121         * docs/Makefile.am: doxygen no longer generates any GIF files, so
5122           stop trying to ship or install them.
5124 Thu Mar 08 10:21:51 GMT 2012  Olly Betts <olly@survex.com>
5126         * docs/index.rst: Add link to new "getting started" guide.
5128 Mon Mar 05 06:05:28 GMT 2012  Olly Betts <olly@survex.com>
5130         * tests/queryparsertest.cc: Fix curly double quote testcase.
5132 Mon Mar 05 00:36:33 GMT 2012  Olly Betts <olly@survex.com>
5134         * matcher/: Fix issue with AND, OR, and XOR queries against a database
5135           with no documents in it - this was causing a divide by zero, which led
5136           to MSet::get_matches_estimated() reporting 2147483648 on i386.
5137         * tests/api_backend.cc: Add regression test emptydb1.
5139 Sun Mar 04 23:05:17 GMT 2012  Olly Betts <olly@survex.com>
5141         * matcher/multimatch.cc: Fix comment typo.
5143 Fri Mar 02 04:00:19 GMT 2012  Olly Betts <olly@survex.com>
5145         * tests/harness/testsuite.cc: Address new warnings from GCC 4.6.
5147 Wed Feb 29 22:36:26 GMT 2012  Olly Betts <olly@survex.com>
5149         * include/xapian/database.h: Improve documentation of Database::close()
5150           and ~WritableDatabase().
5152 Thu Jan 26 03:49:24 GMT 2012  Olly Betts <olly@survex.com>
5154         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow
5155           Unicode curly double quote characters to start and/or end phrases.
5157 Sun Jan 22 13:28:30 GMT 2012  Olly Betts <olly@survex.com>
5159         * bin/xapian-delve.cc: Send errors to stderr not stdout.
5161 Sun Jan 22 13:16:21 GMT 2012  Olly Betts <olly@survex.com>
5163         * HACKING: Update details of versions of doxygen, automake and libtool
5164           used to bootstrap snapshots and releases.
5166 Fri Jan 20 21:35:38 GMT 2012  Olly Betts <olly@survex.com>
5168         * tests/Makefile.am: unittest needs getopt for non-glibc platforms.
5170 Fri Jan 20 21:33:59 GMT 2012  Olly Betts <olly@survex.com>
5172         * include/xapian/query.h: GCC 4.2.1 on Mac OS X seems to need a copy
5173           ctor for InvertedQuery_ - unclear why, but it's easy to add one.
5175 Wed Jan 18 13:13:07 GMT 2012  Olly Betts <olly@survex.com>
5177         * include/xapian/matchspy.h,include/xapian/postingsource.h,
5178           include/xapian/weight.h: Document that you can define a static
5179           operator delete method in your subclass if deallocation needs to be
5180           handled specially.  (Closes ticket#554)
5182 Wed Jan 18 12:27:20 GMT 2012  Olly Betts <olly@survex.com>
5184         * include/xapian/geospatial.h: Mark as experimental for now.
5186 Wed Jan 18 12:22:39 GMT 2012  Olly Betts <olly@survex.com>
5188         * docs/geospatial.rst: Say "haversine" rather than "Haversine"
5189           consistently.
5191 Wed Jan 18 12:01:28 GMT 2012  Olly Betts <olly@survex.com>
5193         * include/xapian/geospatial.h: Change empty() to return bool not
5194           size_t.
5196 Wed Jan 18 10:44:16 GMT 2012  Olly Betts <olly@survex.com>
5198         * docs/geospatial.rst: Fix minor typos in geospatial docs.
5200 Wed Jan 18 10:39:53 GMT 2012  Olly Betts <olly@survex.com>
5202         * Makefile.am,api/postingsource.cc,api/queryinternal.cc,
5203           api/registry.cc,common/output.h,common/registryinternal.h,
5204           docs/geospatial.rst,geospatial/,include/Makefile.mk,include/xapian.h,
5205           include/xapian/geospatial.h,include/xapian/postingsource.h,
5206           include/xapian/registry.h,tests/.gitignore,tests/Makefile.am,
5207           tests/api_geospatial.cc: Merge geotomerge2 branch from github.
5208           Closes ticket#481.
5210 Tue Jan 17 22:29:10 GMT 2012  Olly Betts <olly@survex.com>
5212         * api/errorhandler.cc: Reorder header includes.
5214 Mon Jan 16 22:59:02 GMT 2012  Olly Betts <olly@survex.com>
5216         * include/xapian/queryparser.h,queryparser/queryparser.lemony: Fix
5217           FLAG_AUTO_SYNONYMS not to enable auto multi-word synonyms too.
5218         * tests/queryparsertest.cc: Extend testcase qp_synonym1 to include a
5219           regression test for this bug.
5221 Sun Jan 15 12:41:35 GMT 2012  Olly Betts <olly@survex.com>
5223         * .gitignore,backends/Makefile.mk,backends/brass/,backends/chert/,
5224           backends/dbcheck.cc,bin/,common/bitstream.h,
5225           include/xapian/database.h: Add a (currently experimental) API for
5226           checking the integrity of databases (partly addresses ticket#238).
5227           This means we can remove XAPIAN_VISIBILITY_DEFAULT from a number of
5228           functions which aren't in the public API (partly addresses
5229           ticket#63).
5231 Fri Jan 13 12:07:39 GMT 2012  Olly Betts <olly@survex.com>
5233         * tests/stemtest.cc: Include <xapian.h> rather than <xapian/stem.h> -
5234           we're trying to test the public API, so including the public API
5235           header is better.
5237 Thu Jan 12 13:15:27 GMT 2012  Olly Betts <olly@survex.com>
5239         * tests/unittest.cc: Add new testcases simple_exceptions_work1 and
5240           class_exceptions_work1 which perform sanity tests of exception
5241           handling.
5242         * tests/internaltest.cc: Remove testcase test_except1 which is now
5243           redundant.
5245 Thu Jan 12 13:09:25 GMT 2012  Olly Betts <olly@survex.com>
5247         * common/str.cc: Special cases for 0 in tostring() templates aren't
5248           actually needed, but special casing single digit numbers may be
5249           worthwhile anyway, so change comments to FIXME ones about checking
5250           this.
5251         * tests/internaltest.cc: Test str() on unsigned 0, and some negative,
5252           signed positive, and unsigned positive single digits values.
5254 Wed Jan 11 13:03:54 GMT 2012  Olly Betts <olly@survex.com>
5256         * backends/multi/multi_alltermslist.h: Fix filename in @file.
5258 Wed Jan 11 12:53:44 GMT 2012  Olly Betts <olly@survex.com>
5260         * api/documentterm.h,api/maptermlist.h,api/omenquireinternal.h,
5261           backends/brass/,backends/chert/,backends/database.h,
5262           backends/document.h,backends/inmemory/inmemory_alltermslist.h,
5263           backends/inmemory/inmemory_database.h,
5264           backends/inmemory/inmemory_positionlist.h,
5265           backends/multi/multi_postlist.h,backends/multi/multi_termlist.h,
5266           backends/positionlist.h,backends/remote/net_termlist.h,
5267           backends/valuestats.h,common/,include/xapian/query.h,matcher/,
5268           queryparser/queryparser_internal.h,tests/harness/,
5269           tests/perftest/freemem.h,tests/perftest/runprocess.h: Convert
5270           comments at the start of files to @file and @brief doxygen comments.
5272 Wed Jan 11 11:36:55 GMT 2012  Olly Betts <olly@survex.com>
5274         * matcher/phrasepostlist.h: Remove lone "----START-LICENCE----" -
5275           the rest got removed ages ago.
5277 Wed Jan 11 11:23:04 GMT 2012  Olly Betts <olly@survex.com>
5279         * common/replicate_utils.h: Fix "@raises" to "@exception".
5281 Wed Jan 11 11:21:31 GMT 2012  Olly Betts <olly@survex.com>
5283         * matcher/multiandpostlist.h: Fix "@parameter" to "@param".
5285 Wed Jan 11 11:20:11 GMT 2012  Olly Betts <olly@survex.com>
5287         * common/debuglog.h: Fix "@msg" to "@a msg" in doxygen comment.
5289 Wed Jan 11 11:18:50 GMT 2012  Olly Betts <olly@survex.com>
5291         * matcher/multiandpostlist.h: Correct @exceptions to @exception.
5293 Wed Jan 11 10:48:05 GMT 2012  Olly Betts <olly@survex.com>
5295         * HACKING: We no longer have any uses of \ to introduce doxygen
5296           directives, so update HACKING to reflect that.
5298 Wed Jan 11 10:46:01 GMT 2012  Olly Betts <olly@survex.com>
5300         * api/omdatabase.cc: Change \todo to @todo.
5302 Wed Jan 11 10:09:29 GMT 2012  Olly Betts <olly@survex.com>
5304         * api/replication.h,api/valuesetmatchdecider.cc,
5305           common/output-internal.h,common/output.h,include/xapian/,
5306           tests/harness/testrunner.cc,tests/harness/testrunner.h,
5307           tests/perftest/perftest.cc,tests/perftest/perftest.h: Change the
5308           instances of \file and \brief in doxygen comments to @file and
5309           @brief.
5311 Wed Jan 11 10:08:19 GMT 2012  Olly Betts <olly@survex.com>
5313         * tests/internaltest.cc: Remove serialisedoc1 from the list of
5314           testcases to run too.
5316 Wed Jan 11 09:50:22 GMT 2012  Olly Betts <olly@survex.com>
5318         * matcher/multixorpostlist.h: Remove "using namespace std;" which we
5319           don't need here.
5321 Wed Jan 11 09:38:27 GMT 2012  Olly Betts <olly@survex.com>
5323         * common/filetests.h: Remove "using namespace std;" which we don't
5324           need here.
5326 Wed Jan 11 09:36:27 GMT 2012  Olly Betts <olly@survex.com>
5328         * common/filetests.h: Add documentation comments.
5330 Wed Jan 11 09:28:26 GMT 2012  Olly Betts <olly@survex.com>
5332         * tests/api_serialise.cc: Extend serialise_document1 to test
5333           serialising and unserialising an empty document, which is an
5334           interesting edge case.
5335         * tests/internaltest.cc: Remove testcase serialisedoc1, which
5336           now doesn't add useful additional coverage over serialise_document1.
5338 Wed Jan 11 08:29:04 GMT 2012  Olly Betts <olly@survex.com>
5340         * tests/internaltest.cc: Test document serialisation via the public
5341           API (which was added after the tests were).
5342         * net/serialise.h: Remove XAPIAN_VISIBILITY_DEFAULT from
5343           serialise_document() and unserialise_document().
5345 Wed Jan 11 05:57:14 GMT 2012  Olly Betts <olly@survex.com>
5347         * api/replication.cc,common/,tests/unittest.cc: Move removedir() from
5348           utils.{cc,h} to fileutils.{cc,h}, and remove the now empty
5349           utils.{cc,h}.
5351 Wed Jan 11 05:44:38 GMT 2012  Olly Betts <olly@survex.com>
5353         * tests/harness/unixcmds.cc: Check return values from system() calls
5354           and throw a std::string exception if non-zero.
5356 Wed Jan 11 05:20:30 GMT 2012  Olly Betts <olly@survex.com>
5358         * common/Makefile.mk,common/omassert.cc,common/omassert.h,
5359           common/utils.cc: Change the sense of the bool returned by
5360           within_DBL_EPSILON() to match what the name suggests instead of being
5361           the opposite, and change the use of it too.  Move
5362           within_DBL_EPSILON() implementation from utils.cc to new file
5363           omassert.cc, only compile it when assertions are on, and prototype it
5364           in omassert.h rather than utils.h.
5366 Wed Jan 11 05:09:39 GMT 2012  Olly Betts <olly@survex.com>
5368         * api/compactor.cc,api/replication.cc,backends/brass/,backends/chert/,
5369           backends/dbfactory.cc,common/utils.cc,common/utils.h,
5370           tests/api_backend.cc,tests/api_wrdb.cc,
5371           tests/harness/backendmanager.cc,tests/harness/unixcmds.cc: Remove
5372           std::string wrappers for C library functions from utils.h and just
5373           explicitly call c_str() when we need to.  These wrappers are
5374           problematic as they suppress warnings from _FORTIFY_SOURCE about
5375           ignored return values, and I can't see an easy way to avoid that.
5377 Wed Jan 11 03:35:35 GMT 2012  Olly Betts <olly@survex.com>
5379         * api/replication.cc,backends/brass/brass_databasereplicator.cc,
5380           backends/brass/brass_table.cc,
5381           backends/chert/chert_databasereplicator.cc,
5382           backends/chert/chert_table.cc,backends/databasereplicator.cc,
5383           backends/dbfactory.cc,common/utils.cc,common/utils.h: Use
5384           file_exists() and dir_exists() from common/filetests.h everywhere and
5385           remove the old versions in common/utils.h and common/utils.cc.
5387 Wed Jan 11 02:20:45 GMT 2012  Olly Betts <olly@survex.com>
5389         * common/utils.h: Remove XAPIAN_VISIBILITY_DEFAULT from old
5390           file_exists() and dir_exists().
5392 Wed Jan 11 02:19:58 GMT 2012  Olly Betts <olly@survex.com>
5394         * tests/api_compact.cc: Convert to use filetests.h.
5396 Wed Jan 11 02:14:07 GMT 2012  Olly Betts <olly@survex.com>
5398         * bin/xapian-check.cc,bin/xapian-inspect.cc: Convert to use
5399           filetests.h.
5401 Wed Jan 11 02:13:02 GMT 2012  Olly Betts <olly@survex.com>
5403         * common/filetests.h: Rename directory_exists() to dir_exists().
5405 Wed Jan 11 02:10:06 GMT 2012  Olly Betts <olly@survex.com>
5407         * common/Makefile.mk,common/filetests.h,tests/api_replicate.cc,
5408           tests/harness/backendmanager_multi.cc,tests/harness/testsuite.cc:
5409           Add new inline versions of file_exists() and directory_exists() and
5410           use these from the testsuite, as a step towards making these internal
5411           to the library.
5413 Tue Jan 10 23:37:36 GMT 2012  Olly Betts <olly@survex.com>
5415         * tests/api_serialise.cc: Change the rather odd "operator delete(p);"
5416           to the more natural "delete p;".
5418 Tue Jan 10 22:45:01 GMT 2012  Olly Betts <olly@survex.com>
5420         * tests/unittest.cc: Fix message typo in recent unittest change.
5422 Tue Jan 10 13:48:38 GMT 2012  Olly Betts <olly@survex.com>
5424         * common/safesysstat.h: The S_ISDIR and S_ISREG macros for MSVC are
5425           unlikely to work on other platforms (_S_IFMT vs S_IFMT, etc) so
5426           split them.  Tweak a few comments.
5428 Tue Jan 10 13:10:25 GMT 2012  Olly Betts <olly@survex.com>
5430         * net/: Split encode_length() and decode_length() out of
5431           serialise.{cc,h} into new file length.{cc,h}, and remove
5432           XAPIAN_VISIBILITY_DEFAULT from decode_length().
5433         * api/,backends/brass/brass_database.cc,
5434           backends/chert/chert_database.cc,backends/remote/net_postlist.cc,
5435           backends/remote/remote-database.cc,net/: Update headers which need
5436           to be included.
5437         * tests/internaltest.cc,tests/unittest.cc: Move serialiselength1 and
5438           serialiselength2 from internaltest to unittest.
5440 Mon Jan 09 02:16:22 GMT 2012  Olly Betts <olly@survex.com>
5442         * tests/api_compact.cc: Actually add test coverage for
5443           ByteLengthPrefixedStringItor - the previous attempt didn't cause
5444           merging of synonym lists to happen.
5446 Mon Jan 09 00:21:25 GMT 2012  Olly Betts <olly@survex.com>
5448         * tests/api_replicate.cc: Fix comment typo.
5450 Sun Jan 08 14:47:19 GMT 2012  Olly Betts <olly@survex.com>
5452         * tests/api_compact.cc: Add test coverage for
5453           ByteLengthPrefixedStringItor.
5455 Sun Jan 08 14:05:19 GMT 2012  Olly Betts <olly@survex.com>
5457         * common/fd.h,tests/api_db.cc,tests/harness/backendmanager.cc: Add
5458           missing explicit header includes, uncovered by compiling with
5459           STLport.
5461 Sat Jan 07 11:45:00 GMT 2012  Olly Betts <olly@survex.com>
5463         * INSTALL,configure.ac,m4/rjb_find_stlport.m4,xapian-config.in: Remove
5464           configure's --with-stlport and --with-stlport-compiler options, as
5465           they don't allow you to actually specify what you need (at least to
5466           use the Debian STLport package), and instead document what to pass
5467           to configure to enable building with STLport (though it seems to no
5468           longer be actively maintained, and the debug mode (which is probably
5469           the most interesting feature now) doesn't seem to work on Debian
5470           stable).
5472 Sat Jan 07 10:24:25 GMT 2012  Olly Betts <olly@survex.com>
5474         * HACKING: Update STLPort URL to point to the more active fork on
5475           SourceForge.
5477 Fri Jan 06 20:07:06 GMT 2012  Olly Betts <olly@survex.com>
5479         * tests/api_sorting.cc: Add check that NeverUseMeKeyMaker::operator()
5480           would actually cause a test failure if called.
5482 Fri Jan 06 20:01:27 GMT 2012  Olly Betts <olly@survex.com>
5484         * tests/api_stem.cc: Test get_description() on a user-implemented
5485           stemmer.
5487 Fri Jan 06 14:34:16 GMT 2012  Olly Betts <olly@survex.com>
5489         * tests/Makefile.am,tests/harness/,tests/queryparsertest.cc,
5490           tests/termgentest.cc,tests/unittest.cc: Make unittest use the test
5491           harness, so it gets all the valgrind and fd leak checks, and other
5492           handy features all the other tests have.  Currently this is done in
5493           a bit of a hacky way, but it's a starting point for abstracting out
5494           the Xapian-specific parts of the test harness.
5496 Fri Jan 06 08:42:26 GMT 2012  Olly Betts <olly@survex.com>
5498         * Makefile.am: Delete generated lcov directory before running genhtml.
5499           Pass --demangle-cpp and --html-gzip to genhtml.
5501 Fri Jan 06 08:14:05 GMT 2012  Olly Betts <olly@survex.com>
5503         * Makefile.am: Trim `pwd` off all paths in coverage report.
5505 Fri Jan 06 02:29:04 GMT 2012  Olly Betts <olly@survex.com>
5507         * common/pretty.h: Add support for AndContext and OrContext.
5509 Fri Jan 06 02:28:07 GMT 2012  Olly Betts <olly@survex.com>
5511         * common/pretty.h: Use XAPIAN_PRETTY_AS_CLASSNAME for classes in
5512           namespace Xapian::Internal too.
5514 Thu Jan 05 12:23:10 GMT 2012  Olly Betts <olly@survex.com>
5516         * tests/internaltest.cc,tests/unittest.cc: Move tests of
5517           serialise_double() and unserialise_double() from internaltest to
5518           unittest.
5519         * common/serialise-double.h: This means serialise_double() and
5520           unserialise_double() no longer need external visibility, so make
5521           them internal only.
5523 Thu Jan 05 12:08:15 GMT 2012  Olly Betts <olly@survex.com>
5525         * common/bitstream.h: BitWriter doesn't need public visibility.
5527 Thu Jan 05 10:53:23 GMT 2012  Olly Betts <olly@survex.com>
5529         * common/output-internal.h,common/pretty.h: Fix include paths for two
5530           cases which are only used in a logging build.
5532 Fri Dec 30 09:17:50 GMT 2011  Olly Betts <olly@survex.com>
5534         * tests/queryparsertest.cc: Update expected results (mostly because we
5535           no longer flatten groups of the same operator at Query construction
5536           time).
5538 Thu Dec 29 13:47:04 GMT 2011  Olly Betts <olly@survex.com>
5540         * api/Makefile.mk: Add missing backslash so various headers actually
5541           get shipped.
5543 Thu Dec 29 11:29:04 GMT 2011  Olly Betts <olly@survex.com>
5545         * include/xapian/query.h: Add fake templated ctor for SWIG.
5547 Thu Dec 29 00:23:25 GMT 2011  Olly Betts <olly@survex.com>
5549         * tests/api_scalability.cc: Add regression test querypairwise1 for
5550           ticket#273.
5552 Thu Dec 29 00:03:17 GMT 2011  Olly Betts <olly@survex.com>
5554         * api/,backends/remote/remote-database.cc,
5555           backends/remote/remote-database.h,docs/deprecation.rst,
5556           include/xapian/query.h,matcher/,net/remoteserver.cc,
5557           queryparser/queryparser.lemony,tests/,weight/weightinternal.h: Merge
5558           query-internal-reimplementation git branch which reimplements
5559           Query::Internal. (ticket#280).  These are the most notable changes:
5560           + Query objects are smaller and should be faster.
5561           + More readable format for Query::get_description().
5562           + More compact serialisation format for Query objects.
5563           + Query operators are no longer flattened as you build up a tree (but
5564             the query optimiser still combines groups of the same operator).
5565             This means that Query objects are truly immutable, and so we don't
5566             need to copy Query objects when composing them.  This should also
5567             fix a few O(n*n) cases when building up an n-way query pair-wise.
5568             (ticket#273)
5569           + The Query optimiser can do a few extra optimisations.
5571 Mon Dec 26 12:13:36 GMT 2011  Olly Betts <olly@survex.com>
5573         * include/xapian/queryparser.h,queryparser/queryparser.cc: Change
5574           QueryParser::set_default_op() to reject operators which don't make
5575           sense to set, and explicitly document all the operators which are
5576           allowed.
5577         * tests/queryparsertest.cc: Check that bad operators are rejected in
5578           existing testcase qp_default_op2.  Add new testcase qp_default_op3 to
5579           check that good operators can be set and work in a simple testcase.
5581 Mon Dec 26 09:12:09 GMT 2011  Olly Betts <olly@survex.com>
5583         * tests/harness/backendmanager_brass.h,
5584           tests/harness/backendmanager_chert.h: Remove superfluous "private:"
5585           access specifiers.
5587 Sat Dec 24 12:34:19 GMT 2011  Olly Betts <olly@survex.com>
5589         * HACKING: Recommend installing valgrind, ccache, and eatmydata.
5591 Sat Dec 24 12:28:44 GMT 2011  Olly Betts <olly@survex.com>
5593         * HACKING: Make it clear "Building from SVN" applies to git too, and
5594           mention that git-svn is needed when building from git.
5596 Thu Dec 22 11:18:17 GMT 2011  Olly Betts <olly@survex.com>
5598         * languages/compiler/generator.c: Initialise variable which can
5599           be used uninitialised.
5601 Thu Dec 22 03:14:02 GMT 2011  Olly Betts <olly@survex.com>
5603         * bin/Makefile.mk: Link $(libxapian_la) after libbrasscheck.la and
5604           libchertcheck.la to fix mingw build.  Probably closes ticket#567.
5606 Thu Dec 22 02:45:45 GMT 2011  Olly Betts <olly@survex.com>
5608         * include/xapian/query.h: Document that OP_ELITE_SET with non-term
5609           subqueries might pick subqueries which don't match anything.
5610           Closes ticket#49.
5612 Thu Dec 22 02:37:10 GMT 2011  Olly Betts <olly@survex.com>
5614         * include/xapian/query.h: Improve documentation of OP_ELITE_SET.
5616 Wed Dec 21 12:26:00 GMT 2011  Olly Betts <olly@survex.com>
5618         * api/errorhandler.cc: Rearrange code in ErrorHandler::operator() to
5619           be clearer.
5621 Wed Dec 21 11:23:28 GMT 2011  Olly Betts <olly@survex.com>
5623         * include/xapian/errorhandler.h: Fix typo: 'APU' -> 'API'.
5625 Wed Dec 21 09:57:32 GMT 2011  Olly Betts <olly@survex.com>
5627         * api/,backends/brass/brass_postlist.cc,
5628           backends/brass/brass_postlist.h,backends/chert/,
5629           backends/contiguousalldocspostlist.cc,
5630           backends/contiguousalldocspostlist.h,
5631           backends/inmemory/inmemory_database.cc,
5632           backends/inmemory/inmemory_database.h,
5633           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
5634           backends/remote/,docs/,expand/,include/xapian/,matcher/,
5635           net/remoteserver.cc,net/serialise.cc,tests/,weight/bm25weight.cc,
5636           weight/boolweight.cc,weight/tradweight.cc: Deprecate Xapian::weight
5637           typedef in favour of just using double, and make the replacement
5638           everywhere.  Closes ticket#560.
5640 Tue Dec 20 13:31:21 GMT 2011  Olly Betts <olly@survex.com>
5642         * net/remoteconnection.cc: Include "safesysstat.h" for fstat().
5644 Fri Dec 16 03:05:17 GMT 2011  Olly Betts <olly@survex.com>
5646         * backends/brass/brass_termlisttable.cc,
5647           backends/chert/chert_termlisttable.cc,
5648           backends/multi/multi_postlist.cc,net/replicatetcpclient.cc,
5649           net/serialise.cc,net/tcpserver.cc,tests/,
5650           tests/harness/backendmanager_remoteprog.cc,tests/queryparsertest.cc,
5651           tests/soaktest/soaktest_queries.cc,tests/termgentest.cc: Remove
5652           unnecessary includes on "utils.h".
5654 Fri Dec 16 02:57:49 GMT 2011  Olly Betts <olly@survex.com>
5656         * backends/brass/brass_btreebase.cc,backends/brass/brass_database.cc,
5657           backends/brass/brass_databasereplicator.cc,
5658           backends/chert/chert_btreebase.cc,backends/chert/chert_database.cc,
5659           backends/chert/chert_databasereplicator.cc,
5660           net/remoteconnection.cc,tests/api_replicate.cc: Replace uses of
5661           fdcloser class with new FD class.
5662         * common/utils.h: Remove fdcloser class.
5664 Fri Dec 16 00:56:45 GMT 2011  Olly Betts <olly@survex.com>
5666         * tests/api_replicate.cc: Use a const int rather than a #define for
5667           BUFSIZE.
5669 Fri Dec 16 00:50:57 GMT 2011  Olly Betts <olly@survex.com>
5671         * tests/api_replicate.cc: Avoid leaking fds on exceptions in
5672           truncated_copy().
5674 Fri Dec 16 00:42:11 GMT 2011  Olly Betts <olly@survex.com>
5676         * common/fd.h: Oops, fix to actually compile.
5678 Thu Dec 15 23:54:44 GMT 2011  Olly Betts <olly@survex.com>
5680         * common/Makefile.mk,common/fd.h: Add new FD class which wraps a file
5681           descriptor and ensures it gets released when we exit the scope.
5683 Thu Dec 15 22:44:16 GMT 2011  Olly Betts <olly@survex.com>
5685         * weight/Makefile: Add forwarding Makefile.
5687 Thu Dec 15 22:17:18 GMT 2011  Olly Betts <olly@survex.com>
5689         * weight/Makefile.mk: Ship dir_contents and Makefile.
5691 Tue Dec 13 10:33:21 GMT 2011  Olly Betts <olly@survex.com>
5693         * NEWS: Update from ChangeLog and branches/1.2.
5695 Fri Dec 09 10:33:25 GMT 2011  Olly Betts <olly@survex.com>
5697         * tests/soaktest/soaktest.cc,tests/soaktest/soaktest.h,
5698           tests/soaktest/soaktest_queries.cc: "boulton" -> "Boulton" in
5699           copyright statements.
5701 Fri Dec 09 10:31:18 GMT 2011  Olly Betts <olly@survex.com>
5703         * tests/soaktest/soaktest.cc: With Sun's compiler, random() and
5704           srandom() aren't in <cstdlib> so we need to use <stdlib.h> instead.
5706 Fri Dec 09 07:51:44 GMT 2011  Olly Betts <olly@survex.com>
5708         * include/xapian/types.h: Set BAD_VALUENO to 0xffffffff rather than
5709           static_cast<valueno>(-1) - it's the same value currently, but more
5710           robust to valueno being set a wider type.
5712 Fri Dec 09 07:49:07 GMT 2011  Olly Betts <olly@survex.com>
5714         * include/xapian/types.h: Explicitly document which value slot numbers
5715           are valid.  Fixes ticket#555.
5717 Sat Dec 03 09:32:55 GMT 2011  Olly Betts <olly@survex.com>
5719         * tests/api_opsynonym.cc: Fix typo in comment.
5721 Thu Dec 01 04:41:24 GMT 2011  Olly Betts <olly@survex.com>
5723         * include/xapian/database.h: Remove bogus paragraph in
5724           replace_document() documentation comment, cut and pasted from
5725           delete_document() documentation comment.  (Fixes bug#579)
5727 Tue Nov 08 01:50:25 GMT 2011  Olly Betts <olly@survex.com>
5729         * include/xapian/enquire.h: Add missing doxygen @param commands.
5731 Tue Nov 08 01:33:34 GMT 2011  Olly Betts <olly@survex.com>
5733         * include/xapian/database.h,include/xapian/document.h: Add missing
5734           doxygen @param commands.
5736 Mon Nov 07 10:31:04 GMT 2011  Olly Betts <olly@survex.com>
5738         * include/xapian/queryparser.h: Address doxygen warnings.
5740 Mon Nov 07 02:40:50 GMT 2011  Olly Betts <olly@survex.com>
5742         * include/xapian/postingsource.h: Document undocumented parameters,
5743           fixing doxygen warnings.
5744         * include/xapian/queryparser.h: Escape < and > in doxygen comments.
5746 Mon Nov 07 02:38:18 GMT 2011  Olly Betts <olly@survex.com>
5748         * include/xapian/enquire.h: Enquire::get_eset() doesn't take a min_wt
5749           parameter, so remove @param documentation for it.
5751 Mon Nov 07 01:59:54 GMT 2011  Olly Betts <olly@survex.com>
5753         * include/xapian/: Document lots of parameters, fixing doxygen
5754           warnings.
5756 Sun Nov 06 22:05:09 GMT 2011  Olly Betts <olly@survex.com>
5758         * generate-exceptions: Document all parameters to fix doxygen
5759           warnings.
5761 Sun Nov 06 22:03:50 GMT 2011  Olly Betts <olly@survex.com>
5763         * include/xapian/: Fix doxygen warnings.
5765 Sun Nov 06 21:00:08 GMT 2011  Olly Betts <olly@survex.com>
5767         * include/xapian/queryparser.h: Document value parameter of
5768           sortable_serialise() and sortable_unserialise().
5770 Sun Nov 06 17:53:31 GMT 2011  Olly Betts <olly@survex.com>
5772         * include/xapian/document.h: Improve Document get_data() and set_data()
5773           documentation comments.
5775 Sun Nov 06 17:14:39 GMT 2011  Olly Betts <olly@survex.com>
5777         * tests/Makefile.am: Add -I$(top_srcdir) so api/replication.h is found
5778           in a VPATH build.
5780 Sun Nov 06 16:06:52 GMT 2011  Olly Betts <olly@survex.com>
5782         * api/,backends/database.h,backends/document.h,
5783           backends/multi/multi_alltermslist.h,backends/positionlist.h,common/,
5784           tests/harness/: More more headers out of common.
5786 Sun Nov 06 14:55:25 GMT 2011  Olly Betts <olly@survex.com>
5788         * api/maptermlist.h,backends/inmemory/Makefile.mk,
5789           backends/inmemory/inmemory_positionlist.h,
5790           backends/remote/Makefile.mk,backends/remote/remote-database.cc,
5791           backends/remote/remote-database.h,common/Makefile.mk,
5792           common/inmemory_positionlist.h,common/remote-database.h,
5793           matcher/multimatch.cc,matcher/remotesubmatch.cc,
5794           matcher/remotesubmatch.h,net/progclient.h,net/remotetcpclient.h:
5795           Move two more headers out of common.
5797 Sun Nov 06 11:56:46 GMT 2011  Olly Betts <olly@survex.com>
5799         * tests/internaltest.cc: Fix for VPATH build.
5801 Sun Nov 06 11:26:18 GMT 2011  Olly Betts <olly@survex.com>
5803         * common/,tests/api_replicate.cc: Factor internal classes out of
5804           output.h into new output-internal.h to fix build failures in VPATH
5805           due to move of weightinternal.h out of common (since the test harness
5806           uses output.h).
5808 Sun Nov 06 00:49:45 GMT 2011  Olly Betts <olly@survex.com>
5810         * api/,backends/brass/,backends/chert/,backends/dbfactory_remote.cc,
5811           backends/inmemory/inmemory_database.cc,
5812           backends/multi/multi_termlist.cc,backends/remote/net_postlist.cc,
5813           backends/remote/net_termlist.h,backends/remote/remote-database.cc,
5814           bin/,common/,expand/,matcher/,net/,tests/internaltest.cc,
5815           weight/Makefile.mk,weight/weightinternal.h: Move even more headers
5816           out of common and next to their corresponding C++ file.
5818 Sat Nov 05 23:55:55 GMT 2011  Olly Betts <olly@survex.com>
5820         * api/replication.cc,backends/Makefile.mk,
5821           backends/brass/brass_databasereplicator.h,
5822           backends/chert/chert_databasereplicator.h,
5823           backends/databasereplicator.h,common/Makefile.mk,
5824           common/databasereplicator.h: Move databasereplicator.h from common to
5825           backends.
5827 Sat Nov 05 23:51:40 GMT 2011  Olly Betts <olly@survex.com>
5829         * backends/Makefile.mk: Fix sort order of noinst_HEADERS.
5831 Sat Nov 05 23:50:33 GMT 2011  Olly Betts <olly@survex.com>
5833         * api/documentvaluelist.h,api/omdatabase.cc,api/valueiterator.cc,
5834           backends/Makefile.mk,backends/brass/,backends/chert/,
5835           backends/inmemory/inmemory_database.cc,
5836           backends/multi/multi_valuelist.cc,backends/multivaluelist.h,
5837           backends/valuelist.h,backends/valuestats.h,bin/xapian-check-brass.cc,
5838           bin/xapian-check-chert.cc,common/,matcher/valuerangepostlist.h,
5839           matcher/valuestreamdocument.h: Move multivaluelist.h, valuelist.h and
5840           valuestats.h from common to backends.
5842 Sat Nov 05 23:40:49 GMT 2011  Olly Betts <olly@survex.com>
5844         * api/,backends/brass/brass_postlist.h,backends/chert/chert_postlist.h,
5845           backends/contiguousalldocspostlist.h,backends/database.cc,
5846           backends/inmemory/inmemory_database.h,
5847           backends/multi/multi_postlist.h,backends/remote/net_postlist.h,
5848           backends/remote/remote-database.cc,common/,matcher/: Move
5849           emptypostlist.h, leafpostlist.h and postlist.h from common to api.
5851 Sat Nov 05 23:31:14 GMT 2011  Olly Betts <olly@survex.com>
5853         * backends/Makefile.mk,backends/brass/brass_database.cc,
5854           backends/chert/chert_database.cc,
5855           backends/contiguousalldocspostlist.h,common/Makefile.mk,
5856           common/contiguousalldocspostlist.h: Move contiguousalldocspostlist.h
5857           from common to backends.
5859 Sat Nov 05 23:28:49 GMT 2011  Olly Betts <olly@survex.com>
5861         * api/omdatabase.cc,backends/Makefile.mk,backends/alltermslist.h,
5862           backends/brass/,backends/chert/,
5863           backends/inmemory/inmemory_alltermslist.h,common/Makefile.mk,
5864           common/alltermslist.h,common/multialltermslist.h: Move alltermslist.h
5865           from common to backends.
5867 Sat Nov 05 23:20:05 GMT 2011  Olly Betts <olly@survex.com>
5869         * common/safesysselect.h: Fix typo (FDSET -> FD_SET).
5871 Sat Nov 05 23:12:09 GMT 2011  Olly Betts <olly@survex.com>
5873         * common/safesysselect.h: Enhance to provide portability for __WIN32__
5874           too.
5875         * net/remoteconnection.cc,net/tcpclient.cc: Update to make use of this.
5877 Sat Nov 05 22:39:51 GMT 2011  Olly Betts <olly@survex.com>
5879         * common/safesysselect.h: Add wrapper around FD_SET() under __WIN32__
5880           which casts the fd parameter to unsigned to avoid a warning on mingw.
5881         * net/tcpclient.cc: Remove __WIN32__-specific case here which was
5882           working around this warning.
5884 Sat Nov 05 21:58:12 GMT 2011  Olly Betts <olly@survex.com>
5886         * bin/.gitignore,bin/Makefile.mk,bin/xapian-delve.cc,
5887           docs/admin_notes.rst,examples/,xapian-core.spec.in: Move delve from
5888           examples to bin and rename to xapian-delve.
5890 Sat Nov 05 15:18:37 GMT 2011  Olly Betts <olly@survex.com>
5892         * docs/overview.rst: Fix a few things which were out of date and
5893           improve wording in various places.
5895 Sat Nov 05 12:07:14 GMT 2011  Olly Betts <olly@survex.com>
5897         * docs/quickstart.rst: Fix some factual errors, and tweak .rst
5898           source layout a little (":\n::\n" -> "::\n").
5900 Thu Nov 03 20:53:49 GMT 2011  Richard Boulton <richard@tartarus.org>
5902         * common/msvc_posix_wrapper.cc,common/safe.cc,net/tcpclient.cc:
5903           Some fixes for warnings when cross-compiling with mingw; missing
5904           includes to get declarations of functions in windows support
5905           code, and change to use the windows SOCKET type to avoid a
5906           signed/unsigned comparison warning in tcpclient.
5908 Sun Oct 30 23:31:09 GMT 2011  Olly Betts <olly@survex.com>
5910         * NEWS: Update from ChangeLog.
5912 Sun Oct 30 13:16:12 GMT 2011  Olly Betts <olly@survex.com>
5914         * include/xapian/queryparser.h: List which flags FLAG_DEFAULT includes
5915           in the doxygen documentation comments.
5917 Sat Oct 29 14:47:04 GMT 2011  Olly Betts <olly@survex.com>
5919         * include/xapian/enquire.h: Add note to API docs to discourage use
5920           of percentage scores.
5922 Sat Oct 29 14:40:39 GMT 2011  Olly Betts <olly@survex.com>
5924         * docs/quickstart.rst,docs/quickstartexpand.cc.html,
5925           docs/quickstartsearch.cc.html,examples/quest.cc,
5926           examples/simpleexpand.cc,examples/simplesearch.cc: Use get_weight()
5927           instead of get_percent() in examples, since percentages are rather
5928           old fashioned and you probably don't want to use them in new
5929           applications.
5931 Sat Oct 29 13:29:37 GMT 2011  Olly Betts <olly@survex.com>
5933         * api/omenquire.cc,common/omenquireinternal.h,docs/deprecation.rst,
5934           include/xapian/enquire.h,include/xapian/types.h,tests/api_anydb.cc:
5935           Deprecate Xapian::percent and use int instead in the API and our
5936           own code.
5938 Sat Oct 29 12:30:05 GMT 2011  Olly Betts <olly@survex.com>
5940         * docs/quickstart.rst: Fix indentation of example code.
5942 Sat Oct 29 10:04:24 GMT 2011  Olly Betts <olly@survex.com>
5944         * docs/overview.rst: Fix typo in example code.
5946 Fri Oct 28 14:39:09 GMT 2011  Olly Betts <olly@survex.com>
5948         * include/xapian/database.h: Note that commit() was new in 1.1.0.
5950 Fri Oct 14 12:38:45 GMT 2011  Olly Betts <olly@survex.com>
5952         * common/realtime.h: Use safesysselect.h.
5954 Mon Oct 03 00:53:13 GMT 2011  Olly Betts <olly@survex.com>
5956         * queryparser/lemon.c: Incorporate changes from latest upstream
5957           version.  I'm failing to follow branch structure upstream to work
5958           out which changesets to merge so it's simpler to just compare the
5959           latest version with what we currently have.
5961 Sun Oct 02 23:31:52 GMT 2011  Olly Betts <olly@survex.com>
5963         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/d8bab8cf0b:
5964           'Added %expect directive, to consider a certain number of conflicts
5965           "correct." This has the side effect of changing the process exit
5966           code to never overflow.'
5968 Sun Oct 02 23:26:34 GMT 2011  Olly Betts <olly@survex.com>
5970         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/e6cbe1e5ee:
5971           "Added -T option, to specify a template filename on the command
5972           line.  The default is still "lempar.c", though."  Not currently
5973           useful to us, but trying to minimise differences with upstream
5974           lemon.
5976 Sun Oct 02 23:14:32 GMT 2011  Olly Betts <olly@survex.com>
5978         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/e22c090f35:
5979           "Another attempt at fixing the table generator in lemon. Again, this
5980           does not effect the SQLite grammar."  No change to generated grammar
5981           for QueryParser.
5983 Sun Oct 02 22:59:28 GMT 2011  Olly Betts <olly@survex.com>
5985         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/077a6bee2d:
5986           "Fix an issue with lemon generating incorrect grammars. This issue
5987           does not effect SQLite."  This means we now get the same tables
5988           generated as before the previous change.
5990 Sun Oct 02 22:25:54 GMT 2011  Olly Betts <olly@survex.com>
5992         * queryparser/lemon.c,queryparser/queryparser.lt: Merge
5993           http://www.sqlite.org/src/info/27d8e684db: Enhancements to lemon to
5994           generate more compact action tables and to avoid making array bounds
5995           tests that can never fail on action table calculations.  This
5996           reduces the size of QueryParser's tables a little.
5998 Sun Oct 02 21:47:36 GMT 2011  Olly Betts <olly@survex.com>
6000         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/d66a0f31eb:
6001           Adjust the lemon implementation so that it always computes the same
6002           PDA regardless of qsort() implementation on the host platform. In
6003           other words, make all sorts in lemon stable.
6005 Thu Sep 29 12:11:28 GMT 2011  Olly Betts <olly@survex.com>
6007         * tests/queryparsertest.cc: Add cases to ensure a quoted boolean
6008           prefix accepts an empty value or a single space.
6010 Wed Sep 14 04:48:57 GMT 2011  Olly Betts <olly@survex.com>
6012         * docs/quickstart.rst: Correct link which was to
6013           quickstartsearch.cc.html but should be to quickstartindex.cc.html.
6015 Tue Sep 13 08:51:34 GMT 2011  Olly Betts <olly@survex.com>
6017         * backends/flint_lock.cc: Fix comment typo.
6019 Thu Sep 01 12:50:43 GMT 2011  Olly Betts <olly@survex.com>
6021         * include/xapian/enquire.h: Clarify "sort by date" with BoolWeight
6022           example.
6024 Tue Aug 30 13:51:48 GMT 2011  Olly Betts <olly@survex.com>
6026         * docs/index.rst: Add link to apidoc.pdf.
6028 Wed Aug 24 14:12:05 GMT 2011  Olly Betts <olly@survex.com>
6030         * queryparser/queryparser.lemony: Fix memory leak (caught by existing
6031           testcase queryparser1 when run under valgrind).
6033 Wed Aug 24 12:47:49 GMT 2011  Olly Betts <olly@survex.com>
6035         * queryparser/,tests/queryparsertest.cc,tests/termgentest.cc: Add
6036           support for indexing and searching CJK text using n-grams.  Currently
6037           this is only enabled if environmental variable XAPIAN_CJK_NGRAM is
6038           set to a non-empty value.
6040 Tue Aug 23 03:49:27 GMT 2011  Olly Betts <olly@survex.com>
6042         * api/vectortermlist.cc,api/vectortermlist.h: Change so that p == NULL
6043           represents at_end, and p == data.data() means we've yet to start.
6045 Mon Aug 22 15:30:51 GMT 2011  Olly Betts <olly@survex.com>
6047         * api/vectortermlist.cc: Add new source file missed from last commit.
6049 Mon Aug 22 14:32:50 GMT 2011  Olly Betts <olly@survex.com>
6051         * api/,backends/brass/brass_synonym.cc,backends/chert/chert_synonym.cc,
6052           common/Makefile.mk,common/vectortermlist.h,
6053           queryparser/queryparser.cc: Reimplement VectorTermList to store the
6054           list of terms encoded into a single std::string, which is a lot more
6055           memory efficient that std::vector<std::string>.
6057 Mon Aug 22 12:22:49 GMT 2011  Olly Betts <olly@survex.com>
6059         * common/Makefile.mk,common/const_database_wrapper.cc,
6060           common/const_database_wrapper.h,matcher/Makefile.mk,
6061           matcher/const_database_wrapper.cc,matcher/const_database_wrapper.h:
6062           Move const_database_wrapper.h and const_database_wrapper.cc from
6063           common/ to matcher/.
6065 Sun Aug 21 12:43:38 GMT 2011  Olly Betts <olly@survex.com>
6067         * Makefile.am: Since we require GNU find for the coverage-check target,
6068           make use of its -delete option, so we no longer also need GNU xargs.
6070 Thu Aug 18 06:28:11 GMT 2011  Olly Betts <olly@survex.com>
6072         * queryparser/queryparser.lemony: Reorder header includes to be more
6073           standard.
6075 Thu Aug 18 01:06:00 GMT 2011  Olly Betts <olly@survex.com>
6077         * queryparser/queryparser.lemony: <cstring> not <string.h>.
6079 Tue Aug 16 04:56:20 GMT 2011  Olly Betts <olly@survex.com>
6081         * bin/xapian-check.cc: Throw Xapian::FeatureUnavailableError if
6082           backends are disabled, rather than const char *.
6084 Tue Aug 16 04:49:05 GMT 2011  Olly Betts <olly@survex.com>
6086         * backends/brass/brass_check.cc,backends/brass/brass_check.h,
6087           backends/chert/chert_check.cc,backends/chert/chert_check.h,
6088           bin/xapian-check.cc: Instead of giving cryptic numeric codes for
6089           B-tree errors and then throwing const char *, throw
6090           Xapian::DatabaseError() exceptions with string descriptions.
6092 Fri Aug 12 23:11:51 GMT 2011  Olly Betts <olly@survex.com>
6094         * NEWS: Update from 1.2.7 and ChangeLog.
6096 Fri Aug 12 06:38:45 GMT 2011  Olly Betts <olly@survex.com>
6098         * backends/remote/remote-database.cc: Factor out throw_bad_message().
6100 Fri Aug 12 06:22:14 GMT 2011  Olly Betts <olly@survex.com>
6102         * net/remoteconnection.cc: Factor out throw_database_closed().
6104 Fri Aug 12 06:17:43 GMT 2011  Olly Betts <olly@survex.com>
6106         * net/remoteserver.cc: Factor out throw_read_only() function.
6108 Fri Aug 12 06:17:01 GMT 2011  Olly Betts <olly@survex.com>
6110         * common/noreturn.h: Add comment showing how to use XAPIAN_NORETURN
6111           macro.
6113 Sat Aug 06 05:15:53 GMT 2011  Olly Betts <olly@survex.com>
6115         * api/positioniterator.cc,api/postingsource.cc,api/valueiterator.cc,
6116           common/serialise.h,include/xapian/positioniterator.h,
6117           include/xapian/postingsource.h: Fix new warnings from -Wshadow with
6118           GCC 4.6.  These warnings are when a variable name "shadows" a
6119           typename, which doesn't seem problematic in general, but the only
6120           alternative seems to be to disable -Wshadow entirely, and it is
6121           useful in other cases.
6123 Thu Aug 04 07:57:09 GMT 2011  Olly Betts <olly@survex.com>
6125         * backends/dbfactory_remote.cc,docs/deprecation.rst,
6126           include/xapian/dbfactory.h,include/xapian/types.h: Deprecate
6127           Xapian::timeout in favour of POSIX type useconds_t.
6129 Thu Aug 04 04:04:45 GMT 2011  Olly Betts <olly@survex.com>
6131         * include/xapian/termgenerator.h,
6132           queryparser/termgenerator_internal.cc: Rename weight parameter to
6133           wdf_inc, which much better describes what it does, and avoids a
6134           -Wshadow warning with GCC 4.6.
6136 Thu Aug 04 04:03:37 GMT 2011  Olly Betts <olly@survex.com>
6138         * api/registry.cc: Rename weight variable to weighting_scheme to avoid
6139           -Wshadow warning.
6141 Wed Aug 03 23:13:36 GMT 2011  Olly Betts <olly@survex.com>
6143         * configure.ac: -Wshadow gives bogus warnings with 4.0 (at least on Mac
6144           OS X), so disable it for GCC < 4.1 (like the comments suggest we
6145           already did!)
6147 Wed Aug 03 22:53:55 GMT 2011  Olly Betts <olly@survex.com>
6149         * configure.ac: Enable -fshow-column for GCC - things like vim's
6150           quickfix mode will then jump to the appropriate column for a
6151           compiler error or warning, not just the appropriate line.
6153 Wed Aug 03 22:13:26 GMT 2011  Olly Betts <olly@survex.com>
6155         * api/omdocument.cc,backends/brass/brass_database.cc,
6156           backends/chert/chert_database.cc,common/document.h: Document objects
6157           now track if term positions might have been modified, so we can avoid
6158           having to consider them at all if you take a document and add or
6159           remove a boolean filter term.  This gives an 18% speedup for adding
6160           tags in notmuch.
6162 Mon Aug 01 15:15:17 GMT 2011  Olly Betts <olly@survex.com>
6164         * api/Makefile.mk,api/ompostlistiterator.cc,api/postingiterator.cc,
6165           include/xapian/postingiterator.h,tests/api_db.cc: Redo
6166           PostingIterator based on TermIterator with efficient end iterator
6167           checks.
6169 Mon Aug 01 13:34:44 GMT 2011  Olly Betts <olly@survex.com>
6171         * api/,backends/brass/brass_database.cc,
6172           backends/chert/chert_database.cc,
6173           backends/inmemory/inmemory_database.cc,common/positionlist.h,
6174           examples/delve.cc,include/xapian/positioniterator.h,
6175           include/xapian/termiterator.h,include/xapian/valueiterator.h: Take
6176           the old SVN end-iterator-proxies branch and rework the TermIterator
6177           and PositionIterator reimplementations there to use the same
6178           approach as ValueIterator now uses.
6180 Sun Jul 31 15:24:55 GMT 2011  Olly Betts <olly@survex.com>
6182         * include/xapian/valueiterator.h: Fix comment typo.
6184 Sun Jul 31 14:45:46 GMT 2011  Olly Betts <olly@survex.com>
6186         * api/omenquire.cc,tests/api_anydb.cc: Previously,
6187           Enquire::get_matching_terms_begin() threw InvalidArgumentError if
6188           the query was empty.  Now we just return an end iterator, which is
6189           more consistent with how empty queries behave elsewhere.
6191 Sun Jul 31 13:44:06 GMT 2011  Olly Betts <olly@survex.com>
6193         * api/valueiterator.cc,include/xapian/valueiterator.h: Rename private
6194           ValueIterator::deref() method to decref() (since dereference has
6195           another meaning to the intended "remove a reference").
6197 Sun Jul 31 11:27:33 GMT 2011  Olly Betts <olly@survex.com>
6199         * api/valueiterator.cc,include/xapian/database.h,
6200           include/xapian/document.h,include/xapian/valueiterator.h: Don't use
6201           intrusive_ptr to reference count ValueIterator internals, but
6202           instead update the reference count in hand-written code.  This is
6203           less good in itself, but it means we can inline ValueIterator's
6204           default constructor and its destructor in the case where the
6205           internal is NULL, which should mean a comparison with the end
6206           iterator optimises to a NULL pointer check but without needing
6207           the ValueIteratorEnd_ class, which doesn't work as ValueIterator()
6208           would in templates or some cases of overload resolution.
6210 Sat Jul 30 12:07:52 GMT 2011  Olly Betts <olly@survex.com>
6212         * docs/doxygen_api.conf.in: Don't generate XML from doxygen for the
6213           bindings - the bindings now do this for themselves.  (ticket#262)
6215 Fri Jul 29 01:33:37 GMT 2011  Olly Betts <olly@survex.com>
6217         * include/xapian/enquire.h: Just forward declare "class KeyMaker"
6218           rather than including <xapian/keymaker.h>.
6220 Fri Jul 29 01:28:08 GMT 2011  Olly Betts <olly@survex.com>
6222         * api/omdatabase.cc,backends/slowvaluelist.cc,
6223           include/xapian/database.h,matcher/valuestreamdocument.cc: Change
6224           Database::get_document_lazily_() to return void* so we don't need
6225           to include xapian/document.h from xapian/database.h just to get
6226           Document::Internal declared.  This doesn't affect user code, but
6227           reduces the number of files which need to be rebuilt in the library
6228           when xapian/document.h changes.
6230 Wed Jul 27 05:59:32 GMT 2011  Olly Betts <olly@survex.com>
6232         * include/xapian/matchspy.h: Remove unnecessary header includes.
6234 Wed Jul 27 02:11:08 GMT 2011  Olly Betts <olly@survex.com>
6236         * docs/index.rst: Add links to Omega and bindings docs.
6238 Tue Jul 26 05:36:50 GMT 2011  Olly Betts <olly@survex.com>
6240         * docs/deprecation.rst: Add Omega's OLDP CGI parameter.
6242 Fri Jul 22 15:37:48 GMT 2011  Olly Betts <olly@survex.com>
6244         * include/xapian/queryparser.h: Reword documentation of
6245           add_boolean_prefix()'s exclusive parameter to talk about terms and
6246           prefixes rather than values and fields (which was confusing since
6247           "document value" has a particular meaning in Xapian).
6249 Thu Jul 21 03:37:49 GMT 2011  Olly Betts <olly@survex.com>
6251         * matcher/mergepostlist.cc: Another debug logging fix.
6253 Thu Jul 21 03:16:39 GMT 2011  Olly Betts <olly@survex.com>
6255         * api/omenquire.cc,api/ompostlistiterator.cc,
6256           backends/brass/brass_database.cc,
6257           backends/brass/brass_positionlist.cc,
6258           backends/brass/brass_postlist.cc,backends/chert/chert_database.cc,
6259           backends/chert/chert_positionlist.cc,
6260           backends/chert/chert_postlist.cc: More debug logging fixes.
6262 Thu Jul 21 02:55:00 GMT 2011  Olly Betts <olly@survex.com>
6264         * api/omdatabase.cc,api/omenquire.cc,api/replication.cc,
6265           backends/brass/brass_alldocspostlist.cc,
6266           backends/brass/brass_database.cc,
6267           backends/brass/brass_spellingwordslist.cc,backends/chert/,
6268           matcher/mergepostlist.cc,matcher/msetpostlist.cc,
6269           matcher/synonympostlist.cc: Fix various incorrect LOGCALL lines.
6271 Thu Jul 21 02:12:25 GMT 2011  Olly Betts <olly@survex.com>
6273         * backends/brass/brass_postlist.cc,backends/chert/chert_postlist.cc,
6274           common/documentterm.h,net/progclient.cc: Fix uses of LOGCALL_VOID
6275           which should be LOGCALL_CTOR.
6277 Wed Jul 20 07:00:48 GMT 2011  Olly Betts <olly@survex.com>
6279         * tests/api_matchspy.cc: Remove checks for remote dbtype in matchspy2
6280           and matchspy4 testcases - these were checking for values which would
6281           never match, and the testcases should and do work with remote
6282           backends.
6284 Wed Jul 20 01:19:46 GMT 2011  Olly Betts <olly@survex.com>
6286         * docs/facets.rst: Minor clarification.
6288 Wed Jul 20 00:22:38 GMT 2011  Olly Betts <olly@survex.com>
6290         * bin/xapian-check.cc: Document in --help that checking a whole
6291           database performs additional cross-checks between the tables.
6293 Tue Jul 19 18:29:51 GMT 2011  Richard Boulton <richard@tartarus.org>
6295         * docs/facets.rst: Expand descriptions for indexing and finding
6296           facets to hopefully be more helpful to newcomers.
6298 Tue Jul 19 17:52:25 GMT 2011  Richard Boulton <richard@tartarus.org>
6300         * docs/facets.rst: Fix example calls to add_matchspy() to be passed
6301           pointers, and example call to get_termfreq().
6303 Sat Jul 16 10:54:39 GMT 2011  Olly Betts <olly@survex.com>
6305         * tests/collate-test: Now understand use of "#if 0" to disable
6306           testcases.
6307         * tests/api_db.cc: Remove comment in front of
6308           "DEFINE_TESTCASE(multierrhandler1, [...]" which is no longer needed.
6310 Wed Jul 13 15:07:27 GMT 2011  Olly Betts <olly@survex.com>
6312         * include/xapian/database.h: Improve the documentation comment for
6313           Database::close().  (ticket#504)
6315 Sat Jul 09 14:00:08 GMT 2011  Olly Betts <olly@survex.com>
6317         * include/xapian/stem.h,languages/stem.cc: Stem::operator= now returns
6318           a reference to the assigned-to object.
6320 Sat Jul 09 07:08:03 GMT 2011  Olly Betts <olly@survex.com>
6322         * languages/compiler/analyser.c: Change reporting of line number for
6323           repeated string in among to use "FILE:LINE:" prefix.
6325 Sat Jul 09 01:04:18 GMT 2011  Olly Betts <olly@survex.com>
6327         * common/pretty.h: Don't dereference a NULL pointer.
6329 Fri Jul 08 14:28:42 GMT 2011  Olly Betts <olly@survex.com>
6331         * common/output.h,common/pretty.h: Fix invalid templates in pretty.h.
6333 Fri Jul 08 12:55:19 GMT 2011  Olly Betts <olly@survex.com>
6335         * common/pretty.h: Fix template for pretty printing a std::list.
6337 Thu Jul 07 10:40:53 GMT 2011  Olly Betts <olly@survex.com>
6339         * api/omenquire.cc: Add assertions that the index is in range when
6340           dereferencing MSetIterator and ESetIterator.
6342 Wed Jul 06 08:20:56 GMT 2011  Olly Betts <olly@survex.com>
6344         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Trust
6345           new to throw std::bad_alloc rather than returning NULL.
6347 Wed Jul 06 05:50:38 GMT 2011  Olly Betts <olly@survex.com>
6349         * tests/internaltest.cc: Remove testcase serialisequery1.
6350         * tests/api_serialise.cc: Extend serialise_query1 to cover equivalent
6351           cases via the API.
6353 Tue Jul 05 01:20:59 GMT 2011  Olly Betts <olly@survex.com>
6355         * common/debuglog.h: Add QUERY category for debug logging.
6357 Fri Jul 01 04:55:02 GMT 2011  Olly Betts <olly@survex.com>
6359         * common/unordered_map.h: Add my <unordered_map> portability wrapper
6360           which was used by the JNI java bindings.  It's not currently used
6361           here, but is likely to be useful (two of the GSoC projects are
6362           using unordered_map).
6364 Wed Jun 29 12:16:59 GMT 2011  Richard Boulton <richard@tartarus.org>
6366         * languages/compiler/tokeniser.c: Fix memory leak (of file name) in
6367           snowball compiler introduced by last commit.
6369 Wed Jun 29 07:49:36 GMT 2011  Olly Betts <olly@survex.com>
6371         * languages/compiler/: Report "FILE:LINE:" before each error so tools
6372           like vim's quickfix mode can parse this and bring up the line with
6373           the error automatically.
6375 Wed Jun 29 07:49:10 GMT 2011  Olly Betts <olly@survex.com>
6377         * languages/compiler/header.h: Add comments to note that struct input
6378           must be a prefix of struct tokeniser.
6380 Wed Jun 29 07:47:30 GMT 2011  Olly Betts <olly@survex.com>
6382         * languages/basque.sbl: Use stringdef instead of literal accented
6383           characters in the code.
6385 Wed Jun 29 07:13:30 GMT 2011  Olly Betts <olly@survex.com>
6387         * docs/stemming.rst,include/xapian/stem.h,languages/: Add stemmers
6388           for Armenian (hy), Basque (eu), and Catalan (ca).
6390 Mon Jun 27 08:16:55 GMT 2011  Olly Betts <olly@survex.com>
6392         * include/xapian/query.h: Add a fake specialised form of the templated
6393           ctor for SWIG.
6395 Sat Jun 25 11:27:00 GMT 2011  Olly Betts <olly@survex.com>
6397         * include/xapian/enquire.h: Fix doc comment typo which reversed the
6398           intended sense.
6400 Sat Jun 25 06:20:34 GMT 2011  Olly Betts <olly@survex.com>
6402         * api/omenquire.cc,common/omenquireinternal.h: Remove unused method
6403           Enquire::Internal::register_match_decider().
6405 Sat Jun 25 06:05:22 GMT 2011  Olly Betts <olly@survex.com>
6407         * include/xapian/enquire.h: MSet(MSet::Internal *) -> MSet(Internal *)
6408           for consistency with other classes.
6410 Fri Jun 24 16:15:00 GMT 2011  Olly Betts <olly@survex.com>
6412         * api/omdatabase.cc,backends/slowvaluelist.cc,
6413           include/xapian/database.h,matcher/valuestreamdocument.cc: Rename
6414           Database::get_document_lazily() to get_document_lazily_() to conform
6415           to our convention for naming methods for internal use which have
6416           "public" visibility.
6418 Wed Jun 22 23:51:15 GMT 2011  Richard Boulton <richard@tartarus.org>
6420         * configure.ac: Correct tiny typo in error message when zlib isn't
6421           found.
6423 Tue Jun 21 04:08:29 GMT 2011  Olly Betts <olly@survex.com>
6425         * common/autoptr.h: Update comment about why we have this file.  It's
6426           no longer a concern that we might need our own AutoPtr implementation
6427           but we are likely to want to be able to migrate to unique_ptr easily
6428           as C++0x features become more widely available.
6430 Tue Jun 21 02:26:36 GMT 2011  Olly Betts <olly@survex.com>
6432         * HACKING,common/pretty.h,configure.ac,tests/internaltest.cc: Fix a
6433           few lingering references to RefCntPtr and RefCntBase.
6435 Tue Jun 21 02:01:25 GMT 2011  Olly Betts <olly@survex.com>
6437         * api/,backends/brass/,backends/chert/,backends/database.cc,
6438           backends/inmemory/inmemory_alltermslist.h,
6439           backends/inmemory/inmemory_database.cc,
6440           backends/inmemory/inmemory_database.h,
6441           backends/multi/multi_alltermslist.cc,
6442           backends/multi/multi_valuelist.cc,backends/remote/,common/,
6443           docs/doxygen_api.conf.in,include/Makefile.mk,include/xapian/,
6444           matcher/msetpostlist.h,matcher/multimatch.cc,
6445           queryparser/queryparser_internal.h,
6446           queryparser/termgenerator_internal.h,tests/internaltest.cc: Convert
6447           to use xapian/intrusive_ptr.h instead of xapian/base.h.
6449 Mon Jun 20 23:55:10 GMT 2011  Olly Betts <olly@survex.com>
6451         * include/xapian/intrusive_ptr.h: Unmodified version of
6452           boost/smart_ptr/intrusive_ptr.hpp as of Boost 1.42 (committed to aid
6453           merging changes in the future).
6455 Mon Jun 20 12:46:47 GMT 2011  Olly Betts <olly@survex.com>
6457         * common/databasereplicator.h,languages/steminternal.h,tests/harness/:
6458           Remove inclusions of xapian/base.h from files which don't use
6459           RefCntPtr or RefCntBase.
6461 Mon Jun 20 11:33:03 GMT 2011  Olly Betts <olly@survex.com>
6463         * include/xapian/base.h: Remove unnecessary check for self-assignment
6464           as it isn't a common case and the current code copes gracefully with
6465           it anyway.
6467 Mon Jun 20 05:25:05 GMT 2011  Olly Betts <olly@survex.com>
6469         * backends/brass/brass_postlist.cc,backends/brass/brass_postlist.h,
6470           backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h:
6471           Reduce size of BrassPostList/ChertPostList objects by moving bool
6472           members together (168->160 bytes for ChertPostList on x86-64 Linux).
6474 Sun Jun 19 13:44:32 GMT 2011  Olly Betts <olly@survex.com>
6476         * tests/internaltest.cc: Fix typo in comment and verbose output.
6478 Sun Jun 19 12:23:43 GMT 2011  Olly Betts <olly@survex.com>
6480         * api/error.cc,generate-exceptions: Rearrange members of Xapian::Error
6481           to reduce its size (from 48 to 40 bytes on x86-64 Linux).
6483 Sun Jun 19 12:22:53 GMT 2011  Olly Betts <olly@survex.com>
6485         * common/pretty.h: Fix comment typo.
6487 Sun Jun 19 04:45:26 GMT 2011  Olly Betts <olly@survex.com>
6489         * INSTALL: Update GCC details - we now recommend 4.3 or newer (was 4.1)
6490           and note that while 3.1 is the hard minimum requirement, the oldest
6491           we've tested with at all recently was 3.3.
6493 Sat Jun 18 14:27:14 GMT 2011  Olly Betts <olly@survex.com>
6495         * queryparser/queryparser.lemony,
6496           queryparser/termgenerator_internal.cc: Fix warning from GCC 3.3.
6498 Sat Jun 18 06:27:03 GMT 2011  Olly Betts <olly@survex.com>
6500         * api/,expand/ortermlist.cc,include/xapian/: Use TermIterator() instead
6501           of TermIterator(NULL), and similarly for other Xapian iterator
6502           classes.
6504 Sat Jun 18 05:16:23 GMT 2011  Olly Betts <olly@survex.com>
6506         * tests/zlib-vg.so: Remove file committed accidentally.
6508 Sat Jun 18 05:07:56 GMT 2011  Olly Betts <olly@survex.com>
6510         * api/,include/xapian/positioniterator.h,
6511           include/xapian/termiterator.h: Reimplementations of PositionIterator
6512           and TermIterator from the end-iterator-proxies branch.  Assignment
6513           operators for these classes now return *this rather than void.
6515 Sat Jun 18 01:49:02 GMT 2011  Olly Betts <olly@survex.com>
6517         * tests/perftest/Makefile.mk: Make sure that perftest isn't run with
6518           libeatmydata preloaded.
6520 Fri Jun 17 07:39:35 GMT 2011  Olly Betts <olly@survex.com>
6522         * docs/deprecation.rst: Tabs to spaces.
6524 Fri Jun 17 07:38:06 GMT 2011  Olly Betts <olly@survex.com>
6526         * docs/deprecation.rst: Add flush() -> commit().
6528 Thu Jun 16 14:40:35 GMT 2011  Olly Betts <olly@survex.com>
6530         * tests/: Add TEST( ) or TEST(! ) around existing reopen() calls to
6531           check that we get true or false returned as we would expect.
6532           (ticket#548)
6534 Thu Jun 16 05:15:28 GMT 2011  Olly Betts <olly@survex.com>
6536         * README: Note licence is GPL *2+*.  Say "SVN/git".  Use trac URL for
6537           wiki.
6539 Wed Jun 15 23:31:03 GMT 2011  Olly Betts <olly@survex.com>
6541         * xapian-core/api/error.cc: Don't include the magic code byte at the
6542           start of Error::get_description()'s return value.
6544 Wed Jun 15 15:51:42 GMT 2011  Olly Betts <olly@survex.com>
6546         * exception_data.pm,generate-exceptions,net/serialise.cc: When
6547           propagating exceptions from a remote backend server, use a numeric
6548           code to represent which exception is being transferred rather than
6549           the name of the type as that can be turned back into an exception
6550           with a simple switch statement.  It's also less data to transfer.
6551           (ticket#471)
6553 Wed Jun 15 14:03:49 GMT 2011  Olly Betts <olly@survex.com>
6555         * backends/remote/remote-database.cc,common/remote-database.h,
6556           common/remoteprotocol.h,docs/remote_protocol.rst,net/remoteserver.cc:
6557           Propagate the return value of Database::reopen() across the link.
6558           (ticket#548)
6560 Wed Jun 15 13:03:56 GMT 2011  Olly Betts <olly@survex.com>
6562         * backends/remote/remote-database.cc,common/remote-database.h,
6563           common/remoteprotocol.h,docs/remote_protocol.rst,net/remoteserver.cc:
6564           Unify REPLY_GREETING and REPLY_UPDATE; send (last_docid - doccount)
6565           instead of last_docid; send (doclen_ubound - doclen_lbound) instead
6566           of doclen_ubound.  This requires a remote protocol major version
6567           bump.  Fix out of date documentation for what's in a REPLY_UPDATE
6568           message.
6570 Wed Jun 15 12:24:07 GMT 2011  Olly Betts <olly@survex.com>
6572         * backends/remote/remote-database.cc: Remove special check which gives
6573           a more helpful error message when a modern client is used against a
6574           remote server running Xapian <= 0.9.6.
6576 Wed Jun 15 11:07:19 GMT 2011  Olly Betts <olly@survex.com>
6578         * net/remoteserver.cc: Remove unnecessary call to reopen() - either we
6579           just called it or we're a writable database and it doesn't do
6580           anything.
6582 Wed Jun 15 09:03:06 GMT 2011  Olly Betts <olly@survex.com>
6584         * xapian-core/backends/remote/remote-database.cc,
6585           xapian-core/common/remote-database.h: Factor out the code to decode
6586           the returned stats into a new apply_stats_update() method.
6588 Wed Jun 15 08:57:12 GMT 2011  Olly Betts <olly@survex.com>
6590         * xapian-core/Makefile.am: Remove check-* from .PHONY as that doesn't
6591           work with a pattern rule.  Fix check-% pattern rule to actually work.
6593 Tue Jun 14 15:11:38 GMT 2011  Olly Betts <olly@survex.com>
6595         * docs/remote_protocol.rst: Fixed typo which reversed the intended
6596           sense.
6598 Tue Jun 14 02:01:42 GMT 2011  Olly Betts <olly@survex.com>
6600         * Makefile.am,configure.ac: Avoid portability warning from automake
6601           about GNU make %-style pattern rules.
6603 Tue Jun 14 01:42:01 GMT 2011  Olly Betts <olly@survex.com>
6605         * configure.ac: Add unnecessary AC_LANG_SOURCE wrapper to shut up
6606           autoconf warning.
6608 Tue Jun 14 01:18:54 GMT 2011  Olly Betts <olly@survex.com>
6610         * configure.ac: Reset LIBRARY_VERSION_INFO to 0:0:0 for the
6611           development series, since the library name is different (it has a
6612           -1.3 suffix).
6614 Mon Jun 13 16:24:20 GMT 2011  Olly Betts <olly@survex.com>
6616         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
6617           docs/deprecation.rst,include/xapian/enquire.h,matcher/multimatch.cc,
6618           net/remoteserver.cc,tests/api_backend.cc: Remove the deprecated
6619           old-style match spy approach of using a MatchDecider.
6621 Mon Jun 13 15:47:57 GMT 2011  Olly Betts <olly@survex.com>
6623         * api/keymaker.cc,docs/deprecation.rst,include/xapian/keymaker.h,
6624           tests/Makefile.am,tests/api_sortingold.cc: Remove deprecated Sorter
6625           class and MultiValueSorter subclass.
6626         * tests/Makefile.mk,tests/perftest/Makefile.mk,
6627           tests/soaktest/Makefile.mk: Make the generated "*_all.h" depend on
6628           the Makefile.am or Makefile.mk which contains the list of files it
6629           is generated from so that it gets regenerated when a file is
6630           removed from that list.
6632 Mon Jun 13 13:18:29 GMT 2011  Olly Betts <olly@survex.com>
6634         * common/omenquireinternal.h: Remove a FIXME - caching the Document
6635           object in MSetItem isn't a replacement for storing the sort_key
6636           now that sort_keys can be computed.
6638 Mon Jun 13 13:07:31 GMT 2011  Olly Betts <olly@survex.com>
6640         * include/xapian/queryparser.h,queryparser/queryparser.cc: Fold the
6641           two forms of QueryParser::add_boolean_prefix() into one method
6642           with a default parameter now that changing the ABI isn't a worry.
6644 Mon Jun 13 12:00:36 GMT 2011  Olly Betts <olly@survex.com>
6646         * docs/deprecation.rst: Non-pythonic iterators have been removed.
6647           (ticket#255)
6649 Mon Jun 13 10:40:30 GMT 2011  Olly Betts <olly@survex.com>
6651         * docs/deprecation.rst: Python Stem_get_available_languages() has now
6652           been removed.
6654 Mon Jun 13 10:38:49 GMT 2011  Olly Betts <olly@survex.com>
6656         * docs/deprecation.rst,include/xapian/enquire.h: Remove deprecated
6657           default value for second parameter to Enquire::set_sort_by_value()
6658           and friends.
6660 Mon Jun 13 09:30:15 GMT 2011  Olly Betts <olly@survex.com>
6662         * api/omdatabase.cc,backends/brass/brass_database.cc,
6663           backends/brass/brass_database.h,backends/chert/chert_database.cc,
6664           backends/chert/chert_database.h,backends/database.cc,
6665           backends/inmemory/inmemory_database.cc,
6666           backends/inmemory/inmemory_database.h,
6667           backends/remote/remote-database.cc,common/,
6668           include/xapian/database.h: Database::reopen() now returns true if
6669           the database may have been reopened.  (ticket#548)
6671 Mon Jun 13 09:01:33 GMT 2011  Olly Betts <olly@survex.com>
6673         * docs/admin_notes.rst: Add note about xapian-chert-update.
6675 Mon Jun 13 08:47:06 GMT 2011  Olly Betts <olly@survex.com>
6677         * bin/xapian-check-flint.cc,bin/xapian-check-flint.h: Remove two
6678           flint-specific files I missed.
6680 Mon Jun 13 08:42:11 GMT 2011  Olly Betts <olly@survex.com>
6682         * HACKING,INSTALL,Makefile.am,api/compactor.cc,api/replication.cc,
6683           backends/Makefile.mk,backends/brass/brass_compact.cc,
6684           backends/chert/chert_compact.cc,backends/databasereplicator.cc,
6685           backends/dbfactory.cc,backends/dir_contents,backends/flint/,
6686           backends/slowvaluelist.h,bin/,common/database.h,common/pretty.h,
6687           common/unaligned.h,configure.ac,docs/,include/xapian/dbfactory.h,
6688           include/xapian/valueiterator.h,include/xapian/version_h.cc,tests/,
6689           tests/harness/,tests/queryparsertest.cc,tests/termgentest.cc,
6690           tests/testdata/flint-0.9.9/,tests/testdata/flint-1.0.1/,
6691           tests/testdata/flint-1.0.2/: Remove flint backend.
6693 Mon Jun 13 06:09:29 GMT 2011  Olly Betts <olly@survex.com>
6695         * bin/Makefile.mk: Remove lingering reference to quartz (rules to
6696           generate man pages for quartzdump, etc).
6698 Mon Jun 13 05:46:00 GMT 2011  Olly Betts <olly@survex.com>
6700         * Makefile.am,tests/Makefile.am: Just use a GNU-make-specific pattern
6701           rules to forward check-* targets from the top level to the tests
6702           subdirectory.  It's clear we aren't keeping the explicit list of
6703           target forwarding rules up to date, and this is just a convenience
6704           so not worth a lot of maintenance effort.
6706 Mon Jun 13 05:01:33 GMT 2011  Olly Betts <olly@survex.com>
6708         * configure.ac: Update version to 1.3.0 and add -1.3 suffix for
6709           library and /xapian-1.3 suffix to include file installation
6710           directory.
6712 Mon Jun 13 04:56:13 GMT 2011  Olly Betts <olly@survex.com>
6714         * unicode/tclUniData.cc: Upgrade to Unicode 6.0.0 (ticket#497).
6715         * tests/api_unicode.cc: Extend testcases to check for assorted changes
6716           and additions in Unicode 6.0.0.
6718 Sun Jun 12 11:54:45 GMT 2011  Olly Betts <olly@survex.com>
6720         * NEWS: Final update for 1.2.6.
6722 Sat Jun 11 10:11:23 GMT 2011  Olly Betts <olly@survex.com>
6724         * api/omdocument.cc: Update LOGCALL(MATCH, ...) to LOGCALL(DB, ...).
6725           Convert LOGLINE() at start of method to LOGCALL().
6727 Sat Jun 11 09:57:00 GMT 2011  Olly Betts <olly@survex.com>
6729         * api/omdatabase.cc: Remove self-assignment check from
6730           Database::operator= since this is an uncommon code path and
6731           RefCntPtr ensures that self-assignment of the internals is
6732           safe.
6734 Sat Jun 11 08:48:10 GMT 2011  Olly Betts <olly@survex.com>
6736         * api/omdatabase.cc,backends/brass/brass_cursor.h,
6737           backends/chert/chert_cursor.h,backends/flint/flint_cursor.h,
6738           backends/flint/flint_table.cc,backends/flint/flint_values.cc,
6739           backends/inmemory/inmemory_database.cc,bin/xapian-check-brass.cc,
6740           bin/xapian-check-chert.cc,bin/xapian-chert-update.cc,
6741           matcher/queryoptimiser.cc,matcher/valuegepostlist.h: Use string() or
6742           std::string() rather than "".
6743         * common/remoteconnection.h,net/tcpserver.cc: Use 2 parameter form of
6744           Error subclass ctors when the context is "".
6745         * api/replication.cc,backends/flint/flint_database.cc,
6746           common/remoteconnection.h,net/replicatetcpclient.cc,
6747           net/replicatetcpserver.cc: Make context parameter of
6748           RemoteConnection ctor optional.
6749         * common/leafpostlist.h: Say 'empty' rather than '""' in a
6750           documentation comment.
6751         * examples/simpleindex.cc: Use '.resize(0)' rather than '= ""'.
6753 Sat Jun 11 07:01:41 GMT 2011  Olly Betts <olly@survex.com>
6755         * api/,backends/brass/,backends/chert/,backends/flint/,
6756           backends/remote/remote-database.cc,common/,include/xapian/,matcher/,
6757           net/remoteserver.cc,net/serialise.cc: Consistently use "slot" in
6758           variable names for value slots, rather than valueno, valno, valueid
6759           or value.  The only exception remaining is a protected member of
6760           Xapian::StringValueRangeProcessor since that's really part of the
6761           public API.
6763 Fri Jun 10 11:55:45 GMT 2011  Olly Betts <olly@survex.com>
6765         * NEWS,configure.ac: Update in preparation for 1.2.6.
6767 Fri Jun 10 09:05:38 GMT 2011  Olly Betts <olly@survex.com>
6769         * examples/NEWS,examples/TODO: Remove files which are unused since the
6770           examples were merged into xapian-core.
6772 Fri Jun 10 09:03:33 GMT 2011  Olly Betts <olly@survex.com>
6774         * Makefile.am: Ship ChangeLog.0 in the tarball.
6776 Fri Jun 10 05:19:24 GMT 2011  Olly Betts <olly@survex.com>
6778         * tests/Makefile.am: Actually include soaktest/Makefile.mk.
6780 Thu Jun 09 23:26:52 GMT 2011  Olly Betts <olly@survex.com>
6782         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Define
6783           XAPIAN_DEPRECATED_CLASS to empty for doxygen.
6785 Thu Jun 09 22:21:29 GMT 2011  Olly Betts <olly@survex.com>
6787         * docs/overview.rst: Document "remote" in stub databases.
6789 Thu Jun 09 15:23:12 GMT 2011  Olly Betts <olly@survex.com>
6791         * HACKING,docs/deprecation.rst,include/xapian/deprecated.h,
6792           include/xapian/keymaker.h: Add XAPIAN_DEPRECATED_CLASS macro
6793           for marking a class as deprecated, so we don't have to call
6794           XAPIAN_DEPRECATED() with no parameters.
6796 Thu Jun 09 14:03:17 GMT 2011  Olly Betts <olly@survex.com>
6798         * HACKING: Clarify wording about PATH.
6800 Thu Jun 09 13:04:53 GMT 2011  Olly Betts <olly@survex.com>
6802         * docs/queryparser.rst,include/xapian/queryparser.h,
6803           queryparser/queryparser.cc,queryparser/queryparser.lemony,
6804           queryparser/queryparser_internal.h,tests/queryparsertest.cc: Add
6805           QueryParser::set_max_wildcard_expansion() method to allow limiting
6806           the number of terms a wildcard can expand to.  Implementation mostly
6807           from a patch by Adam Sjøgren in ticket#350.
6809 Tue Jun 07 23:16:33 GMT 2011  Dan Colish <dcolish@gmail.com>
6811         * backends/brass/brass_changesetapplier.h,
6812           backends/chert/chert_changesetapplier.h,
6813           backends/flint/flint_changesetapplier.h: Remove dead code
6815 Thu Jun 02 13:21:28 GMT 2011  Olly Betts <olly@survex.com>
6817         * AUTHORS: Add recent bug reporters.
6819 Thu Jun 02 11:03:57 GMT 2011  Olly Betts <olly@survex.com>
6821         * queryparser/queryparser.lemony: If default_op is OP_NEAR or
6822           OP_PHRASE then disable stemming of the terms, since we don't index
6823           positional information for stemmed terms by default.
6824         * tests/queryparsertest.cc: Adjust near1 and phrase1 to act as
6825           regression tests for this fix.
6827 Thu Jun 02 02:58:58 GMT 2011  Olly Betts <olly@survex.com>
6829         * backends/brass/brass_spelling.cc,backends/brass/brass_spelling.h,
6830           backends/chert/chert_spelling.cc,backends/chert/chert_spelling.h,
6831           backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h:
6832           Fix bug Nikita Smetanin spotted with adding a word which has the
6833           same trigram in an even number of times.
6834         * tests/api_spelling.cc: Add regression test spell8.
6836 Wed Jun 01 14:11:38 GMT 2011  Olly Betts <olly@survex.com>
6838         * backends/flint_lock.cc: Kill the child process which holds the lock
6839           with SIGKILL as that can't be ignored, whereas SIGHUP can be in some
6840           cases it seems.
6842 Wed Jun 01 12:12:14 GMT 2011  Olly Betts <olly@survex.com>
6844         * docs/quickstartexpand.cc.html,docs/quickstartindex.cc.html,
6845           docs/quickstartsearch.cc.html: Reinstate the old HTML versions
6846           of these files.
6848 Wed Jun 01 12:09:55 GMT 2011  Olly Betts <olly@survex.com>
6850         * docs/queryparser.rst,docs/remote_protocol.rst: Fix literal hard
6851           spaces in input to just be spaces.
6853 Wed Jun 01 12:06:26 GMT 2011  Olly Betts <olly@survex.com>
6855         * docs/quickstart.rst: Fix sub-heading run in to previous paragraph.
6857 Wed Jun 01 12:04:52 GMT 2011  Olly Betts <olly@survex.com>
6859         * docs/remote.rst: Replace out-dated list of xapian-tcpsrv's command
6860           line options with a reference to --help and the man page.  Tweak
6861           wording in a few places.
6863 Wed Jun 01 11:54:37 GMT 2011  Olly Betts <olly@survex.com>
6865         * docs/overview.rst: Change omrset to rset.  Remove some bogus `` left
6866           over from fixing definition list formatting.
6868 Wed Jun 01 11:38:09 GMT 2011  Olly Betts <olly@survex.com>
6870         * docs/stemming.rst: Comment out bogus claim that there are stopword
6871           lists in xapian-data (the lack of stopword lists is already
6872           ticket#269).
6874 Wed Jun 01 11:29:58 GMT 2011  Olly Betts <olly@survex.com>
6876         * docs/matcherdesign.rst,docs/stemming.rst: Convert more arrows to
6877           Unicode.
6878         * docs/stemming.rst: Fix some missing paragraph breaks.
6880 Wed Jun 01 11:18:25 GMT 2011  Olly Betts <olly@survex.com>
6882         * docs/intro_ir.rst: Use Unicode right arrow.
6884 Wed Jun 01 10:38:27 GMT 2011  Olly Betts <olly@survex.com>
6886         * docs/: Revert quickstart*.cc.html to being HTML rather than .rst as
6887           the .rst version lose the syntax highlighting.  Update svn:ignore.
6889 Wed Jun 01 10:27:11 GMT 2011  Olly Betts <olly@survex.com>
6891         * docs/intro_ir.rst: Sort out the remaining formatting issues.
6893 Wed Jun 01 08:05:05 GMT 2011  Olly Betts <olly@survex.com>
6895         * docs/intro_ir.rst: More markup fixes.
6897 Wed Jun 01 06:16:56 GMT 2011  Olly Betts <olly@survex.com>
6899         * docs/tests.rst: Use generated contents list instead of manual one.
6901 Wed Jun 01 06:16:13 GMT 2011  Olly Betts <olly@survex.com>
6903         * docs/index.rst,docs/internals.rst: Centre links at top; Sort out
6904           <hr> to be full width.
6906 Wed Jun 01 03:23:20 GMT 2011  Olly Betts <olly@survex.com>
6908         * docs/bm25.rst: Sort out inline equations.
6910 Tue May 31 15:21:10 GMT 2011  Olly Betts <olly@survex.com>
6912         * docs/spelling.rst: Add link to Omega documentation.
6914 Tue May 31 07:52:19 GMT 2011  Olly Betts <olly@survex.com>
6916         * docs/overview.rst,docs/quickstart.rst,docs/remote_protocol.rst: More
6917           .rst formatting fixes.
6919 Tue May 31 05:02:48 GMT 2011  Olly Betts <olly@survex.com>
6921         * docs/overview.rst: More .rst fixes.
6923 Tue May 31 04:32:52 GMT 2011  Olly Betts <olly@survex.com>
6925         * docs/: More .rst fixes.
6927 Tue May 31 04:11:27 GMT 2011  Olly Betts <olly@survex.com>
6929         * docs/Makefile.am,docs/code_structure.rst: Revert code_structure.html
6930           conversion - this file is generated by a script.
6932 Tue May 31 03:56:39 GMT 2011  Olly Betts <olly@survex.com>
6934         * docs/install.rst,docs/stemming.rst,docs/tests.rst: Fix up some .rst
6935           conversion issues.
6937 Tue May 31 03:36:49 GMT 2011  Dan Colish <dcolish@gmail.com>
6939         * docs/remote_protocol.rst docs/quickstart.rst docs/remote.rst
6940         docs/internals.rst docs/scalability.rst
6941         docs/quickstartsearch.cc.rst
6942         docs/bm25.rst docs/install.rst docs/quickstartindex.cc.rst
6943         docs/index.rst docs/matcherdesign.rst docs/quickstartexpand.cc.rst
6944         docs/queryparser.rst docs/stemming.rst docs/intro_ir.rst
6945         docs/code_structure.rst docs/Makefile.am docs/tests.rst
6946         docs/overview.rst: Bulk port all remaining documentation to RST.
6948 Sun May 29 07:04:42 GMT 2011  Olly Betts <olly@survex.com>
6950         * docs/postingsource.rst: Add PostingSource example.  (ticket#503)
6952 Sun May 29 05:19:40 GMT 2011  Olly Betts <olly@survex.com>
6954         * include/xapian/database.h: Add @exception InvalidArgumentError for
6955           Database::get_document() (ticket#542).
6957 Fri May 27 05:36:28 GMT 2011  Olly Betts <olly@survex.com>
6959         * NEWS: Update from ChangeLog.
6961 Thu May 26 02:44:07 GMT 2011  Olly Betts <olly@survex.com>
6963         * include/xapian/queryparser.h: FIXME:1.1.3 -> FIXME:1.3.
6965 Wed May 25 14:58:37 GMT 2011  Olly Betts <olly@survex.com>
6967         * docs/queryparser.html: Document the precedence order of operators.
6969 Fri May 20 04:13:54 GMT 2011  Olly Betts <olly@survex.com>
6971         * examples/simpleindex.cc: Add short description to usage message.
6973 Tue May 17 21:44:55 GMT 2011  Olly Betts <olly@survex.com>
6975         * docs/scalability.html: Bring up-to-date.
6977 Wed May 11 01:34:34 GMT 2011  Olly Betts <olly@survex.com>
6979         * AUTHORS: Add Scott Zhang for mingw fixes.
6981 Wed May 11 01:30:54 GMT 2011  Olly Betts <olly@survex.com>
6983         * net/progclient.cc,net/tcpserver.cc: Need <cstdio> for sprintf on
6984           __WIN32__ and cygwin.
6986 Wed May 11 01:22:07 GMT 2011  Olly Betts <olly@survex.com>
6988         * configure.ac: Define __MSVCRT_VERSION__ to 0x0601 under mingw so
6989           we get _ftime64().
6991 Wed May 11 01:19:14 GMT 2011  Olly Betts <olly@survex.com>
6993         * common/closefrom.cc,common/closefrom.h: We don't need closefrom()
6994           under __WIN32__ currently, so disable it there as it doesn't
6995           compile under mingw.
6997 Mon May 09 20:13:17 GMT 2011  Olly Betts <olly@survex.com>
6999         * examples/delve.cc: Report has_positions().
7001 Thu Apr 07 05:38:36 GMT 2011  Dan Colish <dcolish@gmail.com>
7003         * matcher/phrasepostlist.cc, matcher/queryoptimiser.cc,
7004           matcher/exactphrasepostlist.cc, matcher/exactphrasepostlist.h,
7005           matcher/phrasepostlist.h: Remove temporary vector in queryoptimiser
7006           and replace with iterators.
7008 Wed Apr 06 10:27:41 GMT 2011  Richard Boulton <richard@tartarus.org>
7010         * docs/admin_notes.rst: Remove the word "also", which makes sense
7011           when read in context of the previous section, but is confusing if
7012           the paragraph is read standalone, and isn't necessary.
7014 Mon Apr 04 14:41:33 GMT 2011  Olly Betts <olly@survex.com>
7016         * NEWS: Final update for 1.2.5.
7018 Mon Apr 04 14:06:56 GMT 2011  Olly Betts <olly@survex.com>
7020         * backends/brass/brass_version.cc: Remove ? from comment - the brass
7021           version change is definitely going to be in 1.2.5.
7023 Mon Apr 04 13:57:23 GMT 2011  Olly Betts <olly@survex.com>
7025         * NEWS: Bump release date.
7027 Sat Mar 26 14:49:41 GMT 2011  Olly Betts <olly@survex.com>
7029         * INSTALL: Fix typo in previous commit.
7031 Sat Mar 26 14:03:15 GMT 2011  Olly Betts <olly@survex.com>
7033         * INSTALL: Note how to build for a non-default arch on a multi-arch
7034           platform.
7036 Sat Mar 26 13:22:49 GMT 2011  Olly Betts <olly@survex.com>
7038         * NEWS,configure.ac: Update for 1.2.5.
7040 Sat Mar 26 12:28:38 GMT 2011  Olly Betts <olly@survex.com>
7042         * AUTHORS: Update.
7044 Sat Mar 26 10:33:19 GMT 2011  Olly Betts <olly@survex.com>
7046         * backends/brass/brass_postlist.cc,backends/brass/brass_postlist.h,
7047           backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h,
7048           backends/inmemory/inmemory_database.h: Address issues highlighted
7049           by clang++ warnings.
7051 Fri Mar 25 05:36:41 GMT 2011  Olly Betts <olly@survex.com>
7053         * docs/tests.html: Slight tweak to improve up-to-date-ness, but more
7054           work would be useful.
7056 Fri Mar 25 05:30:56 GMT 2011  Olly Betts <olly@survex.com>
7058         * docs/matcherdesign.html: Update - quite a bit has changed in the
7059           matcher since this was last updated!
7061 Thu Mar 24 23:31:57 GMT 2011  Olly Betts <olly@survex.com>
7063         * api/replication.cc,common/replication.h: Pass reader_close_time as
7064           double everywhere, rather than truncating it to int.  Include
7065           reader_close_time parameters in debug logging.  Document
7066           reader_close_time in doxygen comments.
7068 Tue Mar 22 15:36:25 GMT 2011  Dan Colish <dcolish@gmail.com>
7070         * backends/brass/brass_database.h:
7071           Remove left over copyright.
7073 Tue Mar 22 04:54:12 GMT 2011  Dan Colish <dcolish@gmail.com>
7075         * backends/brass/brass_btreebase.cc,backends/chert/chert_btreebase.cc,
7076           backends/flint/flint_btreebase.cc:
7077           Correct comments for which revision is packed when writing base files
7079 Tue Mar 22 03:18:19 GMT 2011  Dan Colish <dcolish@gmail.com>
7081         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7082           backends/flint/flint_database.cc,include/xapian/database.h:
7083           Remove FIXME and comments for DB_OVERWRITE.
7085 Tue Mar 22 01:18:38 GMT 2011  Dan Colish <dcolish@gmail.com>
7087         * backends/brass/,backends/chert/chert_database.cc,
7088           backends/flint/flint_database.cc,tests/api_replicate.cc:
7089           Clean up changesets when replicating. Add test coverage for this
7090           feature. Allow XAPIAN_MAX_CHANGESETS to be altered without reopening
7091           the database. Closes Ticket #278.
7093 Mon Mar 21 01:50:41 GMT 2011  Olly Betts <olly@survex.com>
7095         * docs/bm25.html: Add a link to the 1976 Robertson/Sparck Jones paper.
7097 Wed Mar 16 05:56:58 GMT 2011  Dan Colish <dcolish@gmail.com>
7099         * bin/xapian-check-flint.cc: Initialize did and current_wdf to prevent
7100           uninitalized usage and compiler warnings.
7102 Mon Mar 14 03:20:18 GMT 2011  Olly Betts <olly@survex.com>
7104         * common/debuglog.cc,common/debuglog.h: Rename indent member to
7105           indent_level so it doesn't clash with indent() method.
7107 Mon Mar 14 02:44:24 GMT 2011  Olly Betts <olly@survex.com>
7109         * common/debuglog.cc,common/debuglog.h: Use an integer counter for the
7110           indent rather than a std::string which we add/remove spaces to/from.
7111           This is cleaner, but also there seems to be an issue with having a
7112           std::string member in a global static object on OS X.
7114 Fri Mar 11 01:12:04 GMT 2011  Olly Betts <olly@survex.com>
7116         * HACKING: Document using '{ }' rather than ';' for empty loop bodies.
7118 Fri Mar 11 01:02:47 GMT 2011  Olly Betts <olly@survex.com>
7120         * HACKING: Remove bogus ; after method definition in code example.
7122 Fri Mar 11 00:07:22 GMT 2011  Olly Betts <olly@survex.com>
7124         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7125           backends/flint/flint_database.cc: Factor out literal constant as
7126           MAX_OPEN_RETRIES.
7128 Wed Mar 09 14:54:06 GMT 2011  Olly Betts <olly@survex.com>
7130         * tests/api_anydb.cc: Improve the new testcases a bit.
7132 Wed Mar 09 14:11:59 GMT 2011  Olly Betts <olly@survex.com>
7134         * api/omenquire.cc,common/esetinternal.h,common/omenquireinternal.h,
7135           expand/esetinternal.cc,expand/expandweight.cc,
7136           include/xapian/enquire.h,tests/api_anydb.cc: Enquire::get_eset() now
7137           accepts a min_wt argument to allow the minimum wanted weight to be
7138           specified.  Default is 0, which gives the previous behaviour.
7140 Wed Mar 09 00:00:25 GMT 2011  Olly Betts <olly@survex.com>
7142         * include/xapian/termiterator.h: Fix misspelling in doc comment.
7144 Tue Mar 08 06:58:14 GMT 2011  Olly Betts <olly@survex.com>
7146         * backends/brass/brass_table.cc,backends/brass/brass_table.h,
7147           backends/chert/chert_table.cc,backends/chert/chert_table.h,
7148           backends/flint/flint_table.cc,backends/flint/flint_table.h: Use
7149           defined constant BLOCK_CAPACITY instead of hardcoded 4 (ticket#536).
7151 Tue Mar 08 05:56:42 GMT 2011  Olly Betts <olly@survex.com>
7153         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
7154           backends/flint/flint_table.cc: If we try to delete an old base file
7155           and it isn't there, just continue rather than throwing an exception.
7156           We wanted to get rid of it anyway, and it may be NFS issues telling
7157           us the wrong thing.  In particular, DatabaseCoruptError was rather
7158           a pessimistic assessment.
7160 Tue Mar 08 05:55:48 GMT 2011  Olly Betts <olly@survex.com>
7162         * common/io_utils.h: Note that io_unlink() may return false when it
7163           should have returned true on NFS.
7165 Sun Mar 06 23:25:47 GMT 2011  Olly Betts <olly@survex.com>
7167         * common/io_utils.cc,common/io_utils.h: Add io_unlink().
7168         * backends/brass/brass_database.cc,backends/brass/brass_table.cc,
7169           backends/chert/chert_database.cc,backends/chert/chert_table.cc,
7170           backends/flint/flint_database.cc,backends/flint/flint_table.cc:
7171           Use io_unlink() instead of sys_unlink_if_exists().
7173 Sun Mar 06 22:26:36 GMT 2011  Olly Betts <olly@survex.com>
7175         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7176           backends/flint/flint_database.cc: If DANGEROUS mode is turned on,
7177           then actually set the flag for this in replication changes files
7178           (the reader will currently throw an exception, but that's better
7179           than quietly handling them incorrectly).
7181 Sat Mar 05 12:58:31 GMT 2011  Olly Betts <olly@survex.com>
7183         * NEWS: Update from ChangeLog.
7185 Sat Mar 05 12:49:16 GMT 2011  Olly Betts <olly@survex.com>
7187         * NEWS: Fix a few typos.
7189 Sat Mar 05 06:19:25 GMT 2011  Olly Betts <olly@survex.com>
7191         * NEWS: Fix typo in old entry.
7193 Sat Mar 05 06:16:41 GMT 2011  Olly Betts <olly@survex.com>
7195         * common/remoteconnection.h: Internal doc comment improvements: Fix
7196           typo, finish truncated sentence, wrap lines to 80 columns.
7198 Sat Mar 05 02:59:35 GMT 2011  Olly Betts <olly@survex.com>
7200         * bin/xapian-replicate.cc: Make sure port number is specified.  Add
7201           "(required)" after --host and --port in help.
7203 Sat Mar 05 02:50:04 GMT 2011  Olly Betts <olly@survex.com>
7205         * docs/replication.rst: Mention new defaulting of -m.
7207 Sat Mar 05 02:44:37 GMT 2011  Olly Betts <olly@survex.com>
7209         * bin/xapian-replicate.cc: If --master isn't specified, default to
7210           DATABASE.
7212 Sat Mar 05 00:14:21 GMT 2011  Olly Betts <olly@survex.com>
7214         * bin/xapian-replicate.cc: Give an error if the host isn't set, rather
7215           than trying to connect to an empty hostname, which gives the error
7216           "Couldn't resolve host  (Unknown server error)", which might confuse
7217           if you fail to notice the double space and realise what it means.
7219 Fri Mar 04 17:20:13 GMT 2011  Richard Boulton <richard@tartarus.org>
7221         * docs/replication.rst: Update documentation to make it clear that
7222           users shouldn't try to create the destination directory for
7223           replication themselves.
7225 Thu Mar 03 11:10:10 GMT 2011  Olly Betts <olly@survex.com>
7227         * docs/intro_ir.html: Fix typo in author's name.
7229 Thu Mar 03 11:06:30 GMT 2011  Olly Betts <olly@survex.com>
7231         * docs/intro_ir.html: Update link to a paper.  Update text about book
7232           "to be published in 2008".
7234 Tue Mar 01 11:39:40 GMT 2011  Olly Betts <olly@survex.com>
7236         * NEWS: Update from ChangeLog.
7238 Mon Feb 28 12:40:24 GMT 2011  Olly Betts <olly@survex.com>
7240         * matcher/multimatch.cc: Avoid leaking postlist tree if an exception
7241           is thrown during the match.
7243 Wed Feb 23 15:26:56 GMT 2011  Olly Betts <olly@survex.com>
7245         * docs/Makefile.am,docs/index.html: Process collapsing.rst and link
7246           it into the documentation.
7248 Wed Feb 23 15:22:06 GMT 2011  Olly Betts <olly@survex.com>
7250         * docs/collapsing.rst: Add missing document (for some reason this file
7251           was empty in SVN, but present in my tree under a different name, and
7252           not checked in).
7254 Mon Feb 21 14:49:06 GMT 2011  Olly Betts <olly@survex.com>
7256         * docs/deprecation.rst: Deprecate MSet.items and ESet.items.
7258 Mon Feb 21 14:06:21 GMT 2011  Olly Betts <olly@survex.com>
7260         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7261           backends/flint/flint_database.cc,common/remoteconnection.h,
7262           net/remoteconnection.cc: Pass a file descriptor to
7263           RemoteConnection::send_file() to avoid a race between the caller
7264           checking if a file exists and send_file() trying to open it to send
7265           it.
7267 Mon Feb 21 13:50:06 GMT 2011  Olly Betts <olly@survex.com>
7269         * queryparser/lemon.c: Fix issues detected by DACA cppcheck run on the
7270           Debian archive.
7272 Mon Feb 21 13:30:55 GMT 2011  Olly Betts <olly@survex.com>
7274         * tests/api_anydb.cc: Fix spaceterms1 which was never running one part
7275           of the testcase (and had been that way for years).  Fix an
7276           off-by-one error in the enabled code.
7278 Mon Feb 21 13:05:36 GMT 2011  Olly Betts <olly@survex.com>
7280         * tests/api_backend.cc: Add some test coverage for
7281           DatabaseModifiedError in get_mset().
7283 Mon Feb 21 12:03:35 GMT 2011  Olly Betts <olly@survex.com>
7285         * NEWS: Fix typo in old entry.
7287 Mon Feb 21 11:36:07 GMT 2011  Olly Betts <olly@survex.com>
7289         * examples/quest.cc: Report any spelling correction (requires the
7290           database contains spelling data of course).
7292 Wed Feb 16 13:11:03 GMT 2011  Olly Betts <olly@survex.com>
7294         * include/xapian/enquire.h: Add doxygen markup so alternative
7295           overloaded forms of Enquire::get_mset() appear in the API
7296           documentation.
7298 Wed Feb 09 14:24:57 GMT 2011  Olly Betts <olly@survex.com>
7300         * docs/admin_notes.rst: Up to darte for 1.2.5.  Minor wording
7301           improvements.  Mention copydatabase --no-renumber.
7303 Wed Feb 09 14:06:55 GMT 2011  Olly Betts <olly@survex.com>
7305         * examples/copydatabase.cc: Add --no-renumber option.
7307 Tue Feb 01 11:17:58 GMT 2011  Olly Betts <olly@survex.com>
7309         * configure.ac: -Wstrict-null-sentinel was added in GCC 4.0.1 so
7310           doesn't work with GCC 4.0.0.  For simplicity, only enable it for
7311           GCC >= 4.1.
7313 Tue Feb  1 08:22:52 GMT 2011  Olly Betts <olly@survex.com>
7315         * docs/deprecation.rst: Add $set{spelling,true}.
7317 Thu Jan 20 14:52:53 GMT 2011  Olly Betts <olly@survex.com>
7319         * backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h,
7320           backends/flint/flint_table.cc: Don't read the bitmaps from the base
7321           files when opening a database for reading (cross-port of equivalent
7322           change to chert).
7324 Thu Jan 20 14:37:10 GMT 2011  Olly Betts <olly@survex.com>
7326         * backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
7327           backends/brass/brass_table.cc: Don't read the bitmaps from the base
7328           files when opening a database for reading (cross-port of equivalent
7329           change to chert).
7331 Thu Jan 20 14:21:10 GMT 2011  Olly Betts <olly@survex.com>
7333         * backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h,
7334           backends/chert/chert_table.cc: Don't read the bitmaps from the base
7335           files when opening a database for reading.
7337 Thu Jan 20 01:57:02 GMT 2011  Olly Betts <olly@survex.com>
7339         * backends/brass/brass_database.cc: Optimise not to update doclength
7340           when it hasn't changed (cross-port of equivalent change to chert).
7342 Thu Jan 20 01:36:51 GMT 2011  Olly Betts <olly@survex.com>
7344         * backends/chert/chert_database.cc: Optimise not to update doclength
7345           when it hasn't changed.
7347 Wed Jan 19 03:50:18 GMT 2011  Olly Betts <olly@survex.com>
7349         * tests/api_compact.cc: Close ofstream objects used to write out stub
7350           files for testing before we run the actual compaction, to avoid
7351           issues on Microsoft Windows (ticket#525).
7353 Wed Jan 19 01:01:38 GMT 2011  Olly Betts <olly@survex.com>
7355         * HACKING: Snapshots and releases are now bootstrapped with autoconf
7356           2.68 and libtool 2.4.  Prune information about reasons for needing
7357           really old autotools versions when there's a reason to need a newer
7358           version anyway.
7360 Sat Jan 15 11:10:26 GMT 2011  Olly Betts <olly@survex.com>
7362         * NEWS: Update from ChangeLog and 1.0.23.
7364 Sat Jan 15 10:28:10 GMT 2011  Olly Betts <olly@survex.com>
7366         * bin/xapian-chert-update.cc: Fix to handle value slot entries in the
7367           termlist table.
7369 Wed Jan 12 23:49:21 GMT 2011  Olly Betts <olly@survex.com>
7371         * bin/xapian-chert-update.cc: Adjust keys for doclength chunks too.
7373 Wed Jan 12 13:37:30 GMT 2011  Olly Betts <olly@survex.com>
7375         * AUTHORS,bin/xapian-chert-update.cc: Fix to also rewrite docids in
7376           value chunk keys (reported by Luca Barbieri on xapian-discuss).
7378 Tue Jan 11 08:41:02 GMT 2011  Olly Betts <olly@survex.com>
7380         * docs/deprecation.rst: Note removal of if idx in mset.
7382 Tue Jan 11 08:30:29 GMT 2011  Olly Betts <olly@survex.com>
7384         * docs/deprecation.rst: PostingSource now offers a replacement for
7385           Enquire::set_bias().
7387 Mon Jan 10 09:40:24 GMT 2011  Olly Betts <olly@survex.com>
7389         * api/compactor.cc: Add missing header <ctime> for time() (ticket#530).
7391 Sun Jan 09 23:14:02 GMT 2011  Olly Betts <olly@survex.com>
7393         * api/compactor.cc: Use msvc_posix_rename() under __WIN32__ to
7394           atomically update stub file after compaction (ticket#525).
7396 Thu Dec 23 13:00:43 GMT 2010  Olly Betts <olly@survex.com>
7398         * queryparser/queryparser.lemony: Whitespace consistency tweak.
7400 Thu Dec 23 11:01:26 GMT 2010  Olly Betts <olly@survex.com>
7402         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Handle
7403           NEAR/<offset> and ADJ/<offset> where offset isn't an integer the same
7404           way at the end of the query as in the middle.
7406 Tue Dec 21 10:28:08 GMT 2010  Olly Betts <olly@survex.com>
7408         * net/tcpserver.cc: If we can't bind to the specified port because it
7409           is a privileged one, exit with code 77 (EX_NOPERM) to make it easier
7410           to automatically handle failure when starting the server from a
7411           script.
7413 Tue Dec 21 07:43:52 GMT 2010  Olly Betts <olly@survex.com>
7415         * docs/index.html: Add link to main website.
7417 Tue Dec 21 07:40:57 GMT 2010  Olly Betts <olly@survex.com>
7419         * docs/index.html,docs/overview.html: Update links to wiki.xapian.org
7420           to point to trac.xapian.org/wiki instead.
7422 Mon Dec 20 10:02:06 GMT 2010  Richard Boulton <richard@tartarus.org>
7424         * docs/deprecation.rst: Add note about botched removal of python's
7425           Enquire.get_matching_terms (now fully removed).
7427 Sun Dec 19 12:40:12 GMT 2010  Olly Betts <olly@survex.com>
7429         * NEWS: Update release date.
7431 Sat Dec 18 13:17:52 GMT 2010  Olly Betts <olly@survex.com>
7433         * NEWS,configure.ac: Update for 1.2.4.
7435 Wed Dec 15 11:56:22 GMT 2010  Olly Betts <olly@survex.com>
7437         * NEWS: Update.
7439 Tue Dec 14 12:46:36 GMT 2010  Olly Betts <olly@survex.com>
7441         * HACKING,tests/runtest.in: Add XAPIAN_TESTSUITE_LD_PRELOAD hook to
7442           allow libeatmydata to easily be used when running the testsuite.
7444 Mon Dec 13 14:28:19 GMT 2010  Olly Betts <olly@survex.com>
7446         * include/xapian/: Make it more explicitly clear that PostingIterator,
7447           PositionIterator, and TermIterator's skip_to methods advance (and
7448           hence shouldn't be expected to allow you to "rewind" the stream).
7450 Mon Dec 13 14:18:18 GMT 2010  Olly Betts <olly@survex.com>
7452         * include/xapian/database.h: "network databases" -> "remote databases".
7454 Mon Dec 13 14:10:08 GMT 2010  Olly Betts <olly@survex.com>
7456         * net/remoteserver.cc: If the message parameter only contains a
7457           string then we can just use it as is.
7459 Mon Dec 13 13:34:30 GMT 2010  Olly Betts <olly@survex.com>
7461         * backends/remote/remote-database.cc,common/remote-database.h,
7462           common/remoteprotocol.h,common/remoteserver.h,
7463           docs/remote_protocol.html,net/remoteserver.cc,tests/api_metadata.cc:
7464           Add support for iterating metadata keys with the remote backend.
7465           This change necessitated a minor version bump in the remote protocol.
7467 Sun Dec 12 12:24:48 GMT 2010  Olly Betts <olly@survex.com>
7469         * weight/tradweight.cc: Fix calculation order to avoid inconsistent
7470           weights due to rounding for TradWeight(0).
7471         * tests/api_backend.cc: Add regression test tradweight2.
7473 Sat Dec 11 11:38:32 GMT 2010  Olly Betts <olly@survex.com>
7475         * AUTHORS: Update thanks list with bug reporters and patch submitters.
7477 Thu Dec 09 03:59:42 GMT 2010  Olly Betts <olly@survex.com>
7479         * NEWS: Update from ChangeLog.
7481 Thu Dec 09 03:58:20 GMT 2010  Olly Betts <olly@survex.com>
7483         * net/remoteconnection.cc: Add FIXME note about using sendfile() or
7484           similar.
7486 Tue Dec 07 10:16:31 GMT 2010  Olly Betts <olly@survex.com>
7488         * tests/queryparsertest.cc: Note 1.0.x version #515 was fixed in.
7490 Mon Dec 06 05:26:01 GMT 2010  Olly Betts <olly@survex.com>
7492         * net/replicatetcpclient.cc: Rearrange loop to avoid duplicating code.
7494 Mon Dec 06 01:39:23 GMT 2010  Olly Betts <olly@survex.com>
7496         * queryparser/queryparser.lemony: Fix typo so we test for OP_NEAR or
7497           OP_PHRASE, not twice for OP_NEAR, which fixes a bug with not setting
7498           the correct window size for default_op of OP_PHRASE in some cases.
7499           Factor out the "is_positional(op)" test into an inlined function to
7500           help avoid repeating this error.
7501         * tests/queryparsertest.cc: Add regression test coverage.
7503 Mon Dec 06 01:01:03 GMT 2010  Olly Betts <olly@survex.com>
7505         * tests/queryparsertest.cc: Add coverage for OP_PHRASE as default_op.
7507 Sun Dec 05 12:35:32 GMT 2010  Olly Betts <olly@survex.com>
7509         * weight/bm25weight.cc: Fix calculation order to avoid inconsistent
7510           weights due to rounding when BM25Weight is used with certain
7511           non-default parameter combinations.
7512         * tests/api_backend.cc: Add regression test bm25weight2.
7514 Sun Dec 05 12:10:36 GMT 2010  Olly Betts <olly@survex.com>
7516         * backends/chert/chert_compact.cc: Add FIXME comment regarding
7517           resolve_duplicate_metadata() getting called multiple times for the
7518           same key in multipass mode.
7520 Sun Dec 05 12:09:32 GMT 2010  Olly Betts <olly@survex.com>
7522         * include/xapian/compactor.h: Add documentation comments.
7524 Sun Dec 05 04:54:03 GMT 2010  Olly Betts <olly@survex.com>
7526         * HACKING: Omega now wants libmagic-dev (though it's optional
7527           currently).
7529 Wed Nov 17 10:56:10 GMT 2010  Olly Betts <olly@survex.com>
7531         * examples/quest.cc: Add command line options to allow prefixes to
7532           be specified for the QueryParser.
7534 Tue Nov 09 23:18:36 GMT 2010  Olly Betts <olly@survex.com>
7536         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
7537           backends/flint/flint_compact.cc: Fix access to empty priority_queue
7538           while merging synonyms (found with _GLIBCXX_DEBUG).
7540 Tue Nov 09 03:23:49 GMT 2010  Olly Betts <olly@survex.com>
7542         * HACKING: Drop list of platforms valgrind supports, as it takes
7543           effort to keep up to date.  People can check valgrind.org for an
7544           accurate list of currently supported platforms.
7546 Sun Nov 07 14:13:44 GMT 2010  Olly Betts <olly@survex.com>
7548         * api/compactor.cc,backends/brass/brass_compact.cc,
7549           backends/chert/chert_compact.cc,backends/flint/flint_compact.cc,
7550           bin/xapian-compact.cc,include/xapian/compactor.h:
7551           Compactor::resolve_duplicate_metadata() callback method is now passed
7552           an array of std::string plus the array length, which allows for more
7553           efficient merging that the series of pairwise merges which was
7554           required before.
7556 Mon Nov 01 14:47:37 GMT 2010  Richard Boulton <richard@tartarus.org>
7558         * matcher/multimatch.cc,matcher/multixorpostlist.cc,
7559           matcher/multixorpostlist.h: Add debugging to print out the
7560           postlist description after recalculation of maxweight, and to
7561           MultiXorPostList methods.  Fix problem shown by soaktest where
7562           the matcher was not told to recalculate the maxweight after a
7563           MultiXorPostList child reached end, which was causing an
7564           assertion failure in debug builds.  (This could also have been
7565           causing some performance problems, but I have not measurements.)
7567 Mon Nov 01 10:34:30 GMT 2010  Richard Boulton <richard@tartarus.org>
7569         * tests/soaktest/soaktest_queries.cc: Fix compilation: call c_str()
7570           on argument to atoi, now that util.h no longer defines a string
7571           wrapper.
7573 Sun Oct 31 10:51:12 GMT 2010  Olly Betts <olly@survex.com>
7575         * queryparser/queryparser.lemony: Don't delete this in TermGroup, etc
7576           until after we have successfully constructed the Query object to
7577           return to avoid a double free in the Query construction throws an
7578           exception.  Fixes ticket#515.
7580 Fri Oct 29 12:46:15 GMT 2010  Olly Betts <olly@survex.com>
7582         * tests/api_backend.cc: Fix comment typo in previous commit.
7584 Fri Oct 29 12:32:47 GMT 2010  Olly Betts <olly@survex.com>
7586         * matcher/multimatch.cc: Empty query now return MSet with firstitem
7587           set correctly.
7588         * tests/api_backend.cc: Extend msetfirst2 to be a regression test for
7589           this issue too.
7591 Fri Oct 29 12:13:51 GMT 2010  Olly Betts <olly@survex.com>
7593         * api/omenquire.cc: If first is larger than get_doccount() then clamp
7594           it to avid pointlessly trying to allocate far too much memory.
7595         * tests/api_backend.cc: Regression test msetfirst2.
7597 Thu Oct 21 09:38:44 GMT 2010  Richard Boulton <richard@tartarus.org>
7599         * tests/Makefile.am: Add zlib-vg.c to distribution tarballs.
7601 Wed Oct 20 11:38:13 GMT 2010  Olly Betts <olly@survex.com>
7603         * examples/delve.cc: Add '-z' option to count zero-length documents.
7605 Mon Oct 18 10:35:46 GMT 2010  Olly Betts <olly@survex.com>
7607         * bin/xapian-compact.cc: Add --quiet/-q option to suppress progress
7608           output.
7610 Thu Oct 14 03:51:02 GMT 2010  Olly Betts <olly@survex.com>
7612         * tests/api_unicode.cc: Fix typo in previous change.
7614 Thu Oct 14 01:16:31 GMT 2010  Olly Betts <olly@survex.com>
7616         * tests/api_unicode.cc: Expand tested cases to (hopefully) cover all
7617           conditional combinations in unicode/utf8itor.cc.
7619 Mon Oct 11 11:46:30 GMT 2010  Olly Betts <olly@survex.com>
7621         * Makefile.am: Remove xapian-config on "make distclean" rather than
7622           "make clean", since configure builds it.  Never remove man pages
7623           under "make clean".
7625 Mon Oct 11 11:41:32 GMT 2010  Olly Betts <olly@survex.com>
7627         * tests/Makefile.am: Fix typo - CLEAN_FILES should be CLEANFILES.
7628           This means that where zlib-vg.so is used, it now gets cleaned up.
7630 Sun Oct 10 11:00:31 GMT 2010  Olly Betts <olly@survex.com>
7632         * Makefile.am: Fix so coverage-reconfigure-maintainer-mode adds
7633           --enable-maintainer-mode rather than coverage-reconfigure!
7635 Sun Oct 10 10:45:38 GMT 2010  Olly Betts <olly@survex.com>
7637         * Makefile.am: Factor out COVERAGE_CONFIGURE to make future changes
7638           easier.
7640 Sun Oct 10 09:59:01 GMT 2010  Olly Betts <olly@survex.com>
7642         * Makefile.am: Add coverage-reconfigure-maintainer-mode target which
7643           is just like coverage-reconfigure except it also passes
7644           --enable-maintainer-mode.
7646 Sun Oct 10 07:29:23 GMT 2010  Olly Betts <olly@survex.com>
7648         * tests/api_nodb.cc: Check Stem("none") too.  Check
7649           Stem("").get_description().  No need to check a bogus language name
7650           here as stemlangs2 now does that.
7652 Sun Oct 10 07:22:41 GMT 2010  Olly Betts <olly@survex.com>
7654         * tests/api_stem.cc: Test an invalid languages name with each possible
7655           byte value at the start to improve coverage of the switch in
7656           api/stem.cc.
7658 Sun Oct 10 06:14:42 GMT 2010  Olly Betts <olly@survex.com>
7660         * unicode/utf8itor.cc: Correct comments and use bad_cont() in another
7661           place (no change to code once inlining is taken into account).
7663 Sun Oct 10 06:11:05 GMT 2010  Olly Betts <olly@survex.com>
7665         * tests/api_unicode.cc: Improve test coverage for
7666           Utf8Iterator::calculate_sequence_length().
7668 Sun Oct 10 00:33:49 GMT 2010  Olly Betts <olly@survex.com>
7670         * tests/api_unicode.cc: Tweak testcase utf8iterator2 to add coverage
7671           for Utf8Iterator(const char *).
7673 Fri Oct 08 13:10:08 GMT 2010  Olly Betts <olly@survex.com>
7675         * matcher/selectpostlist.cc,matcher/selectpostlist.h: Implement
7676           SelectPostList::check() so that check() on OP_NEAR and OP_PHRASE
7677           subqueries won't end up checking potentially huge numbers of
7678           documents.
7680 Fri Oct 08 12:29:50 GMT 2010  Olly Betts <olly@survex.com>
7682         * tests/api_backend.cc: Add testcase phrase3 to provide coverage for
7683           SelectPostList::skip_to().
7685 Fri Oct 08 10:36:18 GMT 2010  Olly Betts <olly@survex.com>
7687         * matcher/orpostlist.cc,matcher/orpostlist.h: Fix performance
7688           regression in some cases caused by the introduction of
7689           OrPostList::check().
7691 Thu Oct 07 03:53:11 GMT 2010  Olly Betts <olly@survex.com>
7693         * tests/api_anydb.cc: Clear tout before each iteration in scaleweight1.
7695 Wed Oct 06 14:30:34 GMT 2010  Olly Betts <olly@survex.com>
7697         * NEWS: Update from 1.0.22 and ChangeLog.
7699 Wed Oct 06 12:39:36 GMT 2010  Olly Betts <olly@survex.com>
7701         * tests/queryparsertest.cc: Add two more testcases for having a phrase
7702           generator between prefix and term.
7704 Wed Oct 06 12:37:32 GMT 2010  Olly Betts <olly@survex.com>
7706         * include/xapian/matchspy.h,include/xapian/postingsource.h: Remove
7707           "experimental" marker from PostingSource and ValueCountMatchSpy.
7709 Wed Oct 06 12:31:01 GMT 2010  Olly Betts <olly@survex.com>
7711         * docs/index.html: Add links to replication and facets documents, and
7712           fix typo in serialistion document link.
7714 Wed Oct 06 12:12:51 GMT 2010  Olly Betts <olly@survex.com>
7716         * docs/Makefile.am,docs/categorisation.rst,docs/facets.rst: Change the
7717           categorisation document to talk about facets, since that's the
7718           terminology that seems to be most widely used these days, and
7719           "categorisation" can also mean automatically assigning categories to
7720           documents.  Fix up references to features which were removed or
7721           changed during development.
7723 Wed Oct 06 12:11:21 GMT 2010  Olly Betts <olly@survex.com>
7725         * docs/internals.html: Add link to replication protocol.
7727 Wed Oct 06 08:36:50 GMT 2010  Olly Betts <olly@survex.com>
7729         * examples/simplesearch.cc: Fix cut and paste error in usage message.
7731 Wed Oct 06 00:12:40 GMT 2010  Olly Betts <olly@survex.com>
7733         * api/emptypostlist.cc,matcher/queryoptimiser.cc: In the query
7734           optimiser, use value range bounds to check for value ranges which
7735           must be empty.
7736         * tests/api_opvalue.cc: Add testcase valuerange5 to check this
7737           optimisation actually fires.
7739 Tue Oct 05 03:43:02 GMT 2010  Olly Betts <olly@survex.com>
7741         * examples/simplesearch.cc: Fix cut-and-paste error - --version now
7742           reports simplesearch not simpleexpand.
7744 Tue Oct 05 03:41:48 GMT 2010  Olly Betts <olly@survex.com>
7746         * docs/categorisation.rst: Update to use the current ValueCountMatchSpy
7747           API.
7749 Fri Oct 01 09:53:50 GMT 2010  Olly Betts <olly@survex.com>
7751         * configure.ac: Simplify defaulting enable_documentation a little.
7753 Fri Oct 01 09:29:03 GMT 2010  Olly Betts <olly@survex.com>
7755         * configure.ac: Default enable_sse to yes to fix build on x86.
7757 Fri Oct 01 09:10:34 GMT 2010  Olly Betts <olly@survex.com>
7759         * configure.ac: Fix typo in SSE handling code which stopped it
7760           defaulting as intended.
7762 Fri Oct 01 02:00:49 GMT 2010  Olly Betts <olly@survex.com>
7764         * NEWS: Update from ChangeLog.
7766 Fri Oct 01 01:54:41 GMT 2010  Olly Betts <olly@survex.com>
7768         * backends/Makefile.mk,backends/brass/brass_compact.cc,
7769           backends/byte_length_strings.h,backends/chert/chert_compact.cc,
7770           backends/flint/flint_compact.cc: Factor out 3 copies of
7771           ByteLengthPrefixedStringItor and ByteLengthPrefixedStringItorGt into
7772           their own file.
7774 Fri Oct 01 01:28:57 GMT 2010  Olly Betts <olly@survex.com>
7776         * backends/Makefile.mk,backends/brass/brass_compact.cc,
7777           backends/brass/brass_spelling.cc,backends/chert/chert_compact.cc,
7778           backends/chert/chert_spelling.cc,backends/flint/flint_compact.cc,
7779           backends/flint/flint_spelling.cc,
7780           backends/prefix_compressed_strings.h: Factor out 6 copies of
7781           PrefixCompressedStringItor and PrefixCompressedStringWriter and 3
7782           copies of PrefixCompressedStringItorGt into their own file.
7784 Thu Sep 30 15:28:49 GMT 2010  Olly Betts <olly@survex.com>
7786         * NEWS: Update from ChangeLog.
7788 Thu Sep 30 15:26:52 GMT 2010  Olly Betts <olly@survex.com>
7790         * api/compactor.cc: Need utils.h for stat with a std::string argument.
7792 Thu Sep 30 15:23:50 GMT 2010  Olly Betts <olly@survex.com>
7794         * tests/api_compact.cc: Remove unwanted check left over from cut and
7795           pasting code from a previous testcase.
7797 Thu Sep 30 15:21:02 GMT 2010  Olly Betts <olly@survex.com>
7799         * tests/api_compact.cc: Convert compaction tests to use the new API.
7801 Thu Sep 30 14:54:27 GMT 2010  Olly Betts <olly@survex.com>
7803         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
7804           backends/flint/flint_compact.cc: Correct filenames in @file doxygen
7805           comments.
7807 Thu Sep 30 14:46:02 GMT 2010  Olly Betts <olly@survex.com>
7809         * api/compactor.cc: Use the ChertVersion, etc classes to make sure that
7810           the new database has a new UUID rather than creating a "donor"
7811           database and then stealing its version/uuid file.
7813 Thu Sep 30 14:33:46 GMT 2010  Olly Betts <olly@survex.com>
7815         * api/Makefile.mk,api/compactor.cc,backends/brass/Makefile.mk,
7816           backends/brass/brass_compact.cc,backends/brass/brass_compact.h,
7817           backends/chert/Makefile.mk,backends/chert/chert_compact.cc,
7818           backends/chert/chert_compact.h,backends/flint/Makefile.mk,
7819           backends/flint/flint_compact.cc,backends/flint/flint_compact.h,bin/,
7820           include/Makefile.mk,include/xapian.h,include/xapian/compactor.h:
7821           Convert compaction code into a Xapian::Compactor class, and make
7822           xapian-compact a simple wrapper around this new class.  (ticket#175)
7824 Thu Sep 30 06:16:11 GMT 2010  Olly Betts <olly@survex.com>
7826         * bin/: Eliminate uses of <iostream> in bin/xapian-compact-*.cc.
7828 Thu Sep 30 05:44:06 GMT 2010  Olly Betts <olly@survex.com>
7830         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc,
7831           bin/xapian-compact-flint.cc: Fix indentation of table data
7832           arrays.
7834 Thu Sep 30 05:32:44 GMT 2010  Olly Betts <olly@survex.com>
7836         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Only
7837           skip producing an output table when there are only some inputs
7838           for the termlist - for spellings and synonyms, we want to produce
7839           an output in this case.
7840         * tests/api_compact.cc: Add regression test compactmissingtables1.
7842 Wed Sep 29 11:13:18 GMT 2010  Olly Betts <olly@survex.com>
7844         * common/document.h: Initialise docid to 0 when creating a document
7845           from scratch, as documented.
7846         * tests/api_none.cc: Add regression test document2.
7847         * include/xapian/document.h: Document that return value is unreliable
7848           in this case prior to the next 1.0 and 1.2 releases.
7850 Wed Sep 29 07:06:10 GMT 2010  Olly Betts <olly@survex.com>
7852         * configure.ac: FreeBSD and OpenBSD don't need explicit dependency
7853           libraries, so set link_all_deplibs_CXX=no there.
7855 Wed Sep 29 07:04:20 GMT 2010  Olly Betts <olly@survex.com>
7857         * xapian-config.in: Just check @link_all_deplibs_CXX@ which we adjust
7858           in configure rather than duplicating configure's list of platforms
7859           where explicit dependencies aren't required.
7861 Mon Sep 27 04:28:46 GMT 2010  Olly Betts <olly@survex.com>
7863         * bin/xapian-compact.cc: Convert error messages to stdout/stderr to
7864           exceptions, in preparation for turning this into an API class.
7866 Mon Sep 27 03:50:54 GMT 2010  Olly Betts <olly@survex.com>
7868         * bin/xapian-compact.cc: Add support for compacting to a stub database,
7869           which can be one of the inputs (for atomic update).
7870         * tests/api_compact.cc: Add testcases compactstub3 and compactstub4 as
7871           feature tests for this.
7873 Mon Sep 27 03:50:00 GMT 2010  Olly Betts <olly@survex.com>
7875         * tests/api_compact.cc: Suppress output from xapian-compact in
7876           compactstub2 (which I'd disabled for debugging).
7878 Sun Sep 26 13:59:20 GMT 2010  Olly Betts <olly@survex.com>
7880         * bin/xapian-compact.cc: Extend to work on stub database files too.
7881         * tests/api_compact.cc: Add feature test compactstub2.
7883 Sun Sep 26 13:28:45 GMT 2010  Olly Betts <olly@survex.com>
7885         * bin/xapian-compact.cc: Inputs can now be stub database directories,
7886           in which case the databases in the stub are used as inputs.
7887         * tests/api_compact.cc: Add feature test compactstub1.
7889 Sun Sep 26 11:11:49 GMT 2010  Olly Betts <olly@survex.com>
7891         * xapian-config.in: Add --static option which makes other options
7892           report values for static linking.
7894 Tue Sep 21 10:43:17 GMT 2010  Olly Betts <olly@survex.com>
7896         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow phrase
7897           generators between a probabilistic prefix and the term itself.
7899 Thu Sep 09 11:18:47 GMT 2010  Olly Betts <olly@survex.com>
7901         * INSTALL: Raise recommended GCC version from 3.3 to 4.1, since that's
7902           the oldest we regularly test with.
7904 Thu Sep 09 11:14:03 GMT 2010  Olly Betts <olly@survex.com>
7906         * HACKING: Debian etch was discontinued 6 months ago, so it's no longer
7907           useful to document packages for developing Xapian on it.
7909 Thu Sep 09 03:15:00 GMT 2010  Olly Betts <olly@survex.com>
7911         * docs/deprecation.rst: Actually write down our guidelines for
7912           supporting other software.
7914 Thu Sep 09 00:20:16 GMT 2010  Olly Betts <olly@survex.com>
7916         * docs/replication.rst: Adjust text to reflect conclusions about the
7917           issues in ticket#434.
7919 Thu Sep 09 00:10:03 GMT 2010  Olly Betts <olly@survex.com>
7921         * docs/replication.rst: Don't suggest using a symlink to switch between
7922           databases - a stub database is much better.
7924 Thu Sep 09 00:07:02 GMT 2010  Olly Betts <olly@survex.com>
7926         * docs/replication.rst: Assume xapian tools are installed on PATH not
7927           in the current directory for example commands.
7929 Thu Sep 09 00:05:22 GMT 2010  Olly Betts <olly@survex.com>
7931         * docs/replication.rst: Fix a typo.
7933 Mon Sep 06 07:10:02 GMT 2010  Olly Betts <olly@survex.com>
7935         * configure.ac: Add support for --enable-sse=sse and --enable-sse=sse2
7936           to allow control of which SSE instructions to use.
7938 Fri Sep 03 13:08:53 GMT 2010  Richard Boulton <richard@tartarus.org>
7940         * bin/xapian-replicate.cc: If a fullcopy was attempted, but was not
7941           put live, display an explanatory message (if verbose is true).
7943 Fri Sep 03 05:54:09 GMT 2010  Olly Betts <olly@survex.com>
7945         * backends/chert/chert_modifiedpostlist.h,
7946           backends/flint/flint_modifiedpostlist.h,tests/: Fixes required to
7947           build on OpenBSD 4.5 with GCC 3.3.5.
7949 Tue Aug 31 14:37:44 GMT 2010  Olly Betts <olly@survex.com>
7951         * include/xapian/queryparser.h: Document cases where FLAG_WILDCARD and
7952           FLAG_PARTIAL aren't currently supported.
7954 Mon Aug 30 06:27:46 GMT 2010  Olly Betts <olly@survex.com>
7956         * configure.ac: Actaully make autoconf 2.64 a hard minimum requirement
7957           (as HACKING already documented).
7958         * HACKING,NEWS,configure.ac: autoconf 2.67 is now used to bootstrap.
7960 Mon Aug 30 06:26:03 GMT 2010  Olly Betts <olly@survex.com>
7962         * NEWS: Update from ChangeLog.
7964 Mon Aug 30 06:04:13 GMT 2010  Olly Betts <olly@survex.com>
7966         * configure.ac: Enable use of SSE maths on x86 by default with Sun's
7967           compiler.
7969 Sat Aug 28 16:04:45 GMT 2010  Olly Betts <olly@survex.com>
7971         * api/omdatabase.cc,include/xapian/queryparser.h,
7972           tests/harness/backendmanager.h: None of the workarounds we have
7973           which are conditional on __SUNPRO_CC are needed with Sun C++
7974           version 5.8, so only enable them for older versions (which will
7975           mean we can drop these workarounds with confidence once older
7976           versions are dropped by Sun/Oracle, or once we can find out that
7977           they have been - currently all I've managed to discover is that
7978           version 5.0 reached "end of service life" in 6/2006).
7980 Sat Aug 28 15:33:14 GMT 2010  Olly Betts <olly@survex.com>
7982         * configure.ac,tests/api_replicate.cc: Solaris < 10 doesn't have
7983           setenv() so we have to use putenv() there.  And the value we set
7984           XAPIAN_MAX_CHANGESETS to is always constant currently, so set it
7985           using constant strings generated by a macro.
7987 Sat Aug 28 12:35:25 GMT 2010  Olly Betts <olly@survex.com>
7989         * configure.ac: Beef up the test for whether -lm is required and add
7990           a special case to force it to be for Sun's C++ compiler - there's
7991           some interaction with libtool and/or shared objects which means
7992           that the configure test doesn't think -lm is needed here when it
7993           is.
7995 Sat Aug 28 10:59:11 GMT 2010  Olly Betts <olly@survex.com>
7997         * api/matchspy.cc,common/const_database_wrapper.cc,net/tcpclient.cc,
7998           tests/api_replicate.cc,tests/harness/backendmanager_remotetcp.cc,
7999           tests/harness/testsuite.cc,tests/perftest/runprocess.cc,
8000           unicode/utf8itor.cc: Fix to compile with Sun C++.
8002 Sat Aug 28 10:30:08 GMT 2010  Olly Betts <olly@survex.com>
8004         * HACKING,PLATFORMS: Move PLATFORMS information to the wiki and replace
8005           with a pointer.
8007 Sat Aug 28 03:15:47 GMT 2010  Olly Betts <olly@survex.com>
8009         * matcher/queryoptimiser.cc: Need to avoid excess precision on m68k
8010           when targeting models 68010, 68020, 68030 as well as 68000.
8012 Tue Aug 24 05:54:27 GMT 2010  Olly Betts <olly@survex.com>
8014         * configure.ac: Update for 1.2.3.
8016 Tue Aug 24 05:52:47 GMT 2010  Olly Betts <olly@survex.com>
8018         * NEWS: Update from ChangeLog.
8020 Mon Aug 16 16:46:19 GMT 2010  Olly Betts <olly@survex.com>
8022         * common/closefrom.cc: Use /dev/fd on Mac OS X.
8024 Mon Aug 16 16:18:26 GMT 2010  Olly Betts <olly@survex.com>
8026         * common/closefrom.cc: Need safeerrno.h and safeunistd.h on non-Linux
8027           platforms too.
8029 Mon Aug 16 15:47:48 GMT 2010  Olly Betts <olly@survex.com>
8031         * backends/flint_lock.cc,common/Makefile.mk,common/closefrom.cc,
8032           common/closefrom.h,configure.ac,net/progclient.cc: Use closefrom()
8033           if available, otherwise provide our own implementation (optimised
8034           to some extent for many platforms).
8036 Sun Aug 15 12:43:04 GMT 2010  Olly Betts <olly@survex.com>
8038         * AUTHORS: Update.
8040 Sun Aug 15 12:11:26 GMT 2010  Olly Betts <olly@survex.com>
8042         * xapian-core.spec.in: Update BuildRequires to specify libuuid-devel
8043           instead of e2fsprogs-devel.
8045 Sun Aug 15 11:30:05 GMT 2010  Olly Betts <olly@survex.com>
8047         * HACKING,INSTALL,common/safeuuid.h,common/win32_uuid.cc,
8048           common/win32_uuid.h,configure.ac: libuuid moved from e2fsprogs to
8049           util-linux-ng about a year ago, so update documentation, comments,
8050           and configure error messages to reflect this.  Issue reported by
8051           David Jeske on xapian-devel list.
8053 Sun Aug 15 07:58:51 GMT 2010  Olly Betts <olly@survex.com>
8055         * tests/harness/backendmanager_remotetcp.cc: Under __WIN32__, we need
8056           <io.h> for _open_osfhandle() (ticket#495).
8058 Sun Aug 15 07:10:25 GMT 2010  Olly Betts <olly@survex.com>
8060         * common/realtime.h: MSVC doesn't cope with a prototype at function
8061           scope with a global namespace qualification (ticket#495).
8063 Wed Aug 04 10:44:08 GMT 2010  Olly Betts <olly@survex.com>
8065         * backends/flint_lock.cc,backends/multi/multi_alltermslist.cc,
8066           bin/xapian-chert-update.cc,queryparser/termgenerator.cc,
8067           queryparser/termgenerator_internal.cc: Fix more incorrect @file
8068           directives.
8070 Wed Aug 04 09:19:10 GMT 2010  Olly Betts <olly@survex.com>
8072         * matcher/localsubmatch.h,queryparser/termgenerator_internal.h: Fix
8073           incorrect @file doxygen directives.
8075 Tue Aug 03 14:42:56 GMT 2010  Olly Betts <olly@survex.com>
8077         * tests/harness/fdtracker.h: Fix filename in @file.
8079 Tue Aug 03 14:32:45 GMT 2010  Olly Betts <olly@survex.com>
8081         * common/contiguousalldocspostlist.h,common/unaligned.h: Fix include
8082           guards to match header filename (cosmetic issues only).
8084 Mon Aug 02 12:38:59 GMT 2010  Olly Betts <olly@survex.com>
8086         * backends/brass/brass_table.cc,backends/brass/brass_values.cc,
8087           backends/chert/chert_table.cc,backends/chert/chert_values.cc,
8088           backends/flint/flint_alldocspostlist.cc,
8089           backends/remote/remote-document.cc,matcher/multimatch.cc,
8090           matcher/remotesubmatch.cc,net/progclient.cc: Use new Literal()
8091           feature in debug logging of function calls.
8093 Mon Aug 02 12:08:42 GMT 2010  Olly Betts <olly@survex.com>
8095         * common/pretty.h: Add Literal() class to allow bypassing the pretty
8096           printer for interspersing literal strings.
8098 Sun Aug 01 10:19:38 GMT 2010  Olly Betts <olly@survex.com>
8100         * api/omdatabase.cc: Database::get_spelling_suggestion() will now
8101           suggest a correction even if the passed word is in the dictionary,
8102           provided the correction has at least the same frequency.  Partly
8103           addresses #225.
8104         * queryparser/queryparser.lemony: Check spelling even if term is in
8105           the database.
8106         * docs/spelling.rst: Update to reflect these changes.
8107         * tests/api_spelling.cc,tests/queryparsertest.cc: Add test coverage for
8108           these changes.
8110 Tue Jul 27 15:24:56 GMT 2010  Tim Brody <tdb2@ecs.soton.ac.uk>
8112         * xapian-core.spec.in: Add xapian-metadata and cmake related files to
8113           RPM packaging.
8115 Thu Jul 22 07:13:12 GMT 2010  Olly Betts <olly@survex.com>
8117         * net/remoteconnection.cc: Wrap line.
8119 Thu Jul 22 07:11:23 GMT 2010  Olly Betts <olly@survex.com>
8121         * common/remoteserver.h,net/remoteserver.cc: Pass 1.0 for the end time
8122           when relaying a NetworkTimeoutError, not RealTime::now() - any time
8123           in the past will do, we just want the operation to time out if it
8124           would block.  Removed related FIXME which is already resolved.
8126 Wed Jul 21 18:00:08 GMT 2010  Olly Betts <olly@survex.com>
8128         * unicode/tclUniData.cc: Fix comment - this is Unicode 5.2 data, not
8129           5.1.
8131 Thu Jul 15 13:45:05 GMT 2010  Olly Betts <olly@survex.com>
8133         * common/realtime.h:Explicitly specify global namespace for
8134           xapian_sleep_milliseconds prototype as MSVC seems to need this.
8136 Thu Jul 15 13:03:13 GMT 2010  Olly Betts <olly@survex.com>
8138         * queryparser/queryparser.lemony: Fix handling of groups of terms which
8139           are all stopwords - in situations where this causes a problem we now
8140           disable stopword checks for such groups.  (ticket#245)
8141         * tests/queryparsertest.cc: Add regression testcases.
8143 Thu Jul 15 08:13:03 GMT 2010  Olly Betts <olly@survex.com>
8145         * common/fileutils.cc: Fix reversed memcmp() test.
8147 Sun Jul 11 14:59:06 GMT 2010  Olly Betts <olly@survex.com>
8149         * common/fileutils.cc: Factor out UNCW path check into a helper
8150           function.
8152 Sun Jul 11 14:56:27 GMT 2010  Olly Betts <olly@survex.com>
8154         * common/fileutils.cc,tests/Makefile.am,tests/unittest.cc: Move the
8155           tests of resolve_relative_path() into a new "unittest" program so
8156           they actually are run by "make check".  (ticket#243)
8158 Sun Jul 11 13:14:24 GMT 2010  Olly Betts <olly@survex.com>
8160         * common/fileutils.cc: Support the \\?\ path syntax.
8162 Sat Jul 10 15:49:08 GMT 2010  Olly Betts <olly@survex.com>
8164         * common/fileutils.cc,common/fileutils.h: Fix resolve_relative_path()
8165           to handle UNC paths.
8167 Sat Jul 10 15:27:48 GMT 2010  Olly Betts <olly@survex.com>
8169         * common/fileutils.cc: -D__WIN32__ on the g++ command line works for
8170           testing on Linux, so no need to have that in the code.  Add a couple
8171           of UNC path test cases which pass, and a commented-out one which
8172           fails.
8174 Sat Jul 10 14:58:35 GMT 2010  Olly Betts <olly@survex.com>
8176         * common/fileutils.cc,common/fileutils.h: We use these routines to
8177           resolve a relative path (in a stub database file) in terms of a
8178           second path (the filename of that file), so just instead a
8179           routine to do exactly that, which is easier to code and more
8180           efficient.  The new implementation fixes several bugs with
8181           Microsoft Windows paths.  Some testcases (currently not used)
8182           are now present in fileutils.cc (ticket#243).
8183         * backends/dbfactory.cc: Use the new API.
8185 Fri Jul 09 07:42:31 GMT 2010  Olly Betts <olly@survex.com>
8187         * tests/perftest/perftest.cc: I missed a use of atoi() on std::string
8188           but just call .cstr() on the string instead of dragging in utils.h.
8190 Fri Jul 09 04:39:40 GMT 2010  Olly Betts <olly@survex.com>
8192         * common/utils.cc,common/utils.h: Remove unused std::string to const
8193           char * wrappers for standard functions, and remove the only use of
8194           rmdir()'s wrapper.
8196 Thu Jul 08 15:18:04 GMT 2010  Olly Betts <olly@survex.com>
8198         * api/omenquire.cc: Xapian::ESet is a reference counted handle, so it
8199           is efficient to return by value - remove FIXME which suggests we
8200           should avoid doing so.
8202 Thu Jul 08 15:17:20 GMT 2010  Olly Betts <olly@survex.com>
8204         * api/omqueryinternal.cc: Update FIXMEs - it's too late to fix stuff
8205           in 1.1.x!
8207 Thu Jul 08 15:13:47 GMT 2010  Olly Betts <olly@survex.com>
8209         * api/omenquire.cc: Remove FIXMEs about debug logging which have been
8210           addressed by the fairly recent debug logging improvements.
8212 Thu Jul 08 15:07:07 GMT 2010  Olly Betts <olly@survex.com>
8214         * api/keymaker.cc: Fix comment typos.
8216 Thu Jul 08 14:50:59 GMT 2010  Olly Betts <olly@survex.com>
8218         * api/replication.cc,backends/brass/,backends/chert/,
8219           backends/dbfactory_remote.cc,backends/flint/,
8220           backends/remote/remote-database.cc,bin/xapian-progsrv.cc,
8221           bin/xapian-tcpsrv.cc,common/,net/,tests/perftest/perftest.cc,
8222           tests/perftest/perftest.h: Replace use of OmTime with a double
8223           holding a count in seconds since the epoch.
8225 Thu Jul 08 12:35:40 GMT 2010  Olly Betts <olly@survex.com>
8227         * net/tcpclient.cc: Retry select() if it fails with EINTR while waiting
8228           for connect(), and discriminate cases with same failure message to
8229           aid debugging.
8231 Thu Jul 08 05:09:18 GMT 2010  Olly Betts <olly@survex.com>
8233         * queryparser/queryparser.lemony: Remove comment left over from the
8234           "boolean exclusive" work.
8236 Wed Jul 07 13:18:17 GMT 2010  Olly Betts <olly@survex.com>
8238         * include/xapian/types.h: Fix documentation comment for Xapian::timeout
8239           type - it holds a time interval in milliseconds not microseconds
8240           (the API docs for the methods which use it explicitly document this
8241           correctly).
8243 Tue Jul 06 15:17:09 GMT 2010  Olly Betts <olly@survex.com>
8245         * tests/queryparsertest.cc: Fix formatting.
8247 Tue Jul 06 14:13:03 GMT 2010  Olly Betts <olly@survex.com>
8249         * tests/perftest/perftest.cc: Use str(OmTime::as_double()) rather than
8250           trying to assemble a string of a floating point number from strings
8251           of the sec and usec values.
8253 Tue Jul 06 14:03:30 GMT 2010  Olly Betts <olly@survex.com>
8255         * common/debuglog.h,common/remote-database.h: Remove unused '#include
8256           "omtime.h"'.
8257         * backends/remote/remote-database.cc: Add explicit '#include
8258           "omtime.h"'.
8260 Mon Jul 05 11:40:42 GMT 2010  Olly Betts <olly@survex.com>
8262         * queryparser/queryparser.lemony: Restore iterator to start of
8263           where we tried to parse a range if we decide it might be a filter
8264           term instead.  Clear the error if we decide it is a filter.
8265         * tests/queryparsertest.cc: Fix expected test output from
8266           qp_value_range4 testcase.
8268 Mon Jul 05 06:46:16 GMT 2010  Olly Betts <olly@survex.com>
8270         * queryparser/queryparser.lemony: Fix to be smarter about handling a
8271           boolean filter term containing ".." in the presence of
8272           valuerangeprocessors.
8273         * tests/queryparsertest.cc: Add regression test qp_value_range4.
8275 Mon Jul 05 04:10:08 GMT 2010  Olly Betts <olly@survex.com>
8277         * queryparser/queryparser.lemony,queryparser/queryparser.lt: Clean up
8278           how value ranges are handled to do the checking of the range in the
8279           lexer, which then passes a single token (RANGE) to the parser
8280           (instead of a RANGE_START token which is always followed by a
8281           RANGE_END token).
8283 Fri Jul 02 12:32:37 GMT 2010  Olly Betts <olly@survex.com>
8285         * configure.ac: Don't pass -mtune=generic unless GCC >= 4.2 is in use
8286           (ticket#492).
8288 Wed Jun 30 10:54:15 GMT 2010  Olly Betts <olly@survex.com>
8290         * backends/brass/brass_postlist.cc: Remove unnecessary NULL check.
8291           Identified by Coverity's Scan.
8292         * backends/chert/chert_postlist.cc: Same change for chert.
8294 Tue Jun 29 12:17:16 GMT 2010  Olly Betts <olly@survex.com>
8296         * backends/brass/brass_chunkedlisttable.h,
8297           backends/chert/chert_chunkedlisttable.h: Remove unused files.
8299 Sun Jun 27 04:31:06 GMT 2010  Olly Betts <olly@survex.com>
8301         * NEWS: Update for 1.2.2.
8303 Sun Jun 27 04:22:28 GMT 2010  Olly Betts <olly@survex.com>
8305         * examples/delve.cc: Show the database's UUID.
8307 Sun Jun 27 03:30:16 GMT 2010  Olly Betts <olly@survex.com>
8309         * NEWS.SKELETON: Add "tools" section.
8311 Sun Jun 27 03:03:57 GMT 2010  Olly Betts <olly@survex.com>
8313         * configure.ac: Update for 1.2.2.
8315 Sat Jun 26 15:55:45 GMT 2010  Olly Betts <olly@survex.com>
8317         * NEWS: Create from ChangeLog.
8319 Sat Jun 26 15:36:37 GMT 2010  Olly Betts <olly@survex.com>
8321         * NEWS.SKELETON: Add template for NEWS entry.
8323 Sat Jun 26 11:09:03 GMT 2010  Olly Betts <olly@survex.com>
8325         * backends/brass/brass_table.cc: Sync the table right after the base
8326           file, which allows more time for the table changes to be written,
8327           and doing the sync together may be more efficient with some Linux
8328           kernel versions.
8329         * backends/chert/chert_table.cc: Same change for chert.
8331 Sat Jun 26 06:46:39 GMT 2010  Olly Betts <olly@survex.com>
8333         * HACKING: Reorder the release checklist.
8335 Thu Jun 24 08:03:18 GMT 2010  Olly Betts <olly@survex.com>
8337           bin/xapian-check.cc: Don't try to check doclengths are consistent
8338           between the postlist and termlist tables if it would use more than
8339           1GB of memory, and handle std::bad_alloc or std::length_error.  This
8340           issue affects sup users, as sup allocates docids such that they are
8341           sparse and large docids can easily occur.
8343 Wed Jun 23 15:38:25 GMT 2010  Olly Betts <olly@survex.com>
8345         * include/xapian/weight.h: Revert Xapian::Weight's copy ctor back
8346           to protected as GCC 4.1 fails to compile subclasses when it is
8347           private (this appears to be a compiler bug).
8349 Wed Jun 23 07:31:19 GMT 2010  Olly Betts <olly@survex.com>
8351         * AUTHORS: Thank people who reported bugs fixed in 1.2.1.
8353 Wed Jun 23 06:52:54 GMT 2010  Olly Betts <olly@survex.com>
8355         * xapian-core.spec.in: Update for 1.2.x - add e2fsprogs-devel to
8356           BuildRequires and add new files.
8358 Wed Jun 23 05:00:34 GMT 2010  Olly Betts <olly@survex.com>
8360         * HACKING: Wording tweak.
8362 Wed Jun 23 04:11:30 GMT 2010  Olly Betts <olly@survex.com>
8364         * tests/harness/testsuite.cc: Need <cstdio> for sprintf().  Fixes
8365           compilation error for some platforms and/or compilers (my guess would
8366           be GCC 4.5 - it builds OK with GCC 4.4).  (ticket#489)
8368 Tue Jun 22 14:45:37 GMT 2010  Olly Betts <olly@survex.com>
8370         * NEWS,configure.ac: Update for 1.2.1.
8372 Mon Jun 21 16:00:22 GMT 2010  Olly Betts <olly@survex.com>
8374         * NEWS: Sync with 1.0.21 and update from ChangeLog.
8376 Mon Jun 21 15:15:50 GMT 2010  Olly Betts <olly@survex.com>
8378         * tests/api_replicate.cc: Unix putenv() requires the buffer passed to
8379           remain valid, as it stores it directly in the environment.  It's
8380           unclear from MSDN if _putenv() does the same, but _putenv_s() must
8381           allocate a copy since it needs to have an '=' in, so use that
8382           instead.  It also has an interface much like setenv(), so the code
8383           looks more similar.
8385 Mon Jun 21 06:07:42 GMT 2010  Olly Betts <olly@survex.com>
8387         * queryparser/queryparser.cc: Add missing const.
8389 Mon Jun 21 05:21:32 GMT 2010  Olly Betts <olly@survex.com>
8391         * queryparser/queryparser.cc: Update to match header ABI fix.
8393 Mon Jun 21 03:52:41 GMT 2010  Olly Betts <olly@survex.com>
8395         * include/xapian/queryparser.h: QueryParser::add_boolean_prefix() now
8396           uses two overloaded forms instead of a default parameter so that we
8397           don't break the ABI.
8399 Fri Jun 18 16:56:59 GMT 2010  Olly Betts <olly@survex.com>
8401         * AUTHORS: Add 1.0.21 bug reporters.
8403 Fri Jun 18 05:52:00 GMT 2010  Olly Betts <olly@survex.com>
8405         * include/xapian/queryparser.h,queryparser/queryparser.cc,
8406           queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
8407           Add new optional parameter to QueryParser::add_boolean_prefix() to
8408           allow the user to indicate a prefix isn't "exclusive" and that
8409           OP_AND should be used to combine multiple instances.  Fixes
8410           ticket#402.  This change should also improve efficiency as it
8411           avoids copying the lists of prefixes and compares them more
8412           efficiently.
8414 Fri Jun 18 02:51:11 GMT 2010  Olly Betts <olly@survex.com>
8416         * include/xapian/queryparser.h: Fix doccomment typo.
8418 Thu Jun 17 14:04:35 GMT 2010  Olly Betts <olly@survex.com>
8420         * include/xapian/weight.h: Xapian::Weight's copy ctor is now
8421           private rather than protected.  This is an API and ABI compatible
8422           change since there's no definition so a subclass which tried to
8423           access it before would fail to link.
8425 Thu Jun 17 13:00:47 GMT 2010  Olly Betts <olly@survex.com>
8427         * queryparser/queryparser.lemony: Missing changes from previous commit.
8429 Thu Jun 17 11:37:30 GMT 2010  Olly Betts <olly@survex.com>
8431         * api/valuerangeproc.cc: Add support for open-ended ranges
8432           (ticket#480).
8433         * docs/queryparser.html,docs/valueranges.rst: Document.
8434         * tests/queryparsertest.cc: Add feature tests.
8436 Thu Jun 17 06:15:24 GMT 2010  Olly Betts <olly@survex.com>
8438         * queryparser/queryparser.lemony: Switch out of IN_GROUP mode when we
8439           emit a WILDCARD.  Fixeds bug#484.
8440         * tests/queryparsertest.cc: Add regression testcase to wildcard1.
8442 Thu Jun 17 02:42:16 GMT 2010  Olly Betts <olly@survex.com>
8444         * tests/api_backend.cc: Rename failedadd1 to failedreplace1 as it's the
8445           replace which fails really.  Add failedreplace2 which adds explicit
8446           coverage for the case of a failed replace when the database isn't
8447           empty to start with.
8449 Tue Jun 15 12:45:36 GMT 2010  Olly Betts <olly@survex.com>
8451         * include/xapian/queryparser.h: Note in the description of
8452           set_database() what the database is used for.
8454 Tue Jun 15 12:26:12 GMT 2010  Olly Betts <olly@survex.com>
8456         * include/xapian/queryparser.h: Fix formatting of bullet list.
8458 Mon Jun 14 17:02:10 GMT 2010  Olly Betts <olly@survex.com>
8460         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
8461           backends/flint/flint_table.cc: cancel() now marks the Btree as
8462           unmodified.
8463         * tests/api_backend.cc: Add regression test failedadd1.
8465 Sun Jun 13 16:07:49 GMT 2010  Olly Betts <olly@survex.com>
8467         * common/Makefile.mk,common/safeuuid.h,configure.ac: Fix mingw build to
8468           use __WIN32__ UUID API.
8470 Sun Jun 13 12:25:24 GMT 2010  Olly Betts <olly@survex.com>
8472         * tests/perftest/freemem.cc: Fix whitespace to match Omega's version.
8474 Sun Jun 13 11:52:24 GMT 2010  Olly Betts <olly@survex.com>
8476         * tests/perftest/freemem.cc: Merge in changes from omega's version.
8477           Clean up whitespace issues.  Put the __WIN32__ case last, as we
8478           tend to elsewhere (since most people reading the code probably
8479           want to see the other version).
8481 Sun Jun 13 11:32:30 GMT 2010  Olly Betts <olly@survex.com>
8483         * tests/perftest/perftest.cc: "MSWin32" isn't the OS name.  Also,
8484           prefer += to build up a string.
8486 Sat Jun 12 09:31:28 GMT 2010  Olly Betts <olly@survex.com>
8488         * tests/api_percentages.cc: Note that 1.0.x returned 4% for the top hit
8489           in topercent5, so checking it gets at least 50% is a regression test
8490           for that issue.
8492 Fri Jun 11 15:38:26 GMT 2010  Olly Betts <olly@survex.com>
8494         * configure.ac: -march=pentium4 doesn't seem to give a measurable
8495           speed-up or size reduction (from Richard's tests) and it carries a
8496           small risk of introducing instructions which don't work on some
8497           obscure CPU which implements SSE2, so drop it.
8499 Fri Jun 11 15:25:16 GMT 2010  Olly Betts <olly@survex.com>
8501         * weight/bm25weight.cc: Stop forcing the wdf_max value to be at least
8502           one in BM25Weight::get_maxpart() - this is no longer needed now we
8503           calculate percentages based on the number of matching subqueries, and
8504           it is more natural for a non-existent term to get zero weight (ditto
8505           for a term which always has wdf = 0.
8506         * tests/api_anydb.cc: Change qterminfo1 to check that a non-existent
8507           term gets zero weight (previously we checked that it got a non-zero
8508           weight, but really we want to ensure that it contributes to
8509           percentage calculations, which new test topercent5 now does).
8511 Fri Jun 11 15:19:29 GMT 2010  Olly Betts <olly@survex.com>
8513         * tests/api_percentages.cc: Add topercent5 testcase which checks that
8514           an OR search including an non-existent term doesn't get 100%, and
8515           that the non-existent term doesn't score more than terms which do
8516           exist.
8518 Fri Jun 11 14:15:07 GMT 2010  Olly Betts <olly@survex.com>
8520         * matcher/queryoptimiser.cc: When using SSE FP instructions on x86 we
8521           can disable the use of volatile since there are no excess precision
8522           issues to work around.
8524 Fri Jun 11 08:21:04 GMT 2010  Olly Betts <olly@survex.com>
8526         * configure.ac: Put SSE flags in AM_CXXFLAGS not CXXFLAGS.
8528 Fri Jun 11 07:08:01 GMT 2010  Olly Betts <olly@survex.com>
8530         * configure.ac: Default to building with SSE FP instructions for x86.
8531           This avoids issues with excess precision and it a bit faster too.
8532           Should fix ticket#487.
8534 Thu Jun 10 15:15:33 GMT 2010  Olly Betts <olly@survex.com>
8536         * NEWS: Update from ChangeLog.
8538 Thu Jun 10 15:00:12 GMT 2010  Olly Betts <olly@survex.com>
8540         * HACKING: Capitalise "Fedora".
8542 Thu Jun 10 11:27:18 GMT 2010  Olly Betts <olly@survex.com>
8544         * INSTALL: Reword UUID section - list platforms where we make use of
8545           built-in APIs first, give the URL for e2fsprogs home page, and
8546           give the package name for Debian and Ubuntu.
8548 Thu Jun 10 01:08:21 GMT 2010  Olly Betts <olly@survex.com>
8550         * HACKING: libtool 2.2.10 used for snapshots and releases now.
8552 Thu Jun 10 00:21:49 GMT 2010  Olly Betts <olly@survex.com>
8554         * configure.ac,include/xapian/version_h.cc,
8555           include/xapian/visibility.h: We do need to have the visibility
8556           annotations on for code compiling against the library, so substitute
8557           the probed value of XAPIAN_ENABLE_VISIBILITY into <xapian/version.h>
8558           so it is available.
8560 Wed Jun 09 11:31:14 GMT 2010  Olly Betts <olly@survex.com>
8562         * INSTALL,configure.ac,include/xapian/visibility.h: Control use of
8563           GCC's visibility support with defined(XAPIAN_ENABLE_VISIBILITY)
8564           instead of !defined(XAPIAN_DISABLE_VISIBILITY), so it is only used
8565           when building the library, not when building code which uses it.
8566           Add check to configure that GCC actually supports visibility for
8567           the platform being built for, which fixes compiler warnings with
8568           platforms which don't (such as Mac OS X and mingw).
8570 Wed Jun 09 11:17:58 GMT 2010  Olly Betts <olly@survex.com>
8572         * HACKING: "private", etc as "access specifiers", not "visibility
8573           specifiers".
8575 Wed Jun 09 11:04:55 GMT 2010  Olly Betts <olly@survex.com>
8577         * HACKING: Note flex and bison needed to build doxygen.
8579 Wed Jun 09 05:25:10 GMT 2010  Olly Betts <olly@survex.com>
8581         * common/win32_uuid.cc: Fix signed/unsigned comparison warning on
8582           mingw.
8584 Tue Jun 08 16:56:26 GMT 2010  Olly Betts <olly@survex.com>
8586         * common/safewinsock2.h: Reword #error to avoid single quote which
8587           gives compilation warning with some GCC 4.2.1 on mingw.
8589 Tue Jun 08 14:32:28 GMT 2010  Olly Betts <olly@survex.com>
8591         * backends/brass/brass_check.h,backends/chert/chert_check.h,
8592           backends/flint/flint_check.h: Remove mutable from std::ostream &
8593           member - mutable doesn't make sense for a reference.
8595 Tue Jun 08 13:03:56 GMT 2010  Olly Betts <olly@survex.com>
8597         * common/,matcher/,weight/weightinternal.cc: Replace the still rather
8598           contorted mechanism for accumulating rel termfreqs for local
8599           databases with a simpler mechanism which is more efficient in both
8600           space and time.
8602 Mon Jun 07 16:31:24 GMT 2010  Olly Betts <olly@survex.com>
8604         * api/maptermlist.h,api/matchspy.cc,api/termlist.cc,backends/brass/,
8605           backends/chert/,backends/flint/,
8606           backends/inmemory/inmemory_database.cc,
8607           backends/inmemory/inmemory_database.h,
8608           backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
8609           backends/remote/net_termlist.cc,backends/remote/net_termlist.h,
8610           common/ortermlist.h,common/termlist.h,expand/ortermlist.cc: Remove
8611           default OrTermList::skip_to() implementation and implement skip_to()
8612           in each class instead, as this allows a slightly more efficient
8613           implementation, and also avoids problems with calling skip_to() as
8614           the first operation for the many subclasses which have a "started"
8615           flag, which OrTermList::skip_to() won't set.
8617 Mon Jun 07 06:08:53 GMT 2010  Olly Betts <olly@survex.com>
8619         * queryparser/queryparser.lemony: Rename TermList class to Terms to
8620           avoid confusion with the TermList typedef used elsewhere.  Add
8621           documentation comments for Terms and TermGroup classes.
8623 Mon Jun 07 02:18:05 GMT 2010  Olly Betts <olly@survex.com>
8625         * backends/brass/: Switch to using io_utils instead of brass_io.
8627 Mon Jun 07 02:16:30 GMT 2010  Olly Betts <olly@survex.com>
8629         * AUTHORS: Add Arvid Ephraim Picciani for help fixing bootstrap for
8630           BusyBox sha1sum.
8632 Mon Jun 07 01:16:57 GMT 2010  Olly Betts <olly@survex.com>
8634         * common/io_utils.cc: Whitespace tweak.
8636 Mon Jun 07 00:58:26 GMT 2010  Olly Betts <olly@survex.com>
8638         * common/io_utils.h: Fix header guard macro name to follow convention.
8640 Sun Jun 06 15:07:55 GMT 2010  Olly Betts <olly@survex.com>
8642         * HACKING,configure.ac: Upgrade to using libtool 2.2.8.
8644 Sun Jun 06 04:34:13 GMT 2010  Olly Betts <olly@survex.com>
8646         * bin/Makefile.mk,configure.ac: Fix build failures with some
8647           combinations of backends disabled (partially addresses ticket#361).
8649 Sat Jun 05 16:30:57 GMT 2010  Olly Betts <olly@survex.com>
8651         * matcher/remotesubmatch.cc: Add missing parameter of
8652           RemoteSubMatch::start_match() to debug logging.
8654 Sat Jun 05 15:03:56 GMT 2010  Olly Betts <olly@survex.com>
8656         * matcher/queryoptimiser.h: Make QueryOptimiser::optimise_query()'s
8657           argument const pointer, since we only pass it to do_subquery() which
8658           takes a const pointer.
8660 Fri Jun 04 16:05:01 GMT 2010  Olly Betts <olly@survex.com>
8662         * common/rset.h: Just keep a reference to the set<docid> from the
8663           Xapian::RSet object rather than copying it (since we now only
8664           create the RSetI object transiently, so the Xapian::RSet object
8665           is definitely valid for its whole lifetime).
8667 Fri Jun 04 15:57:50 GMT 2010  Olly Betts <olly@survex.com>
8669         * api/omenquire.cc,matcher/localmatch.cc,matcher/localmatch.h: Keep
8670           a Xapian::RSet handle in the LocalSubMatch object and only create
8671           an RSetI object briefly in LocalSubMatch::prepare_match().
8673 Fri Jun 04 15:36:45 GMT 2010  Olly Betts <olly@survex.com>
8675         * common/pretty.h: RSetI objects are no longer passed as parameters
8676           or return values, so we no longer need to handle them.
8678 Fri Jun 04 15:28:21 GMT 2010  Olly Betts <olly@survex.com>
8680         * api/omenquire.cc,common/esetinternal.h,common/omenquireinternal.h,
8681           common/rset.h,expand/esetinternal.cc,matcher/rset.cc: RSetI is used
8682           when collating statistics prior to performing the match, and when
8683           generating an ESet.  The second use is entirely unnecessary and just
8684           ends up with us copying the std::set<Xapian::docid> from inside the
8685           Xapian::RSet object, so eliminate it and just use the Xapian::RSet
8686           object directly.  This allows RSetI to be simplified somewhat too.
8688 Fri Jun 04 14:22:38 GMT 2010  Olly Betts <olly@survex.com>
8690         * tests/api_backend.cc: Make arrays static const.
8692 Fri Jun 04 13:25:20 GMT 2010  Olly Betts <olly@survex.com>
8694         * backends/Makefile.mk: Note need to update include/xapian/version_h.cc
8695           when adding a new backend.
8696         * AUTHORS: Thanks to Conrad Hoffmann for pointing this omission out.
8698 Thu Jun 03 15:01:44 GMT 2010  Richard Boulton <richard@tartarus.org>
8700         * tests/soaktest/soaktest_queries.cc: Add missing include of str.h
8702 Thu Jun 03 12:09:35 GMT 2010  Richard Boulton <richard@tartarus.org>
8704         * tests/Makefile.am: Fix building of zlib-vg.so in VPATH builds.
8706 Thu Jun 03 11:49:31 GMT 2010  Richard Boulton <richard@tartarus.org>
8708         * matcher/orpostlist.cc,tests/api_backend.cc: Fix several bugs in
8709           OrPostList::check() (introduced since 1.2.0).  Fixes ticket #485.
8710           Specifically, we have to check a sub-postlist even if head=did,
8711           because we need to know if that sub-postlist is valid.  Also, if
8712           a sub-postlist is not valid, set its head to did+1, since we know
8713           that we're no longer interested in matches before did, and this
8714           allows the OrPostList to assume that the minimum docid of its
8715           children is the current docid.
8717 Thu Jun 03 07:15:24 GMT 2010  Olly Betts <olly@survex.com>
8719         * matcher/: Implement MultiXorPostList which returns correct weights
8720           for XOR of more than 2 subqueries, and drop XorPostList completely.
8721           (ticket#475)
8722         * tests/api_anydb.cc: Add regression test xor2.
8724 Thu Jun 03 04:38:56 GMT 2010  Olly Betts <olly@survex.com>
8726         * tests/api_replicate.cc: Tweak loop end test to be a normal while.
8728 Thu Jun 03 01:22:20 GMT 2010  Olly Betts <olly@survex.com>
8730         * tests/api_stem.cc: Note stem2's feature was backported to 1.0.21.
8732 Tue Jun 01 13:49:44 GMT 2010  Olly Betts <olly@survex.com>
8734         * backends/brass/brass_database.cc,backends/brass/brass_termlist.cc,
8735           backends/chert/chert_database.cc,backends/chert/chert_termlist.cc,
8736           backends/flint/flint_database.cc,backends/flint/flint_document.cc,
8737           backends/flint/flint_termlist.cc,matcher/: Fix LOGCALL_VOID uses
8738           for ctors and dtors to be LOGCALL_CTOR and LOGCALL_DTOR respectively.
8740 Tue Jun 01 13:33:07 GMT 2010  Olly Betts <olly@survex.com>
8742         * api/omdocument.cc: Use LOGCALL_VOID instead of LOGCALL with a void
8743           return type.
8745 Tue Jun 01 13:08:02 GMT 2010  Olly Betts <olly@survex.com>
8747         * matcher/multimatch.cc: The debug logging now copes with being passed
8748           RSet* so remove special casing with ?:.
8750 Tue Jun 01 10:17:27 GMT 2010  Olly Betts <olly@survex.com>
8752         * HACKING,configure.ac: Drop support for --enable-log=profile -
8753           dedicated profiling tools are likely to return more useful results.
8754         * common/debuglog.cc,common/debuglog.h: Rename xapian_debuglogger__
8755           global to xapian_debuglogger_ to avoid reserved __ in the name.
8756         * common/omdebug.cc,common/omdebug.h: Remove in favour of debuglog.h.
8757         * common/pretty.h: New PrettyOStream<> template class for pretty
8758           printing types in debug logs (and eventually the testsuite).
8759         * api/,backends/brass/,backends/chert/,
8760           backends/dbfactory_remote.cc,backends/flint/,
8761           backends/inmemory/inmemory_database.cc,
8762           backends/inmemory/inmemory_document.cc,
8763           backends/inmemory/inmemory_positionlist.cc,
8764           backends/multi/multi_postlist.cc,backends/multi/multi_termlist.cc,
8765           common/,expand/esetinternal.cc,expand/expandweight.cc,
8766           expand/ortermlist.cc,matcher/,net/progclient.cc,
8767           net/remoteconnection.cc: Migrate all remaining uses of omdebug.h to
8768           debuglog.h.  Write more parameters to the debug log.  Retire the
8769           barely used APICALL category and use API instead (reflecting actual
8770           current use).  Add new REPLICA category.  Fix names logged for ctors
8771           and dtors which have "::" in the class name.
8773 Sun May 30 13:45:12 GMT 2010  Olly Betts <olly@survex.com>
8775         * api/omenquire.cc: Remove bogus "Data::" from debug logging for two
8776           methods.
8778 Sun May 30 08:49:22 GMT 2010  Olly Betts <olly@survex.com>
8780         * include/xapian/stem.h,languages/stem.cc: Xapian::Stem now recognises
8781           "nb" and "nn" as codes for the Norwegian stemmer.
8782         * tests/api_stem.cc: Add feature test stem2 to check that these new
8783           codes work.
8785 Sat May 29 10:12:40 GMT 2010  Olly Betts <olly@survex.com>
8787         * common/debuglog.h: Add overload of operator| which writes ", " and
8788           then a value to std::ostream.
8789         * api/omdatabase.cc,api/replication.cc,
8790           backends/brass/brass_alldocspostlist.cc,
8791           backends/brass/brass_metadata.cc,backends/brass/brass_table.cc,
8792           backends/chert/,backends/dbfactory.cc,
8793           backends/flint/flint_alldocspostlist.cc,expand/esetinternal.cc,
8794           expand/expandweight.cc,matcher/,net/remoteconnection.cc,
8795           weight/bm25weight.cc,weight/weight.cc: Use this in LOGCALL uses to
8796           make them shorter and more readable.
8798 Fri May 28 06:47:57 GMT 2010  Olly Betts <olly@survex.com>
8800         * api/leafpostlist.cc,api/omdatabase.cc,backends/brass/brass_table.cc,
8801           backends/chert/chert_table.cc,backends/dbfactory.cc,
8802           backends/flint/flint_alldocspostlist.cc: Put LOGCALL macro use all on
8803           one line so we can more easily mechanise use and update.
8805 Fri May 28 04:22:35 GMT 2010  Olly Betts <olly@survex.com>
8807         * api/replication.cc,api/valueiterator.cc,
8808           backends/brass/brass_alltermslist.cc,
8809           backends/chert/chert_alltermslist.cc,backends/dbfactory.cc,
8810           backends/inmemory/inmemory_document.cc,
8811           backends/remote/remote-document.cc,matcher/synonympostlist.cc,
8812           net/remoteconnection.cc,weight/bm25weight.cc: Use NO_ARGS instead of
8813           "" and LOGCALL_VOID instead of LOGCALL with void return type.
8815 Fri May 28 04:12:35 GMT 2010  Olly Betts <olly@survex.com>
8817         * matcher/valuerangepostlist.cc: Add missing inclusions of
8818           "debuglog.h".
8819         * backends/brass/brass_metadata.h,backends/brass/brass_postlist.h,
8820           backends/brass/brass_synonym.h,backends/chert/chert_metadata.h,
8821           backends/chert/chert_postlist.h,backends/chert/chert_synonym.h,
8822           backends/dbfactory_remote.cc,backends/flint/flint_metadata.h,
8823           backends/flint/flint_synonym.h,common/database.h,common/rset.h:
8824           Remove unused inclusions of "omassert.h" and "omdebug.h".
8825         * common/rset.h: Remove unused inclusion of "weightinternal.h".
8826         * api/omdatabase.cc,api/registry.cc,api/replication.cc,backends/brass/,
8827           backends/chert/,backends/dbfactory.cc,backends/flint/: Add missing
8828           explicit inclusions of "debuglog.h". Fix LOGCALL markup of ctors and
8829           dtors.  Use LOGCALL instead of DEBUGCALL.
8831 Fri May 28 04:06:08 GMT 2010  Olly Betts <olly@survex.com>
8833         * backends/flint/flint_alldocspostlist.h: Add missing explicit
8834           inclusions of "autoptr.h", "flint_database.h", and forward
8835           declaration of class FlintCursor.
8837 Fri May 28 03:52:40 GMT 2010  Olly Betts <olly@survex.com>
8839         * common/const_database_wrapper.h,common/databasereplicator.h,
8840           common/gnu_getopt.h: Add "(C)" to copyright statements for
8841           consistency with other files.
8843 Fri May 28 03:45:26 GMT 2010  Olly Betts <olly@survex.com>
8845         * queryparser/queryparser.lt: Include "debuglog.h" instead of
8846           "omdebug.h".
8848 Fri May 28 03:45:03 GMT 2010  Olly Betts <olly@survex.com>
8850         * queryparser/queryparser.cc: Remove unused inclusion of "omdebug.h".
8852 Fri May 28 03:40:50 GMT 2010  Olly Betts <olly@survex.com>
8854         * expand/esetinternal.cc,matcher/localmatch.cc,matcher/multimatch.cc,
8855           matcher/rset.cc: Add missing explicit inclusions of "omassert.h".
8857 Thu May 27 23:39:57 GMT 2010  Olly Betts <olly@survex.com>
8859         * common/Makefile.mk,common/expand.h: Remove unused header.
8861 Thu May 27 06:45:27 GMT 2010  Olly Betts <olly@survex.com>
8863         * include/xapian/stem.h: Update the list of languages that the
8864           Xapian::Stem constructor recognises.
8866 Thu May 27 05:20:42 GMT 2010  Olly Betts <olly@survex.com>
8868         * include/xapian/stem.h,languages/Makefile.mk,
8869           languages/compiler/generator.c,languages/stem.cc,
8870           languages/steminternal.cc,languages/steminternal.h,tests/Makefile.am,
8871           tests/api_stem.cc: Add the ability to specify your own stemming
8872           algorithm by subclassing Xapian::StemImplementation, mostly based on
8873           patch from Evgeny Sizikov in ticket#448.
8875 Thu May 27 04:50:31 GMT 2010  Olly Betts <olly@survex.com>
8877         * tests/api_opvalue.cc: Use TEST_REL() instead of tout and TEST() with
8878           an inequality.
8880 Thu May 27 04:28:07 GMT 2010  Olly Betts <olly@survex.com>
8882         * api/replication.cc,backends/databasereplicator.cc,common/debuglog.h,
8883           common/omdebug.h,expand/esetinternal.cc,expand/ortermlist.cc,
8884           matcher/,net/remoteconnection.cc: Partial mass conversion of files
8885           from omdebug.h to debuglog.h (this takes care off all the files
8886           without BSN copyright).
8888 Thu May 27 04:24:36 GMT 2010  Olly Betts <olly@survex.com>
8890         * common/output.h: Use <ostream> not <fstream>.
8892 Thu May 27 04:09:25 GMT 2010  Olly Betts <olly@survex.com>
8894         * matcher/orpostlist.cc: Prefer ++x to x += 1 for consistency.
8896 Wed May 26 13:32:20 GMT 2010  Olly Betts <olly@survex.com>
8898         * matcher/exactphrasepostlist.cc: Separate (C) notice from @file
8899           doccomment.
8901 Wed May 26 13:11:57 GMT 2010  Olly Betts <olly@survex.com>
8903         * backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h:
8904           Move virtual method FlintPostList::get_doclength() definition out
8905           of header, which also means the header no longer needs omdebug.h.
8907 Wed May 26 13:03:22 GMT 2010  Olly Betts <olly@survex.com>
8909         * common/debuglog.h: Strip out commented out RETURN_VOID machinery.
8910           This case is automatically handled provided LOGCALL_VOID is used.
8912 Wed May 26 12:33:04 GMT 2010  Olly Betts <olly@survex.com>
8914         * common/debuglog.h: Don't check the category more than once in ctors
8915           and dtors.  Don't convert the return value to a string in RETURN()
8916           unless we want to log it.
8918 Wed May 26 02:33:00 GMT 2010  Olly Betts <olly@survex.com>
8920         * tests/api_opvalue.cc: Convert file description to doccomment.
8921           Remove unused headers and reorder remainder more standardly.
8923 Tue May 25 10:17:42 GMT 2010  Olly Betts <olly@survex.com>
8925         * tests/api_backend.cc: Note ordecay1 and ordecay2 fixes now also in
8926           1.0.21.  Whitespace tweak.
8928 Tue May 25 04:11:53 GMT 2010  Olly Betts <olly@survex.com>
8930         * tests/api_backend.cc: make_ordecay1_db and make_ordecay2_db end up
8931           looping over at least 4 billion values (or possibly infinitely) on
8932           platforms where sizeof(long) == 8.  The two databases are very
8933           similar and the latter one works for the former test, so use the
8934           same db for both tests, and rewrite the generator to work
8935           portably.
8937 Sun May 23 07:30:58 GMT 2010  Olly Betts <olly@survex.com>
8939         * tests/api_backend.cc: Note XOR decay bug also fixed in 1.0.21.
8941 Sat May 22 13:31:38 GMT 2010  Olly Betts <olly@survex.com>
8943         * configure.ac,tests/Makefile.am: Only try to build zlib-vg.so if we
8944           are found a suitable valgrind installed (otherwise it's a waste of
8945           effort to build it, and the build will fail without the valgrind
8946           headers).
8948 Sat May 22 13:18:33 GMT 2010  Olly Betts <olly@survex.com>
8950         * configure.ac,tests/Makefile.am,tests/runtest.in,tests/zlib-vg.c: zlib
8951           can produce "uninitialised" output from "initialised" input - the
8952           output does decode to the input, so this is presumably just some
8953           unused bits in the output, so we use an LD_PRELOAD hack to get
8954           valgrind to check the input is initialised and then tell it that the
8955           output is initialised.
8957 Wed May 19 14:34:52 GMT 2010  Richard Boulton <richard@tartarus.org>
8959         * matcher/andmaybepostlist.cc,matcher/andmaybepostlist.h,
8960           matcher/orpostlist.cc: Fix a bug causing documents to be skipped
8961           when OR decayed to AND_MAYBE, if the new RHS was behind the LHS
8962           at the time of the decay.  Fixes #476.
8963         * tests/api_backend.cc: Add test case ordecay2 as a regression test
8964           of this.  Also, remove some debug output in ordecay1, to speed it
8965           up quite a bit.
8967 Wed May 19 11:48:07 GMT 2010  Richard Boulton <richard@tartarus.org>
8969         * matcher/orpostlist.cc,tests/api_backend.cc: Fix a bug in the
8970           decay from OR to AND: if the decay happened when the two
8971           sub-postlists were on different docids, but the higher of those
8972           docids actually occurred in both postlists, the higher docid
8973           would be incorrectly skipped.  Add regression test ordecay1 to
8974           test this.
8976 Wed May 19 10:36:55 GMT 2010  Richard Boulton <richard@tartarus.org>
8978         * tests/api_backend.cc,tests/api_compact.cc,
8979           tests/harness/testrunner.cc,tests/harness/testrunner.h: Add new
8980           test backend selection flag "generated", to select only backends
8981           which support generated test databases.
8983 Wed May 19 03:14:15 GMT 2010  Olly Betts <olly@survex.com>
8985         * api/,backends/brass/,backends/chert/,
8986           backends/contiguousalldocspostlist.cc,backends/flint/,
8987           backends/inmemory/inmemory_database.cc,
8988           backends/remote/remote-database.cc,backends/slowvaluelist.cc,
8989           common/utils.h,expand/esetinternal.cc,matcher/phrasepostlist.cc,
8990           net/remoteserver.cc,net/remotetcpclient.cc,
8991           queryparser/termgenerator.cc,tests/,
8992           tests/harness/backendmanager_multi.cc,
8993           tests/harness/backendmanager_remote.cc,
8994           tests/harness/backendmanager_remotetcp.cc,tests/internaltest.cc,
8995           tests/perftest/perftest.cc,tests/perftest/perftest_matchdecider.cc,
8996           tests/perftest/perftest_randomidx.cc,tests/queryparsertest.cc,
8997           tests/termgentest.cc: Fully migrate from om_tostring() to str().
8999 Wed May 19 03:13:43 GMT 2010  Olly Betts <olly@survex.com>
9001         * cmake/xapian-config-version.cmake,cmake/xapian-config.cmake: Remove
9002           generated files from SVN.
9004 Wed May 19 02:59:47 GMT 2010  Olly Betts <olly@survex.com>
9006         * bin/xapian-inspect.cc: Add misisng explicit '#include <utils.h>'.
9008 Tue May 18 14:24:03 GMT 2010  Olly Betts <olly@survex.com>
9010         * bin/Makefile.mk,bin/xapian-check.cc,bin/xapian-compact.cc: Improve
9011           building with flint, chert and/or brass disabled (partially addresses
9012           ticket#361).
9014 Tue May 18 00:42:08 GMT 2010  Olly Betts <olly@survex.com>
9016         * matcher/multimatch.cc: Fix warnings with --disable-backend-remote
9017           (partially addresses ticket#361).
9019 Sat May 15 06:56:26 GMT 2010  Olly Betts <olly@survex.com>
9021         * net/progclient.cc: Read the max fd with sysconf() instead of using
9022           a hardcoded value of 256.  Work even if stdin and stdout have been
9023           closed.
9025 Thu May 13 10:53:24 GMT 2010  Richard Boulton <richard@tartarus.org>
9027         * matcher/orpostlist.cc: Correct some debugging lines.
9029 Thu May 13 09:57:12 GMT 2010  Richard Boulton <richard@tartarus.org>
9031         * matcher/xorpostlist.cc,matcher/xorpostlist.h: Pass a minweight
9032           value of 0 to children of XOR postlists, because we need to know
9033           about all matching documents from the children even if they have
9034           a low weight.
9035         * tests/api_backend.cc: Regression test for this: xordecay1.
9037 Thu May 13 08:47:22 GMT 2010  Richard Boulton <richard@tartarus.org>
9039         * tests/soaktest/soaktest_queries.cc: Add more code comments,
9040           increase the number of repetitions from 100 to 10000, remove
9041           accidentally added semicolons after some braces, remove "return
9042           false" at end of test which was added for debugging purposes,
9043           clear tout before testing each query, and display the query
9044           number, the query, and the msets in the event of failure.
9046 Tue May 11 10:16:05 GMT 2010  Richard Boulton <richard@tartarus.org>
9048         * tests/soaktest/soaktest_queries.cc: Don't fail for empty result
9049           sets.
9051 Tue May 11 10:13:08 GMT 2010  Richard Boulton <richard@tartarus.org>
9053         * tests/soaktest/: Add a "soaktest" testsuite, intended to contain
9054           long-running tests with random data.  Currently contains a single
9055           test which builds and runs random queries, checking that the
9056           results returned are consistent when asking for different result
9057           ranges.
9059 Mon May 10 16:57:29 GMT 2010  Richard Boulton <richard@tartarus.org>
9061         * tests/api_opvalue.cc: Add tests for OP_VALUE_RANGE to get
9062           coverage of the skip_to() and check() methods of
9063           ValueRangePostList.
9065 Mon May 10 16:51:14 GMT 2010  Richard Boulton <richard@tartarus.org>
9067         * tests/api_opvalue.cc: Add a test to get coverage of
9068           ValueGePostList::skip_to().
9070 Sun May 09 21:22:50 GMT 2010  Richard Boulton <richard@tartarus.org>
9072         * tests/api_nodb.cc,tests/api_opvalue.cc: Move test "opvaluege1"
9073           from api_nodb.cc to api_opvalue.cc, and rename to valuege3 for
9074           consistency with other tests of OP_VALUE_GE.
9076 Sun May 09 21:19:43 GMT 2010  Richard Boulton <richard@tartarus.org>
9078         * tests/Makefile.am,tests/api_anydb.cc,tests/api_opvalue.cc: Move
9079           the tests for OP_VALUE_* query operators from api_anydb.cc to
9080           api_opvalue.cc.  Remove copyright statements earlier than 2007,
9081           since OP_VALUE_* wasn't added until 2007.
9083 Sun May 09 21:04:06 GMT 2010  Richard Boulton <richard@tartarus.org>
9085         * matcher/valuegepostlist.cc: Initialise valuelist in check() if
9086           necessary.
9087         * tests/api_anydb.cc: Add regression test for this.
9089 Thu May 06 15:03:43 GMT 2010  Richard Boulton <richard@tartarus.org>
9091         * tests/api_replicate.cc: Add some extra debugging, to help
9092           identify the problem with ticket #472.
9094 Thu May 06 13:38:25 GMT 2010  Olly Betts <olly@survex.com>
9096         * common/safeuuid.h,configure.ac,INSTALL: Make use of built-in UUID API
9097           on FreeBSD and NetBSD.  (ticket#470)
9099 Thu May 06 13:10:30 GMT 2010  Olly Betts <olly@survex.com>
9101         * AUTHORS,Makefile.am,cmake/,configure.ac: Install files to make Xapian
9102           easier to use with cmake.  Thanks to Sune Vuorela for providing the
9103           desired output.
9105 Thu May 06 11:42:16 GMT 2010  Olly Betts <olly@survex.com>
9107         * tests/harness/fdtracker.cc: Don't pass NULL to closedir().
9109 Thu May 06 11:19:41 GMT 2010  Olly Betts <olly@survex.com
9111         * tests/api_anydb.cc: Test UUID is 36 characters long.
9113 Thu May 06 10:41:21 GMT 2010  Olly Betts <olly@survex.com>
9115         * matcher/valuegepostlist.cc: Use "str.h" and str().
9117 Thu May 06 10:01:48 GMT 2010  Olly Betts <olly@survex.com>
9119         * matcher/valuegepostlist.cc: Remove unused headers.
9121 Thu May 06 09:55:27 GMT 2010  Richard Boulton <richard@tartarus.org>
9123         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc:
9124           Keep return value from valuelist->get_value() as a const string &
9125           rather than a string - could be more efficient on some compilers,
9126           though testing with gcc 4.1 revealed no difference.
9128 Thu May 06 09:49:12 GMT 2010  Richard Boulton <richard@tartarus.org>
9130         * matcher/valuegepostlist.cc: "while(" -> "while (" in recent patch.
9132 Thu May 06 09:30:27 GMT 2010  Olly Betts <olly@survex.com>
9134         * docs/replication.rst: Remove experimental warning.
9136 Thu May 06 05:05:57 GMT 2010  Olly Betts <olly@survex.com>
9138         * matcher/valuerangepostlist.cc: Use "str.h" and str().
9140 Thu May 06 05:03:22 GMT 2010  Olly Betts <olly@survex.com>
9142         * matcher/valuerangepostlist.cc: Remove '#include "leafpostlist.h"'
9143           and '#include "document.h"' which are no longer used.
9145 Thu May 06 04:53:07 GMT 2010  Olly Betts <olly@survex.com>
9147         * matcher/valuerangepostlist.cc: Remove '#include "autoptr.h"' which is
9148           no longer required.
9150 Thu May 06 04:18:25 GMT 2010  Olly Betts <olly@survex.com>
9152         * matcher/valuerangepostlist.cc: "while(" -> "while (" in recent patch.
9154 Wed May 05 16:44:17 GMT 2010  Richard Boulton <richard@tartarus.org>
9156         * matcher/orpostlist.cc,matcher/orpostlist.h: Add
9157           OrPostList::check() method, which calls check() on the
9158           sub-postlists, rather than falling back to skip_to().  This is
9159           particularly helpful when a sub-postlist is one for which
9160           skip_to() can be significantly more expensive than check(), such
9161           as a ValueRangePostList.  I've observed a speedup of 10 times for
9162           such a subquery with this change.
9164 Wed May 05 16:34:30 GMT 2010  Richard Boulton <richard@tartarus.org>
9166         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
9167           matcher/valuerangepostlist.h: Implement ValueRangePostList and
9168           ValueGePostList using a ValueList streaming values for the value
9169           slot of interest, rather than using an AllDocsPostList to get all
9170           documents, using that to open temporary documents for each
9171           document being considered, and then using that to get the value.
9172           I've observed a speedup of more than 70 times for range queries
9173           in a real-world situation with this change (a 29 second search
9174           became a 0.4 second search). (ticket#432)
9176 Wed May 05 06:44:31 GMT 2010  Olly Betts <olly@survex.com>
9178         * NEWS: Update from ChangeLog.
9180 Wed May 05 05:42:56 GMT 2010  Olly Betts <olly@survex.com>
9182         * backends/brass/brass_cursor.cc,backends/chert/chert_cursor.cc,
9183           backends/flint/flint_cursor.cc: If we have to rebuild the cursor
9184           on next() because the table changed underneath us, we need to
9185           advance it because find_entry() will put the cursor on the entry
9186           we were already on, or the one before if the entry we were on
9187           has been removed.  Bug uncovered by notmuch testsuite, but I'm
9188           unable to reduce it to a sane testcase for our testsuite.
9189           (Debian#579951)
9191 Tue May 04 19:38:31 GMT 2010  Richard Boulton <richard@tartarus.org>
9193         * api/replication.cc,bin/xapian-replicate.cc,
9194           common/replicatetcpclient.h,common/replication.h,
9195           net/replicatetcpclient.cc,tests/api_replicate.cc: Fix a bug in
9196           replication, which triggered when multiple modifications were
9197           made to a database while a full copy of the database was in
9198           progress.  In this situation, the client would fail to apply more
9199           than one changeset before trying (and failing) to make the
9200           database live, due to an incorrect assignment of the new revision
9201           number to "offline_needed_revision" instead of
9202           "offline_revision".  Also, replication now only sleeps for a
9203           period (to allow reader to catch up) after a changeset has been
9204           applied to a live database - previously, it would sleep
9205           unnecessarily after a changeset had been applied to an offline
9206           database.  Also, make the period for which replication sleeps in
9207           this situation configurable with the "-r" command line option to
9208           xapian-replicate.
9209           A test for these changes will be committed to xapian-bindings
9210           shortly.
9212 Sat May 01 15:25:48 GMT 2010  Olly Betts <olly@survex.com>
9214         * Merge change accidentally committed to brass-btree branch:
9215         * tests/perftest/runprocess.cc: Use safesyswait.h, fixing build failure
9216           on "make check" on FreeBSD.
9218 Fri Apr 30 12:33:25 GMT 2010  Richard Boulton <richard@tartarus.org>
9220         * backends/brass/brass_databasereplicator.cc,
9221           backends/chert/chert_databasereplicator.cc,
9222           backends/flint/flint_databasereplicator.cc,tests/api_replicate.cc:
9223           If a DB file doesn't exist when applying a changeset, try
9224           creating it - this happens with lazy tables which aren't created
9225           in the initial revision copied.  Add replicate4 test to check
9226           that this works correctly with a lazily created position table.
9227           Fixes ticket #468.
9229 Fri Apr 30 07:09:31 GMT 2010  Olly Betts <olly@survex.com>
9231         * docs/deprecation.rst: Replication and PostingSource aren't
9232           experimental in 1.2.x.
9234 Fri Apr 30 00:52:22 GMT 2010  Olly Betts <olly@survex.com>
9236         * tests/harness/testsuite.cc: Fix typo in previous commit.
9238 Thu Apr 29 23:46:09 GMT 2010  Olly Betts <olly@survex.com>
9240         * tests/harness/testsuite.cc: Check is SA_SIGINFO is defined before
9241           using it as it isn't available everywhere.  Fixes FTBFS on GNU Hurd.
9243 Thu Apr 29 12:11:48 GMT 2010  Olly Betts <olly@survex.com>
9245         * configure.ac: Install headers under PREFIX/include not
9246           PREFIX/include/xapian.  This broke compiling code which didn't use
9247           XO_LIB_XAPIAN or xapian-config.
9249 Wed Apr 28 12:05:23 GMT 2010  Olly Betts <olly@survex.com>
9251         * Makefile.am,m4-macros/xapian-1.1.m4: Remove -1.1 suffix from
9252           xapian-1.1.m4 and libxapian-1.1.la.
9254 Wed Apr 28 06:15:45 GMT 2010  Olly Betts <olly@survex.com>
9256         * NEWS: Sync with 1.0.20.
9257         * NEWS,configure.ac: 1.2.0!
9259 Tue Apr 27 12:45:29 GMT 2010  Olly Betts <olly@survex.com>
9261         * AUTHORS: Add bug reporter.
9263 Mon Apr 26 08:26:26 GMT 2010  Olly Betts <olly@survex.com>
9265         * common/getopt.cc,common/gnu_getopt.h: On Cygwin, #include <getopt.h>
9266           for declarations of optind, etc rather than providing our own
9267           declarations.  Should fix warnings in Cygwin build reported by Reini
9268           Urban on xapian-devel list.
9270 Mon Apr 26 06:27:07 GMT 2010  Olly Betts <olly@survex.com>
9272         * common/getopt.cc,common/gnu_getopt.h: Revert previous 2
9273           getopt-related patches.  The latest state was breaking on Solaris
9274           which (contrary to what its man pages say) prototypes getopt() stuff
9275           in stdlib.h.  This seems to be a rabbit hole we don't want to head
9276           further down.
9278 Sat Apr 24 02:12:53 GMT 2010  Olly Betts <olly@survex.com>
9280         * examples/delve.cc: Update --help output for -v to cover all terms
9281           case.
9283 Sat Apr 24 01:58:00 GMT 2010  Olly Betts <olly@survex.com>
9285         * examples/delve.cc: Add -a option to list all terms in a database.
9287 Sat Apr 24 01:51:01 GMT 2010  Olly Betts <olly@survex.com>
9289         * examples/copydatabase.cc: Prefer string() to "" converted to string.
9291 Thu Apr 22 14:21:30 GMT 2010  Olly Betts <olly@survex.com>
9293         * matcher/multimatch.cc: Fix bug related to ticket#464 (the previous
9294           fix doesn't fix some similar cases).
9295         * tests/api_backend.cc: Add regression test msize2.
9297 Thu Apr 22 11:02:11 GMT 2010  Olly Betts <olly@survex.com>
9299         * tests/: Hook up --abort-on-error fix for termgentest, stemtest,
9300           queryparsertest, and internaltest.
9302 Thu Apr 22 06:06:53 GMT 2010  Olly Betts <olly@survex.com>
9304         * HACKING: Add a hyphen.
9306 Wed Apr 21 11:16:50 GMT 2010  Olly Betts <olly@survex.com>
9308         * tests/harness/testrunner.cc: Exit with status 1 not 0 if we caught an
9309           exception from the harness itself.
9311 Wed Apr 21 11:11:10 GMT 2010  Olly Betts <olly@survex.com>
9313         * tests/harness/testrunner.cc,tests/harness/testsuite.cc: Fix
9314           --abort-on-error to actually work.
9316 Tue Apr 20 12:53:29 GMT 2010  Olly Betts <olly@survex.com>
9318         * docs/deprecation.rst: Note how to disable deprecation warnings.
9320 Tue Apr 20 07:27:23 GMT 2010  Olly Betts <olly@survex.com>
9322         * api/omenquire.cc,matcher/multimatch.cc: Fix incorrect estimate and
9323           bounds on matches when sorting and collapsing in a particular case
9324           (ticket#464).
9325         * tests/api_backend.cc: Add regression test msize1.
9327 Mon Apr 19 01:59:59 GMT 2010  Olly Betts <olly@survex.com>
9329         * examples/delve.cc: Use strtoul() instead of atoi() to decode document
9330           id and value slot numbers passed on the command line.  Report out of
9331           range and invalid values.
9333 Sat Apr 17 09:17:25 GMT 2010  Olly Betts <olly@survex.com>
9335         * common/getopt.cc,common/gnu_getopt.h: Fix getopt code to work on
9336           platforms without GNU getopt but with getopt().
9338 Fri Apr 16 14:23:49 GMT 2010  Olly Betts <olly@survex.com>
9340         * NEWS,configure.ac: Update for 1.1.5.
9341         * NEWS: Sync changes from 1.0.19.
9343 Fri Apr 16 12:29:14 GMT 2010  Olly Betts <olly@survex.com>
9345         * tests/harness/testsuite.cc: Handle NULL in the const char * catch.
9347 Fri Apr 16 05:47:43 GMT 2010  Olly Betts <olly@survex.com>
9349         * api/postingsource.cc: Fix wrapping.
9351 Thu Apr 15 09:07:40 GMT 2010  Richard Boulton <richard@tartarus.org>
9353         * tests/api_replicate.cc: Use a fixed size buffer for copying a
9354           file, rather than a dynamically sized buffer; avoids using the
9355           GCC extension allowing dynamically sized arrays.
9357 Thu Apr 15 04:02:34 GMT 2010  Olly Betts <olly@survex.com>
9359         * AUTHORS: Update with bug reporters.
9361 Thu Apr 15 00:30:45 GMT 2010  Olly Betts <olly@survex.com>
9363         * include/xapian/termgenerator.h: Note how TermGenerator handles
9364           stopwords.
9366 Wed Apr 14 23:41:55 GMT 2010  Olly Betts <olly@survex.com>
9368         * common/getopt.cc,common/gnu_getopt.h: Put our optarg, etc in a
9369           namespace and then pull them in to avoid linking to versions in the C
9370           library.  Fixes warnings on Cygwin.
9372 Wed Apr 14 15:33:39 GMT 2010  Olly Betts <olly@survex.com>
9374         * tests/api_backend.cc: Remove already fixed FIXME comment.
9376 Wed Apr 14 14:13:10 GMT 2010  Olly Betts <olly@survex.com>
9378         * queryparser/queryparser.lemony: Use const reference to avoid a
9379           needless handle copy.
9381 Wed Apr 14 14:00:21 GMT 2010  Olly Betts <olly@survex.com>
9383         * backends/brass/brass_alltermslist.cc,
9384           backends/brass/brass_alltermslist.h,
9385           backends/chert/chert_alltermslist.cc,
9386           backends/chert/chert_alltermslist.h,
9387           backends/flint/flint_alltermslist.cc,
9388           backends/flint/flint_alltermslist.h: Fix memory leak if Database
9389           throws an exception in XXXAllTermsList constructor.  Fixes bug#462.
9390         * tests/api_backend.cc: Enable qpmemoryleak1 for non-remote backends as
9391           a regression test for this fix.
9393 Tue Apr 13 12:38:08 GMT 2010  Olly Betts <olly@survex.com>
9395         * backends/flint/flint_table.cc: Don't memcpy() a block to itself -
9396           it's a waste of effort, and (probably) undefined behaviour (as a
9397           block overlaps itself).
9399 Tue Apr 13 12:36:53 GMT 2010  Olly Betts <olly@survex.com>
9401         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Don't
9402           memcpy() a block to itself - it's a waste of effort, and (probably)
9403           undefined behaviour (as a block overlaps itself).
9405 Tue Apr 13 08:38:40 GMT 2010  Olly Betts <olly@survex.com>
9407         * queryparser/queryparser.lemony: Add a ParserHandler class to take
9408           care of releasing the yyParser object.
9410 Tue Apr 13 07:49:33 GMT 2010  Olly Betts <olly@survex.com>
9412         * common/autoptr.h: Fix comment typo.
9414 Tue Apr 13 07:47:40 GMT 2010  Olly Betts <olly@survex.com>
9416         * api/replication.cc: "autoptr.h" not <autoptr.h> (it's an in-tree
9417           header).
9419 Tue Apr 13 07:25:11 GMT 2010  Olly Betts <olly@survex.com>
9421         * queryparser/queryparser.lemony: Fix leak of yyParser if an exception
9422           is thrown during parsing.   Partly fixes ticket#462.
9423         * tests/api_backend.cc: Add regression test qpmemoryleak1.
9425 Tue Apr 13 01:37:08 GMT 2010  Olly Betts <olly@survex.com>
9427         * common/utils.cc,common/utils.h: Revert change to make removedir()
9428           recurse into subdirectories - it doesn't fix a bug, so isn't
9429           appropriate when we're trying to get 1.2.0 out (backends don't
9430           currently put files in subdirectories, which was the justification
9431           in the commit message).
9433 Mon Apr 12 11:50:37 GMT 2010  Olly Betts <olly@survex.com>
9435         * Backport change from brass:
9436         * backends/flint/: Fix to rebuild cursors if the table gains or loses a
9437           level.  Fixes ticket#455.
9439 Mon Apr 12 09:29:39 GMT 2010  Olly Betts <olly@survex.com>
9441         * Backport change from brass:
9442         * backends/chert/: Fix to rebuild cursors if the table gains or loses a
9443           level.  Fixes ticket#455.
9445 Mon Apr 12 09:26:53 GMT 2010  Olly Betts <olly@survex.com>
9447         * backends/brass/: Fix to rebuild cursors if the table gains or loses a
9448           level.  Fixes ticket#455.
9450 Mon Apr 12 08:27:29 GMT 2010  Olly Betts <olly@survex.com>
9452         * tests/api_none.cc: Work around compilation failure on OpenBSD.  Fixes
9453           ticket#458.
9455 Fri Apr 02 04:03:04 GMT 2010  Olly Betts <olly@survex.com>
9457         * m4-macros/xapian-1.1.m4: Give a more specific error message for the
9458           cases where XAPIAN_CONFIG isn't found, is a directory, or isn't
9459           executable.
9461 Thu Mar 25 14:43:57 GMT 2010  Olly Betts <olly@survex.com>
9463         * tests/api_backend.cc: Add databasemodified1 testcase to provide some
9464           test coverage for DatabaseModifiedError.
9466 Thu Mar 25 06:32:44 GMT 2010  Olly Betts <olly@survex.com>
9468         * bin/xapian-check-flint.cc: Report docid for doclength mismatch.
9470 Thu Mar 25 06:23:26 GMT 2010  Olly Betts <olly@survex.com>
9472         * bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Report docid for
9473           doclength mismatch.
9475 Sat Mar 20 15:04:18 GMT 2010  Olly Betts <olly@survex.com>
9477         * docs/spelling.rst: Add a note about removing automatically added
9478           spelling dictionary entries.
9480 Sat Mar 20 09:30:44 GMT 2010  Olly Betts <olly@survex.com>
9482         * docs/spelling.rst: Add section on indexing.  Move the "algorithm"
9483           section to the end, as it is really just background information for
9484           the curious.
9486 Wed Mar 17 01:33:39 GMT 2010  Olly Betts <olly@survex.com>
9488         * INSTALL: Add a hyphen.
9490 Wed Mar 17 01:30:34 GMT 2010  Olly Betts <olly@survex.com>
9492         * INSTALL: Correct description of --enable-assertions.  It does NOT
9493           enable debugging symbols, and shouldn't control checks on bad data
9494           passed to API calls (if it does anywhere, that's a bug).  Note that
9495           Xapian will run more slowly with assertions on.
9497 Wed Mar 17 01:10:13 GMT 2010  Olly Betts <olly@survex.com>
9499         * backends/brass/brass_values.cc: Put ValueUpdater in Brass namespace
9500           to avoid cross-linking issues with ValueUpdater class in chert
9501           (change taken from brass-btree branch).
9503 Sun Mar 14 10:05:36 GMT 2010  Olly Betts <olly@survex.com>
9505         * Backport change from chert:
9506         * backends/flint/flint_database.cc,
9507           backends/flint/flint_positionlist.cc,
9508           backends/flint/flint_positionlist.h: When updating a document, rather
9509           than decoding the old positions, comparing with the new, and then
9510           encoding the new if different, we now just encode the new and then
9511           compare the encoded forms.  (ticket#428)  This change also avoids
9512           calling FlintPositionListTable::del() when we know the entry doesn't
9513           already exist.
9514         * backends/flint/flint_positionlist.cc: Minor refactor to improve
9515           code clarity and to only create std::string variable when it
9516           is needed.
9518 Sun Mar 14 09:45:34 GMT 2010  Olly Betts <olly@survex.com>
9520         * Backport change from brass:
9521         * backends/chert/chert_positionlist.cc: Minor refactor to improve
9522           code clarity and to only create std::string variable when it
9523           is needed.
9525 Sun Mar 14 09:29:54 GMT 2010  Olly Betts <olly@survex.com>
9527         * backends/brass/brass_positionlist.cc: Minor refactor to improve
9528           code clarity and to only create std::string variable when it
9529           is needed.
9531 Sun Mar 14 07:37:03 GMT 2010  Olly Betts <olly@survex.com>
9533         * api/replication.cc,tests/api_closedb.cc,tests/api_metadata.cc,
9534           tests/internaltest.cc: Catch by const reference rather than just
9535           reference, unless we actually need to modify the caught object.
9537 Sun Mar 14 06:45:11 GMT 2010  Olly Betts <olly@survex.com>
9539         * api/replication.cc: Check live_db only has a single sub-database even
9540           if we just lazily opened it.
9542 Sun Mar 14 05:00:21 GMT 2010  Olly Betts <olly@survex.com>
9544         * backends/flint/flint_database.cc,
9545           backends/flint/flint_databasereplicator.cc: Add missing explicit
9546           '#include "str.h"'.
9548 Sat Mar 13 09:22:24 GMT 2010  Richard Boulton <richard@tartarus.org>
9550         * tests/api_replicate.cc: Always use off_t to refer to the size of a
9551           file: fixes warnings about comparting a signed value to an unsigned
9552           value.
9554 Thu Mar 11 16:07:10 GMT 2010  Richard Boulton <richard@tartarus.org>
9556         * api/replication.cc: Open the livedb lazily if it gets left in a
9557           closed state (due to an exception when applying a changeset),
9558           rather than reopening it straight away in an exception handler.
9559           This requires the livedb to become a mutable member, but is safer
9560           in the event that an exception is thrown by the WritableDatabase
9561           constructor.
9563 Thu Mar 11 15:17:12 GMT 2010  Richard Boulton <richard@tartarus.org>
9565         * tests/api_replicate.cc: Uncomment the rmtmpdir() at the end of
9566           replicate3; it was accidentally committed debugging code.
9568 Thu Mar 11 13:03:57 GMT 2010  Richard Boulton <richard@tartarus.org>
9570         * api/replication.cc: If an exception is thrown, mark that the
9571           offline revision needed is unknown (represented by being empty);
9572           ensures that a database isn't put live incorrectly in this case.
9573           Also, actually read the message for REPL_REPLY_END_OF_CHANGES, so
9574           that we get an error if the message is truncated.  Also, if an
9575           attempt to apply a changeset to the live database fails with an
9576           exception while the live database is closed, reopen the live
9577           database before allowing the exception to propagate.
9578         * tests/api_replicate.cc: Split replicate() helper function into
9579           two parts, to separate getting the changeset messages, and
9580           applying them. Add replicate3 test, which checks that
9581           replications which are provided with truncated messages raise
9582           appropriate errors.
9584 Thu Mar 11 00:46:39 GMT 2010  Olly Betts <olly@survex.com>
9586         * common/replicate_utils.cc: Avoid creating temporary string objects
9587           to reduce bloat in compiled code.  Remove explicit std:: qualifiers.
9589 Thu Mar 11 00:38:00 GMT 2010  Olly Betts <olly@survex.com>
9591         * common/replicate_utils.cc: The directory we're writing changesets
9592           to will always exist, so no need to ensure it does.
9594 Thu Mar 11 00:10:19 GMT 2010  Olly Betts <olly@survex.com>
9596         * backends/chert/chert_databasereplicator.cc,
9597           backends/flint/flint_databasereplicator.cc: Fix calculation of end
9598           pointer for changes file.  Since the merge, it has been off by
9599           CONST_STRLEN(CHANGES_MAGIC_STRING).
9601 Wed Mar 10 23:59:38 GMT 2010  Olly Betts <olly@survex.com>
9603         * backends/chert/chert_database.cc,
9604           backends/chert/chert_databasereplicator.cc: Add missing explicit
9605           '#include "str.h"'.
9607 Wed Mar 10 13:07:41 GMT 2010  Richard Boulton <richard@tartarus.org>
9609         * common/Makefile.mk,common/replicate_utils.cc,
9610           common/replicate_utils.h: Add some utility functions for
9611           replication to create changeset files, and append content to
9612           them, to avoid duplicating the code in each backend.
9613         * backends/chert/chert_database.cc,
9614           backends/chert/chert_databasereplicator.cc,
9615           backends/chert/chert_databasereplicator.h,
9616           backends/flint/flint_database.cc,
9617           backends/flint/flint_databasereplicator.cc,
9618           backends/flint/flint_databasereplicator.h: Make the
9619           DatabaseReplicator subclasses respect the XAPIAN_MAX_CHANGESETS
9620           environment variable, such that they write the changesets they're
9621           applying to disk if the value is non-zero.  Enables replication
9622           from a replicated copy.
9623         * tests/api_replicate.cc: Refactor some common code, and add
9624           replicate2, which tests replication from a replicated copy.  Skip
9625           this test for brass, since brass doesn't support this.
9627 Wed Mar 10 12:11:41 GMT 2010  Richard Boulton <richard@tartarus.org>
9629         * common/utils.cc,common/utils.h: Make removedir() recurse into
9630           subdirectories; this ensures that replication works if backends
9631           put some files in subdirectories of their replicas (eg, if the
9632           replica is itself a replicated database).
9634 Wed Mar 10 12:07:40 GMT 2010  Richard Boulton <richard@tartarus.org>
9636         * backends/chert/,backends/flint/,common/Makefile.mk,
9637           common/io_utils.cc,common/io_utils.h: Refactor duplicated code
9638           from {flint,chert}_io.{cc,h} into common/io_utils.{cc,h}.  Rename
9639           flint_io_read() to io_read(); do similar for flint_io_write()
9640           and flint_io_sync(), and for the chert versions.  Leave brass
9641           alone to avoid conflicting with the new brass backend development
9642           branch.
9644 Mon Mar 08 02:32:35 GMT 2010  Olly Betts <olly@survex.com>
9646         * bin/xapian-check-chert.cc: Check that the doclen initial chunk
9647           exists.
9649 Tue Mar 02 13:28:50 GMT 2010  Olly Betts <olly@survex.com>
9651         * Backport change from brass:
9652         * backends/chert/chert_database.cc,
9653           backends/chert/chert_positionlist.cc,
9654           backends/chert/chert_positionlist.h: When updating a document, rather
9655           than decoding the old positions, comparing with the new, and then
9656           encoding the new if different, we now just encode the new and then
9657           compare the encoded forms.  (ticket#428)  This change also avoids
9658           calling ChertPositionListTable::del() when we know the entry doesn't
9659           already exist.
9661 Tue Mar 02 04:00:22 GMT 2010  Olly Betts <olly@survex.com>
9663         * tests/harness/testsuite.cc: Harness now catches const char *
9664           exceptions explicitly so it can show their contents.
9666 Tue Mar 02 03:59:27 GMT 2010  Olly Betts <olly@survex.com>
9668         * include/xapian/valueiterator.h: Comment tweak.
9670 Tue Mar 02 03:57:55 GMT 2010  Olly Betts <olly@survex.com>
9672         * include/xapian/queryparser.h: Add missing forward declaration of
9673           "class Database".
9675 Tue Mar 02 01:51:33 GMT 2010  Olly Betts <olly@survex.com>
9677         * NEWS: Update partially from ChangeLog.
9679 Mon Mar 01 05:38:41 GMT 2010  Olly Betts <olly@survex.com>
9681         * backends/brass/brass_database.cc,
9682           backends/brass/brass_positionlist.cc,
9683           backends/brass/brass_positionlist.h: When updating a document, rather
9684           than decoding the old positions, comparing with the new, and then
9685           encoding the new if different, we now just encode the new and then
9686           compare the encoded forms.  (ticket#428)  This change also avoids
9687           calling BrassPositionListTable::del() when we know the entry doesn't
9688           already exist.
9690 Mon Mar 01 02:09:40 GMT 2010  Olly Betts <olly@survex.com>
9692         * net/serialise.cc: Don't call Document::values_count() twice when we
9693           can trivially avoid doing so.  Ditto for termlist_count() and
9694           positionlist_count().
9696 Mon Mar 01 01:53:58 GMT 2010  Olly Betts <olly@survex.com>
9698         * bin/: Rename tot_off to last_docid when it is actually holding the
9699           last_docid value.
9701 Sun Feb 28 23:47:49 GMT 2010  Olly Betts <olly@survex.com>
9703         * backends/flint/flint_table.cc: Whitespace tweak.
9705 Sun Feb 28 23:44:58 GMT 2010  Olly Betts <olly@survex.com>
9707         * tests/dbcheck.cc: Tweak whitespace to match standard usage.  Catch
9708           exceptions by const reference.
9709         * HACKING: Discuss why exceptions should be caught by const reference.
9710           Tweak markup of blockquotes.
9712 Sun Feb 28 22:50:50 GMT 2010  Olly Betts <olly@survex.com>
9714         * HACKING: Add note about "new SomePODType()" not being the same as
9715           "new SomePODType".
9717 Sun Feb 28 22:29:31 GMT 2010  Olly Betts <olly@survex.com>
9719         * HACKING: Quote ``cat`` and ``more``.
9721 Sun Feb 28 14:00:39 GMT 2010  Richard Boulton <richard@tartarus.org>
9723         * tests/api_compact.cc: Clarify comment about regression test for
9724           1.1.4, and remove a test line which is implicit in the following
9725           dbcheck() line anyway.
9727 Sun Feb 28 11:07:33 GMT 2010  Olly Betts <olly@survex.com>
9729         * tests/harness/fdtracker.cc,tests/harness/fdtracker.h: Add GPL
9730           boilerplate and copyright notices which I failed to do before
9731           committing these new files.
9733 Thu Feb 25 10:34:15 GMT 2010  Olly Betts <olly@survex.com>
9735         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
9736           Initialise z_stream members zalloc, zfree, and opaque with Z_NUL
9737           rather than 0 cast to the appropriate type, as that's what the zlib
9738           documentation says to do.  Add missing initialisation of opaque for
9739           the inflate z_stream which the docs say is needed, though reading
9740           the zlib code, isn't actually for current versions.
9742 Wed Feb 24 14:24:05 GMT 2010  Olly Betts <olly@survex.com>
9744         * backends/remote/remote-database.cc: Fix indentation.
9746 Wed Feb 24 14:18:25 GMT 2010  Olly Betts <olly@survex.com>
9748         * backends/remote/remote-database.cc,common/remote-database.h,
9749           common/remoteprotocol.h,common/remoteserver.h,
9750           docs/remote_protocol.html,net/remoteserver.cc,tests/api_spelling.cc:
9751           Add remote backend support for WritableDatabase::add_spelling() and
9752           WritableDatabase::remove_spelling().  This bumps the remote protocol
9753           to version 35.0 (so both client and servers will need updating).
9754           Suggesting spelling corrections isn't yet supported.  (ticket#178)
9756 Wed Feb 24 09:09:27 GMT 2010  Olly Betts <olly@survex.com>
9758         * examples/delve.cc: "lastdocid" -> "highest document id ever used"
9759           in output so it's clearer what this number means.
9761 Tue Feb 23 14:03:47 GMT 2010  Olly Betts <olly@survex.com>
9763         * api/postingsource.cc: Fix incorrect classname in error message.
9765 Tue Feb 23 13:16:11 GMT 2010  Olly Betts <olly@survex.com>
9767         * configure.ac: For -fno-strict-aliasing for GCC 4.2 to avoid bad code
9768           being generated due to a bug in that compiler version.  Fixes
9769           ticket#449.
9771 Tue Feb 23 03:08:02 GMT 2010  Olly Betts <olly@survex.com>
9773         * configure.ac,tests/harness/testsuite.cc: Use sigsetjmp() and
9774           siglongjmp() where available so that the set of blocked signals
9775           get restored and the test harness can catch a second incidence
9776           of a particular signal in a run.  Use sigaction() instead of
9777           signal() where available, which allows us to report the address
9778           associated with SIGSEGV, SIGFPE, SIGILL, and SIGBUS.
9780 Mon Feb 22 14:29:50 GMT 2010  Olly Betts <olly@survex.com>
9782         * backends/brass/brass_databasereplicator.cc,
9783           backends/chert/chert_databasereplicator.cc,
9784           backends/flint/flint_databasereplicator.cc: Fix exception message
9785           if we get an unsupported changeset type.
9787 Mon Feb 22 01:49:03 GMT 2010  Richard Boulton <richard@tartarus.org>
9789         * tests/dbcheck.cc: Check the wdf, doclen, and value bounds
9790           reported by the database against correct (tight) bounds
9791           calculated by iterating through the database contents.
9793 Mon Feb 22 01:47:20 GMT 2010  Richard Boulton <richard@tartarus.org>
9795         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
9796           Ensure that wdfs are reported to the stats object correctly when
9797           replacing documents.  These checks were absent entirely in chert,
9798           and incorrectly skipped in some cases in brass.
9800 Mon Feb 22 00:59:57 GMT 2010  Olly Betts <olly@survex.com>
9802         * tests/api_valuestream.cc: Reset tout before testing each interval.
9803           Prefer string() to "".
9805 Mon Feb 22 00:57:59 GMT 2010  Olly Betts <olly@survex.com>
9807         * docs/deprecation.rst,examples/delve.cc: Remove delve's -k option,
9808           accepted as an undocumented alias for -V since 0.9.10 for
9809           compatibility with 0.9.9 and earlier.  Just use -V instead.
9811 Mon Feb 22 00:45:37 GMT 2010  Olly Betts <olly@survex.com>
9813         * examples/delve.cc: If documents are specified, change "-V<valueno>"
9814           to only show calues for those documents.
9816 Sun Feb 21 14:11:58 GMT 2010  Olly Betts <olly@survex.com>
9818         * common/stringutils.h: Factor out looking up a character in the table
9819           into a separate inlined function.  Add C_islcxdigit() to check for
9820           an lower case hex digit.
9822 Sun Feb 21 11:10:10 GMT 2010  Olly Betts <olly@survex.com>
9824         * examples/Makefile.mk,examples/xapian-metadata.cc: Add new example
9825           "xapian-metadata" which allows you to get and set individual user
9826           metadata entries.
9828 Sun Feb 21 10:31:56 GMT 2010  Olly Betts <olly@survex.com>
9830         * configure.ac: Belatedly update version number to 1.1.4.
9832 Sat Feb 20 01:09:45 GMT 2010  Olly Betts <olly@survex.com>
9834         * tests/runtest.in: Now we have fd leak checking in the test harness,
9835           remove the ulimit as it doesn't add anything, and has caused problems
9836           on some Debian buildds.
9838 Fri Feb 19 02:08:25 GMT 2010  Olly Betts <olly@survex.com>
9840         * tests/harness/backendmanager.h,tests/harness/testsuite.cc:
9841           Call backendmanager->clean_up() before checking for fd leaks
9842           to avoid finding the sockets/pipes as leaks.  This means that
9843           clean_up() needs to handle being called more than once for
9844           a test sometimes (which the current versions do) so document
9845           that.
9847 Thu Feb 18 02:31:17 GMT 2010  Olly Betts <olly@survex.com>
9849         * examples/simpleindex.cc: Explicitly call commit() on the database,
9850           as that is good practice (since you see any exceptions).
9852 Thu Feb 18 01:52:10 GMT 2010  Olly Betts <olly@survex.com>
9854         * tests/api_wrdb.cc: Clear tout on each pass of the loop to avoid a
9855           lot of irrelevant output under --verbose if the test fails.
9857 Thu Feb 18 01:33:53 GMT 2010  Olly Betts <olly@survex.com>
9859         * tests/harness/testsuite.cc: Fix fd tracking change to work when
9860           HAVE_VALGRIND isn't defined.
9862 Thu Feb 18 00:46:20 GMT 2010  Olly Betts <olly@survex.com>
9864         * include/xapian/queryparser.h: Document the possible exception
9865           messages from QueryParser::parse_query().
9867 Thu Feb 18 00:20:18 GMT 2010  Olly Betts <olly@survex.com>
9869         * tests/harness/backendmanager.cc: Also explicitly commit after
9870           indexing for flint and chert.
9872 Wed Feb 17 15:58:04 GMT 2010  Olly Betts <olly@survex.com>
9874         * tests/harness/: Add machinery to check for leaked FDs.  Currently
9875           requires /proc/self/fd to work (so it works on at least Linux), but
9876           should do nothing on platforms without this directory.
9878 Wed Feb 17 15:53:30 GMT 2010  Olly Betts <olly@survex.com>
9880         * tests/harness/backendmanager.cc: Explicitly commit after indexing
9881           for brass, so we see any exceptions from the commit (commit from
9882           the dtor swallows any exceptions).
9884 Tue Feb 16 16:23:30 GMT 2010  Richard Boulton <richard@tartarus.org>
9886         * bin/xapian-compact.cc: Fix failure to set lastdocid to an
9887           appropriate value when using --no-renumber.
9888         * tests/api_compact.cc: Add regression test for this.
9890 Tue Feb 16 16:10:49 GMT 2010  Richard Boulton <richard@tartarus.org>
9892         * examples/delve.cc: Display the lastdocid value when displaying
9893           general database statistics.
9895 Tue Feb 16 15:39:50 GMT 2010  Richard Boulton <richard@tartarus.org>
9897         * bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Correct typo
9898           in error message.
9900 Mon Feb 15 13:59:45 GMT 2010  Olly Betts <olly@survex.com>
9902         * configure.ac: Update for 1.1.4.
9904 Mon Feb 15 13:58:44 GMT 2010  Olly Betts <olly@survex.com>
9906         * PLATFORMS: We don't support GCC < 3.1, so remove discussion of
9907           issues with GCC 2.95.
9909 Mon Feb 15 13:55:10 GMT 2010  Olly Betts <olly@survex.com>
9911         * PLATFORMS: Update from 1.0.18.
9913 Mon Feb 15 11:51:15 GMT 2010  Olly Betts <olly@survex.com>
9915         * NEWS: Update from ChangeLog.  Update from 1.0.18.
9917 Sun Feb 14 05:47:30 GMT 2010  Olly Betts <olly@survex.com>
9919         * queryparser/queryparser.lemony: Fix QueryParser to handle an explicit
9920           AND before a hated term (foo AND -bar).  (ticket#447)
9921         * tests/queryparsertest.cc: Add regression test cases.
9923 Fri Feb 12 01:27:32 GMT 2010  Olly Betts <olly@survex.com>
9925         * queryparser/termgenerator_internal.cc: Only include trailing '+' or
9926           '#' on a term if it isn't followed by a word character (makes more
9927           sense and matches QueryParser's behaviour).  (ticket#446)
9928         * tests/termgentest.cc: Add regression test.
9930 Thu Feb 11 04:30:56 GMT 2010  Olly Betts <olly@survex.com>
9932         * bin/xapian-inspect.cc: Add new "open" command to allow easy switching
9933           between tables.
9935 Wed Feb 10 02:40:36 GMT 2010  Olly Betts <olly@survex.com>
9937         * include/xapian/document.h: Rewrite the note about Document being a
9938           lazy handle to fix a few details and avoid nailing down the
9939           exact implementation.
9941 Wed Feb 10 00:37:54 GMT 2010  Olly Betts <olly@survex.com>
9943         * docs/admin_notes.rst: Update for chert and other recent changes.
9945 Wed Feb 10 00:37:04 GMT 2010  Olly Betts <olly@survex.com>
9947         * docs/replication_protocol.rst: Update.
9949 Mon Feb 08 12:05:05 GMT 2010  Olly Betts <olly@survex.com>
9951         * backends/brass/brass_version.cc: Fix comments about BRASS_VERSION
9952           which were previously just cut-and-pasted from those about
9953           CHERT_VERSION.
9955 Mon Feb 08 11:54:04 GMT 2010  Olly Betts <olly@survex.com>
9957         * backends/brass/brass_metadata.cc: Include missing headers.
9959 Mon Feb 08 09:23:00 GMT 2010  Olly Betts <olly@survex.com>
9961         * backends/brass/brass_document.h,backends/chert/chert_document.h:
9962           Fix typos in documentation comments.
9964 Mon Feb 08 08:27:09 GMT 2010  Olly Betts <olly@survex.com>
9966         * tests/harness/testsuite.cc: Remove unused headers <streambuf> and
9967           "omdebug.h".
9969 Mon Feb 08 01:28:48 GMT 2010  Olly Betts <olly@survex.com>
9971         * common/debuglog.h: Use std::boolalpha so bool is logged as "true"
9972           or "false" (instead of "1" or "0").
9974 Sat Feb 06 10:04:42 GMT 2010  Olly Betts <olly@survex.com>
9976         * AUTHORS: Sync with 1.0 branch.
9978 Sat Feb 06 08:20:31 GMT 2010  Olly Betts <olly@survex.com>
9980         * tests/api_closedb.cc: Avoid trying to create a database where
9981           an already open one exists (which fails on Microsoft Windows).
9982           (ticket#443).
9984 Fri Feb 05 13:28:08 GMT 2010  Olly Betts <olly@survex.com>
9986         * examples/simpleexpand.cc,examples/simpleindex.cc,
9987           examples/simplesearch.cc: Handle --help and --version.
9989 Fri Feb 05 13:25:37 GMT 2010  Olly Betts <olly@survex.com>
9991         * bin/xapian-compact.cc: Fix not to assign elements off the end of a
9992           vector (ticket#440).
9994 Fri Feb 05 11:41:05 GMT 2010  Richard Boulton <richard@tartarus.org>
9996         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
9997           Remove ValueCountMatchSpy::get_values().  values_begin() should
9998           be used instead to iterate over the values.
10000 Fri Feb 05 07:39:46 GMT 2010  Olly Betts <olly@survex.com>
10002         * configure.ac: Enable automake's std-options feature to check all
10003           installed programs support --help and --version.
10005 Fri Feb 05 01:45:49 GMT 2010  Olly Betts <olly@survex.com>
10007         * include/xapian/document.h: Add Document::add_boolean_term().
10008         * tests/api_none.cc: Add testcase document1 as a feature test.
10010 Fri Feb 05 00:27:52 GMT 2010  Olly Betts <olly@survex.com>
10012         * backends/chert/chert_btreebase.cc,backends/flint/flint_btreebase.cc:
10013           Add missing SEQUENTIAL entry to documentation of base file format.
10015 Thu Feb 04 03:06:26 GMT 2010  Olly Betts <olly@survex.com>
10017         * tests/api_compact.cc: Fix to work with MSVC makefiles (ticket#440).
10019 Thu Feb 04 03:04:43 GMT 2010  Olly Betts <olly@survex.com>
10021         * HACKING,common/Makefile.mk,common/safesyswait.h: Add wrapper
10022           for <sys/wait.h> which defines macros for WEXITSTATUS and
10023           WIFEXITED when required.
10025 Wed Feb 03 15:01:36 GMT 2010  Richard Boulton <richard@tartarus.org>
10027         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
10028           Add ValueCountMatchSpy::values_begin() and values_end() to allow
10029           iteration over all the values in a ValueCountMatchSpy without
10030           needing to handle the dict.  Move the contents of
10031           ValueCountMatchSpy into a reference counted internal object, so
10032           that the iterator can ensure that the contents aren't deleted
10033           before it finishes.
10035 Wed Feb 03 15:01:02 GMT 2010  Richard Boulton <richard@tartarus.org>
10037         * tests/generate-api_generated: Add ValueCountMatchSpy to the list
10038           of non-copyable API classes.
10040 Wed Feb 03 13:18:03 GMT 2010  Richard Boulton <richard@tartarus.org>
10042         * include/xapian/matchspy.h,tests/api_matchspy.cc: Provide an
10043           iterator for accessing the top values found by a matchspy, rather
10044           than using a method which takes a vector reference as a
10045           parameter.  Should be wrappable much more nicely (and get wrapped
10046           automatically), and be easier to use: the testcase for this is
10047           significantly shorter than for the old API.  Remove
10048           StringAndFrequency from API - it's now just an internal class.
10049         * api/matchspy.cc: Test new access method for top_values.
10051 Wed Feb 03 06:46:37 GMT 2010  Olly Betts <olly@survex.com>
10053         * AUTHORS: Add Emmanuel Engelhart for reporting problems indexing
10054           Burmese text.
10056 Wed Feb 03 06:32:03 GMT 2010  Olly Betts <olly@survex.com>
10058         * include/xapian/unicode.h,queryparser/queryparser.lemony,
10059           queryparser/termgenerator_internal.cc: Add ENCLOSING_MARK and
10060           COMBINING_SPACING_MARK categories to is_wordchar().  Make
10061           TermGenerator and QueryParser ignore several zero-width space
10062           characters.
10063         * tests/queryparsertest.cc,tests/termgentest.cc: Add test coverage for
10064           the changes.
10066 Wed Feb 03 03:14:30 GMT 2010  Olly Betts <olly@survex.com>
10068         * queryparser/queryparser.lemony: Fix apostrophe abuse in comment.
10070 Wed Feb 03 01:23:04 GMT 2010  Olly Betts <olly@survex.com>
10072         * queryparser/queryparser.lemony: Make TermList::as_opwindow_query()
10073           private.
10075 Wed Feb 03 01:19:19 GMT 2010  Olly Betts <olly@survex.com>
10077         * common/replication.h: Use "" not <> for including API headers.
10079 Wed Feb 03 01:08:58 GMT 2010  Olly Betts <olly@survex.com>
10081         * common/replication.h: Remove warnings about this being an
10082           experimental API, which no longer make sense now it is internal.
10084 Tue Feb 02 21:59:59 GMT 2010  Olly Betts <olly@survex.com>
10086         * tests/generate-api_generated: Remove DatabaseReplica.
10088 Tue Feb 02 17:01:23 GMT 2010  Richard Boulton <richard@tartarus.org>
10090         * include/xapian/document.h: Add a note to the API documentation
10091           for the Document class about the potential issues involved in
10092           lazy loading.  Fixes ticket #421.
10094 Tue Feb 02 16:21:39 GMT 2010  Richard Boulton <richard@tartarus.org>
10096         * docs/categorisation.rst: Remove documentation of NumericRanges
10097           stuff for now, since the NumericRanges is no longer on trunk.
10099 Tue Feb 02 15:59:14 GMT 2010  Richard Boulton <richard@tartarus.org>
10101         * common/replication.h: Put the ReplicationInfo, DatabaseMaster and
10102           DatabaseReplica symbols back into public visibility - they're
10103           needed for the tests, and for the command line scripts.
10105 Tue Feb 02 15:06:44 GMT 2010  Richard Boulton <richard@tartarus.org>
10107         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
10108           Remove NumericRanges from trunk - their API is still uncertain,
10109           so I want to do a bit more development work on them on the
10110           matchspy branch before committing to support them for several
10111           years.
10113 Tue Feb 02 13:45:24 GMT 2010  Richard Boulton <richard@tartarus.org>
10115         * api/replication.cc,backends/brass/brass_database.cc,
10116           backends/chert/chert_database.cc,backends/flint/flint_database.cc,
10117           common/,include/Makefile.mk,include/xapian/replication.h,
10118           net/replicatetcpclient.cc,net/replicatetcpserver.cc,
10119           tests/generate-api_generated: Move replication support out of the
10120           public API headers and public symbol visibility.  Access to
10121           replication, for now, is via the command-line scripts: this is
10122           similar to the access to running a remote database server, and
10123           the access to database compaction and checking.  See ticket #347
10124           for some commentary.
10126 Tue Feb 02 07:22:28 GMT 2010  Olly Betts <olly@survex.com>
10128         * Backport change from chert:
10129         * backends/flint/flint_alltermslist.h,backends/flint/flint_spelling.h,
10130           backends/flint/flint_spellingwordslist.h: Add missing std::
10131           qualifiers.
10133 Tue Feb 02 07:12:51 GMT 2010  Olly Betts <olly@survex.com>
10135         * docs/doxygen_api.conf.in: Add generated include/xapian/error.h so
10136           that Xapian::Error and subclass API docs are collated for a VPATH
10137           build.
10138         * docs/Makefile.am: Add regression test to make sure doxygen collated
10139           API docs for Xapian::RuntimeError.
10141 Tue Feb 02 06:52:55 GMT 2010  Olly Betts <olly@survex.com>
10143         * Backport change from brass:
10144         * backends/chert/chert_alltermslist.h,backends/chert/chert_spelling.h,
10145           backends/chert/chert_spellingwordslist.h: Add missing std::
10146           qualifiers.
10148 Tue Feb 02 01:34:52 GMT 2010  Richard Boulton <richard@tartarus.org>
10150         * docs/replication.rst: Add note about not using reopen() with
10151           databases being updated by the replication client.
10153 Tue Feb 02 01:17:34 GMT 2010  Richard Boulton <richard@tartarus.org>
10155         * api/matchspy.cc,docs/categorisation.rst,include/xapian/matchspy.h,
10156           tests/api_matchspy.cc: Remove score_evenness(), since it turned
10157           out to be of little or no use in practical situations.  See
10158           ticket #435 for more details.
10160 Mon Feb 01 21:53:41 GMT 2010  Olly Betts <olly@survex.com>
10162         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Use
10163           LOGCALL_VOID for add() methods which now return void.
10165 Mon Feb 01 21:50:05 GMT 2010  Olly Betts <olly@survex.com>
10167         * Backport change from brass:
10168         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
10169           Fix documentation comments for FlintTable::add() and
10170           FlintTable::del() - errors actually cause exceptions, not a false
10171           return value, and del() returns true if it actually removed an entry.
10172           Fix FlintTable::add() to throw an exception for the (hopefully never
10173           hit) case when the tag value is too insanely large to handle.  With
10174           that FlintTable::add() always returns true, and we never check the
10175           return value anyway, so just make it return void.
10177 Mon Feb 01 21:37:33 GMT 2010  Olly Betts <olly@survex.com>
10179         * Backport change from brass:
10180         * backends/chert/chert_table.cc,backends/chert/chert_table.h:
10181           Fix documentation comments for ChertTable::add() and
10182           ChertTable::del() - errors actually cause exceptions, not a false
10183           return value, and del() returns true if it actually removed an entry.
10184           Fix ChertTable::add() to throw an exception for the (hopefully never
10185           hit) case when the tag value is too insanely large to handle.  With
10186           that ChertTable::add() always returns true, and we never check the
10187           return value anyway, so just make it return void.
10189 Mon Feb 01 16:02:27 GMT 2010  Richard Boulton <richard@tartarus.org>
10191         * bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Fix checking
10192           of the METAINFO key in chert and brass.  For small databases, the
10193           statistics fit in few enough bytes that the trailing
10194           unpack_uint_last() moved to end, so errors weren't being
10195           reported, but for large databases the check was incorrectly
10196           reporting an error.
10198 Mon Feb 01 09:24:14 GMT 2010  Olly Betts <olly@survex.com>
10200         * backends/brass/brass_table.cc,backends/brass/brass_table.h:
10201           Fix documentation comments for BrassTable::add() and
10202           BrassTable::del() - errors actually cause exceptions, not a false
10203           return value, and del() returns true if it actually removed an entry.
10204           Fix BrassTable::add() to throw an exception for the (hopefully never
10205           hit) case when the tag value is too insanely large to handle.  With
10206           that BrassTable::add() always returns true, and we never check the
10207           return value anyway, so just make it return void.
10209 Mon Feb 01 01:45:09 GMT 2010  Olly Betts <olly@survex.com>
10211         * backends/brass/brass_alltermslist.h,backends/brass/brass_spelling.h,
10212           backends/brass/brass_spellingwordslist.h: Add missing std::
10213           qualifiers.
10215 Mon Feb 01 00:57:21 GMT 2010  Olly Betts <olly@survex.com>
10217         * backends/flint/flint_spelling.h: Add missing std:: qualifier.
10219 Mon Feb 01 00:52:27 GMT 2010  Olly Betts <olly@survex.com>
10221         * backends/brass/brass_spelling.h,backends/chert/chert_spelling.h:
10222           Add missing std:: qualifier.
10224 Sun Jan 31 23:35:52 GMT 2010  Olly Betts <olly@survex.com>
10226         * backends/chert/chert_termlisttable.cc,
10227           backends/chert/chert_termlisttable.h: Remove
10228           ChertTermListTable::get_doclength() as it is no longer used.
10230 Sun Jan 31 23:19:50 GMT 2010  Olly Betts <olly@survex.com>
10232         * backends/brass/brass_termlisttable.cc,
10233           backends/brass/brass_termlisttable.h: Remove
10234           BrassTermListTable::get_doclength() as it is no longer used.
10236 Sun Jan 31 09:19:39 GMT 2010  Olly Betts <olly@survex.com>
10238         * bin/xapian-inspect.cc: "until" improvements:
10239           + No longer reports the current key and tag.
10240           + If passed a key before the current one, no longer silently advances
10241             to the next key.
10242           + Explicitly says if the specified key doesn't exist, including where
10243             we ended up.
10245 Sun Jan 31 00:19:41 GMT 2010  Olly Betts <olly@survex.com>
10247         * tests/api_compact.cc: Use a single Document object rather than
10248           creating the same one 10000 times.
10250 Sun Jan 31 00:08:38 GMT 2010  Olly Betts <olly@survex.com>
10252         * tests/api_compact.cc: Move make_multichunk_db() before the testcase
10253           which uses it, rather than between two helper functions for another
10254           testcase.
10256 Sun Jan 31 00:07:03 GMT 2010  Olly Betts <olly@survex.com>
10258         * tests/api_compact.cc: Remove confusing comment, cut-and-pasted from
10259           elsewhere and not relevant here.
10261 Fri Jan 29 06:13:18 GMT 2010  Olly Betts <olly@survex.com>
10263         * backends/brass/brass_metadata.cc,backends/chert/chert_metadata.cc,
10264           backends/flint/flint_metadata.cc: Correct filenames in @file.
10266 Thu Jan 28 22:34:03 GMT 2010  Richard Boulton <richard@tartarus.org>
10268         * tests/api_compact.cc: Add check that xapian-compact works
10269           correctly on a database with multiple chunks for a single term;
10270           this is a regression test for ticket #427
10272 Thu Jan 28 22:33:16 GMT 2010  Richard Boulton <richard@tartarus.org>
10274         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Don't
10275           cut the extra byte of doclen chunk keys.
10277 Thu Jan 28 21:23:48 GMT 2010  Richard Boulton <richard@tartarus.org>
10279         * bin/xapian-compact-flint.cc: Revert previous patch for flint - it
10280           only applies to new key format used by chert and brass.
10282 Thu Jan 28 21:13:38 GMT 2010  Richard Boulton <richard@tartarus.org>
10284         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc,
10285           bin/xapian-compact-flint.cc: Partial fix for #427: truncate
10286           follow-on keys for postlist chunks fully (was leaving the
10287           trailing 0-byte, causing the code for chert and brass to
10288           incorrectly think a new chunk had started, resulting in a
10289           truncated posting list.
10291 Thu Jan 28 20:42:47 GMT 2010  Richard Boulton <richard@tartarus.org>
10293         * bin/xapian-inspect.cc: Add "until" command to display keys until
10294           a specified one.  Useful for seeing all keys for a particular
10295           posting list, etc.
10297 Thu Jan 28 01:31:54 GMT 2010  Olly Betts <olly@survex.com>
10299         * tests/dbcheck.cc: Whitespace tweak.
10301 Wed Jan 27 06:29:21 GMT 2010  Olly Betts <olly@survex.com>
10303         * tests/dbcheck.cc: <config.h> not "config.h".
10305 Wed Jan 27 04:20:42 GMT 2010  Olly Betts <olly@survex.com>
10307         * backends/brass/brass_inverter.h: Make two getters const.
10309 Wed Jan 27 04:01:17 GMT 2010  Olly Betts <olly@survex.com>
10311         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
10312           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10313           Add ChertWritableDatabase::insert_mod_plist() to handle the simpler
10314           case where we know the document doesn't already exist, to avoid
10315           adding extra code to that common path over the code we had before
10316           the #250-related changes.
10318 Tue Jan 26 03:25:59 GMT 2010  Olly Betts <olly@survex.com>
10320         * tests/internaltest.cc: In testcase pack_uint_preserving_sort1, use
10321           data() not c_str(), calculate the end position just once, and use
10322           swap to copy the current packed to prev_packed.
10324 Fri Jan 15 12:51:38 GMT 2010  Olly Betts <olly@survex.com>
10326         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
10327           Fix to use 'M' as the flag character for modified entries in
10328           modplists (not 'U').  We never explicitly check for 'M' (we check for
10329           'A' vs 'D' vs something else), so this isn't a functional change,
10330           but rather making the values consistent (as they were before the
10331           fix for #250).
10333 Fri Jan 15 08:25:14 GMT 2010  Olly Betts <olly@survex.com>
10335         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
10336           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10337           Use Xapian::termcount_diff instead of Xapian::termcount for
10338           parameters of add_freq_delta() which can be signed.  Fix parameter
10339           docs to say "change" instead of "increase".
10341 Fri Jan 15 06:05:28 GMT 2010  Olly Betts <olly@survex.com>
10343         * tests/api_replacedoc.cc: Just test that begin == end when we expect
10344           no positions rather than generating a string representation and
10345           then testing if it is empty.
10347 Thu Jan 14 11:17:36 GMT 2010  Olly Betts <olly@survex.com>
10349         * HACKING: Auto-enabling of -Werror is now done for GCC 4.1 or newer.
10351 Thu Jan 14 05:06:42 GMT 2010  Olly Betts <olly@survex.com>
10353         * HACKING: Include the MIT licence text in HACKING itself.
10354         * COPYING_MIT: Remove external copy of text - it could mislead users
10355           into thinking that this is the current licence of Xapian.
10357 Sun Jan 10 07:36:16 GMT 2010  Olly Betts <olly@survex.com>
10359         * configure.ac:With --enable-maintainer-mode, enable -Werror for GCC
10360           >= 4.1 rather than >= 4.0 as Apple's GCC 4.0 gives bogus
10361           uninitialised variable warnings for pack.h.
10363 Sat Jan 09 00:56:06 GMT 2010  Olly Betts <olly@survex.com>
10365         * queryparser/queryparser.lemony: Add support for quoting boolean terms
10366           so they can contain arbitrary characters (partly addresses
10367           ticket#128).
10368         * tests/queryparsertest.cc: Add test coverage.
10370 Fri Jan 08 13:25:25 GMT 2010  Richard Boulton <richard@tartarus.org>
10372         * tests/api_compact.cc: Add copyright note for my changes committed
10373           earlier today.
10375 Fri Jan 08 12:19:07 GMT 2010  Olly Betts <olly@survex.com>
10377         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Fix merging
10378           of databases by xapian-compact for brass and chert.
10379         * tests/api_compact.cc: Enable test compactmerge1 for brass and chert
10380           as a regression test.
10382 Fri Jan 08 11:26:41 GMT 2010  Olly Betts <olly@survex.com>
10384         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
10385           backends/flint/flint_database.cc: Rearrange comparison between old
10386           and new termlists to avoid double check of termlist.at_end().
10388 Fri Jan 08 11:22:30 GMT 2010  Richard Boulton <richard@tartarus.org>
10390         * tests/api_compact.cc: Add test of xapian-compact when merging
10391           databases.  Currently, the generated databases are broken for
10392           chert and brass, so skipping the test for those to avoid breaking
10393           the snapshotter.
10395 Fri Jan 08 11:13:13 GMT 2010  Richard Boulton <richard@tartarus.org>
10397         * tests/: Move routines for helping to check database contents and
10398           consistency into dbcheck.cc, with headers in dbcheck.h.
10400 Fri Jan 08 10:07:09 GMT 2010  Richard Boulton <richard@tartarus.org>
10402         * tests/internaltest.cc: Add test_pack_uint_preserving_sort1()
10403           which I wrote when suspicious of that function - passes fine, but
10404           probably worth keeping the test coverage.
10406 Fri Jan 08 00:23:06 GMT 2010  Olly Betts <olly@survex.com>
10408         * AUTHORS: Add Henry Combrinck for Search::Xapian patches.
10410 Thu Jan 07 15:51:57 GMT 2010  Richard Boulton <richard@tartarus.org>
10412         * api/postingsource.cc: For ValueWeightPostingSources for which
10413           there are no entries, the upper bound returned will be an empty
10414           string, which translated to -inf when passed to
10415           sortable_unserialise().  This was causing the matcher to get
10416           confused and return no results in some queries involving such a
10417           posting source.  This commit fixes this.
10418         * tests/api_postingsource.cc: Add emptyvalwtsource1 as a regression
10419           test for this, and a general test of this area of code.
10421 Thu Jan 07 09:17:58 GMT 2010  Olly Betts <olly@survex.com>
10423         * backends/brass/brass_inverter.h: Fix comment typo.
10425 Wed Dec 30 11:46:45 GMT 2009  Richard Boulton <richard@tartarus.org>
10427         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
10428           backends/flint/flint_database.cc: When updating documents, don't
10429           update posting entries which havn't changed.  Largely fixes
10430           ticket #250.
10431         * AUTHORS: Add Kan-Ru Chen, since his patch attached to ticket #250
10432           was the basis of this fix.
10434 Wed Dec 30 11:44:18 GMT 2009  Richard Boulton <richard@tartarus.org>
10436         * backends/brass/brass_inverter.h: Add methods for updating an
10437           existing posting, so we don't have to remove then re-add it.
10439 Wed Dec 30 11:41:57 GMT 2009  Richard Boulton <richard@tartarus.org>
10441         * backends/brass/brass_database.h: Remove old unused members:
10442           total_length and lastdocid.
10444 Wed Dec 30 01:07:04 GMT 2009  Richard Boulton <richard@tartarus.org>
10446         * backends/chert/chert_database.h: Remove old unused members:
10447           total_length and lastdocid.
10449 Wed Dec 30 00:21:03 GMT 2009  Richard Boulton <richard@tartarus.org>
10451         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
10452           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10453           Move frequently repeated code for updating the freq_deltas and
10454           mod_plists items into separate functions.  Makes the code
10455           considerably clearer, and prepares the way for applying the patch
10456           to fix ticket #250.
10458 Wed Dec 30 00:07:33 GMT 2009  Richard Boulton <richard@tartarus.org>
10460         * tests/api_replacedoc.cc: Add a few more sequences of operations
10461           which look worth testing, after looking at the code implementing
10462           replace_document().
10464 Tue Dec 29 22:29:08 GMT 2009  Richard Boulton <richard@tartarus.org>
10466         * tests/api_replacedoc.cc: Check consistency of the posting lists
10467           with the termlists, and consistency of the statistics, at each
10468           step of modtermwdf1.  Also, add some other terms to the document,
10469           so we can check the stored doclength for terms which haven't been
10470           modified.
10472 Sun Dec 27 14:56:16 GMT 2009  Richard Boulton <richard@tartarus.org>
10474         * backends/chert/chert_modifiedpostlist.cc,
10475           backends/flint/flint_modifiedpostlist.cc: Report the wdf from the
10476           modifications, rather the sum of the wdf from the modifications
10477           and the old wdf.  The old behaviour was just wrong, but we had no
10478           test coverage for this until the last commit.
10480 Sun Dec 27 13:34:06 GMT 2009  Richard Boulton <richard@tartarus.org>
10482         * tests/api_replacedoc.cc: Add test of the contents of the
10483           postlist of a term which is being modified.  Also, tidy up the
10484           output of docterms_to_string() to skip any empty position lists.
10486 Sat Dec 26 19:21:19 GMT 2009  Richard Boulton <richard@tartarus.org>
10488         * tests/api_replacedoc.cc: Extend test to cover removing a term but
10489           not deleting it, and finally deleting the document.
10491 Thu Dec 24 19:18:41 GMT 2009  Richard Boulton <richard@tartarus.org>
10493         * tests/api_replacedoc.cc: Expand test to cover some modification
10494           to the positional information.
10496 Thu Dec 24 19:06:32 GMT 2009  Richard Boulton <richard@tartarus.org>
10498         * tests/api_replacedoc.cc: Add some more sets of modification
10499           operations to the tests.
10501 Thu Dec 24 18:55:37 GMT 2009  Richard Boulton <richard@tartarus.org>
10503         * tests/api_replacedoc.cc: Add test modtermwdf1, which tests a lot
10504           more cases where documents are modified.
10506 Thu Dec 24 14:36:38 GMT 2009  Olly Betts <olly@survex.com>
10508         * tests/: Canonicalise the conditions on testcases.
10510 Thu Dec 24 14:08:59 GMT 2009  Olly Betts <olly@survex.com>
10512         * tests/api_closedb.cc: Fix typo in last commit.
10514 Thu Dec 24 13:39:28 GMT 2009  Olly Betts <olly@survex.com>
10516         * tests/api_closedb.cc: Check WritableDatabase::close() during a
10517           transaction does *NOT* implicitly call commit().
10519 Thu Dec 24 13:07:09 GMT 2009  Olly Betts <olly@survex.com>
10521         * backends/brass/brass_database.cc,backends/brass/brass_database.h,
10522           backends/chert/chert_database.cc,backends/chert/chert_database.h,
10523           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10524           Fix WritableDatabase::close() to commit() changes (unless a
10525           transaction is in progress).
10526         * tests/api_closedb.cc: Add regression test closedb4.
10528 Wed Dec 23 00:26:34 GMT 2009  Olly Betts <olly@survex.com>
10530         * backends/brass/brass_database.cc,backends/brass/brass_inverter.cc,
10531           backends/brass/brass_inverter.h: For allterms iteration of a
10532           WritableDatabase, if a prefix is specified only flush changes for
10533           terms with that prefix.  Also, don't flush document lengths for
10534           allterms iteration.
10536 Tue Dec 22 22:48:55 GMT 2009  Olly Betts <olly@survex.com>
10538         * bin/xapian-check.cc: Fixed reversed checks for chert and flint being
10539           enabled in r13781.
10541 Tue Dec 22 14:20:24 GMT 2009  Olly Betts <olly@survex.com>
10543         * tests/harness/testrunner.cc: Add brass variants of multi and remote
10544           backends.
10546 Tue Dec 22 14:15:43 GMT 2009  Olly Betts <olly@survex.com>
10548         * bin/: Implement xapian-check and xapian-compact support for brass.
10550 Tue Dec 22 13:41:08 GMT 2009  Olly Betts <olly@survex.com>
10552         * bin/: Split the chert-specific checking code into a separate file
10553           so xapian-check.cc is just the driver code.
10555 Tue Dec 22 12:47:59 GMT 2009  Olly Betts <olly@survex.com>
10557         * backends/brass/: Add new Inverter class to encapsulate the inversion
10558           data structures and associated code.  Instead of carefully iterating
10559           modified posting lists and document length lists, just flush the
10560           particular list needed to disk and iterate that.  This is much
10561           simpler and more obviously free of subtle bugs, and means we don't
10562           need to use data structures which allow such iteration.
10564 Tue Dec 22 12:25:04 GMT 2009  Olly Betts <olly@survex.com>
10566         * backends/brass/,backends/dbfactory.cc,include/xapian/dbfactory.h,
10567           include/xapian/valueiterator.h,include/xapian/version_h.cc,
10568           tests/harness/Makefile.mk: Fix to actually build brass.  Testsuite
10569           doesn't currently all pass.
10571 Tue Dec 22 04:26:17 GMT 2009  Olly Betts <olly@survex.com>
10573         * HACKING,INSTALL,backends/Makefile.mk,backends/brass/,
10574           backends/chert/dir_contents,backends/databasereplicator.cc,
10575           backends/dbfactory.cc,common/pack.h,configure.ac,docs/,tests/,
10576           tests/harness/: Add new development backend called "brass" and
10577           promote "chert" to being the stable backend.
10579 Mon Dec 21 09:41:57 GMT 2009  Olly Betts <olly@survex.com>
10581         * backends/chert/chert_database.cc: Update comment about
10582           MAX_SAFE_TERM_LENGTH to reflect the key format changes.
10584 Mon Dec 21 08:12:55 GMT 2009  Olly Betts <olly@survex.com>
10586         * backends/chert/chert_alldocsmodifiedpostlist.cc,
10587           backends/chert/chert_alldocsmodifiedpostlist.h: Change reference
10588           parameter to const reference.
10590 Mon Dec 21 03:19:09 GMT 2009  Olly Betts <olly@survex.com>
10592         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
10593           Replacing a document deleted since the last flush failed to update
10594           the collection frequency and wdf, and caused an assertion failure
10595           when assertions were enabled.
10596         * tests/api_backend.cc: Add regression test replacedoc8.
10598 Sun Dec 20 07:26:30 GMT 2009  Olly Betts <olly@survex.com>
10600         * configure.ac: Divert to AS_MESSAGE_LOG_FD rather than literal fd 5.
10601           Divert more output to AS_MESSAGE_LOG_FD rather than /dev/null.
10603 Thu Dec 17 13:53:31 GMT 2009  Olly Betts <olly@survex.com>
10605         * NEWS: Update from ChangeLog.
10607 Thu Dec 17 13:36:54 GMT 2009  Olly Betts <olly@survex.com>
10609         * Backport change from chert:
10610         * backends/flint/flint_alltermslist.cc: Tweak to not apply the
10611           prefix test in the "at end" case.
10612         * backends/flint/flint_alltermslist.cc: There's no point checking
10613           follow-on chunks match the prefix - the first chunk we'll hit
10614           which doesn't match has to be an initial chunk for a term.
10616 Thu Dec 17 11:57:31 GMT 2009  Olly Betts <olly@survex.com>
10618         * tests/api_replacedoc.cc: Fix to test the right variable.
10620 Thu Dec 17 11:16:51 GMT 2009  Olly Betts <olly@survex.com>
10622         * tests/api_wrdb.cc: The regression test replacedoc5 no longer actually
10623           checks for the situation it was written for, due to the shortcutting
10624           we now do in flint and chert when replacing a document with itself,
10625           so extend it with a check with that behaviour suppressed (fortunately
10626           it still passes).
10628 Wed Dec 16 12:03:13 GMT 2009  Olly Betts <olly@survex.com>
10630         * backends/chert/,bin/Makefile.mk,common/pack.h: Change the packing
10631           of uints and strings into sortable keys in chert databases, which
10632           reduces database size by 2.5% in tests.  This means an incompatible
10633           change in the chert format.
10634         * bin/xapian-chert-update.cc: Utility to update a chert database from
10635           the old format to the new format.  It works much like xapian-compact
10636           so should take a similar amount of time (and results in a compact
10637           database).
10638         * tests/api_wrdb.cc: Adjust the test which checks a string of zero
10639           bytes fails in the correct way - 126 zero bytes is now handled, so
10640           we need 127 to check the failure mode.
10642 Wed Dec 16 11:52:27 GMT 2009  Olly Betts <olly@survex.com>
10644         * bin/xapian-compact.cc: Ensure that the resultant database has a
10645           fresh UUID (previously chert copied the UUID from the first input,
10646           while flint didn't set a UUID so one was generated on demand when
10647           next requested, if the database is writable.
10648         * tests/api_compact.cc: Add tests that a UUID is set and that it is
10649           different from that of the input.
10651 Wed Dec 16 09:57:27 GMT 2009  Olly Betts <olly@survex.com>
10653         * examples/quest.cc: If no database is specified, still parse the query
10654           and report get_description() on it as this provides a useful way to
10655           see how a query parses.
10657 Wed Dec 16 00:40:51 GMT 2009  Olly Betts <olly@survex.com>
10659         * languages/german.sbl,languages/german2.sbl: Update the german and
10660           german2 stemming algorithms to the latest versions from Snowball.
10661           These add an extra rule for the "-nisse" ending.
10663 Tue Dec 15 13:08:33 GMT 2009  Olly Betts <olly@survex.com>
10665         * bin/: Split apart the flint and chert compaction code.  Should be
10666           no change in functionality.
10668 Tue Dec 15 10:11:10 GMT 2009  Olly Betts <olly@survex.com>
10670         * backends/chert/chert_alltermslist.cc: Tweak to not apply the
10671           prefix test in the "at end" case.
10673 Tue Dec 15 09:40:19 GMT 2009  Olly Betts <olly@survex.com>
10675         * backends/chert/chert_alltermslist.cc: There's no point checking
10676           follow-on chunks match the prefix - the first chunk we'll hit
10677           which doesn't match has to be an initial chunk for a term.
10679 Tue Dec 15 08:24:04 GMT 2009  Olly Betts <olly@survex.com>
10681         * include/xapian/: Convert DerefStringWrapper_ to a templated
10682           DerefWrapper_ and use it instead of DocIDWrapper and TermPosWrapper.
10684 Tue Dec 15 08:23:08 GMT 2009  Olly Betts <olly@survex.com>
10686         * include/xapian/query.h: Mark Query::Internal as @private for doxygen.
10688 Tue Dec 15 03:59:44 GMT 2009  Olly Betts <olly@survex.com>
10690         * common/pack.h: Return false not true if
10691           unpack_string_preserving_sort() fails.  Add assertions that the
10692           source pointer isn't NULL to all the functions.
10694 Tue Dec 15 02:30:24 GMT 2009  Olly Betts <olly@survex.com>
10696         * examples/delve.cc: Improve phrasing ("unique terms" -> "distinct
10697           terms").
10699 Sat Dec 12 13:07:51 GMT 2009  Richard Boulton <richard@tartarus.org>
10701         * tests/Makefile.am,tests/api_posdb.cc,tests/api_replacedoc.cc:
10702           Split my recently added replacedoc test out into a new file.
10704 Sat Dec 12 12:58:22 GMT 2009  Richard Boulton <richard@tartarus.org>
10706         * tests/api_posdb.cc: Extend test of document modification to cover
10707           removing the last term in the document, too.
10709 Sat Dec 12 12:57:43 GMT 2009  Richard Boulton <richard@tartarus.org>
10711         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
10712           Fix comparison of old term with new.
10714 Sat Dec 12 11:30:23 GMT 2009  Richard Boulton <richard@tartarus.org>
10716         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
10717           tests/api_posdb.cc: Delete old positionlist chunks in
10718           replace_document().  Uncomment part of test which tested this.
10720 Sat Dec 12 04:24:42 GMT 2009  Olly Betts <olly@survex.com>
10722         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
10723           common/document.h: If a document is replaced with itself unmodified,
10724           we no longer increase the automatic flush counter.
10725         * tests/api_backend.cc: Add regression test replacedoc7.
10727 Fri Dec 11 19:39:34 GMT 2009  Richard Boulton <richard@tartarus.org>
10729         * tests/api_posdb.cc: Add a basic test of adding a document, and
10730           modifying its positions.  Found one bug already, but the line
10731           which triggers this is commented out for now so that we don't
10732           break the snapshotters until it's fixed.
10734 Fri Dec 11 16:51:22 GMT 2009  Richard Boulton <richard@tartarus.org>
10736         * common/documentterm.h: Fix some documentation comments which were
10737           trivially incorrect or incomplete.
10739 Fri Dec 11 11:05:19 GMT 2009  Richard Boulton <richard@tartarus.org>
10741         * COPYING_MIT,HACKING: Add details of our policy for accepting
10742           patches.  This has informally been true for a while, but it
10743           probably helps to tell people about it!
10745 Tue Dec 08 13:15:28 GMT 2009  Olly Betts <olly@survex.com>
10747         * backends/chert/chert_cursor.h: Fix to build with --enable-assertions.
10749 Tue Dec 08 13:05:36 GMT 2009  Olly Betts <olly@survex.com>
10751         * backends/chert/chert_cursor.cc,backends/chert/chert_cursor.h,
10752           backends/chert/chert_postlist.cc: Add MutableChertCursor subclass of
10753           ChertCursor and implement del() there rather than in ChertCursor.
10754           This means we can use the C++ type system to track whether we got
10755           a const or non-const ChertTable * and so whether it is safe to
10756           cast away that const and delete the entry the cursor points to.
10758 Tue Dec 08 12:03:08 GMT 2009  Olly Betts <olly@survex.com>
10760         * backends/chert/chert_database.cc,backends/chert/chert_table.cc,
10761           backends/chert/chert_table.h,backends/flint/flint_database.cc,
10762           backends/flint/flint_table.cc,backends/flint/flint_table.h,
10763           bin/xapian-compact.cc,bin/xapian-inspect.cc: Add empty() method to
10764           FlintTable and ChertTable which works completely reliably even if
10765           the item count has wrapped.
10766         * tests/api_closedb.cc: Add closedb3 for coverage of get_doccount() and
10767           has_positions().
10769 Tue Dec 08 08:23:12 GMT 2009  Olly Betts <olly@survex.com>
10771         * backends/chert/chert_cursor.h: Tweak whitespace in comment.
10773 Mon Dec 07 04:56:42 GMT 2009  Olly Betts <olly@survex.com>
10775         * backends/flint/flint_database.cc,backends/flint/flint_synonym.h:
10776           Eliminate "size" private member of FlintSynonymTermList which is set
10777           but never used.
10779 Mon Dec 07 04:49:54 GMT 2009  Olly Betts <olly@survex.com>
10781         * backends/chert/chert_database.cc,backends/chert/chert_synonym.h:
10782           Eliminate "size" private member of ChertSynonymTermList which is set
10783           but never used.
10785 Mon Dec 07 04:32:46 GMT 2009  Olly Betts <olly@survex.com>
10787         * backends/chert/: Use > 32 bit type to keep count of items in a
10788           table.  This fixes misreporting by xapian-check, and in the very
10789           unlikely case where the counter has just wrapped to 0, makes
10790           xapian-compact not mistakenly think tables are empty and the
10791           matcher ignore positional information.
10793 Thu Dec 03 10:08:28 GMT 2009  Richard Boulton <richard@tartarus.org>
10795         * tests/api_compact.cc: Cast character value in string constructor
10796           to a char; without this we were getting a stack overflow and
10797           general nastiness on i386, which we hypothesise was due to the
10798           wrong overload for string() being picked.
10800 Wed Dec 02 23:10:50 GMT 2009  Olly Betts <olly@survex.com>
10802         * backends/flint_lock.cc: Add missing include of xapian/error.h.
10803           This was causing the snapshot builder to fail, but worked OK
10804           in my tree for reasons I don't understand.
10806 Wed Dec 02 14:30:40 GMT 2009  Olly Betts <olly@survex.com>
10808         * backends/chert/chert_database.cc,
10809           backends/chert/chert_databasereplicator.cc,
10810           backends/flint/flint_database.cc,
10811           backends/flint/flint_databasereplicator.cc,backends/flint_lock.cc,
10812           backends/flint_lock.h: Factor out 4 copies of the same code to
10813           report why Xapian failed to get a lock.
10815 Wed Dec 02 10:05:27 GMT 2009  Olly Betts <olly@survex.com>
10817         * backends/Makefile.mk,backends/chert/,backends/flint/,
10818           backends/flint_lock.cc,backends/flint_lock.h: Factor out a single
10819           version of the "flint-compatible locking code" and use it from both
10820           flint and chert.
10822 Wed Dec 02 02:49:14 GMT 2009  Olly Betts <olly@survex.com>
10824         * tests/api_compact.cc,tests/apitest.cc,tests/apitest.h,
10825           tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Add
10826           get_database_path() variant which takes a generator function and use
10827           it so that the right database names are used in compactnorenumber1.
10829 Tue Dec 01 12:37:24 GMT 2009  Olly Betts <olly@survex.com>
10831         * tests/apitest.cc,tests/harness/backendmanager.cc,
10832           tests/harness/backendmanager.h: Move generator function variant of
10833           get_database() to BackendManager, and tweak it to build the database
10834           under a temporary path and rename it once built, to avoid leaving a
10835           partial database in place if interrupted.
10836         * tests/perftest/perftest_matchdecider.cc: Use this mechanism to lazily
10837           generate test databases.
10838         * tests/harness/: Remove the optional name parameter from various
10839           BackendManager methods as it was only used by perftest and is no
10840           longer needed.
10842 Tue Dec 01 11:00:35 GMT 2009  Olly Betts <olly@survex.com>
10844         * tests/apitest.cc,tests/apitest.h: Add mechanism for caching databases
10845           generated by a function.
10846         * tests/api_compact.cc: Use it for compactnorenumber1.
10848 Tue Dec 01 10:59:50 GMT 2009  Olly Betts <olly@survex.com>
10850         * tests/api_db.cc: Rename matchfunctor<n> to matchdecider<n> to match
10851           current terminology.
10853 Tue Dec 01 10:51:23 GMT 2009  Olly Betts <olly@survex.com>
10855         * tests/api_db.cc: Don't run matchfunctor3 under remote backends as
10856           MatchDecider isn't actually supported there (uncovered by recent
10857           change to throw UnimplementedError in this case).
10859 Tue Dec 01 09:35:53 GMT 2009  Richard Boulton <richard@tartarus.org>
10861         * include/xapian/matchspy.h: Remove out-of-date reference to
10862           add_slot(), which no longer exists: users are expected to use
10863           multiple ValueCountMatchSpies if they need to monitor more than
10864           one slot.
10866 Tue Dec 01 08:04:17 GMT 2009  Olly Betts <olly@survex.com>
10868         * tests/Makefile.am,tests/api_compact.cc: Add test coverage for
10869           xapian-compact --no-renumber with multiple databases.
10871 Tue Dec 01 06:25:47 GMT 2009  Olly Betts <olly@survex.com>
10873         * tests/api_backend.cc: Clean up matchdecider4.
10875 Tue Dec 01 06:12:29 GMT 2009  Olly Betts <olly@survex.com>
10877         * HACKING: A couple more std::string efficiency tips.
10879 Tue Dec 01 05:51:52 GMT 2009  Olly Betts <olly@survex.com>
10881         * api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
10882           net/remoteserver.cc: Throw UnimplementedError if a matchdecider or
10883           "legacy" matchspy is used with the remote backend.
10884         * tests/api_backend.cc: Add regression test matchdecider4.
10886 Mon Nov 30 05:42:43 GMT 2009  Olly Betts <olly@survex.com>
10888         * backends/remote/remote-database.cc,common/remote-database.h,
10889           common/remoteprotocol.h,common/remoteserver.h,
10890           docs/remote_protocol.html,net/remoteserver.cc,tests/api_metadata.cc,
10891           tests/harness/testrunner.cc: Add support for
10892           WritableDatabase::set_metadata() and Database::get_metadata() to the
10893           remote backend (based largely on patch in #178).
10894         * AUTHORS: Thanks to Paul Rudin for patch.
10896 Thu Nov 26 07:25:15 GMT 2009  Olly Betts <olly@survex.com>
10898         * NEWS: Start to update from ChangeLog.
10900 Thu Nov 26 02:26:43 GMT 2009  Olly Betts <olly@survex.com>
10902         * common/str.cc: Tweak the length calculation for the buffer used by
10903           str() when converting integers to strings so that the buffer is
10904           exactly the minimum required size for integers of size 1, 2, 4,
10905           and 8 bytes, and only a byte extra for 16 byte integers.
10907 Wed Nov 25 05:59:13 GMT 2009  Olly Betts <olly@survex.com>
10909         * bin/xapian-compact.cc: In the --no-renumber case, just set offset[]
10910           entries to zero to start with rather than fixing them up later.
10912 Wed Nov 25 05:49:37 GMT 2009  Olly Betts <olly@survex.com>
10914         * bin/xapian-compact.cc: Extend --no-renumber to support merging
10915           databases, but only if they have disjoint ranges of used document
10916           ids.
10918 Wed Nov 25 04:37:38 GMT 2009  Olly Betts <olly@survex.com>
10920         * bin/xapian-compact.cc: Fix typos in --help output.
10922 Wed Nov 25 04:22:26 GMT 2009  Olly Betts <olly@survex.com>
10924         * bin/xapian-compact.cc: Prune unused docids off the end of database
10925           when merging multiple databases with renumbering.
10927 Wed Nov 25 03:12:24 GMT 2009  Olly Betts <olly@survex.com>
10929         * bin/xapian-compact.cc: Use string() instead of "" and string(1, '\0')
10930           instead of string("", 1).
10932 Wed Nov 25 02:34:10 GMT 2009  Olly Betts <olly@survex.com>
10934         * backends/chert/chert_lock.cc: Fix locking code to work if stdin
10935           and/or stdout have been closed.
10936         * backends/flint/flint_lock.cc: Backport fix to flint.
10937         * tests/api_backend.cc: Add regression test lockfilefd0or1.
10939 Wed Nov 25 00:59:05 GMT 2009  Olly Betts <olly@survex.com>
10941         * backends/chert/chert_database.cc,backends/chert/chert_lock.cc,
10942           backends/chert/chert_lock.h: Add "FDLIMIT" reason code for why
10943           locking failing.
10945 Tue Nov 24 12:44:56 GMT 2009  Olly Betts <olly@survex.com>
10947         * api/omdatabase.cc: Factor out throwing an exception for docid 0 not
10948           being valid.
10950 Tue Nov 24 12:39:10 GMT 2009  Olly Betts <olly@survex.com>
10952         * tests/api_none.cc: Note previous fix was ticket#415.
10954 Tue Nov 24 12:33:12 GMT 2009  Olly Betts <olly@survex.com>
10956         * api/omdatabase.cc: Fix many Xapian::Database methods to behave better
10957           on a database with no subdatabases, such as is constructed by
10958           Database().
10959         * tests/Makefile.am,tests/api_nodb.cc,tests/api_none.cc: Expand
10960           emptydb_metadata1 to also regression test these other cases, and
10961           rename to nosubdatabases1.
10963 Mon Nov 23 14:01:51 GMT 2009  Olly Betts <olly@survex.com>
10965         * common/debuglog.h: Add "NO_ARGS" which can be used for debug logging
10966           when a function or method takes no arguments.  The main advantage
10967           over "" is that no extra code is generated for it.
10968         * api/omdatabase.cc: Convert to use debuglog.h fully.
10969         * api/matchspy.cc,api/omdatabase.cc: Make use of NO_ARGS.
10971 Mon Nov 23 09:10:55 GMT 2009  Olly Betts <olly@survex.com>
10973         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc,
10974           common/debuglog.cc,common/debuglog.h,common/omdebug.h,configure.ac,
10975           matcher/multimatch.cc,queryparser/queryparser.lt: Rename
10976           XAPIAN_DEBUG_VERBOSE macro to XAPIAN_DEBUG_LOG to better match the
10977           user-visible "--enable-log" configure option which controls it.
10979 Mon Nov 23 08:08:45 GMT 2009  Olly Betts <olly@survex.com>
10981         * backends/chert/chert_database.cc,backends/chert/chert_lock.cc,
10982           backends/chert/chert_table.cc,backends/flint/: Use string() or
10983           s.resize(0) instead of "".  Use string(1, '\0') instead of
10984           string("", 1).
10986 Sun Nov 22 14:20:51 GMT 2009  Olly Betts <olly@survex.com>
10988         * backends/chert/chert_postlist.cc: When skipping through a chunk of
10989           postings to find the one we want, don't bother to unpack the wdf
10990           values we're skipping over, which should save a significant amount
10991           of time in certain cases where the profile data shows we spend
10992           something like 1/3 of the time in the function where this happens.
10994 Sun Nov 22 13:12:39 GMT 2009  Olly Betts <olly@survex.com>
10996         * api/matchspy.cc,backends/chert/chert_values.cc,
10997           languages/steminternal.cc: Tweak whitespace after while to be
10998           consistent.
11000 Sat Nov 21 17:39:23 GMT 2009  Richard Boulton <richard@tartarus.org>
11002         * backends/chert/chert_values.cc,backends/chert/chert_values.h:
11003           Make ValueChunkReader::skip_to() assign the value to a string
11004           only when the target has been reached.  Saves a lot of
11005           unnecessary string copying - on a benchmark of mydeco data,
11006           improves time for 100 queries from 3.66s to 3.10s.
11008 Sat Nov 21 01:13:26 GMT 2009  Olly Betts <olly@survex.com>
11010         * tests/: Make arrays which don't need to be modified const.
11012 Sat Nov 21 00:01:04 GMT 2009  Olly Betts <olly@survex.com>
11014         * tests/api_matchspy.cc: The default parameter for
11015           get_writable_database() is string(), so don't explicitly pass "".
11017 Fri Nov 20 16:19:13 GMT 2009  Richard Boulton <richard@tartarus.org>
11019         * tests/api_matchspy.cc: Add regression test for underflow in
11020           numeric ranges (based on python version in ticket #321).
11022 Fri Nov 20 10:54:08 GMT 2009  Olly Betts <olly@survex.com>
11024         * matcher/valuestreamdocument.cc: Use check() instead of skip_to() in
11025           ValueStreamDocument.
11027 Fri Nov 20 09:57:12 GMT 2009  Olly Betts <olly@survex.com>
11029         * common/document.h,matcher/: Implement ValueStreamDocument subclass
11030           of Xapian::Document::Internal which provides a way to connect up
11031           valuestreams to uses of values during the match.  Other
11032           (non-recommended) uses of the Document passed to MatchDecider, etc
11033           are passed through to a lazily created backend Document::Internal
11034           subclass.  This should be a lot more efficient for chert.  It's
11035           unclear how it will affect performance for backends which don't store
11036           values in streams - profiling is required.
11038 Fri Nov 20 02:35:14 GMT 2009  Olly Betts <olly@survex.com>
11040         * backends/inmemory/inmemory_document.cc: Fix closedb1 on InMemory
11041           backend, broken by recent commit.
11043 Thu Nov 19 12:03:52 GMT 2009  Olly Betts <olly@survex.com>
11045         * backends/multi/multi_valuelist.cc: Fix to handle the case where all
11046           the sublists turn out to be empty when we first call next().
11048 Thu Nov 19 11:12:53 GMT 2009  Olly Betts <olly@survex.com>
11050         * backends/inmemory/: Set the document data and values lazily for the
11051           inmemory backend too.  They're much less costly to fetch than if
11052           a disk access may be needed, but it avoids a copy of the respective
11053           data if they aren't needed, and either could potentially be large.
11054           Consistency here also makes things easier to understand.
11056 Thu Nov 19 08:47:24 GMT 2009  Olly Betts <olly@survex.com>
11058         * api/omdocument.cc: Prefer string() to "".
11060 Thu Nov 19 07:38:29 GMT 2009  Olly Betts <olly@survex.com>
11062         * api/omdatabase.cc,backends/multi/Makefile.mk,
11063           backends/multi/multi_valuelist.cc,common/Makefile.mk,
11064           common/multivaluelist.h,tests/api_valuestream.cc: Implement support
11065           for iterating valuestreams for multidatabases.
11067 Thu Nov 19 06:19:05 GMT 2009  Olly Betts <olly@survex.com>
11069         * bin/xapian-check.cc: Rework the checking of postlist chunks into
11070           a cleaner approach which should report errors better, and
11071           eliminate the (probably) impossible "did might not be initialised"
11072           path which GCC 4.2 spotted.
11074 Thu Nov 19 01:15:03 GMT 2009  Olly Betts <olly@survex.com>
11076         * common/pack.h: Remove incorrect assertion and document what NULL
11077           parameter value means in this case.
11079 Wed Nov 18 16:33:01 GMT 2009  Richard Boulton <richard@tartarus.org>
11081         * bin/xapian-check.cc: Fix compiler warning (with gcc-4.2) that did
11082           could be used uninitialised: it couldn't be, but it's hard for a
11083           compiler to see that.
11085 Wed Nov 18 12:48:17 GMT 2009  Richard Boulton <richard@tartarus.org>
11087         * AUTHORS: Update my email address.
11089 Wed Nov 18 12:21:09 GMT 2009  Olly Betts <olly@survex.com>
11091         * common/valuelist.h: Fix internal documentation comment.
11093 Wed Nov 18 10:40:54 GMT 2009  Olly Betts <olly@survex.com>
11095         * configure.ac: Use <cstdlib>, <cmath>, <cstdio>, <cstring> for
11096           configure tests since we use these forms in the code and want
11097           consistency between what configure tests and what the code
11098           uses.
11099         * NEWS,configure.ac: Update for 1.1.3.
11101 Wed Nov 18 10:39:59 GMT 2009  Olly Betts <olly@survex.com>
11103         * PLATFORMS: Update from 1.0.17.
11105 Wed Nov 18 10:31:49 GMT 2009  Olly Betts <olly@survex.com>
11107         * INSTALL: Improve text about zlib dependency.
11109 Wed Nov 18 10:13:59 GMT 2009  Olly Betts <olly@survex.com>
11111         * INSTALL: Note the package to install for building against libuuid on
11112           Fedora, and note that libuuid isn't required on Microsoft Windows.
11114 Wed Nov 18 02:34:30 GMT 2009  Olly Betts <olly@survex.com>
11116         * NEWS: Update from 1.0.17 and ChangeLog.
11118 Mon Nov 16 08:35:52 GMT 2009  Olly Betts <olly@survex.com>
11120         * queryparser/queryparser.lemony: Fix interaction of FLAG_PARTIAL and
11121           FLAG_SYNONYM.  (ticket#407)
11122         * tests/Makefile.am,tests/api_qpbackend.cc: Add regression test
11123           qpsynonympartial1.
11125 Mon Nov 16 02:15:14 GMT 2009  Olly Betts <olly@survex.com>
11127         * backends/flint/flint_version.cc: Add "using namespace std;" and drop
11128           the explicit std:: qualifiers.
11130 Fri Nov 13 02:27:48 GMT 2009  Olly Betts <olly@survex.com>
11132         * backends/chert/chert_spelling.h,backends/chert/chert_table.h,
11133           backends/flint/flint_spelling.h,backends/flint/flint_table.h,
11134           common/getopt.cc,common/stringutils.h,languages/steminternal.h:
11135           Add missing std:: qualifiers for functions in <cstring>, <cstdlib>,
11136           etc.
11138 Fri Nov 13 02:25:50 GMT 2009  Olly Betts <olly@survex.com>
11140         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Add
11141           "using namespace std;" and drop the explicit std:: qualifiers.
11143 Fri Nov 13 02:11:18 GMT 2009  Olly Betts <olly@survex.com>
11145         * common/str.cc: Use assignment to initialise a size_t - the current
11146           code was turning a missing snprintf() prototype into a confusing
11147           error message with Sun's C++, and is less clear anyway.
11149 Fri Nov 13 02:03:28 GMT 2009  Olly Betts <olly@survex.com>
11151         * HACKING,backends/chert/chert_lock.cc,backends/flint/flint_lock.cc,
11152           backends/remote/remote-database.cc,net/remoteserver.cc,
11153           net/tcpserver.cc,tests/harness/backendmanager_remotetcp.cc,
11154           tests/harness/testsuite.cc: Sun C++'s <csignal> (not unreasonably)
11155           excludes non-ISO-C functions which are in <signal.h> - for example,
11156           kill() (which POSIX specifies).  So revert <csignal> to <signal.h>
11157           and document this as a global exception.
11159 Thu Nov 12 08:30:07 GMT 2009  Olly Betts <olly@survex.com>
11161         * matcher/collapser.h: Remove spurious comma after last entry in enum,
11162           which Sun's C++ compiler warns about.
11164 Thu Nov 12 00:24:55 GMT 2009  Olly Betts <olly@survex.com>
11166         * matcher/multimatch.cc: Sorter -> KeyMaker in an exception message.
11168 Thu Nov 12 00:01:55 GMT 2009  Olly Betts <olly@survex.com>
11170         * include/xapian/database.h: Tweak documentation comments about
11171           committing changes.
11173 Wed Nov 11 12:23:48 GMT 2009  Olly Betts <olly@survex.com>
11175         * queryparser/queryparser.lemony: Fix handling of a group of stopwords
11176           which notably caused issues when default_op was OP_AND, but could
11177           probably manifest in other cases too.  Fixes ticket#406.
11178         * tests/queryparsertest.cc: Add regression test qp_stopword_group1.
11180 Wed Nov 11 10:54:58 GMT 2009  Olly Betts <olly@survex.com>
11182         * backends/chert/chert_version.h,common/safeuuid.h: Fix workaround for
11183           uuid.h headers which lack const to actually work on Solaris.
11185 Wed Nov 11 10:53:50 GMT 2009  Olly Betts <olly@survex.com>
11187         * common/Makefile.mk: Need to ship new pack.h header.
11189 Tue Nov 10 22:27:47 GMT 2009  Olly Betts <olly@survex.com>
11191         * bin/xapian-check.cc: Fix compiler warning introduced by previous
11192           change.
11194 Tue Nov 10 12:24:34 GMT 2009  Olly Betts <olly@survex.com>
11196         * backends/chert/,bin/xapian-check.cc,common/pack.h: Rewrite the
11197           packing and unpacking functions more efficiently.  As well as being
11198           generally faster, the pack functions now take a reference to a string
11199           to append to, which avoids creating a lot of temporary string
11200           objects.  Indexing HTML files with omindex is 5-10% faster.
11201           Searching for "The" on gmane (which results in a lot of unpacking of
11202           postings and document lengths) is about 35% faster.  (ticket#326)
11204 Thu Nov 05 03:55:37 GMT 2009  Olly Betts <olly@survex.com>
11206         * common/safeuuid.h: Fix to work with uuid libraries which lack const
11207           qualifiers.  Fixes build failure on Solaris.
11209 Thu Nov 05 00:15:24 GMT 2009  Olly Betts <olly@survex.com>
11211         * HACKING: Update details of debian packaging.
11213 Wed Nov 04 04:11:38 GMT 2009  Olly Betts <olly@survex.com>
11215         * common/output.h: Use C++ syntax for NULL with a type in log output.
11217 Wed Nov 04 04:02:09 GMT 2009  Olly Betts <olly@survex.com>
11219         * queryparser/lemon.c: Avoid trivial memory leak.
11221 Wed Nov 04 00:13:00 GMT 2009  Olly Betts <olly@survex.com>
11223         * include/xapian/database.h: Reword to avoid somewhat ambiguous "this
11224           method".
11226 Tue Nov 03 12:12:09 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11228         * include/xapian/database.h: Make it more clear that you need to
11229           add the unique term to the document if you want to use
11230           replace_document() to use external unique IDs for documents.
11232 Tue Nov 03 06:08:43 GMT 2009  Olly Betts <olly@survex.com>
11234         * tests/generate-api_generated: Update MultiValueSorter to
11235           MultiValueKeyMaker.
11237 Tue Nov 03 05:51:23 GMT 2009  Olly Betts <olly@survex.com>
11239         * tests/api_sorting.cc,tests/api_sortingold.cc: Fix changesorter1 and
11240           oldchangesorter1 to not be run for the remote backend where they will
11241           now fail with UnimplementedError.
11243 Tue Nov 03 02:43:12 GMT 2009  Olly Betts <olly@survex.com>
11245         * matcher/multimatch.cc: Xapian::Sorter isn't supported with the remote
11246           backend so throw UnimplementedError rather than giving incorrect
11247           results.  (ticket#384)
11248         * tests/api_sorting.cc: Add sortfunctorremote1 test this exception is
11249           actually thrown.
11251 Tue Nov 03 01:26:57 GMT 2009  Olly Betts <olly@survex.com>
11253         * common/database.h: Fix vertical whitespace glitch.
11255 Mon Nov 02 08:10:03 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11257         * api/omdatabase.cc: Check that internal is not empty before
11258           referencing its first element, in get_metadata() and
11259           metadata_keys_begin(), to avoid a potential segfault.
11260         * tests/api_nodb.cc: Add emptydb_metadata1, a regression test for
11261           this bug.
11263 Sun Nov 01 22:10:54 GMT 2009  Olly Betts <olly@survex.com>
11265         * examples/delve.cc,examples/quest.cc: Extend exception handling to the
11266           whole of main.  Xapian::Stem("english") can't actually throw, but
11267           that's not obvious to static analysis tools, and it is more robust
11268           to wrap the whole of main, and reduces indentation.
11270 Sun Nov 01 21:27:05 GMT 2009  Olly Betts <olly@survex.com>
11272         * bin/xapian-compact.cc: Add missing exception catch for const char *.
11273           The only case which currently throws this is an "impossible"
11274           situation, but if we're going to check for it, the reporting of
11275           failure should actually work.  Identified by Coverity's Scan.
11277 Sun Nov 01 07:56:38 GMT 2009  Olly Betts <olly@survex.com>
11279         * examples/quest.cc: Tighten up the type of the error we catch to
11280           detect an unknown stemming language.
11282 Sat Oct 31 07:16:11 GMT 2009  Olly Betts <olly@survex.com>
11284         * NEWS: Update from ChangeLog.
11286 Sat Oct 31 06:59:19 GMT 2009  Olly Betts <olly@survex.com>
11288         * include/xapian/enquire.h: Fix deprecation warnings when building with
11289           recent GCC.
11291 Sat Oct 31 02:46:04 GMT 2009  Olly Betts <olly@survex.com>
11293         * tests/queryparsertest.cc: Add another test query string to cover a
11294           case we didn't previously check.
11296 Tue Oct 27 00:42:59 GMT 2009  Olly Betts <olly@survex.com>
11298         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Don't
11299           try to close the fd one more than the maximum allowable.
11300           (ticket#408)
11301         * AUTHORS: Add Carl Worth for the patch.
11303 Mon Oct 05 09:00:58 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11305         * configure.ac: Mention e2fsprogs-devel in the message thrown up by
11306           configure, too.
11308 Mon Oct 05 08:53:05 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11310         * HACKING: Note the command needed to get the uuid library
11311           installed on fedora, since it's rather non-obvious.
11313 Sat Oct 03 20:11:48 GMT 2009  Olly Betts <olly@survex.com>
11315         * unicode/tclUniData.cc: Update Unicode character database to Unicode
11316           5.2.  (ticket#351)
11317         * tests/api_unicode.cc: Add tests for some characters added in Unicode
11318           5.2.
11320 Thu Oct 01 21:19:34 GMT 2009  Olly Betts <olly@survex.com>
11322         * xapian-config.in: Need to quote ^ for Solaris /bin/sh.
11324 Fri Sep 18 13:23:00 GMT 2009  Olly Betts <olly@survex.com>
11326         * configure.ac: Actually use any flags we determine are needed to
11327           switch the compiler to proper ANSI C++ mode, when building
11328           xapian-core - this stopped working in 1.0.12, breaking support for
11329           HP's aCC, Compaq's cxx, Sun's CC, and SGI's CC.
11331 Fri Sep 18 12:40:37 GMT 2009  Olly Betts <olly@survex.com>
11333         * include/xapian/matchspy.h: Mark ValueCountMatchSpy, NumericRange,
11334           NumericRanges, and score_evenness() as experimental.
11336 Fri Sep 18 08:36:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11338         * include/xapian/weight.h,weight/weight.cc: Remove default
11339           implementation of Weight::clone() which returns NULL - we always
11340           need clone() to be implemented because it's called for every term
11341           in the query, not just used for the remote backend.
11343 Fri Sep 18 08:02:08 GMT 2009  Olly Betts <olly@survex.com>
11345         * api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h: Mark
11346           and document the matchspy parameter of Enquire::get_mset() as
11347           deprecated in favour of the new MatchSpy class and
11348           Enquire::add_matchspy().
11350 Fri Sep 18 07:58:11 GMT 2009  Olly Betts <olly@survex.com>
11352         * tests/perftest/perftest_matchdecider.cc: Don't pass default values
11353           for optional parameters to Enquire::get_mset().
11355 Fri Sep 18 02:36:43 GMT 2009  Olly Betts <olly@survex.com>
11357         * queryparser/queryparser.lemony: If FLAG_PARTIAL is specified, don't
11358           try to spell correct a term at the end of the query which we attempt
11359           to expand as partial.
11360         * tests/queryparsertest.cc: Add regression test qp_spellpartial1.
11362 Fri Sep 18 02:33:55 GMT 2009  Olly Betts <olly@survex.com>
11364         * tests/queryparsertest.cc: For testcase qp_spellwild1: Fix the dbdir
11365           to qp_spellwild1 to match the testname;  Fix the ordering of
11366           TESTCASE macros to match the order of the test functions;  Note that
11367           this is a regression test and the versions the bug will be fixed in.
11369 Fri Sep 18 01:25:37 GMT 2009  Olly Betts <olly@survex.com>
11371         * tests/queryparsertest.cc: Fix to work with the old scoping rules for
11372           variables declared in for().
11374 Thu Sep 17 19:17:30 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11376         * queryparser/queryparser.lemony: Don't apply spelling correction
11377           to wildcard terms if FLAG_WILDCARD and FLAG_SPELLING_CORRECTION
11378           are both specified.
11379         * tests/queryparsertest.cc: Add qp_spellwild1 as a test for this.
11381 Thu Sep 17 12:08:17 GMT 2009  Olly Betts <olly@survex.com>
11383         * NEWS: Update from ChangeLog.
11385 Thu Sep 17 10:20:35 GMT 2009  Olly Betts <olly@survex.com>
11387         * api/keymaker.cc: Implement Richard's idea of not encoding any
11388           trailing, forward sorted, empty values which is a generalisation
11389           of encoding all forward sorted, empty values as an empty string.
11390         * tests/api_sorting.cc: Add new testcase multivaluekeymaker1 to
11391           check encodings are as expected.
11393 Thu Sep 17 07:15:10 GMT 2009  Olly Betts <olly@survex.com>
11395         * api/,common/multimatch.h,common/omenquireinternal.h,
11396           docs/deprecation.rst,docs/sorting.rst,include/Makefile.mk,
11397           include/xapian.h,include/xapian/enquire.h,include/xapian/keymaker.h,
11398           include/xapian/sorter.h,matcher/multimatch.cc,tests/Makefile.am,
11399           tests/api_sorting.cc,tests/api_sortingold.cc: Rename Sorter to
11400           KeyMaker, paving the way for using it to build collapse keys too.
11401           Resolve the inconsistency in MultiValueSorter::add()'s "forward"
11402           parameter by replacing it with MultiKeyMaker::add_value() with a
11403           "reverse" parameter.  (ticket#359)
11405 Thu Sep 17 07:13:25 GMT 2009  Olly Betts <olly@survex.com>
11407         * api/valuesetmatchdecider.cc,include/xapian/valuesetmatchdecider.h:
11408           Inline trivial constructor from header.  Add explicit '#include
11409           "xapian/document.h"'.
11411 Thu Sep 17 05:22:50 GMT 2009  Olly Betts <olly@survex.com>
11413         * HACKING: Document how to use the XAPIAN_DEPRECATED() macro to
11414           mark a class as deprecated.
11416 Wed Sep 16 02:40:13 GMT 2009  Olly Betts <olly@survex.com>
11418         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
11419           Eliminate a couple of assertions which can never fire.
11421 Sat Sep 12 04:05:35 GMT 2009  Olly Betts <olly@survex.com>
11423         * matcher/msetpostlist.cc: Fix MSetPostList not to read off the end of
11424           the MSet if get_maxweight() is called when at_end().  This can
11425           happen but the testcase was too large to send so sadly no
11426           regression test I'm afraid.
11428 Sat Sep 12 03:41:04 GMT 2009  Olly Betts <olly@survex.com>
11430         * backends/chert/chert_values.cc: Fix code to find the first docid in
11431           the net chunk (ticket#399).
11432         * tests/api_backend.cc: Add regression test from Rich Lane.
11434 Fri Sep 11 11:14:49 GMT 2009  Olly Betts <olly@survex.com>
11436         * backends/chert/,bin/xapian-check.cc,bin/xapian-compact.cc: Add
11437           support for chert databases without a termlist table (ticket#181).
11438           Currently the only way to create such a database is to create a
11439           chert database and do "rm termlist.*".
11441 Fri Sep 11 10:07:35 GMT 2009  Olly Betts <olly@survex.com>
11443         * bin/xapian-compact.cc: Don't report an absent lazy input table as 0
11444           size.
11446 Fri Sep 11 03:17:17 GMT 2009  Olly Betts <olly@survex.com>
11448         * backends/chert/chert_table.h: Improve documentation of "handle"
11449           member.
11451 Thu Sep 10 13:24:29 GMT 2009  Olly Betts <olly@survex.com>
11453         * m4-macros/xapian-1.1.m4: Report the default xapian-config
11454           basename in configure's --help output.
11456 Thu Sep 10 12:55:48 GMT 2009  Olly Betts <olly@survex.com>
11458         * m4-macros/xapian-1.1.m4: Add optional third parameter to
11459           XO_LIB_XAPIAN which specifies the basename for the "xapian-config"
11460           script (defaults to "xapian-config" to give the current behaviour).
11462 Thu Sep 10 06:39:17 GMT 2009  Olly Betts <olly@survex.com>
11464         * NEWS: Update with changes in 1.0.16 and from ChangeLog.
11466 Thu Sep 10 02:17:56 GMT 2009  Olly Betts <olly@survex.com>
11468         * include/xapian/queryparser.h: Clarify the documentation comments for
11469           QueryParser::set_default_op() and QueryParser::get_default_op().
11471 Wed Sep 09 13:36:58 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11473         * matcher/andmaybepostlist.cc,tests/Makefile.am,tests/api_queryopt.cc:
11474           Back out patch from r13440 which introduced a new optimisation
11475           for AND_MAYBE when the maximum weight of the RHS becomes zero,
11476           due to various undesirable side effects.  I've put the patch into
11477           ticket #400 with an explanation.
11479 Wed Sep 09 01:54:05 GMT 2009  Olly Betts <olly@survex.com>
11481         * backends/chert/chert_postlist.cc,tests/api_backend.cc: Fix
11482           WritableDatabase::get_doclength() to work properly after a call to
11483           commit for the chert backend (ticket#397).
11485 Wed Sep 09 00:28:09 GMT 2009  Olly Betts <olly@survex.com>
11487         * AUTHORS: Add Dmitry Liakh for fix for #398.
11489 Wed Sep 09 00:02:47 GMT 2009  Olly Betts <olly@survex.com>
11491         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Fix a
11492           typo which stopped this fix in 1.0.12 from working (ticket #398):
11494           If we fail to get the lock after we spawn the child lock process
11495           (the common case is because the database is already open for
11496           writing) then we now clean up the child process properly.
11498 Fri Sep 04 11:24:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11500         * docs/categorisation.rst: Remove out-of-date call to get_mset()
11501           which passed a MatchSpy in - spies are now set with
11502           add_matchspy() before get_mset() is called.
11504 Thu Sep 03 00:29:27 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11506         * matcher/andmaybepostlist.cc: For AndMaybe, if the RHS has a
11507           maximum possible weight of 0, we now decay to just the LHS.
11508         * tests/Makefile.am,tests/api_queryopt.cc: Test coverage that this
11509           optimisation doesn't break anything.
11511 Tue Sep 01 12:04:13 GMT 2009  Olly Betts <olly@survex.com>
11513         * configure.ac: Send stderr output from ldconfig to config.log.
11515 Tue Sep 01 10:35:51 GMT 2009  Olly Betts <olly@survex.com>
11517         * AUTHORS,common/safeuuid.h: Fix uuid_unparse_lower() replacement for
11518           older libuuid to actually compile (really fixes ticket#368).
11520 Mon Aug 31 05:58:55 GMT 2009  Olly Betts <olly@survex.com>
11522         * NEWS: Sync with 1.0.15.
11524 Mon Aug 31 05:48:13 GMT 2009  Olly Betts <olly@survex.com>
11526         * NEWS: Start to format entries for 1.1.3.
11528 Mon Aug 31 04:14:58 GMT 2009  Olly Betts <olly@survex.com>
11530         * PLATFORMS: Sync with 1.0.15.
11532 Mon Aug 31 01:30:01 GMT 2009  Olly Betts <olly@survex.com>
11534         * common/getopt.cc: Use USE_GLIBC_GNUGETOPT from gnu_getopt.h rather
11535           than repeating the conditionals used to determine it here.  Rename
11536           __getopt_initialized to getopt_initialized and make it static.
11537           Rename _getopt_initialize() to getopt_initialize().
11539 Mon Aug 31 01:24:29 GMT 2009  Olly Betts <olly@survex.com>
11541         * common/gnu_getopt.h: Update (C) dates.  Markup file description for
11542           doxygen.  Fix comment reference to ctype.h as we now use <cctype>.
11544 Sun Aug 30 23:28:25 GMT 2009  Olly Betts <olly@survex.com>
11546         * common/gnu_getopt.h: Make optarg, optind, opterr, and optopt extern
11547           "C" to avoid linkage clash with these symbols on Mac OS X 10.6.
11549 Thu Aug 27 03:05:33 GMT 2009  Olly Betts <olly@survex.com>
11551         * HACKING: Add note to document the reason for any exceptions to the
11552           rule to use C++ forms of ISO C headers.
11554 Wed Aug 26 13:07:07 GMT 2009  Olly Betts <olly@survex.com>
11556         * AUTHORS,INSTALL,docs/install.html: Drop .php from xapian.org URLs.
11558 Wed Aug 26 12:58:51 GMT 2009  Olly Betts <olly@survex.com>
11560         * HACKING: Update URLs.  Remove duplicated text about updating RoadMap
11561           from the release checklist.
11563 Wed Aug 26 10:56:07 GMT 2009  Olly Betts <olly@survex.com>
11565         * configure.ac: Update various URLs.
11567 Tue Aug 25 01:52:51 GMT 2009  Olly Betts <olly@survex.com>
11569         * tests/harness/testsuite.cc: Fix not to report heaps of bogus errors
11570           under valgrind 3.5.0.
11572 Mon Aug 24 02:19:06 GMT 2009  Olly Betts <olly@survex.com>
11574         * include/xapian/enquire.h: Also update the documentation comment for
11575           set_sort_by_relevance_then_value() to mention sortable_serialise().
11577 Fri Aug 21 14:35:35 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11579         * Makefile.am: Add generate-exceptions to EXTRA_DIST - was missing
11580           from tarballs.
11582 Fri Aug 21 12:21:59 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11584         * AUTHORS: Add Michael Vogt, who suggested adding a comment about
11585           sortable_serialise to set_sort_by_value().
11587 Fri Aug 21 12:14:13 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11589         * include/xapian/enquire.h: Update documentation comments for
11590           set_sort_by_value() and set_sort_by_value_then_relevance() to
11591           mention sortable_serialise() as a good way to store values if you
11592           want to sort by them.
11594 Mon Aug 17 16:51:10 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11596         * matcher/multimatch.cc: When sorting by non-pure-relevance, ensure
11597           that the document is shown to the matchspy even if it couldn't
11598           get in the mset.
11599         * tests/api_matchspy.cc: Extend matchspy4 to include a regression
11600           test for this.
11602 Mon Aug 17 11:51:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11604         * api/matchspy.cc,include/xapian/matchspy.h: Add overload for
11605           score_evenness to allow a NumericRanges object to be passed to
11606           it.
11608 Mon Aug 17 07:36:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11610         * api/matchspy.cc,include/xapian/matchspy.h: Replace
11611           build_numeric_ranges() function with a NumericRanges object,
11612           whose constructor is passed the values and which exposes the
11613           calculated ranges via a getter.
11614         * tests/api_matchspy.cc: Update tests to use new NumericRanges
11615           object instead of build_numeric_ranges().
11617 Wed Aug 12 17:33:53 GMT 2009  Olly Betts <olly@survex.com>
11619         * Makefile.am: Fix generate-exceptions change to work in a VPATH
11620           build.
11622 Wed Aug 12 15:57:44 GMT 2009  Olly Betts <olly@survex.com>
11624         * exception_data.pm: Add new SerialisationError.
11625         * common/serialise-double.cc: Throw SerialisationError or InternalError
11626           instead of NetworkError.
11628 Wed Aug 12 15:19:05 GMT 2009  Olly Betts <olly@survex.com>
11630         * Makefile.am,configure.ac,generate-exceptions,generate-exceptions.in:
11631           It's not very useful to be able to run generate-exceptions outside
11632           the build system, and it only gets the #! line substituted, so just
11633           move those runes into Makefile.am and reduce the number of files that
11634           configure needs to generate by one.
11636 Mon Aug 10 13:25:22 GMT 2009  Olly Betts <olly@survex.com>
11638         * api/matchspy.cc: Use <cfloat> and <cmath> rather than <float.h> and
11639           <math.h> (regression from merging the matchspy branch).
11641 Mon Aug 10 13:01:57 GMT 2009  Olly Betts <olly@survex.com>
11643         * api/,bin/xapian-tcpsrv.cc,common/,docs/postingsource.rst,
11644           docs/serialisation.rst,include/Makefile.mk,include/xapian.h,
11645           include/xapian/,net/remoteserver.cc,tests/: Rename
11646           SerialisationContext to Registry.
11648 Mon Aug 10 11:23:23 GMT 2009  Olly Betts <olly@survex.com>
11650         * NEWS: Start to update from ChangeLog.
11652 Mon Aug 10 10:29:13 GMT 2009  Olly Betts <olly@survex.com>
11654         * api/omenquire.cc,include/xapian/weight.h,matcher/localmatch.cc:
11655           Make Weight::clone() public, and remove Weight::clone_() as it is
11656           no longer required.
11658 Mon Aug 10 07:55:04 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11660         * HACKING: Add section on ordering of include files, and fix a few
11661           formatting issues to make this file into valid restructured text
11662           again.
11664 Mon Aug 10 06:55:45 GMT 2009  Olly Betts <olly@survex.com>
11666         * api/serialisationcontext.cc,common/serialisationcontextinternal.h:
11667           Refactor to use a template function to implement the exception safe
11668           approach I implemented for PostingSource, and use it for MatchSpy
11669           and Weight too.
11670         * tests/api_serialise.cc: Add tests for exception safety of MatchSpy
11671           and Weight with SerialisationContext.
11673 Mon Aug 10 06:15:23 GMT 2009  Olly Betts <olly@survex.com>
11675         * include/xapian/weight.h,weight/weight.cc: Add default implementations
11676           of Weight methods name(), serialise(), unserialise(), and clone() for
11677           consistency with PostingSource and MatchSpy.
11679 Mon Aug 10 03:29:12 GMT 2009  Olly Betts <olly@survex.com>
11681         * tests/api_postingsource.cc: Tweak header include order.
11683 Tue Aug 04 15:49:54 GMT 2009  Olly Betts <olly@survex.com>
11685         * include/xapian/queryparser.h: Explicitly document that an empty
11686           prefix argument to QueryParser::add_prefix() means "no prefix".
11688 Tue Aug 04 13:11:26 GMT 2009  Olly Betts <olly@survex.com>
11690         * api/postingsource.cc: Throw UnimplementedError rather than
11691           InvalidOperationError from PostingSource::serialise() and
11692           PostingSource::unserialise() for consistency with MatchSpy.
11693         * include/xapian/postingsource.h: Document this behaviour (previously
11694           we didn't say what the default implementation actually did).
11695         * tests/api_serialise.cc: Add test coverage.
11697 Mon Aug 03 11:40:31 GMT 2009  Olly Betts <olly@survex.com>
11699         * api/serialisationcontext.cc: Fix to handle the clone() method or dtor
11700           of a PostingSource subclass throwing exceptions.
11701         * tests/api_serialise.cc: Add new testcase serialisationcontext1 as a
11702           regression test for this.
11704 Mon Aug 03 06:40:28 GMT 2009  Olly Betts <olly@survex.com>
11706         * tests/api_serialise.cc: Fix copy-and-pasted @brief.
11708 Sun Aug 02 16:21:54 GMT 2009  Olly Betts <olly@survex.com>
11710         * common/remoteprotocol.h: Correction: protocol version 33 will debut
11711           in 1.1.3 not 1.1.4.
11713 Sun Aug 02 16:20:28 GMT 2009  Olly Betts <olly@survex.com>
11715         * docs/remote_protocol.html: Update to document protocol version 33.
11717 Sun Aug 02 16:17:24 GMT 2009  Olly Betts <olly@survex.com>
11719         * backends/remote/remote-database.cc,net/remoteserver.cc: We were
11720           ignoring any trailing junk after the matchspies in MSG_GETMSET, so
11721           change to not send a count of them and just unpack until we run out
11722           of data.
11724 Sun Aug 02 15:47:30 GMT 2009  Olly Betts <olly@survex.com>
11726         * common/remoteprotocol.h: Note the versions in which recent protocol
11727           versions were introduced.
11729 Sun Aug 02 15:09:13 GMT 2009  Olly Betts <olly@survex.com>
11731         * backends/remote/remote-database.cc,common/serialise.h,
11732           net/remoteserver.cc,net/serialise.cc: Put the serialised MSet last in
11733           REPLY_RESULTS as then it doesn't need to know its own length (so the
11734           encoding is the same size it used to be in the non-matchspy case),
11735           and we avoid having to check for there being "junk" data left over
11736           after unserialising.
11738 Sun Aug 02 14:39:18 GMT 2009  Olly Betts <olly@survex.com>
11740         * matcher/remotesubmatch.h: Fix to build with GCC 4.4.1.
11742 Sun Aug 02 14:27:44 GMT 2009  Olly Betts <olly@survex.com>
11744         * backends/remote/remote-database.cc: Don't assign a temporary string
11745           object.
11747 Sun Aug 02 13:50:14 GMT 2009  Olly Betts <olly@survex.com>
11749         * include/xapian/matchspy.h: Add missing documentation comments.
11751 Sun Aug 02 12:15:43 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11753         Merge from matchspy branch.
11754         * api/,backends/remote/remote-database.cc,common/,docs/Makefile.am,
11755           docs/categorisation.rst,include/Makefile.mk,include/xapian.h,
11756           include/xapian/enquire.h,include/xapian/matchspy.h,
11757           include/xapian/serialisationcontext.h,matcher/multimatch.cc,
11758           matcher/remotesubmatch.cc,matcher/remotesubmatch.h,
11759           net/remoteserver.cc,net/serialise.cc,tests/Makefile.am,
11760           tests/api_matchspy.cc: Add new-style Xapian::MatchSpy class,
11761           which is a pure "spy" class, rather than being able to take a
11762           decision on whether a spy is applied before or after a result.
11763           This class is also designed to work with remote databases,
11764           passing the results back in serialised form.  Also, add
11765           ValueCountMatchSpy, which counts the occurrences of each value in
11766           a slot in the search results seen (useful for faceted or
11767           categorisation systems).
11769 Fri Jul 31 12:50:57 GMT 2009  Olly Betts <olly@survex.com>
11771         * tests/api_backend.cc,tests/api_wrdb.cc: Move new test
11772           modifiedpostlist1 from api_wrdb.cc to api_backend.cc - we're trying
11773           not to make api-wrdb.cc any larger.  Also note the ticket number and
11774           the release this will be fixed in.
11776 Thu Jul 30 16:30:06 GMT 2009  Olly Betts <olly@survex.com>
11778         * backends/chert/chert_modifiedpostlist.cc: Fix ChertModifiedPostList
11779           to skip added-but-then-deleted-before-flush documents.  (ticket#392)
11780           backends/flint/flint_modifiedpostlist.cc: Same fix for flint.
11781         * tests/api_wrdb.cc: Add regression test modifiedpostlist1.
11782         * AUTHORS: Add Rich Lane for patch.
11784 Wed Jul 29 09:44:15 GMT 2009  Olly Betts <olly@survex.com>
11786         * NEWS: Update from ChangeLog.
11788 Wed Jul 29 09:29:45 GMT 2009  Olly Betts <olly@survex.com>
11790         * include/xapian/valueiterator.h: Fix typos ("again" -> "and").
11792 Wed Jul 29 06:18:41 GMT 2009  Olly Betts <olly@survex.com>
11794         * tests/Makefile.am: Actually distribute testdata/apitest_declen.txt
11795           - new test data from the postingsources branch merge.
11797 Tue Jul 28 16:38:55 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11799         Merge from postingsources branch:
11800         * tests/generate-api_generated: Test get_description() methods of
11801           Xapian::PostingSource subclasses.
11803 Tue Jul 28 16:35:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11805         Merge from postingsources branch:
11806         * api/Makefile.mk,api/decvalwtsource.cc,api/serialisationcontext.cc,
11807           include/xapian/postingsource.h: Add
11808           DecreasingValueWeightPostingSource class, which reads weights
11809           from a value slot in which a significant range of the values are
11810           in decreasing order.  This functions similarly to
11811           ValueWeightPostingSource, but can be much more efficient.
11812         * tests/api_valuestream.cc,tests/testdata/apitest_declen.txt:
11813           Tests, and some associated constructed test data, for
11814           DecreasingValueWeightPostingSource.
11816 Mon Jul 27 04:50:45 GMT 2009  Olly Betts <olly@survex.com>
11818         * HACKING: Now using autoconf 2.64.
11820 Mon Jul 27 04:46:17 GMT 2009  Olly Betts <olly@survex.com>
11822         * HACKING: Add note about preferring std::string::assign(), and also
11823           one about building up strings using +=.
11825 Mon Jul 27 04:45:15 GMT 2009  Olly Betts <olly@survex.com>
11827         * backends/chert/chert_lock.cc,backends/chert/chert_utils.h,
11828           backends/flint/flint_lock.cc,backends/flint/flint_utils.h,
11829           backends/remote/remote-database.cc: Use std::string::assign() rather
11830           than constructing a temporary string object to assign.
11832 Sun Jul 26 16:08:10 GMT 2009  Olly Betts <olly@survex.com>
11834         * AUTHORS: Update for bugs fixed in 1.0.14.
11836 Sun Jul 26 16:03:54 GMT 2009  Olly Betts <olly@survex.com>
11838         * HACKING: Update the release checklist.
11840 Sun Jul 26 14:28:25 GMT 2009  Olly Betts <olly@survex.com>
11842         * docs/doxygen_source.conf.in: Update roughly in-line with apidoc
11843           changes.  I've not looked at the output much though.
11845 Sun Jul 26 14:00:14 GMT 2009  Olly Betts <olly@survex.com>
11847         * include/xapian/database.h: Remove documentation comment for namespace
11848           Xapian - this is now documented in xapian.h.
11850 Sun Jul 26 13:59:42 GMT 2009  Olly Betts <olly@survex.com>
11852         * include/xapian/unicode.h: Add documentation comment for namespace
11853           Unicode.
11855 Sun Jul 26 13:58:44 GMT 2009  Olly Betts <olly@survex.com>
11857         * include/xapian/dbfactory.h: Add documentation comments for the
11858           backend namespaces (InMemory, etc).
11860 Sun Jul 26 13:57:29 GMT 2009  Olly Betts <olly@survex.com>
11862         * include/xapian/version_h.cc: Add documentation comments for the
11863           generated version.h, and all the preprocessor defines it contains.
11865 Sun Jul 26 13:56:15 GMT 2009  Olly Betts <olly@survex.com>
11867         * include/xapian.h: Consistently say "linked with" rather than "linked
11868           to" in some cases.  Put documentation comment for namespace Xapian
11869           in this file.
11871 Sun Jul 26 13:06:45 GMT 2009  Olly Betts <olly@survex.com>
11873         * docs/doxygen_api.conf.in: More fettling to try to get better output:
11874           + Wrap long comments.
11875           + Quote arguments containing @...@ substitutions as they could
11876             conceivably contain spaces.
11877           + ALWAYS_DETAILED_SEC = NO: since a detailed section with no extra
11878             information is pointless.
11879           + STRIP_FROM_PATH, INCLUDE_PATH: Add "@top_builddir@/include" for
11880             VPATH builds.
11881           + HIDE_UNDOC_MEMBERS = YES: otherwise @internal members show up
11882             (with no documentation).
11883           + HIDE_FRIEND_COMPOUNDS = YES: as friend declarations in the API
11884             headers are implementation details.
11885           + SHOW_INCLUDE_FILES = NO: users should just include <xapian.h>
11886             for all their API needs.
11887           + GENERATE_TODOLIST, GENERATE_TESTLIST, GENERATE_BUGLIST: all set to
11888             NO as we don't want these in the API documentation.
11889           + SHOW_NAMESPACES = YES: We have several sub-namespaces so these are
11890             useful to document.
11891           + INPUT: Prepend "@top_builddir@/include/xapian/version.h" so that
11892             XAPIAN_HAS_FLINT_BACKEND, etc are defined before parsing other
11893             headers.
11894           + EXCLUDE: remove all entries and use EXCLUDE_PATTERNS instead.
11895           + EXCLUDE_PATTERNS: Include entries corresponding to those in EXCLUDE
11896             and add */derefwrapper.h and */.* (the latter avoids trying to look
11897             in .svn or any other hidden files or directories).
11898           + REFERENCES_LINK_SOURCE = NO: Improves output.
11899           + VERBATIM_HEADERS = NO: The verbatim headers aren't very
11900             interesting.
11901           + PREDEFINED: Define XAPIAN_VISIBILITY_DEFAULT and
11902             XAPIAN_DEPRECATED(D)=D as doxygen seem reluctant to parse included
11903             files.
11904           + EXPAND_AS_DEFINED: Remove XAPIAN_VISIBILITY_DEFAULT and
11905             XAPIAN_DEPRECATED as these are now handled by PREDEFINED.
11906           + EXTERNAL_GROUPS = NO, GROUP_GRAPHS = NO: We don't use groups so
11907             disable these.
11909 Sun Jul 26 10:14:32 GMT 2009  Olly Betts <olly@survex.com>
11911         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Change
11912           @PACKAGE@ to @PACKAGE_NAME@ and @VERSION@ to @PACKAGE_VERSION@ to
11913           reflect modern autotools usage.
11915 Fri Jul 24 16:23:31 GMT 2009  Olly Betts <olly@survex.com>
11917         * configure.ac,docs/: Rename doxygen configuration files from "_conf"
11918           to ".conf".  Rename doxygen_full.conf to doxygen_source.conf, etc.
11920 Fri Jul 24 16:02:39 GMT 2009  Olly Betts <olly@survex.com>
11922         * HACKING: Update to note that doxygen is now installed in-tree, and
11923           that we now use 1.5.9 for 1.1.x snapshots and releases, and that
11924           graphviz ">1.8.10" is now required.
11926 Fri Jul 24 16:01:31 GMT 2009  Olly Betts <olly@survex.com>
11928         * include/xapian/: Documentation comment tweaks.
11930 Fri Jul 24 15:34:03 GMT 2009  Olly Betts <olly@survex.com>
11932         * include/xapian/unicode.h: Fix @param names to match parameter names.
11934 Fri Jul 24 15:33:12 GMT 2009  Olly Betts <olly@survex.com>
11936         * docs/doxygen_api_conf.in: Major doxygen config overhaul:
11937           + STRIP_FROM_PATH: Strip include from header names.
11938           + JAVADOC_AUTOBRIEF: Re-enable as we have lost most of our brief
11939             descriptions - we can fix up the few cases where this caused
11940             problems with an explicit @brief.
11941           + BUILTIN_STL_SUPPORT: Enable for slightly STL-related stuff.
11942           + DISTRIBUTE_GROUP_DOC: Enable so group members get the group's
11943             comments.
11944           + EXTRACT_STATIC, EXTRACT_LOCAL_CLASSES: Disable since we don't
11945             need these.
11946           + SHOW_NAMESPACES: Disable to hide the "Xapian" namespace.
11947           + QUIET: Enable for less doxygen chatter.
11948           + WARN_LOGFILE: Unset so warnings go to stderr to encourage us to
11949             actually fix them!
11950           + EXCLUDE: Hide base.h, deprecated.h, errordispatch.h, visibility.h.
11951           + HTML_DYNAMIC_SECTIONS: Enable so the class diagrams are hidden by
11952             default but can be "expanded" to be viewed.
11953           + COLLABORATION_GRAPH: Disable as these don't ever seem useful in
11954             the API docs.
11955           + TEMPLATE_RELATIONS: Disable as we don't want to see template
11956             instantiations in inheritance diagrams.
11957           + DOT_MULTI_TARGETS: Enable for faster dot processsing.  Needs
11958             graphviz ">1.8.10", but that's really old now.
11960 Fri Jul 24 13:00:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11962         * bin/xapian-compact.cc: Fix to work with the metainfo key stored
11963           in the latest format of chert databases.
11965 Fri Jul 24 10:32:32 GMT 2009  Olly Betts <olly@survex.com>
11967         * backends/chert/chert_values.cc: Avoid doing pointless work by trying
11968           to delete non-existent lists of values when we're just adding
11969           documents.
11971 Fri Jul 24 05:32:34 GMT 2009  Olly Betts <olly@survex.com>
11973         * docs/doxygen_api_conf.in: Update with "doxygen -u" using doxygen
11974           1.5.9 and then trim trailing whitespace.
11976 Thu Jul 23 04:10:49 GMT 2009  Olly Betts <olly@survex.com>
11978         * NEWS,configure.ac: Update for 1.1.2.
11980 Wed Jul 22 13:58:13 GMT 2009  Olly Betts <olly@survex.com>
11982         * backends/chert/chert_databasereplicator.cc,
11983           backends/flint/flint_databasereplicator.cc: Prefer += to + for
11984           building up strings.
11986 Wed Jul 22 09:01:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11988         * backends/chert/chert_databasereplicator.cc,
11989           backends/flint/flint_databasereplicator.cc: Check result of
11990           ::open() for -1, and throw an error immediately if this happens,
11991           rather than leaving it to a later call to fail with EBADF.
11992           Should make it easier to diagnose problems, since we'll now see
11993           the reason that the open() failed.
11995 Tue Jul 21 17:08:41 GMT 2009  Olly Betts <olly@survex.com>
11997         * NEWS: Update from ChangeLog and sync with 1.0.14.
11999 Mon Jul 20 04:48:32 GMT 2009  Olly Betts <olly@survex.com>
12001         * matcher/queryoptimiser.cc: Fix build with assertions enabled.
12003 Mon Jul 20 04:47:33 GMT 2009  Olly Betts <olly@survex.com>
12005         * include/xapian/query.h: Update doc comment - OP_SYNONYM can take any
12006           number of subqueries too.
12008 Sun Jul 19 17:26:53 GMT 2009  Olly Betts <olly@survex.com>
12010         * api/omqueryinternal.cc,include/xapian/query.h,matcher/localmatch.cc:
12011           Remove wqf member of Xapian::Query::Internal and store the wqf in
12012           the parameter member instead.  (ticket#280)
12014 Sun Jul 19 17:24:02 GMT 2009  Olly Betts <olly@survex.com>
12016         * api/omqueryinternal.cc,include/xapian/query.h: Remove unused
12017           method Xapian::Query::Internal::swap().
12019 Sun Jul 19 16:22:01 GMT 2009  Olly Betts <olly@survex.com>
12021         * api/valuerangeproc.cc,include/xapian/queryparser.h: Move support for
12022           a prefix/suffix from NumberValueRangeProcessor to
12023           StringValueRangeProcessor, and change NumberValueRangeProcessor and
12024           DateValueRangeProcessor to inherit from StringValueRangeProcessor so
12025           all three now support a prefix/suffix.  (ticket#220)
12026         * tests/queryparsertest.cc: Add test coverage for new features.
12028 Sun Jul 19 16:05:04 GMT 2009  Olly Betts <olly@survex.com>
12030         * tests/queryparsertest.cc: Reenable tests which require the inmemory
12031           backend to be enabled by fixing typo XAPIAN_HAS_BACKEND_INMEMORY ->
12032           XAPIAN_HAS_INMEMORY_BACKEND.
12034 Sun Jul 19 14:56:16 GMT 2009  Olly Betts <olly@survex.com>
12036         * api/documentvaluelist.cc: Use str() instead of om_tostring().
12038 Sun Jul 19 14:42:15 GMT 2009  Olly Betts <olly@survex.com>
12040         * matcher/msetcmp.cc: Eliminate two more relocations.
12042 Sun Jul 19 13:46:08 GMT 2009  Olly Betts <olly@survex.com>
12044         * api/omqueryinternal.cc: Factor out "is_distributable()" function.
12046 Sun Jul 19 11:11:06 GMT 2009  Olly Betts <olly@survex.com>
12048         * include/xapian/version_h.cc: Fix "dummy" -> "dummy[]" so the code
12049           here is valid C - we only preprocess it, but since the reason for
12050           having the dummy stuff at all is to avoid problems with "smart"
12051           preprocessors which moan if the code isn't valid, this seems worth
12052           fixing.
12054 Sun Jul 19 10:21:41 GMT 2009  Olly Betts <olly@survex.com>
12056         * backends/flint/flint_database.cc: Backport the previous change to
12057           flint.
12059 Sun Jul 19 08:04:48 GMT 2009  Olly Betts <olly@survex.com>
12061         * backends/chert/chert_database.cc: Instead of dynamically building a
12062           std::list of the leafnames we need to replicate, just list them in a
12063           compact format in the source file.  Results in smaller code and
12064           should be faster and smaller at runtime.
12066 Sat Jul 18 17:12:58 GMT 2009  Olly Betts <olly@survex.com>
12068         * languages/compiler/generator.c: Merge among table entries which are
12069           substrings of others in the same among.  We could be much cleverer
12070           and merge between amongs, and allow overlaps, etc, but this get us
12071           a nice size reduction for a small amount of effort, so it'll do for
12072           now.
12074 Sat Jul 18 15:42:48 GMT 2009  Olly Betts <olly@survex.com>
12076         * languages/compiler/generator.c,languages/steminternal.cc,
12077           languages/steminternal.h: Change how snowball generates the data used
12078           by among - instead of using pointers to the strings in struct among,
12079           store an offset into a constant pool, as this reduces the number of
12080           relocations from 5001 to 2706, which should decrease the time taken
12081           by the dynamic linker when loading the library.  This also results
12082           in slightly smaller code.
12084 Fri Jul 17 16:32:02 GMT 2009  Olly Betts <olly@survex.com>
12086         * tests/api_nodb.cc: Check output of Stem::get_description() for each
12087           supported language.
12089 Thu Jul 16 04:34:57 GMT 2009  Olly Betts <olly@survex.com>
12091         * common/fileutils.h: Remove unnecessary XAPIAN_VISIBILITY_DEFAULT
12092           (ticket#63).
12093         * common/fileutils.cc,common/fileutils.h: Make isabspath() static
12094           since it is only used by other functions in the same file.
12096 Thu Jul 16 04:13:48 GMT 2009  Olly Betts <olly@survex.com>
12098         * queryparser/queryparser.lemony: Fix comment typo.
12100 Thu Jul 16 03:59:49 GMT 2009  Olly Betts <olly@survex.com>
12102         * api/sorter.cc,include/xapian/sorter.h: MultiValueSorter doesn't
12103           need an explicit dtor - it's enough that Sorter has a virtual dtor.
12105 Thu Jul 16 03:29:41 GMT 2009  Olly Betts <olly@survex.com>
12107         * AUTHORS: Add Andreas Flöter for the Solaris package howto.
12109 Wed Jul 15 14:37:19 GMT 2009  Olly Betts <olly@survex.com>
12111         * matcher/rset.cc: Just pass pointer as AutoPtr constructor parameter
12112           rather constructing a temporary AutoPtr and invoking the assignment
12113           operator.
12115 Wed Jul 15 03:43:35 GMT 2009  Olly Betts <olly@survex.com>
12117         * common/omenquireinternal.h: "class" -> "object" in doc comment.
12119 Wed Jul 15 03:38:55 GMT 2009  Olly Betts <olly@survex.com>
12121         * tests/runtest.in: Raise the fd limit from 32 to 64 - multi_flint
12122           tests need more than 32 fds.
12124 Tue Jul 14 20:32:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12126         * api/omenquire.cc,common/omenquireinternal.h: Revert r13052, which
12127           changed Enquire::Internal::weight not to be mutable.  Expand the
12128           comment explaining why it's mutable.
12130 Tue Jul 14 18:40:43 GMT 2009  Olly Betts <olly@survex.com>
12132         * tests/runtest.in: Use "ulimit -n" where available to limit the
12133           number of available file descriptors to 32 so we catch file
12134           descriptor leaks sooner.
12136 Tue Jul 14 16:53:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12138         * api/omenquire.cc,common/omenquireinternal.h: Tidy up mutable
12139           Weight member on Enquire::Internal class; make it non-mutable,
12140           and just make a temporary BM25Weight object if the weight member
12141           was NULL.
12143 Tue Jul 14 12:36:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12145         * common/output.h: Display a "<NULL $CLASSNAME>" message in debug
12146           output when a pointer being output is NULL.  Previously, NULL
12147           Query::Internal pointers were causing segfaults with debug
12148           logging for many tests (eg, emptyquery1).
12150 Sun Jul 12 14:56:18 GMT 2009  Olly Betts <olly@survex.com>
12152         * backends/chert/chert_database.cc: We no longer have a "value" table
12153           (values are now stored in the postlist and termlist tables) so fix
12154           comments not to refer to it.
12156 Sun Jul 12 14:47:17 GMT 2009  Olly Betts <olly@survex.com>
12158         * backends/chert/: Add new ChertLazyTable class and subclass lazy
12159           tables from it so that we only need to implement the common
12160           differences once.
12162 Sun Jul 12 13:41:27 GMT 2009  Olly Betts <olly@survex.com>
12164         * api/replication.cc: No point using join_paths() to append a literal
12165           leaf name, especially as we already don't elsewhere.
12167 Sun Jul 12 12:01:25 GMT 2009  Olly Betts <olly@survex.com>
12169         * queryparser/queryparser.lemony: Fix memory leak accidentally
12170           introduced in r13005.
12172 Sun Jul 12 11:40:26 GMT 2009  Olly Betts <olly@survex.com>
12174         * tests/api_opsynonym.cc: Remove debug "cout" calls.
12176 Sun Jul 12 09:43:06 GMT 2009  Olly Betts <olly@survex.com>
12178         * matcher/queryoptimiser.cc: Don't just skip counting subqueries which
12179           are the RHS of OP_AND_NOT - skip based on factor == 0.0, which means
12180           we get the RHS of OP_FILTER too.
12181         * tests/api_percentages.cc: Add topercent4 as a regression test for
12182           this.
12184 Sun Jul 12 09:32:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12186         * matcher/andmaybepostlist.cc: Add DEBUGCALL macro to
12187           count_matching_subqs() to fix build with assertions.
12189 Sun Jul 12 08:17:02 GMT 2009  Olly Betts <olly@survex.com>
12191         * matcher/remotesubmatch.cc: Percentage scaling for remote results is
12192           handled in a different way, so replace FIXME with comment noting
12193           this.
12195 Sun Jul 12 05:48:17 GMT 2009  Olly Betts <olly@survex.com>
12197         * matcher/multimatch.cc: Fix handling of percentage weights in various
12198           cases when we're searching multiple remote databases or a mix of
12199           local and remote databases.
12200         * tests/api_percentages.cc: Add regression test topercent3.
12202 Sat Jul 11 13:35:02 GMT 2009  Olly Betts <olly@survex.com>
12204         * matcher/mergepostlist.cc: Fix file description - MergePostList can
12205           merge any number of posting lists, not just two.
12207 Sat Jul 11 13:09:40 GMT 2009  Olly Betts <olly@survex.com>
12209         * matcher/extraweightpostlist.h:
12210           ExtraWeightPostList::read_position_list() and
12211           ExtraWeightPostList::open_position_list() aren't used, so remove
12212           them.
12214 Sat Jul 11 12:54:30 GMT 2009  Olly Betts <olly@survex.com>
12216         * api/leafpostlist.cc,api/postlist.cc,common/leafpostlist.h,
12217           common/postlist.h,common/submatch.h,matcher/,tests/api_anydb.cc,
12218           tests/api_opsynonym.cc: Count how many leaf subqueries match for the
12219           document with the highest weight when calculating the percentage
12220           weights, instead of using the termlist of that document (ticket#363).
12221           Also fixes XOR with a SYNONYM subquery which could achieve 100%
12222           weight before.
12224 Fri Jul 10 08:02:18 GMT 2009  Olly Betts <olly@survex.com>
12226         * api/omdatabase.cc,backends/chert/chert_spelling.cc,
12227           backends/flint/flint_spelling.cc,common/database.h: Deal with the
12228           case of get_spelling_suggestion() with an empty or single character
12229           word up front.
12231 Thu Jul 09 16:20:47 GMT 2009  Olly Betts <olly@survex.com>
12233         * tests/harness/backendmanager_remotetcp.cc: In clean_up(), only scan
12234           through the pid_to_fd array once, and disable the signal handler
12235           and call waitpid() for any remaining pids ourselves, rather than
12236           calling sleep(1) and rechecking.  This should avoid pointless delays
12237           when the child hasn't exited when we first check.
12239 Thu Jul 09 12:40:52 GMT 2009  Olly Betts <olly@survex.com>
12241         * tests/harness/: BackendManager has a virtual dtor, so we don't need
12242           empty virtual dtors in its subclasses.
12244 Thu Jul 09 11:40:20 GMT 2009  Olly Betts <olly@survex.com>
12246         * tests/harness/backendmanager_remotetcp.cc,
12247           tests/harness/backendmanager_remotetcp.h: Move the
12248           BackendManagerRemoteTcp ctor back into the header now it is trivial
12249           again.
12251 Wed Jul 08 16:56:53 GMT 2009  Olly Betts <olly@survex.com>
12253         * backends/flint/flint_io.h: Backport change to use F_FULLSYNC from
12254           chert.
12256 Wed Jul 08 15:30:22 GMT 2009  Olly Betts <olly@survex.com>
12258         * configure.ac: Check that we can find the valgrind/memcheck.h header
12259           as well as the valgrind binary.
12261 Wed Jul 08 14:30:53 GMT 2009  Olly Betts <olly@survex.com>
12263         * tests/harness/backendmanager_remotetcp.cc: Sort out the clash
12264           between two different patches to fix leaking file descriptors.
12265           Also, call clean_up() from the destructor to correctly handle the
12266           case when a BackendManagerRemoteTcp is created by a test case
12267           directly.
12269 Wed Jul 08 14:17:43 GMT 2009  Olly Betts <olly@survex.com>
12271         * tests/harness/: Rename "posttest()" method to "clean_up()" - I keep
12272           thinking "power-on self-test".
12274 Wed Jul 08 05:08:09 GMT 2009  Olly Betts <olly@survex.com>
12276         * backends/chert/chert_io.h: Use F_FULLFSYNC where available (Mac OS X
12277           currently).  (ticket#288)
12279 Tue Jul 07 09:31:35 GMT 2009  Olly Betts <olly@survex.com>
12281         * queryparser/queryparser.lemony: If default_op is OP_NEAR or OP_PHRASE
12282           then make the default window size (9 + no_of_terms), like it would be
12283           for an explicit NEAR or PHRASE without an explicit window size.
12284           (ticket#254)
12285         * tests/queryparsertest.cc: Add feature tests for this.
12287 Tue Jul 07 07:18:15 GMT 2009  Olly Betts <olly@survex.com>
12289         * HACKING,api/,backends/chert/,backends/flint/,
12290           backends/remote/remote-database.cc,common/,languages/steminternal.h,
12291           net/,queryparser/queryparser.cc,tests/harness/,tests/internaltest.cc,
12292           tests/perftest/freemem.cc,tests/perftest/perftest_randomidx.cc,
12293           tests/stemtest.cc,unicode/utf8itor.cc: Update to use C++ forms for
12294           ISO C standard headers (ticket#330).
12296 Tue Jul 07 05:30:58 GMT 2009  Olly Betts <olly@survex.com>
12298         * backends/inmemory/inmemory_database.h: Use "omassert.h" not
12299           <omassert.h>.
12301 Mon Jul 06 04:30:59 GMT 2009  Olly Betts <olly@survex.com>
12303         * AUTHORS: Add Rolf Köhling for fixes for Omega on MS Windows.
12305 Sun Jul 05 16:28:54 GMT 2009  Olly Betts <olly@survex.com>
12307         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
12308           Backport the lazyupdate changes from chert to flint.
12310 Sun Jul 05 13:12:53 GMT 2009  Olly Betts <olly@survex.com>
12312         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Move
12313           virtual destructor definition out of the header.
12315 Sun Jul 05 04:09:04 GMT 2009  Olly Betts <olly@survex.com>
12317         * common/documentterm.h: Add const to OmDocumentTerm::get_wdf() method
12318           (ticket#139).
12320 Sat Jul 04 16:45:43 GMT 2009  Olly Betts <olly@survex.com>
12322         * queryparser/lemon.c: Merge upstream "Check-in Number: 6757" - no
12323           functional changes in generated code for our parser.
12325 Sat Jul 04 16:39:41 GMT 2009  Olly Betts <olly@survex.com>
12327         * queryparser/lemon.c: Merge upstream "Check-in Number: 6756" - no
12328           functional changes in generated code for our parser.
12330 Sat Jul 04 16:36:59 GMT 2009  Olly Betts <olly@survex.com>
12332         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
12333           "Check-in Number: 6755" - no functional changes in generated code for
12334           our parser.
12336 Sat Jul 04 16:29:24 GMT 2009  Olly Betts <olly@survex.com>
12338         * queryparser/lemon.c: Merge upstream "Check-in Number: 6754" - no
12339           changes in generated code for our parser.
12341 Sat Jul 04 16:24:45 GMT 2009  Olly Betts <olly@survex.com>
12343         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6749" -
12344           only changes are in code which isn't compiled due to preprocessor
12345           conditionals.
12347 Sat Jul 04 16:02:08 GMT 2009  Olly Betts <olly@survex.com>
12349         * api/editdistance.cc: Add const to is_transposed() method
12350           (ticket#139).
12352 Sat Jul 04 15:19:55 GMT 2009  Olly Betts <olly@survex.com>
12354         * backends/chert/chert_lock.h,backends/flint/flint_lock.h: Make
12355           ChertLock::operator bool() and FlintLock::operator bool() const
12356           (ticket#139).
12358 Sat Jul 04 14:56:42 GMT 2009  Olly Betts <olly@survex.com>
12360         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
12361           backends/flint/flint_database.cc,backends/flint/flint_database.h:
12362           Make ChertDatabase::get_changeset_revisions() and
12363           FlintDatabase::get_changeset_revisions() const (ticket#139).
12365 Sat Jul 04 14:10:55 GMT 2009  Olly Betts <olly@survex.com>
12367         * backends/chert/chert_changesetapplier.h,
12368           backends/flint/flint_changesetapplier.h: "the the" -> "the" in
12369           comments.
12371 Sat Jul 04 14:06:39 GMT 2009  Olly Betts <olly@survex.com>
12373         * backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h:
12374           Make ChertTable_base::do_unpack_uint() just a static non-class
12375           function.  Use string::+= to build up the error string in it, and
12376           mark the error case as rare.
12378 Wed Jul 01 04:12:22 GMT 2009  Olly Betts <olly@survex.com>
12380         * docs/spelling.rst: Omega now supports spelling correction.
12382 Mon Jun 29 08:16:13 GMT 2009  Olly Betts <olly@survex.com>
12384         * queryparser/queryparser.lemony: Reset the begin and end strings
12385           before trying the next ValueRangeProcessor in case they've been
12386           modified.
12387         * tests/queryparsertest.cc: Add regression tests and general coverage
12388           for this area.
12390 Mon Jun 29 06:33:45 GMT 2009  Olly Betts <olly@survex.com>
12392         * backends/remote/net_postlist.cc: Remove unused '#include
12393           "serialise-double.h"'.
12395 Mon Jun 29 06:32:52 GMT 2009  Olly Betts <olly@survex.com>
12397         * backends/remote/net_postlist.cc: Build up description string using
12398           +=.
12400 Sun Jun 28 14:50:56 GMT 2009  Olly Betts <olly@survex.com>
12402         * backends/remote/net_postlist.h: Fix internal doc comment.
12404 Sat Jun 27 13:35:45 GMT 2009  Olly Betts <olly@survex.com>
12406         * configure.ac: -Wshadow produces false positives with GCC 4.0, so
12407           only enable  it for >= 4.1 since we enable -Werror for
12408           maintainer-mode builds for GCC >= 4.0.
12410 Sat Jun 27 13:30:22 GMT 2009  Olly Betts <olly@survex.com>
12412         * backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h:
12413           Fix return type of MultiTermList::positionlist_count() to be
12414           Xapian::termcount rather than Xapian::termpos.
12416 Sat Jun 27 12:50:17 GMT 2009  Olly Betts <olly@survex.com>
12418         * backends/flint/flint_alltermslist.h,backends/flint/flint_postlist.cc,
12419           backends/flint/flint_postlist.h: Fix to use Xapian::doccount for
12420           termfreq in flint too.
12422 Sat Jun 27 12:28:47 GMT 2009  Olly Betts <olly@survex.com>
12424         * backends/chert/chert_alltermslist.cc: Prefer 'str.resize(0)' to
12425           'str = ""'.
12427 Sat Jun 27 12:16:17 GMT 2009  Olly Betts <olly@survex.com>
12429         * backends/chert/chert_alltermslist.h,backends/chert/chert_postlist.h:
12430           Fix to use Xapian::doccount for termfreq in more places.
12432 Sat Jun 27 11:51:25 GMT 2009  Olly Betts <olly@survex.com>
12434         * backends/chert/chert_table.cc: Change so add_item_to_block() can
12435           always assume there is another contiguous space in the block
12436           (previously it could assume that there was enough space, but not
12437           that it was necessarily contiguous).
12439 Sat Jun 27 09:55:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12441         * include/xapian/postingsource.h,include/xapian/weight.h: Add note
12442           that PostingSource and Weight objects returned by clone() and
12443           unserialise() methods will be deallocated with "delete".
12445 Sat Jun 27 07:26:41 GMT 2009  Olly Betts <olly@survex.com>
12447         * backends/chert/chert_postlist.cc: Adjust use of Xapian::doccount vs
12448           Xapian::termcount for consistency so things work better when these
12449           types aren't identical.
12451 Sat Jun 27 01:48:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12453         * api/matchspy.cc: Remove unused matchspy.cc - there is an updated
12454           version of this on the matchspy branch; having an old copy here
12455           is just likely to lead to confusion.
12457 Fri Jun 26 05:42:26 GMT 2009  Olly Betts <olly@survex.com>
12459         * api/documentvaluelist.cc,api/documentvaluelist.h: Change
12460           DocumentValueList::skip_to()'s parameter type from Xapian::valueno
12461           to Xapian::docid to agree with the type in ValueList::skip_to().
12462           This is a latent bug - it doesn't matter provided the types are
12463           actually the same (ticket#385).
12465 Thu Jun 25 11:20:07 GMT 2009  Olly Betts <olly@survex.com>
12467         * matcher/phrasepostlist.cc: Use Xapian::termcount(1) instead of 1u
12468           so that the code doesn't assume Xapian::termcount is unsigned int.
12470 Sun Jun 21 12:09:55 GMT 2009  Olly Betts <olly@survex.com>
12472         * backends/chert/chert_check.cc,backends/chert/chert_table.cc,
12473           backends/chert/chert_table.h: Replace duplicated macros with
12474           a single version in chert_table.h, and use DIR_START instead of
12475           a literal 11 in that header.
12476         * backends/chert/chert_table.h: Add more assertions.  Use
12477           BYTES_PER_BLOCK_NUMBER instead of a literal 4 in more places.
12479 Sat Jun 20 07:38:56 GMT 2009  Olly Betts <olly@survex.com>
12481         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: Fix
12482           misspelling in comment (neccessary -> necessary).
12484 Sat Jun 20 07:38:06 GMT 2009  Olly Betts <olly@survex.com>
12486         * backends/chert/chert_table.cc: Don't reconstruct Item(p, c) when we
12487           already have it as a local variable.
12489 Wed Jun 17 01:23:16 GMT 2009  Olly Betts <olly@survex.com>
12491         * common/str.cc: Fix potential warning in signed version of str().
12493 Tue Jun 16 11:20:43 GMT 2009  Olly Betts <olly@survex.com>
12495         * tests/harness/testsuite.cc,tests/harness/testsuite.h: Factor out
12496           writing out what was sent to tout and clearing it into a new
12497           method test_driver::write_and_clear_tout().
12498         * tests/harness/testsuite.cc: Prefer string() to "".  When sending a
12499           colour change code, do it before the preceding space when that allows
12500           string literals to be merged.  Always give the full exception message
12501           (was conditional on --verbose).  Tidy up output for reporting the
12502           various different exception types and other failures to give more
12503           consistent output.
12505 Tue Jun 16 11:01:14 GMT 2009  Olly Betts <olly@survex.com>
12507         * tests/harness/scalability.cc: Increase the number of tests until the
12508           first sample takes more than 0.001 seconds to avoid trying to base
12509           calculations on a length of time we probably can't reliably measure
12510           to start with.
12512 Tue Jun 16 10:58:34 GMT 2009  Olly Betts <olly@survex.com>
12514         * tests/harness/cputimer.cc: Don't bother trying to count CPU time
12515           for child processes, as it's hard to ensure that the child processes
12516           have finished with the current framework, and just counting time in
12517           the current process checks most things (the local backend tests cover
12518           much of the work done by the server part of the remote backend).
12520 Tue Jun 16 02:15:31 GMT 2009  Olly Betts <olly@survex.com>
12522         * tests/harness/cputimer.h: Don't need '#include <ctime>'.
12524 Tue Jun 16 02:10:29 GMT 2009  Olly Betts <olly@survex.com>
12526         * tests/harness/cputimer.h: Fix naming of header multiple-inclusion
12527           protection macro.
12529 Sun Jun 14 14:11:51 GMT 2009  Olly Betts <olly@survex.com>
12531         * tests/internaltest.cc: In testcase serialisequery1, use a helper
12532           function rather than wasting effort building a std::list with all the
12533           testcases in just so we can iterate over them.
12535 Sun Jun 14 13:52:22 GMT 2009  Olly Betts <olly@survex.com>
12537         * tests/harness/testsuite.cc: <iomanip> isn't used so remove it.
12539 Sun Jun 14 13:30:34 GMT 2009  Olly Betts <olly@survex.com>
12541         * tests/harness/testsuite.h: Fix comment typo.
12543 Sat Jun 13 06:30:57 GMT 2009  Olly Betts <olly@survex.com>
12545         * tests/api_anydb.cc: Fix reversed conditional in last but one change.
12547 Sat Jun 13 04:42:27 GMT 2009  Olly Betts <olly@survex.com>
12549         * tests/api_anydb.cc: Use TEST_EQUAL_DOUBLE() when comparing
12550           get_max_attained() to allow for rounding differences.
12552 Sat Jun 13 04:39:49 GMT 2009  Olly Betts <olly@survex.com>
12554         * tests/api_anydb.cc: Use "startswith()" rather than comparing an
12555           extracted substring.
12557 Fri Jun 12 12:45:37 GMT 2009  Olly Betts <olly@survex.com>
12559         * tests/harness/backendmanager_remotetcp.cc: Fix the mechanism for
12560           closing the file descriptors used by child xapian-tcpsrv processes
12561           once they exit, which has been broken ever since it was added nearly
12562           two years ago (sigh).  Fixes fd leaking which caused "apitest
12563           -bremotetcp" to fail on OpenBSD (ticket#382).
12565 Fri Jun 12 03:37:13 GMT 2009  Olly Betts <olly@survex.com>
12567         * tests/harness/backendmanager_remotetcp.cc: Fix comment typo.
12569 Wed Jun 10 04:29:43 GMT 2009  Olly Betts <olly@survex.com>
12571         * common/serialise-double.cc,common/serialise-double.h: Relicense as
12572           MIT/X rather than GPLv2+ as these are low level routines which other
12573           projects may find useful.
12575 Tue Jun 09 14:34:20 GMT 2009  Olly Betts <olly@survex.com>
12577         * NEWS: Update for 1.1.1.
12579 Tue May 26 14:55:05 GMT 2009  Olly Betts <olly@survex.com>
12581         * configure.ac: Update version to 1.1.1.
12583 Tue May 26 14:49:23 GMT 2009  Olly Betts <olly@survex.com>
12585         * NEWS: Lick into shape.
12587 Mon May 25 11:55:59 GMT 2009  Olly Betts <olly@survex.com>
12589         * PLATFORMS: Sync with changes in 1.0 version.
12591 Mon May 25 10:57:59 GMT 2009  Olly Betts <olly@survex.com>
12593         * common/weightinternal.h: Remove declarations of unimplemented
12594           constructors (ticket#379).
12596 Sat May 23 16:06:05 GMT 2009  Olly Betts <olly@survex.com>
12598         * NEWS: Update from 1.0.13 and ChangeLog.
12600 Sat May 23 15:35:39 GMT 2009  Olly Betts <olly@survex.com>
12602         * HACKING: ValueIterator is now a PIMPL class like TermIterator, etc.
12604 Sat May 23 05:24:33 GMT 2009  Olly Betts <olly@survex.com>
12606         * docs/postingsource.rst: Since we are sticking with an recursive
12607           maxweight recalculation for now, add back a warning about the
12608           potential overhead from calling set_maxweight() very frequently,
12609           with an informed estimate for the worst case overhead.
12611 Fri May 22 11:44:04 GMT 2009  Olly Betts <olly@survex.com>
12613         * backends/inmemory/inmemory_database.cc: We can trivially make
12614           Database::metadata_keys_begin() work for inmemory in the special
12615           case when there are no keys, so do so.
12616         * tests/api_metadata.cc: Add test coverage for this case.
12618 Fri May 22 09:31:07 GMT 2009  Olly Betts <olly@survex.com>
12620         * configure.ac: Only bother passing -Winit-self for GCC >= 4.3, as it
12621           doesn't do anything for GCC <= 4.4 anyway.
12623 Fri May 22 07:00:29 GMT 2009  Olly Betts <olly@survex.com>
12625         * backends/flint/flint_version.h: Initialise filename using + not +=.
12626           Fix odd whitespace in recent change.
12628 Fri May 22 05:27:56 GMT 2009  Olly Betts <olly@survex.com>
12630         * AUTHORS: Update.
12632 Fri May 22 05:24:19 GMT 2009  Olly Betts <olly@survex.com>
12634         * api/postingsource.cc,common/multimatch.h,matcher/multimatch.cc:
12635           Replace MultiMatch::reduce_maxweight_by() with a call to
12636           MultiMatch::recalc_maxweight() and inline the later from the header.
12638 Fri May 22 05:16:03 GMT 2009  Olly Betts <olly@survex.com>
12640         * configure.ac: Enable more GCC warnings - "-Woverloaded-virtual" for
12641           all versions, "-Wstrict-null-sentinel" for 4.0+, "-Wlogical-op
12642           -Wmissing-declarations" for 4.3+.  Notably "-Wmissing-declarations"
12643           caught that consistency2 wasn't being run.
12645 Fri May 22 05:15:08 GMT 2009  Olly Betts <olly@survex.com>
12647         * languages/steminternal.cc,languages/steminternal.h: Inline simple
12648           Stem::Internal::Internal() constructor from header.
12650 Thu May 21 16:23:26 GMT 2009  Olly Betts <olly@survex.com>
12652         * tests/harness/backendmanager_remotetcp.cc: Make on_SIGCHLD() static.
12654 Thu May 21 16:22:56 GMT 2009  Olly Betts <olly@survex.com>
12656         * tests/api_wrdb.cc: Fix testcase consistency2 to actually be run.
12658 Thu May 21 16:22:30 GMT 2009  Olly Betts <olly@survex.com>
12660         * tests/api_transdb.cc: Add missing '#include "api_transdb.h"'.
12662 Thu May 21 12:58:22 GMT 2009  Olly Betts <olly@survex.com>
12664         * backends/databasereplicator.cc: Don't bother to check if the
12665           database path works in stat() and is a directory - the case we want
12666           to be fast is when the database does exist, and if path +
12667           "/iamflint" (or "iamchert") exists, then the check for path being a
12668           directory is redundant.  If the path isn't a flint or chert database
12669           then a generic message including the path seems sufficient.
12671 Thu May 21 09:17:15 GMT 2009  Olly Betts <olly@survex.com>
12673         * backends/databasereplicator.cc,common/databasereplicator.h: Inline
12674           empty DatabaseReplicator default ctor.
12676 Thu May 21 08:25:24 GMT 2009  Olly Betts <olly@survex.com>
12678         * api/replication.cc: Cache the result of get_replica_path() when we
12679           are going to need it again.
12681 Thu May 21 08:09:51 GMT 2009  Olly Betts <olly@survex.com>
12683         * backends/chert/chert_databasereplicator.h,
12684           backends/flint/flint_databasereplicator.h: Correct parent class name
12685           in doxygen comments.
12687 Thu May 21 08:08:06 GMT 2009  Olly Betts <olly@survex.com>
12689         * HACKING: Update list of Debian/Ubuntu packages needed to for a
12690           development environment.
12692 Thu May 21 06:28:00 GMT 2009  Olly Betts <olly@survex.com>
12694         * backends/databasereplicator.cc: Fix nested comment start introduced
12695           by the previous commit.
12697 Thu May 21 06:21:39 GMT 2009  Olly Betts <olly@survex.com>
12699         * api/replication.cc,backends/databasereplicator.cc,
12700           common/databasereplicator.h: We only keep one pointer to a
12701           DatabaseReplicator, so use AutoPtr not RefCntPtr.
12703 Thu May 21 05:00:17 GMT 2009  Olly Betts <olly@survex.com>
12705         * api/replication.cc: Fix SEGV when calling get_description() on a
12706           default constructed DatabaseReplica.
12707         * tests/generate-api_generated: Test DatabaseReplica (regression test
12708           for the above bug) and SerialisationContext.   Fix @file in the
12709           generated api_generated.cc.  Update (C) dates in generated
12710           api_generated.cc.
12712 Thu May 21 03:58:59 GMT 2009  Olly Betts <olly@survex.com>
12714         * tests/generate-api_generated: Call get_description() on the default
12715           constructed object to make sure that works (and doesn't try to
12716           dereference NULL, or fail some assertion, etc).  All currently
12717           checked classes are fine - this is to avoid future regressions or
12718           such problems with new classes.
12720 Wed May 20 14:19:54 GMT 2009  Olly Betts <olly@survex.com>
12722         * net/tcpclient.cc,net/tcpserver.cc: Fix xapian-tcpsrv --interface
12723           option to work on MacOS X (ticket#373).
12725 Wed May 20 13:58:09 GMT 2009  Olly Betts <olly@survex.com>
12727         * api/omdatabase.cc,api/sortable-serialise.cc,backends/chert/,
12728           backends/flint/,backends/remote/remote-database.cc,
12729           common/serialise-double.cc,common/str.cc,
12730           matcher/exactphrasepostlist.cc,net/remoteconnection.cc,
12731           net/remoteserver.cc: Replace C-style casts.  Add a few missing casts.
12732           Tweak types used in a few places.
12734 Wed May 20 13:55:41 GMT 2009  Olly Betts <olly@survex.com>
12736         * backends/chert/chert_databasereplicator.cc,
12737           backends/flint/flint_databasereplicator.cc: Need <cstdio> for
12738           rename().  Replace C-style cast to off_t.
12740 Wed May 20 13:53:25 GMT 2009  Olly Betts <olly@survex.com>
12742         * api/editdistance.cc: Make edist_state class uncopyable and
12743           unassignable.  Initialise maxdist in the initialiser list.
12745 Wed May 20 11:19:53 GMT 2009  Olly Betts <olly@survex.com>
12747         * languages/steminternal.cc,languages/steminternal.h: Change C-style
12748           casts to C++-style ones.
12750 Wed May 20 10:40:03 GMT 2009  Olly Betts <olly@survex.com>
12752         * common/str.h: Add static_cast<char>() to suppress bogus MSVC
12753           warning (ticket#377).
12755 Tue May 19 15:26:39 GMT 2009  Olly Betts <olly@survex.com>
12757         * backends/chert/,backends/flint/,common/rset.h,tests/api_anydb.cc:
12758           Pass std::string by const reference rather than value (except in
12759           a few cases where we need a modifiable copy anyway) as benchmarking
12760           shows this is better even with GCC's reference counted std::string
12761           implementation (ticket#140).
12762         * tests/api_anydb.cc: Use string() instead of "" for an empty string.
12764 Tue May 19 08:47:55 GMT 2009  Olly Betts <olly@survex.com>
12766         * api/omquery.cc,include/xapian/query.h: Make Xapian::Query::MatchAll
12767           and Xapian::Query::MatchNothing const since they're immutable.  All
12768           the public methods are const, so this should be completely API
12769           compatible.
12771 Tue May 19 06:25:26 GMT 2009  Olly Betts <olly@survex.com>
12773         * include/xapian/enquire.h: Document what passing maxitems=0 to
12774           get_mset() does.
12776 Mon May 18 13:32:49 GMT 2009  Olly Betts <olly@survex.com>
12778         * include/xapian/database.h: Correct doxygen comments for user
12779           metadata functions: get_metadata() can't throw UnimplementedError
12780           but set_metadata() can.
12781         * include/xapian/database.h,tests/api_metadata.cc: Document that
12782           metadata_keys_begin() returns an end iterator if the backend doesn't
12783           support metadata, and add test coverage for this case.
12784         * backends/inmemory/inmemory_database.cc,
12785           backends/inmemory/inmemory_database.h,include/xapian/database.h,
12786           tests/api_metadata.cc,tests/harness/testrunner.cc: The test harness
12787           didn't have the inmemory backend flagged as supporting
12788           user-specified metadata, and so it's perhaps not a great surprise to
12789           discover that inmemory doesn't support it fully - you can't iterate
12790           over metadata keys, but instead get an empty iteration.  Fix this
12791           to at least throw UnimplementedError and document that this is the
12792           situation.
12794 Mon May 18 11:29:10 GMT 2009  Olly Betts <olly@survex.com>
12796         * tests/Makefile.am,tests/api_metadata.cc,tests/api_wrdb.cc: Split out
12797           tests of user metadata into their own file.
12799 Sun May 17 12:52:41 GMT 2009  Olly Betts <olly@survex.com>
12801         * matcher/: Add a new constructor to MultiAndPostList for the "decay
12802           from OrPostList or AndMaybePostList" case which takes the already
12803           know max weights to avoid having to refetch them.  Also, we know
12804           that the subpostlists of OrPostList are ordered a particular way
12805           so can avoid needing to check the order in that case.
12807 Sat May 16 05:02:35 GMT 2009  Olly Betts <olly@survex.com>
12809         * backends/flint/flint_version.cc: Fix comment - this file doesn't
12810           use memcpy() now.
12812 Thu May 14 04:38:47 GMT 2009  Olly Betts <olly@survex.com>
12814         * tests/api_percentages.cc: Remove superfluous explicit std::
12815           qualifiers.
12817 Thu May 14 04:36:29 GMT 2009  Olly Betts <olly@survex.com>
12819         * tests/api_percentages.cc: Update for the PostingSource
12820           get_maxweight() API changes.
12822 Tue May 12 14:50:57 GMT 2009  Olly Betts <olly@survex.com>
12824         * matcher/multimatch.cc: Rename "max_weight" variable to "max_possible"
12825           since that is what it is referred to via the MSet API.
12827 Tue May 12 12:38:11 GMT 2009  Olly Betts <olly@survex.com>
12829         * common/safeuuid.h: Fix length of buffer to lower case - it's
12830           36, not sizeof(uuid_t).
12832 Tue May 12 02:49:34 GMT 2009  Olly Betts <olly@survex.com>
12834         * common/safeuuid.h,configure.ac: Older versions of libuuid don't have
12835           uuid_unparse_lower() so probe for it in configure, and if it isn't
12836           present provide an inline version in safeuuid.h (ticket#368).
12838 Mon May 11 13:07:47 GMT 2009  Olly Betts <olly@survex.com>
12840         * tests/api_postingsource.cc: In changemaxweightsource1, set
12841           descending docid order so that the matcher isn't able to terminate
12842           early after 4 documents just because weight == maxweight.
12844 Mon May 11 12:00:04 GMT 2009  Olly Betts <olly@survex.com>
12846         * net/serialise.cc: Build up string using +=.
12848 Mon May 11 11:39:49 GMT 2009  Olly Betts <olly@survex.com>
12850         * docs/postingsource.rst: Improve documentation for get_maxweight().
12852 Mon May 11 11:26:02 GMT 2009  Olly Betts <olly@survex.com>
12854         * include/xapian/postingsource.h: Initialise max_weight_ to 0 in the
12855           PostingSource constructor in case nobody else sets a value for it.
12857 Mon May 11 10:54:47 GMT 2009  Olly Betts <olly@survex.com>
12859         * tests/api_postingsource.cc: Fix class name in FAIL_TEST message.
12861 Mon May 11 10:41:31 GMT 2009  Olly Betts <olly@survex.com>
12863         * tests/api_postingsource.cc: Fix get_termfreq_min(), etc for
12864           ChangeMaxweightPostingSource to return 4 not 5.
12866 Mon May 11 09:03:14 GMT 2009  Olly Betts <olly@survex.com>
12868         * api/postingsource.cc: Remove assertion checking that set_maxweight()
12869           doesn't set a lower weight - it legitimately can when we call init()
12870           on a non-clone-able PostingSource for reuse.
12872 Mon May 11 03:12:00 GMT 2009  Olly Betts <olly@survex.com>
12874         * api/postingsource.cc,common/multimatch.h,docs/postingsource.rst,
12875           include/xapian/postingsource.h,matcher/externalpostlist.cc,
12876           matcher/externalpostlist.h,matcher/msetpostlist.cc,
12877           tests/api_postingsource.cc: Replace PostingSource's
12878           notify_new_maxweight() and virtual get_maxweight() mechanism with a
12879           non-virtual set_maxweight() and get_maxweight().  Currently the
12880           plumbing at the matcher end is much as before, but this API seems
12881           more obvious to the user and will allow the matcher to simply reduce
12882           its maximum weight value rather than having to recursively call
12883           recalc_maxweight() in response to this situation (ticket#340).
12885 Mon May 11 02:38:26 GMT 2009  Olly Betts <olly@survex.com>
12887         * docs/postingsource.rst: Fix a typo and reword to avoid "namespaced".
12889 Mon May 11 02:30:59 GMT 2009  Olly Betts <olly@survex.com>
12891         * matcher/msetpostlist.cc: Fix typo - MSetPostList::get_maxweight()
12892           with a sort ordered primarily by decreasing relevance was returning
12893           the docid for the maxweight!  This could have led to wrong results
12894           when searching multiple databases with the remote backend, but
12895           probably usually didn't matter as with BM25 the weights are usually
12896           small (often all < 1) while docids are inevitably >= 1.  No
12897           regression test for this (currently anyway).
12899 Sun May 10 07:49:11 GMT 2009  Olly Betts <olly@survex.com>
12901         * backends/dbfactory.cc: Fix comment typo.
12903 Sat May 09 14:15:38 GMT 2009  Olly Betts <olly@survex.com>
12905         * tests/api_collapse.cc,tests/perftest/runprocess.cc: Remove unused
12906           include of <iostream>.
12908 Sat May 09 14:03:34 GMT 2009  Olly Betts <olly@survex.com>
12910         * api/omquery.cc,matcher/andnotpostlist.cc,
12911           queryparser/termgenerator_internal.cc,tests/api_wrdb.cc: Remove
12912           unused inclusions of <algorithm>.
12914 Sat May 09 13:47:54 GMT 2009  Olly Betts <olly@survex.com>
12916         * matcher/multimatch.cc: Remove unused inclusion of <queue>.
12918 Sat May 09 13:38:02 GMT 2009  Olly Betts <olly@survex.com>
12920         * api/omquery.cc,api/omqueryinternal.cc,api/replication.cc,
12921           backends/alltermslist.cc,backends/chert/chert_table.cc,
12922           backends/flint/flint_table.cc,bin/xapian-compact.cc,
12923           common/bitstream.cc,common/inmemory_positionlist.h,
12924           common/positionlist.h,matcher/localmatch.h,matcher/queryoptimiser.cc,
12925           matcher/queryoptimiser.h,tests/api_wrdb.cc: Remove unused inclusions
12926           of <list>, <map>, <string>, and <vector>.
12928 Sat May 09 12:48:18 GMT 2009  Olly Betts <olly@survex.com>
12930         * api/documentvaluelist.cc,matcher/queryoptimiser.cc: Remove unused
12931           '#include "autoptr.h"'.
12933 Sat May 09 09:41:03 GMT 2009  Olly Betts <olly@survex.com>
12935         * queryparser/queryparser.lemony,queryparser/termgenerator.cc,
12936           weight/bm25weight.cc,weight/boolweight.cc,weight/tradweight.cc:
12937           Remove unneeded explicit "std::" qualifiers.
12939 Sat May 09 09:35:32 GMT 2009  Olly Betts <olly@survex.com>
12941         * weight/weight.cc: Doesn't use '#include "autoptr.h"'.
12943 Fri May 08 19:59:00 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12945         * configure.ac: Change source file which autoconf looks for, since
12946           I've just removed the old one that it looked for!
12948 Fri May 08 19:28:31 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12950         * matcher/andmaybepostlist.cc,matcher/branchpostlist.h: Call
12951           check() instead of skip_to() on the optional branch of AND_MAYBE.
12952           This can be much faster if that branch is a posting source.
12954 Fri May 08 18:31:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12956         * matcher/: Remove AndPostList, in favour of MultiAndPostList.
12957           AndPostList was only used as a decay product (by AndMaybePostList
12958           and OrPostList); for most queries, MultiAnd has pretty much
12959           indistinguishable performance as far as I can test; however, it
12960           uses check() when possible, which makes performance much better
12961           with searches involving external posting sources.  Removal also
12962           reduces the amount of code cluttering up the caches during a
12963           search, so may help speed things up in some other situations.
12965 Fri May 08 16:00:42 GMT 2009  Olly Betts <olly@survex.com>
12967         * api/postingsource.cc,backends/inmemory/inmemory_database.cc,
12968           examples/delve.cc,include/xapian/postingsource.h: Don't store an
12969           end iterator in a variable just to compare against it - it's now
12970           definitely more efficient to compare against the return value of
12971           the relevant _end() method.
12973 Fri May 08 15:44:07 GMT 2009  Olly Betts <olly@survex.com>
12975         * api/valueiterator.cc,include/xapian/database.h,
12976           include/xapian/document.h,include/xapian/valueiterator.h: Create a
12977           new proxy object class ValueIteratorEnd_ which is returned instead
12978           of ValueIterator(NULL) for end iterators.  This class will be
12979           converted to ValueIterator(NULL) if assigned to or passed as
12980           ValueIterator, but operator== and operator!= are overloaded to
12981           handle it directly which means that the compiler no longer calls
12982           ~ValueIterator for each call which returns ValueIterator(NULL).
12984 Fri May 08 15:42:12 GMT 2009  Olly Betts <olly@survex.com>
12986         * backends/chert/chert_values.cc: Swap two statements for cosmetic
12987           reasons.
12989 Fri May 08 14:42:49 GMT 2009  Olly Betts <olly@survex.com>
12991         * api/postingsource.cc,include/xapian/postingsource.h: It is actually
12992           better not to store the end iterator in a member variable - if we
12993           explicitly call db.postlist_end(string()) then that just gets
12994           optimised to PostingSource(NULL).
12996 Fri May 08 14:02:21 GMT 2009  Olly Betts <olly@survex.com>
12998         * tests/api_postingsource.cc: We've decided that "going back" with
12999           skip_to() or check() should have unspecified behaviour, so stop
13000           testing how this case behaves!
13002 Fri May 08 12:37:33 GMT 2009  Olly Betts <olly@survex.com>
13004         * common/Makefile.mk: Ship common/win32_uuid.cc and common/win32_uuid.h
13005           (ticket#367).
13007 Fri May 08 12:30:45 GMT 2009  Olly Betts <olly@survex.com>
13009         * tests/harness/cputimer.cc: Fix typo in the "ftime" case.
13011 Fri May 08 10:25:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13013         * matcher/andpostlist.cc: Fix a swap which was the wrong way round,
13014           so that we call next() on the subpostlist with the lower
13015           frequency, rather than the one with the higher frequency.  This
13016           should improve performance in many situations, and I don't think
13017           it's likely to slow anything down.  It also fixes some cases
13018           where optimisation of an AND_MAYBE to an AND results in a slower
13019           search, such that search times went down when more hits were
13020           requested.
13022 Fri May 08 08:48:14 GMT 2009  Olly Betts <olly@survex.com>
13024         * matcher/externalpostlist.cc: ExternalPostList::get_doclength()
13025           should never get called, so make it "Assert(false)".
13027 Fri May 08 05:16:50 GMT 2009  Olly Betts <olly@survex.com>
13029         * api/postingsource.cc: Another string concatention.
13031 Fri May 08 05:04:55 GMT 2009  Olly Betts <olly@survex.com>
13033         * api/postingsource.cc: Use str() instead of om_tostring() and build
13034           up strings using +=.
13036 Fri May 08 04:37:05 GMT 2009  Olly Betts <olly@survex.com>
13038         * api/postingsource.cc: "using namespace std;".
13040 Thu May 07 16:46:14 GMT 2009  Olly Betts <olly@survex.com>
13042         * matcher/: Check for collection_size == 0 up front so we don't need
13043           to repeatedly special case it when implementing
13044           get_termfreq_est_using_stats().
13046 Thu May 07 16:28:07 GMT 2009  Olly Betts <olly@survex.com>
13048         * matcher/xorpostlist.cc: Fix typo bug - collection_size should be
13049           rset_size.  This would have lead to a floating point division by
13050           zero when XOR was used under a synonym without an RSet, but that
13051           would just give infinity, and so just give a bogus value for the
13052           rel_termfreq rather than aborting instantly.
13054 Thu May 07 16:19:52 GMT 2009  Olly Betts <olly@survex.com>
13056         * HACKING: Update auto_ptr information.  Mention constructor syntax as
13057           an alternative replacement for some C-style casts.
13059 Thu May 07 15:25:00 GMT 2009  Olly Betts <olly@survex.com>
13061         * matcher/localmatch.cc,matcher/localmatch.h: Don't rebuild the
13062           termname -> termfreq and weight map for every subdatabase - just do
13063           it once for the first one.  Also eliminate a copy of this map.
13064           This should speed up searches a little, especially those over
13065           multiple databases.
13067 Thu May 07 15:01:24 GMT 2009  Olly Betts <olly@survex.com>
13069         * api/omdatabase.cc,api/omqueryinternal.cc,
13070           backends/remote/remote-database.cc,common/autoptr.h,
13071           expand/esetinternal.cc,matcher/localmatch.cc: Make our AutoPtr just
13072           a macro wrapper for std::auto_ptr.  Since std::auto_ptr doesn't
13073           allow assignment from a raw pointer, this requires changing such
13074           assignments into calls to auto_ptr::reset().
13076 Thu May 07 14:19:22 GMT 2009  Olly Betts <olly@survex.com>
13078         * api/leafpostlist.cc: Add an assertion that the term in the stats.
13079           Add "using namespace std;" so we can avoid explicit std:: qualifiers.
13081 Thu May 07 13:26:21 GMT 2009  Olly Betts <olly@survex.com>
13083         * matcher/: Eliminate EmptySubMatch - we can just store NULL for a
13084           submatch which has failed but which ErrorHandler told us to continue
13085           without.
13087 Thu May 07 12:52:24 GMT 2009  Olly Betts <olly@survex.com>
13089         * common/database.h: Update internal documentation comment -
13090           Database::Internal::open_post_list() can no longer return
13091           EmptyPostList as it is no longer a subclass of LeafPostList.
13093 Thu May 07 12:13:50 GMT 2009  Olly Betts <olly@survex.com>
13095         * api/leafpostlist.cc,backends/chert/chert_postlist.cc,
13096           backends/chert/chert_postlist.h,
13097           backends/flint/flint_alldocspostlist.h,
13098           backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h,
13099           backends/inmemory/inmemory_database.cc,
13100           backends/inmemory/inmemory_database.h,backends/remote/net_postlist.h,
13101           common/contiguousalldocspostlist.h,common/leafpostlist.h: Squash
13102           TermBasedLeafPostList into LeafPostList since there are no longer
13103           any other subclasses.
13105 Thu May 07 11:49:06 GMT 2009  Olly Betts <olly@survex.com>
13107         * api/Makefile.mk,api/emptypostlist.cc,common/emptypostlist.h:
13108           Reimplement EmptyPostList from scratch, and inherit from PostList
13109           not LeafPostList.
13111 Thu May 07 11:19:34 GMT 2009  Olly Betts <olly@survex.com>
13113         * matcher/mergepostlist.cc: Add explicit '#include "omassert.h"'.
13115 Thu May 07 10:28:33 GMT 2009  Olly Betts <olly@survex.com>
13117         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
13118           Subclass MultiPostList directly from PostList instead of from
13119           LeafPostList.  This gets rid of two unused data members per
13120           MultiPostList in exchange for having to define 5 extra "never
13121           called" methods, but 4 of these just tailcall.
13123 Thu May 07 10:26:39 GMT 2009  Olly Betts <olly@survex.com>
13125         * backends/inmemory/inmemory_alltermslist.cc,
13126           backends/inmemory/inmemory_database.cc: Fix assertion failures and
13127           a SEGV in an assertion test.
13129 Thu May 07 09:27:35 GMT 2009  Olly Betts <olly@survex.com>
13131         * backends/inmemory/inmemory_alltermslist.cc,
13132           backends/inmemory/inmemory_alltermslist.h,
13133           backends/inmemory/inmemory_database.cc:
13134           Keep a dummy entry in InMemoryDatabase::postlists so that the
13135           implementation of InMemoryAllTermsList doesn't need a "started"
13136           flag, and we can use an InMemoryPostList on the dummy item for
13137           the "term not in database" case.
13139 Thu May 07 05:45:48 GMT 2009  Olly Betts <olly@survex.com>
13141         * tests/api_backend.cc: Add tset coverage for alldocs iterator on an
13142           empty database.
13143         * backends/inmemory/inmemory_database.cc: No need to special case an
13144           empty database as InMemoryAllDocsPostList handles this case
13145           correctly.
13147 Thu May 07 05:08:07 GMT 2009  Olly Betts <olly@survex.com>
13149         * weight/weightinternal.cc: Use str() instead of om_tostring(), += to
13150           build up strings, and fix a cut-and-paste comment error.
13152 Wed May 06 13:03:40 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13154         * net/serialise.cc: Better serialisation - don't include the
13155           reltermfreqs if the rset_size is 0, since they'll all be 0 too.
13157 Wed May 06 12:13:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13159         * common/remoteprotocol.h,net/serialise.cc: When serialising stats,
13160           serialise the termfreq and reltermfreq together, rather than in
13161           separate lists.  Results in a smaller serialised form, and
13162           matches the in-memory structure now used better. Fixes ticket
13163           #362.  This is an incompatible remote protocol change, however,
13164           so bump the major version to 32.
13166 Wed May 06 04:02:43 GMT 2009  Olly Betts <olly@survex.com>
13168         * matcher/multimatch.cc: Check termfreqandwts for MatchAll queries
13169           before we check terms from the document so that the "terminate
13170           early once we've seen all the query terms" test when checking the
13171           document terms can fire in this case.
13173 Wed May 06 03:26:05 GMT 2009  Olly Betts <olly@survex.com>
13175         * matcher/multimatch.cc: Remove incorrect comment accidentally
13176           committed in r12623.
13178 Wed May 06 03:18:42 GMT 2009  Olly Betts <olly@survex.com>
13180         * tests/api_opsynonym.cc: Fix comment typo.
13182 Wed May 06 01:35:14 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13184         * tests/api_postingsource.cc: changemaxweightsource1 uses
13185           ChangeMaxweightPostingSource, which doesn't work with multi or
13186           remote, so mark the test accordingly.
13188 Wed May 06 01:11:25 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13190         * include/xapian/postingsource.h,api/postingsource.cc: Add
13191           notify_new_maxweight() method to be called by subclasses when they
13192           want to notify the matcher that their maxweight has changed
13193           significantly.  Add ExternalPostList as a friend and add
13194           register_externalpl() to be used to associate the ExternalPostList
13195           with the PostingSource.
13196         * matcher/externalpostlist.cc,matcher/externalpostlist.h,
13197           matcher/queryoptimiser.cc: Register the externalpostlist with the
13198           PostingSource it's iterating through.  Add
13199           ExternalPostList::notify_new_maxweight() method for
13200           PostingSource::notify_new_maxweight() to call.
13201         * docs/postingsource.rst: Document notify_new_maxweight() and the
13202           reasons for calling it.
13203         * tests/api_postingsource.cc: Test the handling of maxweight.
13205 Tue May 05 19:37:56 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13207         * tests/Makefile.am,tests/api_db.cc,tests/api_postingsource.cc:
13208           Split the tests of PostingSource subclasses out of api_db.cc; I'm
13209           about to add some more, and bloating api_db.cc further is
13210           unworkable.
13212 Tue May 05 18:23:02 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13214         * docs/postingsource.rst,include/xapian/postingsource.h:
13215           Documentation updates to describe way that init() is called
13216           again if a PostingSource is reused.  Fixes #352.
13218 Tue May 05 16:05:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13220         * tests/api_opsynonym.cc: Test that the top document has a weight
13221           of 100%, which is should do for all the current examples here.
13223 Tue May 05 16:03:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13225         * matcher/multimatch.cc: Add logging to keep track of the weights
13226           being added to percent_scale.  If the percent_scale total is 0.0,
13227           which can happen if the top document only matches synonym terms,
13228           force percent_scale to 1.0, to avoid an assertion failure.
13230 Tue May 05 13:41:57 GMT 2009  Olly Betts <olly@survex.com>
13232         * common/str.h: Fix swapped parameters in string ctor in code for
13233           str(bool) overload which lead to us returning 48 or 49 \x01
13234           characters instead of "0" or "1".
13235         * tests/internaltest.cc: Add regression test strbool1.
13236         * AUTHORS: Thank Peter Kelm for helping us spot this.
13238 Tue May 05 12:54:36 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13240         Merge from opsynonym branch:
13241         * queryparser/queryparser.lemony: Use OP_SYNONYM instead of OP_OR
13242           for synonyms, wildcards, and partial queries.
13243         * tests/queryparsertest.cc: Test use of OP_SYNONYM by query parser.
13245 Tue May 05 12:18:06 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13247         Merge from opsynonym branch:
13248         * api/omqueryinternal.cc,include/xapian/query.h,matcher/,
13249           weight/weight.cc: Implement a new OP_SYNONYM query operator,
13250           which behaves similarly to OP_OR, but produces weights for the
13251           combined set of terms as if they were a single term (by merging
13252           their wdfs).
13253         * tests/Makefile.am,tests/api_opsynonym.cc: Add tests for the
13254           OP_SYNONYM operator.
13255         * include/xapian/weight.h: Add a Weight::init_() method for
13256           synonym, since there isn't a single term involved.  Also,
13257           requires a method get_sumpart_needs_wdf_() to check if wdfs are
13258           needed, since the synonym weight calculation requires fetching
13259           the doclength, which is potentially expensive, in order that the
13260           wdf returned can be clamped to a sane range.  Mark the weighting
13261           methods which require WDF with need_stat(WDF).
13263 Tue May 05 12:04:33 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13265         * common/remoteprotocol.h: Add comment to remind use to do the
13266           FIXME in serialise_stats() when next breaking remote protocol
13267           compatibility.
13269 Tue May 05 10:53:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13271         * common/output.h: Add output function for TermFreqs.
13273 Tue May 05 08:23:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13275         * api/leafpostlist.cc,api/postlist.cc,common/emptypostlist.h,
13276           common/leafpostlist.h,common/postlist.h,matcher/: Add
13277           PostList::get_termfreq_est_using_stats() method, with default
13278           implementation which raises an InvalidOperationError.  Implement
13279           this for those postlists which it makes sense for.  Also,
13280           implement get_wdf() for postlists used by the matcher for
13281           implementing various query operators.  This isn't currently used
13282           or tested on trunk, but is used for the opsynonym branch.
13284 Tue May 05 07:37:04 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13286         * common/rset.h,common/weightinternal.h,matcher/rset.cc,
13287           net/serialise.cc,weight/weightinternal.cc: Store termfreqs and
13288           reltermfreqs in a Weight::Internal in a single map; introduce a
13289           new struct (TermFreqs) for the values stored here.
13290           Remove now unused Xapian::TermFreqMap typedef.
13292 Tue May 05 07:19:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13294         * backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h,
13295           backends/flint/flint_alldocspostlist.h,
13296           backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h,
13297           backends/inmemory/inmemory_database.cc,
13298           backends/inmemory/inmemory_database.h,backends/remote/net_postlist.h,
13299           common/contiguousalldocspostlist.h,common/leafpostlist.h:
13300           Introduce TermBasedLeafPostList, as a new common base class for
13301           postlists which are derived from a term in the query (including
13302           alldocs postlists which are derived from the empty term).
13304 Tue May 05 06:47:11 GMT 2009  Olly Betts <olly@survex.com>
13306         * backends/chert/,backends/flint/flint_modifiedpostlist.cc,
13307           backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h:
13308           Rename "tname" parameters to LeafPostList subclasses to "term".
13309         * backends/inmemory/inmemory_database.cc,
13310           backends/inmemory/inmemory_database.h: Rename term parameter of
13311           type InMemoryTerm to imterm ready for opsynonym branch changes.
13313 Tue May 05 04:51:28 GMT 2009  Olly Betts <olly@survex.com>
13315         * backends/chert/chert_alldocspostlist.h,matcher/multimatch.cc:
13316           Remove unused '#include "leafpostlist.h"'.
13318 Tue May 05 02:15:35 GMT 2009  Olly Betts <olly@survex.com>
13320         * common/contiguousalldocspostlist.h: Wrap comment.
13322 Tue May 05 02:04:02 GMT 2009  Olly Betts <olly@survex.com>
13324         * common/Makefile.mk: Move str.h into alphabetical order.
13326 Mon May 04 12:04:16 GMT 2009  Olly Betts <olly@survex.com>
13328         * tests/queryparsertest.cc: Rename qp_stem_scale1 to qp_scale1 as it
13329           has no connection with stemming.  Factor out a helper function to
13330           do the timing comparison, and update time_query_parse() to use
13331           CPUTimer rather than OmTime.  Tweak the "fudge factor" up from
13332           2 to 2.15 to allow for non-equal ticks due to rounding of an
13333           interval which isn't an exact multiple of 1/CLK_TCK (ticket#308).
13335 Mon May 04 12:02:32 GMT 2009  Olly Betts <olly@survex.com>
13337         * tests/harness/cputimer.cc: If we don't have rusage() or times(), but
13338           do have ftime(), use that instead of time() so we at least get
13339           subsecond resolution (as we do currently with OmTime).
13341 Mon May 04 03:31:51 GMT 2009  Olly Betts <olly@survex.com>
13343         * docs/queryparser.html: Add examples of using a prefix on a phrase
13344           or subexpression.
13346 Sun May 03 14:58:42 GMT 2009  Olly Betts <olly@survex.com>
13348         * tests/api_valuestats.cc: Testcase valuestats4 requires transactions,
13349           so indicate that and remove the explicit SKIP for inmemory.
13351 Sun May 03 12:34:30 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13353         * common/rset.h,common/weightinternal.h,matcher/rset.cc,
13354           weight/weightinternal.cc: Typedef std::map<string, Xapian::doccount>
13355           as TermFreqMap; tidies up code a little here, but mainly useful
13356           for keeping code tidy on branches/opsynonym.
13358 Sun May 03 11:49:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13360         * common/multimatch.h: Remove unused include of <map>
13362 Sun May 03 05:23:32 GMT 2009  Olly Betts <olly@survex.com>
13364         * tests/api_db.cc: Protect tests which assume Flint is enabled with
13365           #ifdef XAPIAN_HAS_FLINT_BACKEND.
13367 Sat May 02 15:49:46 GMT 2009  Olly Betts <olly@survex.com>
13369         * configure.ac,tests/Makefile.am,tests/api_scalability.cc,
13370           tests/api_wrdb.cc,tests/harness/: Add new "test_scalability()" helper
13371           function which checks that an operation scales in CPU time used in
13372           the desired way.  Use this to reimplement bigoaddvalue (and rename
13373           to bigoaddvalue1 for consistency).
13375 Fri May 01 04:58:41 GMT 2009  Olly Betts <olly@survex.com>
13377         * bin/xapian-check.cc: For chert, check value stats are the correct
13378           format and that the streamed values are consistent with their stats
13379           (ticket#277).
13381 Fri May 01 04:53:22 GMT 2009  Olly Betts <olly@survex.com>
13383         * api/omdocument.cc: Don't ever store empty values explicitly, which
13384           eliminates an inconsistently handled corner case which was causing
13385           the "value frequency" to be wrong from at least one point of view.
13386           This is consistent with how user metadata works too.
13387         * include/xapian/document.h: Explicitly document this behaviour.
13388         * tests/api_valuestats.cc: Add regression test for the above change.
13390 Fri May 01 03:11:25 GMT 2009  Olly Betts <olly@survex.com>
13392         * bin/xapian-check.cc: Chert doesn't store termlist entries for
13393           documents without terms, which resulted in us reporting an error when
13394           we found document ids in the doclength "postlist" which were greater
13395           than any with an entry in the termlist.  Instead compare these
13396           entries against db.get_last_docid() if we are checking a whole db
13397           and able to call it.  If not, suppress this check.
13399 Thu Apr 30 15:02:41 GMT 2009  Olly Betts <olly@survex.com>
13401         * common/valuestats.h: Fix comment typo.
13403 Tue Apr 28 14:01:41 GMT 2009  Olly Betts <olly@survex.com>
13405         * api/omdatabase.cc: Use <cstdlib> rather than <stdlib.h> which means
13406           that there's an overload for abs(long).
13408 Tue Apr 28 13:17:48 GMT 2009  Olly Betts <olly@survex.com>
13410         * HACKING,INSTALL,configure.ac,include/xapian/deprecated.h,
13411           include/xapian/version_h.cc,tests/harness/testsuite.cc: Actually,
13412           let's require GCC 3.1 as doing so eliminates some preprocessor
13413           conditionals which we aren't able to test regularly as we don't
13414           have easy access to such old GCC versions.  GCC 3.1 is nearly 7
13415           years old now, and GCC3 didn't get widespread use until later
13416           versions anyway.
13418 Tue Apr 28 12:47:11 GMT 2009  Olly Betts <olly@survex.com>
13420         * common/debuglog.h: Add missing initialisation of uncaught_exception
13421           in a couple of places.
13423 Tue Apr 28 11:24:02 GMT 2009  Olly Betts <olly@survex.com>
13425         * INSTALL: Note that Xapian 1.0.x should build with GCC 2.95.3.
13427 Tue Apr 28 11:20:51 GMT 2009  Olly Betts <olly@survex.com>
13429         * HACKING,INSTALL,backends/chert/chert_database.h,
13430           backends/flint/flint_database.h,
13431           backends/inmemory/inmemory_database.h,configure.ac,
13432           include/xapian/version_h.cc,tests/harness/testsuite.cc: Drop support
13433           for GCC 2.95.3 - we now require at least 3.0.
13435 Mon Apr 27 12:20:25 GMT 2009  Olly Betts <olly@survex.com>
13437         * include/xapian/weight.h: Add "need_stat(WDF);" for Weight subclasses
13438           which use wdf.  Currently this is never actually checked by trunk
13439           (so a regression test for this omission isn't really feasible), but
13440           the opsynonym branch uses it.
13442 Sun Apr 26 14:47:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13444         * weight/bm25weight.cc: Add call debugging.
13446 Sun Apr 26 10:57:48 GMT 2009  Olly Betts <olly@survex.com>
13448         * tests/api_db.cc: stubdb6 is "inmemory" not "flint || chert || multi".
13450 Sun Apr 26 10:51:50 GMT 2009  Olly Betts <olly@survex.com>
13452         * tests/queryparsertest.cc: Fix to build with the inmemory backend
13453           disabled.
13455 Sun Apr 26 07:28:47 GMT 2009  Olly Betts <olly@survex.com>
13457         * tests/generate-api_generated: Fix so generated api_generated.cc
13458           builds with the inmemory backend disabled.
13460 Sun Apr 26 06:30:57 GMT 2009  Olly Betts <olly@survex.com>
13462         * tests/api_anydb.cc: Fix to build with the inmemory backend disabled.
13464 Sat Apr 25 01:10:49 GMT 2009  Olly Betts <olly@survex.com>
13466         * bin/xapian-check.cc: Fix to build with the flint and/or chert
13467           backends disabled.
13469 Sat Apr 25 01:06:00 GMT 2009  Olly Betts <olly@survex.com>
13471         * matcher/multimatch.cc: Fix to build with the remote backend
13472           disabled.
13474 Sat Apr 25 00:57:41 GMT 2009  Olly Betts <olly@survex.com>
13476         * backends/dbfactory.cc: Fix to build with the inmemory backend
13477           disabled.
13479 Fri Apr 24 22:59:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13481         * weight/weight.cc: Add debug logging to Weight::init_() methods.
13482         * net/remoteserver.cc: Fix bounds returned by Weight::Internal
13483           object in get_mset() in remote submatches, by setting the
13484           database used to read the bounds.
13486 Fri Apr 24 13:14:50 GMT 2009  Olly Betts <olly@survex.com>
13488         * matcher/branchpostlist.cc,matcher/branchpostlist.h: Remove
13489           BranchPostList::get_wdf() which isn't currently used, and isn't
13490           wanted on branches/opsynonym.
13492 Fri Apr 24 12:46:18 GMT 2009  Olly Betts <olly@survex.com>
13494         * queryparser/queryparser.lemony: Apply doxygen comment improvement
13495           from branches/opsynonym.
13497 Fri Apr 24 12:31:15 GMT 2009  Olly Betts <olly@survex.com>
13499         * matcher/localmatch.cc: Apply assertion and debug logging
13500           improvements from branches/opsynonym.
13502 Thu Apr 23 06:16:05 GMT 2009  Olly Betts <olly@survex.com>
13504         * Makefile.am,configure.ac,docs/Makefile.am,tests/Makefile.am: Fix
13505           things up so that in a bootstrapped SVN tree, automatic regeneration
13506           of autotools-generated files uses the in-tree versions of the
13507           autotools.
13509 Thu Apr 23 04:37:31 GMT 2009  Olly Betts <olly@survex.com>
13511         * AUTHORS: Add another bug reporter.
13513 Thu Apr 23 04:26:25 GMT 2009  Olly Betts <olly@survex.com>
13515         * Makefile.am,languages/Makefile.mk,queryparser/Makefile.mk,
13516           tests/Makefile.am,tests/perftest/Makefile.mk: Don't remove any
13517           built sources in "make clean" even under --make-maintainer-mode
13518           as that breaks switching a tree away from maintainer-mode with:
13519           make distclean;./configure
13521 Thu Apr 23 03:51:03 GMT 2009  Olly Betts <olly@survex.com>
13523         * Makefile.am: Use "--coverage" instead of "-fprofile-arcs
13524           -ftest-coverage" in the test coverage build.
13526 Wed Apr 22 14:32:56 GMT 2009  Olly Betts <olly@survex.com>
13528         * PLATFORMS: Sync with 1.0.12; add entry for atreus for 1.1.0.
13530 Wed Apr 22 14:27:36 GMT 2009  Olly Betts <olly@survex.com>
13532         * AUTHORS: Add more bug reporters and patch contributors.  Remove a
13533           duplicate entry.
13535 Wed Apr 22 13:58:31 GMT 2009  Olly Betts <olly@survex.com>
13537         * NEWS: Set release date.
13539 Wed Apr 22 13:36:04 GMT 2009  Olly Betts <olly@survex.com>
13541         * NEWS: Update, perhaps even ready for release now.
13543 Wed Apr 22 11:00:50 GMT 2009  Olly Betts <olly@survex.com>
13545         * NEWS: More work.
13547 Tue Apr 21 17:59:13 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13549         * docs/queryparser.html: Add closing <code> tag.
13551 Tue Apr 21 11:05:17 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13553         * NEWS: A few minor corrections and adjustments.
13555 Tue Apr 21 07:49:49 GMT 2009  Olly Betts <olly@survex.com>
13557         * include/xapian/weight.h: Don't use the term "term" to talk about the
13558           extra weight component as it already has a strong meaning in Xapian.
13560 Tue Apr 21 07:16:18 GMT 2009  Olly Betts <olly@survex.com>
13562         * queryparser/lemon.c: Merge upstream "Check-in Number: 6451".
13564 Tue Apr 21 06:54:00 GMT 2009  Olly Betts <olly@survex.com>
13566         * matcher/queryoptimiser.h: '#include <map>' isn't required.
13568 Tue Apr 21 06:45:14 GMT 2009  Olly Betts <olly@survex.com>
13570         * matcher/queryoptimiser.cc,matcher/queryoptimiser.h: Eliminate
13571           QueryOptimiser::do_leaf() as it is only called from one place
13572           and if only two lines of code.
13574 Mon Apr 20 14:10:08 GMT 2009  Olly Betts <olly@survex.com>
13576         * NEWS: Update from ChangeLog and start to lick into shape for a
13577           release.
13579 Mon Apr 20 13:06:17 GMT 2009  Olly Betts <olly@survex.com>
13581         * HACKING: XAPIAN_DEBUG_LOG=- send output to stderr, not stdout.
13583 Mon Apr 20 11:53:07 GMT 2009  Olly Betts <olly@survex.com>
13585         * common/output.h: Add new macro XAPIAN_OUTPUT_FUNCTION_PTR and use it
13586           so that debug logging of Xapian::Query::Internal* doesn't just
13587           report the pointer value.
13589 Mon Apr 20 06:39:42 GMT 2009  Olly Betts <olly@survex.com>
13591         * matcher/multimatch.cc: Apply debug logging change lifted from
13592           branches/opsynonym.
13594 Mon Apr 20 05:22:24 GMT 2009  Olly Betts <olly@survex.com>
13596         * tests/harness/testutils.cc: Add FIXME comments about use of internal
13597           macro from a different header.
13599 Mon Apr 20 05:08:34 GMT 2009  Olly Betts <olly@survex.com>
13601         * HACKING: Update release checklist.
13603 Sun Apr 19 14:50:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13605         * tests/api_nodb.cc: Stick the reciprocal of "factor" into a
13606           volatile double temporary variable to stop compiler using
13607           extended precision calculation on x86, and coming up an answer of
13608           exactly 1.0 when multiplying by "factor" again.
13610 Sun Apr 19 14:26:09 GMT 2009  Olly Betts <olly@survex.com>
13612         * NEWS: Sync with 1.0.12 and update from ChangeLog.
13614 Sun Apr 19 12:12:19 GMT 2009  Olly Betts <olly@survex.com>
13616         * AUTHORS: Update for 1.0 branch.
13618 Thu Apr 16 12:08:24 GMT 2009  Olly Betts <olly@survex.com>
13620         * backends/chert/chert_values.cc: When copying the tail of a value
13621           chunk because did > last_allowed_did, we don't need to check if
13622           the docids being copied are < did, since they should all be <=
13623           last_allowed_did, so just assert the latter.
13625 Tue Apr 14 20:32:41 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13627         * tests/api_wrdb.cc: patch from james to move logging in
13628           modifyvalues1 so it reports the values it's rewriting correctly,
13629           rather than the empty string.  Also display the expected value in
13630           tout when checking the value.  Also, pull the setting of the random
13631           seed out to the start of the function, and set it to 7 (which
13632           exposed the bug fixed with the previous commit, which that the old
13633           value of 42 didn't, on my machine, at least).
13635 Tue Apr 14 18:12:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13637         * backends/chert/chert_values.cc: When we move the reader to a new
13638           chunk, write any trailing values left in it to the stream first.
13640 Thu Apr 09 05:01:04 GMT 2009  Olly Betts <olly@survex.com>
13642         * docs/admin_notes.rst: Document the child process used for locking
13643           which exec-s "cat" (ticket #258).
13645 Thu Apr 09 03:49:13 GMT 2009  Olly Betts <olly@survex.com>
13647         * bin/: Use C++ forms of C headers in bin (ticket#330).
13649 Thu Apr 09 03:47:42 GMT 2009  Olly Betts <olly@survex.com>
13651         * examples/: Use C++ forms of C headers in examples (ticket#330).
13653 Mon Apr 06 06:35:03 GMT 2009  Olly Betts <olly@survex.com>
13655         * include/xapian/unicode.h: Fix documentation comment typos.
13657 Mon Apr 06 06:03:45 GMT 2009  Olly Betts <olly@survex.com>
13659         * AUTHORS: Add Muayyad Alsadi for reporting #355.
13661 Mon Apr 06 05:59:38 GMT 2009  Olly Betts <olly@survex.com>
13663         * tests/api_unicode.cc: Note which characters in the new
13664           unicodepredicate1 testcase are new in Unicode 5.1.0.
13666 Sun Apr 05 14:24:47 GMT 2009  Olly Betts <olly@survex.com>
13668         * include/xapian/unicode.h: Add NON_SPACING_MARK to is_wordchar() for
13669           better tokenisation of Arabic, for example.  (ticket#355)
13670         * tests/queryparsertest.cc: Add test that this has the desired effect.
13671         * tests/api_unicode.cc: Add feature tests of Unicode::is_wordchar(),
13672           Unicode::is_currency(), and Unicode::is_whitespace().
13674 Sat Apr 04 05:41:47 GMT 2009  Olly Betts <olly@survex.com>
13676         * NEWS: Update from ChangeLog.
13678 Wed Apr 01 00:18:02 GMT 2009  Olly Betts <olly@survex.com>
13680         * bin/xapian-compact.cc: Fix totlen overflow test.  Refactor lightly
13681           to reduce indenting.
13683 Tue Mar 31 17:01:20 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13685         * bin/xapian-compact.cc: Handle databases which contain no
13686           documents (and hence have no METAINFO item), but do contain some
13687           metadata (so the postlist table is not empty).  Fixes ticket
13688           #356.
13690 Tue Mar 31 13:49:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13692         * api/postingsource.cc,include/xapian/postingsource.h: Change
13693           return types of clone() and unserialise() methods to be of the
13694           subclass returned; this is a bit more flexible, but the main
13695           reason is to be consistent: previously, the clone() methods
13696           returned the subclass, but the unserialise() methods returned
13697           PostingSource.
13699 Tue Mar 31 12:10:03 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13701         * include/xapian/postingsource.h: Add comment on PostingSource base
13702           class listing it as an experimental feature.
13703         * docs/deprecation.rst: Describe what "experimental" features are,
13704           and why replication and posting sources are currently
13705           experimental.
13707 Tue Mar 31 11:34:25 GMT 2009  Olly Betts <olly@survex.com>
13709         * include/xapian/matchspy.h: Removed currently unused header to stop
13710           doxygen from generating documentation for it.
13712 Tue Mar 31 11:27:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13714         * docs/replication.rst,include/xapian/replication.h: Note that
13715           replication is currently "experimental".
13717 Fri Mar 27 14:29:05 GMT 2009  Olly Betts <olly@survex.com>
13719         * backends/chert/chert_spelling.cc,backends/chert/chert_spelling.h,
13720           backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h:
13721           Fix WritableDatabase::remove_spelling() to not be very broken in
13722           several ways.
13723         * tests/api_spelling.cc: Add test coverage for it.
13725 Fri Mar 27 10:43:34 GMT 2009  Olly Betts <olly@survex.com>
13727         * xapian-config.in: Add @LIBRARY_VERSION_SUFFIX@ to -lxapian too.
13729 Fri Mar 27 08:22:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13731         * include/xapian/postingsource.h: Update documentation comments to
13732           refer to init() instead of the old name of reset().
13734 Fri Mar 27 08:10:48 GMT 2009  Olly Betts <olly@survex.com>
13736         * HACKING: Document the lcov make targets.
13738 Fri Mar 27 07:44:59 GMT 2009  Olly Betts <olly@survex.com>
13740         * Makefile.am: Add two new targets to assist generating test coverage
13741           reports with lcov: coverage-reconfigure which reruns configure in
13742           the source tree and coverage-check which runs "make check" and
13743           generates an HTML report in a directory called "lcov".
13745 Thu Mar 26 23:59:36 GMT 2009  Olly Betts <olly@survex.com>
13747         * Makefile.am,m4-macros/xapian.m4,xapian-core.spec.in: Rename
13748           xapian.m4 to xapian-1.1.m4 to avoid clash with Xapian 1.0.x.  Both
13749           xapian.m4 and xapian-1.1.m4 will contain XO_LIB_XAPIAN, but aclocal
13750           copes and only copies one of them.  We need to avoid incompatible
13751           changes to XO_LIB_XAPIAN though.
13753 Thu Mar 26 14:29:54 GMT 2009  Olly Betts <olly@survex.com>
13755         * configure.ac,include/Makefile.mk,xapian-config.in: Install headers
13756           in $prefix/include/xapian-1.1/ so they don't clash with 1.0.
13758 Thu Mar 26 13:46:06 GMT 2009  Olly Betts <olly@survex.com>
13760         * configure.ac: Default program suffix to -1.1 if not specified.  If
13761           you really want no suffix, "./configure --program-suffix=" will
13762           achieve that.
13764 Thu Mar 26 12:49:10 GMT 2009  Olly Betts <olly@survex.com>
13766         * Makefile.am,api/Makefile.mk,backends/Makefile.mk,
13767           backends/chert/Makefile.mk,backends/flint/Makefile.mk,
13768           backends/inmemory/Makefile.mk,backends/multi/Makefile.mk,
13769           backends/remote/Makefile.mk,bin/Makefile.mk,common/Makefile.mk,
13770           configure.ac,examples/Makefile.mk,expand/Makefile.mk,
13771           languages/Makefile.mk,matcher/Makefile.mk,net/Makefile.mk,
13772           queryparser/Makefile.mk,tests/Makefile.am,tests/perftest/Makefile.mk,
13773           unicode/Makefile.mk,weight/Makefile.mk,xapian-config.in,
13774           xapian-core.spec.in: Change library name to libxapian-1.1 as a first
13775           step towards allowing parallel installation with 1.0.x.
13777 Thu Mar 26 06:53:27 GMT 2009  Olly Betts <olly@survex.com>
13779         * NEWS: Update from ChangeLog.
13781 Thu Mar 26 06:50:44 GMT 2009  Olly Betts <olly@survex.com>
13783         * backends/chert/chert_values.h: Fix class name in file doc comment.
13785 Thu Mar 26 00:13:48 GMT 2009  Olly Betts <olly@survex.com>
13787         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
13788           Call ChertDatabase::close() rather than repeating its code.
13790 Wed Mar 25 17:39:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13792         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
13793           Release the lock when the database is closed (either due to a
13794           call to close() or due to a serious error during modifications).
13795           Should fix ticket #354.
13797 Wed Mar 25 16:42:58 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13799         * tests/harness/testutils.cc: Use TEST_EQUAL_DOUBLE_ for comparison
13800           of weights in mset, to fix test failures due to floating point
13801           differences.  (Currently only manifests in some tests in the
13802           matchspy branch, but it's a generally useful fix.)
13804 Wed Mar 25 11:44:36 GMT 2009  Olly Betts <olly@survex.com>
13806         * configure.ac: Only put ANSI_CXXFLAGS in CXXFLAGS for the duration of
13807           configure - put it in AM_CXXFLAGS for substituting so that the user
13808           can safely override CXXFLAGS at make-time: "make CXXFLAGS=-Os"
13810 Wed Mar 25 10:50:44 GMT 2009  Olly Betts <olly@survex.com>
13812         * configure.ac: Fix comment typo.
13814 Wed Mar 25 04:48:50 GMT 2009  Olly Betts <olly@survex.com>
13816         * api/omdatabase.cc,backends/chert/chert_database.h,
13817           backends/flint/flint_database.h,
13818           backends/inmemory/inmemory_database.h,
13819           backends/remote/remote-database.cc,common/const_database_wrapper.h,
13820           common/database.h: Drop the default value of the lazy parameter to
13821           Database::open_document() - it's better to force us to consider
13822           whether a new call should be lazy or not.
13823         * common/database.h: Better description of lazy parameter.
13824         * backends/remote/remote-database.cc: Update comment about when lazy
13825           is set to true.
13827 Wed Mar 25 04:20:34 GMT 2009  Olly Betts <olly@survex.com>
13829         * backends/inmemory/inmemory_database.cc: Don't "return false" when
13830           the return type is a pointer!
13832 Tue Mar 24 17:42:22 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13834         * backends/database.cc: Open documents lazily in
13835           collect_document().
13837 Tue Mar 24 11:10:57 GMT 2009  Olly Betts <olly@survex.com>
13839         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
13840           MultiPostList::read_position_list() is never used, so remove it.
13842 Tue Mar 24 10:04:03 GMT 2009  Olly Betts <olly@survex.com>
13844         * backends/multi/multi_postlist.cc: Remove "[" and "]" from the output
13845           of MultiPostList::get_description().  Remove excess "," from output
13846           of MultiPostList::get_description().
13847         * tests/api_db.cc: Add some test coverage of
13848           PostingIterator::get_wdf() and PostingIterator::get_description().
13850 Tue Mar 24 10:00:23 GMT 2009  Olly Betts <olly@survex.com>
13852         * api/ompostlistiterator.cc: Remove "[" and "]" from
13853           Xapian::PostingIterator::get_description() as they don't add
13854           anything useful.
13856 Tue Mar 24 09:57:39 GMT 2009  Olly Betts <olly@survex.com>
13858         * backends/inmemory/inmemory_database.cc: Add a space in the output
13859           of InMemoryPostList::get_description() and
13860           InMemoryAllDocsPostList::get_description().
13862 Tue Mar 24 08:52:46 GMT 2009  Olly Betts <olly@survex.com>
13864         * api/leafpostlist.cc,include/xapian/weight.h,tests/api_db.cc,weight/:
13865           Get rid of the virtual Weight::get_sumpart_needs_doclength() method
13866           - subclasses can call need_stat(DOC_LENGTH) in their constructor if
13867           they need doc lengths.
13869 Tue Mar 24 07:55:06 GMT 2009  Olly Betts <olly@survex.com>
13871         * weight/weight.cc: Check stats_needed for stats which aren't just a
13872           simple member variable lookup.
13874 Tue Mar 24 06:46:24 GMT 2009  Olly Betts <olly@survex.com>
13876         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
13877           MultiPostList::get_termfreq() is never used, so remove it.
13879 Mon Mar 23 14:09:33 GMT 2009  Olly Betts <olly@survex.com>
13881         * tests/api_unicode.cc: Add test coverage for
13882           Xapian::Unicode::append_utf8().
13884 Mon Mar 23 11:40:09 GMT 2009  Olly Betts <olly@survex.com>
13886         * api/postingsource.cc,docs/postingsource.rst,
13887           include/xapian/postingsource.h,matcher/externalpostlist.cc,
13888           tests/api_db.cc,tests/api_percentages.cc,tests/api_valuestream.cc:
13889           Rename PostingSource::reset() to PostingSource::init().
13891 Mon Mar 23 11:01:02 GMT 2009  Olly Betts <olly@survex.com>
13893         * tests/harness/testsuite.h: Fix documentation comment in line with
13894           the corrected --help output from "Sat Feb 21 08:18:21 GMT 2009".
13896 Mon Mar 23 02:24:44 GMT 2009  Olly Betts <olly@survex.com>
13898         * api/omqueryinternal.cc: Fix handling of empty and single subquery
13899           OP_NEAR and OP_PHRASE (was breaking queryparsertest).
13901 Sun Mar 22 10:23:37 GMT 2009  Olly Betts <olly@survex.com>
13903         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
13904           backends/inmemory/inmemory_database.cc,
13905           backends/inmemory/inmemory_positionlist.cc,
13906           common/inmemory_positionlist.h,docs/deprecation.rst,
13907           tests/api_posdb.cc: Change Database::positionlist_begin() not to
13908           throw exceptions if the term or document doesn't exist.
13910 Sun Mar 22 09:02:46 GMT 2009  Olly Betts <olly@survex.com>
13912         * docs/deprecation.rst: Fix typo.
13914 Sun Mar 22 07:54:30 GMT 2009  Olly Betts <olly@survex.com>
13916         * api/omqueryinternal.cc,include/xapian/query.h,tests/api_nodb.cc,
13917           tests/api_query.cc: Fix valgrind errors on nearsubqueries1
13918           (ticket#349) and enhance distribution of OP_NEAR/OP_PHRASE over
13919           non-leaf subqueries to work when there are multiple non-leaf
13920           subqueries (ticket#201).  Extend nearsubqueries1 to test that
13921           trying to distribute OP_NEAR/OP_PHRASE over OP_NEAR/OP_PHRASE
13922           throws UnimplementedError.
13924 Fri Mar 20 08:43:20 GMT 2009  Olly Betts <olly@survex.com>
13926         * tests/api_query.cc: Add coverage for OP_AND with MatchNothing
13927           subquery (new testcase matchnothing1).
13929 Fri Mar 20 05:16:18 GMT 2009  Olly Betts <olly@survex.com>
13931         * api/omqueryinternal.cc: Fix assertions in previous check-in to
13932           verify the right condition.  And return the simplified query in
13933           the case the assertion would have failed, as that means a small
13934           memory leak rather than unpredictable behaviour in a non-assertion
13935           build.
13937 Fri Mar 20 04:26:29 GMT 2009  Olly Betts <olly@survex.com>
13939         * api/omqueryinternal.cc: Check that end_construction() returns NULL
13940           when unserialising queries.
13942 Fri Mar 20 02:51:32 GMT 2009  Olly Betts <olly@survex.com>
13944         * api/omqueryinternal.cc: Fix return type of
13945           Xapian::Query::Internal::simplify_query() in a debug build.  Since
13946           RETURN() isn't used by this function, this is only a cosmetic issue
13947           in the log file.
13949 Wed Mar 18 09:26:02 GMT 2009  Olly Betts <olly@survex.com>
13951         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
13952           docs/deprecation.rst: Move just returning an empty PositionIterator
13953           from Database::positionlist_begin() when the docs or term isn't
13954           present from 1.2.0 to 1.1.0 (has to be 1.1.0 or 1.3.0 really).
13956 Wed Mar 18 09:24:27 GMT 2009  Olly Betts <olly@survex.com>
13958         * docs/glossary.rst: Chert as the default backend in 1.2.0 is pretty
13959           much definite.
13961 Wed Mar 18 06:42:09 GMT 2009  Olly Betts <olly@survex.com>
13963         * NEWS: Update from ChangeLog.
13965 Wed Mar 18 04:36:59 GMT 2009  Olly Betts <olly@survex.com>
13967         * xapian-core.spec.in: Tweak reference to "1.1.0 branch" to make more
13968           sense.
13970 Wed Mar 18 04:30:18 GMT 2009  Olly Betts <olly@survex.com>
13972         * api/postingsource.cc,include/xapian/postingsource.h: Remove the
13973           optional "max_weight_" parameter to ValuePostingSource's ctor.
13974         * include/xapian/postingsource.h: Correct a few errors in
13975           documentation comments.
13977 Wed Mar 18 04:29:22 GMT 2009  Olly Betts <olly@survex.com>
13979         * docs/postingsource.rst: "ctx" -> "context" in example code.
13981 Tue Mar 17 23:45:52 GMT 2009  Olly Betts <olly@survex.com>
13983         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: If the
13984           locking attempt fails after we spawn the child process, call
13985           waitpid() in the parent process to avoid creating a zombie process.
13986         * AUTHORS: Add Jim Spath for reporting this.
13988 Tue Mar 17 23:34:16 GMT 2009  Olly Betts <olly@survex.com>
13990         * common/Makefile.mk,common/str.cc,common/str.h: New family of
13991           overloaded str() functions for converting types to std::string.
13992           The integer conversion are much faster than the existing
13993           om_tostring().
13994         * common/omassert.h,common/omdebug.h: Use str() instead of
13995           om_tostring().
13996         * common/utils.cc,common/utils.h: Make om_tostring() a macro wrapping
13997           str() for now to avoid introducing a lot of conflicts with other
13998           branches and unapplied patches.
14000 Tue Mar 17 21:28:54 GMT 2009  Olly Betts <olly@survex.com>
14002         * configure.ac: Fix comment typo.
14004 Tue Mar 17 00:47:26 GMT 2009  Olly Betts <olly@survex.com>
14006         * common/utils.cc: Fix previous change to actually compile...
14008 Mon Mar 16 20:10:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14010         * common/utils.cc,common/utils.h: Add om_tostring() version of
14011           unsigned long long int, to fix debug build on i686.
14013 Mon Mar 16 14:01:02 GMT 2009  Olly Betts <olly@survex.com>
14015         * NEWS: Sync with 1.0.11.
14017 Fri Mar 13 06:59:29 GMT 2009  Olly Betts <olly@survex.com>
14019         * weight/weightinternal.cc: Need "utils.h" for om_tostring().
14021 Fri Mar 13 05:47:24 GMT 2009  Olly Betts <olly@survex.com>
14023         * include/xapian/queryparser.h: Note that QueryParser::FLAG_DEFAULT
14024           was new in 1.0.11.
14026 Fri Mar 13 04:36:19 GMT 2009  Olly Betts <olly@survex.com>
14028         * weight/weightinternal.cc: Implement
14029           Weight::Internal::get_description().
14031 Thu Mar 12 11:57:02 GMT 2009  Olly Betts <olly@survex.com>
14033         * common/output.h: Fix last commit.
14035 Thu Mar 12 11:29:58 GMT 2009  Olly Betts <olly@survex.com>
14037         * common/output.h: Define operator<< for Xapian::Weight::Internal.
14039 Thu Mar 12 11:21:09 GMT 2009  Olly Betts <olly@survex.com>
14041         * net/remoteserver.cc: Fix overlooked case which was still sending
14042           REPLY_DOCLENGTH as a double.
14044 Wed Mar 11 22:56:59 GMT 2009  Olly Betts <olly@survex.com>
14046         * backends/chert/chert_valuelist.cc: Fix comment typo.
14048 Wed Mar 11 22:50:49 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14050         * tests/api_valuestream.cc: Enable valuestream3 for chert.
14051         * backends/chert/chert_valuelist.cc: Fix return value of
14052           ChertValueList::check() when it needs to move to a new chunk.
14053           Fixes valuestream3 test.
14055 Wed Mar 11 13:17:58 GMT 2009  Olly Betts <olly@survex.com>
14057         * include/xapian/weight.h: Mark Weight::init_() methods as "@private
14058           @internal" for doxygen API docs.
14060 Wed Mar 11 13:13:32 GMT 2009  Olly Betts <olly@survex.com>
14062         * include/xapian/weight.h,tests/api_db.cc,tests/api_nodb.cc,
14063           weight/bm25weight.cc,weight/boolweight.cc,weight/tradweight.cc:
14064           Make Weight::name() return std::string to allow sane wrapping
14065           with SWIG directors.
14067 Wed Mar 11 05:46:40 GMT 2009  Olly Betts <olly@survex.com>
14069         * api/,backends/chert/,backends/contiguousalldocspostlist.cc,
14070           backends/flint/,backends/inmemory/inmemory_database.cc,
14071           backends/inmemory/inmemory_database.h,
14072           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
14073           backends/remote/,common/,docs/remote_protocol.html,
14074           include/xapian/database.h,include/xapian/postingiterator.h,matcher/,
14075           net/remoteserver.cc: Internally, pass around non-normalised document
14076           lengths as Xapian::termcount (unsigned integer) not Xapian::doclength
14077           (double).
14079 Wed Mar 11 05:25:40 GMT 2009  Olly Betts <olly@survex.com>
14081         * tests/api_anydb.cc: Use TEST_REL; wrap long comment.
14083 Wed Mar 11 04:52:41 GMT 2009  Olly Betts <olly@survex.com>
14085         * Makefile.am,api/,backends/chert/,backends/database.cc,
14086           backends/flint/flint_database.cc,backends/flint/flint_database.h,
14087           backends/inmemory/inmemory_database.cc,
14088           backends/inmemory/inmemory_database.h,
14089           backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
14090           examples/delve.cc,include/Makefile.mk,include/xapian.h,
14091           include/xapian/database.h,include/xapian/enquire.h,
14092           include/xapian/weight.h,matcher/,net/remoteserver.cc,
14093           net/serialise.cc,tests/,weight/: Reimplementation of weighting
14094           schemes which allows user subclasses to access the same stats which
14095           built in schemes can (bug#213) and which also can use lower and
14096           upper bounds of doclength and upper bounds on wdf to give a tighter
14097           maxweight, which should allow the matcher weight-based optimisations
14098           to be more effective.  Chert now tracks doclength bounds and a
14099           global (rather than per term) bound on wdf.  Other backends
14100           return much less good bounds, but these still lead to better
14101           maxweight bounds.
14103 Wed Mar 11 00:13:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14105         * include/xapian/query.h: Rename parameter name from "ctx" to the
14106           more human-friendly "context".
14108 Tue Mar 10 14:03:33 GMT 2009  Olly Betts <olly@survex.com>
14110         * tests/harness/testutils.cc: If mset_range_is_same_percents() fails
14111           because the percentages differ, report what they were to tout.
14113 Mon Mar 09 12:27:28 GMT 2009  Olly Betts <olly@survex.com>
14115         * matcher/localmatch.cc: Remove special case handling for empty string
14116           being returned from the TermIterator returned by
14117           Query::Internal::get_terms() as this should no longer happen.
14119 Mon Mar 09 12:09:21 GMT 2009  Olly Betts <olly@survex.com>
14121         * api/omqueryinternal.cc: Don't return "" from a TermIterator from
14122           Query::get_terms_begin() (happened when Query contained or was
14123           Query::MatchAll).
14124         * tests/Makefile.am,tests/api_query.cc: Add regression testcase
14125           queryterms1.
14127 Sun Mar 08 06:16:24 GMT 2009  Olly Betts <olly@survex.com>
14129         * tests/api_backend.cc: Add check that backends don't truncate total
14130           document length to 32 bits.
14132 Sun Mar 08 06:02:43 GMT 2009  Olly Betts <olly@survex.com>
14134         * tests/api_backend.cc: Disable lockfileumask1 on Cygwin and on OS/2.
14136 Sun Mar 08 05:36:54 GMT 2009  Olly Betts <olly@survex.com>
14138         * matcher/extraweightpostlist.h: Add forward declaration of
14139           Xapian::Weight since we use "Xapian::Weight *".
14141 Sun Mar 08 04:39:22 GMT 2009  Olly Betts <olly@survex.com>
14143         * backends/chert/chert_types.h,backends/flint/flint_types.h,
14144           bin/xapian-check-flint.cc,bin/xapian-check.cc,bin/xapian-compact.cc,
14145           common/Makefile.mk,common/database.h,common/internaltypes.h:
14146           Move totlen_t to a new header (internaltypes.h) to avoid needing to
14147           pull in database.h in when we want to use it.  Also move int4 and
14148           uint4 there to avoid duplicated definitions and abstract out a
14149           new uint8 from defining totlen_t.
14151 Sun Mar 08 00:50:38 GMT 2009  Olly Betts <olly@survex.com>
14153         * backends/chert/chert_database.h,backends/chert/chert_types.h,
14154           backends/flint/flint_database.h,backends/flint/flint_types.h,
14155           bin/xapian-check-flint.cc,bin/xapian-check.cc,bin/xapian-compact.cc,
14156           common/database.h: Replace flint_totlen_t and chert_totlen_t with
14157           a common totlen_t.
14159 Sat Mar 07 08:35:27 GMT 2009  Olly Betts <olly@survex.com>
14161         * backends/chert/chert_database.cc: Wrap comment.
14163 Sat Mar 07 08:28:17 GMT 2009  Olly Betts <olly@survex.com>
14165         * backends/inmemory/inmemory_database.h: Fix file description
14166           ("multiple database" -> "inmemory database").
14168 Sat Mar 07 08:25:11 GMT 2009  Olly Betts <olly@survex.com>
14170         * backends/inmemory/inmemory_database.cc,
14171           backends/inmemory/inmemory_database.h: Store non-normalised document
14172           lengths as Xapian::termcount (unsigned int) rather than
14173           Xapian::doclength (double).
14175 Sat Mar 07 06:56:26 GMT 2009  Olly Betts <olly@survex.com>
14177         * common/database.h: Removed unused forward declarations of classes.
14179 Sat Mar 07 06:52:11 GMT 2009  Olly Betts <olly@survex.com>
14181         * common/database.h: Fix comment typo.
14183 Sat Mar 07 05:44:18 GMT 2009  Olly Betts <olly@survex.com>
14185         * net/serialise.cc: Fix top of file to actually be a doxygen comment.
14186           Tweak layout of definition of serialise_stats().
14188 Sat Mar 07 05:40:58 GMT 2009  Olly Betts <olly@survex.com>
14190         * net/serialise.cc: c_str() -> data() since we don't need the
14191           nul-termination.
14193 Thu Mar 05 11:49:45 GMT 2009  Olly Betts <olly@survex.com>
14195         * tests/api_db.cc,tests/api_nodb.cc: Back out accidentally committed
14196           changes 2 commits ago.
14198 Thu Mar 05 10:28:07 GMT 2009  Olly Betts <olly@survex.com>
14200         * AUTHORS: Add Frank J. Bruzzaniti for omindex patches.
14202 Thu Mar 05 10:20:38 GMT 2009  Olly Betts <olly@survex.com>
14204         * tests/Makefile.am: If both chert and flint are enabled, run
14205           remoteprog_chert and remotetcp_flint but not the other two
14206           combinations as they don't buy us any useful extra test
14207           coverage, but cost a lot of extra time per testrun.
14209 Thu Mar 05 07:51:52 GMT 2009  Olly Betts <olly@survex.com>
14211         * docs/deprecation.rst: Update to reflect that odd minor versions are
14212           now development series.
14214 Thu Mar 05 04:20:43 GMT 2009  Olly Betts <olly@survex.com>
14216         * common/serialisationcontextinternal.h: Fix forward declarations.
14218 Thu Mar 05 02:11:26 GMT 2009  Olly Betts <olly@survex.com>
14220         * api/omdatabase.cc: "new_uuid" -> "sub_uuid" - it's not really new.
14222 Wed Mar 04 22:53:13 GMT 2009  Olly Betts <olly@survex.com>
14224         * include/xapian/queryparser.h,include/xapian/termgenerator.h: Make
14225           default empty std::string parameters use std::string() rather than
14226           "".
14228 Wed Mar 04 16:06:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14230         * api/omdatabase.cc: If a sub-database of a multi-database has no
14231           uuid, we cannot return a uuid for the database, so return
14232           string() instead.
14233         * tests/api_anydb.cc: Test for this.
14235 Wed Mar 04 13:45:41 GMT 2009  Olly Betts <olly@survex.com>
14237         * HACKING: Conversion to C++ names for ISO C headers will happen in
14238           1.1.x, not 1.1.0.
14240 Wed Mar 04 13:37:47 GMT 2009  Olly Betts <olly@survex.com>
14242         * api/omdatabase.cc,backends/database.cc,
14243           backends/remote/remote-database.cc,common/database.h,
14244           include/xapian/database.h,net/remoteserver.cc,tests/api_anydb.cc:
14245           Return an empty string from Database::get_uuid() when then backend
14246           doesn't support UUIDs for consistency with flint when the database
14247           has no UUID.  For a multiple database, build a string from the UUIDs
14248           of each subdatabase and return this as the UUID.  If there are no
14249           subdatabases return the empty string.
14251 Wed Mar 04 11:34:04 GMT 2009  Olly Betts <olly@survex.com>
14253         * backends/remote/remote-database.cc,common/remoteprotocol.h,
14254           common/remoteserver.h,docs/remote_protocol.html,net/remoteserver.cc:
14255           Change the remote server to always default to opening a Database and
14256           having the client request write access explicitly.  This allows a
14257           single server to support multiple readers and one writer
14258           simultaneously.  (bug#145)
14259         * net/remoteserver.cc,backends/remote/remote-database.cc: For constant
14260           empty string parameters, pass string() rather than "".
14261         * common/remoteserver.h: Remove unused '#include <map>'.  Remove
14262           'using namespace std;' and explicitly qualify the few bare mentions
14263           of 'string'.
14265 Wed Mar 04 07:24:39 GMT 2009  Olly Betts <olly@survex.com>
14267         * queryparser/queryparser.lt: Sync with latest upstream lempar.c
14268           (only changes were in code which isn't in our version).
14270 Wed Mar 04 04:03:44 GMT 2009  Olly Betts <olly@survex.com>
14272         * tests/Makefile.am,tests/api_percentages.cc,
14273           tests/testdata/apitest_sortconsist.txt: Apply regression test patch
14274           from bug#216.
14276 Wed Mar 04 03:41:49 GMT 2009  Olly Betts <olly@survex.com>
14278         * include/xapian/enquire.h,matcher/multimatch.cc: Fix inconsistent
14279           percentage scores when sorting primarily by valuei, except when
14280           a MatchDecider is also being used; document this remaining problem
14281           case.  (bug#216)
14283 Wed Mar 04 01:58:07 GMT 2009  Olly Betts <olly@survex.com>
14285         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: No need
14286           to initialise inflate_zstream->next_out and avail_out twice.
14288 Wed Mar 04 01:16:32 GMT 2009  Olly Betts <olly@survex.com>
14290         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: If
14291           deflateReset() or inflateReset() fails, just delete the zstream
14292           take the initialisation codepath - that should mean we recover
14293           if the stream does somehow end up in a bad state and is less
14294           code than throwing an exception.  Annotate tests with rare()
14295           or usual() if they are for exceptional conditions.  Fix bug
14296           introduced by the laziness patch which was adding an int error
14297           code to a const char * message.  If deflateInit2() or inflateInit2()
14298           fails, delete and zero the stream so there's no risk of ending up
14299           wedged on a partly initialised stream.
14301 Tue Mar 03 15:32:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14303         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
14304           Check for errors from deflateReset() and inflateReset() - there
14305           shouldn't be any if we've given them a valid stream, so just
14306           raise InternalError if we get one.
14308 Tue Mar 03 09:43:34 GMT 2009  Olly Betts <olly@survex.com>
14310         * NEWS: Updated from ChangeLog.
14312 Tue Mar 03 05:52:16 GMT 2009  Olly Betts <olly@survex.com>
14314         * tests/api_closedb.cc: Fix testcase closedb2 not to create a test
14315           database named closedb3.
14317 Tue Mar 03 04:31:48 GMT 2009  Olly Betts <olly@survex.com>
14319         * include/xapian/queryparser.h: Add QueryParser::FLAG_DEFAULT to make
14320           it easier to add flags to those set by default.
14321         * tests/queryparsertest.cc: Use FLAG_DEFAULT in a few places to serve
14322           as a feature test.
14324 Tue Mar 03 03:45:53 GMT 2009  Olly Betts <olly@survex.com>
14326         * docs/index.html: Add link to new serialisation topic document.
14327         * docs/serialisation.rst: Reword to avoid pluralising class names.
14328           Add link to postingsource document where we reference it.
14330 Tue Mar 03 03:35:29 GMT 2009  Olly Betts <olly@survex.com>
14332         * tests/runsrv.in: Use @top_builddir@ rather than relying on it
14333           coming from the environment.
14335 Tue Mar 03 03:05:47 GMT 2009  Olly Betts <olly@survex.com>
14337         * tests/api_wrdb.cc: Clear tout regularly in modifyvalues1 as
14338           otherwise the output builds up.  Some string stream implementations
14339           get very inefficient with large strings, and also this seems to
14340           interact badly with valgrind's leak detection resulting in the
14341           test having to be rerun to check if it really leaks.  Prefer
14342           tout.str(string()) to tout.str("") in existing uses too.
14344 Tue Mar 03 01:41:07 GMT 2009  Olly Betts <olly@survex.com>
14346         * backends/flint/flint_table.cc: Update handling of shutting down
14347           the zstream objects in the dtor to match chert.
14349 Mon Mar 02 23:57:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14351         * backends/chert/chert_table.h,backends/flint/flint_table.h: Add
14352           documentation comments for the lazy allocation methods, and
14353           separate comments for the zstream members.
14355 Mon Mar 02 23:40:20 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14357         * AUTHORS,backends/chert/chert_table.cc,backends/chert/chert_table.h,
14358           backends/flint/flint_table.cc,backends/flint/flint_table.h:
14359           Reduce allocation of zstreams by allocating them lazily, keeping
14360           them in the table objects, and reuse them, rather than allocating
14361           a new one each time it's wanted.  Heavily based on a patch from
14362           Todd Lipcon.  Apparently improves performance significantly on
14363           some systems; on my tests it has no perceptible negative impact,
14364           but it makes sense that it could help in some situations, so
14365           let's apply it.  Fixes #325.
14367 Mon Mar 02 21:10:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14369         * docs/deprecation.rst: Deprecate Stem_get_available_languages()
14370           from the python bindings.
14372 Mon Mar 02 19:56:20 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14374         * common/Makefile.mk,common/const_database_wrapper.cc,
14375           common/const_database_wrapper.h,matcher/queryoptimiser.cc: Avoid
14376           const_cast() on Database::Internal, and exposing
14377           compiler-dependent behaviour if non-const methods are called, by
14378           adding a ConstDatabaseWrapper class, which is a subclass of
14379           Database::Internal, and also takes a Database::Internal as a
14380           parameter, to be wrapped.  This class proxies all const methods
14381           to the wrapped Database::Internal, and raises
14382           InvalidOperationError on non-const methods.  Fixes #332.
14384 Mon Mar 02 18:27:00 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14386         * include/xapian/postingsource.h: Documentation comment
14387           improvements.  Be explicit that Xapian will call reset() before
14388           various methods, and will call next, skip_to or check before
14389           at_end.
14390         * include/xapian/query.h: Wrap over-long line.
14392 Mon Mar 02 18:26:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14394         * docs/Makefile.am,docs/serialisation.rst: Add topic document about
14395           serialisation.
14397 Mon Mar 02 17:58:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14399         * docs/postingsource.rst: Update documentation with new design.
14401 Mon Mar 02 17:16:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14403         * api/omqueryinternal.cc: Change serialisation of queries to use
14404           encode_length() rather than om_tostring(), for a more compact and
14405           easier to parse representation.
14407 Mon Mar 02 14:48:08 GMT 2009  Olly Betts <olly@survex.com>
14409         * backends/multi/multi_alltermslist.cc: Fix memory leak which
14410           was causing allterms6 to fail.
14412 Mon Mar 02 14:15:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14414         * matcher/externalpostlist.cc: Fix memory leak in external source
14415           postlist (fixes fixedweightsource1).
14417 Mon Mar 02 13:41:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14419         * api/postingsource.cc: Don't set max_weight in
14420           ValueMapPostingSource::set_default_weight() - it's set in
14421           reset() before being used, and it's not been set here yet, so
14422           accessing it in std::max() was making valgrind complain.
14424 Mon Mar 02 12:23:01 GMT 2009  Olly Betts <olly@survex.com>
14426         * HACKING,configure.ac,tests/runtest.in: Don't use valgrind if it's
14427           < 3.3.0 as that's well over a year old and greatly simplifies the
14428           configure tests.  Fix options passed to valgrind so that the
14429           testsuite harness actually reports problems detected by newer
14430           valgrind versions.
14432 Mon Mar 02 10:08:25 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14434         * api/,bin/xapian-tcpsrv.cc,common/Makefile.mk,common/remoteserver.h,
14435           common/serialisationcontextinternal.h,include/Makefile.mk,
14436           include/xapian.h,include/xapian/enquire.h,include/xapian/query.h,
14437           include/xapian/serialisationcontext.h,net/remoteserver.cc,
14438           tests/api_serialise.cc,tests/internaltest.cc: Add
14439           SerialisationContext.  This object is used to register
14440           PostingSource or Weight subclasses, so that they can be
14441           serialised and unserialised, and therefore used in remote
14442           searches.  Add two-argument form for Query::unserialise() which
14443           takes a serialisation context.  Fixes #206.
14445 Mon Mar 02 07:13:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14447         * include/xapian/database.h: Further tweak to wording of
14448           documentation about close().
14450 Mon Mar 02 07:05:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14452         * backends/chert/chert_table.cc,backends/chert/chert_table.h,
14453           backends/flint/flint_table.cc,backends/flint/flint_table.h:
14454           Factor out more "throw Xapian::DatabaseError("Database has been
14455           closed")" bits into separate functions: knocks another 20KB off
14456           the shared library size.
14458 Mon Mar 02 05:46:15 GMT 2009  Olly Betts <olly@survex.com>
14460         * include/xapian/enquire.h: Document how to get all matches from
14461           Enquire::get_mset().
14463 Mon Mar 02 04:52:17 GMT 2009  Olly Betts <olly@survex.com>
14465         * backends/inmemory/inmemory_alltermslist.cc,
14466           backends/inmemory/inmemory_database.cc,
14467           backends/inmemory/inmemory_database.h: Factor out "throw
14468           Xapian::DatabaseError("Database has been closed") into a separate
14469           function which knocks over 100KB off the shared library size (just
14470           over 0.5%).
14472 Mon Mar 02 03:57:17 GMT 2009  Olly Betts <olly@survex.com>
14474         * matcher/phrasepostlist.h: Remove blank line from end of file.
14476 Mon Mar 02 03:52:10 GMT 2009  Olly Betts <olly@survex.com>
14478         * api/replication.cc,common/msvc_posix_wrapper.cc: Cuddle braces for
14479           "if" and "switch".
14481 Mon Mar 02 03:32:32 GMT 2009  Olly Betts <olly@survex.com>
14483         * tests/api_closedb.cc: Use more conventional uppercase macro parameter
14484           names.  Wrap long comments.  Remove another unused exception name.
14486 Mon Mar 02 03:21:39 GMT 2009  Olly Betts <olly@survex.com>
14488         * api/replication.cc,backends/chert/chert_databasereplicator.cc,
14489           backends/flint/flint_databasereplicator.cc,net/remoteserver.cc,
14490           tests/api_closedb.cc,tests/perftest/perftest_matchdecider.cc:
14491           Don't name the exception being caught if we don't look at it.  While
14492           GCC doesn't currently warn "unused variable" here, I'm fairly sure
14493           there are compilers which do.
14495 Mon Mar 02 03:20:52 GMT 2009  Olly Betts <olly@survex.com>
14497         * tests/perftest/perftest.cc: Wrap overlong comment.
14499 Mon Mar 02 03:17:48 GMT 2009  Olly Betts <olly@survex.com>
14501         * matcher/mergepostlist.cc: Change "do { ... } while (true);" to the
14502           more usual "while (true) { ... }".
14504 Sun Mar 01 19:41:16 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14506         * tests/api_closedb.cc: Merge closedb1 and closedb2 into a single
14507           test, and add lots more checking to it.  Rename closedb3 to
14508           closedb2, to avoid leaving an odd gap.  closedb1 needs more work,
14509           but is a useful start; committing now, rather than once I've done
14510           this work, since the old test is failing in buildbot, and I don't
14511           want to get in the way of snapshot tarballs.
14513 Sun Mar 01 19:27:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14515         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
14516           Add a few guards to throw DatabaseError when the database has
14517           been permanently closed, rather than behaving as if the table is
14518           empty in that situation.  Also, don't delete the resources in the
14519           table when Database::close() is called, because they may still be
14520           used to attempt to look up cached content.
14522 Sun Mar 01 18:22:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14524         * include/xapian/database.h: Update documentation comments for
14525           reopen() and close() to document the API we're aiming for (ie,
14526           that closed databases either return the right result from cache,
14527           or raise a DatabaseError).
14529 Sun Mar 01 18:20:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14531         * backends/inmemory/inmemory_alltermslist.cc,
14532           backends/inmemory/inmemory_database.cc,
14533           backends/inmemory/inmemory_database.h: Add a flag to mark whether
14534           the database is closed, and add guards before all methods which
14535           access content which goes away when the database is closed, to
14536           raise an exception if the database is closed.
14538 Sun Mar 01 18:20:03 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14540         * backends/inmemory/inmemory_document.h: Fix a typo in a comment.
14542 Sun Mar 01 17:49:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14544         * matcher/mergepostlist.cc: Fix ticket #336 by calling
14545           recalc_maxweight when a sub-posting list finishes (other than
14546           after the last one, where there is no point in calling
14547           recalc_maxweight).
14549 Sun Mar 01 15:34:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14551         * tests/api_db.cc: Fix MyDontAskWeightPostingSource to use the
14552           database passed to reset(), rather than one passed to its
14553           constructor.  This allows externalsource4 to be enabled for
14554           multidatabases.
14556 Sun Mar 01 13:07:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14558         * include/xapian/postingsource.h: Add comments as discussed in
14559           ticket #295 to make clear that in a multi-database search,
14560           PostingSources are passed a single sub-database.  Also mention
14561           that the returned value of clone() will be deallocated with
14562           delete.
14564 Sat Feb 28 08:21:33 GMT 2009  Olly Betts <olly@survex.com>
14566         * api/omdatabase.cc,backends/chert/chert_database.cc,
14567           backends/chert/chert_database.h,backends/database.cc,
14568           backends/flint/flint_database.cc,backends/flint/flint_database.h,
14569           backends/inmemory/inmemory_database.cc,
14570           backends/inmemory/inmemory_database.h,
14571           backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
14572           examples/copydatabase.cc,include/xapian/database.h,
14573           net/remoteserver.cc,tests/,tests/perftest/perftest_matchdecider.cc,
14574           tests/perftest/perftest_randomidx.cc,tests/queryparsertest.cc: Add
14575           WritableDatabase::commit() as a new, preferred alias for
14576           WritableDatabase::flush().  (bug#266)
14578 Fri Feb 27 01:59:31 GMT 2009  Olly Betts <olly@survex.com>
14580         * include/xapian/database.h: WritableDatabase::flush() can't throw
14581           DatabaseLockError.  WritableDatabase's ctor can throw at least
14582           DatabaseCorruptError or DatabaseLockError.
14584 Thu Feb 26 14:54:28 GMT 2009  Olly Betts <olly@survex.com>
14586         * tests/api_db.cc,tests/api_valuestream.cc: Update comments about why
14587           certain tests are disabled for certain backends.  Enable
14588           valueweightsource5 for multi and valuemapsource2 for remote.
14590 Thu Feb 26 14:53:19 GMT 2009  Olly Betts <olly@survex.com>
14592         * matcher/multiandpostlist.cc: Use AssertRelParanoid() instead
14593           of AssertParanoid() so the values get reported if the assertion
14594           fails.
14596 Thu Feb 26 14:18:21 GMT 2009  Olly Betts <olly@survex.com>
14598         * include/xapian/postingsource.h: Tweak word order.
14600 Thu Feb 26 12:48:16 GMT 2009  Olly Betts <olly@survex.com>
14602         * tests/api_db.cc: Make the PostingSource subclass ctors which are
14603           only called from clone() private to set a good example for users.
14605 Thu Feb 26 12:28:34 GMT 2009  Olly Betts <olly@survex.com>
14607         * include/xapian/postingsource.h: Fix doc comment typo.
14609 Thu Feb 26 12:08:40 GMT 2009  Olly Betts <olly@survex.com>
14611         * api/omqueryinternal.cc,include/xapian/query.h: Avoid copying
14612           Query::Internal objects needlessly when unserialising Query
14613           objects.
14615 Thu Feb 26 10:07:18 GMT 2009  Olly Betts <olly@survex.com>
14617         * tests/api_db.cc: A couple more uncollapsed tests.
14619 Thu Feb 26 08:28:42 GMT 2009  Olly Betts <olly@survex.com>
14621         * tests/api_anydb.cc,tests/api_wrdb.cc,tests/harness/testsuite.h,
14622           tests/perftest/perftest_matchdecider.cc,tests/queryparsertest.cc:
14623           Update to use new TEST_REL() macro.  Remove old TEST_LESSER(),
14624           etc.
14626 Thu Feb 26 07:51:43 GMT 2009  Olly Betts <olly@survex.com>
14628         * matcher/multimatch.cc: Fix the new
14629           Enquire::get_uncollapsed_matches_lower_bound(), etc methods for
14630           certain cases.
14631         * tests/api_anydb.cc,tests/api_db.cc: Extend existing tests to also
14632           check Enquire::get_uncollapsed_matches_lower_bound(), etc.
14634 Thu Feb 26 07:49:23 GMT 2009  Olly Betts <olly@survex.com>
14636         * tests/harness/Makefile.mk,tests/harness/testmacros.h,
14637           tests/harness/testsuite.h: Add new "TEST_REL" macro which can test
14638           for a condition using any relational operator and report a failure
14639           clearly yet concisely.
14641 Wed Feb 25 13:43:41 GMT 2009  Olly Betts <olly@survex.com>
14643         * matcher/multimatch.cc: Fix adjustment of the uncollapse bounds and
14644           estimate.
14646 Wed Feb 25 12:32:13 GMT 2009  Olly Betts <olly@survex.com>
14648         * configure.ac: GCC --version keeps changing format, and as a result
14649           we were currently getting "g++" as the version.  So change to the
14650           (hopefully) more robust technique of using g++ -E to pull out
14651           __GNUC__ and __GNUC_MINOR__.
14653 Wed Feb 25 03:14:08 GMT 2009  Olly Betts <olly@survex.com>
14655         * api/omdatabase.cc: Fix for compiling with Sun's compiler
14656           (untested as I no longer have access to it).
14658 Mon Feb 23 14:11:12 GMT 2009  Olly Betts <olly@survex.com>
14660         * docs/sorting.rst: Clarify meaning.
14662 Mon Feb 23 14:04:50 GMT 2009  Olly Betts <olly@survex.com>
14664         * docs/deprecation.rst,include/xapian/enquire.h,tests/: Rename the
14665           wrongly named "ascending" parameter of the set_sort_by*() methods
14666           of Enquire to "reverse" and deprecate the default value since
14667           defaulting to "reverse=true" is confusing.  (bug#311)
14669 Mon Feb 23 01:24:23 GMT 2009  Olly Betts <olly@survex.com>
14671         * api/omenquire.cc,backends/remote/remote-database.cc,
14672           common/multimatch.h,common/omenquireinternal.h,
14673           common/remote-database.h,docs/collapsing.rst,
14674           docs/remote_protocol.html,include/xapian/enquire.h,matcher/,
14675           net/remoteserver.cc,net/serialise.cc,tests/Makefile.am,
14676           tests/api_collapse.cc: Replace the collapsing code in the matcher
14677           with a separate Collapser class.  This new class can keep more than
14678           one document with each collapse key.  Also track bounds and an
14679           estimate of the total number of matches if collapsing wasn't in use.
14681 Mon Feb 23 00:52:16 GMT 2009  Olly Betts <olly@survex.com>
14683         * api/omdatabase.cc: Fix AssertionError from apitest testcases
14684           fixedweightsource2 and valueweightsource1.
14686 Sun Feb 22 11:02:24 GMT 2009  Olly Betts <olly@survex.com>
14688         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Check for
14689           fork failing *after* we check if we're now the child process.
14691 Sun Feb 22 10:06:13 GMT 2009  Olly Betts <olly@survex.com>
14693         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Note
14694           explicitly why we now have the strange empty if (not) checking the
14695           return value of chdir("/") (it's actually newer glibc and
14696           _FORTIFY_SOURCE rather than newer GCC).  Retry closing filehandle if
14697           it returns EINTR.  Whitespace tweaks.
14699 Sat Feb 21 11:04:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14701         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Fix
14702           warning about ignoring result of chdir (with GCC 4.2)
14704 Sat Feb 21 08:18:21 GMT 2009  Olly Betts <olly@survex.com>
14706         * tests/harness/testsuite.cc: Fix option usage in --help - "-x=foo"
14707           doesn't work - "-x foo" does.
14709 Sat Feb 21 07:37:01 GMT 2009  Olly Betts <olly@survex.com>
14711         * tests/perftest/perftest_randomidx.cc: Use two argument version of
14712           rand_int() where applicable.  Reserve length of result string in
14713           gen_word().  Fix truncated comment.
14715 Sat Feb 21 04:27:45 GMT 2009  Olly Betts <olly@survex.com>
14717         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: In the
14718           locking child process, before we exec /bin/cat change directory to
14719           / so that we don't block unmounting of any partitions and close
14720           any open file descriptors (apart from those we're using) so that if
14721           the files are closed by our parent and deleted the disk space gets
14722           released right away.
14724 Sat Feb 21 02:06:56 GMT 2009  Olly Betts <olly@survex.com>
14726         * api/postingsource.cc,include/xapian/postingsource.h: Pass string as
14727           const string &; drop trailing "_" from parameters which don't clash
14728           with member variables; fix brace formatting on a couple of for
14729           loops.
14731 Fri Feb 20 14:32:46 GMT 2009  Olly Betts <olly@survex.com>
14733         * tests/api_closedb.cc: Fix testcase closedb3 not to create a test
14734           database named closedb2.
14736 Fri Feb 20 01:38:32 GMT 2009  Olly Betts <olly@survex.com>
14738         * include/xapian/enquire.h: Documentation comment improvements.
14740 Wed Feb 18 06:48:43 GMT 2009  Olly Betts <olly@survex.com>
14742         * matcher/multimatch.cc: Use AssertRel rather than Assert with an
14743           inequality so that we see the arguments if the assertion fails.
14745 Wed Feb 18 06:39:33 GMT 2009  Olly Betts <olly@survex.com>
14747         * matcher/multimatch.cc: "items" -> "rsetitems" to distinguish from
14748           items used elsewhere for the MSet items.
14750 Wed Feb 18 06:20:38 GMT 2009  Olly Betts <olly@survex.com>
14752         * matcher/multimatch.cc: Drop superfluous "std::".
14754 Wed Feb 18 05:46:59 GMT 2009  Olly Betts <olly@survex.com>
14756         * NEWS: Update from ChangeLog.
14758 Tue Feb 17 23:53:54 GMT 2009  Olly Betts <olly@survex.com>
14760         * include/xapian/document.h,include/xapian/query.h: "xapian" ->
14761           "Xapian".
14763 Tue Feb 17 15:02:49 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14765         * include/xapian/document.h,include/xapian/query.h: Soften comment
14766           warning about changes in serialised format between xapian
14767           versions; note that the format won't change unless the remote
14768           database protocol has changed.
14770 Tue Feb 17 14:59:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14772         * api/omquery.cc: Return std::string() rather than "" to encourage
14773           compilers to use special empty string representation.
14775 Mon Feb 16 14:27:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14777         * api/postingsource.cc: Change the name() methods of the built-in
14778           posting sources to return a full name (starting with Xapian:: and
14779           ending with PostingSource), as documented in the API
14780           documentation comments.
14782 Mon Feb 16 13:32:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14784         * api/omqueryinternal.cc,common/remoteserver.h,
14785           matcher/externalpostlist.cc,matcher/externalpostlist.h,
14786           matcher/queryoptimiser.cc,net/remoteserver.cc,
14787           tests/api_percentages.cc,tests/api_valuestream.cc: Add some
14788           copyright lines missed in changeset [11838].
14790 Mon Feb 16 11:56:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14792         * matcher/queryoptimiser.cc: Add another reference from a FIXME to
14793           a ticket number.
14795 Mon Feb 16 11:47:21 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14797         * api/omqueryinternal.cc: Update two FIXMEs to reference the
14798           appropriate ticket.
14800 Mon Feb 16 10:11:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14802         * Add support for multi and remote backends with posting sources,
14803           from ticket #295:
14804         * include/xapian/postingsource.h: Add some clarifying comments
14805           about the interface of PostingSources, and add clone(), name(),
14806           serialise() and unserialise() methods to PostingSources, for
14807           remote and multidatabase support.
14808         * include/xapian/query.h: Add internal member to track ownership of
14809           external posting sources, and update some comments.
14810         * api/postingsource.cc: Add implementations of the new methods, so
14811           that all standard PostingSources support remote and multi
14812           database searches.
14813         * api/omquery.cc: Clone external PostingSources if possible.
14814         * api/omqueryinternal.cc: Add serialisation and unserialisation
14815           support for posting sources, and support for keeping track of
14816           whether an external posting source is owned by the query object
14817           or not (ie, whether it needs to be deleted by the destructor).
14818         * matcher/externalpostlist.cc,matcher/externalpostlist.h: (Attempt
14819           to) clone external posting sources at start, and call the reset()
14820           method with the database in use.  Delete the posting source
14821           afterwards, if the clone was successful.
14822         * matcher/queryoptimiser.cc: Pass the database to ExternalPostList.
14823           Sadly, this currently requires a const_cast.
14824         * tests/: Update tests of PostingSources to take the db parameter
14825           on the reset() method, and to test behaviour with multi and
14826           remote backends where appropriate.  Also, add regression test for
14827           segfault in FixedWeightPostingSource::skip_to() when database is
14828           empty.
14829         * net/remoteserver.cc,common/remoteserver.h: Add the built-in
14830           posting sources to the remote server, and add
14831           register_posting_source() to the remoteserver, for use in
14832           xapian-tcpsrv.cc for user posting sources, analogously to
14833           register_weighting_scheme().
14835 Fri Feb 13 20:09:10 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14837         * api/postingsource.cc: Fix segfaults which occur if an empty
14838           ValuePostingSource subclass has the skip_to() or check() methods
14839           called on it first.
14840         * tests/api_db.cc tests/api_valuestream.cc: Move valuemapsource1 to
14841           api_valuestream.cc, since that seems like a better place (and
14842           api_db.cc is already rather over-large).  Add regression test
14843           "valuemapsource2" to check the behaviour of ValuePostingSource
14844           subclasses on empty lists.
14846 Fri Feb 13 19:29:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14848         * api/postingsource.cc,include/xapian/postingsource.h: Add
14849           ValuePostingSource, which is a base class for implementing
14850           posting sources based on reading from a value slot.  Convert
14851           ValueWeightPostingSource to be a subclass of this, and add
14852           ValueMapPostingSource, which is a posting source which uses a map
14853           to convert values to weights.
14854         * tests/api_db.cc: Add valuemapsource1, testing the
14855           ValueMapPostingSource.
14857 Fri Feb 13 15:14:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14859         * tests/harness/index_utils.cc: Add value 13, containing the first
14860           3 letters of the paragraph - needed for some tests I'm going to
14861           commit shortly.
14863 Fri Feb 13 14:05:44 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14865         * tests/api_sorting.cc: Change slot number used to get an empty
14866           slot from 13 to 100 - we're getting close to using slot 13 now!
14868 Sat Feb 07 00:31:12 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14870         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc:
14871           Return accidentally changed "XAPIAN_ASSERTIONS_VERBOSE" ifdefs to
14872           "XAPIAN_DEBUG_VERBOSE".
14874 Sat Feb 07 00:16:43 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14876         * api/omdocument.cc,api/omquery.cc,include/xapian/document.h,
14877           include/xapian/query.h: Add methods for serialising documents and
14878           queries into strings, and unserialising back from strings.  Fixes
14879           most of ticket #206 - missing part is that serialising queries
14880           containing PostingSources doesn't work.
14881         * tests/Makefile.am,tests/api_serialise.cc: Add tests of document
14882           and query serialisation.
14884 Fri Feb 06 16:06:50 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14886         * configure.ac: Set HAVE_PREAD and HAVE_PWRITE if pread and pwrite
14887           are found; turns use of pread and pwrite back on.  This improves
14888           the speed of a test case of 10,000 (fully cached) searches from
14889           1.84 seconds to 1.78 seconds for me (on ubuntu hardy) - ie, about
14890           3% speed increase.
14892 Tue Jan 20 06:22:20 GMT 2009  Olly Betts <olly@survex.com>
14894         * tests/api_db.cc: Prefer value.empty() to value == "".
14896 Mon Jan 19 05:08:48 GMT 2009  Olly Betts <olly@survex.com>
14898         * AUTHORS,queryparser/Makefile.mk: Fix "#line" directives in generated
14899           file queryparser/queryparser_internal.cc to give a relative path -
14900           previously they had a full path when generated by a VPATH build, and
14901           this confused GCC 2.95 and depcomp.
14903 Sun Jan 18 23:34:22 GMT 2009  Olly Betts <olly@survex.com>
14905         * api/omenquire.cc: Throw UnimplementedError from Enquire::get_mset()
14906           if we're asked for a percentage cutoff and to sort primarily by
14907           value - this has never been correctly supported and it's better to
14908           warn people than give incorrect results.
14909         * tests/api_percentages.cc: Add test that this error gets thrown.
14911 Tue Jan 13 08:20:36 GMT 2009  Olly Betts <olly@survex.com>
14913         * common/omenquireinternal.h: Swap the items vector into the
14914           MSet::Internal object rather than copying it to avoid the overhead
14915           of the copy.
14917 Thu Jan 08 05:14:47 GMT 2009  Olly Betts <olly@survex.com>
14919         * backends/chert/chert_cursor.cc,backends/chert/chert_postlist.cc,
14920           backends/flint/flint_cursor.cc,backends/flint/flint_postlist.cc,
14921           backends/multi/multi_postlist.cc,common/omassert.h,configure.ac,
14922           matcher/multimatch.cc: Change preprocessor defines controlling
14923           assertions from XAPIAN_DEBUG->XAPIAN_ASSERTIONS and
14924           XAPIAN_DEBUG_PARANOID->XAPIAN_ASSERTIONS_PARANOID so their purpose
14925           is clearer.
14927 Thu Jan 08 02:23:21 GMT 2009  Olly Betts <olly@survex.com>
14929         * NEWS: Update from ChangeLog.
14931 Wed Jan 07 03:43:07 GMT 2009  Olly Betts <olly@survex.com>
14933         * api/matchspy.cc: Fix FP rounding bug (bug#321).
14934         * AUTHORS: Add Shane Evans for bug report.
14936 Tue Jan 06 22:08:12 GMT 2009  Olly Betts <olly@survex.com>
14938         * backends/inmemory/inmemory_database.cc: Fix comment typo.
14940 Tue Jan 06 21:39:30 GMT 2009  Olly Betts <olly@survex.com>
14942         * api/matchspy.cc: Add assertions to try to track down what's causing
14943           bug#321.
14945 Tue Jan 06 03:20:27 GMT 2009  Olly Betts <olly@survex.com>
14947         * matcher/exactphrasepostlist.cc,matcher/phrasepostlist.cc: Fix
14948           comment typos.
14950 Mon Jan 05 04:42:04 GMT 2009  Olly Betts <olly@survex.com>
14952         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6016" -
14953           only change is to comment noting the synced version as the changed
14954           code has been deleted in our version.
14956 Fri Dec 26 15:05:05 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
14958         * include/xapian/database.h: Add Database.close() method, used to
14959           close the resources (in particular, the filehandles) held by a
14960           database before the destructor is called.  Particularly useful
14961           for the bindings from other languages.
14962         * api/omdatabase.cc,backends/chert/chert_database.cc,
14963           backends/chert/chert_database.h,backends/flint/flint_database.cc,
14964           backends/flint/flint_database.h,
14965           backends/inmemory/inmemory_database.cc,
14966           backends/inmemory/inmemory_database.h,
14967           backends/remote/remote-database.cc,common/database.h,
14968           common/remote-database.h,net/remoteconnection.cc: Implementation
14969           of close() methods.
14970         * tests/Makefile.am,tests/api_closedb.cc: New test file, for
14971           testing the close method.  Could do with being expanded to test
14972           many more methods of databases in the closed state, and to test
14973           the behaviour after the close of objects created from databases
14974           before the database was closed.
14976 Fri Dec 26 13:42:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
14978         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
14979           Raise error if database has been closed permanently when
14980           cursor_get() is called - a NULL return type isn't checked in
14981           various places (for tables which are never closed temporarily),
14982           so this is the easiest place to add a check to avoid a segfault
14983           without incurring extra overhead.
14985 Tue Dec 23 13:42:21 GMT 2008  Olly Betts <olly@survex.com>
14987         * languages/compiler/analyser.c: Fix GCC 4.3 warning.
14989 Tue Dec 23 06:35:11 GMT 2008  Olly Betts <olly@survex.com>
14991         * PLATFORMS: Sync with 1.0 branch.
14992         * PLATFORMS: Remove 0.9.x build reports; move 1.0.x build reports
14993           to the "old version" section.
14994         * INSTALL: Adapt old footnotes from PLATFORMS about HP's aCC and IRIX
14995           into new paragraphs here.
14997 Tue Dec 23 05:19:52 GMT 2008  Olly Betts <olly@survex.com>
14999         * HACKING,configure.ac: Make automake 1.10.2 a hard minimum
15000           requirement.
15002 Tue Dec 23 04:36:27 GMT 2008  Olly Betts <olly@survex.com>
15004         * NEWS: Update from ChangeLog.
15006 Mon Dec 22 16:02:58 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15008         * backends/chert/chert_databasereplicator.cc,
15009           backends/databasereplicator.cc,
15010           backends/flint/flint_databasereplicator.cc: Fix some missing bits
15011           for debug compilation.
15013 Mon Dec 22 13:30:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15015         * api/replication.cc,backends/Makefile.mk,backends/chert/,
15016           backends/database.cc,backends/databasereplicator.cc,backends/flint/,
15017           common/Makefile.mk,common/database.h,common/databasereplicator.h:
15018           Add DatabaseReplicator base class, and subclasses for flint and
15019           chert, to hold parts of database replication code which need to
15020           be applied to a partially replicated database which may not be a
15021           valid database.  Move the code for applying changesets and
15022           comparing revision numbers into here, and add code for getting
15023           uuids which simply returns "" if the database is too broken to
15024           have a uuid associated with it.  Update the replication code to
15025           use DatabaseReplicator subclasses instead of Database classes
15026           where necessary, to avoid failing if a partial database is
15027           transmitted.  Add additional checks to ensure that the UUID of a
15028           replicated databse is equal to that sent in the replication
15029           protocol message introducing a full database copy; if they
15030           differ, a retry of the copy is needed, so ensure that the next
15031           message sent is a new copy of the database.
15033 Mon Dec 22 11:24:43 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15035         * docs/replication.rst: Warning about a possible way to confuse the
15036           replication process.
15038 Sat Dec 20 14:00:34 GMT 2008  Olly Betts <olly@survex.com>
15040         * tests/api_percentages.cc: Update (C) too.
15042 Sat Dec 20 13:51:35 GMT 2008  Olly Betts <olly@survex.com>
15044         * matcher/multimatch.cc: If we're using values for sorting and for
15045           another purpose, cache the Document::Internal object from getting
15046           the value for sorting like we do between other uses.
15048 Sat Dec 20 13:09:13 GMT 2008  Olly Betts <olly@survex.com>
15050         * tests/api_percentages.cc: Make formatting of MyPostingSource code
15051           more self-consistent.  Remove a superfluous block scope.  Wrap a
15052           long comment.
15054 Sat Dec 20 12:25:40 GMT 2008  Olly Betts <olly@survex.com>
15056         * exception_data.pm: Build a hash mapping a class to a list of its
15057           subclasses and export this as %subclasses.
15059 Sat Dec 20 05:51:50 GMT 2008  Olly Betts <olly@survex.com>
15061         * HACKING: Wrap a long line.
15063 Sat Dec 20 05:28:57 GMT 2008  Olly Betts <olly@survex.com>
15065         * queryparser/lemon.c: Merge upstream "Check-in Number: 6016".
15067 Fri Dec 19 14:25:10 GMT 2008  Olly Betts <olly@survex.com>
15069         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6015".
15071 Fri Dec 19 14:07:52 GMT 2008  Olly Betts <olly@survex.com>
15073         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6006".
15075 Fri Dec 19 13:51:33 GMT 2008  Olly Betts <olly@survex.com>
15077         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5919"
15078           - code changes are in deleted code, so no actual code changes for
15079           us.
15081 Fri Dec 19 13:46:22 GMT 2008  Olly Betts <olly@survex.com>
15083         * queryparser/lemon.c: Merge upstream "Check-in Number: 6008".
15085 Fri Dec 19 11:15:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15087         * tests/api_replicate.cc: Fix comment describing test.
15089 Thu Dec 18 23:38:50 GMT 2008  Olly Betts <olly@survex.com>
15091         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: Tidy up
15092           comment wrapping and indenting of code wrapped in try blocks by the
15093           previous commit.
15095 Thu Dec 18 14:26:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15097         * backends/chert/chert_database.cc,backends/chert/chert_table.cc,
15098           backends/chert/chert_table.h,backends/flint/flint_database.cc,
15099           backends/flint/flint_table.cc,backends/flint/flint_table.h:
15100           Improve resilience to unexpected errors during commit.  Firstly,
15101           fix FlintTable and ChertTable to close the table if an error
15102           occurs during commit - this avoids the table being left in an
15103           inconsistent state (instead, the table is reopened in a
15104           consistent state the next time it is used).  Secondly, add a
15105           "permanent" close state for tables (indicated by handle being set
15106           to -2), which will raise an error if anything tries to do an
15107           action which needs the table to be opened, and set the tables to
15108           this state if we fail to recover the database after error in
15109           commit().  This prevents further actions on the database if we
15110           couldn't recover the state (eg, because we're out of disk space),
15111           avoiding risk of corruption.
15113 Thu Dec 18 01:28:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15115         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
15116           backends/flint/flint_database.cc,backends/flint/flint_database.h:
15117           Improve the error reporting when modifications fail and we cannot
15118           set the revision numbers in the table to consistent values, to
15119           report the original error too.
15121 Wed Dec 17 17:27:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15123         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
15124           Fix construction of the error message when a base can't be
15125           re-read: used to do pointer arithmetic by mistake - now does the
15126           correct string concatenation.
15128 Wed Dec 17 15:18:10 GMT 2008  Olly Betts <olly@survex.com>
15130         * tests/api_valuestream.cc: Skip valuestream3 on chert for now so that
15131           snapshots and the tinderbox work again.
15133 Wed Dec 17 15:17:07 GMT 2008  Olly Betts <olly@survex.com>
15135         * tests/api_wrdb.cc: Need omassert.h for STATIC_ASSERT.
15137 Wed Dec 17 10:45:45 GMT 2008  Olly Betts <olly@survex.com>
15139         * api/omqueryinternal.cc,tests/api_nodb.cc: A NEAR of 2 OR subqueries
15140           shouldn't throw AssertionError - instead throw UnimplementedError.
15141           Addresses the worst aspect of bug#201, but this should really be
15142           implemented.
15144 Wed Dec 17 04:44:10 GMT 2008  Olly Betts <olly@survex.com>
15146         * backends/chert/chert_database.cc,backends/chert/chert_database.h:
15147           Implement ChertWritableDatabase::open_value_list().
15148         * tests/api_valuestream.cc: Add valueweightsource5 testcase which is a
15149           regression test for bug#299 and also exercises the above method.
15151 Tue Dec 16 13:30:47 GMT 2008  Olly Betts <olly@survex.com>
15153         * common/expandweight.h,expand/expandweight.cc: Overhaul ExpandWeight
15154           - now we use the "official" formula and don't return terms which it
15155           would give a negative weight to (since that means they are expected
15156           to be harmful not helfpul).
15157         * tests/api_anydb.cc,tests/api_db.cc: Fix unwarranted assumptions in
15158           existing testcases broken by this change.
15160 Thu Dec 11 01:02:41 GMT 2008  Olly Betts <olly@survex.com>
15162         * examples/delve.cc: Add missing "and" to --help output.  Report
15163           termfreq and collection freq for each term we're asked about.
15165 Mon Dec 08 00:52:51 GMT 2008  Olly Betts <olly@survex.com>
15167         * AUTHORS: Add Daniel Andersson for reporting the flintlock
15168           permissions issue.
15170 Sun Dec 07 22:50:32 GMT 2008  Olly Betts <olly@survex.com>
15172         * api/sorter.cc,tests/api_sorting.cc: Fix an empty MultiValueSorter
15173           not to SEGV/hang.
15175 Fri Dec 05 21:08:08 GMT 2008  Olly Betts <olly@survex.com>
15177         * backends/chert/chert_database.cc,tests/api_backend.cc: Use
15178           "flintlock" rather than "chertlock" for the lockfile in chert.
15179           The locking is compatible and this avoids the possibility of
15180           creating a chert and flint database in the same directory (which
15181           will result in one being corrupt since the Btree filenames overlap).
15183 Thu Dec 04 09:00:04 GMT 2008  Olly Betts <olly@survex.com>
15185         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Create
15186           the lockfile with permissions 0666 so that the umask is honoured
15187           just like we do for the other files (previously we used 0600).
15188         * tests/Makefile.am,tests/api_backend.cc: Add regression test
15189           lockfileumask1.
15191 Thu Dec 04 08:56:54 GMT 2008  Olly Betts <olly@survex.com>
15193         * tests/stemtest.cc: Use str.resize(0) instead of str = "".
15195 Thu Dec 04 04:56:55 GMT 2008  Olly Betts <olly@survex.com>
15197         * tests/queryparsertest.cc: No need to explicitly initialise a
15198           std::string to "".
15200 Thu Dec 04 04:55:47 GMT 2008  Olly Betts <olly@survex.com>
15202         * tests/api_db.cc: Prefer str.empty() to str == "".
15204 Thu Dec 04 01:50:10 GMT 2008  Olly Betts <olly@survex.com>
15206         * tests/api_wrdb.cc: Make helper function static.  Use STATIC_ASSERT
15207           to ensure a constant is coprime with 13.
15209 Wed Dec 03 22:56:19 GMT 2008  Olly Betts <olly@survex.com>
15211         * api/omdatabase.cc: Fix API logging.
15213 Wed Dec 03 03:11:45 GMT 2008  Olly Betts <olly@survex.com>
15215         * INSTALL: Note that libuuid is required for Xapian 1.1.0 and higher.
15217 Wed Dec 03 03:10:59 GMT 2008  Olly Betts <olly@survex.com>
15219         * INSTALL: Remove ':' from the end of headings.
15221 Mon Dec 01 08:59:04 GMT 2008  Olly Betts <olly@survex.com>
15223         * HACKING: Explicitly give the commands to install the required
15224           packages for developing on recent Debian or Ubuntu for added
15225           convenience.  Update the Debian/Ubuntu packages needed for
15226           documentation to reflect the change from tetex to texlive.  Fix
15227           unfinished paragraph about requiring a newline at the end of a
15228           source file and note that this is actually undefined behaviour in
15229           C++.
15231 Sun Nov 30 21:46:59 GMT 2008  Olly Betts <olly@survex.com>
15233         * bin/,examples/quest.cc,tests/harness/testsuite.cc: Pull out lists of
15234           short options next to list of long options to help make sure they
15235           are kept in step.  xapian-tcpsrv and xapian-progsrv now accept -w
15236           as a short form of --writable, as their long option table had, but
15237           their short option string didn't.
15239 Sun Nov 30 20:44:48 GMT 2008  Olly Betts <olly@survex.com>
15241         * docs/postingsource.rst: Wrap a long line.  Note that the remote
15242           backend isn't supported yet.
15244 Wed Nov 19 11:36:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15246         * docs/postingsource.rst: Make it clear that PostingSources must
15247           always return documents in increasing document ID order.
15249 Wed Nov 19 08:43:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15251         * bin/,examples/delve.cc,examples/quest.cc,tests/harness/testsuite.cc:
15252           Test return type of gnu_getopt_long for being != -1, rather than
15253           == 0, since there are a wide variety of return types other than 0
15254           which may be returned in the successful case (with the builtin
15255           implementation in common/getopt.cc, at least).
15257 Tue Nov 18 23:22:09 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15259         * api/omdatabase.cc: Change unknown "DATABASE" debug type to "DB".
15261 Mon Nov 17 13:00:12 GMT 2008  Olly Betts <olly@survex.com>
15263         * docs/queryparser.html: Add link to valueranges.html.
15265 Fri Nov 14 22:23:10 GMT 2008  Olly Betts <olly@survex.com>
15267         * NEWS: Update revision we're current to.
15269 Fri Nov 14 17:43:15 GMT 2008  Olly Betts <olly@survex.com>
15271         * backends/chert/chert_alldocsmodifiedpostlist.cc,
15272           backends/chert/chert_modifiedpostlist.cc,
15273           backends/flint/flint_modifiedpostlist.cc: Correct comments.
15275 Fri Nov 14 17:38:33 GMT 2008  Olly Betts <olly@survex.com>
15277         * tests/harness/testsuite.cc: Update comment about valgrind and C++
15278           STL allocators.
15280 Fri Nov 14 17:36:47 GMT 2008  Olly Betts <olly@survex.com>
15282         * bin/,examples/delve.cc,examples/quest.cc,tests/harness/testsuite.cc:
15283           Don't compare return value of gnu_getopt_long() with EOF - it's
15284           documented to simply return -1 or 0, and EOF requires inclusion of
15285           stdio.h.
15287 Fri Nov 14 17:30:39 GMT 2008  Olly Betts <olly@survex.com>
15289         * common/serialise-double.cc: Fix "#elif" with no argument to
15290           "#else" - the former surprisingly compiles with most compilers, but
15291           GCC 4.4 snapshots reject it.
15293 Fri Nov 14 16:54:15 GMT 2008  Olly Betts <olly@survex.com>
15295         * common/win32_uuid.cc: A few code clean-ups.
15297 Fri Nov 14 13:09:16 GMT 2008  Olly Betts <olly@survex.com>
15299         * common/Makefile.mk: Ship common/safeuuid.h to unbreak tarball
15300           snapshot building.
15302 Sun Nov 09 13:31:19 GMT 2008  Olly Betts <olly@survex.com>
15304         * api/omquery.cc,api/omqueryinternal.cc,bin/xapian-tcpsrv.cc,
15305           common/omenquireinternal.h,matcher/,net/remoteserver.cc:
15306           Prefer "" to <> for including Xapian API headers from within the
15307           library.  Remove so unused xapian/enquire.h inclusions.
15309 Fri Nov 07 12:50:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15311         * backends/chert/chert_version.cc,backends/chert/chert_version.h,
15312           backends/flint/flint_version.cc,backends/flint/flint_version.h,
15313           common/safeuuid.h,common/win32_uuid.cc,common/win32_uuid.h: Add
15314           implementation of UUID functions for windows (using the built-in
15315           UUID methods in the windows API). Fixes bug #303.
15317 Sat Nov 01 01:47:44 GMT 2008  Olly Betts <olly@survex.com>
15319         * NEWS: Sync with 1.0.9 release.
15321 Fri Oct 31 18:55:03 GMT 2008  Olly Betts <olly@survex.com>
15323         * include/xapian/database.h: Document XAPIAN_FLUSH_THRESHOLD
15324           (bug#306).
15326 Fri Oct 31 18:30:11 GMT 2008  Olly Betts <olly@survex.com>
15328         * configure.ac: Fix whitespace inconsistency with omega's
15329           configure.ac.
15331 Fri Oct 31 10:51:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15333         * api/postingsource.cc,include/xapian/postingsource.h: Add a new
15334           built-in posting source, FixedWeightSource, which returns every
15335           document in the database, but with a fixed weight.  In
15336           particular, this is useful to add a constant weight to every item
15337           in a subquery.  Also, in ValueWeightPostingSource, refactor the
15338           "last_docid" member to a bool "started", since this is all it's
15339           used for.
15340         * tests/api_db.cc: Add fixedweightsource1, to test FixedWeightSource.
15342 Mon Oct 27 17:05:39 GMT 2008  Olly Betts <olly@survex.com>
15344         * tests/queryparsertest.cc: Skip test if the timer granularity is too
15345           coarse in all cases.
15347 Mon Oct 27 08:12:16 GMT 2008  Olly Betts <olly@survex.com>
15349         * tests/api_valuestream.cc: Disable valuestream1 for multi backends.
15351 Sun Oct 26 00:30:54 GMT 2008  Olly Betts <olly@survex.com>
15353         * backends/chert/chert_valuelist.cc: Remove incorrect assertions.
15355 Sat Oct 25 06:18:37 GMT 2008  Olly Betts <olly@survex.com>
15357         * api/Makefile.mk: Fix typo so we once again ship editdistance.h and
15358           maptermlist.h.
15360 Thu Oct 23 17:34:13 GMT 2008  Olly Betts <olly@survex.com>
15362         * tests/queryparsertest.cc: Skip test if the timer granularity is too
15363           coarse.
15365 Tue Oct 21 05:00:59 GMT 2008  Olly Betts <olly@survex.com>
15367         * NEWS: Sync with branches/1.0.
15369 Tue Oct 21 02:09:18 GMT 2008  Olly Betts <olly@survex.com>
15371         * tests/api_valuestream.cc: Add feature test of ValueIterator::check().
15373 Tue Oct 21 01:36:45 GMT 2008  Olly Betts <olly@survex.com>
15375         * backends/inmemory/inmemory_database.cc,
15376           backends/inmemory/inmemory_database.h: Prefer string() to "", slot
15377           to valno, and not using else after return.
15379 Tue Oct 21 01:32:37 GMT 2008  Olly Betts <olly@survex.com>
15381         * tests/api_anydb.cc,tests/api_db.cc: Remove '#include <iomanip>'
15382           which aren't used.
15384 Mon Oct 20 13:30:37 GMT 2008  Olly Betts <olly@survex.com>
15386         * api/postingsource.cc,api/valueiterator.cc,
15387           include/xapian/postingsource.h,include/xapian/valueiterator.h: Add
15388           new API method ValueIterator::check() and use it in PostingIterator.
15390 Mon Oct 20 12:28:16 GMT 2008  Olly Betts <olly@survex.com>
15392         * tests/api_valuestream.cc: Add test for skip_to() on valuestream
15393           iterator.
15395 Mon Oct 20 11:19:12 GMT 2008  Olly Betts <olly@survex.com>
15397         * tests/Makefile.am,tests/api_valuestream.cc: Add a simple test of
15398           valuestream iteration.
15400 Mon Oct 20 11:01:26 GMT 2008  Olly Betts <olly@survex.com>
15402         * tests/Makefile.am,tests/collate-test,tests/perftest/Makefile.mk:
15403           Generate the header listing the collated tests so that we can avoid
15404           updating its timestamp when the contents are unchanged, such as in
15405           the common case where you modify tests but don't add, remove, or
15406           change the conditions on any tests.
15408 Mon Oct 20 10:01:56 GMT 2008  Olly Betts <olly@survex.com>
15410         * examples/delve.cc: Use valuestream iterator to implement "-V<slot>".
15412 Mon Oct 20 02:19:09 GMT 2008  Olly Betts <olly@survex.com>
15414         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
15415           Remove unused members of MultiPostList: tname, collfreq_initialised,
15416           collfreq, and termweight.
15418 Sun Oct 19 14:01:15 GMT 2008  Olly Betts <olly@survex.com>
15420         * api/postingsource.cc,include/xapian/postingsource.h: Update
15421           ValueWeightPostingSource to use a value stream iterator.
15423 Sun Oct 19 13:53:51 GMT 2008  Olly Betts <olly@survex.com>
15425         * backends/database.cc: Make use of SlowValueList by default.
15427 Sun Oct 19 13:47:10 GMT 2008  Olly Betts <olly@survex.com>
15429         * api/documentvaluelist.cc,api/documentvaluelist.h: Fix so that a
15430           DocumentValueList starts before the first value.
15432 Sun Oct 19 13:09:39 GMT 2008  Olly Betts <olly@survex.com>
15434         * api/omdatabase.cc,api/omdocument.cc: Use ValueIterator() instead of
15435           ValueIterator(NULL).
15437 Sun Oct 19 11:15:15 GMT 2008  Olly Betts <olly@survex.com>
15439         * NEWS: Update from ChangeLog.
15441 Sat Oct 18 01:31:25 GMT 2008  Olly Betts <olly@survex.com>
15443         * NEWS: Update from ChangeLog.
15445 Fri Oct 17 15:54:57 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15447         * bin/xapian-compact.cc: Check that pq is not empty before calling
15448           top() on it - if it's empty, we only have one database, so we can
15449           use the code path which doesn't worry about merging tags.  Fixes
15450           bug #305.
15452 Fri Oct 17 14:22:18 GMT 2008  Olly Betts <olly@survex.com>
15454         * backends/chert/chert_valuelist.cc: Fix ChertValueList to start on
15455           the right key.
15457 Fri Oct 17 14:14:14 GMT 2008  Olly Betts <olly@survex.com>
15459         * include/xapian/database.h,include/xapian/document.h: Inline
15460           ValueIterator end iterator as ValueIterator() rather than
15461           ValueIterator(NULL).
15462         * api/valueiterator.cc: Need to call next() on a ValueList to get it
15463           to the first position, so do this in ValueIterator's constructor.
15464         * api/valueiterator.cc,include/xapian/valueiterator.h: Add
15465           ValueIterator::get_docid() method.
15467 Fri Oct 17 13:53:26 GMT 2008  Olly Betts <olly@survex.com>
15469         * backends/slowvaluelist.cc,backends/slowvaluelist.h: Add missing
15470           SlowValueList::get_valueno() method.
15472 Fri Oct 17 13:16:01 GMT 2008  Olly Betts <olly@survex.com>
15474         * api/omdatabase.cc,include/xapian/database.h: Add
15475           Database::valuestream_begin() and Database::valuestream_end() to
15476           allow iterating over the values in a given slot for each document
15477           in the database (untested so far).
15479 Thu Oct 16 13:20:26 GMT 2008  Olly Betts <olly@survex.com>
15481         * backends/multi/multi_postlist.cc: Remove unused '#include <list>'
15482           and uninformative comment.
15484 Thu Oct 16 12:47:00 GMT 2008  Olly Betts <olly@survex.com>
15486         * api/omdocument.cc,include/xapian/document.h: Inline
15487           Xapian::Document::values_end() into user code.
15489 Thu Oct 16 12:26:29 GMT 2008  Olly Betts <olly@survex.com>
15491         * api/,backends/chert/chert_valuelist.cc,
15492           backends/chert/chert_valuelist.h,common/document.h,
15493           common/valuelist.h,include/Makefile.mk,include/xapian/derefwrapper.h,
15494           include/xapian/termiterator.h,include/xapian/valueiterator.h:
15495           Reimplement ValueIterator to have reference counted internals.  One
15496           benefit is that Document::Internal no longer need its value_nos map
15497           member.
15499 Thu Oct 16 11:22:13 GMT 2008  Olly Betts <olly@survex.com>
15501         * backends/inmemory/inmemory_database.cc: Fix incorrect method name in
15502           debug messages.
15504 Thu Oct 16 01:34:07 GMT 2008  Olly Betts <olly@survex.com>
15506         * HACKING: Note preference for @ rather than \ to introduce doxygen
15507           commands.
15509 Thu Oct 16 01:21:19 GMT 2008  Olly Betts <olly@survex.com>
15511         * HACKING: Expand section on public/protected/private a little.
15513 Wed Oct 15 11:34:15 GMT 2008  Olly Betts <olly@survex.com>
15515         * include/xapian/database.h: Use std::string() instead of "" as the
15516           default value for std::string method parameters.
15518 Wed Oct 15 03:20:01 GMT 2008  Olly Betts <olly@survex.com>
15520         * backends/Makefile.mk,backends/slowvaluelist.cc,
15521           backends/slowvaluelist.h: Support for (slowly) iterating along a
15522           value stream for backends which don't support streamed values
15523           internally (currently unused).
15525 Tue Oct 14 11:43:42 GMT 2008  Olly Betts <olly@survex.com>
15527         * api/postingsource.cc,backends/inmemory/inmemory_database.cc,
15528           matcher/multimatch.cc: Database::get_document_lazily() now returns
15529           NULL if the document isn't found for an inmemory database.
15530         * include/xapian/database.h: Document the return value better.
15532 Tue Oct 14 03:20:38 GMT 2008  Olly Betts <olly@survex.com>
15534         * api/omdatabase.cc,api/postingsource.cc,include/xapian/database.h,
15535           matcher/multimatch.cc: Add internal
15536           Xapian::Database::get_document_lazily() method and use it in the
15537           matcher and Xapian::PostingSource classes to avoid repeating the
15538           same code lots of times.
15540 Mon Oct 13 23:38:34 GMT 2008  Olly Betts <olly@survex.com>
15542         * HACKING: Rename "Miscellaneous Portability Issues" to "C++
15543           Portability Issues", and add a subsection of that for "Miscellaneous
15544           Portability Issues" with a new note about needing to terminate the
15545           last line of a source file, and a new subsection heading "Header
15546           Portability Issues" for all the header-related stuff.
15548 Sat Oct 11 12:19:38 GMT 2008  Olly Betts <olly@survex.com>
15550         * tests/api_wrdb.cc: If the timer for the first test for bigoaddvalue
15551           reports 0.0 seconds, skip the test as the timer doesn't have fine
15552           enough granularity for this test to be useful (bug#300).
15554 Fri Oct 10 20:40:14 GMT 2008  Olly Betts <olly@survex.com>
15556         * tests/api_wrdb.cc: Reuse XAPIAN_BIN_PATH to avoid hardcoding more
15557           paths, and so this works in a debug build too.
15559 Fri Oct 10 17:52:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15561         * tests/api_wrdb.cc: Patch to use a different path in win32 build
15562           to match the different place that the compiled xapian-check is
15563           placed in.  Should fix bug #301.
15565 Thu Oct 09 05:20:32 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15567         * configure.ac: Change -Wstrict-overflow level to 1 - even level 2
15568           causes a few warnings (notably in chert_table.cc) to appear with
15569           GCC 4.3 which are unreasonably difficult to avoid.
15571 Thu Oct 09 05:04:49 GMT 2008  Olly Betts <olly@survex.com>
15573         * HACKING,configure.ac: Raise autoconf requirement to 2.63.
15575 Wed Oct 08 14:52:03 GMT 2008  Olly Betts <olly@survex.com>
15577         * docs/valueranges.rst: Fix typos in example code.
15578         * docs/valueranges.rst,tests/queryparsertest.cc: Drop superfluous
15579           empty destructor from ValueRangeProcessor subclass.
15581 Wed Oct 08 14:00:04 GMT 2008  Olly Betts <olly@survex.com>
15583         * common/valuelist.h: Add missing get_docid() method.
15585 Wed Oct 08 12:11:57 GMT 2008  Olly Betts <olly@survex.com>
15587         * NEWS: Update from ChangeLog.
15589 Wed Oct 08 12:00:39 GMT 2008  Olly Betts <olly@survex.com>
15591         * backends/Makefile.mk,backends/chert/,backends/database.cc,
15592           backends/valuelist.cc,common/Makefile.mk,common/database.h,
15593           common/valuelist.h,include/xapian/valueiterator.h: The start of
15594           support for iterating along a value stream (currently unused).
15596 Tue Oct 07 10:19:48 GMT 2008  Olly Betts <olly@survex.com>
15598         * configure.ac: Disable -Wconversion for now - it's not useful for
15599           older GCC and is buggy in GCC 4.3.
15601 Tue Oct 07 04:53:41 GMT 2008  Olly Betts <olly@survex.com>
15603         * matcher/queryoptimiser.h: Query::MatchAll no longer gives match
15604           results ranked by increasing document length.
15605         * tests/api_db.cc: Extend matchall1 to be a regression test for this.
15607 Tue Oct 07 01:04:51 GMT 2008  Olly Betts <olly@survex.com>
15609         * matcher/queryoptimiser.cc: Rewrite comment explaining the excess
15610           precision fix.  Drop unnecessary brackets from return to minimise
15611           the diff.
15613 Mon Oct 06 07:24:40 GMT 2008  Olly Betts <olly@survex.com>
15615         * matcher/queryoptimiser.cc: Change the excess precision fix to pass
15616           both values through "volatile double" rather than "float" on
15617           platforms where this matters since the former gives better generated
15618           code as well as more consistent results with other platforms.
15620 Mon Oct 06 07:24:07 GMT 2008  Olly Betts <olly@survex.com>
15622         * tests/internaltest.cc: Fix comment typo.
15624 Mon Oct 06 02:46:39 GMT 2008  Olly Betts <olly@survex.com>
15626         * api/editdistance.cc,api/editdistance.h,api/omdatabase.cc: Pass the
15627           largest edit distance we currently care about into the edit distance
15628           algorithm so it can terminate early once it knows the edit distance
15629           exceeds this.  This shortcut is used quite a lot, but there's no
15630           measurable speed-up in tests on the real world data I have to hand.
15632 Sun Oct 05 12:34:09 GMT 2008  Olly Betts <olly@survex.com>
15634         * matcher/multimatch.cc: Adjust percent_factor instead of min_weight
15635           so that we don't miss some cases, and make the adjustment actually
15636           correspond with the adjustment in omenquire.cc.
15638 Wed Oct 01 14:11:49 GMT 2008  Olly Betts <olly@survex.com>
15640         * backends/alltermslist.cc,common/alltermslist.h: We don't need an
15641           explicit virtual dtor for AllTermsList as it is empty and
15642           AllTermsList inherits from TermList which has one.
15644 Wed Oct 01 13:21:22 GMT 2008  Olly Betts <olly@survex.com>
15646         * common/postlist.h,common/termlist.h: Fix comment typo.
15648 Wed Oct 01 00:12:02 GMT 2008  Olly Betts <olly@survex.com>
15650         * bin/xapian-compact.cc: Add a comment for the previous fix.
15652 Tue Sep 30 22:41:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15654         * bin/xapian-compact.cc: Fix bug: if there are both valuestats and
15655           metadata, don't overwrite the last metadata value with the first
15656           valuestats tag.
15658 Tue Sep 30 20:31:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15660         * configure.ac: Set -Wstrict-overflow to 2 instead of 5, to avoid
15661           unreasonable warnings under GCC 4.3.
15663 Tue Sep 30 09:45:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15665         * api/omdatabase.cc: Add missing include, to compile on GCC 4.3.0.
15667 Mon Sep 29 13:06:42 GMT 2008  Olly Betts <olly@survex.com>
15669         * NEWS: Update from ChangeLog.
15671 Mon Sep 29 05:04:57 GMT 2008  Olly Betts <olly@survex.com>
15673         * backends/chert/chert_version.cc: Add VERSIONFILE_SIZE_LITERAL and
15674           use CompileTimeAssert() to ensure it matches the expression in
15675           VERSIONFILE_SIZE.  It's very rare for the size to change (it's
15676           happened once ever) and allows us to build the error string
15677           literally at compile time.
15679 Sun Sep 28 15:13:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15681         * backends/chert/chert_values.cc: Fix bug in lazy update - ensure
15682           that the document has loaded its values before deleting the old
15683           one (previously, there was an assertion to this effect, but it
15684           didn't actually compile, and was also incorrect).
15685         * tests/api_wrdb.cc: Check that replacing a document with itself
15686           doesn't lose the values - regression test for the bug fixed by
15687           this commit.
15689 Sun Sep 28 14:04:01 GMT 2008  Olly Betts <olly@survex.com>
15691         * backends/chert/chert_values.cc: Fix bug in value updating -
15692           modifyvalues1 now passes for chert.
15694 Sun Sep 28 12:15:14 GMT 2008  Olly Betts <olly@survex.com>
15696         * tests/collate-test: Avoid perl warning when generating files which
15697           don't already exist.
15699 Sat Sep 27 10:36:09 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15701         * tests/api_wrdb.cc: Add test "modifyvalues1" - regression test for
15702           a bug in the streaming values implementation, and also a fairly
15703           thorough test of adding and modifying values in databases.
15705 Fri Sep 26 19:12:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15707         * api/omdatabase.cc: Fix warning with gcc 4.2 about possible signed
15708           overflow, by using an unsigned type for the total.
15710 Fri Sep 26 15:48:39 GMT 2008  Olly Betts <olly@survex.com>
15712         * api/omdatabase.cc: Fixed version of: Avoid the relatively expensive
15713           edit distance computation for a candidate spelling correction when
15714           we can reject the candidate as less good than one we've already seen
15715           by looking at the character frequency histograms.  In a test on
15716           real-world data, this gave an 15% speed-up in queryparsing time
15717           with FLAG_SPELLING_CORRECTION set.  The cheap check rejects 90%
15718           of the words it handles (without the cheap check, the edit distance
15719           check rejects 92%).
15721 Fri Sep 26 14:40:50 GMT 2008  Olly Betts <olly@survex.com>
15723         * bin/xapian-check.cc: Check the structure of the value stream chunks.
15725 Fri Sep 26 12:21:32 GMT 2008  Olly Betts <olly@survex.com>
15727         * tests/api_spelling.cc: Add a regression test for the bug my recently
15728           added and reverted spelling optimisation introduced.
15730 Fri Sep 26 11:55:18 GMT 2008  Olly Betts <olly@survex.com>
15732         * tests/Makefile.am,tests/api_spelling.cc,tests/api_wrdb.cc: Split the
15733           spelling tests out into a separate file.
15735 Fri Sep 26 11:53:45 GMT 2008  Olly Betts <olly@survex.com>
15737         * tests/api_unicode.cc: Capitalise brief file description.
15739 Fri Sep 26 11:31:46 GMT 2008  Olly Betts <olly@survex.com>
15741         * backends/inmemory/inmemory_document.cc,
15742           backends/inmemory/inmemory_document.h: New simpler InMemoryDocument
15743           class with slightly reduced memory footprint, based on
15744           RemoteDocument class.
15746 Fri Sep 26 10:36:02 GMT 2008  Olly Betts <olly@survex.com>
15748         * backends/remote/remote-document.cc,backends/remote/remote-document.h,
15749           common/document.h: Add new files for RemoteDocument class missed
15750           from recent commit.  Pass parameter to set_all_values() by non-const
15751           reference so we can just efficiently swap() the value maps rather
15752           than copying.
15754 Fri Sep 26 10:31:21 GMT 2008  Olly Betts <olly@survex.com>
15756         * api/omdocument.cc,common/document.h: Remove unused method
15757           Xapian::Document::Index::get_all_values().
15759 Fri Sep 26 10:03:17 GMT 2008  Olly Betts <olly@survex.com>
15761         * backends/remote/,common/document.h: Replace NetDocument with a new
15762           simpler RemoteDocument class which just sets the values and data in
15763           its Document::Internal base class.
15765 Fri Sep 26 06:21:08 GMT 2008  Olly Betts <olly@survex.com>
15767         * backends/chert/chert_database.cc,backends/chert/chert_document.cc,
15768           backends/chert/chert_document.h,common/document.h: Overhaul
15769           ChertDocument:  Avoid having a reference-counted pointer to the
15770           database in the subclass as well as the one now in the base class.
15771           Also check the lazy flag before we create a ChertDocument object to
15772           avoid a memory allocation in that code path.  And make the
15773           now-simple constructor inline-able.
15775 Thu Sep 25 17:38:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15777         * Merge lazyupdate branch:
15778         * api/omdocument.cc,backends/chert/chert_database.cc,
15779           backends/chert/chert_database.h,backends/chert/chert_values.cc,
15780           backends/database.cc,common/database.h,common/document.h: Add a
15781           shortcut for calling replace_document() with a document which was
15782           just read from the database.  If the document terms were never
15783           accessed, don't bother updating the termlist, postings and
15784           position lists.  If the data was never accessed, don't bother
15785           updating the data.  If the values were never accessed, don't
15786           bother updating them.  Only fires if we know that the document
15787           hasn't been modified (or deleted) since it was read from the
15788           database, to ensure that the lazy access of the data doesn't have
15789           a visible effect - we enforce this by keeping track of the last
15790           document read with open_document(), and only using the shortcut
15791           if this is the document passed to replace_document, and that
15792           document ID hasn't been passed to replace_document or
15793           delete_document since.
15795           Add a method Database::Internal::invalidate_doc_object() which is
15796           called from the destructor of a document, so that we can reset
15797           the pointer to modify_shortcut_document in ChertWritableDatabase
15798           when this happens.
15800           Document::Internal now keeps a ref-count pointer to the database,
15801           to ensure that the database is valid when invalidate_doc_object()
15802           is called on it.
15804 Thu Sep 25 17:35:07 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15806         * Forward-port from branches/lazyupdate:
15807         * tests/api_wrdb.cc: Extend deldoc5 slightly, to check that the
15808           DocNotFoundError for a deleted document is raised before the
15809           flush, as well as after.  Also, test a few more cases which are
15810           relevant in the lazyupdate scenario.
15812 Thu Sep 25 17:33:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15814         * Forward-port from branches/lazyupdate:
15815         * backends/chert/chert_document.cc,backends/chert/chert_document.h:
15816           Check for existence of a document when opening it by searching
15817           for the document length entry, rather than by reading the record
15818           for the document.  Probably slightly slower if the record is
15819           going to be accessed anyway, but much faster if it isn't (though
15820           benchmarking of this is needed).
15822 Thu Sep 25 14:27:07 GMT 2008  Olly Betts <olly@survex.com>
15824         * Merge valuestreams branch:
15825         * backends/chert/,bin/xapian-check.cc,bin/xapian-compact.cc,
15826           docs/admin_notes.rst: Change the chert backend to store values in a
15827           chunked stream for each value slot to make access more efficient.
15828           The chunked streams and value stats are now stored in the postlist
15829           table while the list of used value slots for each document is stored
15830           in the termlist table, so we no longer need a special table for
15831           values.
15832         * bin/xapian-check.cc,bin/xapian-check-flint.cc:  Don't stop checking
15833           a table after an error in certain cases - instead increment the
15834           error counter and try to continue checking from the next item.
15836 Thu Sep 25 13:50:15 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15838         * matcher/queryoptimiser.cc,tests/api_anydb.cc: Apply fix for
15839           platforms with excess precision - this fixes a potential segfault
15840           on x86 architecture when doing OP_ELITE_SET queries.  Also, add a
15841           regression test.
15843 Thu Sep 25 03:38:24 GMT 2008  Olly Betts <olly@survex.com>
15845         * examples/copydatabase.cc: Also copy user metadata.
15847 Wed Sep 24 17:27:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15849         * api/omdatabase.cc: Back out, for now, Olly's change from
15850           yesterday to avoid some edit distance checks; counting the
15851           frequency of letters doesn't take into account the number of
15852           substitutions, so spelling corrections which involve
15853           substitutions are missed.
15855 Wed Sep 24 12:48:39 GMT 2008  Olly Betts <olly@survex.com>
15857         * unicode/tclUniData.cc: Update to Unicode 5.1 (bug#265).
15858         * tests/api_unicode.cc: Add tests for some of the changes
15859           in Unicode 5.1.
15861 Tue Sep 23 14:58:54 GMT 2008  Olly Betts <olly@survex.com>
15863         * api/omdatabase.cc: Avoid the relatively expensive edit distance
15864           computation for a candidate spelling correction when we can reject
15865           the candidate as less good than one we've already seen by looking
15866           at the character frequency histograms.
15868 Mon Sep 22 09:21:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15870         * Forward-port from branches/lazyupdate:
15871         * backends/chert/chert_postlist.cc: Fix return value of jump_to()
15872           to be true only if the exact item specified was found in the
15873           doclen list (previously also returned true if an item following
15874           the item being searched for was found in the chunk).  Note that
15875           there is no test for this fix included in this forward-port, but
15876           an implicit test is included in the lazyupdate branch, and will
15877           be here when that branch is merged to trunk.
15879 Mon Sep 22 07:58:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15881         * HACKING: Mention that setting XAPIAN_DEBUG_LOG to '-' has a
15882           special effect.
15884 Mon Sep 22 06:27:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15886         * docs/remote_protocol.html: Update documentation of remote
15887           protocol to mention UUID being passed in REPLY_GREETING and
15888           REPLY_UPDATE (added in revision [11369]).
15890 Thu Sep 18 11:52:05 GMT 2008  Olly Betts <olly@survex.com>
15892         * tests/api_wrdb.cc: Fix cursordelbug1 to hopefully work on Microsoft
15893           Windows.
15895 Thu Sep 18 11:50:04 GMT 2008  Olly Betts <olly@survex.com>
15897         * backends/chert/chert_cursor.cc,backends/chert/chert_table.cc,
15898           backends/chert/chert_table.h: More assertions and improved debug
15899           logging coverage.  Use rare() to mark a couple of checks which
15900           almost always have the same result.  Make an assertion about the
15901           level of a Btree block into an always-compiled-in check which throws
15902           an exception, as this isn't a sanity check of internal state.
15904 Thu Sep 18 05:26:27 GMT 2008  Olly Betts <olly@survex.com>
15906         * backends/chert/chert_postlist.cc,backends/flint/flint_postlist.cc:
15907           Fix comment describing format of postlist chunk (collection freq
15908           was missing).
15910 Wed Sep 17 12:38:51 GMT 2008  Olly Betts <olly@survex.com>
15912         * HACKING: Fix typos in XAPIAN_DEBUG_FLAGS documentation.
15914 Sat Sep 13 11:14:02 GMT 2008  Olly Betts <olly@survex.com>
15916         * HACKING,configure.ac: Upgrade libtool requirement to 2.2.6a.
15918 Fri Sep 05 11:40:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15920         * tests/api_replicate.cc: Test that the UUID of a replica is equal
15921           to the UUID of the original database.
15923 Fri Sep 05 09:38:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15925         * include/xapian/database.h,api/omdatabase.cc: Add
15926           Database.get_uuid() which returns a unique identifier for the
15927           database.
15928         * tests/api_anydb.cc: Add test uuid1 to test basic get_uuid()
15929           behaviour.
15930         * common/database.h: Extend documentation comment for get_uuid() a
15931           bit.
15932         * backends/remote/remote-database.cc,common/remote-database.h,
15933           net/remoteserver.cc: Add support for get_uuid() to remote
15934           databases.
15936 Thu Sep 04 11:37:54 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15938         * tests/Makefile.am: Remove accidentally committed reference to
15939           apitest_sortconsist.txt, which only exists in my local checkout
15940           and in a patch in ticket #216.
15942 Thu Sep 04 04:39:32 GMT 2008  Olly Betts <olly@survex.com>
15944         * HACKING,configure.ac: We now hard require autoconf 2.62, so it's
15945           safe to use AC_TYPE_SSIZE_T.  (bug#135)
15947 Thu Sep 04 04:26:59 GMT 2008  Olly Betts <olly@survex.com>
15949         * configure.ac: Set version to 1.1.0.
15951 Thu Sep 04 03:32:06 GMT 2008  Olly Betts <olly@survex.com>
15953         * AUTHORS,NEWS,configure.ac: Sync with 1.0.8.
15955 Wed Sep 03 15:23:54 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15957         * tests/Makefile.am,tests/api_percentages.cc: Add new test file for
15958           tests related to percentage weights (there are a few around which
15959           could be moved here, and there's another one in the patch in
15960           ticket #216).  Add test in this file which uses a PostingSource
15961           with carefully constructed weights to check the rounding
15962           behaviour for percentage cutoffs.
15964 Wed Sep 03 07:58:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15966         * matcher/multimatch.cc: Adjust min_weight values calculated for
15967           percent_cutoff in the same manner as in omenquire.cc, to allow
15968           for excess precision in the same way.
15970 Wed Sep 03 07:15:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15972         * backends/chert/chert_version.cc: Display numerical value of
15973           correct size of chert version file in error message if size is
15974           incorrect, rather than a complicated expression giving the
15975           correct size.
15977 Tue Sep 02 10:41:46 GMT 2008  Olly Betts <olly@survex.com>
15979         * matcher/multimatch.cc: Remove FIXME for pushing check_at_least
15980           handling into the remote backend, which was done for 1.0.2.
15982 Tue Sep 02 06:48:50 GMT 2008  Olly Betts <olly@survex.com>
15984         * bin/xapian-inspect.cc: Show the help message on start-up.  Correct
15985           the alias for next from ' ' to ''.  Avoid reading outside of input
15986           string when it is empty.  Bug#286.
15988 Tue Sep 02 04:19:34 GMT 2008  Olly Betts <olly@survex.com>
15990         * tests/stemtest.cc: Handle the new supplemental stemming data.
15992 Tue Sep 02 03:05:10 GMT 2008  Olly Betts <olly@survex.com>
15994         * tests/stemtest.cc: Update for new xapian-data directory structure.
15996 Tue Aug 26 09:26:49 GMT 2008  Olly Betts <olly@survex.com>
15998         * common/debuglog.h: Handle logging from ctor, dtor, and
15999           void-returning functions/methods with a separate class
16000           (DebugLogFuncVoid).  Fix outdent handling for non-logged message
16001           types.  Fix detection of active exceptions to check if the exception
16002           was already active when we entered the current function.  This
16003           probably means that "RETURN_VOID" is no longer needed, so comment
16004           it out.
16006 Tue Aug 26 07:34:16 GMT 2008  Olly Betts <olly@survex.com>
16008         * HACKING: Document explicitly that XAPIAN_DEBUG_FLAGS=- gives you all
16009           debug messages.
16011 Tue Aug 26 00:57:32 GMT 2008  Olly Betts <olly@survex.com>
16013         * bin/xapian-check.cc: Fix reversed check for whether a table is in a
16014           flint or chert database.
16016 Mon Aug 25 12:03:36 GMT 2008  Olly Betts <olly@survex.com>
16018         * backends/flint/flint_termlisttable.cc: Remove FIXME about dropping
16019           something if we make an incompatible database version bump - that's
16020           not going to happen now for flint.  Avoid packing doclen for an
16021           empty termlist.  Add explicit cast for char for prev_term.size().
16023 Sun Aug 24 11:42:21 GMT 2008  Olly Betts <olly@survex.com>
16025         * common/Makefile.mk: Fix build with --enable-log=profile.
16027 Sun Aug 24 12:41:22 BST 2008  Olly Betts <olly@survex.com>
16029         * HACKING: Add a bit of discussion of --enable-log=profile.  Tweak
16030           formatting in one place and wording in another.
16032 Sat Aug 23 00:48:40 GMT 2008  Olly Betts <olly@survex.com>
16034         * tests/collate-test: Only update files which have changed to avoid
16035           rebuilding all apitest's source files when only one has changed.
16037 Fri Aug 22 01:02:57 GMT 2008  Olly Betts <olly@survex.com>
16039         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5571"
16040           (no code changes in our modified version).
16042 Fri Aug 22 01:00:15 GMT 2008  Olly Betts <olly@survex.com>
16044         * queryparser/lemon.c: Fix comment typo.
16046 Fri Aug 22 00:55:26 GMT 2008  Olly Betts <olly@survex.com>
16048         * queryparser/lemon.c: Merge upstream "Check-in Number: 5564".
16050 Fri Aug 22 00:44:14 GMT 2008  Olly Betts <olly@survex.com>
16052         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
16053           "Check-in Number: 5488" and "5563".
16054         * queryparser/queryparser.lt: Fix compilation for previous merge
16055           (I fixed it in the generated file before!)
16057 Fri Aug 22 00:07:22 GMT 2008  Olly Betts <olly@survex.com>
16059         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5472".
16061 Thu Aug 21 04:15:41 GMT 2008  Olly Betts <olly@survex.com>
16063         * configure.ac: Remove code which checks for --enable-debug and
16064           --enable-debug-verbose (deprecated since 1.0.0) and gives an error
16065           pointing to the replacements.
16066         * docs/deprecation.rst: Document the replacements here.
16068 Thu Aug 21 00:57:52 GMT 2008  Olly Betts <olly@survex.com>
16070         * common/omdebug.h: Remove DEBUGLINE completely.
16071         * backends/flint/flint_table.cc,backends/inmemory/inmemory_database.cc,
16072           queryparser/queryparser.lt: Replace remaining DEBUGLINE uses.
16073         * backends/inmemory/inmemory_database.cc: Don't need <list>.
16075 Thu Aug 21 00:37:08 GMT 2008  Olly Betts <olly@survex.com>
16077         * common/debuglog.h,common/omdebug.h: Define LOGLINE, etc to no-op
16078           versions when XAPIAN_DEBUG_VERBOSE isn't defined.
16079         * api/,backends/chert/,backends/flint/,
16080           backends/inmemory/inmemory_database.cc,
16081           backends/multi/multi_postlist.cc,backends/multi/multi_termlist.cc,
16082           expand/esetinternal.cc,expand/expandweight.cc,matcher/,
16083           net/remoteconnection.cc: Use LOGLINE or LOGVALUE instead of
16084           DEBUGLINE.
16086 Wed Aug 20 13:33:56 GMT 2008  Olly Betts <olly@survex.com>
16088         * common/debuglog.h: Don't need omtime.h.
16090 Wed Aug 20 06:11:31 GMT 2008  Olly Betts <olly@survex.com>
16092         * examples/quest.cc: Fix to catch QueryParserError instead of const
16093           char * which Xapian < 1.0.0 threw instead.
16095 Wed Aug 20 05:50:26 GMT 2008  Olly Betts <olly@survex.com>
16097         * docs/valueranges.rst: Expand on some sections.
16099 Wed Aug 20 04:43:07 GMT 2008  Olly Betts <olly@survex.com>
16101         * tests/api_nodb.cc: Clarify in comments that this affected 1.0.7.
16103 Wed Aug 20 04:33:22 GMT 2008  Olly Betts <olly@survex.com>
16105         * api/omenquire.cc: Simplify RSet::remove_document() and
16106           RSet::contains() a little.  Fix output of RSet::get_description().
16107         * tests/api_nodb.cc: Add regression test rset4 for
16108           RSet::get_description() fix.
16110 Wed Aug 20 02:45:04 GMT 2008  Olly Betts <olly@survex.com>
16112         * common/omdebug.h: Remove DebugMsg() macro which is no longer used.
16114 Tue Aug 12 05:03:34 GMT 2008  Olly Betts <olly@survex.com>
16116         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
16117           Backport elimination of find_tag() to flint.
16119 Tue Aug 12 04:10:41 GMT 2008  Olly Betts <olly@survex.com>
16121         * backends/chert/chert_table.cc,backends/chert/chert_table.h:
16122           ChertTable::find_tag() is only used by ChertTable::get_exact_entry()
16123           so remove the former folding its code into the latter.
16125 Mon Aug 11 03:06:10 GMT 2008  Olly Betts <olly@survex.com>
16127         * backends/chert/chert_spelling.h,backends/chert/chert_synonym.h:
16128           Remove random closing bracket from a couple of comments.
16130 Mon Aug 11 03:03:19 GMT 2008  Olly Betts <olly@survex.com>
16132         * api/postingsource.cc: Always initialise max_value in the constructor
16133           body for consistency.
16135 Sat Aug 09 09:56:06 GMT 2008  Olly Betts <olly@survex.com>
16137         * tests/api_valuestats.cc: Add valuestats4 as a regression test for
16138           the previous fix.
16140 Sat Aug 09 06:10:49 GMT 2008  Olly Betts <olly@survex.com>
16142         * backends/chert/chert_database.cc,backends/chert/chert_database.h:
16143           Write cached valuestats changes to disk when we automatically flush
16144           changes due to the number of documents indexed.
16146 Wed Aug 06 11:27:29 GMT 2008  Olly Betts <olly@survex.com>
16148         * api/omdocument.cc,backends/chert/chert_document.cc,
16149           backends/chert/chert_document.h,backends/flint/flint_document.cc,
16150           backends/flint/flint_document.h,
16151           backends/inmemory/inmemory_document.cc,
16152           backends/inmemory/inmemory_document.h,
16153           backends/remote/net_document.cc,backends/remote/net_document.h,
16154           common/document.h: Change do_get_all_values() to pass a reference
16155           to the std::map to return the result in rather than returning the
16156           std::map.
16158 Wed Aug 06 07:39:08 GMT 2008  Olly Betts <olly@survex.com>
16160         * docs/replication.rst: Adding missing (C) for new section addded
16161           recently.
16163 Wed Aug 06 06:27:59 GMT 2008  Olly Betts <olly@survex.com>
16165         * backends/alltermslist.cc,backends/chert/,backends/flint/,
16166           backends/inmemory/inmemory_alltermslist.cc,
16167           backends/inmemory/inmemory_alltermslist.h,
16168           backends/multi/multi_alltermslist.cc,common/alltermslist.h,
16169           common/multialltermslist.h: Add a default "not implemented"
16170           implementation of AllTermsList::get_approx_size() and remove the
16171           "not implemented" versions in all the subclasses.  Remove empty
16172           destructors for ChertSpellingTermList, and FlintSpellingTermList.
16173         * api/maptermlist.h,api/omdocument.cc: MapTermList::get_approx_size()
16174           should never be used, so make it "Assert(false); return 0;".
16176 Wed Aug 06 02:24:48 GMT 2008  Olly Betts <olly@survex.com>
16178         * api/omdatabase.cc,backends/multi/multi_alltermslist.cc,
16179           common/multialltermslist.h: Reimplement MultiAllTermsList to use a
16180           heap rather than linearly scanning - operations during iteration
16181           should now be O(log(n)) rather than O(n) where n is the number of
16182           databases.
16184 Tue Aug 05 23:50:19 GMT 2008  Olly Betts <olly@survex.com>
16186         * tests/Makefile.am: Fix "make clean" to remove cached databases again
16187           and "make check" to remove cached databases like the previous change
16188           aimed to do.
16190 Tue Aug 05 23:48:52 GMT 2008  Olly Betts <olly@survex.com>
16192         * tests/api_db.cc: Use TEST_EQUAL(a, b) rather than TEST(a == b).
16194 Tue Aug 05 12:44:58 GMT 2008  Olly Betts <olly@survex.com>
16196         * common/alltermslist.h: Fix parameter name in doxygen comment.
16198 Tue Aug 05 06:28:15 GMT 2008  Olly Betts <olly@survex.com>
16200         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
16201           Don't generate a changeset file for the first revision of a database
16202           (since we might as well just send the whole database) - addresses
16203           part of bug#278.  Clean up exceptions to pass errno in the errno
16204           parameter rather than incorporating strerror(errno) in the message
16205           parameter.
16207 Tue Aug 05 06:00:11 GMT 2008  Olly Betts <olly@survex.com>
16209         * tests/api_replicate.cc: Remove "sleep(1);" from testcase replicate1
16210           which is no longer required now we generate proper UUIDs.
16212 Tue Aug 05 03:07:11 GMT 2008  Olly Betts <olly@survex.com>
16214         * api/replication.cc,include/xapian/replication.h: Remove
16215           DatabaseReplica::get_parameter() and set_parameter() as they're no
16216           longer used for storing the database UUID, and Richard said the
16217           thinking behind wanting them was "flawed".
16219 Tue Aug 05 02:03:24 GMT 2008  Olly Betts <olly@survex.com>
16221         * backends/chert/chert_version.cc: Comment tweak.
16223 Tue Aug 05 02:02:29 GMT 2008  Olly Betts <olly@survex.com>
16225         * api/replication.cc,backends/flint/flint_database.cc,common/utils.cc,
16226           common/utils.h: Use the UUID stored by the backend rather than
16227           storing it ourselves as a database replica parameter.
16229 Mon Aug 04 14:58:21 GMT 2008  Olly Betts <olly@survex.com>
16231         * backends/flint/flint_database.cc,backends/flint/flint_version.cc,
16232           backends/flint/flint_version.h: Generate a UUID when a new flint
16233           database is created, and lazily generate one for existing flint
16234           databases which don't have one.  Store the UUID in a new "uuid"
16235           file in the database directory to avoid having to change the
16236           flint database format incompatibly.
16238 Mon Aug 04 14:13:53 GMT 2008  Olly Betts <olly@survex.com>
16240         * backends/chert/chert_database.cc,backends/chert/chert_version.cc,
16241           backends/chert/chert_version.h,configure.ac: Generate a UUID when
16242           a chert database is created, and store it in the version file.
16244 Mon Aug 04 12:16:54 GMT 2008  Olly Betts <olly@survex.com>
16246         * backends/chert/chert_version.cc: Make exception messages more
16247           consistent.
16249 Mon Aug 04 12:15:14 GMT 2008  Olly Betts <olly@survex.com>
16251         * backends/chert/chert_database.cc,backends/chert/chert_version.cc,
16252           backends/chert/chert_version.h: Remove the code to handle upgrading
16253           flint versions >= 200704230 and < 200709120 as it's just dead code
16254           for chert.
16256 Sun Aug 03 14:34:31 GMT 2008  Olly Betts <olly@survex.com>
16258         * api/replication.cc: Track the replica numbers using an int rather
16259           than two strings.  Eliminate two racey uses of file_exists().
16261 Sun Aug 03 11:37:06 GMT 2008  Olly Betts <olly@survex.com>
16263         * docs/replication.rst: Add section on backend support.  Make FIXME a
16264           comment.  Fix erroneous reference to '"-h" parameter'.
16266 Sun Aug 03 11:28:27 GMT 2008  Olly Betts <olly@survex.com>
16268         * api/replication.cc,tests/harness/testrunner.cc: Make replication
16269           work for the chert backend.
16271 Sat Aug 02 16:47:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16273         * include/xapian/enquire.h: Correct documentation comment (iterator
16274           doesn't return terms, it returns mset items).
16276 Sat Aug 02 14:16:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16278         * docs/admin_notes.rst: Fix a typo.
16280 Sat Aug 02 14:06:37 GMT 2008  Olly Betts <olly@survex.com>
16282         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc:
16283           Fix comment typo in previous commit.
16285 Sat Aug 02 13:04:05 GMT 2008  Olly Betts <olly@survex.com>
16287         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc: Fix
16288           FlintCursor::del() and ChertCursor::del() to leave the cursor on the
16289           next key when iterating over the unflushed revision (previously the
16290           cursor would end up an extra key along in this case).  (Bug#287)
16291         * tests/api_wrdb.cc: Add regression test cursordelbug1.
16293 Sat Aug 02 05:09:38 GMT 2008  Olly Betts <olly@survex.com>
16295         * api/replication.cc,common/utils.cc,common/utils.h: Change
16296           removedir() to just return if passed a non-existent path and
16297           document this.  Make use of this to avoid having to call
16298           dir_exists() before remove_dir().
16300 Sat Aug 02 04:43:45 GMT 2008  Olly Betts <olly@survex.com>
16302         * tests/api_db.cc,tests/apitest.cc: Make use of new
16303           BackendManager::get_database_path() to eliminate knowledge of
16304           BackendManagerFlint's implementation from test stubdb1.  Put the
16305           stubdb files in a .stub subdirectory and don't remove them after
16306           each test to aid debugging failing tests.  Also now run stubdb tests
16307           under chert and multi backends.  Add more stubdb tests for the
16308           recently added features.
16310 Sat Aug 02 04:39:08 GMT 2008  Olly Betts <olly@survex.com>
16312         * tests/harness/: Adjust the BackendManager interface to reduce code
16313           duplication in subclasses - for backends where the concept of a
16314           path to the database makes sense, we now support a
16315           get_database_path() method and use this in the default
16316           implementation of get_database() in the base class.
16318 Sat Aug 02 04:36:48 GMT 2008  Olly Betts <olly@survex.com>
16320         * tests/apitest.h: Use std::string() in preference to "".
16322 Sat Aug 02 04:35:13 GMT 2008  Olly Betts <olly@survex.com>
16324         * backends/dbfactory.cc: Fix handling of new "inmemory" type in stub
16325           databases.
16327 Sat Aug 02 01:49:35 GMT 2008  Olly Betts <olly@survex.com>
16329         * tests/Makefile.am: Remove the cached test databases in before
16330           running the testsuite by making check-local do the same as
16331           clean-local.
16333 Sat Aug 02 01:42:36 GMT 2008  Olly Betts <olly@survex.com>
16335         * backends/dbfactory.cc: Add support for "inmemory" to stub database
16336           files (it's useful now they can be writable).  Don't just ignore
16337           lines with no spaces in in stub database files.
16339 Thu Jul 31 13:13:30 GMT 2008  Olly Betts <olly@survex.com>
16341         * backends/Makefile.mk,backends/database.cc,backends/dbfactory.cc,
16342           common/database.h,include/xapian/dbfactory.h: Add new
16343           Auto::open_stub() overload which opens a stub database file
16344           containing a single entry as a WritableDatabase.  Move the
16345           non-remote database factory API functions from backends/database.cc
16346           to new file backends/dbfactory.cc, leaving the former solely for
16347           methods of Database::Internal.  A stub database file is now allowed
16348           to contain no database entries, which results in an empty Database
16349           object (this avoids user code having to special case to handle "0 or
16350           more" databases).
16351         * tests/api_nodb.cc: Tidy up #include directives.  Enhance nosuchdb1
16352           to check that we get a reasonable error message - previously we
16353           got "Couldn't detect type of database".
16354         * include/xapian/dbfactory.h: Improve doxygen comment for
16355           InMemory::open().
16357 Thu Jul 31 09:36:41 GMT 2008  Olly Betts <olly@survex.com>
16359         * tests/api_replicate.cc: This is a new file, so use <cstdlib> rather
16360           than <stdlib.h>.
16362 Wed Jul 30 23:10:19 GMT 2008  Olly Betts <olly@survex.com>
16364         * backends/database.cc: Bad lines in a stub file were being ignored
16365           after we'd seen a good entry.
16366         * tests/api_db.cc: Add regression test.
16368 Wed Jul 30 14:42:04 GMT 2008  Olly Betts <olly@survex.com>
16370         * generate-exceptions.in: Use std::string() in preference to "".
16372 Tue Jul 29 23:55:21 GMT 2008  Olly Betts <olly@survex.com>
16374         * AUTHORS: Add Henrik Brix Andersen.
16376 Tue Jul 22 06:01:44 GMT 2008  Olly Betts <olly@survex.com>
16378         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
16379           Eliminate other_base_letter member of FlintTable - its value can
16380           always be easily determined from base_letter.
16382 Mon Jul 21 12:33:54 GMT 2008  Olly Betts <olly@survex.com>
16384         * xapian-config.in: Add bug report URL to xapian-config --help output.
16386 Mon Jul 21 11:55:18 GMT 2008  Olly Betts <olly@survex.com>
16388         * configure.ac: Put the bug report URL as the third parameter to
16389           AC_INIT.  Add proper m4 quoting in a few places (nowhere that
16390           should actually change behaviour).
16392 Mon Jul 21 01:03:12 GMT 2008  Olly Betts <olly@survex.com>
16394         * tests/apitest.cc,tests/harness/testsuite.cc,
16395           tests/harness/testsuite.h: Report subtotals per backend, rather than
16396           per testgroup per backend to make the output much clearer to scan.
16398 Mon Jul 21 00:36:07 GMT 2008  Olly Betts <olly@survex.com>
16400         * tests/apitest.cc: Use startswith().
16402 Sun Jul 20 14:16:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16404         * tests/harness/testsuite.h: Add missing "iomanip" header needed
16405           for setprecision calls.
16407 Sun Jul 20 11:35:35 GMT 2008  Olly Betts <olly@survex.com>
16409         * include/xapian/enquire.h,include/xapian/matchspy.h,
16410           include/xapian/valueiterator.h: Remove explicit empty non-virtual
16411           destructors since the compiler will create them by default anyway.
16413 Sun Jul 20 10:18:52 GMT 2008  Olly Betts <olly@survex.com>
16415         * NEWS: Update from ChangeLog.
16417 Sun Jul 20 10:09:36 GMT 2008  Olly Betts <olly@survex.com>
16419         * Forward-port change from branches/1.0:
16420         * api/omenquire.cc: Fix percentage calculation to cope with excess
16421           precision on x86.  Fix method name for convert_to_percent_internal
16422           in debug logging.
16424 Sun Jul 20 09:13:32 GMT 2008  Olly Betts <olly@survex.com>
16426         * backends/flint/,bin/xapian-check-flint.cc,bin/xapian-check-flint.h,
16427           bin/xapian-compact.cc: Store the tablename in FlintTable as a const
16428           char * - it's a constant string and std::string adds a needless
16429           space overhead.
16431 Sun Jul 20 09:10:49 GMT 2008  Olly Betts <olly@survex.com>
16433         * bin/xapian-check.cc: Follow-on fix for last change - we need to use
16434           strcmp() to compare C strings.
16436 Sun Jul 20 07:09:38 GMT 2008  Olly Betts <olly@survex.com>
16438         * backends/chert/,bin/xapian-check.cc: Store the tablename in
16439           ChertTable as a const char * - it's a constant string and
16440           std::string adds a needless space overhead.
16442 Sat Jul 19 14:19:58 GMT 2008  Olly Betts <olly@survex.com>
16444         * backends/chert/chert_database.cc,backends/chert/chert_values.cc,
16445           backends/chert/chert_values.h: Fix WritableDatabase::add_document()
16446           and replace_document() not to be O(n*n) in the number of values in
16447           the new document.
16448         * backends/flint/flint_database.cc,backends/flint/flint_values.cc,
16449           backends/flint/flint_values.h: Backport fix to flint.
16450         * tests/api_wrdb.cc: Add testcase bigoaddvalue to make sure we don't
16451           regress to O(n*n) (or worse!)
16453 Fri Jul 18 13:24:43 GMT 2008  Olly Betts <olly@survex.com>
16455         * tests/api_wrdb.cc: Rewrite lazytablebug1 testcase to avoid having
16456           to run xapian-compact.
16458 Fri Jul 18 11:59:42 GMT 2008  Olly Betts <olly@survex.com>
16460         * backends/chert/chert_table.cc: Fix handling of a table created
16461           lazily after the database has had commits, and which is then
16462           cursored while still in sequential mode.
16463         * backends/flint/flint_table.cc: Backport fix to flint.
16464         * tests/api_wrdb.cc: Add testcase lazytablebug1.
16466 Fri Jul 18 02:52:55 GMT 2008  Olly Betts <olly@survex.com>
16468         * tests/api_wrdb.cc: Enable test crashrecovery1 for chert.  Finish off
16469           unfinished comment.
16471 Fri Jul 18 02:38:22 GMT 2008  Olly Betts <olly@survex.com>
16473         * tests/api_wrdb.cc,tests/harness/testrunner.cc,
16474           tests/harness/testrunner.h: Add "synonyms" test backend property
16475           and use it to decide where to run synonym tests so they get run on
16476           chert too.  Move virtual TestRunner destructor out of the header.
16477           Don't skip all the spelling tests on chert.
16479 Fri Jul 18 00:56:17 GMT 2008  Olly Betts <olly@survex.com>
16481         * tests/api_wrdb.cc: Eliminate literal top-bit-set characters.
16483 Fri Jul 18 00:40:06 GMT 2008  Olly Betts <olly@survex.com>
16485         * backends/chert/chert_values.cc: Kill superfluous else tokens.
16487 Thu Jul 17 13:00:55 GMT 2008  Olly Betts <olly@survex.com>
16489         * backends/chert/chert_table.cc,backends/chert/chert_table.h:
16490           Eliminate other_base_letter member of ChertTable - its value can
16491           always be easily determined from base_letter.
16493 Thu Jul 17 12:24:19 GMT 2008  Olly Betts <olly@survex.com>
16495         * backends/chert/chert_database.cc: Add space after catch for
16496           consistency.
16498 Thu Jul 17 11:51:57 GMT 2008  Olly Betts <olly@survex.com>
16500         * examples/copydatabase.cc: Use C++ forms of C headers.  Only treat
16501           '\' as a directory separator on platforms where it is.  Update
16502           counter every 13 counting up to the end so that the digits all
16503           "rotate" and the counter ends up on the exact total.
16505 Wed Jul 16 10:10:32 GMT 2008  Olly Betts <olly@survex.com>
16507         * tests/perftest/perftest.cc: Use uname() or gethostname() to get the
16508           hostname on Unix, rather than piping output from uname -n.  Use
16509           startswith() where appropriate.  Prefer resize() and erase() to
16510           assigning a string a substring of itself.  Make internal functions
16511           static.  Prefer string() to "".  Fold sed | sed and grep | sed into
16512           single sed invocations.
16514 Wed Jul 16 05:16:00 GMT 2008  Olly Betts <olly@survex.com>
16516         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
16517           "Check-in Number: 5404" and "5405".
16519 Wed Jul 16 04:48:45 GMT 2008  Olly Betts <olly@survex.com>
16521         * NEWS: Sync with 1.0.7 release.  Start to clean up ChangeLog entry
16522           pile.
16524 Mon Jul 14 05:13:55 GMT 2008  Olly Betts <olly@survex.com>
16526         * queryparser/lemon.c: Fix a typo, remove "\n" from the end of
16527           ErrorMsg() calls since it will get stripped anyway, and escape
16528           literal '%' in ErrorMsg() third arguments.
16530 Sun Jul 13 13:04:58 GMT 2008  Olly Betts <olly@survex.com>
16532         * queryparser/lemon.c: Update note of upstream version we're synced
16533           against.
16535 Sun Jul 13 12:56:58 GMT 2008  Olly Betts <olly@survex.com>
16537         * queryparser/lemon.c: Tweak previous merged patch so that we still
16538           get #line directives for code in %include directives.
16540 Sun Jul 13 12:54:03 GMT 2008  Olly Betts <olly@survex.com>
16542         * queryparser/lemon.c: Merge upstream "Check-in Number: 5335".
16543           Reduces the size of the stripped object file for
16544           queryparser_internal.cc by about 0.5%.
16546 Sun Jul 13 12:32:06 GMT 2008  Olly Betts <olly@survex.com>
16548         * queryparser/lemon.c: Fix typo in comment.
16550 Sun Jul 13 12:30:38 GMT 2008  Olly Betts <olly@survex.com>
16552         * queryparser/lemon.c: Merge upstream "Check-in Number: 5334".  No
16553           change to the generated code in our case.
16555 Sun Jul 13 12:24:13 GMT 2008  Olly Betts <olly@survex.com>
16557         * configure.ac: Add missing hard requirement for libtool 2.2.4.
16559 Sun Jul 13 12:09:40 GMT 2008  Olly Betts <olly@survex.com>
16561         * configure.ac,HACKING: Hard require autoconf 2.62 and automake 1.10.1.
16562           Move all information about particular autoconf and automake versions
16563           to HACKING.
16564         * configure.ac: Use LT_INIT in preference to AC_PROG_LIBTOOL.  On
16565           Linux and k*bsd-gnu, override libtool's link_all_deplibs_CXX to
16566           "no".  On Linux, override libtool's sys_lib_dlsearch_path_spec to a
16567           list generated in a more reliable way which includes *all* the
16568           default directories.  Remove workaround which sets docdir for
16569           autoconf < 2.60 since we now require 2.62.
16570         * xapian-core.spec.in: We no longer need to run autoreconf to work
16571           around libtool's incomplete sys_lib_dlsearch_path_spec or to pick
16572           up distro-specific patches for link_all_deplibs.
16574 Sun Jul 13 11:33:33 GMT 2008  Olly Betts <olly@survex.com>
16576         * Makefile.am: No need to explicitly list m4/*.m4 in EXTRA_DIST as
16577           automake will automatically ship any such files which are needed.
16579 Sun Jul 13 09:15:34 GMT 2008  Olly Betts <olly@survex.com>
16581         * api/omenquire.cc: Back out the rounding of percentages change (at
16582           least for now), as it makes percentage cut-offs work inconsistently.
16583         * tests/api_anydb.cc: Add test pctcutoff3 which demonstrates the issue.
16585 Sun Jul 13 07:01:02 GMT 2008  Olly Betts <olly@survex.com>
16587         * include/xapian/enquire.h: Fix documentation comment for
16588           MSet::get_rank() - the 'document judged "most relevant" will have
16589           rank of 0' only when ordering primarily by relevance.
16591 Sun Jul 13 06:17:13 GMT 2008  Olly Betts <olly@survex.com>
16593         * matcher/multimatch.cc: Tweak layout (makes the backport diff
16594           much smaller and clearer, and reduces indentation by a level for a
16595           chunk of code).
16597 Fri Jul 11 13:44:56 GMT 2008  Olly Betts <olly@survex.com>
16599         * tests/harness/testutils.cc: Fix typos in recent improved output.
16601 Fri Jul 11 13:04:41 GMT 2008  Olly Betts <olly@survex.com>
16603         * matcher/multimatch.cc: Collect up all the scaling factors we apply
16604           to the estimated number of matches and apply them in one go to avoid
16605           rounding the result more than once.
16607 Fri Jul 11 12:21:11 GMT 2008  Olly Betts <olly@survex.com>
16609         * tests/api_anydb.cc: Add testcase for percent cutoff plus collapsing
16610           which most likely would have failed before Richard's recent fix
16611           for the lower bound with collapsing and a matchdecider.
16613 Fri Jul 11 05:30:02 GMT 2008  Olly Betts <olly@survex.com>
16615         * backends/database.cc: Add support for XAPIAN_PREFER_CHERT
16616           environmental variable.
16618 Thu Jul 10 22:21:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16620         * api/postingsource.cc: Fix skip_to() so that it doesn't advance if
16621           it's already in a suitable position.
16622         * include/xapian/postingsource.h: Specify that skip_to() should
16623           stay in the same position if the current position is equal to
16624           the docid argument of skip_to().
16625         * tests/api_db.cc: Add valueweightsource3 to check that skip_to()
16626           stays in the same position in this case.
16628 Thu Jul 10 13:14:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16630         * api/postingsource.cc: Performance improvement - open documents
16631           lazily (using the internal interface) so that we don't access
16632           the record table for each one - we now just access the value
16633           table.  Leads to considerable speed up for me (of the order of 5
16634           times faster).
16636 Thu Jul 10 09:49:39 GMT 2008  Olly Betts <olly@survex.com>
16638         * HACKING: Overhaul the sections on building from SVN.  Remove ':'
16639           from the end of headings.
16641 Wed Jul 09 10:43:01 GMT 2008  Olly Betts <olly@survex.com>
16643         * configure.ac: The workaround to avoid probe code for F77, GCJ, and
16644           RC being added to configure is no longer required now that we're
16645           using libtool 2.2 so remove it.
16647 Wed Jul 09 09:40:43 GMT 2008  Olly Betts <olly@survex.com>
16649         * Makefile.am,acinclude.m4,autoconf/dir_contents,
16650           autoconf/rjb_find_stlport.m4,autoconf/type_socklen_t.m4,
16651           m4/dir_contents,m4/rjb_find_stlport.m4,m4/type_socklen_t.m4: Move
16652           the m4 macros which we ship for building configure from into the m4
16653           subdirectory and remove acinclude.m4 - now aclocal will pull in the
16654           required macros automatically.
16656 Wed Jul 09 09:14:31 GMT 2008  Olly Betts <olly@survex.com>
16658         * Makefile.am: Update for m4 -> m4-macros change.
16660 Wed Jul 09 09:11:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16662         * matcher/externalpostlist.cc: Fix segfault if get_maxweight() is
16663           called when the postlist has reached end.  This happens if the
16664           end is reached during decay of an AND_MAYBE postlist to an AND.
16665         * common/postlist.h,matcher/: Add comments documenting that
16666           recalc_maxweight() may be called after the postlist has reached
16667           the end, and noting why this is safe in various cases.
16669 Wed Jul 09 09:02:08 GMT 2008  Olly Betts <olly@survex.com>
16671         * m4-macros/dir_contents,m4-macros/xapian.m4,m4/dir_contents,
16672           m4/xapian.m4: Move xapain.m4 to a new subdirectory (m4-macros) since
16673           libtoolize now installs m4 files into subdirectory m4 which we don't
16674           really want picking up by applications building against an
16675           uninstalled xapian-core.
16677 Wed Jul 09 08:03:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16679         * Makefile.am,m4/dir_contents,xapian.m4: Move xapian.m4 back into
16680           the m4 subdirectory.  For uninstalled builds, we need xapian.m4
16681           to be in a directory without any other .m4 files, or we'll be
16682           likely to pull in the wrong versions of other macros.  The top
16683           level directory contains aclocal.m4 and acinclude.m4, so isn't
16684           suitable for this.  Also, the xapian-bindings and omega
16685           compilations hadn't been updated with the new xapian.m4 location,
16686           so this fixes the build for them.
16688 Wed Jul 09 07:17:38 GMT 2008  Olly Betts <olly@survex.com>
16690         * Makefile.am,configure.ac: Use AC_CONFIG_MACRO_DIR and
16691           ACLOCAL_AMFLAGS as libtoolize 2.2.4 recommends.
16693 Wed Jul 09 06:37:21 GMT 2008  Olly Betts <olly@survex.com>
16695         * acinclude.m4: Remove reference to definedir.m4.
16697 Wed Jul 09 05:32:24 GMT 2008  Olly Betts <olly@survex.com>
16699         * Makefile.am,m4/dir_contents,m4/xapian.m4,xapian.m4: Move xapian.m4
16700           to the top level rather than devoting a whole directory to a single
16701           file.
16703 Wed Jul 09 05:23:02 GMT 2008  Olly Betts <olly@survex.com>
16705         * Makefile.am,autoconf/definedir.m4,configure.ac: AC_DEFINE_DIR()
16706           hasn't been used for years so remove it.
16708 Wed Jul 09 02:32:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16710         * api/postingsource.cc,include/xapian/postingsource.h: Add an
16711           alternative constructor for ValueWeightPostingSource which allows
16712           the upper bound on the weights stored to be specified manually.
16713           This is useful for database formats like flint which don't have
16714           an upper bound available.  It could conceivably also be useful if
16715           you know that a query will only be accessing a subset of
16716           documents for which you know a more precise upper bound than the
16717           database-wide upper bound.
16719 Wed Jul 09 01:59:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16721         * matcher/externalpostlist.cc: Add DEBUGCALL macros to enable
16722           easier debugging.
16724 Mon Jul 07 12:40:20 GMT 2008  Olly Betts <olly@survex.com>
16726         * HACKING,NEWS: Update to reflect the autotools now being in the SVN
16727           tree, and the versions we are now bootstrapping with.
16728         * NEWS: Update from ChangeLog.
16730 Sun Jul 06 22:59:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16732         * matcher/multimatch.cc,matcher/remotesubmatch.cc,
16733           matcher/remotesubmatch.h: Apply patch from ticker #279 to improve
16734           performance of matches with multiple remote databases.  This adds
16735           a special case for the top match being from a remote database, to
16736           avoid accessing the termlist to calculate the percentage scaling
16737           factor.
16739 Sun Jul 06 22:55:17 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16741         * api/omenquire.cc: When calculating percentages, round to the
16742           nearest integer, rather than rounding down.  There was a FIXME
16743           about this, but no explanation of why it hadn't already been
16744           done, and I can see no bad side effects so far.  The most obvious
16745           positive effect is that queries which should get precisely 100%
16746           will no longer be assigned 99% due to rounding errors.
16748 Sun Jul 06 22:48:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16750         * tests/api_anydb.cc: Add new test, topercent2, checking the
16751           percentage values returned by standard searches, both against
16752           known current values for some of the hits, and against a search
16753           with a "local" backend.  Also, in rsetmultidb1, test the return
16754           value of mset_range_is_same_weights().
16755         * tests/api_db.cc: In rsetmultidb2, test the return value of
16756           mset_range_is_same_weights().
16758 Sun Jul 06 22:46:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16760         * tests/harness/testutils.cc,tests/harness/testutils.h: Add
16761           function to test if two mset ranges have the same percentages,
16762           and slightly improve the messages on failure of the mset range
16763           comparison tests.
16765 Fri Jul 04 23:31:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16767         * NEWS: Swap two words to make a sentence make sense.
16769 Fri Jul 04 11:40:13 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16771         * matcher/multimatch.cc: Fix calculation of lower bound when
16772           collapsing and match deciders are used.  (Only tended to manifest
16773           when the collapsing threw away a lot of documents, and when also
16774           using a custom sort order, but I don't think that was required.)
16775           Also, perform the adjustments due to percentage cutoffs after the
16776           other adjustments, to avoid the lower bound setting for
16777           collapsing overriding the lower bound from the percentage cutoff.
16778         * tests/harness/index_utils.cc: Add a value to value slot 12, which
16779           only has 5 different values, for testing this bug.
16780         * tests/api_db.cc: Add regression test for calculation of the lower
16781           bound.
16783 Fri Jul 04 10:24:16 GMT 2008  Olly Betts <olly@survex.com>
16785         * Makefile.am,bin/Makefile.mk,examples/Makefile.mk: Remove
16786           extra_cleandirs as automake 1.10.1 fixes the bug which it was working
16787           around.
16789 Fri Jul 04 04:36:59 GMT 2008  Olly Betts <olly@survex.com>
16791         * HACKING: Synchronise tiny change from branches/1.0 which isn't
16792           on trunk for some reason.
16794 Fri Jul 04 04:35:19 GMT 2008  Olly Betts <olly@survex.com>
16796         * HACKING: Bootstrap with newer versions of the autotools:
16797           + autoconf 2.61 -> 2.62: faster
16798           + automake 1.10 -> 1.10.1: "make clean" cleans all .libs
16799             directories.
16800           + libtool 1.5.24 -> 2.2.4: many improvements; faster.
16802 Thu Jul 03 03:17:42 GMT 2008  Olly Betts <olly@survex.com>
16804         * docs/glossary.rst,docs/intro_ir.html: Improve intro_ir a bit, and
16805           link to the definition of RSet in the glossary.
16807 Thu Jul 03 01:30:56 GMT 2008  Olly Betts <olly@survex.com>
16809         * examples/quest.cc: Output get_description() of the parsed query.
16811 Sun Jun 29 18:56:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16813         * matcher/multimatch.cc: Rename percent_factor variable, used here
16814           as part of the percent_cutoff mechanism, to make its purpose
16815           clearer, and to avoid confusing it with percent_scale in this
16816           file, and percent_factor used elsewhere in matcher/.
16818 Sat Jun 28 21:51:42 GMT 2008  Olly Betts <olly@survex.com>
16820         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Disable
16821           "JAVADOC_AUTOBRIEF" since we always try to write a brief
16822           description explicitly, and it causes problems in some cases.
16824 Sat Jun 28 21:32:21 GMT 2008  Olly Betts <olly@survex.com>
16826         * common/: Fix typos in doxygen comments.
16828 Sat Jun 28 10:33:06 GMT 2008  Olly Betts <olly@survex.com>
16830         * languages/stem.cc: Add "nl" for selecting the Dutch stemmer, which
16831           was accidentally missing from the list of language codes recognised.
16832           Reported by Joey Hess in Debian bug #484458.
16833         * tests/api_nodb.cc: Extend stemlangs1 to check that all the language
16834           codes work, and so does Stem("").
16836 Fri Jun 27 00:27:31 GMT 2008  Olly Betts <olly@survex.com>
16838         * NEWS: Update from ChangeLog and against 1.0 branch.
16840 Thu Jun 26 17:17:41 GMT 2008  Olly Betts <olly@survex.com>
16842         * net/remoteconnection.cc: The "already done" check in do_close() is
16843           no longer useful, so remove it.  Shrink the try block to only cover
16844           the call to send_message().
16846 Thu Jun 26 08:19:41 GMT 2008  Olly Betts <olly@survex.com>
16848         * net/remoteconnection.cc: Don't bother to send MSG_SHUTDOWN for a
16849           read-only Database - just closing the connection is enough.
16851 Thu Jun 26 04:49:06 GMT 2008  Olly Betts <olly@survex.com>
16853         * backends/chert/chert_btreebase.cc: Don't need <string.h> as well as
16854           <cstring>.
16855         * backends/flint/flint_btreebase.cc,bin/xapian-replicate-server.cc:
16856           Prefer <cXXX> to <XXX.h>.
16858 Tue Jun 24 04:31:10 GMT 2008  Olly Betts <olly@survex.com>
16860         * tests/harness/testsuite.cc: Use resize() to truncate a string.
16862 Tue Jun 24 04:23:59 GMT 2008  Olly Betts <olly@survex.com>
16864         * net/remoteconnection.cc: Fill in a guess at the __WIN32__ version of
16865           the code needed in RemoteConnection::do_close().
16867 Tue Jun 24 04:06:02 GMT 2008  Olly Betts <olly@survex.com>
16869         * net/progclient.cc: Fix debug logging for __WIN32__.
16871 Tue Jun 24 03:11:09 GMT 2008  Olly Betts <olly@survex.com>
16873         * net/remoteserver.cc: Just delete the Database * pointer db.  The
16874           Database dtor is virtual, so it's fine to delete a WritableDatabase
16875           via a Database * pointer.
16877 Tue Jun 24 01:29:12 GMT 2008  Olly Betts <olly@survex.com>
16879         * backends/remote/remote-database.cc,common/remoteconnection.h,
16880           net/remoteconnection.cc,net/replicatetcpclient.cc: Wait for the
16881           connection to close rather than using a different shutdown message
16882           which requires a reply.  Mostly this is more backport-friendly, but
16883           it also avoids a message reply (albeit it not in a performance
16884           sensitive situation).  Needs implementing for __WIN32__.
16886 Tue Jun 24 01:07:16 GMT 2008  Olly Betts <olly@survex.com>
16888         * net/remoteserver.cc: Unwrap comment.
16890 Tue Jun 24 00:52:02 GMT 2008  Olly Betts <olly@survex.com>
16892         * net/remoteserver.cc: Kill a blank line.
16894 Tue Jun 24 00:49:50 GMT 2008  Olly Betts <olly@survex.com>
16896         * backends/remote/remote-database.cc,common/remoteconnection.h,
16897           common/remoteprotocol.h,docs/remote_protocol.html,
16898           net/remoteconnection.cc,net/remoteserver.cc,
16899           net/replicatetcpclient.cc: Revert r10713 in preparation for applying
16900           an alternative fix.
16902 Mon Jun 23 21:51:42 GMT 2008  Olly Betts <olly@survex.com>
16904         * HACKING: Expand list of keywords for brace cuddling.  Add rationale.
16906 Mon Jun 23 01:53:03 GMT 2008  Olly Betts <olly@survex.com>
16908         * tests/queryparsertest.cc: Cuddle braces after for loops for
16909           consistency with the rest of the code.  Use string::resize() to
16910           shrink a string rather than assigning the result of substr(0, x).
16911         * HACKING: Explicitly document that braces should be cuddled after
16912           control flow structures.
16914 Mon Jun 23 01:34:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16916         * tests/perftest/perftest_matchdecider.cc: Reworked performance
16917           test to include a test of an alldocspostingiterator, and to only
16918           rebuild the database involved if it's not up-to-date.
16920 Mon Jun 23 01:20:25 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16922         * common/valuestats.h: Add missing #include.
16924 Mon Jun 23 01:10:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16926         * bin/xapian-compact.cc: Add support for the valuestats which are
16927           now held in the value table for chert.
16929 Sun Jun 22 23:44:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16931         * backends/chert/: Change ChertAllDocsPostList to inherit from
16932           ChertPostList and use the doclen list from the posting table
16933           rather than using the termlist table.  This helps towards making
16934           the termlist table optional, reduces the amount of data read in
16935           the process of iterating through an alldocs postlist, and can
16936           make a massive difference in performance: I've measured the time
16937           to iterate through all the documents in a 1000000 document
16938           database, and the patch speeds this operation up by a factor of
16939           6.
16941           Add `keep_reference` parameter to the ChertPostList constructor,
16942           instead of not keeping a reference if the term is empty.
16943           ChertAllDocsPostList uses this to keep a reference to the
16944           database while using an empty term.
16946           Add ChertAllDocsModifiedPostList class, inspired by
16947           ChertModifiedPostList, (with corresponding new source files) to
16948           handle alldocs postlist with modifications: this wasn't needed
16949           before since the termlist is updated immediately after changes.
16951 Sun Jun 22 21:37:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16953         * tests/harness/: Add "name" parameter to
16954           BackendManager::get_writable_database_as_database(), and
16955           BackendManager::get_writable_database_again(), (and subclasses)
16956           so that old databases can be revived.  Useful for the performance
16957           tests.
16959 Sun Jun 22 09:30:44 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16961         * tests/api_anydb.cc: Expand tests for alldocspostlist, covering
16962           iteration of modified databases.
16964 Fri Jun 20 08:28:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16966         * backends/remote/remote-database.cc,common/remoteconnection.h,
16967           common/remoteprotocol.h,docs/remote_protocol.html,
16968           net/remoteconnection.cc,net/remoteserver.cc,
16969           net/replicatetcpclient.cc: Add new message
16970           "MSG_SHUTDOWNANDCONFIRM" which causes a reply of
16971           "REPLY_SHUTDOWNCONFIRMATION" to be sent after the database has
16972           been closed.  Use this message when closing a writable database,
16973           to ensure that the destructor doesn't return until the lock on
16974           the database has been released.
16976 Tue Jun 17 14:28:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16978         * tests/perftest/freemem.cc,tests/perftest/perftest.cc: Patches
16979           from Charlie to allow perftest to compile on windows.
16981 Tue Jun 17 13:23:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16983         * backends/chert/chert_btreebase.cc,backends/chert/chert_lock.cc,
16984           backends/flint/flint_btreebase.cc,backends/flint/flint_lock.cc,
16985           bin/xapian-replicate-server.cc: Add some missing includes, needed
16986           for GCC 4.3.
16988 Tue Jun 17 11:00:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16990         * tests/perftest/get_machine_info.in: Updates to hopefully get
16991           useful version information on windows.
16993 Mon Jun 16 12:13:48 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16995         * tests/harness/testsuite.cc: Don't call backendmanager->posttest()
16996           if no backendmanager is in use.
16998 Sun Jun 15 02:19:03 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17000         * tests/harness/: Wait for subprocesses to finish at end of tests,
17001           with remotetcp backend, to avoid test failures due to final flush
17002           of a subprocess writing to the database used for the next test.
17004 Thu Jun 12 09:09:44 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17006         * common/unaligned.h: Add some casts to make GCC 4.3.0 happy.
17008 Thu Jun 12 09:06:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17010         * backends/chert/chert_btreebase.cc: Add missing #include (needed
17011           for compilation with GCC 4.3.0).
17013 Tue Jun 10 17:38:07 GMT 2008  Olly Betts <olly@survex.com>
17015         * tests/harness/testrunner.cc: Use startswith().  Fix memory leak.
17017 Fri Jun 06 11:02:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17019         * Makefile.am,tests/Makefile.am: Fix make check-* targets to match
17020           the current set of backends.  Add .multichert and .multiflint to
17021           the clean-local hook in tests/.  Leave .multi there for now, to
17022           clean up existing .multi directories in the automated build trees.
17024 Fri Jun 06 08:26:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17026         * common/Makefile.mk: Add valuestats.h to distribution.
17028 Thu Jun 05 23:37:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17030         * backends/chert/chert_values.cc: Fix compile error in assertion in
17031           recently added code for calculating value statistics.
17033 Thu Jun 05 21:38:01 GMT 2008  Olly Betts <olly@survex.com>
17035         * queryparser/queryparser.lemony: Use std::vector<Term *> rather than
17036           std::list<Term *> so that size() is O(1) with any (sane) compiler
17037           and because a list of pointers isn't space efficient (and we don't
17038           need to splice here).  Factor out common code in if branches in
17039           TermGroup::as_group().
17041 Thu Jun 05 17:04:23 GMT 2008  Olly Betts <olly@survex.com>
17043         * queryparser/queryparser.lemony: Use "startswith()" to avoid creating
17044           a new string object.
17046 Thu Jun 05 09:09:54 GMT 2008  Olly Betts <olly@survex.com>
17048         * queryparser/queryparser.lemony: Remove variable which is set but
17049           never otherwise used.
17051 Thu Jun 05 09:08:22 GMT 2008  Olly Betts <olly@survex.com>
17053         * api/omqueryinternal.cc: Don't call find() twice - reuse the result
17054           we just got.  Use AssertEq() rather than Assert() on an equality
17055           test.  Clarify a comment.
17057 Wed Jun 04 21:32:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17059         * queryparser/queryparser.lemony: Fix more O(N*N) scaling, this
17060           time in the way in which auto multiword synonyms are detected.
17061           Instead of trying all possible sub-sequences of terms for
17062           synonyms, use synonym_keys and the skip_to() method to check for
17063           synonyms which actually exist in the synonyms table.
17064         * tests/queryparsertest.cc: Extend the scaling test to check this
17065           case.
17067 Wed Jun 04 12:42:32 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17069         * queryparser/queryparser.lemony: Fix various cases where queries
17070           were constructed pair-wise within a loop, which leads to O(N*N)
17071           scaling behaviour (because each intermediate query construction
17072           is O(M) where M is the size of that query, and there are N of
17073           them).
17074         * tests/queryparsertest.cc: Add test to check that parsing of a
17075           query scales roughly linearly with query size.
17076         * common/omtime.h: Add method to get an OmTime as a double - used
17077           by the new query parser test.
17079 Wed Jun 04 12:18:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17081         * tests/harness/testsuite.h: Fix TEST_LESSER_OR_EQUAL and
17082           TEST_LESSER macros to compare in the right direction (these
17083           macros are, so far, unused).
17085 Mon Jun 02 18:19:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17087         * api/postingsource.cc: Make ValueWeightPostingSource use value
17088           statistics, if they're available, to return accurate term
17089           frequency statistics, and a better maxweight.
17090         * tests/api_db.cc: Add valueweightsource2, to test the bounds and
17091           maxweight returned by a ValueWeightPostingSource for backends
17092           with valuestats support.  Replace !multi condition in
17093           valueweightsource1 with a SKIP_TEST_FOR_BACKEND invocation, since
17094           this is a shortcoming we should fix at some point.
17096 Mon Jun 02 18:16:52 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17098         * tests/harness/testrunner.cc,tests/harness/testrunner.h: Replace
17099           DO_TESTS_FOR_BACKEND macro with a do_tests_for_backend method;
17100           the method version takes a BackendManager * and gets the backend
17101           name from that, rather than requiring it to be specified.
17102           Requires addition of a couple of extra private members to the
17103           TestRunner class.
17105 Mon Jun 02 10:27:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17107         * include/xapian/database.h: Add get_value_freq(),
17108           get_value_lower_bound() and get_value_upper_bound() methods to
17109           Database, to get statistics about the values stored in a slot.
17110         * api/omdatabase.cc,backends/chert/,backends/database.cc,
17111           backends/inmemory/inmemory_database.cc,
17112           backends/inmemory/inmemory_database.h,
17113           backends/remote/remote-database.cc,common/,
17114           net/remoteserver.cc: Add support for the value statistics methods
17115           to chert, inmemory, multi and remote databases.
17116         * tests/Makefile.am,tests/api_valuestats.cc,
17117           tests/harness/testrunner.cc,tests/harness/testrunner.h: Add test
17118           of the value statistics code, and a "valuestats" backend property
17119           to select only backends supporting this.
17121 Mon Jun 02 10:26:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17123         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
17124           Move implementation of get_dbtype() method out of header.
17126 Mon Jun 02 09:44:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17128         * rests/harness/: Make flint and chert subtypes for the remote and
17129           multi backend types.  These are specified (on the command line
17130           and elsewhere) by the main type (multi, remotetcp or remoteprog),
17131           followed by an underscore, followed by the subtype (flint or
17132           chert).  Change return type of BackendManager::get_dbtype() to a
17133           string instead of a const char *, to allow backend managers which
17134           have subtypes to generate the result dynamically.
17135         * tests/harness/backendmanager_remote.cc,
17136           tests/harness/backendmanager_remote.h,
17137           tests/harness/backendmanager_remoteprog.cc,
17138           tests/harness/backendmanager_remoteprog.h,
17139           tests/harness/backendmanager_remotetcp.cc,
17140           tests/harness/backendmanager_remotetcp.h: Add new
17141           BackendManagerRemote class as a common base for the two remote
17142           backend managers, and move duplicated code into it.  Add
17143           parameter to its constructor, and to the constructors of the
17144           remote backend manager subclasses, to control the type of
17145           database to use at the remote end.
17146         * tests/harness/backendmanager_multi.cc,
17147           tests/harness/backendmanager_multi.h: Add parameter to
17148           constructor of BackendManagerMulti, controlling the type of
17149           database to use for sub databases.  Put the generated database
17150           files in ".multiflint" and ".multichert" instead of ".multi".
17151         * tests/harness/testrunner.cc: Update list of backend properties to
17152           contain the new subtypes.  Modify use_backend() to allow either
17153           the full backend type, or just the main part of the backend type,
17154           to be specified, so that, for example "-b multi" will run both
17155           the multi_chert and multi_flint tests.  Add test runs for all the
17156           subtypes now supported.  Catch string exceptions thrown by the
17157           test runner - these can currently occur when neither flint or
17158           chert are compiled in.
17159         * tests/apitest.cc,tests/apitest.h: Adjust return type of
17160           get_dbtype(), implement skip_test_*_backend functions which just
17161           check the prefix of the type, and implement SKIP_TEST_*_BACKEND
17162           macros using these.
17163         * tests/api_anydb.cc: Modify check for running on a multi backend
17164           to copy with getting a string back from get_dbtype().
17166 Sat May 31 00:55:03 GMT 2008  Olly Betts <olly@survex.com>
17168         * tests/Makefile.am,tests/perftest/Makefile.mk: Remove unnecessary
17169           quotes.
17171 Thu May 29 16:04:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17173         * tests/perftest/: Update svn:ignore property for perftest changes.
17175 Thu May 29 14:33:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17177         * tests/perftest/perftest.cc: Include the xapian version string in
17178           the test output.  For runs from SVN, also include the subversion
17179           revision number and branch in the output.
17181 Wed May 28 21:47:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17183         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
17184           matcher/valuerangepostlist.h: Apply patch from ticket #270 to
17185           implement ValueRangePostList::next() by using an alldocs posting
17186           list, instead of trying docids in turn.  This is much more
17187           efficient if document IDs are sparse.  Since both methods require
17188           accessing the termlist table to check for the next document, and
17189           some cursory performance tests don't show a measurable difference
17190           in speed, I think this approach is at least safe, and probably
17191           superior.
17193 Wed May 28 21:28:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17195         * tests/perftest/perftest.cc: Log the flush threshold for indexing
17196           runs.
17197         * tests/perftest/perftest_randomidx.cc: Set the run size back to a
17198           reasonably large value.
17200 Wed May 28 20:48:10 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17202         * configure.ac,tests/,tests/perftest/,tests/perftest_matchdecider.cc,
17203           tests/perftest_randomidx.cc: Move performance test source files
17204           into a subdirectory.  Modify output of performance tests to
17205           include some basic system information, and also to include
17206           details of the parameters used to perform indexing tests.
17208 Wed May 28 20:42:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17210         * HACKING: Fix numbering in checklist for developers so that it
17211           doesn't repeat section 5.
17213 Sun May 25 14:21:40 GMT 2008  Olly Betts <olly@survex.com>
17215         * NEWS: Update to match 1.0 branch.
17217 Sun May 25 00:24:09 GMT 2008  Olly Betts <olly@survex.com>
17219         * NEWS: Start to update from ChangeLog, stripping out backported
17220           changes.
17222 Sat May 24 16:38:49 GMT 2008  Olly Betts <olly@survex.com>
17224         * NEWS,configure.ac: Update to match 1.0 branch.
17226 Sat May 24 16:33:19 GMT 2008  Olly Betts <olly@survex.com>
17228         * tests/termgentest.cc: Pass Xapian::Document by const reference.
17230 Sat May 24 14:30:59 GMT 2008  Olly Betts <olly@survex.com>
17232         * bin/xapian-compact.cc: Only warn about duplicate user metadata keys
17233           if the tags aren't the same.
17235 Sat May 24 12:14:55 GMT 2008  Olly Betts <olly@survex.com>
17237         * bin/Makefile.am: Put special -I options in foo_CPPFLAGS not
17238           foo_CXXFLAGS.  As well as being the more correct place, this also
17239           means that AM_CXXFLAGS is now used when compiling xapian-check and
17240           xapian-compact, which in particular enables compiler warnings.
17241         * bin/xapian-check.cc,bin/xapian-compact.cc,bin/xapian-check-flint.cc:
17242           Fix warnings (one unused variable and a few cases of a variable
17243           masking another with the same name - none problematic in practice).
17245 Fri May 23 09:22:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17247         * backends/inmemory/inmemory_database.cc: Fix bug in inmemory
17248           database, which resulted in the values not being stored correctly
17249           if document IDs were sparse.
17250         * matcher/valuerangepostlist.cc: Fix the next() method not to
17251           return document IDs which aren't present in the database - this
17252           used to happen if the document IDs were sparse.
17253         * tests/api_anydb.cc: Add "valuerange2", a regression test for
17254           OP_VALUE_LE returning document IDs which aren't present in the
17255           database, and "alldocspl1", which does a generic test of an
17256           alldocs postlist in a sparse database (this passed before the
17257           above changes, but might as well be added anyway).
17259 Wed May 21 19:33:12 GMT 2008  Olly Betts <olly@survex.com>
17261         * docs/Makefile.am: test == isn't portable - use test = instead.
17263 Wed May 21 13:22:23 GMT 2008  Olly Betts <olly@survex.com>
17265         * HACKING: Fix path for atreus.
17267 Wed May 21 13:21:08 GMT 2008  Olly Betts <olly@survex.com>
17269         * HACKING: Fix search&replace error - the CVS module is still called
17270           www.xapian.org.
17272 Wed May 21 13:16:39 GMT 2008  Olly Betts <olly@survex.com>
17274         * HACKING: Reword, since environmental variable PATH isn't "set by
17275           $PATH".
17277 Wed May 21 13:16:21 GMT 2008  Olly Betts <olly@survex.com>
17279         * HACKING: ixion -> atreus.
17281 Wed May 21 13:12:07 GMT 2008  Olly Betts <olly@survex.com>
17283         * include/xapian/database.h: Improve documentation comment.
17285 Sun May 18 05:20:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17287         * docs/remote_protocol.html: Remove spurious "i" at end of line.
17289 Sat May 17 11:53:54 GMT 2008  Olly Betts <olly@survex.com>
17291         * tests/harness/testutils.h: Layout and macro parameter name tweaks.
17293 Fri May 16 20:42:05 GMT 2008  Olly Betts <olly@survex.com>
17295         * bin/xapian-compact.cc: Check that all source databases are the same
17296           type (flint or chert).  Copy over "iamchert" for chert.  Update
17297           terminology - the "meta file" is now called the "version file".
17299 Fri May 16 17:33:22 GMT 2008  Olly Betts <olly@survex.com>
17301         * backends/chert/chert_database.cc,backends/chert/chert_version.cc:
17302           Need <cstdio> for rename().
17304 Fri May 16 17:27:56 GMT 2008  Olly Betts <olly@survex.com>
17306         * backends/chert/chert_database.cc: Correct FIXME comment and mark
17307           as "FIXME:1.2.0".
17309 Fri May 16 17:21:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17311         * tests/harness/testrunner.cc,tests/harness/testrunner.h: Add
17312           condition to test if the backend is "inmemory".
17313         * tests/perftest_randomidx.cc: Change the run size from 1000
17314           documents to 1000000.  Disable this test for the inmemory
17315           backend, because it will quickly use up all the memory on the
17316           machine.
17318 Fri May 16 16:56:25 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17320         * HACKING: Add note about some more PDF generation tools which are
17321           needed, and that doxygen requires them to be on PATH.
17323 Fri May 16 16:38:40 GMT 2008  Olly Betts <olly@survex.com>
17325         * HACKING: Ubuntu now needs tetex-extra too.
17327 Fri May 16 10:05:30 GMT 2008  Olly Betts <olly@survex.com>
17329         * bin/xapian-compact.cc: Fix to not reject chert databases during the
17330           "up front" check.
17332 Thu May 15 20:20:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17334         * net/progclient.cc: Set namespace for close methods (to avoid
17335           conflicting with the close method I'm working on adding to
17336           database internal).
17338 Wed May 14 17:14:53 GMT 2008  Olly Betts <olly@survex.com>
17340         * backends/database.cc: Default to flint not chert for a new database.
17342 Wed May 14 17:11:56 GMT 2008  Olly Betts <olly@survex.com>
17344         * api/postingsource.cc,docs/postingsource.rst,
17345           include/xapian/postingsource.h,matcher/externalpostlist.cc:
17346           PostingSource::check() now returns the valid flag rather than
17347           passing it in by reference to be set.  Change "should" to "must"
17348           for the get_termfreq_est() requirement at Richard's suggestion.
17349           Add parameter names to PostingSource method prototypes and update
17350           documentation comments to match.
17352 Wed May 14 15:34:38 GMT 2008  Olly Betts <olly@survex.com>
17354         * docs/Makefile.am,docs/index.html,docs/postingsource.rst: Add
17355           topic document for PostingSource.
17357 Mon May 12 17:27:13 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17359         * include/xapian/postingsource.h: Add documentation comments for
17360           ValueWeightPostingSource, and tweak
17361           PostingSource::get_maxweight() comment a bit more.
17363 Mon May 12 16:51:01 GMT 2008  Olly Betts <olly@survex.com>
17365         * include/xapian/postingsource.h: Clarify get_maxweight() if the
17366           maximum from now on.
17368 Mon May 12 06:51:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17370         * api/postingsource.cc,include/xapian/postingsource.h,tests/api_db.cc,
17371           tests/harness/index_utils.cc: Add ValueWeightPostingSource, which
17372           reads a value, applies sortable_unserialise() to it, and returns
17373           that as the weight for each document.
17375 Sun May 11 23:49:07 GMT 2008  Olly Betts <olly@survex.com>
17377         * queryparser/lemon.c,queryparser/queryparser.lt: Do a final sync by
17378           comparing our versions to the latest vanilla upstream.  Add a note
17379           to each file of the latest revision sync-ed against.
17380         * queryparser/lemon.c: Enable '#define PRIVATE static'.
17382 Sun May 11 22:48:27 GMT 2008  Olly Betts <olly@survex.com>
17384         * NEWS: Add a note of the speed-up that the recent QueryParser changes
17385           have given.
17387 Sun May 11 22:10:19 GMT 2008  Olly Betts <olly@survex.com>
17389         * queryparser/lemon.c: Merge upstream "Check-in Number: 5053".
17391 Sun May 11 22:01:48 GMT 2008  Olly Betts <olly@survex.com>
17393         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5052".
17395 Sun May 11 21:56:03 GMT 2008  Olly Betts <olly@survex.com>
17397         * queryparser/queryparser.lt: Fix a comment typo.
17399 Sun May 11 21:52:30 GMT 2008  Olly Betts <olly@survex.com>
17401         * queryparser/lemon.c: Merge upstream "Check-in Number: 4751".
17403 Sun May 11 21:51:18 GMT 2008  Olly Betts <olly@survex.com>
17405         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 4745".
17407 Sun May 11 21:47:03 GMT 2008  Olly Betts <olly@survex.com>
17409         * queryparser/queryparser.lt: Comment out memset() call added by
17410           one of the earlier merged upstream changes - a later comment on
17411           the ticket referred to notes that this was actually a bug in the
17412           grammar of the people who reported it.
17414 Sun May 11 21:44:46 GMT 2008  Olly Betts <olly@survex.com>
17416         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 4743".
17418 Sun May 11 21:41:55 GMT 2008  Olly Betts <olly@survex.com>
17420         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 4738".
17422 Sun May 11 21:33:13 GMT 2008  Olly Betts <olly@survex.com>
17424         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17425           "Check-in Number: 4736".
17426         * queryparser/lemon.c: Add %syntax_error directive since lemon has
17427           changed it's error recovery strategy if you don't have one.
17429 Sun May 11 20:54:31 GMT 2008  Olly Betts <olly@survex.com>
17431         * queryparser/queryparser.lemony: If we hit a syntax error, don't
17432           bother feeding further tokens to the parser!
17434 Sat May 10 21:42:44 GMT 2008  Olly Betts <olly@survex.com>
17436         * queryparser/lemon.c: Merge upstream "Check-in Number: 4641".
17438 Sat May 10 21:33:10 GMT 2008  Olly Betts <olly@survex.com>
17440         * queryparser/lemon.c: Merge upstream "Check-in Number: 4473".
17442 Sat May 10 21:31:25 GMT 2008  Olly Betts <olly@survex.com>
17444         * queryparser/lemon.c: Merge upstream "Check-in Number: 4439".
17446 Sat May 10 21:28:27 GMT 2008  Olly Betts <olly@survex.com>
17448         * queryparser/lemon.c: Merge upstream "Check-in Number: 4274".
17450 Sat May 10 21:25:35 GMT 2008  Olly Betts <olly@survex.com>
17452         * queryparser/lemon.c: Merge upstream "Check-in Number: 4190".
17454 Sat May 10 21:20:16 GMT 2008  Olly Betts <olly@survex.com>
17456         * queryparser/lemon.c: Merge upstream "Check-in Number: 4160".
17458 Sat May 10 21:07:15 GMT 2008  Olly Betts <olly@survex.com>
17460         * queryparser/lemon.c: Merge upstream "Check-in Number: 3753".
17462 Sat May 10 21:03:19 GMT 2008  Olly Betts <olly@survex.com>
17464         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17465           "Check-in Number: 3738".
17467 Sat May 10 20:00:09 GMT 2008  Olly Betts <olly@survex.com>
17469         * queryparser/lemon.c: Merge upstream "Check-in Number: 3654".
17471 Sat May 10 19:55:32 GMT 2008  Olly Betts <olly@survex.com>
17473         * queryparser/lemon.c: Merge upstream "Check-in Number: 3594".
17475 Sat May 10 19:46:05 GMT 2008  Olly Betts <olly@survex.com>
17477         * queryparser/lemon.c: Merge upstream "Check-in Number: 3593".
17479 Sat May 10 19:44:15 GMT 2008  Olly Betts <olly@survex.com>
17481         * queryparser/lemon.c: Merge upstream "Check-in Number: 3591".
17483 Sat May 10 19:40:12 GMT 2008  Olly Betts <olly@survex.com>
17485         * queryparser/lemon.c: Merge upstream "Check-in Number: 3528".
17487 Sat May 10 19:38:36 GMT 2008  Olly Betts <olly@survex.com>
17489         * queryparser/lemon.c: Merge upstream "Check-in Number: 3476".
17491 Sat May 10 19:36:06 GMT 2008  Olly Betts <olly@survex.com>
17493         * queryparser/lemon.c: Merge upstream "Check-in Number: 3333".
17495 Sat May 10 19:33:33 GMT 2008  Olly Betts <olly@survex.com>
17497         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 3244".
17499 Sat May 10 19:29:18 GMT 2008  Olly Betts <olly@survex.com>
17501         * queryparser/lemon.c: Merge upstream "Check-in Number: 3226".
17503 Sat May 10 19:19:48 GMT 2008  Olly Betts <olly@survex.com>
17505         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 3224".
17507 Sat May 10 19:14:18 GMT 2008  Olly Betts <olly@survex.com>
17509         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17510           "Check-in Number: 3210".
17512 Sat May 10 18:56:50 GMT 2008  Olly Betts <olly@survex.com>
17514         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 3181".
17516 Sat May 10 17:05:35 GMT 2008  Olly Betts <olly@survex.com>
17518         * queryparser/lemon.c: Merge upstream "Check-in Number: 3126".
17520 Sat May 10 16:51:31 GMT 2008  Olly Betts <olly@survex.com>
17522         * queryparser/lemon.c: Merge upstream "Check-in Number: 2764".
17524 Sat May 10 16:40:48 GMT 2008  Olly Betts <olly@survex.com>
17526         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17527           "Check-in Number: 2761".
17529 Sat May 10 16:32:45 GMT 2008  Olly Betts <olly@survex.com>
17531         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 2458".
17533 Sat May 10 16:29:55 GMT 2008  Olly Betts <olly@survex.com>
17535         * queryparser/lemon.c: Merge upstream "Check-in Number: 2345".
17537 Sat May 10 16:08:28 GMT 2008  Olly Betts <olly@survex.com>
17539         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 2302".
17541 Sat May 10 15:50:23 GMT 2008  Olly Betts <olly@survex.com>
17543         * queryparser/lemon.c: Merge upstream "Check-in Number: 2208".
17545 Sat May 10 15:03:59 GMT 2008  Olly Betts <olly@survex.com>
17547         * tests/harness/testsuite.cc: Prefer `str.assign(ptr)' to `str =
17548           string(ptr)'.
17550 Sat May 10 14:48:38 GMT 2008  Olly Betts <olly@survex.com>
17552         * api/matchspy.cc,api/replication.cc: Prefer `str.assign(ptr, len)' to
17553           `str = string(ptr, len)'.
17555 Fri May 09 16:53:19 GMT 2008  Olly Betts <olly@survex.com>
17557         * net/remoteserver.cc: No entries in dispatch[] are NULL, so there's
17558           no point testing for it.
17560 Fri May 09 16:51:10 GMT 2008  Olly Betts <olly@survex.com>
17562         * net/remoteconnection.cc: Remove pointless conversion to size_t which
17563           breaks GCC 2.95 build.
17565 Fri May 09 16:22:46 GMT 2008  Olly Betts <olly@survex.com>
17567         * api/replication.cc: Needs <cstdio> for rename().
17569 Fri May 09 15:41:08 GMT 2008  Olly Betts <olly@survex.com>
17571         * tests/harness/testutils.cc: No need for an explicit std::endl when
17572           calling TEST_AND_EXPLAIN().
17574 Fri May 09 15:38:22 GMT 2008  Olly Betts <olly@survex.com>
17576         * api/replication.cc: Use '\n' rather than endl in the middle of
17577           writing stuff, since endl forces a flush which just adds useless
17578           overhead.
17580 Fri May 09 15:24:42 GMT 2008  Olly Betts <olly@survex.com>
17582         * common/omdebug.h: Fix RETURN macro to work on GCC 2.95 for the case
17583           `RETURN(string())'.
17585 Fri May 09 08:33:35 GMT 2008  Olly Betts <olly@survex.com>
17587         * include/xapian/postingsource.h: Add a protected default ctor so that
17588           code subclassing PostingSource actually compiles!
17590 Thu May 08 16:41:59 GMT 2008  Olly Betts <olly@survex.com>
17592         * include/xapian/postingsource.h: Add doxygen comments for
17593           Xapian::PostingSource.  Add private assignment operator and
17594           copy constructor to prevent copying.
17596 Thu May 08 16:40:49 GMT 2008  Olly Betts <olly@survex.com>
17598         * common/postlist.h: Fix one doxygen comment and improve another.
17600 Mon May 05 15:22:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17602         * tests/Makefile.am: Clean up .chert in clean-local.
17604 Mon May 05 14:52:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17606         * docs/Makefile.am: Adapt the dist-check hook to work with a VPATH
17607           build in non-maintainer mode.
17609 Mon May 05 13:18:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17611         * docs/Makefile.am: Fix "make distcheck" by using dist-hook to
17612           install generated files, with the appropriate dependency, instead
17613           of wildcards in EXTRA_DIST which don't give the correct expansion
17614           unless the files happened to be generated already by another
17615           rule. Also, ensure that the documentation is generated before
17616           attempting to install it.
17618 Sun May 04 09:30:53 GMT 2008  Olly Betts <olly@survex.com>
17620         * backends/chert/chert_version.cc,backends/flint/flint_version.cc,
17621           common/stringutils.h: Move CONST_STRLEN() into stringutils.h.
17622         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
17623           Use CONST_STRLEN().
17625 Sat May 03 18:56:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17627         * api/omenquire.cc: Reset the internal sorter pointer to NULL when
17628           changing to a sort by value. Fixes #256.
17629         * tests/api_sorting.cc: Add regression test.
17631 Sat May 03 18:52:27 GMT 2008  Olly Betts <olly@survex.com>
17633         * include/xapian/unicode.h: Mark internal functions as @internal.
17635 Sat May 03 18:43:12 GMT 2008  Olly Betts <olly@survex.com>
17637         * docs/doxygen_api_conf.in: Disable header and directory relationship
17638           graphs in the API documentation as they aren't interesting to users.
17640 Sat May 03 18:12:30 GMT 2008  Olly Betts <olly@survex.com>
17642         * docs/gen_codestructure_doc.in: Link to trac instead of viewvc.
17644 Sat May 03 17:25:02 GMT 2008  Olly Betts <olly@survex.com>
17646         * docs/replication_protocol.rst: Fix a few typos.
17648 Sat May 03 15:53:24 GMT 2008  Olly Betts <olly@survex.com>
17650         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
17651           If Database::reopen() is called and the database revision on disk
17652           hasn't changed, then do as little work as possible.  Even if it
17653           has changed, don't bother to recheck the version file (bug#261).
17655 Sat May 03 10:28:30 GMT 2008  Olly Betts <olly@survex.com>
17657         * configure.ac: Improve code to prevent probing for f77, etc.
17659 Sat May 03 10:17:05 GMT 2008  Olly Betts <olly@survex.com>
17661         * matcher/rset.cc: Missing change from last commit.
17663 Sat May 03 09:25:29 GMT 2008  Olly Betts <olly@survex.com>
17665         * api/omenquire.cc,common/,expand/Makefile.mk,expand/esetinternal.cc,
17666           expand/expand.cc: Rewrite class ESet::Internal, incorporating the
17667           functionality which used to be in the internal OmExpand class.  The
17668           expand operation now uses a min heap rather than calling
17669           nth_element() repeatedly - this should reduce the complexity of the
17670           expand operation by a factor of n/log(n) where n is the requested
17671           ESet size.
17673 Fri May 02 15:51:29 GMT 2008  Olly Betts <olly@survex.com>
17675         * common/ortermlist.h,expand/ortermlist.cc: Kill FreqAdderOrTermList's
17676           explicit empty dtor.
17678 Thu May 01 16:38:40 GMT 2008  Olly Betts <olly@survex.com>
17680         * api/omqueryinternal.cc,api/replication.cc,backends/chert/,
17681           backends/flint/,backends/inmemory/inmemory_positionlist.cc,
17682           common/utils.cc,matcher/stats.cc,tests/perftest_matchdecider.cc,
17683           tests/perftest_randomidx.cc: Assorted formatting tweaks.
17685 Thu May 01 16:32:58 GMT 2008  Olly Betts <olly@survex.com>
17687         * common/unaligned.h: Fix ";;" to ";" after AssertRel calls.
17689 Thu May 01 16:12:05 GMT 2008  Olly Betts <olly@survex.com>
17691         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Tell doxygen to
17692           expand XAPIAN_VISIBILITY_DEFAULT so it doesn't appear in collated
17693           API documentation.
17695 Wed Apr 30 10:57:53 GMT 2008  Olly Betts <olly@survex.com>
17697         * HACKING: Update bugzilla references and URLs to reflect the move
17698           to trac.  Update the "fixing a bug" checklist to mention backporting
17699           and updating the release notes.
17701 Wed Apr 30 10:40:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17703         * backends/remote/remote-database.cc: Fix error message displayed
17704           when remote protocol version doesn't match to display the minor
17705           part of the version number supplied by the server correctly.
17707 Tue Apr 29 17:37:10 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17709         * AUTHORS: Add Alexandre Gauthier, for supplying a method for doing
17710           python packaging for Windows.
17712 Tue Apr 29 16:20:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17714         * common/fileutils.cc: Fix variable name for windows compilation.
17716 Tue Apr 29 06:50:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17718         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
17719           Remove some debugging code, left over from writing the
17720           replication code.
17722 Mon Apr 28 12:11:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17724         * backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc,
17725           backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc:
17726           Fix issue #259 - update the last_block value whenever allocating
17727           a new value, so that next_for_sequential doesn't give up too
17728           early.  Also, in both next_for_sequential and
17729           prev_for_sequential, for writable databases, check the built-in
17730           cursor at all levels for the new block rather than just reading
17731           from disk, since newly allocated blocks won't have been written
17732           to disk yet.  Also, test the return type of next() when reading
17733           subsequent parts of tags, and raise DatabaseCorruptError if it
17734           returns false; this prevents incorrect data being returned,
17735           leading to a zlib error.
17736         * tests/api_wrdb.cc: Add regression test.
17738 Fri Apr 25 08:39:28 GMT 2008  Olly Betts <olly@survex.com>
17740         * api/postingsource.cc: Missed change from last but one commit.
17742 Thu Apr 24 13:44:48 GMT 2008  Olly Betts <olly@survex.com>
17744         * matcher/queryoptimiser.cc: Reserve size of postlists vector.
17746 Thu Apr 24 13:38:51 GMT 2008  Olly Betts <olly@survex.com>
17748         * include/xapian/postingsource.h,matcher/externalpostlist.cc,
17749           matcher/externalpostlist.h,tests/api_db.cc: Add a default
17750           PostingSource::get_description() method so users who don't care
17751           aren't forced to define one.  Make PostingSource::reset() a standard
17752           method and call it automatically so that a PostingSource-using
17753           Query can be run more than once without extra work.
17755 Thu Apr 24 11:24:30 GMT 2008  Olly Betts <olly@survex.com>
17757         * matcher/queryoptimiser.cc: Don't need <queue>.
17759 Thu Apr 24 04:50:43 GMT 2008  Olly Betts <olly@survex.com>
17761         * tests/api_db.cc: Add test that boolean branches of matches don't
17762           cause Xapian::PostingSource to be asked for weights.
17764 Thu Apr 24 03:27:39 GMT 2008  Olly Betts <olly@survex.com>
17766         * matcher/externalpostlist.cc,matcher/externalpostlist.h,
17767           matcher/queryoptimiser.cc: ExternalPostList now takes the
17768           factor into account, so works with OP_SCALE_WEIGHT, and
17769           doesn't call get_weight()/get_maxweight() for a boolean
17770           branch.
17771         * tests/api_db.cc: Add tests for OP_SCALE_WEIGHT.
17773 Thu Apr 24 02:16:08 GMT 2008  Olly Betts <olly@survex.com>
17775         * xapian-config.in: Back out --swigheaders.
17777 Wed Apr 23 11:37:45 GMT 2008  Olly Betts <olly@survex.com>
17779         * matcher/externalpostlist.h: Need to initialise current.
17781 Wed Apr 23 07:57:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17783         * tests/termgentest.cc: Put the inclusion of "utils.h" back; needed
17784           for om_tostring().
17786 Wed Apr 23 04:20:55 GMT 2008  Olly Betts <olly@survex.com>
17788         * include/xapian/replication.h: Eliminate reference to FlintDatabase
17789           from doc comment since it's not user-visible, and chert supports
17790           replication too.  No need for '#include <xapian/database.h>' so
17791           remove.  Remove references to non-existent parameter 'remotename'.
17792           'DatabaseCorrupt error' -> 'DatabaseCorruptError'.
17794 Wed Apr 23 04:19:53 GMT 2008  Olly Betts <olly@survex.com>
17796         * include/xapian/query.h: Wrap Xapian::Query::Internal class
17797           definition in "#ifndef SWIG" ... "#endif" in preparation for getting
17798           SWIG to directly parse it.
17800 Wed Apr 23 02:16:53 GMT 2008  Olly Betts <olly@survex.com>
17802         * api/omquery.cc: Prefer string() to "".
17804 Wed Apr 23 02:16:10 GMT 2008  Olly Betts <olly@survex.com>
17806         * include/xapian/query.h: Fix doc comment typo (doesn't affect API
17807           docs).
17809 Wed Apr 23 00:59:40 GMT 2008  Olly Betts <olly@survex.com>
17811         * api/postingsource.cc: Another missing file.
17813 Wed Apr 23 00:34:34 GMT 2008  Olly Betts <olly@survex.com>
17815         * include/xapian/postingsource.h: New file missing from previous
17816           commit.
17818 Wed Apr 23 00:30:34 GMT 2008  Olly Betts <olly@survex.com>
17820         * api/Makefile.mk,api/omquery.cc,api/omqueryinternal.cc,
17821           include/Makefile.mk,include/xapian.h,include/xapian/query.h,matcher/,
17822           tests/api_db.cc: Add support for Xapian::PostingSource.
17824 Wed Apr 23 00:21:25 GMT 2008  Olly Betts <olly@survex.com>
17826         * include/xapian.h: Fix misplaced comment.  Tweak doxygen comments for
17827           version functions to be more consistent with others.
17829 Wed Apr 23 00:16:14 GMT 2008  Olly Betts <olly@survex.com>
17831         * matcher/queryoptimiser.cc: Remove bogus comment from cut-and-paste.
17833 Wed Apr 23 00:14:30 GMT 2008  Olly Betts <olly@survex.com>
17835         * common/omassert.h: Add AssertEqDoubleParanoid().
17836         * matcher/multimatch.cc: Use it instead of home-brewed version.
17838 Tue Apr 22 23:30:50 GMT 2008  Olly Betts <olly@survex.com>
17840         * common/utils.h: Stop exporting internal functions needlessly.
17842 Tue Apr 22 12:53:55 GMT 2008  Olly Betts <olly@survex.com>
17844         * bin/xapian-compact.cc: Fix to work again (broken by the splitting of
17845           FlintTable::commit() into flush_db() and commit() in the replication
17846           changes).  Don't bother passing tablename to functions where it
17847           always has the same value.  Tweak the user-metadata copying loop to
17848           make it clearer.  Reserve the right size for the vector used for
17849           merging spellings.
17851 Tue Apr 22 12:28:17 GMT 2008  Olly Betts <olly@survex.com>
17853         * backends/chert/chert_table.h,backends/flint/flint_table.h,
17854           bin/xapian-compact.cc: Default commit's changes_fd parameter to -1.
17856 Tue Apr 22 11:39:10 GMT 2008  Olly Betts <olly@survex.com>
17858         * common/omassert.h: Fix comment typo.
17860 Tue Apr 22 10:54:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17862         * tests/queryparsertest.cc: Add "utils.h" back - needed for
17863           om_tostring() and mkdir().
17865 Mon Apr 21 07:48:45 GMT 2008  Olly Betts <olly@survex.com>
17867         * tests/api_db.cc: Don't need <list>.  Wrap comment.
17869 Mon Apr 21 07:04:12 GMT 2008  Olly Betts <olly@survex.com>
17871         * api/omqueryinternal.cc,backends/chert/chert_check.cc,
17872           backends/flint/flint_check.cc,tests/: Remove various needless
17873           inclusions of headers (especially <iostream>).  Reorder headers.
17874           Wrap a couple of comments.  Append single characters to strings
17875           using character constants.
17877 Mon Apr 21 06:26:49 GMT 2008  Olly Betts <olly@survex.com>
17879         * api/Makefile.mk,api/valuerangeproccompat.cc,
17880           include/xapian/queryparser.h: Remove the
17881           v102::NumberValueRangeProcessor ABI-preserving machinery since it's
17882           OK to change the ABI for 1.1.0.
17884 Mon Apr 21 04:42:52 GMT 2008  Olly Betts <olly@survex.com>
17886         * api/,queryparser/queryparser.cc: Remove debug log tracing from
17887           get_description() methods since the debug log call tracing *calls*
17888           get_description() methods on parameters, so logging these calls just
17889           makes for more confusing debug logs.  A get_description() method
17890           should have no side-effects so it's not very interesting even when
17891           explicitly called by the user.
17892         * common/omdebug.h: Replace "OM_DEBUG_INTRO" class with dummy
17893           placeholder (to preserve numbering), to help prevent accidentally
17894           adding these back.
17896 Sun Apr 20 09:46:11 GMT 2008  Olly Betts <olly@survex.com>
17898         * api/omqueryinternal.cc,common/: Stop describing get_description() as
17899           an "Introspection method" internal (matching earlier change to stop
17900           doing so externally).  This doesn't help to explain what it does,
17901           and get_description() doesn't actually fall under any of the formal
17902           definitions of "introspection" I can find.
17904 Fri Apr 18 10:26:18 GMT 2008  Olly Betts <olly@survex.com>
17906         * backends/chert/chert_metadata.cc: Fix renamed parameter in debug
17907           logging.
17909 Fri Apr 18 10:18:35 GMT 2008  Olly Betts <olly@survex.com>
17911         * HACKING,INSTALL,Makefile.am,backends/Makefile.mk,backends/chert/,
17912           backends/database.cc,backends/flint/,backends/remote/net_postlist.cc,
17913           backends/remote/net_postlist.h,bin/,common/,configure.ac,docs/,
17914           include/xapian/dbfactory.h,include/xapian/version_h.cc,
17915           net/remoteserver.cc,tests/Makefile.am,tests/harness/: Start new
17916           development backend "chert".  Currently the change over flint is
17917           that in the postlist table, doclengths are stored once in a
17918           chunked postlist-like form, rather than once per posting.
17920 Tue Apr 15 23:24:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17922         * api/omenquire.cc,tests/api_nodb.cc: Fix segfault introduced by
17923           previous change when asking for the termfreq on an empty mset.
17924           Include a regression test.
17926 Tue Apr 15 06:02:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17928         * include/xapian/enquire.h: Change definition of MSet::get_termfreq
17929           such that it will fall back to looking the term frequency up in
17930           the database rather than raising an exception if the term is not
17931           present in the mset.
17932         * api/omenquire.cc,common/omenquireinternal.h: Implementation of
17933           the above.
17934         * tests/api_anydb.cc: Test the above.
17936 Mon Apr 14 21:29:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17938         * tests/: Use copies of freemem.cc and freemem.h from omega to report
17939           the free physical memory at each stage of indexing.  Also, add a
17940           get_total_physical_memory() function to this, and report it's
17941           value at the top of the results file (only tested on Linux so
17942           far).
17944 Mon Apr 14 19:17:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17946         * tests/api_wrdb.cc: Make skip_to() test a bit more comprehensive.
17948 Mon Apr 14 19:08:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17950         * backends/flint/flint_metadata.cc,backends/flint/flint_metadata.h:
17951           Fix a bug in the skip_to() implementation, and set the parameter
17952           name to "key" instead of "tname", since it's not a term.
17953         * tests/api_wrdb.cc: Add a test of the metadata iterators.
17955 Mon Apr 14 14:22:16 GMT 2008  Olly Betts <olly@survex.com>
17957         * backends/Makefile.mk,backends/flint/Makefile.mk,
17958           backends/flint/contiguousalldocspostlist.cc,
17959           backends/flint/contiguousalldocspostlist.h,common/Makefile.mk:
17960           The ContiguousAllDocsPostList class isn't flint-specific, so move
17961           it out of backends/flint.
17963 Mon Apr 14 13:56:51 GMT 2008  Olly Betts <olly@survex.com>
17965         * backends/flint/flint_database.cc: Removed duplicate
17966           '#include "flint_database.h"', ironically added by Richard's recent
17967           change.  Fix a couple of errors in alphabetical ordering, and
17968           move autoptr.h and the "safe" headers to where the standard headers
17969           they replace would go.
17971 Mon Apr 14 13:44:37 GMT 2008  Olly Betts <olly@survex.com>
17973         * Makefile.am,tests/Makefile.am: List check-perf in .PHONY.
17974         * HACKING: Document the need to list non-file targets in .PHONY.
17976 Mon Apr 14 07:59:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17978         * api/omdatabase.cc: Correct return type in a DEBUGAPICALL macro.
17980 Mon Apr 14 07:14:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17982         * api/omdatabase.cc,backends/database.cc,backends/flint/,
17983           common/database.h,include/xapian/database.h: Add
17984           metadata_keys_begin() and metadata_keys_end() methods to
17985           Database, to allow the complete list of metadata in a database to
17986           be retrieved.  Supports a prefix argument to obtain a limited
17987           subset of the keys, since that may be useful in some situations
17988           and is very easy to implement.  Only accesses the keys in the
17989           first database in a multidatabase situation (which corresponds
17990           with the current behaviour of get_metadata()).
17991           Also, reorder the includes in flint_database.cc to be largely
17992           alphabetical, and remove a duplicated #include of
17993           <xapian/error.h>.
17995 Mon Apr 14 06:51:48 GMT 2008  Olly Betts <olly@survex.com>
17997         * common/fileutils.cc: Use endswith().
17999 Mon Apr 14 06:14:44 GMT 2008  Olly Betts <olly@survex.com>
18001         * api/replication.cc,backends/database.cc,
18002           backends/flint/flint_database.cc,common/fileutils.cc,
18003           tests/queryparsertest.cc: Use empty() rather than comparing size()
18004           to 0.  Use startswith() in a couple of places.  Tweak an Assert
18005           to AssertEq.
18007 Sun Apr 13 14:30:55 GMT 2008  Olly Betts <olly@survex.com>
18009         * api/omdatabase.cc: Replace uses of DEBUGLINE(SPELLING, ...) in
18010           Database::get_spelling_suggestion() with standard
18011           DEBUGAPICALL/RETURN tracing.  Add DEBUGAPICALL/RETURN tracing to
18012           a few Database methods which were missing it.
18014 Sun Apr 13 14:15:00 GMT 2008  Olly Betts <olly@survex.com>
18016         * backends/flint/flint_cursor.cc: Use RETURN() in a few places which
18017           weren't.
18019 Sun Apr 13 13:59:57 GMT 2008  Olly Betts <olly@survex.com>
18021         * backends/inmemory/inmemory_database.cc: Remove long-time commented
18022           out uses of DebugMsg.
18024 Sun Apr 13 13:52:32 GMT 2008  Olly Betts <olly@survex.com>
18026         * expand/expandweight.cc: Use DEBUGLINE() instead of DEBUGMSG().
18028 Sun Apr 13 11:23:56 GMT 2008  Olly Betts <olly@survex.com>
18030         * backends/flint/flint_database.cc: Include corresponding header right
18031           after config.h.
18033 Sun Apr 13 10:28:27 GMT 2008  Olly Betts <olly@survex.com>
18035         * backends/flint/flint_database.cc: Tweak brace formatting and wrap a
18036           comment.
18038 Fri Apr 11 16:18:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18040         * common/fileutils.cc: Fix typo in windows specific code.
18042 Fri Apr 11 12:44:25 GMT 2008  Olly Betts <olly@survex.com>
18044         * backends/flint/flint_cursor.cc: Include corresponding header right
18045           after config.h.
18047 Fri Apr 11 10:25:03 GMT 2008  Olly Betts <olly@survex.com>
18049         * backends/flint/flint_cursor.h: Fix filename in header comment.
18051 Fri Apr 11 04:49:03 GMT 2008  Olly Betts <olly@survex.com>
18053         * configure.ac,tests/submitperftest.in,tests/submitperftest.py.in:
18054           Rename submitperftest.py to submitperftest.
18055         * HACKING: Document that scripts shouldn't generally have an
18056           extension, and the reason for this policy.
18058 Fri Apr 11 04:32:15 2008  Olly Betts <olly@survex.com>
18060         * HACKING: Note that GCC 4.3 no longer supports pre-ISO forms of
18061           standard headers, such as <list.h>.  GCC on Solaris now seems
18062           to support throwing exceptions across shared library boundaries.
18064 Fri Apr 11 03:24:47 GMT 2008  Olly Betts <olly@survex.com>
18066         * tests/Makefile.am: "make up" in tests now does "make" in the
18067           top-level.
18069 Thu Apr 10 08:33:06 GMT 2008  Olly Betts <olly@survex.com>
18071         * backends/flint/flint_postlist.cc: Fix debug logging message: ostList
18072           -> FlintPostList.
18074 Thu Apr 10 05:47:37 GMT 2008  Olly Betts <olly@survex.com>
18076         * net/remoteconnection.cc: Remove erroneous FIXME comments talking
18077           about ReadFile() not updating WSAOVERLAPPED's Offset/OffsetHigh
18078           being a problem with using _get_osfhandle() - ReadFile is documented
18079           to behave this way on MSDN.  Factor out update of Offset/OffsetHigh
18080           and tweak this code not to rely on off_t being 64 bits.
18082 Thu Apr 10 05:24:11 GMT 2008  Olly Betts <olly@survex.com>
18084         * backends/flint/flint_record.cc,backends/flint/flint_utils.h: Use
18085           the new STATIC_ASSERT family of macros instead of CASSERT and
18086           CASSERT_TYPE_UNSIGNED.
18088 Thu Apr 10 04:46:40 GMT 2008  Olly Betts <olly@survex.com>
18090         * common/omassert.h: Add "compile-time assertion" macros:
18091           STATIC_ASSERT(COND), STATIC_ASSERT_UNSIGNED_TYPE(TYPE),
18092           STATIC_ASSERT_TYPE_DOMINATES(TYPE1, TYPE2).
18093         * tests/internaltest.cc: Test these.
18095 Thu Apr 10 01:07:34 GMT 2008  Olly Betts <olly@survex.com>
18097         * common/remoteprotocol.h,net/remoteserver.cc: Clean up a couple more
18098           things now we've moved to major protocol version 31.
18100 Wed Apr 09 06:50:44 GMT 2008  Olly Betts <olly@survex.com>
18102         * backends/remote/remote-database.cc: Add missing explicit include of
18103           remote-database.h.
18105 Wed Apr 09 04:48:54 GMT 2008  Olly Betts <olly@survex.com>
18107         * bin/xapian-check.cc,bin/xapian-compact.cc: Fix check for user
18108           metadata key to not match other key types we may add in the future.
18109           When compacting, we can't assume how we should handle them.  When
18110           checking, they currently shouldn't be present, so we should flag
18111           an error for them.
18113 Tue Apr 08 15:27:09 GMT 2008  Olly Betts <olly@survex.com>
18115         * NEWS: Fix missing line in old entry.
18117 Mon Apr 07 07:49:56 GMT 2008  Olly Betts <olly@survex.com>
18119         * backends/flint/flint_btreeutil.h: Use AssertRel rather than Assert.
18121 Mon Apr 07 06:20:42 GMT 2008  Olly Betts <olly@survex.com>
18123         * api/error.cc,api/valuerangeproc.cc,backends/flint/flint_table.cc,
18124           backends/multi/multi_postlist.cc,backends/remote/net_termlist.cc,
18125           bin/xapian-inspect.cc,common/omdebug.cc,common/utils.cc,
18126           languages/stem.cc,languages/steminternal.cc,
18127           tests/harness/backendmanager_multi.cc,
18128           tests/harness/backendmanager_remotetcp.cc: Header inclusions tidying
18129           - remove a few redundant inclusions; prefer cstdio to stdio.h, etc
18130           in a few places; note why certain headers are required in cases
18131           where it's less obvious; in a .cc file, include the corresponding .h
18132           second (after <config.h>).
18134 Mon Apr 07 04:23:30 GMT 2008  Olly Betts <olly@survex.com>
18136         * configure.ac: Fix --enable-log=profile to be recognised.
18137         * common/omdebug.cc,common/omdebug.h: Fix build with
18138           --enable-log=profile.
18139         * HACKING: Actually document --enable-log=profile.
18141 Sat Apr 05 21:07:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18143         * tests/perftest.cc: Flush after each write, so we can monitor
18144           progress of long running tests (we might need to remove this
18145           again later, if profiling shows it has a noticeable impact).  Fix
18146           two calls to write() to be a single call.
18147         * tests/perftest_randomidx.cc: Add values to different slots; I'd
18148           added them all to slot 0 by mistake, so they were overwriting
18149           each other.
18151 Sat Apr 05 20:17:43 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18153         * tests/Makefile.am,tests/perftest_randomidx.cc: Add a new
18154           performance test which builds a randomly generated index, and
18155           times the index run.  Probably wants a bit more tweaking to make
18156           it slightly more representative, but should be a useful test to
18157           run on systems where downloading a large amount of data is
18158           impractical.
18159         * ChangeLog: Add missing log message for last commit.
18161 Sat Apr 05 20:16:58 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18163         * tests/perftest.cc,tests/perftest.h: Log indexing runs every 5
18164           seconds, as well as after every 1000 documents - gives useful
18165           information for slow index runs.
18167 Thu Apr 03 20:58:31 GMT 2008  Olly Betts <olly@survex.com>
18169         * backends/database.cc,include/xapian/dbfactory.h,
18170           include/xapian/version_h.cc: Remove lingering traces of quartz.
18172 Thu Apr 03 07:59:53 GMT 2008  Olly Betts <olly@survex.com>
18174         * bin/xapian-inspect.cc: Print top-bit-set characters as escaped
18175           hex forms as they often won't be valid UTF-8 sequences.
18177 Thu Apr 03 03:53:37 GMT 2008  Olly Betts <olly@survex.com>
18179         * bin/xapian-inspect.cc: Check for the user passing a database
18180           directory and issue a special error message since this is an obvious
18181           mistake to make.
18183 Wed Apr 02 07:00:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18185         * matcher/multimatch.cc: Modify the estimate for the number of hits
18186           based on the rate at which a match decider has been denying
18187           documents.  Also, reduce the upper bound based on the number of
18188           documents denied.
18189         * tests/api_db.cc: Check that the upper bound when a match decider
18190           is used is within the valid range, rather than a particular
18191           value.
18193 Tue Apr 01 22:40:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18195         * configure.ac,tests/perftest.cc,tests/submitperftest.py.in,
18196           tests/urllib2_file.py: Fix display of upper bound on number of
18197           results of search (was showing lower bound).  Fix display of
18198           closing <repetition> tags.  Add script to submit the results of a
18199           performance test to a central server.
18201 Tue Apr 01 11:19:58 GMT 2008  Olly Betts <olly@survex.com>
18203         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
18204           Gently rearrange where and how we check for overlong keys.
18205         * tests/api_wrdb.cc: Extend termtoolong1 to test that the "term too
18206           long" exception messages contain the length correctly.
18208 Tue Apr 01 06:06:43 GMT 2008  Olly Betts <olly@survex.com>
18210         * AUTHORS,HACKING,INSTALL,README,debian/control.in,debian/copyright,
18211           docs/install.html,xapian-core.spec.in: Standardise URLs on our
18212           website to be xapian.org not www.xapian.org.
18214 Tue Apr 01 03:44:32 GMT 2008  Olly Betts <olly@survex.com>
18216         * backends/flint/flint_record.cc,backends/flint/flint_values.cc,
18217           common/,docs/quickstartexpand.cc.html,docs/quickstartindex.cc.html,
18218           docs/quickstartsearch.cc.html,matcher/: Update the FSF address for
18219           the small number of files which still have the old one.  Remove the
18220           "START_LICENCE" and "END_LICENCE" markers from the small number of
18221           files which still have them.
18223 Tue Apr 01 02:23:27 GMT 2008  Olly Betts <olly@survex.com>
18225         * backends/remote/remote-database.cc,common/remoteprotocol.h,
18226           common/remoteserver.h,common/serialise.h,docs/remote_protocol.html,
18227           net/remoteserver.cc,net/serialise.cc: Update remote protocol to
18228           a new major version (31) and strip out all the gunk that's only
18229           there to keep it compatible with older version 30 clients.
18231 Tue Apr 01 00:12:38 GMT 2008  Olly Betts <olly@survex.com>
18233         * api/ompostlistiterator.cc,include/xapian/postingiterator.h: Remove
18234           the method Xapian::PostingIterator::get_weight() which has been
18235           commented out almost forever.  Weight-handling isn't really
18236           appropriate here.
18237         * api/ompostlistiterator.cc: Remove "\todo" since it's already done!
18239 Mon Mar 31 13:24:11 GMT 2008  Olly Betts <olly@survex.com>
18241         * backends/flint/: Remove unnecessary default dtors.
18243 Mon Mar 31 13:21:55 GMT 2008  Olly Betts <olly@survex.com>
18245         * HACKING: Document to prefer "new SomeClass" to "new SomeClass()".
18246         * api/omdocument.cc,api/omenquire.cc,backends/database.cc,
18247           backends/flint/flint_database.cc,
18248           backends/inmemory/inmemory_database.cc,matcher/multimatch.cc,
18249           matcher/queryoptimiser.cc,net/remoteserver.cc: Fix instances of
18250           the latter form to use the former form.
18252 Mon Mar 31 12:11:09 GMT 2008  Olly Betts <olly@survex.com>
18254         * tests/: Update svn:ignore property for perftest changes and remove
18255           quartz-related entries.
18256         * tests/perftest.cc: Add missing '#include "utils.h"'.
18258 Mon Mar 31 09:22:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18260         * Makefile.am,tests/,tests/harness/,tests/perftest.cc,tests/perftest.h,
18261           tests/perftest_matchdecider.cc: Rework the test collation
18262           mechanism slightly to allow it to be used by other testsuites:
18263           rename collate-apitest to collate-test, and add a parameter to it
18264           naming the output file.  Add new "testrunner.h" and
18265           "testrunner.cc" which are an equivalent to the old mechanism in
18266           apitest for running tests with various properties; the properties
18267           for each backend are now held as member variables of a TestRunner
18268           class, and testsuites (eg, apitest) subclass this and implement a
18269           "run()" method, which will be called for each backend with the
18270           appropriate properties set.  Move definition of DEFINE_TESTCASE
18271           macro into testsuite.h.  Add new testsuite "perftest", which is
18272           intended to contain potentially time consuming performance tests,
18273           logging the results to an XML file for later analysis.  Add a
18274           simple test of the ValueSetMatchDeciders to this testsuite.
18275           "perftest" isn't run by make check, because it is likely to take
18276           some hours to complete in future - instead, there's a new
18277           top-level target "check-perf" which builds and runs perftest.
18279 Mon Mar 31 08:13:21 GMT 2008  Olly Betts <olly@survex.com>
18281         * HACKING: Recommend using the "svn-ci" script.  Update the date
18282           command which produces the correct format timestamp for ChangeLog
18283           entries.
18285 Mon Mar 31 08:00:58 GMT 2008  Olly Betts <olly@survex.com>
18287         * backends/flint/flint_btreeutil.h: Fix some out-of-date comments.
18288         * configure.ac: Use AC_CHECK_SIZEOF to define SIZEOF_INT and
18289           SIZEOF_LONG.
18290         * backends/flint/flint_types.h: Use SIZEOF_INT and SIZEOF_LONG to
18291           determine the type of uint4 rather than always using unsigned long
18292           (which is 64 bits on most 64 bit Unix platforms).  Drop int4 for
18293           the time being, as we don't actually use it.
18295 Mon Mar 31 06:34:20 GMT 2008  Olly Betts <olly@survex.com>
18297         * backends/flint/flint_positionlist.cc: Refactor BitWriter::encode()
18298           to have a single call to write_bits(), and don't include it inline
18299           in the class as it's really a bit big to inline (and write_bits()
18300           should now be inlined into it, or at least tail-called).
18302 Mon Mar 31 05:33:02 GMT 2008  Olly Betts <olly@survex.com>
18304         * backends/flint/flint_positionlist.cc: Reorder header includes to
18305           match our new standard more closely.  Indent class definitions to
18306           match our coding standards.
18308 Mon Mar 31 05:31:59 GMT 2008  Olly Betts <olly@survex.com>
18310         * backends/flint/flint_positionlist.h: Remove unnecessary default
18311           dtor.
18313 Mon Mar 31 04:55:59 GMT 2008  Olly Betts <olly@survex.com>
18315         * backends/remote/net_document.cc,backends/remote/net_document.h:
18316           Rename "doc" member to "data" since it actually holds the document
18317           data.
18319 Mon Mar 31 03:25:21 GMT 2008  Olly Betts <olly@survex.com>
18321         * backends/flint/flint_document.cc,backends/flint/flint_document.h:
18322           Remove unnecessary default dtor.
18324 Mon Mar 31 02:53:48 GMT 2008  Olly Betts <olly@survex.com>
18326         * backends/inmemory/inmemory_alltermslist.cc,
18327           backends/inmemory/inmemory_alltermslist.h: Remove unnecessary
18328           default dtor.
18329         * backends/inmemory/inmemory_alltermslist.h: Fix bogus cut-and-pasted
18330           doxygen comment for ctor.
18332 Mon Mar 31 02:33:15 GMT 2008  Olly Betts <olly@survex.com>
18334         * common/inmemory_positionlist.h: Remove unnecessary default
18335           destructor.  Fix comment type ("inemory" -> "inmemory").
18337 Sun Mar 30 12:47:50 GMT 2008  Olly Betts <olly@survex.com>
18339         * include/xapian/queryparser.h: Drop explicit dtor for SimpleStopper
18340           which does nothing.
18342 Sun Mar 30 12:12:12 GMT 2008  Olly Betts <olly@survex.com>
18344         * include/xapian/valuesetmatchdecider.h: Don't bother checking if an
18345           element is present before calling std::set::erase().  Don't bother
18346           defining an explicit dtor which does nothing.
18348 Sat Mar 29 00:46:13 GMT 2008  Olly Betts <olly@survex.com>
18350         * tests/api_db.cc: Test matchfunctor bounds in combination with
18351           collapsing and percentage cutoff.  Also, range check
18352           get_matches_estimated rather than checking it's exactly the value
18353           currently returned.
18355 Fri Mar 28 21:37:27 GMT 2008  Olly Betts <olly@survex.com>
18357         * tests/api_nodb.cc: Test ValueSetMatchDecider::remove_value() for a
18358           value which isn't in the set.  Test that removing a value doesn't
18359           affect other values in the set.
18361 Fri Mar 28 21:03:30 GMT 2008  Olly Betts <olly@survex.com>
18363         * matcher/multimatch.cc: Avoid needless call to pl->get_termfreq_est()
18364           if we're using a matchdecider or matchspy.
18366 Fri Mar 28 10:28:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18368         * matcher/multimatch.cc: Set matches_lower_bound to 0 before
18369           starting the match process if there is a match decider or spy;
18370           previously, the lower_bound wasn't being reduced in the presence
18371           of a match decider unless all the potential results were
18372           retrieved.
18373         * tests/api_db.cc: Extend matchfunctor1 to check the bounds and
18374           estimates returned; includes a regression test for the above.
18376 Fri Mar 28 09:09:54 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18378         * tests/api_nodb.cc: Extend tests to check ValueSetMatchDecider
18379           remove_value and also ValueSetMatchDeciders holding more than one
18380           value.
18382 Fri Mar 28 02:41:45 GMT 2008  Olly Betts <olly@survex.com>
18384         * configure.ac: Update version info to match 1.0.6.
18386 Fri Mar 28 00:12:48 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18388         * api/omenquire.cc,include/xapian/enquire.h: Merge two of the
18389           get_mset() variants into one, with default arguments, which has
18390           exactly the same effect.  We added the two variants to preserve
18391           ABI compatibility, and now we're branched for 1.1 this is no
18392           longer necessary.
18394 Thu Mar 27 23:54:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18396         * api/valuesetmatchdecider.cc,include/xapian.h,
18397           include/xapian/valuesetmatchdecider.h: Add ValueSetMatchDecider,
18398           which is a matchdecider which is intended to be passed a set of
18399           values to look for in documents, and selects documents based on
18400           the presence of those values.
18401         * tests/api_db.cc,tests/api_nodb.cc: Add tests for the
18402           ValueSetMatchDecider - both for calling it standalone, and when
18403           passed to get_mset().
18404         * api/Makefile.mk,include/Makefile.mk: Tell build system about new
18405           files.
18407 Thu Mar 27 06:18:52 GMT 2008  Olly Betts <olly@survex.com>
18409         * api/omqueryinternal.cc: Initialise term_pos in previous change to
18410           fix valgrind-detected error.
18412 Thu Mar 27 06:13:01 GMT 2008  Olly Betts <olly@survex.com>
18414         * api/omqueryinternal.cc: Optimise Query(OP_VALUE_GE, <n>, "") to
18415           Query::MatchAll.
18416         * tests/api_nodb.cc: Add testcase for this case.
18418 Thu Mar 27 04:34:40 GMT 2008  Olly Betts <olly@survex.com>
18420         * backends/inmemory/inmemory_document.cc,
18421           backends/inmemory/inmemory_document.h: Rename "doc" member to
18422           "data" since it actually holds the document data.
18423         * backends/inmemory/inmemory_database.cc: Remove unused <stdio.h>.
18424           Include "inmemory_database.h" right after <config.h>.
18426 Wed Mar 26 23:44:03 GMT 2008  Olly Betts <olly@survex.com>
18428         * api/omenquire.cc: Throw InvalidArgumentError upon
18429           RSet::add_document(0).
18430         * tests/api_nodb.cc: Add regression test for this.
18431         * matcher/rset.cc: Add assertion that we don't see a zero docid when
18432           calculating rtermfreqs.
18433         * api/omdocument.cc: Use RETURN not return so debug logging sees the
18434           return value.
18435         * backends/inmemory/inmemory_database.cc,
18436           backends/remote/remote-database.cc: Change exception throwing for
18437           a zero docid to assertions since zero docids should be checked for
18438           before we get to here.
18440 Wed Mar 26 06:17:51 GMT 2008  Olly Betts <olly@survex.com>
18442         * common/postlist.h: Decree that PostList::check() must be passed a
18443           docid which actually exists in the database (which is always true
18444           currently and seems unlikely to be an onerous requirement).
18445         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc: Take
18446           advantage of this new precondition to simplify the code.
18447         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc: Move the
18448           corresponding header first as our header inclusion order guidelines
18449           recommend.
18451 Thu Mar 13 01:58:18 GMT 2008  Olly Betts <olly@survex.com>
18453         * common/stats.h,include/xapian/enquire.h,matcher/localmatch.cc,
18454           matcher/weight.cc: Untangle Xapian::Weight to just initialise
18455           internal to 0 in its ctor, which is an ABI change.  Resolves
18456           a load of FIXME:1.1 comments.
18458 Thu Mar 13 00:50:06 GMT 2008  Olly Betts <olly@survex.com>
18460         * backends/flint/flint_lock.cc: Remove workaround for newlib which we
18461           don't seem to need elsewhere and was marked "FIXME:1.1".
18463 Thu Mar 13 00:49:27 GMT 2008  Olly Betts <olly@survex.com>
18465         * docs/deprecation.rst: Fix footnote ids after deprecation updates.
18467 Wed Mar 12 10:08:37 GMT 2008  Olly Betts <olly@survex.com>
18469         * tests/stemtest.cc: Remove support for OM_STEMTEST_SKIP_RANDOM,
18470           OM_STEMTEST_LANGUAGES, and OM_STEMTEST_SEED.
18472 Wed Mar 12 08:30:48 GMT 2008  Olly Betts <olly@survex.com>
18474         * docs/deprecation.rst: Update for bindings removals for 1.1.0.
18476 Wed Mar 12 06:59:25 GMT 2008  Olly Betts <olly@survex.com>
18478         * docs/deprecation.rst: Update for Omega removals for 1.1.0.
18480 Wed Mar 12 05:11:53 GMT 2008  Olly Betts <olly@survex.com>
18482         * api/omenquire.cc,api/omquery.cc,api/version.cc,docs/,
18483           generate-exceptions.in,include/xapian.h,include/xapian/enquire.h,
18484           include/xapian/query.h,tests/api_db.cc,tests/api_wrdb.cc,
18485           tests/apitest.cc,tests/harness/,tests/internaltest.cc: Remove all
18486           xapian-core features marked for removal in 1.1.0.
18488 Wed Mar 12 03:28:18 GMT 2008  Olly Betts <olly@survex.com>
18490         * HACKING,INSTALL,Makefile.am,backends/Makefile.mk,
18491           backends/dir_contents,backends/quartz/,bin/,configure.ac,docs/,
18492           tests/,tests/harness/,tests/quartztest.cc,tests/testdata/,
18493           xapian-core.spec.in: Remove the quartz backend.
18495 Wed Mar 12 02:14:33 GMT 2008  Olly Betts <olly@survex.com>
18497         * m4/xapian.m4: Improve wording of the error message when we can't
18498           find xapian-config.
18500 Wed Mar 12 02:13:32 GMT 2008  Olly Betts <olly@survex.com>
18502         * INSTALL: Minor wording tweak.
18504 Wed Mar 12 01:44:42 GMT 2008  Olly Betts <olly@survex.com>
18506         * bin/xapian-compact.cc: Initialise PostlistCursor member firstdid to
18507           avoid using it uninitialised when merging user metadata and the same
18508           key is present in more than one source database.  If the same user
18509           metadata key is present in more than one source database, copy an
18510           arbitrary tag value.
18512 Wed Mar 12 00:34:04 GMT 2008  Olly Betts <olly@survex.com>
18514         * bin/xapian-compact.cc: Fix potential SEGV (which I think can occur
18515           when compacting database(s) with user metadata but no postings).
18517 Fri Mar 07 09:46:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18519         * common/serialise.h: Add missing std:: before string.
18521 Fri Mar 07 00:47:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18523         * api/replication.cc: Tidy up a line which was wider than 80
18524           columns, and improve the error message returned when a database
18525           replica doesn't contain exactly one subdatabase.
18527 Fri Mar 07 00:34:28 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18529         * common/serialise.h,net/remoteconnection.cc,net/serialise.cc:
18530           Change encode_length() to a template, to allow the full range of
18531           off_t values to be encoded.  Also, adjust
18532           RemoteConnection::get_message_chunked() to allow the message
18533           length to be a 64 bit quantity.  Also, make a couple of type
18534           conversions to size_t explicit, to remove some warnings on
18535           windows.
18537 Thu Mar 06 01:57:04 GMT 2008  Olly Betts <olly@survex.com>
18539         * NEWS: Update from ChangeLog.
18541 Thu Mar 06 01:44:07 GMT 2008  Olly Betts <olly@survex.com>
18543         * bin/xapian-check.cc: Fix terminology - "user metadata" not "user
18544           metainfo".  Fix bug - need to invoke is_user_metadata rather than
18545           using the function pointer as the if condition!
18547 Thu Mar 06 01:41:09 GMT 2008  Olly Betts <olly@survex.com>
18549         * bin/xapian-compact.cc: Fix terminology - "user metadata" not "user
18550           metainfo".
18552 Wed Mar 05 21:17:02 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18554         * net/remoteconnection.cc: Add some casts (in the windows-specific
18555           code) to fix some warnings from MSVC.
18557 Wed Mar 05 19:01:35 GMT 2008  Olly Betts <olly@survex.com>
18559         * NEWS: Update to 1.0 branch point.
18561 Wed Mar 05 19:00:07 GMT 2008  Olly Betts <olly@survex.com>
18563         * common/msvc_dirent.cc: Tweak to bring comment back into 80 columns.
18565 Wed Mar 05 16:35:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18567         * common/msvc_dirent.cc: Fix sense of check for ENOENT after
18568           calling _findnext() - it should be checked for when an error code
18569           is returned, not when the call succeeds.
18570         * tests/api_replicate.cc: Fix tiny capitalisation typo.
18572 Wed Mar 05 16:29:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18574         * common/fileutils.cc: Check case where a backslash isn't found in
18575           calc_dirname, and don't replace slash with backslash in this
18576           case.
18578 Wed Mar 05 09:30:42 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18580         * bin/xapian-check.cc: Add understanding of user metainfo keys in
18581           the postlist table.  Allow the METAINFO key to be absent if the
18582           table only contains user metainfo keys.
18584 Wed Mar 05 09:01:48 GMT 2008  Olly Betts <olly@survex.com>
18586         * common/msvc_dirent.cc,common/msvc_dirent.h: Move licence boilerplate
18587           up front where we have it in every other file.  Move header guards
18588           to the usual location.  Detail the fix we've made for not setting
18589           errno to ENOENT erroneously.  Push the setting of orig_errno down
18590           a bit.
18592 Wed Mar 05 04:57:44 GMT 2008  Olly Betts <olly@survex.com>
18594         * configure.ac: -pedantic isn't actually very useful so just drop it
18595           rather than testing for known problem cases and risking unknown
18596           problem cases.
18598 Wed Mar 05 03:10:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18600         * matcher/valuegepostlist.cc,matcher/valuegepostlist.h: Implement
18601           skip_to method for ValueGePostList.  Previously, the
18602           ValueRangePostList::skip_to method was used, which would
18603           return incorrect documents.
18605 Wed Mar 05 02:54:27 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18607         * common/fileutils.cc: Search for \ instead of / when looking for a
18608           backslash!
18610 Wed Mar 05 02:51:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18612         * common/fileutils.cc: Fix incorrect docstring.
18614 Tue Mar 04 18:48:25 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18616         * common/msvc_dirent.cc: Fix readdir() so that it doesn't change
18617           errno to ENOENT on reaching the end of the directory, as
18618           specified by POSIX.
18620 Tue Mar 04 17:54:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18622         * net/remoteconnection.cc: Fix for a problem with windows.  Because
18623           we're using mixed styles of windows file IO, if a file descriptor
18624           which actually corresponds to a file was supplied to remote
18625           connection, the file pointer wasn't being adjusted after each
18626           call to ReadFile or WriteFile.  This manifested in the test case
18627           for replication, resulting in a (corrupt) 2048 byte changeset
18628           file being written (instead of a considerably longer changeset).
18629           To work around this, we explicitly move the file pointer
18630           ourselves.
18632 Tue Mar 04 17:41:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18634         * tests/api_replicate.cc: Close the replica before removing the
18635           temporary directory, to allow the rmdir to work on windows.
18637 Thu Feb 28 16:41:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18639         * common/remoteconnection.h: Include safeunistd.h, to get correct
18640           typedef for off_t on windows - previously, the size of the
18641           RemoteConnection class was varying depending on the order in
18642           which header files were included, resulting in memory corruption.
18643         * net/remoteserver.cc: Remove incorrect comment about what the
18644           problem was.
18646 Sat Feb 23 23:40:56 GMT 2008  Olly Betts <olly@survex.com>
18648         * xapian-config.in: Use globbing rather than iterating over the output
18649           of ls.
18651 Sat Feb 23 23:33:39 GMT 2008  Olly Betts <olly@survex.com>
18653         * xapian-config.in: Fix not to repeated headers in --swigheaders in a
18654           non-VPATH build.
18656 Fri Feb 22 17:20:19 GMT 2008  Olly Betts <olly@survex.com>
18658         * HACKING: Add note about preferring std::string().
18660 Fri Feb 22 17:05:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18662         * net/remoteserver.cc: Use std::string() instead of
18663           std::string(""), since it's a bit cleaner.
18665 Fri Feb 22 16:50:32 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18667         * net/remoteserver.cc: Add workaround for bug in MSVC 2005.
18669 Fri Feb 22 14:39:03 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18671         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
18672           backends/quartz/btree.cc: Use msvc_posix_rename() instead of
18673           rename() when renaming base files, so that an error isn't
18674           returned if the destination already exists.
18676 Thu Feb 21 17:24:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18678         * common/msvc_dirent.cc: Include msvc_dirent.h instead of dirent.h
18680 Thu Feb 21 17:09:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18682         * common/database.h: ReplicationInfo is a struct, not a class, so
18683           forward declare it as such.
18685 Thu Feb 21 12:16:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18687         * common/Makefile.mk: Add common/safedirent.h to distribution.
18689 Thu Feb 21 00:25:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18691         * xapian-config.in: Add swigheaders option, listing the header
18692           files used by swig, so that we can add the appropriate
18693           dependencies to the makefiles in the bindings.
18695 Wed Feb 20 20:59:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18697         * include/xapian/replication.h: Add a ReplicationInfo structure,
18698           and use it to return information about what has been done when
18699           the replication methods are called.
18700         * api/replication.cc,backends/database.cc,
18701           backends/flint/flint_database.cc,backends/flint/flint_database.h,
18702           common/database.h,common/replicatetcpclient.h,
18703           common/replicatetcpserver.h,net/replicatetcpclient.cc,
18704           net/replicatetcpserver.cc: Populate a ReplicationInfo structure
18705           when updating a replica, or sending changes to a file descriptor.
18706           Also, fix a bug with reading the replication parameters from a
18707           file, which caused a full database copy to be performed on every
18708           replication request on a newly opened DatabaseReplica object.
18709         * bin/xapian-replicate.cc: When doing verbose logging, display the
18710           number of database copies and changesets applied, and whether the
18711           live database has been updated.
18712         * tests/api_replicate.cc: Check that the information returned by
18713           the replication methods is as is should be, and add a regression
18714           test for always copying the database.
18716 Wed Feb 20 11:20:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18718         * backends/flint/: Improve reporting of failures to obtain lock due
18719           to unexpected errors - the error messages included in the
18720           exceptions raised are now more verbose in many situations.  Also,
18721           if the lock can't be obtained when a database is being created,
18722           report the lock failure, not a DatabaseOpeningError - it's more
18723           useful to know that the lock attempt failed than that the
18724           database wasn't present before the attempt to create it.
18726 Tue Feb 19 11:58:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18728         * bin/xapian-compact.cc: Fix compaction for database which contain
18729           user metadata keys.
18731 Sat Feb 16 19:53:44 GMT 2008  Olly Betts <olly@survex.com>
18733         * include/xapian/queryparser.h: Fix incorrect example in doccomment.
18735 Sat Feb 16 14:46:08 GMT 2008  Olly Betts <olly@survex.com>
18737         * AUTHORS: Add Matthew Somerville for Search::Xapian patches.
18739 Tue Feb 12 16:34:52 GMT 2008  Olly Betts <olly@survex.com>
18741         * docs/quickstart.html: Remove information covered by INSTALL since
18742           there's no good reason to repeat it and two copies just risks one
18743           getting out of date (as has happened here!)
18745 Tue Feb 12 16:27:30 GMT 2008  Olly Betts <olly@survex.com>
18747         * AUTHORS: Add David Spencer for reporting bug#237.
18749 Tue Feb 12 16:25:00 GMT 2008  Olly Betts <olly@survex.com>
18751         * docs/quickstart.html: Fix very out of date reference to MSet::items
18752           (bug#237).
18754 Tue Feb 12 12:40:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18756         * bin/xapian-compact.cc: Fix incorrect parameters passed to
18757           FlintTable constructor.
18759 Sat Feb 09 11:56:40 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18761         * common/socket_utils.h,net/remoteconnection.cc: More fixes for
18762           windows.
18764 Sat Feb 09 11:31:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18766         * common/msvc_dirent.cc,common/msvc_dirent.h: Hopefully this is a
18767           better implementation of dirent functions.
18769 Sat Feb 09 10:59:50 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18771         * common/: Add implementation of dirent.h for use with MSVC; this
18772           is copied from the mingw implementation, which has been placed in
18773           the public domain.  Add "safedirent.h" header for easy inclusion
18774           of this implementation.
18776 Sat Feb 09 10:43:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18778         * tests/api_replicate.cc: Use _putenv instead of setenv on windows.
18780 Sat Feb 09 09:56:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18782         * common/socket_utils.cc,common/socket_utils.h: More fixes for
18783           windows.
18785 Fri Feb 08 16:40:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18787         * common/Makefile.mk,common/socket_utils.cc,common/socket_utils.h,
18788           net/remoteconnection.cc,net/tcpclient.cc: Move windows-specific
18789           socket handling code from remoteconnection.cc into a separate
18790           file, provides the inline close_fd_or_socket for unix in the
18791           header file.  Use this in tcpclient.cc instead of close to close
18792           sockets correctly on windows.
18794 Fri Feb 08 16:40:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18796         * common/fileutils.cc,common/replicatetcpclient.h: Correct typos in
18797           windows only sections of code.
18799 Fri Feb 08 15:29:28 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18801         * net/remoteconnection.cc: Fixes for windows - always include
18802           "safesysselect.h", and include <io.h> on windows.
18803           Also, remove definition of an unused variable (probably due to a
18804           copy and paste error).
18806 Wed Feb 06 13:45:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18808         * bin/xapian-replicate.cc: Include "safeunistd.h" - needed for
18809           sleep, if nothing else.
18811 Tue Feb 05 18:10:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18813         * configure.ac: Set -pedantic in CXXFLAGS not AM_CXXFLAGS when
18814           testing for problem with it - AM_CXXFLAGS is an automake thing,
18815           and isn't used by the autoconf test.
18817 Tue Feb 05 17:50:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18819         * configure.ac: Cleaner patch for the test of compilation with
18820           -pedantic - cache the result using AC_CACHE_VAL().
18822 Tue Feb 05 17:32:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18824         * configure.ac: Check whether compilation of a cast of INFINITY to
18825           a double, and comparison with HUGE_VAL, causes a problem if
18826           -pedantic is specified (which it does on at least some Mac OSX
18827           versions).  If so, don't use the -pedantic compiler flag.
18829 Tue Feb 05 09:24:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18831         * backends/flint/flint_cursor.cc,backends/flint/flint_database.cc,
18832           backends/quartz/bcursor.cc: More fixes for debug logging - rename
18833           the "hex_encode" functions used for logging to
18834           "hex_display_encode" to avoid name clash.  Fix return type
18835           declared in flint_database.cc's DEBUGCALL macro.
18837 Tue Feb 05 09:18:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18839         * api/replication.cc: Fix for logging compiles: don't check return
18840           value of a void function.
18842 Tue Feb 05 09:14:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18844         * api/replication.cc: Reopen database after replication, to fix bug
18845           with applying a chain of changesets.
18846         * backends/flint/flint_database.cc: Don't use O_TRUNC (or O_CREAT)
18847           when modifying the DB files!
18848         * tests/api_replicate.cc: Don't call function from inside
18849           TEST_EQUAL, because that's a macro and the function will be
18850           double-evaluated.
18852 Tue Feb 05 02:07:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18854         * api/replication.cc,backends/database.cc,backends/flint/,
18855           common/database.h: Many fixes to the replication code.  Now
18856           parses replication changesets correctly and applies them to the
18857           databases.  Also, correct one bug with the generation of
18858           changesets.
18859         * docs/replication.rst,docs/replication_protocol.rst: Update.
18860         * tests/api_replicate.cc: Add test of two changesets being applied
18861           at once.
18863 Sun Feb 03 13:31:10 GMT 2008  Olly Betts <olly@survex.com>
18865         * backends/quartz/btree.cc: Backport atomic base update fix from
18866           flint.
18868 Sat Feb 02 22:47:56 GMT 2008  Olly Betts <olly@survex.com>
18870         * AUTHORS: Add Thomas Viehmann.
18872 Sat Feb 02 03:39:33 GMT 2008  Olly Betts <olly@survex.com>
18874         * backends/flint/flint_table.cc: Update the base files atomically to
18875           avoid problems with reading processes finding partially written
18876           ones.
18878 Sat Feb 02 03:38:00 GMT 2008  Olly Betts <olly@survex.com>
18880         * api/replication.cc: Don't leak the RemoteConnection object.
18882 Fri Feb 01 23:15:38 GMT 2008  Olly Betts <olly@survex.com>
18884         * backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h:
18885           Fix assorted comment errors.
18887 Fri Feb 01 20:20:23 GMT 2008  Olly Betts <olly@survex.com>
18889         * bin/xapian-replicate.cc: Fix comment.
18891 Fri Feb 01 20:13:23 GMT 2008  Olly Betts <olly@survex.com>
18893         * bin/xapian-replicate.cc: Document the default interval in --help.
18895 Fri Feb 01 20:05:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18897         * bin/xapian-replicate.cc: Remove the "return 0;" I added at the
18898           end of the function - I didn't realise this, but in C++ it's not
18899           necessary to have a return at the end of main().  Tidier without
18900           it, so it's gone.
18902 Fri Feb 01 19:44:05 GMT 2008  Olly Betts <olly@survex.com>
18904         * include/xapian/unicode.h: Add Unicode::toupper() to complement
18905           Unicode::tolower().
18906         * tests/api_unicode.cc: Add caseconvert1 testcase to test
18907           Unicode::tolower() and Unicode::toupper().
18909 Fri Feb 01 19:36:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18911         * bin/xapian-replicate.cc: Add one-shot and verbose options to
18912           replication client.
18914 Fri Feb 01 17:52:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18916         * api/replication.cc,backends/flint/flint_database.cc,
18917           include/xapian/replication.h,net/replicatetcpclient.cc,
18918           tests/api_replicate.cc: Keep the RemoteConnection in the
18919           DatabaseReplica object, so that any data which is read ahead
18920           doesn't get lost.  If an error occurs opening the database on
18921           the server, send a FAIL message over the connection, rather than
18922           just shutting it.
18924 Fri Feb 01 16:51:05 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18926         * backends/flint/flint_table.cc: Fix a database corruption bug: see
18927           bugzilla entry #232.  Was caused by lazy tables not being created
18928           at the right revision.
18929         * tests/api_wrdb.cc: Regression test for bug.
18931 Fri Feb 01 15:10:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18933         * api/replication.cc,backends/database.cc,
18934           backends/flint/flint_database.cc,backends/flint/flint_database.h,
18935           common/database.h,docs/replication_protocol.rst,
18936           tests/api_replicate.cc: Add the UUID of the new database to the
18937           DB_HEADER message, and move the code which compares UUIDs out of
18938           flint_database.cc and into replication.cc.  Fix testcase which
18939           missed incorrect comparison of UUIDs.  Store the UUID of the
18940           live database which has been replicated in the config file - this
18941           isn't an ideal place, but will do until the UUID is stored in the
18942           iamflint file, and we can parse it from there.  Remove debug
18943           printfs.
18945 Fri Feb 01 15:09:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18947         * bin/quartzdump.cc: Rename hex_encode() to hex_display_encode() to
18948           avoid collision.  (The hex encoding produced by this doesn't
18949           encode spaces, so isn't quite the same as the functions just
18950           added to utils.cc).
18952 Fri Feb 01 15:08:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18954         * common/utils.cc,common/utils.h: Add utility functions to
18955           hex-encode and decode a string, so we can store UUIDs in the
18956           config file in replicated DB directories.
18958 Fri Feb 01 12:49:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18960         * tests/harness/backendmanager_multi.cc: Make the multi
18961           backendmanager use relative paths in its stub databases.
18963 Fri Feb 01 12:17:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18965         * common/Makefile.mk: Add replicationprotocol.h to distribution.
18967 Fri Feb 01 12:10:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18969         * backends/database.cc: Stub databases used to
18970           assume that any relative paths were relative to the current
18971           working directory.  They now assume that relative paths are
18972           relative to the directory holding the stub database file.
18973           Also, lines which begin with a '#' character are ignored, so we
18974           can place comments in the stub database files.  Also, recognise a
18975           new database type: a "stub directory", which is a directory
18976           containing a stub database file named "XAPIANDB".
18977         * api/replication.cc: Replica databases are now created as
18978           directories containing a "XAPIANDB" stub file, so all the
18979           workings are internal.
18980         * common/Makefile.mk,common/fileutils.cc,common/fileutils.h: Add
18981           new set of utilities to manipulate path names - extracting
18982           directory names, and joining paths.
18983         * tests/api_replicate.cc: Enable test properly, now that
18984           it passes.  Test needs to be expanded to check that the database
18985           copy succeeded better.
18987 Fri Feb 01 09:47:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18989         * backends/flint/flint_database.cc: Fix warning about unused
18990           variable.
18992 Fri Feb 01 03:49:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18994         * api/replication.cc,backends/database.cc,
18995           backends/flint/flint_database.cc,backends/flint/flint_database.h,
18996           common/database.h,common/replicationprotocol.h: Move replication
18997           protocol definition into a separate file.  Add (virtual) support
18998           methods for applying changesets to Database::Internal.  Sort out
18999           atomic swapping of old database for new after a database copy.
19001 Fri Feb 01 03:49:09 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19003         * tests/quartztest.cc: Rename removedir to removedir_recursive() to
19004           avoid conflict with my new function.
19006 Fri Feb 01 03:09:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19008         * docs/replication_protocol.rst: Specify (though not in much
19009           detail) what we mean by "packed" strings and integers.
19011 Fri Feb 01 03:09:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19013         * include/xapian/replication.h: Be more precise in documentation
19014           comment.
19016 Fri Feb 01 03:07:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19018         * net/remoteconnection.cc: Remove debug printfs()
19020 Fri Feb 01 03:03:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19022         * common/utils.cc,common/utils.h: Add overloaded rmdir() which
19023           works directly on C++ strings.  Add removedir() method which
19024           removes a directory and its contents (as long as the directory
19025           only contains files, not subdirectories).
19027 Fri Feb 01 01:51:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19029         * common/remoteconnection.h,net/remoteconnection.cc: Add
19030           "sniff_next_message_type" method to RemoteConnection, and replace
19031           the hardcoded "4096" size of the chunks used for the remote
19032           connection confersation with a #define.  Fix file mode when
19033           creating a file with receive_file(), and bugs with writing too
19034           much data to the file.
19036 Thu Jan 31 03:41:42 GMT 2008  Olly Betts <olly@survex.com>
19038         * bin/Makefile.mk,bin/xapian-replicate-server.cc,
19039           common/replicatetcpserver.h: Add xapian-replicate-server server
19040           program.
19042 Thu Jan 31 02:46:38 GMT 2008  Olly Betts <olly@survex.com>
19044         * bin/Makefile.mk,bin/xapian-replicate.cc,common/replicatetcpclient.h,
19045           net/replicatetcpclient.cc,net/replicatetcpserver.cc: Add
19046           xapian-replicate client program.
19048 Wed Jan 30 19:13:08 GMT 2008  Olly Betts <olly@survex.com>
19050         * include/xapian/replication.h: Correct name of parameter in doxygen
19051           comment.
19053 Wed Jan 30 15:58:44 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19055         * api/replication.cc,backends/database.cc,
19056           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19057           common/database.h: Hook up the apply_changeset function from the
19058           API through to flint.  (The flint layer currently doesn't work,
19059           though.)  Also, implement the get_uuid() function for flint, by
19060           using the mtime of the iamflint file.
19061         * tests/api_replicate.cc: Finish implementation of the "replicate"
19062           function, and add a test of a replication of a database using
19063           this.  The return value test is commented out for now, because
19064           the flint layer doesn't work, but this puts the machinery needed
19065           to test this in place.
19067 Wed Jan 30 15:10:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19069         * backends/flint/flint_database.cc: Implement sending of the whole
19070           database copy.
19072 Wed Jan 30 14:45:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19074         * tests/,tests/harness/: Add new testcase file (api_replicate.cc)
19075           to hold tests of the replication functionality.  Currently has
19076           one partially written test.  Also, add new function to apitest.h:
19077           get_named_writable_database_path(), which allows the path to a
19078           writable database to be obtained; throws an exception for those
19079           backend types for which that isn't meaningful.  Add a new
19080           variable for use in the conditions for tests: "replicas", which
19081           should be set to true for all backends which support replication.
19083 Wed Jan 30 14:42:26 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19085         * net/remoteconnection.cc: Fix the calls to fcntl() in
19086           send_message() and send_file() to use fdout instead of fdin.
19087           This has probably been stopping timeouts working very well.
19089 Tue Jan 29 15:05:09 GMT 2008  Olly Betts <olly@survex.com>
19091         * common/remoteconnection.h,net/remoteconnection.cc: Add
19092           receive_file() method.
19094 Tue Jan 29 14:37:36 GMT 2008  Olly Betts <olly@survex.com>
19096         * common/remoteconnection.h,net/remoteconnection.cc: Add the ability
19097           to read a message in chunks.
19099 Tue Jan 29 10:08:02 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19101         * include/xapian/replication.h: Expand documentation comment.
19102         * api/replication.cc,backends/database.cc,
19103           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19104           common/database.h: Add a write_changesets_to_fd() function to
19105           Database::Internal, with a default implementation to raise an
19106           UnimplementedError.  Hook
19107           DatabaseMaster::write_changesets_to_fd() up to this, and
19108           implement it for flint databases (the code to send a copy of a
19109           database still needs work).
19111 Tue Jan 29 10:01:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19113         * docs/replication_protocol.rst: Document that a FAIL message ends
19114           the conversation.
19116 Tue Jan 29 09:59:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19118         * docs/replication_protocol.rst: Document the protocol used to
19119           transfer the updates.
19121 Tue Jan 29 09:57:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19123         * net/remoteconnection.cc: Fix typo.
19125 Tue Jan 29 09:48:15 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19127         * net/remoteconnection.cc: For win32, use msvc_posix_open() to open
19128           the file descriptor, so other things can delete the file while
19129           the sending is in progress.
19131 Tue Jan 29 01:23:19 GMT 2008  Olly Betts <olly@survex.com>
19133         * net/remoteconnection.cc: Add an assertion.
19135 Tue Jan 29 01:14:07 GMT 2008  Olly Betts <olly@survex.com>
19137         * common/remoteconnection.h,net/remoteconnection.cc: Add send_file()
19138           method to RemoteConnection to allow the contents of a file to be
19139           sent as a message.
19141 Tue Jan 29 00:28:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19143         * api/replication.cc,include/xapian/replication.h: Add methods to
19144           allow parameters to be stored associated with a DatabaseReplica.
19146 Tue Jan 29 00:16:42 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19148         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
19149           Change write_changesets_to_fd() to take the revision information
19150           as a string - it now includes a UUID.  Add get_uuid() method to
19151           FlintDatabase - currently always returns "FIXME", but will
19152           eventually return an ID for the database.
19154 Mon Jan 28 19:07:20 GMT 2008  Olly Betts <olly@survex.com>
19156         * common/Makefile.mk,common/replicatetcpclient.h,net/Makefile.mk,
19157           net/replicatetcpclient.cc,net/replicatetcpserver.cc: Add
19158           ReplicateTcpClient class implementing a replication client over
19159           TCP/IP.
19161 Mon Jan 28 17:13:09 GMT 2008  Olly Betts <olly@survex.com>
19163         * common/Makefile.mk,common/replicatetcpserver.h,net/Makefile.mk,
19164           net/replicatetcpserver.cc: Add ReplicateTcpServer class implementing
19165           a replication server over TCP/IP.
19167 Mon Jan 28 17:01:02 GMT 2008  Olly Betts <olly@survex.com>
19169         * common/remoteconnection.h,net/remoteconnection.cc: Minor tweaks
19170           to allow unidirectional connections.
19172 Mon Jan 28 16:26:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19174         * api/replication.cc: Fix overly hasty commit - add
19175           get_description() method for internal class, and use that instead
19176           of trying to access a private member.
19178 Mon Jan 28 16:22:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19180         * api/replication.cc,common/output.h,include/xapian/replication.h:
19181           Add get_description() methods to DatabaseMaster and
19182           DatabaseReplica, and add XAPIAN_OUTPUT_FUNCTION methods for them
19183           so that they can be displayed in debugging methods.  Should fix
19184           build with logging enabled.
19186 Mon Jan 28 11:52:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19188         * api/replication.cc,include/xapian/replication.h: Add
19189           DatabaseReplica::close() method, to allow the write lock to be
19190           released easily.
19192 Mon Jan 28 11:21:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19194         * api/replication.cc,include/xapian/replication.h: Change
19195           DatabaseReplica into a PIMPL style class, now that it has more
19196           than one member.  Add visibility annotations to DatabaseMaster
19197           and DatabaseReplica.
19199 Mon Jan 28 10:44:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19201         * api/replication.cc,include/xapian/replication.h: Add code to swap
19202           stub database files over atomically, and to track the current
19203           real database path.
19205 Mon Jan 28 04:52:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19207         * api/replication.cc,backends/database.cc,
19208           backends/flint/flint_changesetapplier.h,
19209           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19210           common/database.h: Implement opening of the database underlying
19211           DatabaseReplica objects, and hook up the get_revision_info()
19212           method for it.
19214 Mon Jan 28 04:17:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19216         * common/utils.cc,common/utils.h: Add "dir_exists" function, to
19217           check for presence of a directory at a given path.
19219 Mon Jan 28 03:48:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19221         * backends/flint/flint_table.cc: Change a "+= 1" to ++ - this isn't
19222           Python!
19224 Mon Jan 28 03:08:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19226         * api/Makefile.mk,api/replication.cc,include/Makefile.mk,
19227           include/xapian/replication.h: Add interface to replication
19228           functionality.  (Currently just unimplemented stubs.)
19230 Mon Jan 28 02:01:02 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19232         * backends/flint/flint_btreebase.h: Add a missing std::
19234 Mon Jan 28 01:59:55 GMT 2008  Olly Betts <olly@survex.com>
19236         * common/remotetcpserver.h: Fix typo in doxygen comment: `@port' ->
19237           `@param port'.  Update comment - socket is no longer closed by
19238           handle_one_connection().
19240 Mon Jan 28 01:28:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19242         * backends/flint/: Add support for recording the changes made to a
19243           database in "changeset" files.  These are currently not produced
19244           by default - for now, the "XAPIAN_MAX_CHANGESETS" environment
19245           variable can be set to control production of them.  As part of
19246           these changes, the FlintTable constructor now takes the
19247           tablename, so that this can be stored in changesets produced from
19248           the table.
19249         * bin/xapian-check.cc,bin/xapian-compact.cc,bin/xapian-inspect.cc:
19250           Update to match changes in FlintTable constructor.
19251         * docs/Makefile.am,docs/replication.rst,docs/replication_protocol.rst:
19252           Add basic documentation of the replication protocol (though this
19253           isn't yet definitive, since the protocol isn't finished!)
19255 Sun Jan 27 21:10:24 GMT 2008  Olly Betts <olly@survex.com>
19257         * net/remotetcpserver.cc,net/tcpserver.cc: The job of closing the
19258           socket connected to the client more naturally belongs to the
19259           framework TcpServer class.
19261 Sun Jan 27 20:32:55 GMT 2008  Olly Betts <olly@survex.com>
19263         * backends/flint/flint_table.cc: Call flint_io_sync() in commit()
19264           rather than flush_db(), as that gives more time for written blocks
19265           to get written to disk before we block on waiting for them to be.
19266           This should tend to speed up WritableDatabase::flush() in I/O bound
19267           situations.
19269 Sun Jan 27 19:35:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19271         * backends/flint/flint_spelling.h,backends/flint/flint_synonym.h:
19272           Merge changes to the spelling and synonym tables just before
19273           calling FlintTable::flush_db(), rather than just before calling
19274           FlintTable::commit(), so that they don't get forgotten.
19276 Sun Jan 27 14:29:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19278         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
19279           backends/flint/flint_table.h: Separate step which flushes
19280           modified blocks from cursors to the DB file from the rest of
19281           commit.  This will allow me to insert the changeset writing code
19282           between the two steps, so it can assume that the DB file is fully
19283           up-to-date.  Also remove an out-of-date FIXME about trying to
19284           avoid updating the value and position tables if they're not used:
19285           these tables are now lazily created anyway.
19287 Sun Jan 27 12:53:51 GMT 2008  Olly Betts <olly@survex.com>
19289         * net/tcpserver.cc: Change explicit references to xapian-tcpsrv.
19291 Sun Jan 27 12:26:24 GMT 2008  Olly Betts <olly@survex.com>
19293         * common/tcpclient.h,common/tcpserver.h,net/: Make use of TCP_NODELAY
19294           optional at the class level.  No user-visible changes.
19296 Sat Jan 26 17:18:09 GMT 2008  Olly Betts <olly@survex.com>
19298         * backends/dbfactory_remote.cc,common/Makefile.mk,
19299           common/remotetcpclient.h,common/tcpclient.h,net/Makefile.mk,
19300           net/remotetcpclient.cc,net/tcpclient.cc: Split out the "open
19301           a connection" part of TcpClient and rename the rest to
19302           RemoteTcpClient.
19304 Sat Jan 26 14:01:34 GMT 2008  Olly Betts <olly@survex.com>
19306         * bin/xapian-tcpsrv.cc,common/Makefile.mk,common/remotetcpserver.h,
19307           common/tcpserver.h,net/Makefile.mk,net/remotetcpserver.cc,
19308           net/tcpserver.cc: Split TcpServer into a generic TCP server
19309           class (TcpServer) and a subclass of this which implements the
19310           remote backend TCP server (RemoteTcpServer).
19312 Sat Jan 26 11:06:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19314         * backends/flint/flint_btreebase.cc,backends/quartz/btree_util.h,
19315           common/utils.h: Move fdcloser into utils.h, since it's generally
19316           useful, and it's better not to have multiple copies of it
19317           scattered through the code.
19319 Fri Jan 25 15:06:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19321         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Use
19322           msvc_posix_unlink() on windows in sys_unlink_if_exists()
19323           functions, so that they will work even if the file is still open.
19324           This probably changes no behaviour, because
19325           sys_unlink_if_exists() is probably never called in such a
19326           situation, but this may not be true in future.
19328 Thu Jan 24 13:31:20 GMT 2008  Olly Betts <olly@survex.com>
19330         * docs/overview.html: Remove commented-out comment about OP_XOR.
19332 Thu Jan 24 13:30:04 GMT 2008  Olly Betts <olly@survex.com>
19334         * docs/intro_ir.html: Briefly mention how pure boolean retrieval is
19335           supported.
19337 Thu Jan 24 13:28:44 GMT 2008  Olly Betts <olly@survex.com>
19339         * HACKING: Move "debian/patch" update earlier in the checklist.
19341 Thu Jan 24 13:26:45 GMT 2008  Olly Betts <olly@survex.com>
19343         * NEWS: Partly update from ChangeLog.
19345 Thu Jan 17 22:32:08 GMT 2008  Olly Betts <olly@survex.com>
19347         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h,
19348           bin/xapian-check.cc: Apply tweaked version of patch for OS/2 support
19349           by Yuri Dario.
19350         * AUTHORS: Add Yuri Dario.
19351         * PLATFORMS: Mention OS/2.
19353 Mon Jan 14 11:03:05 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19355         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Fix more
19356           assertions to avoid overflowing int.
19358 Mon Jan 14 09:29:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19360         * backends/flint/flint_btreeutil.h: Fix assertions to not overflow
19361           int.
19363 Mon Jan 14 09:23:54 GMT 2008  Olly Betts <olly@survex.com>
19365         * backends/quartz/btree_util.h: Fix assertions to not overflow int.
19367 Mon Jan 14 08:47:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19369         * configure.ac: Fix test for gcc being 4.0.x or 4.1.x, so we don't
19370           use -Wstrict-overflow with them.
19372 Sun Jan 13 23:28:04 GMT 2008  Olly Betts <olly@survex.com>
19374         * configure.ac: GCC warning flag overhaul.  Stop passing
19375           "-Wno-multichar" since any multi-character character literal is
19376           bound to be a typo (I believe we were only passing it after
19377           misinterpreting its sense!)  Pass "-Wformat-security",
19378           "-Wconversion", and "-pedantic" for all GCC versions.  Add
19379           "-Winit-self" and "-Wstrict-overflow=5" for GCC >= 4.2.  The
19380           latter may be too aggressive, but it's hard to know without
19381           trying it more widely.
19383 Sun Jan 13 00:25:25 GMT 2008  Olly Betts <olly@survex.com>
19385         * backends/flint/flint_check.h,backends/flint/flint_table.h,
19386           backends/quartz/btree.h,net/tcpserver.cc,tests/harness/testsuite.cc:
19387           Add XAPIAN_NORETURN() annotations to functions and non-virtual
19388           methods which don't return.
19389         * net/remoteserver.cc: Assign bool variable using a comparison rather
19390           than subtraction, so the intent is clearer.
19392 Sun Jan 13 00:23:41 GMT 2008  Olly Betts <olly@survex.com>
19394         * backends/flint/flint_check.cc: Tweak a comparison so all the
19395           constants are on the same side (micro-optimisation).
19396         * backends/quartz/btreecheck.cc: Equivalent change for quartz.
19398 Sun Jan 13 00:20:08 GMT 2008  Olly Betts <olly@survex.com>
19400         * tests/queryparsertest.cc: Add a couple of testcases I wrote for a
19401           reported problem which turned out to work correctly already.  Still,
19402           they add to our test coverage.
19404 Thu Jan 10 02:04:55 GMT 2008  Olly Betts <olly@survex.com>
19406         * tests/runtest.in: Cope with "@EXEEXT" extension on test programs.
19408 Wed Jan 09 21:57:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19410         * api/omquery.cc,api/omqueryinternal.cc,common/remoteprotocol.h,
19411           include/xapian/query.h,matcher/queryoptimiser.cc,tests/api_anydb.cc:
19412           Add OP_VALUE_LE operator, for symmetry with OP_VALUE_GE.
19413           Currently implemented internally using a ValueRangePostList with
19414           an empty string as the start of the range.
19416 Wed Jan 09 19:36:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19418         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h: Add
19419           new query operator OP_VALUE_GE, for performing "return documents
19420           with a value greater than this" searches.  Also add a new
19421           constructor to go with this which takes a value number and a
19422           single string argument.
19423         * matcher/: Add ValueGePostList class, as a subclass of
19424           ValueRangePostList.  Change internal members of
19425           ValueRangePostList to be protected instead of private.  Add
19426           support for making ValueGePostLists from OP_VALUE_GE queries.
19427         * tests/api_anydb.cc: Add valuege1 testcase of OP_VALUE_GE queries.
19428         * common/remoteprotocol.h: Bump minor protocol number, due to
19429           additional operator being possible in serialised queries.
19431 Wed Jan 09 15:18:16 GMT 2008  Olly Betts <olly@survex.com>
19433         * PLATFORMS: Update from Debian buildd logs.
19435 Wed Jan 09 13:53:34 GMT 2008  Olly Betts <olly@survex.com>
19437         * tests/harness/backendmanager_remotetcp.cc: Fix XAPIAN_NORETURN() to
19438           wrap a declaration, not the definition, to fix compile failure on
19439           mingw "make check".  Correct file documentation comment to refer
19440           to "remotetcp" not "remoteprog".
19442 Mon Jan 07 01:28:14 GMT 2008  Olly Betts <olly@survex.com>
19444         * PLATFORMS: Remove reports for 0.8.x as they're too old to be
19445           interesting.  Separate out 0.9.x reports.
19447 Mon Jan 07 00:23:10 GMT 2008  Olly Betts <olly@survex.com>
19449         * PLATFORMS: Add Solaris 9 and 10 success reports from James Aylett.
19451 Sat Jan 05 19:13:12 GMT 2008  Olly Betts <olly@survex.com>
19453         * languages/compiler/generator.c: In generate_call(), if the failure
19454           case would just be "if (ret == 0) return 0;" then combine it with
19455           the test for the called method returning signal `f'.
19457 Sat Jan 05 18:28:31 GMT 2008  Olly Betts <olly@survex.com>
19459         * languages/compiler/generator.c: Generate more readable code for the
19460           inlined single ASCII character literal string check.
19462 Sat Jan 05 18:27:07 GMT 2008  Olly Betts <olly@survex.com>
19464         * languages/steminternal.cc: Tweak skip_utf8() to save ~0.5% on
19465           stemtest.
19467 Sat Jan 05 02:20:57 GMT 2008  Olly Betts <olly@survex.com>
19469         * languages/compiler/generator.c: Optimise a single ASCII character
19470           literalstring check by inlining the check.  This makes stemtest run
19471           about 2% faster.
19473 Fri Dec 21 21:57:11 GMT 2007  Olly Betts <olly@survex.com>
19475         * docs/valueranges.rst: Fix example of using multiple VRPs to come out
19476           as a "program listing".
19478 Fri Dec 21 15:31:35 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19480         * common/stringutils.h,common/utils.h: Move declaration of
19481           within_DBL_EPSILON back into utils.h to fix builds with
19482           --enable-assertions, and since it's not string-related.
19484 Fri Dec 21 02:12:49 GMT 2007  Olly Betts <olly@survex.com>
19486         * NEWS: Note that one change was "(bug#45)".  Bump release date.
19488 Thu Dec 20 22:00:41 GMT 2007  Olly Betts <olly@survex.com>
19490         * NEWS: Update again for 1.0.5.
19492 Thu Dec 20 17:50:26 GMT 2007  Olly Betts <olly@survex.com>
19494         * common/stringutils.cc: Add new file I failed to commit.
19496 Thu Dec 20 17:17:28 GMT 2007  Olly Betts <olly@survex.com>
19498         * tests/queryparsertest.cc: Add feature tests to ensure that ':' is
19499           inserted between prefix and term when it should be.
19501 Thu Dec 20 13:58:18 GMT 2007  Olly Betts <olly@survex.com>
19503         * common/,queryparser/queryparser.lemony,
19504           queryparser/termgenerator_internal.cc,tests/harness/index_utils.cc,
19505           tests/harness/unixcmds.cc: Move C_isupper(), C_toupper(), etc from
19506           utils.cc/utils.h to stringutils.cc/stringutils.h, since they are
19507           string-related.
19509 Thu Dec 20 03:00:08 GMT 2007  Olly Betts <olly@survex.com>
19511         * HACKING: Remove details of issues with autoconf < 2.57 and
19512           automake < 1.5 as these versions are antiques compared to our
19513           current requirements of autoconf >= 2.59 and automake >= 1.8.3.
19515 Wed Dec 19 03:41:42 GMT 2007  Olly Betts <olly@survex.com>
19517         * AUTHORS,NEWS,configure.ac: Update for 1.0.5.
19519 Wed Dec 19 03:36:30 GMT 2007  Olly Betts <olly@survex.com>
19521         * api/omdatabase.cc: Calling WritableDatabase methods when we don't
19522           have exactly one subdatabase now throws InvalidOperationError.
19523         * tests/termgentest.cc: Add regression test to check that we now get
19524           InvalidOperationError (previously this case gave a segmentation
19525           fault).
19527 Wed Dec 19 01:39:01 GMT 2007  Olly Betts <olly@survex.com>
19529         * PLATFORMS: Update from tinderbox.
19531 Tue Dec 18 23:17:37 GMT 2007  Olly Betts <olly@survex.com>
19533         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Move lots
19534           of headers included by flint_lock.h to flint_lock.cc since
19535           flint_lock.h doesn't need them.  Add a "FIXME:1.1:" comment about
19536           an odd special-case for newlib.
19538 Thu Dec 13 17:34:19 GMT 2007  Olly Betts <olly@survex.com>
19540         * tests/stemtest.cc: Mark undocumented OM_STEMTEST_* environmental
19541           variables for removal in 1.1.
19543 Thu Dec 13 01:27:15 GMT 2007  Olly Betts <olly@survex.com>
19545         * HACKING: Need to check RPM packaging with Tim Brody too.
19547 Thu Dec 13 01:26:16 GMT 2007  Olly Betts <olly@survex.com>
19549         * configure.ac: Note that we check for <streambuf> because GCC 2.95
19550           only has <streambuf.h>.
19552 Thu Dec 13 01:23:27 GMT 2007  Olly Betts <olly@survex.com>
19554         * AUTHORS: Add Ralf Wildenhues for suggesting a way to factor out
19555           the boilerplate in multitarget rules.
19557 Wed Dec 12 02:02:51 GMT 2007  Olly Betts <olly@survex.com>
19559         * NEWS: Update for ChangeLog in preparation for 1.0.5.
19561 Wed Dec 12 01:02:29 GMT 2007  Olly Betts <olly@survex.com>
19563         * docs/admin_notes.rst: Mark as up to date for Xapian 1.0.5.  Minor
19564           wording improvements.
19566 Sun Dec 09 01:09:19 GMT 2007  Olly Betts <olly@survex.com>
19568         * tests/collate-apitest: Check for sources in the build directory
19569           first, and only if not there prepend "$srcdir/".  The recently
19570           added api_generated.cc will be in the build directory when using an
19571           SVN checkout.
19573 Fri Dec 07 12:37:08 GMT 2007  Olly Betts <olly@survex.com>
19575         * docs/sorting.rst,docs/valueranges.rst: State explicitly that
19576           Xapian::sortable_serialise() is used to encode values at index time
19577           and give an example of how it is called.
19579 Thu Dec 06 15:55:31 GMT 2007  Olly Betts <olly@survex.com>
19581         * tests/Makefile.am,tests/collate-apitest,
19582           tests/generate-api_generated: Add automatically generated tests to
19583           ensure that API classes generally have copy ctors and assignment
19584           operators, and also generally have a default ctor.
19586 Thu Dec 06 15:32:23 GMT 2007  Olly Betts <olly@survex.com>
19588         * docs/sorting.rst: Fill in the remaining items in the outline.
19590 Thu Dec 06 12:50:46 GMT 2007  Olly Betts <olly@survex.com>
19592         * tests/valgrind.supp: Another variant of the zlib suppression.
19594 Wed Dec 05 18:31:12 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19596         * Makefile.am,docs/Makefile.am,tests/Makefile.am: Add dir_contents,
19597           docs/dir_contents and tests/dir_contents to distribution
19598           tarballs.
19600 Wed Dec 05 18:28:12 GMT 2007  Olly Betts <olly@survex.com>
19602         * preautoreconf: Really fix handling of version.h.
19604 Wed Dec 05 18:20:54 GMT 2007  Olly Betts <olly@survex.com>
19606         * preautoreconf: Handle make pattern substitutions.
19608 Wed Dec 05 18:11:31 GMT 2007  Olly Betts <olly@survex.com>
19610         * preautoreconf: Fix special-case handling of include/xapian/version.h.
19612 Wed Dec 05 18:01:34 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19614         * matcher/multiandpostlist.cc,matcher/multiandpostlist.h: Implement
19615           get_wdf() method for MultiAndPostList (by adding together the
19616           wdfs of the subpostlists).  Not currently used (but will be by
19617           SynonymPostList).
19619 Wed Dec 05 17:43:24 GMT 2007  Olly Betts <olly@survex.com>
19621         * preautoreconf: Special-case version.h.
19623 Wed Dec 05 17:31:47 GMT 2007  Olly Betts <olly@survex.com>
19625         * preautoreconf: Fix errors in previous check-in.
19627 Wed Dec 05 17:18:26 GMT 2007  Olly Betts <olly@survex.com>
19629         * preautoreconf: Parse BUILT_SOURCES to determine which files are
19630           generated and so need looking for in the build directory - this
19631           won't need updating when new files are generated, or existing
19632           ones stop being.
19634 Wed Dec 05 16:55:26 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19636         * preautoreconf: Fix "make doxygen_docs" with VPATH build: look for
19637           generated code files in build dir, and make rule which re-runs
19638           preautoreconf change to srcdir first.
19640 Wed Dec 05 14:59:52 GMT 2007  Olly Betts <olly@survex.com>
19642         * docs/sorting.rst: Document set_sort_by_value() and friends.
19644 Wed Dec 05 11:31:27 GMT 2007  Olly Betts <olly@survex.com>
19646         * docs/sorting.rst: More work.
19648 Tue Dec 04 14:42:57 GMT 2007  Olly Betts <olly@survex.com>
19650         * docs/bm25.html: Improve wording.
19652 Mon Dec 03 17:11:01 GMT 2007  Olly Betts <olly@survex.com>
19654         * docs/Makefile.am,docs/index.html,docs/sorting.rst: Add the start of
19655           a topic document on sorting.
19657 Mon Dec 03 17:10:04 GMT 2007  Olly Betts <olly@survex.com>
19659         * common/stats.h: Fix comment typos.
19661 Sun Dec 02 14:36:47 GMT 2007  Olly Betts <olly@survex.com>
19663         * docs/synonyms.rst: Minor wording clarification.
19665 Sun Dec 02 14:23:37 GMT 2007  Olly Betts <olly@survex.com>
19667         * tests/collate-apitest: Fix reversed conditional for deciding
19668           which generated headers to update.
19670 Sun Dec 02 03:47:44 GMT 2007  Olly Betts <olly@survex.com>
19672         * tests/apitest.cc: Include api_all.h instead of the individual
19673           generated headers.
19675 Sun Dec 02 03:44:56 GMT 2007  Olly Betts <olly@survex.com>
19677         * tests/collate-apitest: Add licence and (C).  Only update .h files
19678           which may have changed.  Generate api_all.h which just includes
19679           the generated headers corresponding to all the sources processed.
19680           Strip spaces from conditions.
19681         * tests/Makefile.am: Update for api_all.h.
19683 Sun Dec 02 03:21:59 GMT 2007  Olly Betts <olly@survex.com>
19685         * matcher/weight.cc: Wrap comment.
19687 Sun Dec 02 03:21:25 GMT 2007  Olly Betts <olly@survex.com>
19689         * AUTHORS: Thank Petr Ročkai.
19691 Sun Dec 02 02:40:58 GMT 2007  Olly Betts <olly@survex.com>
19693         * api/omenquire.cc: Oops, this file also part of previous change.
19695 Sun Dec 02 02:14:27 GMT 2007  Olly Betts <olly@survex.com>
19697         * include/xapian/enquire.h: Implement copy ctor and assignment
19698           operator for Xapian::Enquire (bug#219).
19699         * configure.ac: Note what this means in terms of library versioning.
19701 Sat Dec 01 02:54:51 GMT 2007  Olly Betts <olly@survex.com>
19703         * include/xapian/: Stop describing get_description() as an
19704           "Introspection method", as this doesn't help to explain what it
19705           does, and get_description() doesn't actually fall under any of the
19706           formal definitions of "introspection" I can find.
19708 Sat Dec 01 02:45:16 GMT 2007  Olly Betts <olly@survex.com>
19710         * tests/harness/index_utils.h: Overlooked (C) update.
19712 Sat Dec 01 02:34:59 GMT 2007  Olly Betts <olly@survex.com>
19714         * HACKING,INSTALL,common/,configure.ac,tests/api_anydb.cc,
19715           tests/api_db.cc,tests/btreetest.cc,tests/harness/testsuite.cc,
19716           tests/harness/testsuite.h,tests/harness/testutils.cc,
19717           tests/internaltest.cc: Raise the minimum supported GCC version
19718           to 2.95.3 and strip out om_ostringstream which is no longer
19719           required.
19721 Sat Dec 01 01:10:04 GMT 2007  Olly Betts <olly@survex.com>
19723         * tests/api_sorting.cc,tests/api_wrdb.cc: Move sortfunctor2 from
19724           api_wrdb.cc to api_sorting.cc.
19726 Sat Dec 01 00:43:31 GMT 2007  Olly Betts <olly@survex.com>
19728         * tests/valgrind.supp: Add version of the valgrind zlib suppression
19729           for 64 bit hosts.
19731 Fri Nov 30 18:06:49 GMT 2007  Olly Betts <olly@survex.com>
19733         * tests/harness/index_utils.cc: Workaround MSVC which doesn't clear
19734           the fail bit when a stream is reopened.
19736 Fri Nov 30 00:44:21 GMT 2007  Olly Betts <olly@survex.com>
19738         * matcher/queryoptimiser.cc: Make delete_ptr<> a functor rather than
19739           a function.  This fixes the build with SGI's compiler, and
19740           apparently a functor allows more compilers to inline the call.
19742 Thu Nov 29 19:24:22 GMT 2007  Olly Betts <olly@survex.com>
19744         * configure.ac: Fix previous change to work.
19746 Thu Nov 29 18:53:09 GMT 2007  Olly Betts <olly@survex.com>
19748         * configure.ac: Assume we have <sstream> and hardwire HAVE_SSTREAM to
19749           be 1.  If this assumption proves correct for all platforms we care
19750           about, we can rip out the old om_ostringstream code.
19752 Thu Nov 29 17:51:11 GMT 2007  Olly Betts <olly@survex.com>
19754         * tests/harness/index_utils.cc: Work around MSVC.
19756 Wed Nov 28 03:17:06 GMT 2007  Olly Betts <olly@survex.com>
19758         * api/sorter.cc: Fix reverse sorting of value strings with different
19759           lengths.
19760         * tests/api_wrdb.cc: Add test sortfunctor2 to check this actually
19761           works.
19763 Wed Nov 28 02:27:37 GMT 2007  Olly Betts <olly@survex.com>
19765         * tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/:
19766           Add get_named_writable_database() and use it to fix spell3 on
19767           Microsoft Windows.
19769 Tue Nov 27 16:56:12 GMT 2007  Olly Betts <olly@survex.com>
19771         * xapian-config.in: Factor out the code to check if we need explicit
19772           dependencies into a function.  On platforms we know don't need
19773           explicit dependencies, --ltlibs now gives the same output as --libs.
19775 Tue Nov 27 00:24:18 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19777         * tests/Makefile.am: Remove api_regressions.cc from list - didn't
19778           mean to commit that (yet).
19780 Tue Nov 27 00:17:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19782         * tests/Makefile.am: Use $(collated_apitest_sources) in list of
19783           apitest_SOURCES; now a new test file can be added just by adding
19784           it to this variable.
19786 Mon Nov 26 23:04:00 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19788         * tests/Makefile.am: Add generated apitest .h files to targets of
19789           rule which calls collate-apitest, since they're also generated by
19790           it.  Change the rule to use a .stamp and a .lock file as
19791           described in HACKING, to fix parallel builds.
19793 Mon Nov 26 18:48:20 GMT 2007  Olly Betts <olly@survex.com>
19795         * Makefile.am: Distribute preautoreconf.
19797 Mon Nov 26 17:24:15 GMT 2007  Olly Betts <olly@survex.com>
19799         * HACKING,configure.ac,docs/Makefile.am: Use pngcrush to reduce the
19800           size of PNG files in the doxygen-generated HTML docs.
19802 Mon Nov 26 15:39:58 GMT 2007  Olly Betts <olly@survex.com>
19804         * docs/Makefile.am: Don't package or install various intermediate
19805           files which doxygen generates.
19807 Mon Nov 26 13:14:19 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19809         * tests/api_db.cc: Ensure that the database needed for stubdb1 is
19810           present, by creating it first (with get_database()).  This
19811           requires that the database type is flint, but the test doesn't
19812           depend on any particular database type anyway, so this doesn't
19813           lose us anything.
19815 Mon Nov 26 13:08:08 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19817         * tests/collate-apitest: Display the name of the backend which a
19818           set of tests is for.
19820 Mon Nov 26 09:45:39 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19822         * tests/Makefile.am,tests/collate-apitest: Fix with VPATH builds -
19823           pass srcdir as the first argument to collate-apitest, so it can
19824           find the sources.  Also, use srcdir to form the path to
19825           collate-apitest when calling it from the make rule.
19827 Mon Nov 26 02:22:08 GMT 2007  Olly Betts <olly@survex.com>
19829         * tests/api_db.cc,tests/apitest.cc,tests/apitest.h: Convert the
19830           remaining tests to be collated.
19832 Mon Nov 26 02:08:18 GMT 2007  Olly Betts <olly@survex.com>
19834         * tests/api_db.cc,tests/apitest.cc,tests/apitest.h: Collate the
19835           localdb and remotedb tests.
19837 Mon Nov 26 01:40:59 GMT 2007  Olly Betts <olly@survex.com>
19839         * tests/: Collate the specchar, doclendb, collfreq, allterms, and
19840           multivalue tests.
19842 Mon Nov 26 01:21:35 GMT 2007  Olly Betts <olly@survex.com>
19844         * tests/: Collate the anydb tests.  Remove the generated files upon
19845           "make clean" in maintainer-mode.
19847 Mon Nov 26 00:34:03 GMT 2007  Olly Betts <olly@survex.com>
19849         * tests/: Collate the wrdb tests.
19851 Mon Nov 26 00:18:18 GMT 2007  Olly Betts <olly@survex.com>
19853         * tests/api_posdb.cc,tests/apitest.cc: Add "writable" flag and use it
19854           for poslist2 and poslist3.
19856 Mon Nov 26 00:13:43 GMT 2007  Olly Betts <olly@survex.com>
19858         * tests/: Collate the posdb tests.
19860 Mon Nov 26 00:03:29 GMT 2007  Olly Betts <olly@survex.com>
19862         * tests/: Collate the nodb tests.
19864 Sun Nov 25 23:55:02 GMT 2007  Olly Betts <olly@survex.com>
19866         * tests/: Collate the transaction tests.
19868 Sun Nov 25 23:49:26 GMT 2007  Olly Betts <olly@survex.com>
19870         * tests/: Collate the unicode tests.
19872 Sun Nov 25 23:35:40 GMT 2007  Olly Betts <olly@survex.com>
19874         * tests/: Make a start on automatically collating test cases.
19876 Sun Nov 25 22:41:52 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19878         * api/weightinternal.cc: Initialise all members of
19879           Xapian::Weight::Internal, and use initialisers rather than
19880           assignment to do so.  Fixes an error reported by valgrind.
19882 Sun Nov 25 16:48:21 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19884         * matcher/weight.cc: Add another note of a FIXME needed for 1.1
19886 Sun Nov 25 16:40:28 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19888         * matcher/bm25weight.cc,matcher/tradweight.cc: Add some missing
19889           "using namespace std;" lines which are needed due to earlier
19890           changes in header file inclusions.  Also, remove some unnecessary
19891           std:: prefixes.
19893 Sun Nov 25 16:35:30 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19895         * common/stats.h,include/xapian/enquire.h,matcher/localmatch.cc,
19896           matcher/weight.cc: Undo ABI change introduced in previous commit
19897           with a nasty workaround; we can't initialise Weight::internal
19898           reliably, because applications complied with earlier versions of
19899           the library may have inlined the constructor of the Weight class.
19900           Therefore, we can't delete Weight::internal in the destructor,
19901           because we don't know if it was initialised.  Instead, we
19902           add factory methods for making Weight::Internal objects to Stats,
19903           register all the Weight::Internal objects made by these factory
19904           methods in a list is the Stats object, and delete them when Stats
19905           is deleted (which conveniently happens after the match has
19906           finished).  Mark all this with FIXME:1.1: so that we can easily
19907           convert it to nicer code once we branch for 1.1.
19909 Sun Nov 25 15:14:04 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19911         * api/Makefile.mk,api/weightinternal.cc,common/,
19912           include/xapian/enquire.h,matcher/: Split Stats and
19913           Xapian::Weight::Internal into different classes: Stats remains
19914           with the same members (but becomes a concrete class, rather than
19915           a typedef of another class), and Xapian::Weight::Internal becomes
19916           a simple container for exactly those statistics which are
19917           relevant for a weight object (ie, it holds just one termfreq and
19918           reltermfreq, rather than a map of all of them).  This is
19919           dynamically allocated, so Xapian::Weight now owns the object
19920           pointed to by its "internal" member, and deletes it in its
19921           destructor.  Add a new header file "weightinternal.h" so that the
19922           full "stats.h" stuff doesn't need to be included for definitions
19923           of weighting schemes.  Replace #include "stats.h" lines with
19924           forward declarations of Stats, where possible.
19926 Sun Nov 25 15:09:29 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19928         * api/omenquire.cc: Add missing include of stats.h
19929         * matcher/queryoptimiser.cc,net/tcpserver.cc: Remove unnecessary
19930           include of stats.h
19931         * net/remoteserver.cc: Include missing includes of omassert.h and
19932           stats.h, and change an Assert to AssertEq.
19933         * matcher/multimatch.cc: Output the contents of the stats object in
19934           debugging code.
19936 Sun Nov 25 04:22:05 GMT 2007  Olly Betts <olly@survex.com>
19938         * common/multimatch.h: No longer need "autoptr.h" here.
19940 Sun Nov 25 04:07:04 GMT 2007  Olly Betts <olly@survex.com>
19942         * common/multimatch.h: Fix typo in documentation comment.
19944 Sun Nov 25 03:58:21 GMT 2007  Olly Betts <olly@survex.com>
19946         * common/remoteserver.h,matcher/localmatch.cc,matcher/multimatch.cc:
19947           Remove lingering traces of StatsGatherer.
19949 Sat Nov 24 20:44:03 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19951         * common/stats.h,matcher/Makefile.mk,matcher/stats.cc: Add
19952           get_description() method for Xapian::Weight::Internal, and add
19953           stats.cc back to hold it's implementation.
19954         * common/output.h: Add an output function for Stats (aka
19955           Xapian::Weight::Internal) to fix the build when debug logging is
19956           enabled.
19958 Sat Nov 24 01:21:56 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19960         * api/omenquire.cc,common/,matcher/,net/remoteserver.cc: Remove
19961           StatsGatherer and its subclasses completely.  Instead of a
19962           StatsGatherer subclass, MultiMatch is now simply passed a Stats
19963           object, and passes this to the prepare_match() methods of the sub
19964           matchers to be populated with statistics.  OmEnquire then passes
19965           the same Stats object to MultiMatch::get_mset(), whereas a remote
19966           submatch sends the Stats object to the parent match, to be
19967           combined with the global statistics, and then passes the returned
19968           global statistics to MultiMatch::get_mset().  Remove stats.cc
19969           since it only contained implementations of StatsGatherer methods,
19970           and networkstats.h which only contained the definition of the
19971           NetworkStatsGatherer.
19972         * matcher/rset.cc: Add the rset size to the database - we now
19973           compute the global rset size the same way as we compute the
19974           global collection size: by adding the sizes in the sub
19975           collections together.  We have the total rset size easily
19976           available in the code, but building the total rset size up from
19977           the sub-databases makes the code simpler.
19979 Sat Nov 24 01:21:18 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19981         * matcher/andnotpostlist.cc: Add a missing #include "omdebug.h".
19983 Fri Nov 23 23:13:12 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19985         * common/stats.h,matcher/: Remove the StatsSource class entirely.
19986           LocalSubMatch and RemoteSubMatch now contribute their stats
19987           directly to the gatherer in the prepare_match() method, so the
19988           gatherer doesn't need to worry about keeping track of the sources
19989           of statistics.
19991 Fri Nov 23 21:46:32 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19993         * common/submatch.h,matcher/: Change SubMatch::start_match() (and
19994           all start_match() methods in subclasses) to take the statistics
19995           for the whole collection as an additional parameter.  MultiMatch
19996           now gets the statistics from the gatherer and passes it to
19997           start_match().
19999 Fri Nov 23 17:38:28 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20001         * common/stats.h: Add set_termfreq() and set_reltermfreq()
20002           convenience methods to Stats; and remote the take_my_stats(),
20003           my_termfreq_is() and my_reltermfreq_is() methods from
20004           StatsSource.
20005         * common/rset.h,matcher/rset.cc: Rename give_stats_to_statssource()
20006           to contribute_stats(), and give it take a Stats object instead of
20007           a StatsSource object.  Can't forward declare Stats, so we need to
20008           #include "stats.h" in rset.h now, unfortunately.
20009         * matcher/localmatch.cc,matcher/localmatch.h: Move register_term()
20010           implementation inline into prepare_match().  Build up the
20011           statistics in a local Stats object, rather than passing them
20012           piecemeal to the StatsSource object, and then use
20013           StatsSource::get_my_stats() to set them, just like
20014           RemoteSubMatcher.
20016 Fri Nov 23 14:35:49 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20018         * matcher/localmatch.cc,matcher/localmatch.h: Get the total
20019           statistics from the gatherer directly and store them in a new
20020           member of LocalSubMatch, rather than getting them via the
20021           StatsSource when we need them.  This bypasses the
20022           get_total_stats() and set_total_stats() methods of StatsSource.
20023         * common/stats.h,matcher/stats.cc: Remove the (newly) unused
20024           methods StatsSource::set_total_stats() and
20025           StatsSource::get_total_stats().
20027 Fri Nov 23 11:40:54 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20029         * common/,include/xapian/enquire.h,matcher/: Rename
20030           Xapian::Weight::Internal to StatsSource (which I hope to be able
20031           to remove shortly), and rename the Stats class to
20032           Xapian::Weight::Internal.  Requires minimal plumbing changes -
20033           TradWeight and BM25Weight classes now query the internals
20034           directly for the statistics, LocalSubMatch now gets the
20035           statistics from StatsSource and passes them to wt_factory.
20036           common/remote-database.h and common/serialise.h now need to
20037           #include stats.h unfortunately, because a forward declaration
20038           can't be used for Xapian::Weight::Internal (unless I'm missing
20039           something).
20041 Fri Nov 23 10:15:43 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20043         * common/stats.h,matcher/bm25weight.cc,matcher/localmatch.cc,
20044           matcher/tradweight.cc: Remove the Xapian::Weight::Internal
20045           get_total_* methods: instead, add a get_total_stats() method
20046           which returns a Stats object representing the whole collection.
20047           Add get_termfreq() and get_reltermfreq() convenience methods to
20048           Stats for looking up individual term's statistics.  Also, change
20049           protected members of Xapian::Weight::Internal to private members,
20050           since we're no longer subclassed.  Also, in tradweight.cc, avoid
20051           division by zero in the (rare) situation of the average length
20052           being zero; in the same way as this is handled by bm25weight.cc.
20054 Thu Nov 22 12:58:02 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20056         * common/stats.h,matcher/localmatch.cc,matcher/localmatch.h,
20057           matcher/stats.cc: Replay Xapian::Weight::Internal's
20058           perform_request() method with set_total_stats().  The replacement
20059           takes the stats as a parameter, rather than magically getting
20060           them from the gatherer.  The LocalSubMatch now needs to call the
20061           gatherer to get the stats, and then pass it to set_total_stats(),
20062           so needs to keep a reference to the gatherer.  However, we are
20063           now one step closer to decoupling the gatherer from the stats.
20065 Thu Nov 22 11:47:56 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20067         * common/stats.h,matcher/localmatch.cc: Remove automatic
20068           just-in-time calls to statssource.perform_request() - instead,
20069           make it public, and call it explicitly before the postlist tree
20070           is constructed.  Also, make Xapian::Weight::Internal's destructor
20071           non-virtual, since it's no longer subclassed anywhere.
20073 Thu Nov 22 11:02:39 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20075         * common/networkstats.h,matcher/stats.cc: Remove
20076           fetch_local_stats() method, and use of have_gathered flag for
20077           caching result of gathering the stats - instead, simply Assert
20078           that have_gathered is false before gathering; we currently only
20079           call get_local_stats() once for a given gatherer.
20081 Thu Nov 22 10:04:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20083         * common/rset.h: Change multiline "///" comments to use "/**",
20084           style.
20086 Thu Nov 22 09:27:42 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20088         * matcher/localmatch.cc,matcher/queryoptimiser.h: Update a couple
20089           of comments.
20091 Thu Nov 22 08:29:19 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20093         * common/networkstats.h,common/stats.h,matcher/: Remove the
20094           LocalStatsSource and NetworkStatsSource classes - just use the
20095           base class (Xapian::Weight::Internal) instead.  LocalStatsSource
20096           had no extra members whatsoever, whereas NetworkStatsSource had
20097           various members which weren't used, and a single method
20098           "take_remote_stats" which simply sets the statistics held - I've
20099           renamed this method "set_my_stats" and added it to the base
20100           class.
20102 Thu Nov 22 00:05:06 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20104         * common/networkstats.h,common/stats.h,matcher/stats.cc: Replace
20105           StatsGatherer::contrib_my_stats() and
20106           StatsSource::contrib_stats() methods; instead add a
20107           get_my_stats() method to StatsSource and simply call this.
20109 Wed Nov 21 16:37:10 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20111         * common/networkstats.h,common/remoteserver.h,matcher/stats.cc,
20112           net/remoteserver.cc: Rework NetworkStatsGatherer - it no longer
20113           needs to have the RemoteServer passed into it; instead, the
20114           RemoteServer calls NetworkStatsGatherer::set_global_stats() with
20115           the global statistics as soon as it gets them.  This new method
20116           replaces fetch_global_stats().  As a result, the RemoteServer no
20117           longer needs to remember the global_stats received from the
20118           network - it just passes them straight to the gatherer - so
20119           remove the global_stats and get_global_stats() methods from
20120           RemoteServer.
20122 Wed Nov 21 15:42:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20124         * common/rset.h,matcher/rset.cc: Document the member functions of
20125           RSetI, and remove the totally unused "get_reltermfreq()" member.
20126           Also remove an ancient, commented out, implementation of an
20127           "add_document()" member, and add copyright lines.
20129 Wed Nov 21 15:26:11 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20131         * common/rset.h,matcher/localmatch.cc,matcher/rset.cc: Make
20132           RSet::calculate_stats() private, and call it only from
20133           RSet::give_stats_to_statssource().  Was previously called
20134           directly from localmatch.cc, but this way it's clear that it's
20135           only called once.
20137 Wed Nov 21 14:30:17 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20139         * matcher/remotesubmatch.h: Move implementation of constructor into
20140           .cc file (accidentally missed this file from the last-but-one
20141           commit, which did the necessary changes to the .cc file).
20143 Wed Nov 21 14:28:48 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20145         * matcher/rset.cc: Improve debugging messages.
20147 Wed Nov 21 14:26:44 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20149         * matcher/remotesubmatch.cc: Add some debugging, and reorder the
20150           header includes.
20152 Wed Nov 21 13:21:35 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20154         * matcher/multimatch.cc: Add DEBUGCALL_STATIC macros to the new
20155           functions, and tidy some code in the constructor slightly.
20157 Wed Nov 21 10:00:48 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20159         * matcher/multimatch.cc: Split the loop which calls prepare_match()
20160           out of the constructor into a separate static function.
20162 Tue Nov 20 18:23:53 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20164         * matcher/multimatch.cc: Refactor code which splits the RSet into
20165           sub RSets (one for each sub database) into a separate function.
20166           No functional change.
20168 Tue Nov 20 17:56:47 GMT 2007  Olly Betts <olly@survex.com>
20170         * common/remoteserver.h: Remove unused '#include "omassert.h"'.
20172 Tue Nov 20 12:53:06 GMT 2007  Olly Betts <olly@survex.com>
20174         * AUTHORS: Thank Marcus Rueckert for GCC 4.3 fixes.
20176 Tue Nov 20 10:22:28 GMT 2007  Olly Betts <olly@survex.com>
20178         * bin/quartzcompact.cc: Recent GCC 4.3 snapshots thinks cf and tf
20179           might be used uninitialised.  They won't be, but we only need to
20180           initialise them once per run to silence the warning, so just do
20181           that.
20183 Tue Nov 20 10:20:13 GMT 2007  Olly Betts <olly@survex.com>
20185         * bin/quartzcompact.cc: Fix equality testing of C strings to use
20186           strcmp() rather than '=='.  In practice, using '==' often gives
20187           the desired effect due to pooling of constant strings, but this may
20188           have resulted in bugs on some platforms.
20190 Tue Nov 20 01:47:16 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20192         * tests/harness/backendmanager_remotetcp.cc: Add missing "#include
20193           <cstring>".
20195 Tue Nov 20 01:26:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20197         * tests/harness/unixcmds.cc: Add #include of cstring, to get
20198           strchr, needed for gcc 4.3 snapshot.
20200 Tue Nov 20 01:25:22 GMT 2007  Olly Betts <olly@survex.com>
20202         * api/maptermlist.h,api/termlist.cc,backends/alltermslist.cc,
20203           backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h,
20204           common/alltermslist.h,common/termlist.h,common/vectortermlist.h:
20205           Provide a default implementation of accumulate_stats() in the
20206           virtual base class TermIterator::Internal instead of repeating it
20207           in each subclass which doesn't get used for generating an ESet, and
20208           don't call abort() in the default implementation - an Assert(false)
20209           is sufficient, and more consistent with how we handle other similar
20210           cases.
20212 Tue Nov 20 01:24:17 GMT 2007  Olly Betts <olly@survex.com>
20214         * bin/xapian-progsrv.cc: Add missing '#include <cstdlib>'.
20216 Mon Nov 19 23:54:53 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20218         * backends/flint/flint_postlist.cc,backends/quartz/quartz_postlist.cc:
20219           Add NORETURN macro to report_read_error(); fixes warnings from
20220           GCC 4.3 about possibly uninitialised values.  Reorder header
20221           includes to follow proposed policy.
20222         * backends/flint/flint_postlist.h: Add include of omdebug.h which
20223           previously needed to be done before including this.  Tidy up
20224           order of includes.
20226 Mon Nov 12 14:06:38 GMT 2007  Olly Betts <olly@survex.com>
20228         * api/Makefile.mk,api/omenquire.cc,api/sorter.cc,common/multimatch.h,
20229           common/omenquireinternal.h,include/Makefile.mk,include/xapian.h,
20230           include/xapian/enquire.h,include/xapian/sorter.h,
20231           matcher/multimatch.cc,net/remoteserver.cc,tests/: Add new functor
20232           class to allow more sophisticated sorting options.
20234 Mon Nov 12 14:03:06 GMT 2007  Olly Betts <olly@survex.com>
20236         * HACKING: Improved wording.
20238 Sun Nov 11 07:51:57 GMT 2007  Olly Betts <olly@survex.com>
20240         * include/xapian/queryparser.h: Hide the v102 namespace from Doxygen
20241           as it isn't user visible.
20243 Sat Nov 10 21:53:21 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20245         * tests/Makefile.am: Remove .multi in clean-local rule; should fix
20246           distcheck.
20248 Sat Nov 10 15:34:25 GMT 2007  Olly Betts <olly@survex.com>
20250         * tests/harness/testutils.cc,tests/harness/testutils.h:
20251           mset_expect_order_begins() is never used, so remove it.
20252         * tests/harness/testutils.cc: Don't need <iostream>, only <fstream>.
20254 Sat Nov 10 11:09:22 GMT 2007  Olly Betts <olly@survex.com>
20256         * docs/index.html: Add a list of documents on particular features and
20257           include links to previously unlinked-to documents.  Weed down the
20258           top navigation bar which had grown to unwieldy length.
20260 Sat Nov 10 10:17:42 GMT 2007  Olly Betts <olly@survex.com>
20262         * PLATFORMS: Update for Debian buildds.
20264 Sat Nov 10 02:13:07 GMT 2007  Olly Betts <olly@survex.com>
20266         * matcher/multimatch.cc: If "first" is non-zero, then use nth_element
20267           with vector::reverse_iterator to partition items such that the
20268           unwanted ones are at the end not the start.  This means the call
20269           to vector::erase() no longer needs to copy all the wanted items.
20271 Fri Nov 09 19:01:38 GMT 2007  Olly Betts <olly@survex.com>
20273         * tests/api_db.cc: collapsekey3 is too strict - even if the value
20274           never occurs, lower_bound may drop as we may reject potential
20275           matches before applying the collapse test.
20277 Fri Nov 09 16:36:39 GMT 2007  Olly Betts <olly@survex.com>
20279         * include/xapian/termiterator.h: Clarify get_wdf() versus
20280           get_termfreq() in documentation comments.
20282 Fri Nov 09 00:07:02 GMT 2007  Olly Betts <olly@survex.com>
20284         * tests/api_db.cc: Fix comment typo.
20286 Fri Nov 09 00:04:45 GMT 2007  Olly Betts <olly@survex.com>
20288         * HACKING,Makefile.am,tests/Makefile.am: New make target
20289           'check-multi'.
20291 Thu Nov 08 23:54:47 GMT 2007  Olly Betts <olly@survex.com>
20293         * tests/api_anydb.cc: Re-enable test case allpostlist1 for multi
20294           since it works fine (presumably thanks to the multi_postlist.cc
20295           fix).
20297 Thu Nov 08 23:44:29 GMT 2007  Olly Betts <olly@survex.com>
20299         * tests/,tests/harness/: Add new "multi" test backend which indexes
20300           the specified text file(s) to two databases which will look just
20301           like the equivalent single database when searched together.  Since
20302           writing isn't supported, a number of tests which require this are
20303           disabled, as are any tests which explicitly use a multi-database
20304           since a multi-of-multis isn't equivalent to a multi of equivalent
20305           individual databases.  A handful of testcases are also currently
20306           disabled because they fail for reasons not yet fully explored.
20307           Existing tests run with the new backend provide regression tests
20308           for the two recent fixes.
20310 Thu Nov 08 23:42:33 GMT 2007  Olly Betts <olly@survex.com>
20312         * backends/multi/multi_postlist.cc: Fix PostingIterator::skip_to()
20313           when running over multiple databases.  Regression test to follow.
20315 Thu Nov 08 23:37:51 GMT 2007  Olly Betts <olly@survex.com>
20317         * docs/overview.html: Mention the "auto" backend.
20319 Thu Nov 08 23:28:30 GMT 2007  Olly Betts <olly@survex.com>
20321         * matcher/multimatch.cc: Fix bug in handling a pure boolen match over
20322           more than one database under set_docid_order(ASCENDING) - we can't
20323           shortcut in this case because MergePostList generally doesn't return
20324           docids in order.  Regression test to follow.
20326 Thu Nov 08 21:07:09 GMT 2007  Olly Betts <olly@survex.com>
20328         * matcher/queryoptimiser.cc: Fix comment typo.
20330 Thu Nov 08 07:40:48 GMT 2007  Olly Betts <olly@survex.com>
20332         * api/omdatabase.cc: Don't use MultiPostList when there's only one
20333           subdatabase.
20335 Thu Nov 08 05:40:17 GMT 2007  Olly Betts <olly@survex.com>
20337         * tests/api_db.cc: Run sortrel1 for inmemory too.
20339 Thu Nov 08 03:43:50 GMT 2007  Olly Betts <olly@survex.com>
20341         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc,
20342           tests/harness/index_utils.h: New class FileIndexer which acts like
20343           an iterator returning a Xapian::Document object for each paragraph
20344           in some specified files.
20346 Wed Nov 07 16:30:49 GMT 2007  Olly Betts <olly@survex.com>
20348         * common/,docs/remote_protocol.html,matcher/,net/remoteserver.cc,
20349           net/serialise.cc: If we're doing a match with only one database
20350           which is remote then just return the unserialised MSet from the
20351           remote match.  This requires that we include
20352           internal->percent_factor in the MSet serialisation, which requires
20353           a minor remote protocol version bump.
20355 Wed Nov 07 09:47:28 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20357         * matcher/multimatch.cc: Fix logging build (a change to the logging
20358           code introduced in r9644 didn't compile)
20360 Tue Nov 06 17:10:51 GMT 2007  Olly Betts <olly@survex.com>
20362         * include/xapian/document.h: Better documentation comment for
20363           Document::termlist_count().
20365 Tue Nov 06 12:32:16 GMT 2007  Olly Betts <olly@survex.com>
20367         * Makefile.am,docs/Makefile.am,languages/Makefile.mk: No need to set
20368           SUFFIXES manually for suffixes used in implicit rules.
20370 Tue Nov 06 10:41:14 GMT 2007  Olly Betts <olly@survex.com>
20372         * matcher/multimatch.cc: If we're collapsing on a value, keep track of
20373           the number of empty collapse values seen, since that allows us to
20374           give a better lower bound on the number of matches.
20375         * tests/api_db.cc: This change breaks an (incorrect) assumption in
20376           collapsekey3, so change that test case to be a regression test for
20377           the improved estimate.  Add a new test as (the previously missing)
20378           collapsekey2, but disable it for now as we don't seem to have a
20379           suitable existing database.
20381 Tue Nov 06 07:58:34 GMT 2007  Olly Betts <olly@survex.com>
20383         * matcher/tradweight.cc: Make sure lenpart has been calculated in
20384           TradWeight::get_sumpart_needs_doclength() (this doesn't appear to
20385           actually be a problem in current use, but it might become an issue
20386           if the code which uses TradWeight changes.
20388 Tue Nov 06 07:49:18 GMT 2007  Olly Betts <olly@survex.com>
20390         * tests/api_anydb.cc: Add simple feature test for TradWeight being
20391           used to run a query.
20393 Tue Nov 06 07:26:28 GMT 2007  Olly Betts <olly@survex.com>
20395         * common/stats.h,matcher/bm25weight.cc,tests/api_anydb.cc: Fix bug in
20396           BM25Weight - in the case where k2 is non-zero, a non-initialised
20397           value influenced the weight calculations.  By default k2 is zero, so
20398           this bug probably won't affect most users.
20400 Tue Nov 06 07:22:27 GMT 2007  Olly Betts <olly@survex.com>
20402         * api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
20403           net/remoteserver.cc: Modify MultiMatch::MultiMatch() to take a const
20404           pointer to Xapian::RSet rather than a const reference.  This makes
20405           the code simpler for the case where we don't have an RSet.
20407 Tue Nov 06 05:47:38 GMT 2007  Olly Betts <olly@survex.com>
20409         * api/omenquire.cc: Use ".empty()" not ".size() == 0".
20411 Mon Nov 05 21:05:45 GMT 2007  Olly Betts <olly@survex.com>
20413         * m4/xapian.m4: Hook LT_INIT as well as AC_PROG_LIBTOOL and
20414           AM_PROG_LIBTOOL.
20416 Mon Nov 05 11:17:23 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20418         * docs/termgenerator.rst: Change a couple of instances of "terms"
20419           to "words" for clarity; the item from the input text is a word,
20420           and the result of processing is a term.
20422 Mon Nov 05 09:46:53 GMT 2007  Olly Betts <olly@survex.com>
20424         * docs/admin_notes.rst: Note that this document is up-to-date for
20425           1.0.4.  Improve the formatting a bit and fix a the odd typo.
20427 Mon Nov 05 06:24:01 GMT 2007  Olly Betts <olly@survex.com>
20429         * tests/api_wrdb.cc: Fix MSVC warning.
20431 Mon Nov 05 06:21:09 GMT 2007  Olly Betts <olly@survex.com>
20433         * matcher/queryoptimiser.h: Forward declare PosFilter as "struct"
20434           rather than "class", since it's defined as "struct".
20436 Mon Nov 05 05:41:01 GMT 2007  Olly Betts <olly@survex.com>
20438         * api/sortable-serialise.cc: Suppress MSVC warning.
20440 Mon Nov 05 04:55:48 GMT 2007  Olly Betts <olly@survex.com>
20442         * docs/quickstart.html: Improved.
20444 Mon Nov 05 04:43:13 GMT 2007  Olly Betts <olly@survex.com>
20446         * docs/overview.html: More improvements from Jenny Black.
20448 Sun Nov 04 22:59:28 GMT 2007  Olly Betts <olly@survex.com>
20450         * docs/overview.html: Assorted improvements to the start of this
20451           document.
20453 Sun Nov 04 22:54:13 GMT 2007  Olly Betts <olly@survex.com>
20455         * api/omdocument.cc,tests/api_wrdb.cc: values_begin() didn't ensure
20456           that values had been read.  However, values_end() did (and so did
20457           values_count()) so this wasn't generally an issue, but it shouldn't
20458           happen anyway.
20459         * tests/api_wrdb.cc: Extend adddoc5 to include a regression test for
20460           this bug.
20462 Sun Nov 04 22:44:39 GMT 2007  Olly Betts <olly@survex.com>
20464         * tests/quartztest.cc: Remove 'FIXME' suggesting more value tests.
20465         * tests/api_nodb.cc: Add the suggested tests we don't already have.
20467 Sun Nov 04 19:23:52 GMT 2007  Olly Betts <olly@survex.com>
20469         * tests/api_posdb.cc,tests/api_wrdb.cc: Use get_writable_database()
20470           instead of get_writable_database("").
20471         * tests/api_wrdb.cc: Rework test_spell3 so it works under __WIN32__
20472           (bug#177).
20474 Sun Nov 04 07:31:04 GMT 2007  Olly Betts <olly@survex.com>
20476         * tests/harness/backendmanager.h: Make BackendManager dtor virtual as
20477           intended.
20479 Sun Nov 04 07:05:12 GMT 2007  Olly Betts <olly@survex.com>
20481         * tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/,
20482           tests/quartztest.cc: Extend BackendManager to allow opening a
20483           WritableDatabase as a Database as well, and to allow reopening a
20484           closed WritableDatabase as a WritableDatabase.  With these new
20485           features, rework quartztest's adddoc2 and adddoc3 as apitest
20486           testcases adddoc5 and adddoc6.
20488 Sun Nov 04 06:08:42 GMT 2007  Olly Betts <olly@survex.com>
20490         * tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/:
20491           Add BackendManager::get_writable_database_as_database() and use it
20492           instead of assuming what the WritableDatabase path will be.
20494 Sun Nov 04 05:31:30 GMT 2007  Olly Betts <olly@survex.com>
20496         * tests/,tests/harness/: Subclass BackendManager for each database
20497           backend supported, which should provide a better foundation on
20498           which we can rebuild to fix the nastier bits of the test harness.
20500 Fri Nov 02 17:39:58 GMT 2007  Olly Betts <olly@survex.com>
20502         * INSTALL: zlib 1.2.0 apparently fixes a memory leak in deflateInit2,
20503           which we use, so that's another reason to prefer 1.2.x.
20505 Fri Nov 02 06:34:36 GMT 2007  Olly Betts <olly@survex.com>
20507         * tests/harness/testsuite.cc: Fix extracting of valgrind error
20508           messages.
20510 Fri Nov 02 05:09:05 GMT 2007  Olly Betts <olly@survex.com>
20512         * docs/bm25.html,docs/scalability.html: Remove references to Muscat
20513           3.6.
20515 Thu Nov 01 18:51:20 GMT 2007  Olly Betts <olly@survex.com>
20517         * NEWS: Fix to talk about OP_VALUE_RANGE rather than
20518           ValueRangePostList since the later isn't user-visible.
20520 Thu Nov 01 18:16:20 GMT 2007  Olly Betts <olly@survex.com>
20522         * matcher/exactphrasepostlist.cc: Fix memory leak if second memory
20523           allocation fails.
20525 Thu Nov 01 17:54:09 GMT 2007  Olly Betts <olly@survex.com>
20527         * docs/intro_ir.html: Move the section on stemming to a better
20528           location.
20530 Thu Nov 01 17:37:40 GMT 2007  Jenny Black
20532         * docs/glossary.rst: Fix typo.
20534 Thu Nov 01 06:34:58 GMT 2007  Olly Betts <olly@survex.com>
20536         * matcher/multimatch.cc: Minor code simplification.
20538 Wed Oct 31 16:17:08 GMT 2007  Olly Betts <olly@survex.com>
20540         * bin/xapian-check.cc: Fix to handle the special case of a term which
20541           is 48 characters long.  Fix not to go into an infinite loop if
20542           certain checks fail.
20544 Wed Oct 31 15:56:45 GMT 2007  Olly Betts <olly@survex.com>
20546         * matcher/multiandpostlist.cc: If the subpostlists are ORs and pruning
20547           or operator decay happens within them, then get_termfreq_est() can
20548           change such that the first postlist returns a higher value than
20549           the second, so remove a bogus assertion which assumed this didn't
20550           happen (bug#209).
20552 Wed Oct 31 15:43:58 GMT 2007  Olly Betts <olly@survex.com>
20554         * backends/flint/flint_version.cc: I documented an increase in
20555           FLINT_VERSION but didn't increase it - luckily the previous version
20556           wasn't in a released version, so just adjust the comment to match
20557           what actually happened.
20559 Wed Oct 31 15:24:48 GMT 2007  Olly Betts <olly@survex.com>
20561         * net/remoteconnection.cc: Add '#include <safeunistd.h>' (bug#208).
20563 Wed Oct 31 15:01:53 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20565         * bin/xapian-check.cc: Update the checking of the termlist table to
20566           stop checking for the "has_termfreqs" flag, which is no longer
20567           stored in termlists.
20569 Wed Oct 31 14:31:38 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20571         * backends/quartz/quartz_positionlist.cc: Add missing #include,
20572           which is needed only when configured with --enable-log and with
20573           --disable-assertions.
20575 Tue Oct 30 04:52:53 GMT 2007  Olly Betts <olly@survex.com>
20577         * NEWS,configure.ac: Update for 1.0.4.
20579 Tue Oct 30 04:10:32 GMT 2007  Olly Betts <olly@survex.com>
20581         * queryparser/queryparser.lemony: Code tweak.
20583 Tue Oct 30 03:04:04 GMT 2007  Olly Betts <olly@survex.com>
20585         * tests/queryparsertest.cc: Add two more test cases to improve
20586           coverage.
20588 Tue Oct 30 00:13:42 GMT 2007  Olly Betts <olly@survex.com>
20590         * tests/harness/testsuite.cc: abi::__cxa_demangle() requires GCC 3.1
20591           it seems.
20593 Mon Oct 29 23:14:41 GMT 2007  Olly Betts <olly@survex.com>
20595         * docs/scalability.html: Update size of gmane.
20597 Mon Oct 29 23:13:00 GMT 2007  Olly Betts <olly@survex.com>
20599         * docs/quartzdesign.html: Note that Quartz is now deprecated.
20601 Mon Oct 29 21:09:12 GMT 2007  Olly Betts <olly@survex.com>
20603         * configure.ac,tests/harness/testsuite.cc: Demangle the name of
20604           the std::exception subclass for GCC, and handle compilation with
20605           -fno-rtti.
20607 Mon Oct 29 19:50:05 GMT 2007  Olly Betts <olly@survex.com>
20609         * tests/harness/testsuite.cc: Catch std::exception subclasses
20610           explicitly and report e.what() (which gives the method name which
20611           threw, at least under GCC).
20613 Mon Oct 29 18:46:57 GMT 2007  Olly Betts <olly@survex.com>
20615         * NEWS: Updated.
20617 Mon Oct 29 18:36:12 GMT 2007  Olly Betts <olly@survex.com>
20619         * matcher/multimatch.cc: Pull out old_item.wt into a variable.
20621 Mon Oct 29 18:24:46 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20623         * queryparser/queryparser.lemony: Fix problem with spelling
20624           correction of hyphenated terms (or other terms joined with phrase
20625           generators): the position of the start of the term wasn't being
20626           reset for the second term in the generated phrase, resulting in
20627           out of bounds errors when substituting the new value in the
20628           corrected query string.
20629         * tests/queryparsertest.cc: Test the fix.
20631 Mon Oct 29 17:34:17 GMT 2007  Olly Betts <olly@survex.com>
20633         * docs/deprecation.rst: Move "Stem::stem_word(word)" in the bindings
20634           to the right section (it was done in 1.0.0, as already indicated).
20635           Deprecate the non-pythonic iterators in favour of the pythonic ones.
20637 Mon Oct 29 02:54:09 GMT 2007  Olly Betts <olly@survex.com>
20639         * NEWS,api/Makefile.mk,docs/Makefile.am,include/Makefile.mk,
20640           include/xapian.h,tests/api_db.cc,tests/api_nodb.cc,
20641           tests/api_wrdb.cc: Back out match spy changes in preparation for
20642           creating a branch for them.
20644 Mon Oct 29 02:37:31 GMT 2007  Olly Betts <olly@survex.com>
20646         * matcher/valuerangepostlist.cc: Fix
20647           ValueRangeProcessor::get_termfreq_est() and get_termfreq_max() to
20648           work when at_end() when paranoid assertions are enabled.
20650 Mon Oct 29 01:51:07 GMT 2007  Olly Betts <olly@survex.com>
20652         * common/omenquireinternal.h: Add ESetItem::swap() and
20653           MSetItem::swap().
20655 Sun Oct 28 16:33:34 GMT 2007  Olly Betts <olly@survex.com>
20657         * PLATFORMS: Update from tinderbox and buildbot.
20659 Sun Oct 28 06:00:23 GMT 2007  Olly Betts <olly@survex.com>
20661         * matcher/queryoptimiser.cc: Remove unused variable.
20663 Sun Oct 28 05:46:28 GMT 2007  Olly Betts <olly@survex.com>
20665         * docs/remote.html: xapian-tcpsrv can handle concurrent read access
20666           so update the out-of-date information here.  Also, some new features
20667           aren't supported by the remote backend yet.
20669 Sun Oct 28 05:20:02 GMT 2007  Olly Betts <olly@survex.com>
20671         * include/xapian/queryparser.h: Update documentation comment for
20672           QueryParser::set_stemming_strategy().
20674 Sun Oct 28 05:03:03 GMT 2007  Olly Betts <olly@survex.com>
20676         * queryparser/queryparser.lemony: Fix handling of STEM_ALL.
20677         * tests/queryparsertest.cc: Update tests.  Move tables of queries to
20678           before the test functions which use them.
20680 Sat Oct 27 20:50:57 BST 2007  Olly Betts <olly@survex.com>
20682         * api/omqueryinternal.cc,include/xapian/query.h,
20683           matcher/queryoptimiser.cc: Eliminate Query::Internal::dbl_parameter
20684           to avoid any risk of ABI breakage.
20686 Sat Oct 27 17:08:46 BST 2007  Olly Betts <olly@survex.com>
20688         * include/xapian/query.h: Pull in <xapian/deprecated.h> explicitly.
20689           Add @deprecated note to Query::Query(Query::op, Query) explaining
20690           why it is deprecated.
20691         * include/xapian/queryparser.h: Wrap comment better.
20693 Sat Oct 27 05:37:33 BST 2007  Olly Betts <olly@survex.com>
20695         * NEWS: Merge two "testsuite" sections in draft 1.0.4 entry.
20697 Sat Oct 27 02:34:10 BST 2007  Olly Betts <olly@survex.com>
20699         * HACKING: Note specifically that std::list::size() is O(n) for GCC.
20700           Update the debian packaging checklist.
20702 Sat Oct 27 02:33:14 BST 2007  Olly Betts <olly@survex.com>
20704         * docs/intro_ir.html: Add link to the forthcoming book
20705           "Introduction to Information Retrieval", which can be read online.
20707 Sat Oct 27 02:22:36 BST 2007  Olly Betts <olly@survex.com>
20709         * docs/Makefile.am: We no longer build sourcedoc.pdf so remove it from
20710           MAINTAINERCLEANFILES.
20712 Sat Oct 27 02:20:31 BST 2007  Olly Betts <olly@survex.com>
20714         * NEWS: Mostly updated for 1.0.4.
20716 Fri Oct 26 04:57:31 BST 2007  Olly Betts <olly@survex.com>
20718         * api/omqueryinternal.cc: OP_SCALE_WEIGHT applied to MatchNothing is
20719           now handled by the Query ctor, so replace the code to handle
20720           OP_SCALE_WEIGHT in Query::Internal::simplify_matchnothing() by an
20721           assertion that the subquery isn't MatchNothing.
20723 Fri Oct 26 04:50:37 BST 2007  Olly Betts <olly@survex.com>
20725         * include/xapian/query.h: Deprecate the essentially useless
20726           constructor Query(Query::op, Query).
20727         * docs/deprecation.rst: Note this deprecation, and since the feature
20728           doesn't actually have a use, schedule it for 1.1.0.  Also schedule
20729           Enquire::register_match_decider() for 1.1.0 for the same reason.
20731 Fri Oct 26 01:00:08 BST 2007  Olly Betts <olly@survex.com>
20733         * api/omquery.cc,include/xapian/query.h: OP_SCALE_WEIGHT applied to
20734           OP_VALUE_RANGE can have no effect so ignore it.
20735         * tests/queryparsertest.cc: Update expected query descriptions.
20737 Fri Oct 26 00:23:55 BST 2007  Olly Betts <olly@survex.com>
20739         * matcher/multimatch.cc: When checkatleast is set, and we're sorting
20740           by relevance with forward ordering by docid, and the query is pure
20741           boolean, we were exiting before the checkatleast requirement was
20742           satisfied.  Then the adjustments made to the estimated and max
20743           statistics based on checkatleast meant we claimed there were
20744           exactly msize results.
20746 Thu Oct 25 00:34:14 BST 2007  Olly Betts <olly@survex.com>
20748         * matcher/localmatch.cc,matcher/multiandpostlist.cc,
20749           matcher/queryoptimiser.cc,queryparser/queryparser.cc: Fix build
20750           with --enable-assertions and --enable-log.
20752 Wed Oct 24 06:29:03 BST 2007  Olly Betts <olly@survex.com>
20754         * queryparser/queryparser.lemony: Drop out of IN_GROUP mode when we
20755           generate a BOOLEAN_FILTER token.
20756         * tests/queryparsertest.cc: Add regression test.
20758 Wed Oct 24 06:08:29 BST 2007  Olly Betts <olly@survex.com>
20760         * queryparser/queryparser.lemony: Drop special treatment for unmatched
20761           ')' at the start of the query, as it seems rather arbitrary and not
20762           particularly useful.  Reparsing seems a better approach here.
20763         * tests/queryparsertest.cc: Add regression test case for bug which
20764           dropping this special case fixes.
20766 Wed Oct 24 05:25:40 BST 2007  Olly Betts <olly@survex.com>
20768         * AUTHORS: Add Ron Kass for several bug reports.
20770 Wed Oct 24 05:13:01 BST 2007  Olly Betts <olly@survex.com>
20772         * queryparser/queryparser.lemony: Fix parsing of queries which consist
20773           only of boolean filter terms and HATE-d terms.
20774         * tests/queryparsertest.cc: Add regression tests, and a few more cases
20775           which passed before too.  Fix descriptions of queries which now give
20776           different (but equivalent) Xapian::Query object hierarchies.
20778 Wed Oct 24 04:51:56 BST 2007  Olly Betts <olly@survex.com>
20780         * queryparser/queryparser.lt: Fix warning in debug log build.
20782 Wed Oct 24 04:41:08 BST 2007  Olly Betts <olly@survex.com>
20784         * backends/flint/flint_table.cc,backends/flint/flint_table.h: Don't
20785           use class member function pointers to implement FlintTable::next()
20786           and FlintTable::prev() as we can just call the methods directly
20787           based on the sequential flag.  Profiling suggests this speeds up
20788           searches a little, the two pointers take up 16 bytes each (on
20789           x86_64) so it reduces the class size by up to 32 bytes, and the code
20790           is simpler because we no longer need to update prev_ptr and
20791           next_ptr.
20793 Wed Oct 24 00:16:06 BST 2007  Olly Betts <olly@survex.com>
20795         * api/omqueryinternal.cc: Tweak Query::get_description() to describe
20796           OP_SCALE_WEIGHT queries as '<factor> * <subquery>' rather than
20797           '<subquery> * <factor>' as the former results in more readable
20798           descriptions.
20799         * queryparser/queryparser.lemony: Use OP_SCALE_WEIGHT with factor 0.0
20800           for queries which should be purely boolean which resolves a FIXME
20801           comment in the code.
20802         * tests/queryparsertest.cc: Fix expected results for this change.
20804 Tue Oct 23 19:13:08 BST 2007  Olly Betts <olly@survex.com>
20806         * queryparser/queryparser.lemony: Some as_XXX() methods delete the
20807           object they are called on, while others don't, so rename the ones
20808           which don't to get_XXX() to make the code clearer, and make them
20809           all return Query rather than Query *.  Eliminate Term::as_query()
20810           completely - when we actually want a new object we can just call
20811           new in the caller.  op_window_query() now takes the difference
20812           between the number of terms and the total window size, and we now
20813           use a std::vector to store the generated Query objects rather than
20814           a std::list, since we know how many there will be and can reserve
20815           the required size in advance.
20817 Tue Oct 23 18:33:49 BST 2007  Olly Betts <olly@survex.com>
20819         * queryparser/queryparser.lemony: Improve comment.
20821 Mon Oct 22 21:00:05 BST 2007  Olly Betts <olly@survex.com>
20823         * queryparser/queryparser.lemony: Fix handling of LOVE and HATE
20824           following a quoted phrase.
20825         * tests/queryparsertest.cc: Add regression test.
20827 Mon Oct 22 05:23:23 BST 2007  Olly Betts <olly@survex.com>
20829         * queryparser/queryparser.lemony: Refactor so Term::as_query() calls
20830           Term::as_query_object() instead of vice versa, as this avoids
20831           calling 'new Query' quite a bit and makes a measurable difference
20832           to the speed of the QueryParser.  Fix a call to as_query() which
20833           can be as_query_object().
20835 Mon Oct 22 04:10:17 BST 2007  Olly Betts <olly@survex.com>
20837         * queryparser/queryparser.lemony: FLAG_PARTIAL with multi-prefixes
20838           would result in inflated wqf for the "normal" version of the term
20839           treated as partial.
20840         * tests/queryparsertest.cc: Add regression test.
20842 Mon Oct 22 02:34:58 BST 2007  Olly Betts <olly@survex.com>
20844         * queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
20845           Rename QueryParser::Internal::prefixes to prefixmap to avoid
20846           confusion with all the other variables which are now called
20847           "prefixes" in queryparser.lemony.  Eliminate have_prefix and
20848           instead just set prefixinfo to NULL by default.
20850 Sun Oct 21 23:56:57 BST 2007  Olly Betts <olly@survex.com>
20852         * common/omenquireinternal.h,include/xapian/enquire.h,
20853           include/xapian/query.h,matcher/: Implement a new QueryOptimiser
20854           class which can hoist the positional filters of OP_PHRASE and
20855           OP_NEAR higher up the tree and merge the "AND" inside them into
20856           any neighbouring OP_AND or OP_FILTER (bug#23).  This shaves 10% of
20857           the execution time of real world queries on real world data.  On
20858           particularly slow cases, the saving can be more dramatic - it
20859           saves 50% when tested on a log of slow cases.  OP_SCALE_WEIGHT
20860           scaling factors are now pushed down to the leaves and any leaf
20861           we a factor other than 0.0 (boolean) or 1.0 (unscaled) has
20862           its weights scaled using a ScaleWeight wrapper around the normal
20863           weighting object (bug#203).
20865 Sun Oct 21 23:46:11 BST 2007  Olly Betts <olly@survex.com>
20867         * include/xapian/query.h: Fix documentation of OP_SCALE_WEIGHT.
20868           Negative scaling factors aren't now clipped to 0, instead we
20869           throw Xapian::InvalidArgumentError.  Remove the explicit setting of
20870           OP_ELITE_SET to 10 which is no longer required.  Wrap a long comment
20871           line.
20873 Sun Oct 21 23:20:23 BST 2007  Olly Betts <olly@survex.com>
20875         * tests/api_anydb.cc: Tweak code and wrap comment.
20877 Sun Oct 21 04:53:40 BST 2007  Olly Betts <olly@survex.com>
20879         * matcher/extraweightpostlist.h: Add missing '#include "multimatch.h"'
20880           which is pulled in implicitly by some other header which always
20881           happens to be included before this one.
20883 Fri Oct 19 03:52:17 BST 2007  Olly Betts <olly@survex.com>
20885         * docs/deprecation.rst: Remove deprecation of
20886           QueryParser::add_prefix() and QueryParser::add_boolean_prefix().
20887           Reformat the tables to use the "simple table" style, and to all be
20888           126 columns wide, since that fits in a maximised terminal window
20889           without wrapping (at least on my machine!)
20891 Fri Oct 19 03:44:33 BST 2007  Olly Betts <olly@survex.com>
20893         * include/xapian/queryparser.h,queryparser/queryparser.cc,
20894           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
20895           tests/queryparsertest.cc: Since calling QueryParser::add_prefix()
20896           or QueryParser::add_boolean_prefix() a second time with the same
20897           field name was ignored before (rather than overriding as we had
20898           thought) it seems reasonable to change this behaviour.  This
20899           also avoids the need to deprecate these methods which will force all
20900           users to update their code.  Change the semantics of default_prefix
20901           - it's more useful if this overrides any default prefixes set with
20902           add_prefix(), since this allows the same QueryParser object to
20903           parse both a "general" search input which searches several fields
20904           and also a "title" search input.  Trying to set the same field
20905           as probabilistic and boolean now throws InvalidOperationError
20906           rather than UnimplementedError.
20908 Fri Oct 19 03:29:53 BST 2007  Olly Betts <olly@survex.com>
20910         * queryparser/queryparser.lt: Fix compilation.
20912 Fri Oct 19 03:28:37 BST 2007  Olly Betts <olly@survex.com>
20914         * docs/Makefile.am: We're still getting "info" messages in the
20915           generated HTML.  It seems to be impossible to get rst2html to
20916           report "info" messages to stdout without adding them to the
20917           generated document, so just drop "--verbose" to disable them
20918           completely.
20920 Thu Oct 18 18:27:28 BST 2007  Olly Betts <olly@survex.com>
20922         * queryparser/queryparser.lt: Use std::vector<> for the stack in the
20923           lemon-generated parser.  This means that the stack is no longer a
20924           fixed size, so we needn't worry about overflow, and that in typical
20925           use it'll actually use less memory (lemon defaults to a 100 entry
20926           stack).
20928 Thu Oct 18 17:23:45 BST 2007  Olly Betts <olly@survex.com>
20930         * languages/turkish.sbl: Minimise differences with Snowball SVN HEAD
20931           by stripping trailing whitespace.
20933 Mon Oct 15 15:39:26 BST 2007  Olly Betts <olly@survex.com>
20935         * backends/quartz/btree_util.h: Need "safeunistd.h" for close().
20936           Fixes build errors on mingw and with SGI's CC on IRIX.
20938 Mon Oct 15 05:30:23 BST 2007  Olly Betts <olly@survex.com>
20940         * matcher/localmatch.cc: Fix typo in comment.
20942 Mon Oct 15 05:26:35 BST 2007  Olly Betts <olly@survex.com>
20944         * common/omassert.h: Rewritten from scratch.  The new version only
20945           includes headers if assertions are enabled, which should help
20946           to speed up non-assertion builds by reducing unnecessary header
20947           inclusion.  Also, float.h and math.h are never now pulled in -
20948           instead we use the new within_DBL_EPSILON() function.  AssertNe()
20949           and AssertNeParanoid() are never actually used, so replace them with
20950           AssertRel() and AssertRelParanoid which allow the user to assert any
20951           binary relation, not just inequality.  Also, we now use rare() to
20952           give branch prediction hints for assertion tests (since the failure
20953           branch should never be taken).
20954         * common/omdebug.h,common/stringutils.h,tests/harness/testsuite.h:
20955           Replace several definitions of the STRINGIZE macro with a single
20956           version in common/stringutils.h.
20957         * backends/flint/,backends/inmemory/inmemory_database.cc,
20958           backends/multi/multi_postlist.cc,backends/quartz/,
20959           backends/remote/remote-database.cc,bin/quartzcheck.cc,
20960           bin/xapian-compact.cc,common/stringutils.h,expand/expandweight.cc,
20961           expand/ortermlist.cc,matcher/phrasepostlist.cc,
20962           matcher/scaleweightpostlist.cc,net/remoteconnection.cc,
20963           net/tcpserver.cc: Explicitly include headers which were previously
20964           being pulled in implicitly by omassert.h.
20965         * HACKING: Update the documentation for assertion calls, and document
20966           CompileTimeAssert() (which previously wasn't documented here).
20968 Mon Oct 15 05:09:15 BST 2007  Olly Betts <olly@survex.com>
20970         * common/utils.cc,common/utils.h: Add within_DBL_EPSILON() function
20971           which returns true if its two double arguments differ by less
20972           than DBL_EPSILON (currently not used anywhere).
20974 Mon Oct 15 05:03:50 BST 2007  Olly Betts <olly@survex.com>
20976         * matcher/multiandpostlist.cc: If check sets valid to true, we can't
20977           be at_end(), so check valid first as at_end() is a rare event.
20979 Mon Oct 15 05:00:18 BST 2007  Olly Betts <olly@survex.com>
20981         * matcher/: Remove code for FilterPostList, which has been unused for
20982           ages.
20984 Sun Oct 14 02:13:57 BST 2007  Olly Betts <olly@survex.com>
20986         * matcher/andpostlist.cc: AndPostList now ensures that its left is
20987           less frequent than its right (it can still be produced as an
20988           operator decay product, and sometimes left is more frequent when
20989           this happens).
20991 Sun Oct 14 00:58:20 BST 2007  Olly Betts <olly@survex.com>
20993         * matcher/multimatch.cc: Use rare() to mark rarely taken branches.
20995 Sun Oct 14 00:30:46 BST 2007  Olly Betts <olly@survex.com>
20997         * configure.ac: Add rare() and usual() macros to config.h which allow
20998           branch prediction hints to be given for compilers which support this
20999           (currently GCC and Intel C++).
21000         * HACKING: Document rare() and usual().
21002 Sat Oct 13 22:37:32 BST 2007  Olly Betts <olly@survex.com>
21004         * HACKING: Improve wording.
21006 Sat Oct 13 16:42:26 BST 2007  Olly Betts <olly@survex.com>
21008         * api/postlist.cc,common/postlist.h,matcher/: Implement a variant of
21009           PostList::skip_to() called PostList::check() which isn't required
21010           to leave the PostList on a particular docid.  This allows queries
21011           filtered by a ValueRangePostList to run around 3.5 times faster.
21012           Fixes buf#164, though there's probably scope for at least some
21013           further improvement.
21015 Sat Oct 13 16:08:07 BST 2007  Olly Betts <olly@survex.com>
21017         * matcher/multiandpostlist.cc: Fix typo bug (get_termfreq_min
21018           should be get_termfreq_max!)
21020 Sat Oct 13 15:53:52 BST 2007  Olly Betts <olly@survex.com>
21022         * matcher/multiandpostlist.cc: Fix assertion (should be <= not <).
21024 Fri Oct 12 01:20:05 BST 2007  Olly Betts <olly@survex.com>
21026         * HACKING: Note that rst2html may be installed as rst2html.py.
21028 Fri Oct 12 01:10:11 BST 2007  Olly Betts <olly@survex.com>
21030         * matcher/localmatch.cc: Tweak formatting.
21032 Thu Oct 11 22:58:36 BST 2007  Olly Betts <olly@survex.com>
21034         * tests/: svn:ignore: Add termgentest and termgentest.exe.
21036 Thu Oct 11 16:18:03 BST 2007  Olly Betts <olly@survex.com>
21038         * configure.ac: If rst2html isn't found, also look for rst2html.py,
21039           which archlinux reportedly installs it as.
21041 Thu Oct 11 16:09:20 BST 2007  Olly Betts <olly@survex.com>
21043         * matcher/: Round the result of all get_termfreq_est() calculations to
21044           the nearest integer instead of rounding down.
21046 Thu Oct 11 15:40:48 BST 2007  Olly Betts <olly@survex.com>
21048         * matcher/: Add new PostList subclass MultiAndPostList which handles
21049           a multi-way AND operation in a single class.  This allows us to
21050           optimise some cases of 3 or more way AND operations much better
21051           and gives a 16-17% performance improvement in tests using real-world
21052           query logs.
21053         * tests/api_anydb.cc: MultiAndPostList rounds get_termfreq_est()
21054           calculations to the nearest integer (rather than always rounding
21055           down) so adjust the expected answers in test_matches.
21057 Thu Oct 11 15:14:27 BST 2007  Olly Betts <olly@survex.com>
21059         * matcher/selectpostlist.cc: Explicitly qualify next() as
21060           SelectPostList::next().
21062 Thu Oct 11 13:04:40 BST 2007  Olly Betts <olly@survex.com>
21064         * README: Remove the ancient history lesson - this material is better
21065           left to the history page on the website.
21067 Thu Oct 11 00:33:34 BST 2007  Olly Betts <olly@survex.com>
21069         * matcher/branchpostlist.h: Fix comment typo.
21071 Thu Oct 11 00:28:29 BST 2007  Olly Betts <olly@survex.com>
21073         * api/postlist.cc,backends/flint/flint_alldocspostlist.cc,
21074           backends/flint/flint_alldocspostlist.h,common/postlist.h,matcher/:
21075           Eliminate several implementations of open_position_list and
21076           read_position_list in favour of default ones in the PostList base
21077           class which throw InvalidOperationError.  Change the default
21078           get_wdf implementation to also throw InvalidOperationError.
21080 Wed Oct 10 22:27:44 BST 2007  Olly Betts <olly@survex.com>
21082         * docs/install.html: Improve the remainder.  This documents now just
21083           gives a brief overview of building, suitable for most common cases,
21084           and defers to the INSTALL document in each tarball for more details.
21086 Wed Oct 10 21:51:39 BST 2007  Olly Betts <olly@survex.com>
21088         * common/leafpostlist.h: Rewrite header.
21089         * api/Makefile.mk,api/leafpostlist.cc: Add new source file for
21090           virtual, and non-trivial, non-virtual, methods of LeafPostList.
21091         * api/omdatabase.cc,backends/inmemory/inmemory_database.h,
21092           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
21093           backends/remote/net_postlist.h,common/emptypostlist.h: Add missing
21094           '#include "omassert.h"' which was previously pulled in implicitly
21095           via '#include "leafpostlist.h"'.
21096         * backends/inmemory/inmemory_database.h: Remove unused '#include
21097           <stdlib.h>'.
21098         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
21099           MultiPostList::set_termweight() is never used, so eliminate it.
21100         * backends/remote/net_postlist.cc: Rename parameter "weight" to
21101           "min_weight" to avoid clash with new member variable of
21102           LeafPostList.
21103         * matcher/emptysubmatch.cc,matcher/localmatch.cc: Don't call
21104           LeafPostList::set_termweight() with a BoolWeight object - the
21105           default behaviour is now equivalent.
21107 Wed Oct 10 18:18:09 BST 2007  Olly Betts <olly@survex.com>
21109         * docs/install.html: Improve the first half.
21111 Wed Oct 10 16:32:57 BST 2007  Olly Betts <olly@survex.com>
21113         * common/postlist.h: Rewrite header.
21114         * api/Makefile.mk,api/postlist.cc: Add new source file for virtual
21115           methods of Xapian::PostingIterator::Internal.
21116         * api/omdatabase.cc,backends/flint/flint_postlist.h,
21117           backends/quartz/quartz_alldocspostlist.cc,
21118           backends/quartz/quartz_postlist.h,matcher/valuerangepostlist.cc:
21119           Add missing '#include "autoptr.h"' which was previously pulled in
21120           implicitly via '#include "postlist.h"'.
21122 Wed Oct 10 16:25:08 BST 2007  Olly Betts <olly@survex.com>
21124         * tests/quartztest.cc: Remove quartztest's test_postlist1 and
21125           test_postlist2.
21126         * tests/api_db.cc: Enhance test_termstats to cover part of the removed
21127           tests.  Enhance test_postlist1 to check more long terms.  Eliminate
21128           the helper function from test_postlist3.
21129         * tests/api_wrdb.cc: Add test_postlist7 to cover the rest of what the
21130           removed tests checked which isn't already checked elsewhere.
21132 Wed Oct 10 02:29:44 BST 2007  Olly Betts <olly@survex.com>
21134         * HACKING: Update the release checklist.
21136 Wed Oct 10 02:01:03 BST 2007  Olly Betts <olly@survex.com>
21138         * matcher/scaleweightpostlist.cc,matcher/scaleweightpostlist.h: Move
21139           virtual dtor definition out of header.
21141 Wed Oct 10 01:41:05 BST 2007  Olly Betts <olly@survex.com>
21143         * matcher/msetpostlist.cc: Avoid virtual method overhead in
21144           MSetPostList::recalc_maxweight().
21146 Wed Oct 10 00:16:00 BST 2007  Olly Betts <olly@survex.com>
21148         * common/expandweight.h,expand/expand.cc,expand/expandweight.cc: We
21149           never actually use ExpandWeight::get_maxweight(), so remove it.
21151 Tue Oct 09 16:27:54 BST 2007  Olly Betts <olly@survex.com>
21153         * backends/flint/flint_database.cc,backends/flint/flint_version.cc,
21154           backends/flint/flint_version.h: Don't try to upgrade a flint
21155           database if we're only reading it, or it's already the latest
21156           version.
21158 Mon Oct 08 10:14:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21160         * tests/api_nodb.cc: Rename test_scaleweightmatchnothing1 to
21161           test_scaleweight3 so all the scaleweight tests can be run
21162           together more easily.  Add test_scaleweight4 to test that scaling
21163           by a weight close to 1 is optimised away.
21165 Sun Oct 07 12:20:14 BST 2007  Olly Betts <olly@survex.com>
21167         * include/xapian/database.h: Add explicit note that
21168           Database::get_metadata() returns an empty string when the backend
21169           doesn't support user-specified metadata, and that
21170           WritableDatabase::set_metadata() throws UnimplementedError in this
21171           case.  Add note about current behaviour with multidatabases.
21173 Sun Oct 07 10:58:24 BST 2007  Olly Betts <olly@survex.com>
21175         * api/omqueryinternal.cc: No need to use AutoPtr<> here now.
21177 Sun Oct 07 10:54:05 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21179         * common/remoteprotocol.h: Bump the network protocol minor
21180           revision, since we've added a query operator (OP_SCALE_WEIGHT)
21181           and the server will need to be updated to understand serialised
21182           queries containing it.
21184 Sun Oct 07 01:54:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21186         * api/omqueryinternal.cc,include/xapian/query.h,matcher/,
21187           tests/api_anydb.cc,tests/api_nodb.cc,tests/internaltest.cc:
21188           Rename OP_MULT_WEIGHT to OP_SCALE_WEIGHT and MultWeight to
21189           ScaleWeight, and move it to before OP_MULT_WEIGHT (to remove the
21190           gap in the enum).
21191           Don't do an epsilon test to compare the weight to zero (when
21192           checking if it's effectively a boolean query) - do an exact
21193           comparison instead.  Raise an exception if the parameter for
21194           OP_SCALE_WEIGHT is < 0 (instead of clipping it to 0).  Adjust
21195           weights accordingly.
21196           Add test_scaleweight2() to test a query with some weights
21197           multiplied by 0, and some by a different factor.
21199 Wed Oct 03 17:23:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21201         * api/omqueryinternal.cc,tests/api_nodb.cc: Fix (and test) for a
21202           double delete if OP_MULT_WEIGHT was applied to an empty query.
21204 Mon Oct 01 13:20:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21206         * NEWS: Update
21207         * net/remoteconnection.cc: Back out previous change - I was
21208           confused, the code was previously fine, and the change broke it.
21210 Mon Oct 01 13:13:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21212         * api/omqueryinternal.cc: Fix access of uninitialised member when
21213           unserialising a mult-weight query.
21214         * tests/internaltest.cc: Add a regression test for unserialisationg
21215           of mult-weight queries.
21217 Mon Oct 01 13:11:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21219         * net/remoteconnection.cc: After calling read(), check for received
21220           == 0 after checking for errors, so that if an EINTR occurs in
21221           read, we don't report EOF instead of retrying.
21223 Sun Sep 30 23:20:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21225         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h: Add
21226           OP_MULT_WEIGHT operator, and a new Query constructor which takes
21227           a single subquery and a "double" parameter - currently only
21228           useful for OP_MULT_WEIGHT.  Add dbl_parameter to Query::Internal,
21229           to hold this parameter.  Add serialisation of OP_MULT_WEIGHT
21230           using "." to represent the operator.  Drop OP_MULT_WEIGHT
21231           operators which have a parameter of 1 (or very close) when
21232           simplifying, since these have no effect.
21233         * matcher/multweightpostlist.cc,matcher/multweightpostlist.h: New
21234           files, implementing a postlist which multiplies the weights from
21235           its single sub-postlist by a parameter.
21236         * matcher/Makefile.mk: Add new files.
21237         * matcher/localmatch.cc: Add support for the OP_MULT_WEIGHT query
21238           operator, which produces a MultWeightPostList if the associated
21239           parameter is greater than DBL_EPSILON, and produces a boolean query
21240           otherwise.
21241         * tests/api_anydb.cc: Add tests for OP_MULT_WEIGHT operator with
21242           various queries, and various multipliers.
21243         * NEWS: Update
21245 Sun Sep 30 23:13:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21247         * tests/harness/testsuite.h: Add TEST_NOT_EQUAL_DOUBLE() macro.
21248         * tests/harness/testsuite.cc: Add special
21249           case to TEST_EQUAL_DOUBLE_() for exact equality of the supplied
21250           arguments.  This is tidier in general, because it avoids "inf"
21251           being produces by the calculation, but is only actually necessary
21252           in the case where the arguments are both exactly 0; it all works
21253           out nicely for other values of the arguments.
21255 Sun Sep 30 21:12:40 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21257         * tests/queryparsertest.cc: #define XAPIAN_DEPRECATED to disable
21258           compiler warnings about the deprecated forms of add_prefix() and
21259           add_boolean_prefix().
21261 Sun Sep 30 21:07:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21263         * api/Makefile.mk,docs/Makefile.am,docs/deprecation.rst,
21264           include/Makefile.mk,include/xapian.h,include/xapian/queryparser.h,
21265           queryparser/queryparser.cc,queryparser/queryparser.lemony,
21266           queryparser/queryparser_internal.h,tests/: Re-apply changes which
21267           needed more thought or more work before being included in a
21268           release.
21269         * NEWS: Update with current descriptions of these changes.
21271 Sun Sep 30 20:22:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21273         * tests/valgrind.supp: Add further suppressions needed for the
21274           version of zlib on ubuntu gutsy.
21276 Fri Sep 28 15:38:18 BST 2007  Olly Betts <olly@survex.com>
21278         * NEWS: Final (?) update for 1.0.3.
21280 Fri Sep 28 15:37:22 BST 2007  Olly Betts <olly@survex.com>
21282         * PLATFORMS: Another small update.
21284 Fri Sep 28 15:30:17 BST 2007  Olly Betts <olly@survex.com>
21286         * HACKING: Add link to the 1.0.N tracker bug.
21288 Fri Sep 28 14:04:06 BST 2007  Olly Betts <olly@survex.com>
21290         * PLATFORMS: More updates.
21292 Fri Sep 28 13:45:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21294         * include/xapian/database.h: Document that empty metadata keys will
21295           cause an exception from get_metadata() and set_metadata().
21296         * api/omdatabase.cc: Cause empty metadata keys to raise an
21297           InvalidArgumentError if they're passed to set_metadata() or
21298           get_metadata().
21299         * tests/api_wrdb.cc: Add test_metadata3, to check behaviour with an
21300           empty metadata key.
21302 Fri Sep 28 13:30:49 BST 2007  Olly Betts <olly@survex.com>
21304         * PLATFORMS: Updates from tinderbox.
21306 Fri Sep 28 13:22:16 BST 2007  Olly Betts <olly@survex.com>
21308         * include/xapian/database.h: Clarify support for empty metadata keys.
21310 Fri Sep 28 11:00:08 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21312         * tests/valgrind.supp: Add second version of the zlib end condition
21313           check which works for the version of zlib in Ubuntu gutsy; ie,
21314           version 1.2.3.3, where the error occurs in the function called
21315           directly by deflate, rather than two levels below it.
21317 Fri Sep 28 03:11:11 BST 2007  Olly Betts <olly@survex.com>
21319         * configure.ac: Update for 1.0.3.
21321 Fri Sep 28 03:05:10 BST 2007  Olly Betts <olly@survex.com>
21323         * api/Makefile.mk,docs/Makefile.am,docs/deprecation.rst,
21324           include/Makefile.mk,include/xapian.h,include/xapian/queryparser.h,
21325           queryparser/queryparser.cc,queryparser/queryparser.lemony,
21326           queryparser/queryparser_internal.h,tests/: Back out changes which
21327           need more thought or more work in the interests of getting 1.0.3
21328           out this month.
21330 Fri Sep 28 03:04:19 BST 2007  Olly Betts <olly@survex.com>
21332         * NEWS: Update with recent changes.
21334 Fri Sep 28 01:55:42 BST 2007  Olly Betts <olly@survex.com>
21336         * docs/deprecation.rst: Revert to the previous deprecation policy.
21338 Fri Sep 28 01:20:34 BST 2007  Olly Betts <olly@survex.com>
21340         * include/xapian/enquire.h: Rephrase since "should be in the MSet"
21341           might be misunderstood.
21343 Fri Sep 28 01:12:47 BST 2007  Olly Betts <olly@survex.com>
21345         * AUTHORS,docs/Makefile.am,docs/glossary.rst,docs/index.html: Add
21346           glossary put together by Jenny Black, also incorporating entries
21347           from Deron Meranda's glossary on the wiki.
21349 Thu Sep 27 23:06:30 BST 2007  Olly Betts <olly@survex.com>
21351         * docs/stemming.html: Reorder the initial paragraphs so we actually
21352           answer the question "What is a stemming algorithm?" up front.
21354 Thu Sep 27 22:15:36 BST 2007  Olly Betts <olly@survex.com>
21356         * matcher/valuerangepostlist.cc: Call ValueRangePostList::next()
21357           explicitly to avoid the overhead of virtual method dispatch.
21359 Thu Sep 27 14:43:25 BST 2007  Olly Betts <olly@survex.com>
21361         * common/termlist.h: Don't need to forward declare
21362           Xapian::Internal::ExpandWeight here.
21364 Thu Sep 27 14:36:00 BST 2007  Olly Betts <olly@survex.com>
21366         * common/termlist.h: Add missing (but indirectly included) '#include
21367           <xapian/base.h>'.
21369 Fri Sep 21 18:00:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21371         * docs/deprecation.rst: Add deprecation for
21372           Database::positionlist_begin() throwing DocNotFoundError , for
21373           same reason as deprecating it throwing RangeError.  Also, add
21374           deprecation for QueryParser::add_prefix(f, p) and
21375           add_boolean_prefix() - replaced by three argument form of
21376           add_prefix.  Also, add a policy that we don't add
21377           XAPIAN_DEPRECATED when there's no replacement for the deprecated
21378           feature in the last x.x.0 release.
21379         * include/xapian/queryparser.h: Add @deprecated to documentation
21380           comments for add_prefix(f, p) and add_boolean_prefix() (but don't
21381           add XAPIAN_DEPRECATED() macro for now).
21383 Fri Sep 21 16:13:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21385         * include/xapian/queryparser.h: Fix copy and paste errors in
21386           documentation comment, and hopefully clarify it somewhat.
21388 Fri Sep 21 15:50:40 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21390         * tests/queryparsertest.cc: Initialise the default prefix from
21391           prefixes.find(""), allowing multiple default prefixes to be set
21392           by calling add_prefix() with an empty field name.
21393         * queryparser/queryparser.lemony: Several more tests; mainly for
21394           the new default_prefix functionality, but also a bit more
21395           coverage for multiple prefixes in general.
21397 Fri Sep 21 15:04:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21399         * include/xapian/queryparser.h,queryparser/queryparser.cc: API
21400           addition: Revert previous change to behaviour of
21401           QueryParser::add_prefix and QueryParser::add_boolean_prefix
21402           methods, to avoid API change within a release series.  Add new
21403           QueryParser::add_prefix() form which takes three parameters; the
21404           third parameter is a value from a new "prefix_type" enum.
21405         * queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
21406           Internal changes to allow multiple filters to be set for a single
21407           field:
21408            - Remove the PrefixInfoList object again - instead add a list of
21409              prefixes to PrefixInfo.  We only aim to support one type of
21410              prefix for a given field, so the extra flexibility given by
21411              PrefixInfoList is a districation.
21412            - Change filter_group_id to be based on a list of prefixes,
21413              instead of a single prefix.
21414            - Change Term objects to store a list of prefixes instead of a
21415              single prefix.  make_term() now takes a prefix argument and
21416              makes a single term.  Term::as_... methods iterate through the
21417              prefix list and OR together the resulting terms.
21418            - Change TermList object to store a list of Terms instead of
21419              Queries, and also to keep track of whether the prefix lists
21420              for those Terms are all the same.  When they are the same,
21421              generate separate phrases for each prefix, and OR them
21422              togeher, instead of generating phrases of "OR" groups of
21423              terms.  Remove the unused "TermList::add_term()" method.
21424         * tests/queryparsertest.cc: Add simple tests of repeated inline
21425           fields, phrases with multiple prefixed fields, tests of backwards
21426           compatible behaviour of add_prefix(field, prefix), and
21427           add_boolean_prefix(), and of the new add_prefix() form with
21428           incompatible types.
21430 Thu Sep 20 02:13:36 BST 2007  Olly Betts <olly@survex.com>
21432         * NEWS: Update with changes since 1.0.2.
21434 Wed Sep 19 20:00:43 BST 2007  Olly Betts <olly@survex.com>
21436         * backends/flint/flint_table.cc: Fix "Key_" in exception message to
21437           say "Key" (the result of overzealous search-and-replace).
21439 Wed Sep 19 17:08:16 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21441         * include/xapian/queryparser.h,queryparser/queryparser.cc,
21442           queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
21443           Handle repeated calls to QueryParser::add_boolean_prefix() with
21444           the same field - this will generate multiple terms for each
21445           occurrence of the field in the query.  Involves reorganising the
21446           internal representation of prefixes, to hold a list of PrefixInfo
21447           objects for each field, instead of a single object.  This also
21448           paves the way towards handling for multiple calls to
21449           QueryParser:add_prefix() with the same field, and allowing
21450           add_{boolean_}prefix() with an empty field to set the default
21451           prefix handling, but the behaviour of this are currently
21452           unchanged.  Technically, this could be considered an API change,
21453           but the previous behaviour (of using only the most recent value
21454           set by add_boolean_prefix) was unintentional and undocumented,
21455           and seems unlikely to have been deliberately used.
21456         * tests/queryparsertest.cc: Add a very simple test for repeated
21457           boolean_prefix fields; several more are needed.  Also, a
21458           commented out test of repeated non-boolean prefix fields.
21460 Tue Sep 18 23:28:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21462         * queryparser/queryparser.lemony: Remove unused variable
21463           "term_group".
21465 Tue Sep 18 16:56:37 BST 2007  Olly Betts <olly@survex.com>
21467         * api/matchspy.cc,include/xapian/matchspy.h: Use a set rather than a
21468           map to store the "multivalues" flags.
21470 Mon Sep 17 14:10:47 BST 2007  Olly Betts <olly@survex.com>
21472         * include/xapian/matchspy.h: Fix documentation comment typo.
21474 Sun Sep 16 04:13:20 BST 2007  Olly Betts <olly@survex.com>
21476         * net/remoteconnection.cc: Fix compiler warning in mingw build.
21478 Sun Sep 16 02:59:54 BST 2007  Olly Betts <olly@survex.com>
21480         * backends/flint/flint_database.cc,tests/api_wrdb.cc: Check length of
21481           new terms is at most 245 bytes for flint in add_document() and
21482           replace_document() so that the API user gets an error there rather
21483           than when flush() is called (explicitly or implicitly).  Fixes
21484           bug#44.
21486 Sat Sep 15 20:11:36 BST 2007  Olly Betts <olly@survex.com>
21488         * backends/flint/flint_version.cc: Add missing include of
21489           msvc_posix_wrapper.h.
21491 Sat Sep 15 17:58:35 BST 2007  Olly Betts <olly@survex.com>
21493         * api/omdatabase.cc,backends/database.cc,
21494           backends/flint/flint_database.cc,backends/flint/flint_database.h,
21495           backends/flint/flint_version.cc,
21496           backends/inmemory/inmemory_database.cc,
21497           backends/inmemory/inmemory_database.h,common/database.h,
21498           include/xapian/database.h,tests/api_wrdb.cc: Add support for user
21499           specified metadata (bug#143).
21501 Sat Sep 15 02:26:40 BST 2007  Olly Betts <olly@survex.com>
21503         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h:
21504           Implement FlintCursor::find_entry_ge() a little more efficiently
21505           (we could do better still by modifying FlintTable too).
21507 Sat Sep 15 00:56:54 BST 2007  Olly Betts <olly@survex.com>
21509         * backends/flint/flint_cursor.cc: If we found the exact key, just copy
21510           it to current_key.
21512 Fri Sep 14 21:52:45 BST 2007  Olly Betts <olly@survex.com>
21514         * backends/flint/: Overhaul FlintAllDocsPostList.
21516 Fri Sep 14 19:20:56 BST 2007  Olly Betts <olly@survex.com>
21518         * backends/flint/flint_alltermslist.cc: Rework
21519           FlintAllTermsList::skip_to() to use FlintCursor::find_entry_ge().
21521 Fri Sep 14 17:45:06 BST 2007  Olly Betts <olly@survex.com>
21523         * backends/flint/flint_cursor.h: Improve documentation comment.
21525 Fri Sep 14 17:28:17 BST 2007  Olly Betts <olly@survex.com>
21527         * backends/flint/flint_spellingwordslist.cc,
21528           backends/flint/flint_synonym.cc: Use FlintCursor::find_entry_ge().
21529         * backends/flint/flint_synonym.h: Use FlintCursor::find_entry_lt().
21530         * backends/flint/flint_alltermslist.h: Use FlintCursor::find_entry_lt()
21531           and skip any keys before "\x00\xff" to allow for extra metadata
21532           keys.
21534 Fri Sep 14 15:26:04 BST 2007  Olly Betts <olly@survex.com>
21536         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: The
21537           reason why a deleted key is still visible to the cursor is that it
21538           is running over the previous revision of the tree.  So we don't
21539           need to call find_entry() at all - we can just call next().  Also
21540           extend FlintCursor::del() to return whether the cursor is positioned
21541           (like FlintCursor::next() does).
21542         * backends/flint/flint_postlist.cc: Use the return value of
21543           FlintCursor::del().
21545 Fri Sep 14 15:10:39 BST 2007  Olly Betts <olly@survex.com>
21547         * tests/Makefile.am: Reorder the testdata/flint-x.y.z files
21548           consistently.
21550 Fri Sep 14 12:48:04 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21552         * configure.ac: Add "tar-ustar" option to AM_INIT_AUTOMAKE.  This
21553           is needed to avoid a failure of make dist due to filepaths of
21554           more than 99 characters (in the generated documentation: the
21555           relevant filepaths are for the NumberValueRangeProcessor class,
21556           and extend to 103 characters).  Automake documentation implies
21557           that tar-v7 is the default format, which doesn't support
21558           filepaths longer than 99 characters portably; ustar allows 256
21559           characters.  The automake documentation says that the ustar
21560           format "is believed to be old enough to be portable"; if we come
21561           across problems due to the format change we could consider
21562           renaming files to reduce the filepath length.
21563         * tests/Makefile.am: Remove
21564           testdata/flint-1.0.2/{value,position}.{baseA,DB} from
21565           distribution, since they don't actually exist.  Fixes make dist.
21567 Fri Sep 14 10:45:35 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21569         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Add
21570           FlintCursor::find_entry_gt(), and use it instead of
21571           flint_entry_ge() in FlintCuror::del().  This fixes failure of
21572           deldoc4 test.  I'm not sure why find_entry() can return true
21573           immediately after the key it's searching for was deleted with
21574           B->del(), though: that merits further investigation.
21576 Fri Sep 14 04:57:14 BST 2007  Olly Betts <olly@survex.com>
21578         * bin/xapian-inspect.cc: Avoid comparing char with 0 - on platforms
21579           where char is unsigned by default this can give a compiler warning.
21581 Fri Sep 14 03:40:18 BST 2007  Olly Betts <olly@survex.com>
21583         * bin/xapian-compact.cc: Removed unused variable.
21585 Fri Sep 14 01:56:36 BST 2007  Olly Betts <olly@survex.com>
21587         * backends/flint/flint_alltermslist.cc: Fix comment typo.
21589 Fri Sep 14 01:51:52 BST 2007  Olly Betts <olly@survex.com>
21591         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Add
21592           FlintCursor::find_entry_lt() and FlintCursor::find_entry_ge()
21593           which we can implement more efficiently (in the future) than
21594           user code calling FlintCursor::find_entry() and then having to
21595           adjust the cursor position in some cases.
21597 Thu Sep 13 14:52:34 BST 2007  Olly Betts <olly@survex.com>
21599         * backends/flint/flint_alltermslist.cc: FlintCursor::after_end() is
21600           never true after FlintCursor::find_entry() so remove check for this
21601           case!
21603 Thu Sep 13 03:11:19 BST 2007  Olly Betts <olly@survex.com>
21605         * backends/flint/flint_alltermslist.h,backends/flint/flint_database.cc,
21606           backends/flint/flint_database.h: Don't pass FlintPostListTable
21607           pointer to FlintAllTermsList - it can find this via the database
21608           if we make it FlintDatabase instead of Database::Internal.
21610 Thu Sep 13 02:07:19 BST 2007  Olly Betts <olly@survex.com>
21612         * backends/flint/: Read/write the metainfo key from FlintDatabase to
21613           avoid having to pass a huge long list of values across once we start
21614           to store more statistics.
21616 Thu Sep 13 02:03:46 BST 2007  Olly Betts <olly@survex.com>
21618         * backends/database.cc,common/database.h: Move definitions of virtual
21619           methods out of the header file.
21621 Thu Sep 13 01:33:49 BST 2007  Olly Betts <olly@survex.com>
21623         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
21624           Store the total_length and lastdocid values in FlintDatabase object.
21626 Wed Sep 12 20:27:49 BST 2007  Olly Betts <olly@survex.com>
21628         * matcher/multimatch.cc: Eliminate a block which used to scope some
21629           variables which have now moved.  Unify debug output from different
21630           cases after the match.  Remove half-finished comment which doesn't
21631           seem to be trying to say anything useful.
21633 Wed Sep 12 20:20:18 BST 2007  Olly Betts <olly@survex.com>
21635         * tests/api_anydb.cc: In checkatleast2, the total number of matching
21636           documents in the database is 5, so use TEST_EQUAL instead of
21637           TEST_GREATER_OR_EQUAL to compare get_matches_lower_bound() with 5.
21639 Wed Sep 12 17:55:00 BST 2007  Olly Betts <olly@survex.com>
21641         * backends/flint/flint_database.h: Fix some comment typos and
21642           outdated information.  Remove some superfluous uses of "virtual".
21644 Wed Sep 12 17:15:58 BST 2007  Olly Betts <olly@survex.com>
21646         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
21647           Failing to create a flint or quartz database because we couldn't
21648           create the directory for it now throws DatabaseCreateError not
21649           DatabaseOpeningError.
21650         * tests/api_db.cc: Update test cases.
21652 Wed Sep 12 15:40:16 BST 2007  Olly Betts <olly@survex.com>
21654         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
21655           If we reach the flush threshold during a transaction, flush the
21656           postlist changes, but don't actually commit them.
21658 Wed Sep 12 14:12:52 BST 2007  Olly Betts <olly@survex.com>
21660         * common/msvc_posix_wrapper.cc,common/msvc_posix_wrapper.h: Add
21661           msvc_posix_rename() which can rename a file on top of another file.
21662         * common/stringutils.h: Add common_prefix_length() function.
21663         * backends/flint/: Clean up FlintWritableDatabase - it now just
21664           inherits from FlintDatabase which allows several virtual methods
21665           which just forwarded to FlintDatabase to be dropped.  Also, we
21666           now no longer need to pass FlintTable objects to other classes
21667           - they can just find the tables they want via the database pointer.
21668           The never-used "store_termfreqs" flag has been dropped from the
21669           termlist table entries - existing 1.0.x flint databases will be
21670           automatically upgraded to the new version.  Opening a database
21671           now calls stat() less, so should be slightly more efficient.
21672           And TermIterator::positionlist_count() now works for the flint
21673           backend.
21674         * tests/Makefile.am,tests/api_db.cc,tests/testdata/flint-1.0.2/: New
21675           test flintbackwardcompat2 which tests that we can open a flint
21676           database from 1.0.2.
21677         * tests/api_wrdb.cc: New test adddoc4 which checks that termlists
21678           handle an initial term of any valid length correctly.
21679         * tests/testdata/flint-1.0.1/postlist.DB: Mark as a binary file in
21680           SVN.
21682 Tue Sep 11 23:02:56 BST 2007  Olly Betts <olly@survex.com>
21684         * backends/inmemory/inmemory_database.cc,
21685           backends/inmemory/inmemory_database.h: Implement
21686           TermIterator::positionlist_count() for the inmemory backend.
21687         * tests/api_posdb.cc: Add feature test for
21688           TermIterator::positionlist_count() (which currently skips for all
21689           backends except inmemory).
21691 Tue Sep 11 03:43:30 BST 2007  Olly Betts <olly@survex.com>
21693         * backends/flint/flint_database.cc: Make sure flush_threshold gets
21694           initialised.
21695         * backends/flint/flint_database.h: Change type of flush_threshold from
21696           `size_t' to `Xapian::doccount' for consistency with the type of
21697           changes_made.
21699 Tue Sep 11 03:19:37 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21701         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
21702           Change flush_threshold from static to non-static, and set it for
21703           each FlintWritableDatabase based on the value of the
21704           XAPIAN_FLUSH_THRESHOLD environment variable at the time the
21705           database was opened, instead of caching the value for each future
21706           database which is opened.
21708 Tue Sep 11 02:59:45 BST 2007  Olly Betts <olly@survex.com>
21710         * docs/Makefile.am: When running rst2html, use "--exit-status=warning"
21711           rather than "--strict".  The former actually gives a non-zero exit
21712           status for a warning or worse, while the former doesn't, but does
21713           include any "info" messages in the output HTML.
21715 Tue Sep 11 02:38:30 BST 2007  Olly Betts <olly@survex.com>
21717         * docs/deprecation.rst: Add "Database::positionlist_begin() throwing
21718           RangeError".
21720 Tue Sep 11 00:52:27 BST 2007  Olly Betts <olly@survex.com>
21722         * HACKING: Document a few more "coding standards".
21724 Mon Sep 10 21:34:23 BST 2007  Olly Betts <olly@survex.com>
21726         * examples/delve.cc,examples/simpleexpand.cc,net/tcpserver.cc,
21727           queryparser/queryparser.cc,queryparser/queryparser.lemony: Add more
21728           missing "#include <string.h>" instances.
21730 Mon Sep 10 20:24:25 BST 2007  Olly Betts <olly@survex.com>
21732         * net/serialise.cc: Add missing "#include <string.h>".
21734 Sun Sep 09 15:38:11 BST 2007  Olly Betts <olly@survex.com>
21736         * backends/flint/flint_spelling.h,backends/flint/flint_synonym.h,
21737           backends/flint/flint_table.h: Fix typo (Z_DEFAULT_COMPRESSION
21738           where it should be Z_DEFAULT_STRATEGY) which meant that zlib
21739           compression wasn't enabled for the spelling or synonym tables.
21741 Fri Sep 07 19:31:44 BST 2007  Olly Betts <olly@survex.com>
21743         * docs/spelling.rst: Fix typo.
21745 Thu Sep 06 15:02:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21747         * api/editdistance.cc: Fix off-by-one error in loop bounds when
21748           setting up fkp array initially.  Fixes bug #194.
21749         * tests/api_wrdb.cc: Add regression test for #194, spell5.
21751 Thu Sep 06 14:31:15 BST 2007  Olly Betts <olly@survex.com>
21753         * tests/harness/testsuite.cc: More localised fix for preserving the
21754           start of the valgrind report when in verbose mode.  Rework the code
21755           which pulls out the start of the report to summarise why the test
21756           failed.
21758 Thu Sep 06 14:17:44 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21760         * tests/harness/testsuite.cc: When displaying valgrind output, seek
21761           back to the start of the valgrind output for the current test
21762           before dumping it to stdout: previously, the earlier check for the
21763           valgrind error message to display (when not using -v) caused the
21764           first 1024 bytes of the valgrind output to get dropped.
21766 Tue Sep 04 20:13:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21768         * matcher/multimatch.cc: For remote submatches, keep a count of
21769           matches which we know exist, but we don't get passed from the
21770           submatch.  These can be detected by checking for the lowerbound
21771           on the matches in the submatch being greater than the index of
21772           the last item in the returned submset.  When the match is over,
21773           use this count, together with docs_matched, to adjust the lower
21774           bound and estimate (and upper bound, if we've not seen as many
21775           documents as we were asked to check for).  Fixes checkatleast2
21776           and checkatleast3 in the remote database case.
21777         * tests/harness/testsuite.h: Add TEST_GREATER_OR_EQUAL,
21778           TEST_GREATER, TEST_LESSER_OR_EQUAL and TEST_LESSER macros, which
21779           display the values of the arguments if they fail.
21780         * tests/api_anydb.cc: Use TEST_GREATER_OR_EQUAL and TEST_EQUAL in
21781           checkatleast2 and checkatleast3, to make failures easier to
21782           debug.
21784 Tue Sep 04 18:16:49 BST 2007  Olly Betts <olly@survex.com>
21786         * matcher/multimatch.cc: Restructure to make the control flow clearer.
21787           Rewrap some comments which got wrapped to ~82 columns somehow.
21789 Tue Sep 04 17:21:49 BST 2007  Olly Betts <olly@survex.com>
21791         * docs/overview.html: Restore the HTML header I accidentally deleted
21792           in November 2006.
21794 Tue Sep 04 17:15:30 BST 2007  Olly Betts <olly@survex.com>
21796         * docs/overview.html: Fix typo.
21798 Tue Sep 04 13:47:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21800         * tests/api_anydb.cc: Tighten test_checkatleast3 to check for
21801           previous bug (now fixed).
21803 Tue Sep 04 13:37:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21805         * matcher/multimatch.cc: If check_at_least is greater than
21806           maxitems, but there are fewer results than check_at_least, the
21807           lower and upper bounds reported should be equal (and exact).  Fix
21808           a bug which caused this not to be the case, by checking if
21809           docs_matched < check_at_least, and forcing the bounds (and
21810           estimate) to be docs_matched in this case.
21812           Also, fix a bug when sorting by anything other than relevance,
21813           which was causing potential matches which are too low in the
21814           ranking to make the mset not to be added to the count of
21815           docs_matched, even when docs_matched < check_at_least.
21817           Also, add a few extra explanatory comments and debug log messages
21818           in get_mset().
21820 Tue Sep 04 12:43:03 BST 2007  Olly Betts <olly@survex.com>
21822         * PLATFORMS: Update from debian buildd logs.
21824 Tue Sep 04 09:57:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21826         * Makefile.am,configure.ac,msvc/genversion.pl,msvc/version.h.in:
21827           Move msvc/genversion.pl and msvc/version.h.in to win32msvc in
21828           xapian-maintainer-tools.  Remove generation of msvc/version.h
21829           from configure.in, and AC_SUBST() of MAJOR_VERSION,
21830           MINOR_VERSION and REVISION, which were only in place for this
21831           generation.  Remove msvc/version.h from distribution tarballs.
21833 Tue Sep 04 02:56:00 BST 2007  Olly Betts <olly@survex.com>
21835         * matcher/andpostlist.cc: If the database has > 2G documents then the
21836           sum of termfreq_min can overflow, so handle this case correctly.
21838 Tue Sep 04 00:05:47 BST 2007  Olly Betts <olly@survex.com>
21840         * xapian-config.in: We always need to include dependency_libs in the
21841           output of `xapian-config --libs` if shared libraries are disabled.
21843 Mon Sep 03 16:28:33 BST 2007  Olly Betts <olly@survex.com>
21845         * bin/xapian-check.cc: Allow "xapian-check db/record." and
21846           "xapian-check db/record.DB".
21848 Mon Sep 03 02:16:43 BST 2007  Olly Betts <olly@survex.com>
21850         * docs/deprecation.rst,include/xapian/enquire.h: Deprecate
21851           Enquire::register_match_decider().
21852         * api/omenquire.cc,common/omenquireinternal.h: Remove mdecider_map
21853           since the set values are never used anywhere.
21855 Sun Sep 02 20:54:33 BST 2007  Olly Betts <olly@survex.com>
21857         * HACKING: Add "update the 1.0.N tracker bug" to the release
21858           checklist.
21860 Fri Aug 31 10:44:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21862         * tests/api_db.cc,tests/api_wrdb.cc: Fix compilation of apitest,
21863           which was broken on 64 bit platforms due to size_t instead of
21864           doccount bug.
21866 Fri Aug 24 11:56:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21868         * api/matchspy.cc,include/xapian/matchspy.h: Fix uses of size_t
21869           which should have been Xapian::doccount.  Was causing compile
21870           errors on platforms where size_t and Xapian::doccount were
21871           different sizes.
21873 Fri Aug 03 20:10:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21875         * tests/api_nodb.cc: Add test_stringlistserialise1() to test the
21876           StringListSerialiser and StringListUnserialiser.  Change the list
21877           of testcases to use the TESTCASE and END_OF_TESTCASES macros.
21879 Fri Aug 03 19:53:26 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21881         * api/matchspy.cc,include/xapian/matchspy.h: Add StringListSerialiser
21882           and StringListUnserialiser classes which can be used to serialise
21883           a list of strings into a single string.  Add flag to
21884           ValueCountMatchSpy to use this to unserialise the values read
21885           from the database into multiple strings, allowing several values
21886           to be stored for a particular slot in a database: this allows
21887           multiple values of a particular facet to be stored.
21889 Thu Jul 26 16:55:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21891         * backends/flint/flint_table.cc: Change STRINGIZE to om_tostring()
21892           in error message about a key which is too long; STRINGIZE doesn't
21893           work since FLINT_BTREE_MAX_KEY_LEN is no longer a preprocessor
21894           constant - it's a C++ constant; before this change, the error
21895           message contained the literal text "FLINT_BTREE_MAX_KEY_LEN".
21897 Tue Jul 17 12:20:55 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21899         * api/matchspy.cc,include/xapian/matchspy.h: Add a
21900           MultipleMatchDecider, which calls a list of deciders in order,
21901           until one returns false.
21902         * include/xapian/enquire.h: Expand comment to say which way round
21903           the return values of the MatchDecider operator are.
21904         * tests/api_db.cc: Add test_matchfunctor3() to test the
21905           MultipleMatchDecider - also tests the ValueCountMatchSpy,
21906           incidentally.
21908 Tue Jul 17 11:10:42 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21910         * api/matchspy.cc,include/xapian/matchspy.h: Make
21911           get_most_frequent_items() private, since I'm not convinced it's
21912           useful to make it available externally.  We can always make it
21913           public again if it's useful to do so.
21914         * test/api_wrdb.cc: Update tests accordingly.
21916 Sat Jul 14 00:17:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21918         * api/matchspy.cc,include/xapian/matchspy.h: Get rid of the
21919           TopValueMatchSpy in favour of a new function
21920           "get_most_frequent_items", which processes the output of a
21921           ValueCountMatchSpy.  Add a TermCountMatchSpy which counts the
21922           occurrences of terms with a given prefix, and gives output in
21923           the same form as ValueCountMatchSpy.  Add convenience methods
21924           ValueCountMatchSpy::get_top_values() and
21925           TermCountMatchSpy::get_top_terms() which use this to return the
21926           most frequent items seen by the matchspy.
21927         * tests/api_wrdb.cc: Test the ValueCountMatchSpy, and the
21928           get_most_frequent_items() function.
21930 Fri Jul 13 18:57:30 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21932         * matcher/andpostlist.cc,tests/api_anydb.cc: Improve the lower
21933           bound on the number of matching documents for an AND query - if
21934           the sum of the lower bounds for the two sides is greater than the
21935           number of documents in the database, then some of them must have
21936           both terms.  This greatly improves the lower bound for queries of
21937           the form "<alldocuments> FILTER foo" (since FILTER is a subclass
21938           of AND, and uses the same method), but is probably a useful
21939           improvement elsewhere.
21941 Fri Jul 13 17:53:46 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21943         * docs/valueranges.rst: Correct out-of-date reference to
21944           float_to_string, spotted by Enrico Zini.
21946 Wed Jul 11 22:54:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21948         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
21949           Move ValueAndFrequency out of the TopValueMatchSpy class - it
21950           doesn't seem to be possible to wrap it with swig without doing
21951           this, and it doesn't seem much less tidy.
21953 Wed Jul 11 18:03:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21955         * api/matchspy.cc,include/xapian/matchspy.h: Split MatchSpy into a
21956           base class (ValueCountMatchSpy), which just counts the values in
21957           the documents it sees, and a subclass (CategorySelectMatchSpy)
21958           which does the grouping into categories, and scores the
21959           categories.  Add another subclass (TopValueMatchSpy) which
21960           calculates a sorted vector holding the most frequent values.
21961         * tests/api_wrdb.cc: Update matchspy1 and matchspy2 to use
21962           CategorySelectMatchSpy instead of MatchSpy, and corresponding
21963           changes to the methods.  Add matchspy3 to test the
21964           TopValueMatchSpy.
21966 Mon Jul 09 15:40:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21968         * tests/termgentest.cc: Fix copyright: everything I've done in 2007
21969           has been for Lemur.
21971 Mon Jul 09 15:40:38 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21973         * include/xapian/version_h.cc: Fix type in comment.
21975 Fri Jul 06 12:14:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21977         * include/xapian/enquire.h: Add note to register_match_decider()
21978           documentation comment of what this function is for, and also that
21979           it doesn't currently do anything (other than store the values
21980           passed to it in the enquire internals).
21982 Thu Jul 05 20:52:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21984         * docs/categorisation.rst: Fix typo.
21986 Thu Jul 05 20:41:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21988         * tests/api_wrdb.cc: Rework matchspy2 to use approximate values to
21989           avoid failing on some platform due to differing precision.
21991 Thu Jul 05 12:21:48 BST 2007  Olly Betts <olly@survex.com>
21993         * docs/categorisation.rst: Complete half sentence.
21995 Thu Jul 05 12:17:20 BST 2007  Olly Betts <olly@survex.com>
21997         * docs/categorisation.rst: Add section on restricting by category
21998           values.
22000 Thu Jul 05 04:47:18 BST 2007  Olly Betts <olly@survex.com>
22002         * docs/Makefile.am,docs/categorisation.rst: Add topic document
22003           discussing use of Xapian::MatchSpy.
22005 Thu Jul 05 02:08:13 BST 2007  Olly Betts <olly@survex.com>
22007         * include/xapian.h,tests/api_wrdb.cc: Restore MatchSpy stuff.
22009 Thu Jul 05 01:38:38 BST 2007  Olly Betts <olly@survex.com>
22011         * HACKING: Note that RoadMap on the wiki needs updating for each
22012           release.
22014 Thu Jul 05 01:03:05 BST 2007  Olly Betts <olly@survex.com>
22016         * AUTHORS: Update.
22018 Thu Jul 05 00:31:00 BST 2007  Olly Betts <olly@survex.com>
22020         * NEWS: Minor tweaks and clarifications.
22022 Thu Jul 05 00:29:53 BST 2007  Olly Betts <olly@survex.com>
22024         * include/xapian.h,tests/api_wrdb.cc: Disable MatchSpy class for 1.0.2
22025           as it's not ready for release yet.
22027 Wed Jul 04 21:20:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22029         * NEWS: Update with release date for release 1.0.2
22031 Wed Jul 04 21:09:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22033         * AUTHORS: Add Tomek Jackowiak, for reporting bug #166 (missing
22034           Xapian::Query documentation).
22036 Wed Jul 04 20:45:56 BST 2007  Olly Betts <olly@survex.com>
22038         * configure.ac: Updated version and library version for 1.0.2.
22040 Wed Jul 04 20:36:07 BST 2007  Olly Betts <olly@survex.com>
22042         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
22043           Tidy up API for MatchSpy::build_numeric_ranges() and add tests.
22045 Wed Jul 04 19:40:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22047         * NEWS: Fully updated.
22049 Wed Jul 04 18:33:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22051         * NEWS: Move some of the changelog entries into news-style comments.
22053 Wed Jul 04 17:50:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22055         * tests/api_wrdb.cc: SKIP_TEST() spell3 on windows - it doesn't
22056           work there due to trying to delete (and then overwrite) an open
22057           database.  We shouldn't be doing this, so add a long FIXME
22058           explaining what we should be doing instead.
22060 Wed Jul 04 17:27:22 BST 2007  Olly Betts <olly@survex.com>
22062         * NEWS: Partly update.
22064 Wed Jul 04 17:19:51 BST 2007  Olly Betts <olly@survex.com>
22066         * AUTHORS: Add Simon Tatham for spotting the -INFINITY issue, and for
22067           a lot of useful advice during the CVS to SVN transition.
22069 Wed Jul 04 17:16:59 BST 2007  Olly Betts <olly@survex.com>
22071         * api/,include/xapian/queryparser.h,tests/queryparsertest.cc: Rename
22072           Xapian::NumberValueRangeProcessor::float_to_string() to
22073           Xapian::sortable_serialise() and
22074           Xapian::NumberValueRangeProcessor::string_to_float() to
22075           Xapian::sortable_unserialise().
22077 Wed Jul 04 17:16:16 BST 2007  Olly Betts <olly@survex.com>
22079         * HACKING: Add rationale for 2 space indents for "public", etc.
22081 Wed Jul 04 14:09:57 BST 2007  Olly Betts <olly@survex.com>
22083         * tests/queryparsertest.cc: Loops on integers and scale to doubles
22084           rather than looping on doubles and scaling to get integers.
22086 Wed Jul 04 13:01:11 BST 2007  Olly Betts <olly@survex.com>
22088         * tests/queryparsertest.cc: If the NumberValueRangeProcessor
22089           string encodings don't sort the same way, there's no need to report
22090           the string encodings in the error message as they are written to
22091           "tout" just before, along with the respective numbers they came
22092           from.  The string encodings can contain control characters, so are
22093           liable to corrupt the test failure message.
22095 Wed Jul 04 12:25:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22097         * api/valuerangeproc.cc: Fix encoding of extremely large, negative,
22098           non-IEEE representation to be -INFINITY, not +INFINITY.  Thanks
22099           to Simon Tatham for pointing this out.
22100         * include/xapian/queryparser.h: Add a documentation comment note
22101           that zero and -zero will be transformed to the same value.
22103 Wed Jul 04 10:09:33 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22105         * api/valuerangeproc.cc: Change encoding used for doubles to a much
22106           more compact scheme, and add support for +-INFINITY.  Also, some
22107           other tweaks to avoid unnecessary computation.
22108         * tests/queryparsertest.cc: Update test cases to expect new
22109           encoding of doubles, and add values for INFINITY and DBL_MAX and
22110           some other special numbers to the list of numbers that are
22111           specifically checked.
22113 Wed Jul 04 03:29:10 BST 2007  Olly Betts <olly@survex.com>
22115         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
22116           Category score now explicitly weights for having nearer the
22117           requested number of categories.  Category score is now normalised
22118           so values should be roughly comparable between different sized
22119           collections.  Add untested code to build ranges.
22121 Wed Jul 04 00:48:07 BST 2007  Olly Betts <olly@survex.com>
22123         * bin/xapian-compact.cc: Add new "--no-renumber" option to preserve
22124           document ids from source databases.  Fix bug in change to add
22125           support for spelling and synonym tables which was preventing any
22126           renumbering from happening!
22128 Wed Jul 04 00:25:52 BST 2007  Olly Betts <olly@survex.com>
22130         * backends/inmemory/inmemory_database.cc,
22131           backends/inmemory/inmemory_database.h,tests/api_wrdb.cc: Fix bug in
22132           inmemory backend - using replace_document() to add a document with a
22133           specific document id above the highest currently used would create
22134           empty documents for all document ids in between.
22136 Tue Jul 03 09:27:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22138         * HACKING: Add note that protection level declarations in classes
22139           and structs should only be indented by 2 spaces.
22141 Tue Jul 03 03:53:11 BST 2007  Olly Betts <olly@survex.com>
22143         * api/Makefile.mk,api/matchspy.cc,include/xapian/matchspy.h,
22144           tests/api_wrdb.cc: Add MatchSpy method to score how good a
22145           categorisation is.
22147 Tue Jul 03 01:24:19 BST 2007  Olly Betts <olly@survex.com>
22149         * include/xapian/queryparser.h: Replace `#include <xapian/stem.h>'
22150           with forward declaration of Stem.
22152 Tue Jul 03 01:14:12 BST 2007  Olly Betts <olly@survex.com>
22154         * include/xapian/errorhandler.h: Replace `#include <xapian/error.h>'
22155           with forward declaration of Error.
22156         * api/errorhandler.cc: Now needs to explicitly `#include
22157           <xapian/error.h>'.
22159 Tue Jul 03 01:08:30 BST 2007  Olly Betts <olly@survex.com>
22161         * include/xapian/dbfactory.h: Replace `#include <xapian/database.h>'
22162           with forward declarations of Database and WritableDatabase.
22164 Tue Jul 03 00:59:57 BST 2007  Olly Betts <olly@survex.com>
22166         * include/xapian/enquire.h: Remove `#include <xapian/error.h>'.
22168 Mon Jul 02 23:25:55 BST 2007  Olly Betts <olly@survex.com>
22170         * include/Makefile.mk,include/xapian.h,include/xapian/matchspy.h,
22171           tests/api_wrdb.cc: Implement "MatchSpy" class to tally values
22172           in matching documents.
22174 Mon Jul 02 18:15:18 BST 2007  Olly Betts <olly@survex.com>
22176         * api/omenquire.cc,include/xapian/enquire.h: Fix last change to
22177           preserve ABI compatibility.
22179 Mon Jul 02 17:52:10 BST 2007  Olly Betts <olly@survex.com>
22181         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
22182           include/xapian/enquire.h,matcher/multimatch.cc,net/remoteserver.cc,
22183           tests/api_db.cc: Add support for a "matchspy" - a MatchDecider which
22184           is documented to be tested on ever candidate document.  We plan to
22185           optimise the current matchdecider to be used as little as possible.
22187 Mon Jul 02 17:35:12 BST 2007  Olly Betts <olly@survex.com>
22189         * tests/api_db.cc: Enhance matchfunctor1 to test that the functor
22190           returns ALL matching documents, not just that all documents returned
22191           match.
22193 Mon Jul 02 16:36:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22195         * common/omassert.h: Fix to avoid warning in gcc-snapshot; use
22196           do{}while(0) to protect assertions, and remove the old "if (a) {}
22197           else {fail}" constructions which tried to do the same job.
22199 Mon Jul 02 14:56:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22201         * bin/xapian-inspect.cc: Add missing #include of <stdio.h> - fixes
22202           gcc-2.95 compilation.
22204 Mon Jul 02 14:54:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22206         * queryparser/termgenerator_internal.h: Fix for gcc-2.95
22207           compilation.
22209 Mon Jul 02 14:09:22 BST 2007  Olly Betts <olly@survex.com>
22211         * api/Makefile.mk,api/valuerangeproccompat.cc,
22212           include/xapian/queryparser.h: Put the new NumberValueRangeProcessor
22213           in a sub-namespace which we then import it from.  Restore the old
22214           NumberValueRangeProcessor implementation inside the library so that
22215           it is available to code linked against 1.0.0 or 1.0.1 to keep ABI
22216           compatibility.
22218 Sun Jul 01 15:32:30 BST 2007  Olly Betts <olly@survex.com>
22220         * include/xapian/queryparser.h: Clearer description of
22221           NumberValueRangeProcessor.  Don't document the number format in
22222           terms of strtod() - that's a bug, not a feature we want to be tied
22223           to.
22224         * include/xapian/query.h,include/xapian/queryparser.h: Use "@a" not
22225           "\a" for consistency with existing usage.
22227 Sun Jul 01 10:09:42 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22229         * matcher/localmatch.cc: When registering a term, check if it's
22230           empty, and if so use the document count as the term frequency,
22231           rather than calling the database to get the term frequency of an
22232           empty term (most database backends have an assertion that the
22233           term is not empty, and an empty term isn't a valid parameter to
22234           pass to get_termfreq() anyway).
22235         * matcher/multimatch.cc: For MatchAll queries, the "" term will not
22236           be found in the termlist of the top document, so check if a ""
22237           term is present in the query, and use it to increase the
22238           percent_scale if so.  This fixes an Assertion which checked that
22239           percent_scale was not 0.
22240         * tests/api_db.cc: Add test_matchall1() which tests running a query
22241           with a MatchAll query.
22242         * tests/api_nodb.cc: Rename test_emptyquery1 and test_emptyquery2
22243           to test_emptyquery2 and test_emptyquery3, respectively.  There
22244           was already a (different) test_emptyquery1 in api_anydb.cc.
22246 Sat Jun 30 18:04:06 BST 2007  Olly Betts <olly@survex.com>
22248         * tests/queryparsertest.cc: Write `2.0' rather than `(double)2'.
22250 Sat Jun 30 16:12:49 BST 2007  Olly Betts <olly@survex.com>
22252         * docs/valueranges.rst: Fix typo.  Fix ".. note:" to ".. note::" so
22253           it appears visibly in the HTML output rather than in an HTML
22254           comment!
22256 Sat Jun 30 15:14:33 BST 2007  Olly Betts <olly@survex.com>
22258         * api/omdocument.cc,common/document.h,include/xapian/document.h:
22259           Add Xapian::Document::get_docid() method.
22261 Sat Jun 30 04:00:57 BST 2007  Olly Betts <olly@survex.com>
22263         * matcher/multimatch.cc: If there's only one term in the query (a
22264           pretty common case) we don't need to look at the top document's
22265           termlist to determine that it matches all the query terms.
22267 Sat Jun 30 00:37:09 BST 2007  Olly Betts <olly@survex.com>
22269         * INSTALL: Add note that zlib must be installed before you can build
22270           Xapian.
22272 Fri Jun 29 22:40:58 BST 2007  Olly Betts <olly@survex.com>
22274         * backends/flint/: If doccount == lastdocid, all document ids up to
22275           lastdocid are used, so we provide a special really efficient version
22276           implementation of iterating all documents for this common case for
22277           flint.
22279 Fri Jun 29 00:39:04 BST 2007  Olly Betts <olly@survex.com>
22281         * common/stringutils.h: Add startswith() and endswith() overloads
22282           which take a single character.
22283         * backends/flint/flint_spellingwordslist.cc,bin/xapian-inspect.cc:
22284           Use new forms.
22285         * backends/flint/flint_spellingwordslist.cc: Fix comment typo.
22287 Thu Jun 28 21:43:49 BST 2007  Olly Betts <olly@survex.com>
22289         * backends/flint/flint_spellingwordslist.cc: Another begins_with()
22290           which I somehow missed.
22292 Thu Jun 28 19:51:03 BST 2007  Olly Betts <olly@survex.com>
22294         * api/valuerangeproc.cc,backends/flint/flint_alltermslist.cc,
22295           backends/flint/flint_synonym.cc,
22296           backends/inmemory/inmemory_alltermslist.cc,
22297           backends/quartz/quartz_alltermslist.cc,
22298           backends/quartz/quartz_metafile.cc,bin/xapian-inspect.cc,
22299           common/stringutils.h,tests/harness/testsuite.cc: Rename
22300           begins_with() to startswith() and ends_with() to endswith() for
22301           consistency with Python string operations.
22303 Thu Jun 28 18:49:50 BST 2007  Olly Betts <olly@survex.com>
22305         * queryparser/queryparser.lemony: Don't put a Z prefix on terms if the
22306           stemmer is "none", which matches what TermGenerator generates.
22308 Thu Jun 28 02:22:04 BST 2007  Olly Betts <olly@survex.com>
22310         * api/omqueryinternal.cc: Don't SEGV when Query::MatchNothing is used
22311           with OP_AND_NOT (fixes bug#176).
22312         * tests/api_nodb.cc: Add regression test emptyquery2.
22313         * AUTHORS: Thank bug reporter (Krzysztof Klemm).
22315 Wed Jun 27 13:05:55 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22317         * NEWS: Updated.
22319 Wed Jun 27 13:04:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22321         * examples/copydatabase.cc: Add support for copying the spelling
22322           data.
22324 Wed Jun 27 12:46:54 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22326         * NEWS: Updated.
22328 Wed Jun 27 12:13:50 BST 2007  Olly Betts <olly@survex.com>
22330         * bin/xapian-check.cc: Check spelling and synonym Btrees.
22332 Wed Jun 27 12:10:47 BST 2007  Olly Betts <olly@survex.com>
22334         * bin/xapian-compact.cc: Add merging for spelling and synonym tables.
22336 Wed Jun 27 12:09:34 BST 2007  Olly Betts <olly@survex.com>
22338         * backends/flint/flint_spelling.cc: Fix PrefixCompressedStringItor to
22339           not ignore the last entry.
22340         * tests/api_wrdb.cc: Regression test (spell4).
22342 Wed Jun 27 11:51:10 BST 2007  Olly Betts <olly@survex.com>
22344         * tests/api_wrdb.cc: Remove bogus comment.
22346 Wed Jun 27 04:12:56 BST 2007  Olly Betts <olly@survex.com>
22348         * backends/flint/flint_cursor.h: Make FlintCursor::after_end() const.
22350 Tue Jun 26 22:31:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22352         * tests/api_wrdb.cc: Add test_spell3(), which tests spelling
22353           correction with multi databases, and the results of the iterator
22354           from Database::spellings_begin() with single and multi databases.
22356 Tue Jun 26 20:51:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22358         * api/omtermlistiterator.cc: Handle pruning, so that multi-database
22359           spelling word iterators work.  Pruning should arguably always
22360           have been handled, but it's never been possible for the TermList
22361           passed to TermIterator to prune before, so it's not been an
22362           issue.
22364 Tue Jun 26 20:50:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22366         * backends/flint/flint_spellingwordslist.h: Don't bother testing
22367           whether we found an entry which was exactly "W" - if we do, the
22368           database is corrupt, but the best recovery strategy would just be
22369           to continue at the next matching entry.
22371 Tue Jun 26 20:26:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22373         * api/omdatabase.cc: Remove mistaken skip_to("W") - should be done
22374           by open_spelling_wordlist() rather than here.
22375         * backends/flint/flint_spellingwordslist.h: Only call
22376           cursor->prev() if find_entry("W") finds an entry.
22378 Tue Jun 26 17:46:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22380         * backends/flint/flint_alltermslist.cc,
22381           backends/flint/flint_spellingwordslist.cc,
22382           backends/flint/flint_synonym.cc: Remove calls to abort() which
22383           are followed immediately by an Assert() which checks the same
22384           condition.
22386 Tue Jun 26 17:26:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22388         * include/xapian/database.h: Add spellings_begin() and
22389           spellings_end(), to iterate through the spelling correction
22390           target words.
22391         * api/omdatabase.cc: Implement spellings_begin(), using the newly
22392           added FreqAdderOrTermList to join the spellings lists.
22393         * common/database.h,backends/database.cc: Add
22394           open_spelling_wordlist() to get iterator of spelling targets, if
22395           any, with default implementation which returns NULL.
22396         * backends/flint/flint_database.h,backends/flint/flint_database.cc:
22397           Implement open_spelling_wordlist() for flint.
22398         * backends/flint/flint_spelling.h: Make merge_changes() public, so
22399           it can be called when a writable database needs to open a
22400           spelling wordlist.
22401         * backends/flint/flint_spellingwordslist.h,
22402           backends/flint/flint_spellingwordslist.cc: New files,
22403           implementing an iterator over the spelling targets.
22405 Tue Jun 26 17:25:09 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22407         * common/ortermlist.h,expand/ortermlist.cc: Add a
22408           "FreqAdderOrTermList", which adds the term frequencies of the
22409           sublists, rather than requiring that they're equal for terms
22410           which are in both.
22412 Tue Jun 26 17:22:03 BST 2007  Olly Betts <olly@survex.com>
22414         * docs/admin_notes.rst: Update to mention spelling and synonym tables,
22415           and to document optional tables more clearly.
22417 Tue Jun 26 16:23:25 BST 2007  Olly Betts <olly@survex.com>
22419         * tests/termgentest.cc: Add feature test for TermGenerator spelling
22420           integration.
22422 Tue Jun 26 16:14:56 BST 2007  Olly Betts <olly@survex.com>
22424         * tests/termgentest.cc: Fix comment paste-o.
22426 Tue Jun 26 16:11:11 BST 2007  Olly Betts <olly@survex.com>
22428         * include/xapian/termgenerator.h,queryparser/termgenerator.cc,
22429           queryparser/termgenerator_internal.cc,
22430           queryparser/termgenerator_internal.h: Add support for generating
22431           spelling data to TermGenerator class.
22433 Tue Jun 26 15:22:12 BST 2007  Olly Betts <olly@survex.com>
22435         * bin/xapian-compact.cc: Don't skip "empty" source databases, as they
22436           may have spelling and/or synonym data.  Warn if more than one source
22437           database has spelling data and ignore all but the first.  Similarly
22438           warn and ignore for synonym data.
22440 Tue Jun 26 13:52:15 BST 2007  Olly Betts <olly@survex.com>
22442         * examples/copydatabase.cc: Fix code which extracts the leafname to
22443           handle a trailing directory separator.
22444         * examples/copydatabase.cc: Copy synonym data across.  Print warning
22445           that spelling data isn't copied (as there's no API to access it
22446           currently).
22448 Tue Jun 26 13:21:13 BST 2007  Olly Betts <olly@survex.com>
22450         * bin/xapian-compact.cc: Fix to compact spelling and synonym tables.
22452 Tue Jun 26 02:20:50 BST 2007  Olly Betts <olly@survex.com>
22454         * tests/api_wrdb.cc: Fix randomly indented line.
22456 Tue Jun 26 02:20:01 BST 2007  Olly Betts <olly@survex.com>
22458         * include/xapian/document.h: Change parameter name for
22459           Document::get_value() to match other parameter names in the class.
22461 Tue Jun 26 02:19:16 BST 2007  Olly Betts <olly@survex.com>
22463         * include/xapian/queryparser.h: FLAG_AUTO_MULTIWORD_SYNONYMS now
22464           implies FLAG_AUTO_SYNONYMS.
22466 Tue Jun 26 02:18:02 BST 2007  Olly Betts <olly@survex.com>
22468         * tests/queryparsertest.cc: Add test for a single word synonym in
22469           multi-synonym mode.
22471 Tue Jun 26 02:08:47 BST 2007  Olly Betts <olly@survex.com>
22473         * common/ortermlist.h,queryparser/termgenerator_internal.h: Fix
22474           warnings from Intel's C++ compiler.
22476 Tue Jun 26 01:45:09 BST 2007  Olly Betts <olly@survex.com>
22478         * HACKING: Snapshots and releases are now bootstrapped with libtool
22479           1.5.24, which includes all the patches we were applying on top of
22480           1.5.22.
22481         * HACKING: Expand note about preferring pre-increment to
22482           post-increment to mention preferring it to adding one, and to cover
22483           decrementing too.
22485 Tue Jun 26 01:34:41 BST 2007  Olly Betts <olly@survex.com>
22487         * backends/flint/flint_spelling.cc: Fix bug appending spelling data to
22488           an existing trigram.
22490 Tue Jun 26 01:34:07 BST 2007  Olly Betts <olly@survex.com>
22492         * backends/flint/flint_database.cc: Fix handling of exceptions during
22493           commit.
22495 Mon Jun 25 17:01:40 BST 2007  Olly Betts <olly@survex.com>
22497         * docs/spelling.rst: Update for Unicode spelling correction.
22499 Mon Jun 25 15:41:43 BST 2007  Olly Betts <olly@survex.com>
22501         * api/editdistance.cc,api/editdistance.h,api/omdatabase.cc:
22502           Convert to UTF-32 before calculating edit distances.
22503         * tests/api_wrdb.cc: Add test coverage for Unicode spelling
22504           correction.
22506 Mon Jun 25 14:03:34 BST 2007  Olly Betts <olly@survex.com>
22508         * tests/quartztest.cc: Remove tests for removed method
22509           QuartzPostList::get_collection_freq().
22511 Mon Jun 25 12:32:07 BST 2007  Olly Betts <olly@survex.com>
22513         * backends/flint/flint_spelling.cc: Replace abort() with exception
22514           throwing.
22516 Mon Jun 25 03:01:20 BST 2007  Olly Betts <olly@survex.com>
22518         * tests/harness/backendmanager.cc: Track the fd used to communicate
22519           with a xapian-tcpsrv child process so we can close it when we reap
22520           the child pid.
22522 Mon Jun 25 02:44:04 BST 2007  Olly Betts <olly@survex.com>
22524         * docs/valueranges.rst: Fix bad RST markup.
22526 Sun Jun 24 23:24:26 BST 2007  Olly Betts <olly@survex.com>
22528         * tests/harness/backendmanager.cc: Fix memory leak in test harness
22529           launching of xapian-tcpsrv so that "apitest -b remotetcp" now passes
22530           under valgrind.
22532 Sun Jun 24 19:39:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22534         * docs/valueranges.rst: Add documentation for the
22535           NumberValueRangeProcessor, now that it is fixed.
22537 Sun Jun 24 14:29:06 BST 2007  Olly Betts <olly@survex.com>
22539         * backends/remote/net_postlist.cc,backends/remote/net_postlist.h:
22540           Move NetworkPostList virtual methods out of the header.  Move the
22541           constructor into the header, since that can be inlined.
22543 Sun Jun 24 14:15:43 BST 2007  Olly Betts <olly@survex.com>
22545         * backends/flint/,backends/multi/multi_postlist.cc,
22546           backends/multi/multi_postlist.h,backends/quartz/,
22547           backends/remote/net_postlist.cc,backends/remote/net_postlist.h,
22548           backends/remote/remote-database.cc,common/emptypostlist.h,
22549           common/postlist.h,common/remote-database.h: For Flint and Quartz,
22550           refactor so we no longer create a postlist just to find the termfreq
22551           or collection frequency.  These were the only places which used
22552           PostList::get_collection_freq(), so eliminate it (bug#124).
22554 Sun Jun 24 09:40:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22556         * msvc/genversion.pl: Add a script to generate the version.h file
22557           for MSVC builds by parsing configure.ac to extract the version
22558           number, and then performing the appropriate substitutions on
22559           msvc/version.h.in.  Shouldn't be used for tarball builds (because
22560           version.h already exists) or for builds which use configure.
22562 Sun Jun 24 02:25:38 BST 2007  Olly Betts <olly@survex.com>
22564         * matcher/multimatch.cc: The check_at_least parameter to
22565           Enquire::get_mset() is now handled in a more efficient way - no
22566           extra memory is now required, and CPU overhead should be reduced
22567           (bug#174).
22569 Sun Jun 24 02:00:07 BST 2007  Olly Betts <olly@survex.com>
22571         * docs/synonyms.rst,docs/Makefile.am: New "topic" document describing
22572           synonym support.
22573         * docs/Makefile.am: HTML documentation generated from RST files wasn't
22574           being installed.
22576 Sun Jun 24 00:45:46 BST 2007  Olly Betts <olly@survex.com>
22578         * backends/remote/remote-database.cc,common/remote-database.h,
22579           common/remoteprotocol.h,common/submatch.h,docs/remote_protocol.html,
22580           matcher/,net/remoteserver.cc: Pass check_at_least to the remote
22581           server to reduce the amount of work required to produce the match
22582           on the remote server, and also reduce the serialised size of the
22583           returned MSet.
22585 Sun Jun 24 00:17:18 BST 2007  Olly Betts <olly@survex.com>
22587         * tests/api_anydb.cc: More check_at_least tests.
22589 Sat Jun 23 20:02:48 BST 2007  Olly Betts <olly@survex.com>
22591         * api/omdatabase.cc,tests/api_wrdb.cc: Add multi-database support
22592           for synonyms.
22594 Sat Jun 23 18:50:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22596         * include/xapian/database.h: Tiny fix to a documentation comment.
22598 Sat Jun 23 17:35:37 BST 2007  Olly Betts <olly@survex.com>
22600         * common/ortermlist.h,expand/ortermlist.cc: Comment out unused method
22601           OrTermList::get_collection_freq().  The same dummy implementation
22602           is provided by the parent class (TermList).
22604 Sat Jun 23 17:07:40 BST 2007  Olly Betts <olly@survex.com>
22606         * api/omdatabase.cc,backends/database.cc,backends/flint/,
22607           common/database.h,include/xapian/database.h,tests/api_wrdb.cc:
22608           Implement Database::synonym_keys_begin() to allow iteration over all
22609           the terms for which synonyms have been added.
22611 Sat Jun 23 04:19:54 BST 2007  Olly Betts <olly@survex.com>
22613         * matcher/multimatch.cc: Fix handling of check_at_least parameter -
22614           we weren't discarding matches above the requested MSet size
22615           correctly.
22616         * tests/api_anydb.cc: Add regression test checkatleast2.
22618 Sat Jun 23 03:00:45 BST 2007  Olly Betts <olly@survex.com>
22620         * docs/queryparser.html: Document synonyms.
22622 Sat Jun 23 02:50:55 BST 2007  Olly Betts <olly@survex.com>
22624         * queryparser/queryparser.lemony: Unapply commented out fragments
22625           towards supporting '~' on phrases, which I didn't mean to apply.
22627 Sat Jun 23 02:25:32 BST 2007  Olly Betts <olly@survex.com>
22629         * include/xapian/queryparser.h,queryparser/queryparser.lemony,
22630           tests/queryparsertest.cc: Add support for synonym operator ('~')
22631           to the QueryParser.
22633 Sat Jun 23 01:52:51 BST 2007  Olly Betts <olly@survex.com>
22635         * queryparser/queryparser.lemony: Fix two bugs in the query parser -
22636           now '+' and '-' work on bracketed subexpressions as documented.
22637         * tests/queryparsertest.cc: Add regression tests.
22639 Sat Jun 23 01:47:30 BST 2007  Olly Betts <olly@survex.com>
22641         * queryparser/queryparser.cc: Use "using namespace std;".
22643 Fri Jun 22 18:48:21 BST 2007  Olly Betts <olly@survex.com>
22645         * backends/flint/flint_synonym.cc: Fix iteration of unflushed
22646           synonyms.
22648 Fri Jun 22 18:21:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22650         * docs/deprecation.rst: Fix typo.
22652 Fri Jun 22 18:02:21 BST 2007  Olly Betts <olly@survex.com>
22654         * api/omdatabase.cc,backends/database.cc,backends/flint/,
22655           common/database.h,include/xapian/database.h,
22656           include/xapian/queryparser.h,queryparser/queryparser.lemony:
22657           Add support for storing synonyms for terms in a new optional Btree
22658           table in flint databases, and using them in the QueryParser.
22659         * tests/queryparsertest.cc: Feature tests for synonyms.
22661 Fri Jun 22 17:58:37 BST 2007  Olly Betts <olly@survex.com>
22663         * queryparser/queryparser.lemony: Removed superfluous "private:" in
22664           class State.  Make State::get_database() const.
22666 Fri Jun 22 17:58:15 BST 2007  Olly Betts <olly@survex.com>
22668         * tests/queryparsertest.cc: Make sure .flint subdirectory exists.
22670 Fri Jun 22 17:52:53 BST 2007  Olly Betts <olly@survex.com>
22672         * bin/xapian-inspect.cc: Don't die with an error if the user tries to
22673           move forward twice from the end.  Also, make "prev" from the end
22674           work.
22676 Fri Jun 22 17:47:36 BST 2007  Olly Betts <olly@survex.com>
22678         * queryparser/queryparser.lt: If an input token has a yyminor, report
22679           its name in the debug output.
22681 Fri Jun 22 14:47:17 BST 2007  Olly Betts <olly@survex.com>
22683         * NEWS: Updated with changes since 1.0.1.
22685 Thu Jun 21 21:12:49 BST 2007  Olly Betts <olly@survex.com>
22687         * backends/remote/remote-database.cc,common/remoteprotocol.h,
22688           common/remoteserver.h,net/remoteserver.cc: Protocol version
22689           increased to 30.2.  This difference from 30.1 is that
22690           MSG_DELETEDOCUMENT now send REPLY_DONE to allow DocNotFoundError
22691           to be propagated.  MSG_DELETEDOCUMENT now has a new number and
22692           the old number for MSG_DELETEDOCUMENT is now
22693           MSG_DELETEDOCUMENT_PRE_30_2 which is handled by the server so
22694           that older clients will continue to work.
22695         * docs/remote_protocol.html: Update.
22696         * tests/api_wrdb.cc: Add regression test for DocNotFoundError bug.
22698 Thu Jun 21 17:22:53 BST 2007  Olly Betts <olly@survex.com>
22700         * api/omdatabase.cc,tests/queryparsertest.cc,docs/spelling.rst: Add
22701           support for spelling correction when using multiple databases.
22703 Thu Jun 21 16:15:22 BST 2007  Olly Betts <olly@survex.com>
22705         * tests/queryparsertest.cc: Add feature tests for correcting spelling
22706           errors in the QueryParser.
22708 Thu Jun 21 15:01:00 BST 2007  Olly Betts <olly@survex.com>
22710         * tests/api_wrdb.cc: Check the edit distance 3 words are found if
22711           asked for.
22713 Thu Jun 21 14:59:15 BST 2007  Olly Betts <olly@survex.com>
22715         * api/omdatabase.cc,common/omdebug.h: Add some debug tracing for the
22716           spelling correction.
22718 Thu Jun 21 13:45:12 BST 2007  Olly Betts <olly@survex.com>
22720         * backends/flint/flint_spelling.cc,docs/spelling.rst: Generate
22721           "bookends" for four character words too, so that we suggest
22722           "fuor" -> "four".
22723         * tests/api_wrdb.cc: More testcases.
22725 Thu Jun 21 13:08:07 BST 2007  Olly Betts <olly@survex.com>
22727         * docs/spelling.rst: Assorted minor improvements.  Add note about not
22728           detecting single character substitutions in two character words.
22730 Thu Jun 21 13:02:57 BST 2007  Olly Betts <olly@survex.com>
22732         * tests/api_wrdb.cc: Check cases for single edits to a two character
22733           word work as expected.
22735 Thu Jun 21 04:13:46 BST 2007  Olly Betts <olly@survex.com>
22737         * tests/api_wrdb.cc: Add test cases to check we find all single edit
22738           errors for a three letter word.
22740 Thu Jun 21 04:08:11 BST 2007  Olly Betts <olly@survex.com>
22742         * backends/flint/flint_spelling.h: Now that
22743           FlintSpellingTable::merge_changes() is only called from within the
22744           class, make it a private method.  discard_changes() is only used
22745           once, and from within the class, so just inline it as that's
22746           clearer.  Make the comment about the overridden methods a doxygen
22747           grouping comment,
22749 Thu Jun 21 04:02:51 BST 2007  Olly Betts <olly@survex.com>
22751         * docs/spelling.rst: Update to mention "bookend" bigrams.
22753 Thu Jun 21 03:56:52 BST 2007  Olly Betts <olly@survex.com>
22755         * backends/flint/flint_spelling.cc: Generate "bookend" spelling
22756           entries for two and three letter terms, consisting of the prefix 'B'
22757           followed by the first and last letters.  This allows us to handle
22758           substitution or deletion of the middle character of a three letter
22759           word, or insertion in the middle of a two letter word.
22761 Thu Jun 21 03:18:28 BST 2007  Olly Betts <olly@survex.com>
22763         * tests/queryparsertest.cc: Some doubles in the list which
22764           value_range_serialise1 tests have the same values on some platforms,
22765           so test that adjacent numbers and their string counterparts compare
22766           the same way rather than that both are "<".
22768 Thu Jun 21 02:46:01 BST 2007  Olly Betts <olly@survex.com>
22770         * tests/api_wrdb.cc: Add "spell1" - a simple feature test for spelling
22771           based on Richard's python test.  Use TESTCASE() and END_OF_TESTCASES
22772           macros.
22774 Wed Jun 20 21:57:01 BST 2007  Olly Betts <olly@survex.com>
22776         * backends/flint/flint_database.cc: WritableDatabase::delete_document()
22777           no longer cancels pending changes if the document doesn't exist.
22778         * backends/quartz/quartz_database.cc: Same fix.
22780 Wed Jun 20 20:53:52 BST 2007  Olly Betts <olly@survex.com>
22782         * backends/flint/flint_database.cc: We may now need to flush even if
22783           there have been no documents added/replaced/deleted, as there may be
22784           changes to the spelling table.
22786 Wed Jun 20 20:46:30 BST 2007  Olly Betts <olly@survex.com>
22788         * backends/flint/flint_table.cc: Fix a function name in the debug
22789           loggging.
22791 Wed Jun 20 20:39:43 BST 2007  Olly Betts <olly@survex.com>
22793         * backends/flint/flint_spelling.cc: Fix FlintSpellingTermList not to
22794           report at_end() one entry too early.
22796 Wed Jun 20 19:21:45 BST 2007  Olly Betts <olly@survex.com>
22798         * tests/harness/backendmanager.cc: Don't touch <dbdir>/log for flint
22799           as flint doesn't create a log like quartz does.
22801 Wed Jun 20 17:10:29 BST 2007  Olly Betts <olly@survex.com>
22803         * backends/flint/flint_database.cc,backends/flint/flint_spelling.h:
22804           Push special handling for spelling_table into the FlintSpellingTable
22805           class.  This fixes "is_modified()" to take into account unflushed
22806           changes held in memory.
22808 Wed Jun 20 13:59:01 BST 2007  Olly Betts <olly@survex.com>
22810         * api/omdatabase.cc: Don't use RETURN() in methods which return void.
22812 Wed Jun 20 11:56:30 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22814         * api/editdistance.cc: Change an Assert in is_transposed() (which
22815           fails in some cases) to a test, since it seems legitimate that
22816           a value of pos2 <= 0 might be supplied to the function (though
22817           the answer will always be "false" in that case).
22819 Wed Jun 20 02:38:51 BST 2007  Olly Betts <olly@survex.com>
22821         * api/omdatabase.cc: Fix two incorrect return types in debug logging.
22823 Wed Jun 20 02:14:40 BST 2007  Olly Betts <olly@survex.com>
22825         * api/omdatabase.cc: Add missing implementations of
22826           WritableDatabase::add_spelling() and
22827           WritableDatabase::remove_spelling().
22829 Wed Jun 20 00:58:46 BST 2007  Olly Betts <olly@survex.com>
22831         * backends/flint/flint_spelling.h: Make the maps private.
22833 Wed Jun 20 00:05:15 BST 2007  Olly Betts <olly@survex.com>
22835         * HACKING: Snapshots now bootstrapped with automake 1.10.
22837 Wed Jun 20 00:03:42 BST 2007  Olly Betts <olly@survex.com>
22839         * backends/flint/flint_spelling.cc,common/Makefile.mk,
22840           expand/Makefile.mk,expand/ortermlist.h: Move ortermlist.h from
22841           "expand/" to "common/" so we can included it from flint_spelling.cc
22842           without a relative path.
22844 Tue Jun 19 22:41:08 BST 2007  Olly Betts <olly@survex.com>
22846         * api/,backends/database.cc,backends/flint/,common/database.h,
22847           docs/Makefile.am,docs/spelling.rst,include/xapian/database.h,
22848           include/xapian/queryparser.h,queryparser/queryparser.cc,
22849           queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
22850           Add support for spelling correction.
22852 Tue Jun 19 19:18:40 BST 2007  Olly Betts <olly@survex.com>
22854         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
22855           backends/flint/flint_table.h: Add new method
22856           FlintTable::key_exists() so we don't need to create a cursor to
22857           check if a key exists in FlintDatabase::term_exists() (the other
22858           alternative previously was to read the key and tag and ignore the
22859           tag, but that could involve reading more blocks if the tag is
22860           long, and it could involve uncompressing the tag too).
22862 Tue Jun 19 17:49:09 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22864         * tests/queryparsertest.cc: Cast the input to pow() to a double, to
22865           fix a problem on windows (which has several versions of pow(),
22866           and the version taking a float was being used by default,
22867           resulting in some of the tests overflowing the range of float).
22869 Tue Jun 19 17:48:42 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22871         * api/valuerangeproc.cc: Fix assertions, so that the code works
22872           with assertions turned on.
22874 Tue Jun 19 12:35:46 BST 2007  Olly Betts <olly@survex.com>
22876         * matcher/branchpostlist.cc: Add missing #include <config.h>.
22877         * matcher/branchpostlist.cc,matcher/branchpostlist.h: Move other
22878           virtual method definitions out of the header.
22880 Mon Jun 18 21:41:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22882         * matcher/branchpostlist.h: Add missed copyright statement.
22884 Mon Jun 18 21:36:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22886         * matcher/branchpostlist.cc,matcher/branchpostlist.h: Add get_wdf()
22887           method to BranchPostList (which just sums the wdf, which is
22888           useful for a synonym postlist, which is the only situation in
22889           which this will be called).  Add the method definition in a
22890           separate file, as per the comment I just added to HACKING.
22891         * matcher/Makefile.mk: Add branchpostlist.cc
22893 Mon Jun 18 21:33:56 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22895         * HACKING: Add note about virtual methods (saying that the
22896           shouldn't be defined in header files).
22898 Mon Jun 18 20:15:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22900         * matcher/phrasepostlist.cc,matcher/phrasepostlist.h,
22901           matcher/exactphrasepostlist.cc,matcher/exactphrasepostlist.cc:
22902           Add get_wdf() methods to NearPostList, PhrasePostList and
22903           ExactPhrasePostList - these use a very rough approximation (but
22904           there's a big long comment justifying it).
22906 Mon Jun 18 18:38:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22908         * matcher/mergepostlist.cc,matcher/mergepostlist.h: Add copyright
22909           statements for previous commit (and update license while I'm at
22910           it).
22912 Mon Jun 18 18:24:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22914         * matcher/mergepostlist.cc,matcher/mergepostlist.h: Add get_wdf()
22915           method to MergePostList (just passes through the value from the
22916           current postlist).  Not currently needed, but the expected
22917           behaviour is obvious, and this will be needed if there's a
22918           synonym postlist higher in the query tree (when synonym postlists
22919           are implemented).  Also, correct a documentation comment typo.
22921 Mon Jun 18 13:09:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22923         * api/valuerangeproc.cc: Cast the first parameter to ldexp() to
22924           double to fix compilation on some platforms, and add a few more
22925           explanatory code comments to
22926           NumberValueRangeProcessor::string_to_float()
22928 Mon Jun 18 11:33:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22930         * api/valuerangeproc.cc: Add static methods to
22931           NumberValueRangeProcessor to serialise and unserialise doubles.
22932           Change the code which tests a term for being a number to use
22933           strtod, and accept any string which strtod thinks is a number.
22934           If NumberValueRangeProcessor accepts a range, it now converts the
22935           begin and end values to strings using the serialise method.
22936           Also, expand some of the code comments.
22937         * include/xapian/queryparser.h: Add documentation comments to
22938           NumberValueRangeProcessor.
22939         * tests/queryparsertest.cc: Update value_range2_queries to expect
22940           new serialised forms in its output.  Update test_qp_value_range3
22941           to test a wider range of values (including negative, fractional,
22942           and more-than-single-digit).
22944 Mon Jun 18 03:36:38 BST 2007  Olly Betts <olly@survex.com>
22946         * queryparser/queryparser.lemony: Fix comment typo, and add brackets
22947           to make intended precedence clearer.
22949 Mon Jun 18 03:36:04 BST 2007  Olly Betts <olly@survex.com>
22951         * include/xapian/queryparser.h: Tweak wording of a couple of
22952           documentation comments.
22954 Mon Jun 18 02:00:31 BST 2007  Olly Betts <olly@survex.com>
22956         * docs/queryparser.html: Mention "AND NOT" as an alternative way to
22957           write "NOT".
22959 Mon Jun 18 01:43:00 BST 2007  Olly Betts <olly@survex.com>
22961         * queryparser/queryparser.lemony: Adjust precedence of boolean
22962           operators to match those in maths and programming languages.
22963           "NOT" now binds as tightly as "AND" (previously "AND NOT" would
22964           bind like "AND", but just "NOT" would bind like "OR"!)  Also
22965           "XOR" now binds more tightly than "OR", but less tightly than
22966           "AND" (previously it bound just like "OR").
22967         * tests/queryparsertest.cc: Add testcases for the new behaviour.
22969 Mon Jun 18 01:16:18 BST 2007  Olly Betts <olly@survex.com>
22971         * tests/queryparsertest.cc: Better test coverage of handling of random
22972           double quotes in queries.
22974 Sun Jun 17 16:17:34 BST 2007  Olly Betts <olly@survex.com>
22976         * include/xapian/unicode.h: Don't call operator++(0) from operator()
22977           as it does more work than we need.
22979 Sun Jun 17 14:14:16 BST 2007  Olly Betts <olly@survex.com>
22981         * bin/xapian-inspect.cc: Fix so that Ctrl+D doesn't cause an infinite
22982           loop!
22984 Sat Jun 16 22:19:11 BST 2007  Olly Betts <olly@survex.com>
22986         * bin/Makefile.mk,bin/xapian-inspect.cc,xapian-core.spec.in:
22987           New utility 'xapian-inspect' allowing interactive inspection of
22988           key/tag pairs in a flint Btree.  Useful for development and
22989           debugging, and an approximate replacement for quartzdump.
22991 Sat Jun 16 17:03:57 BST 2007  Olly Betts <olly@survex.com>
22993         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Update for
22994           doxygen 1.5.2 (using "doxygen -u").
22996 Sat Jun 16 10:17:32 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22998         * tests/Makefile.am: The "check-none" target should run all the
22999           tests which don't need a database, not just those in apitest: add
23000           internaltest, stemtest, queryparsertest and termgentest to the
23001           list of tests it runs.
23003 Sat Jun 16 09:36:10 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23005         * Makefile.am,bin/Makefile.mk,examples/Makefile.mk: Work around an
23006           apparent bug in automake which causes the entries in .libs
23007           subdirectories generated for targets of bin_PROGRAMS not to be
23008           removed on make clean.  (This was causing make distcheck to
23009           fail.)
23011 Sat Jun 16 04:42:16 BST 2007  Olly Betts <olly@survex.com>
23013         * HACKING,Makefile.am,tests/Makefile.am,tests/apitest.cc,
23014           tests/harness/backendmanager.cc,tests/harness/backendmanager.h: In
23015           the testsuite, rename the "void" pseudo-backend to "none" to more
23016           clearly reflect what it is.  And rename the "remote" backend to
23017           "remoteprog", to better differentiate it from "remotetcp".
23018         * HACKING: Fix error - "apitest -b=flint" doesn't work - it must be
23019           "apitest -bflint".
23021 Sat Jun 16 04:40:28 BST 2007  Olly Betts <olly@survex.com>
23023         * HACKING: Now using doxygen 1.5.2.
23025 Sat Jun 16 02:08:20 BST 2007  Olly Betts <olly@survex.com>
23027         * backends/flint/flint_table.cc: Fix to build with older zlib.  Not
23028           hugely important as zlib security fixes mean any well maintained
23029           box will be running a recent zlib, but the fix is trivial.
23031 Fri Jun 15 19:39:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23033         * HACKING: Document the new check-void, check-inmemory,
23034           check-remoteprog and check-remotetcp targets.
23036 Fri Jun 15 19:34:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23038         * Makefile.am,tests/Makefile.am: Add check-void, check-inmemory,
23039           check-remoteprog and check-remotetcp targets, to allow the tests
23040           for any of the backends to be performed in isolation.
23042 Fri Jun 15 19:29:19 BST 2007  Olly Betts <olly@survex.com>
23044         * Makefile.am,configure.ac,xapian-core.spec.in,xapian.spec.in:
23045           Rename xapian.spec to xapian-core.spec to match tarball name.
23046           Append the user name to BuildRoot.
23048 Fri Jun 15 14:51:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23050         * net/progclient.cc: Open the file handle pointing to /dev/null as
23051           O_WRONLY instead of O_RDONLY: doesn't affect whether the test
23052           passes (since nothing gets written to stderr in theory anyway),
23053           but makes more sense.
23055 Fri Jun 15 13:21:56 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23057         * net/progclient.cc: Better fix - rather than leaving stderr open,
23058           we close it, and then reopen it pointing to /dev/null.
23060 Fri Jun 15 12:55:07 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23062         * net/progclient.cc: Don't close stderr in the child before we call
23063           execve() - with this change, apitest passes under valgrind with
23064           the remote database backend: before it, the child seemed to be
23065           exiting without writing anything to the socket, causing the test
23066           to fail with a NetworkError (due to an unexpected EOF).
23068 Thu Jun 14 23:47:52 BST 2007  Olly Betts <olly@survex.com>
23070         * backends/flint/flint_database.cc: Replace duplicated code with calls
23071           to existing method set_revision_number(new_revision).
23073 Thu Jun 14 18:51:03 BST 2007  Olly Betts <olly@survex.com>
23075         * backends/flint/flint_database.cc: Stop including <sys/utsname.h>
23076           which we don't use here.
23078 Thu Jun 14 18:22:24 BST 2007  Olly Betts <olly@survex.com>
23080         * tests/Makefile.am: Fix typo from copy&paste.
23082 Thu Jun 14 16:46:45 BST 2007  Olly Betts <olly@survex.com>
23084         * docs/admin_notes.rst: Update for the "lazy table" changes.  Correct
23085           the description of xapian-compact --multipass (only the postlist
23086           tables are merged in multiple passes), correct description of how
23087           to use xapian-check on a single table (no trailing '.' should be
23088           specified).  Change the "how to upgrade 0.9.x flint databases" to
23089           talk about 1.0.y rather than 1.0.0.
23091 Thu Jun 14 16:25:55 BST 2007  Olly Betts <olly@survex.com>
23093         * backends/flint/: The value and position tables are now only created
23094           if there is anything to add to them.  So if you never use document
23095           values, there's no value_DB, value.baseA, or value.baseB.  This
23096           means the table doesn't need to be opened for searching (saving a
23097           file handle) and when flushing changes, we don't need to update
23098           baseA/baseB just to keep the revisions in step.  The flint database
23099           version has been increased, but the new code will happily open and
23100           read/update flint databases from Xapian 1.0.0 and 1.0.1.
23101         * bin/xapian-check.cc,bin/xapian-compact.cc: Update to handle
23102           databases without value and/or position tables.
23103         * tests/testdata/flint-1.0.1/: Empty example of a flint 1.0.1 format
23104           database.
23105         * tests/Makefile.am,tests/api_db.cc: Add check that a flint 1.0.1
23106           format database can be opened.
23108 Wed Jun 13 22:40:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23110         * include/xapian/queryparser.h: Document set_stemmer() and
23111           set_stemming_strategy() better - in particular, make it clear
23112           that the default value for the stemming strategy is STEM_NONE.
23114 Wed Jun 13 17:16:52 BST 2007  Olly Betts <olly@survex.com>
23116         * HACKING: Wrap overlong line.
23118 Wed Jun 13 16:47:07 BST 2007  Olly Betts <olly@survex.com>
23120         * msvc/version.h.in: Remote backend is now supported in the MSVC
23121           build.
23123 Wed Jun 13 04:18:51 BST 2007  Olly Betts <olly@survex.com>
23125         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
23126           Eliminate dont_close_handle as it's always false.
23128 Wed Jun 13 02:53:28 BST 2007  Olly Betts <olly@survex.com>
23130         * backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h:
23131           Remove unused FlintTable_base constructor.
23133 Tue Jun 12 18:27:54 BST 2007  Olly Betts <olly@survex.com>
23135         * backends/flint/flint_table.cc: Add fix to allow compilation on
23136           OpenBSD, which uses off_t instead of uLong for total_out in
23137           zlib.h.  Remove Assert() which is followed by a better check of
23138           the same condition.
23139         * AUTHORS: Add Julien Touche for help with this fix.
23141 Tue Jun 12 13:34:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23143         * tests/harness/unixcmds.cc: On unix builds, set access permissions
23144           on copied directories to allow writes.  This fixes make
23145           distcheck, which was failing on tests because the copied
23146           directory was set to read-only, causing the later "rm -rf"
23147           command to fail.
23149 Mon Jun 11 20:10:26 BST 2007  Olly Betts <olly@survex.com>
23151         * docs/overview.html: Fix typo.
23153 Mon Jun 11 20:08:42 BST 2007  Olly Betts <olly@survex.com>
23155         * docs/Makefile.am: Ship and install internals.html.
23157 Mon Jun 11 17:46:04 BST 2007  Olly Betts <olly@survex.com>
23159         * docs/Makefile.am,docs/doxygen_full_conf.in: Disable generation of
23160           PDF version of doxygen-collated documentation of internals.  It
23161           keeps overflowing TeX limits and it seems likely that most people
23162           would prefer the HTML version of this anyway.
23164 Mon Jun 11 17:45:12 BST 2007  Olly Betts <olly@survex.com>
23166         * tests/internaltest.cc: Remove duplicated code.
23168 Mon Jun 11 03:55:53 BST 2007  Olly Betts <olly@survex.com>
23170         * NEWS: Probably the final update for 1.0.1.
23172 Mon Jun 11 03:47:37 BST 2007  Olly Betts <olly@survex.com>
23174         * examples/simpleindex.cc: Tweak the logic to be clearer.
23176 Sun Jun 10 21:59:21 BST 2007  Olly Betts <olly@survex.com>
23178         * HACKING,configure.ac: Drop automake requirement to 1.8.3 to allow
23179           RPM spec file to work on SLES 9.
23181 Sun Jun 10 21:48:51 BST 2007  Olly Betts <olly@survex.com>
23183         * configure.ac: Bump version to 1.0.1 and LIBRARY_VERSION_INFO to
23184           15:0:0.
23186 Sun Jun 10 21:46:57 BST 2007  Olly Betts <olly@survex.com>
23188         * xapian.spec.in: Add "# norootforbuild" comment which SuSE's build
23189           scripts look for.  Rename "Source0:" to "Source:" as there's only
23190           one tarball now.  Add gcc-c++ and zlib-devel to "Build-Requires:".
23192 Sun Jun 10 21:43:45 BST 2007  Olly Betts <olly@survex.com>
23194         * PLATFORMS: More updates.
23196 Sun Jun 10 18:01:19 BST 2007  Olly Betts <olly@survex.com>
23198         * api/error.cc,generate-exceptions.in: Make Error::error_string member
23199           std::string rather than char * to avoid problems with double free()
23200           with copied Error objects.  Also, Error::get_description() now
23201           converts my_errno to error_string if it hasn't been already.
23202         * tests/internaltest.cc: Add regression tests for both bugs.
23204 Sun Jun 10 13:33:21 BST 2007  Olly Betts <olly@survex.com>
23206         * tests/api_db.cc: New testcase in allterms6.
23208 Sun Jun 10 13:20:37 BST 2007  Olly Betts <olly@survex.com>
23210         * xapian-config.in: Add special case check for host_os matching linux*
23211           or k*bsd-gnu since vanilla libtool doesn't identify them as needing
23212           link_all_deplibs_CXX=no.
23214 Sun Jun 10 03:32:54 BST 2007  Olly Betts <olly@survex.com>
23216         * PLATFORMS: Updated from tinderbox.
23218 Sun Jun 10 02:14:58 BST 2007  Olly Betts <olly@survex.com>
23220         * NEWS: Updated.
23222 Sat Jun 09 17:28:32 BST 2007  Olly Betts <olly@survex.com>
23224         * queryparser/queryparser.lemony: Add the unstem entry for boolean
23225           prefixed terms in Term::make_term() as we do for other terms.
23227 Sat Jun 09 17:27:55 BST 2007  Olly Betts <olly@survex.com>
23229         * tests/queryparsertest.cc: Replace reference to Xapian "1.0" with
23230           "1.0.0".
23232 Sat Jun 09 17:12:44 BST 2007  Olly Betts <olly@survex.com>
23234         * queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
23235           Factor out the code which actually parses a term into a separate
23236           method.
23238 Fri Jun 08 23:31:23 BST 2007  Olly Betts <olly@survex.com>
23240         * tests/Makefile.am: Distribute tests/testdata/flint-0.9.9/.
23242 Fri Jun 08 19:20:36 BST 2007  Olly Betts <olly@survex.com>
23244         * NEWS: Updated.
23246 Fri Jun 08 18:55:43 BST 2007  Olly Betts <olly@survex.com>
23248         * examples/simplesearch.cc: Report "Matches 1-<N>:".
23250 Fri Jun 08 18:46:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23252         * api/omenquire.cc: Fix issue brought to my attention by Enrico
23253           Zini: if an uninitialised database is supplied to Enquire,
23254           performing a search will cause a segfualt.  It isn't completely
23255           clear whether using an uninitialised database should cause an
23256           error, or whether the search should return an empty result list,
23257           but for ease of implementation, and to avoid application errors
23258           going unnoticed, I've made Enquire's constructor report an
23259           InvalidArgumentError if the supplied database is uninitialised.
23260         * include/xapian/enquire.h: Document new exception case, and
23261           workaround if you want a search in this situation to return an
23262           empty result set, instead of getting an error.
23263         * tests/api_nodb.cc: Regression test for this fix.
23264         * AUTHORS: Mention Enrico Zini.
23266 Fri Jun 08 18:33:19 BST 2007  Olly Betts <olly@survex.com>
23268         * NEWS: Updated.
23270 Fri Jun 08 17:09:22 BST 2007  Olly Betts <olly@survex.com>
23272         * common/Makefile.mk: Distribute common/stringutils.h.
23274 Thu Jun 07 20:44:36 BST 2007  Olly Betts <olly@survex.com>
23276         * tests/harness/unixcmds.cc: It appears we need to create the target
23277           directory for xcopy to behave as we want.
23279 Thu Jun 07 19:34:18 BST 2007  Olly Betts <olly@survex.com>
23281         * tests/harness/unixcmds.cc: Fix typo to unbreak testsuite on Windows
23282           NT derivatives.
23284 Thu Jun 07 19:02:36 BST 2007  Olly Betts <olly@survex.com>
23286         * backends/inmemory/inmemory_alltermslist.cc: Another tweak - don't
23287           call map::lower_bound() in the ctor at all.  Also, prevent skip_to()
23288           from moving backwards, since that behaviour is user-visible.
23290 Thu Jun 07 18:36:49 BST 2007  Olly Betts <olly@survex.com>
23292         * common/stringutils.h: New header, providing inline functions
23293           begins_with() and ends_with() to check if a std::string has
23294           a given prefix or suffix.
23295         * api/valuerangeproc.cc,backends/flint/flint_alltermslist.cc,
23296           backends/inmemory/inmemory_alltermslist.cc,
23297           backends/quartz/quartz_alltermslist.cc,
23298           backends/quartz/quartz_metafile.cc,tests/harness/testsuite.cc:
23299           Make use of begins_with() and ends_with().
23300         * tests/harness/testsuite.cc: Tidy up guessing of srcdir.  In
23301           particular, fix comments to reflect that libtool won't create a
23302           wrapper script for the test programs on most platforms (because
23303           we now use --no-install when linking).
23304         * backends/inmemory/inmemory_alltermslist.cc: In the ctor, use
23305           std::map::lower_bound() to find the first term matching the
23306           given prefix, rather than iterating through from the start of
23307           the map.  Also, don't skip deleted terms here, but instead do
23308           that in next() - this avoids duplicating code, and the first
23309           operation might be skip_to() in which case we can avoid wasting
23310           effort.
23312 Thu Jun 07 17:16:12 BST 2007  Olly Betts <olly@survex.com>
23314         * queryparser/queryparser.lemony: Eliminate the QpQuery class and
23315           simplify various bits of the code.
23317 Thu Jun 07 14:32:22 BST 2007  Olly Betts <olly@survex.com>
23319         * tests/queryparsertest.cc: Enhance qp_value_customrange1.
23321 Thu Jun 07 14:31:40 BST 2007  Olly Betts <olly@survex.com>
23323         * docs/Makefile.am,docs/index.html,docs/valueranges.rst: Add document
23324           describing how to use Xapian::ValueRangeProcessor.
23326 Thu Jun 07 14:16:01 BST 2007  Olly Betts <olly@survex.com>
23328         * tests/queryparsertest.cc: Add test of custom ValueRangeProcessor
23329           subclass (qp_value_customrange1).
23331 Thu Jun 07 10:01:46 BST 2007  Olly Betts <olly@survex.com>
23333         * common/serialise.h,tests/harness/testsuite.h: Use XAPIAN_NORETURN()
23334           to mark functions which never return.
23336 Thu Jun 07 01:28:00 BST 2007  Olly Betts <olly@survex.com>
23338         * NEWS: Update.
23340 Thu Jun 07 01:02:22 BST 2007  Olly Betts <olly@survex.com>
23342         * examples/simpleexpand.cc: Fix off-by-one error when creating the
23343           fake RSet (picked up to 4 documents, not up to 5).
23345 Wed Jun 06 17:17:05 BST 2007  Olly Betts <olly@survex.com>
23347         * include/xapian/queryparser.h: Add documentation comments for
23348           ValueRangeProcessor and subclasses (mostly fixes bug#155, but
23349           I'd like to add an overview document too).
23351 Wed Jun 06 16:04:08 BST 2007  Olly Betts <olly@survex.com>
23353         * tests/testdata/flint-0.9.9/: Minimal example of a Flint database
23354           from Xapian 0.9.9.
23355         * tests/api_db.cc: Use a real 0.9.9 flint database instead of faking
23356           it by fudging with the "iamflint" file in a current one.
23357           flintdatabaseformaterror1 now also checks for opening with the
23358           Database ctor as well as with Flint::open().  The writing test from
23359           flintdatabaseformaterror1 is now flintdatabaseformaterror2 which
23360           additionally tests opening with the WritableDatabase ctor as well as
23361           with Flint::open().  The old flintdatabaseformaterror2 is now
23362           flintdatabaseformaterror3.
23364 Wed Jun 06 15:44:08 BST 2007  Olly Betts <olly@survex.com>
23366         * backends/flint/flint_database.cc: Don't check for pre-0.6 databases
23367           here (since they'll be quartz format anyway - the check is just an
23368           overenthusiastic cut-and-paste from quartz).
23370 Wed Jun 06 12:35:16 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23372         * matcher/valuerangepostlist.cc: Avoid calling db->get_lastdocid()
23373           repeatedly in ValueRangePostList::next() - was taking 25% of the
23374           time for a particular test case.
23376 Wed Jun 06 12:17:51 BST 2007  Olly Betts <olly@survex.com>
23378         * tests/harness/unixcmds.cc,tests/harness/unixcmds.h: Add "cp_R()"
23379           which does much the same as "cp -R" on Unix.
23381 Wed Jun 06 12:12:50 BST 2007  Olly Betts <olly@survex.com>
23383         * include/xapian/Makefile: New stub makefile for include/xapian.
23384         * bin/Makefile.mk,examples/Makefile.mk,include/Makefile.mk: Distribute
23385           missing stub Makefile and dir_contents files.
23387 Tue Jun 05 16:44:51 BST 2007  Olly Betts <olly@survex.com>
23389         * tests/harness/index_utils.cc: Back out linger line from r7758.
23390           Fix undefined behaviour in cases where a paragraph has <= 2
23391           characters.
23393 Mon Jun 04 15:31:08 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23395         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc:
23396           Revert the recent changes to the indexing code, and also the
23397           change from revision r7758 which was intended to fix a problem
23398           with eof handling on windows (which is what broke the indexing of
23399           etext.txt).  Then, change backendmanager.cc to test "!from.eof()"
23400           instead of "from" to check for eof - hopefully this will work on
23401           windows - if not, we can investigate further.
23403 Mon Jun 04 13:13:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23405         * tests/harness/backendmanager.cc: Undo previous patch - only the
23406           patch to index_utils.cc was necessary; I mistakenly committed
23407           both files I'd been modifying.
23409 Mon Jun 04 09:06:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23411         * tests/api_db.cc: Add a check to consistency1 that the full mset
23412           size is as big as it should be, to make sure that we notice in
23413           future if the indexing goes wrong again.
23415 Mon Jun 04 08:59:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23417         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc:
23418           Fix the indexing of the testdata, so that the "etext" example is
23419           properly indexed (previously, only the first line was being
23420           indexed, due to faulty end-of-file handling).  This only affects
23421           the "consistency1" test, which now runs a lot slower (but still
23422           passes, fortunately).
23424 Fri Jun 01 23:47:42 BST 2007  Olly Betts <olly@survex.com>
23426         * examples/simpleexpand.cc: Rewrite based on new simplesearch.cc.
23428 Fri Jun 01 00:50:00 BST 2007  Olly Betts <olly@survex.com>
23430         * examples/simpleindex.cc: Replacement "simpleindex" example which
23431           uses the TermGenerator class, which makes for a much smaller and
23432           simpler example.  It's also much more typical of what most users
23433           will want to do.
23435 Thu May 31 23:01:47 BST 2007  Olly Betts <olly@survex.com>
23437         * examples/simplesearch.cc: Replacement "simplesearch" example which
23438           uses the QueryParser.  That makes for a simpler example, and it's
23439           much more typical of what most users will want to do.
23441 Thu May 31 19:31:40 BST 2007  Olly Betts <olly@survex.com>
23443         * NEWS: Update.
23445 Thu May 31 19:18:41 BST 2007  Olly Betts <olly@survex.com>
23447         * HACKING,configure.ac: Relax automake requirement to 1.9.2 to allow
23448           RPM building on RHEL 4.
23449         * HACKING: automake 1.10 seems to work fine with Xapian.
23451 Thu May 31 03:04:42 BST 2007  Olly Betts <olly@survex.com>
23453         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
23454           Check if the docid counter wraps and if it does throw DatabaseError
23455           (fixes bug#152).
23456         * tests/api_wrdb.cc: Add regression test (nomoredocids1).
23458 Thu May 31 02:01:31 BST 2007  Olly Betts <olly@survex.com>
23460         * backends/dbfactory_remote.cc,backends/remote/remote-database.cc,
23461           common/progclient.h,common/remote-database.h,common/tcpclient.h,
23462           net/progclient.cc: Stop a non-writable remote database from calling
23463           dtor_called() when it is destroyed, since that causes MSG_FLUSH to
23464           be sent to the server (fixes bug#149).
23466 Wed May 30 19:47:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23468         * include/xapian/query.h: New accessor method
23469           Xapian::Query::Internal::get_parameter().
23470         * queryparser/queryparser.lemony: Multiple boolean prefixed terms
23471           with the same term prefix are now combined with OR before such
23472           groups are combined with AND.  Similarly for multiple value ranges
23473           on the same value (fixes bug#157).
23474         * include/xapian/queryparser.h: Document new handling of multiple
23475           boolean prefixed terms.
23476         * tests/queryparsertest.cc: Testcases for new handling of multiple
23477           boolean prefixed terms and value ranges.
23479 Wed May 30 14:45:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23481         * docs/deprecation.rst: Update comment about QueryParserError to
23482           point out that you'll need to compile conditionally to work with
23483           0.9.x
23485 Wed May 30 14:33:29 BST 2007  Olly Betts <olly@survex.com>
23487         * NEWS: Update.  Put all the subheadings in the standard order used
23488           for previous releases.
23490 Wed May 30 12:58:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23492         * include/xapian/database.h,api/omdatabase.cc,backends/flint/,
23493           backends/inmemory/,backends/quartz/,
23494           backends/remote/remote-database.cc,
23495           common/database.h,common/remote-database.h,common/remoteprotocol.h,
23496           net/remoteserver.cc: Add a prefixed form of allterms_begin() and
23497           allterms_end(), which allows efficient iteration over only those
23498           terms which begin with the given prefix.  Requires bumping the
23499           remote protocol minor version number, but doesn't change any
23500           database formats.
23501         * queryparser/queryparser.lemony: Update the wildcard and partial
23502           query routines to use the prefixed form of allterms_begin().
23503           This fixes the performance problems noted in bug #153.
23504         * tests/api_db.cc: Add test_allterms6() to test the prefixed form
23505           of allterms iterators.
23507 Wed May 30 12:23:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23509         * backends/remote/remote-database.cc,common/remoteprotocol.h,
23510           docs/remote_protocol.html,net/remoteserver.cc: Apply patch from
23511           Olly (from bug #153) which implements minor version numbers for
23512           the remove protocol.  This will allow us to add new features to
23513           the protocol in future without forcing all clients to upgrade to
23514           exactly the same version as the servers.  Bump the major version
23515           to 30, since this is an incompatible change itself, though.
23517 Wed May 30 12:12:14 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23519         * include/xapian/query.h: Expand documentation of value range
23520           query constructor.
23522 Wed May 30 10:28:39 BST 2007  Olly Betts <olly@survex.com>
23524         * docs/deprecation.rst: Improve entry for QueryParserError.
23526 Wed May 30 01:30:35 BST 2007  Olly Betts <olly@survex.com>
23528         * backends/flint/,bin/xapian-compact.cc: Don't uncompress and
23529           recompress tags when compacting a database.  This speeds up
23530           xapian-compact rather a lot (by more than 50% in my quick test).
23532 Tue May 29 20:58:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23534         * queryparser/Makefile.mk: Fix multiple target rule for generating
23535           the queryparser source files in parallel builds, as described in
23536           HACKING, and as done for the SWIG rules in xapian-bindings.
23537         * queryparser/: Add queryparser_internal.lock and
23538           queryparser_internal.stamp to SVN ignores.
23540 Tue May 29 18:30:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23542         * tests/queryparsertest.cc: Use TEST_STRINGS_EQUAL when comparing
23543           queries against their expected output, since this makes it much
23544           easier to see the differences.
23546 Tue May 29 18:13:26 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23548         * NEWS: Bring up-to-date.
23550 Mon May 28 09:27:43 BST 2007  Olly Betts <olly@survex.com>
23552         * examples/copydatabase.cc: Fix to compile with GCC 2.95.
23554 Mon May 28 01:28:23 BST 2007  Olly Betts <olly@survex.com>
23556         * examples/copydatabase.cc: Rewrite to take advantage of
23557           being able to iterate over all the documents in a database.
23559 Sun May 27 12:20:03 BST 2007  Olly Betts <olly@survex.com>
23561         * include/xapian/termgenerator.h: Improve documentation comments
23562           for TermGenerator class.
23564 Sun May 27 12:15:02 BST 2007  Olly Betts <olly@survex.com>
23566         * backends/quartz/quartz_database.cc,bin/,examples/,net/tcpserver.cc,
23567           tests/api_db.cc,tests/harness/testsuite.cc,tests/harness/testutils.h,
23568           tests/queryparsertest.cc,tests/termgentest.cc: Make use of
23569           Xapian::Error::get_description(), which improves error reporting
23570           in a number of places.
23571         * tests/harness/testsuite.cc: If we get an exception with a long
23572           message in verbose mode, just report the whole message rather than
23573           reporting the truncated message followed by the whole message.
23574         * tests/queryparsertest.cc: Handle Xapian::QueryParserError specially
23575           (as we previously handled all Xapian::Error exceptions).  Other
23576           Xapian::Error exceptions now report the description not just the
23577           message.
23579 Sun May 27 11:33:11 BST 2007  Olly Betts <olly@survex.com>
23581         * api/error.cc,generate-exceptions.in: Add new API method
23582           Xapian::Error::get_description() to allow removal of
23583           essentially duplicated code in many places.  Also useful for
23584           users for the same reason.
23586 Sun May 27 09:56:21 BST 2007  Olly Betts <olly@survex.com>
23588         * generate-exceptions.in: Add vim modeline to force perl syntax
23589           highlighting.
23591 Sat May 26 22:53:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23593         * NEWS: Bring up-to-date.
23595 Sat May 26 22:49:20 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23597         * docs/deprecation.rst: Fix typo in deprecation list for the
23598           bindings pointed out by Thomas Waldmann.
23600 Sat May 26 09:39:36 BST 2007  Olly Betts <olly@survex.com>
23602         * HACKING: Add note about reasons for avoiding std::pair<> with an STL
23603           class as one or both members.
23605 Thu May 24 17:28:20 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23607         * queryparser/Makefile.mk: $(top_builddir)/queryparser is only
23608           required in include path for maintainer mode, so make it so for
23609           neatness.
23611 Tue May 22 11:04:04 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23613         * queryparser/Makefile.mk: Add $(top_builddir)/queryparser to include
23614           path for VPATH builds, to fix a problem with depcomp (triggered
23615           when compiling with gcc-2.95).
23616         * NEWS: Keep up to date.
23618 Mon May 21 13:38:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23620         * tests/queryparsertest.cc: Reduce the range of the test, so that
23621           it passes again, to let the autobuilders work and unbreak HEAD.
23623 Mon May 21 10:26:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23625         * tests/queryparsertest.cc: Remove FIXME from test_qp_flag_partial1:
23626           I've checked that the results look correct.  New test
23627           test_qp_value_range3, to test the NumberValueRangeProcessors -
23628           currently fails because "10" is considered to be between "1" and
23629           "2".
23630         * include/xapian/query.h: Fix typo in documentation comment.
23632 Mon May 21 10:09:34 BST 2007  Olly Betts <olly@survex.com>
23634         * tests/harness/testsuite.h: Put quotes around strings when reporting
23635           a failure in TEST_STRINGS_EQUAL().
23637 Mon May 21 10:08:18 BST 2007  Olly Betts <olly@survex.com>
23639         * tests/internaltest.cc: New tests serialiseerror1 which checks that
23640           the handling of errno/error_string.
23641         * common/serialise.h: Make unserialise_error externally visible for
23642           new test.
23644 Mon May 21 08:40:06 BST 2007  Olly Betts <olly@survex.com>
23646         * HACKING: Update release checklist.
23648 Fri May 18 02:10:39 BST 2007  Olly Betts <olly@survex.com>
23650         * generate-exceptions.in: Fix grammatical errors in Error::get_errno()
23651           deprecation explanation.
23653 Thu May 17 23:51:17 BST 2007  Olly Betts <olly@survex.com>
23655         * api/error.cc: Need <stdlib.h> for free() to build with GCC 4.3
23656           snapshot.
23658 Thu May 17 23:11:53 BST 2007  Olly Betts <olly@survex.com>
23660         * NEWS: Fix line wrapping (ok, isn't wasn't final!)
23662 Thu May 17 22:28:44 BST 2007  Olly Betts <olly@survex.com>
23664         * NEWS: Final update before release.
23666 Thu May 17 19:10:27 BST 2007  Olly Betts <olly@survex.com>
23668         * configure.ac: Bump version to 1.0.0 and update LIBRARY_VERSION_INFO.
23670 Thu May 17 19:10:11 BST 2007  Olly Betts <olly@survex.com>
23672         * NEWS: Minor wording tweak.
23674 Thu May 17 19:06:34 BST 2007  Olly Betts <olly@survex.com>
23676         * docs/Makefile.am: Run rst2html with --strict --verbose options to
23677           reject .rst files with problems.
23678         * docs/deprecation.rst: Add more entries gleaned from the NEWS file.
23680 Thu May 17 18:30:01 BST 2007  Olly Betts <olly@survex.com>
23682         * NEWS: Update with fixes from Jenny's proof-reading and a few other
23683           tweaks.
23685 Thu May 17 18:27:53 BST 2007  Olly Betts <olly@survex.com>
23687         * AUTHORS: Update.
23689 Thu May 17 18:25:39 BST 2007  Olly Betts <olly@survex.com>
23691         * PLATFORMS: Updates from the tinderbox.
23693 Thu May 17 18:08:13 BST 2007  Olly Betts <olly@survex.com>
23695         * common/safesysstat.h: Need the 2 argument mkdir() wrapper for Mingw
23696           too.  Define S_ISDIR() and S_ISREG() if they aren't already defined
23697           rather than conditional on _MSC_VER.
23699 Thu May 17 17:58:43 BST 2007  Olly Betts <olly@survex.com>
23701         * docs/admin_notes.rst: "flint-check" -> "xapian-check".
23703 Thu May 17 17:46:36 BST 2007  Olly Betts <olly@survex.com>
23705         * NEWS: Update for Xapian 1.0.0.
23707 Thu May 17 17:41:15 BST 2007  Olly Betts <olly@survex.com>
23709         * docs/: Update documentation for 1.0.0; add new document describing
23710           new term generation strategy as implemented by TermGenerator class;
23711           link in "lost" documents to the index page.
23713 Thu May 17 03:54:36 BST 2007  Olly Betts <olly@survex.com>
23715         * exception_data.pm: Fix to work with Perl 5.6.
23717 Thu May 17 01:20:16 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23719         * backends/multi/multi_alltermslist.cc: Check that iterators are
23720           not at_end() before calling skip_to() on them.
23722 Thu May 17 00:49:03 BST 2007  Olly Betts <olly@survex.com>
23724         * backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc,
23725           backends/quartz/btree.cc,common/Makefile.mk,
23726           common/msvc_posix_wrapper.cc,common/msvc_posix_wrapper.h: Use
23727           msvc_posix_wrapper.h functions for all __WIN32__ builds, not just
23728           for MSVC.
23730 Wed May 16 23:55:46 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23732         * api/omdatabase.cc: Fix return type in debug macro in
23733           replace_document().
23735 Wed May 16 23:45:20 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23737         * tests/apitest.cc: Add collfreq and allterms tests to the tests
23738           for the remote and remotetcp backends.  They all pass.
23740 Wed May 16 15:11:00 BST 2007  Olly Betts <olly@survex.com>
23742         * configure.ac: Need to try -zdll for mingw as well.
23744 Wed May 16 14:45:23 BST 2007  Olly Betts <olly@survex.com>
23746         * tests/queryparsertest.cc: Add two more testcases.
23748 Wed May 16 14:32:46 BST 2007  Olly Betts <olly@survex.com>
23750         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix
23751           double-free on invalid range query.
23753 Wed May 16 10:08:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23755         * tests/queryparsertest.cc: Add some more test cases to the value
23756           range processor.  These currently fail with a SIGSEGV message.
23758 Wed May 16 02:22:17 BST 2007  Olly Betts <olly@survex.com>
23760         * queryparser/termgenerator_internal.cc: Fix handling of stemming of
23761           prefixed terms.
23762         * tests/termgentest.cc: Fix testcases.
23764 Wed May 16 01:54:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23766         * tests/termgentest.cc: Add a test for parsing of capitalised words
23767           with a prefix, which currently fails.
23769 Wed May 16 01:09:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23771         * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
23772           a method to get the current document from the term generator.
23773           Helps avoid users having to pass around a structure encapsulating
23774           the generator and the document assigned to it.
23776 Wed May 16 00:50:07 BST 2007  Olly Betts <olly@survex.com>
23778         * docs/deprecation.rst: Add <xapian/output.h>.
23780 Tue May 15 22:46:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23782         * tests/termgentest.cc: Use resize(0) instead of clear(), for g++2.95
23784 Tue May 15 20:25:07 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23786         * net/remoteconnection.cc: Add a comment noting why we test
23787           __STDC_SECURE_LIB__ even though its an undocumented macro.
23789 Tue May 15 20:14:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23791         * tests/termgentest.cc: Add several more tests - some converted
23792           from the query tests, some more initial tests, and some number
23793           tests.
23795 Tue May 15 18:31:21 BST 2007  Olly Betts <olly@survex.com>
23797         * queryparser/termgenerator_internal.cc: Revert previous change - we
23798           need to generate Zibm and Zpc from text `I.B.M. P.C.' or else a
23799           search for `ibm pc' won't match.
23801 Tue May 15 18:22:44 BST 2007  Olly Betts <olly@survex.com>
23803         * queryparser/termgenerator_internal.cc: Sort out stemming of
23804           initials.
23806 Tue May 15 18:04:17 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23808         * tests/termgentest.cc: Add some more tests, and rework the array
23809           of tests so that there's just a single string holding any options
23810           we want to set for the following tests.
23812 Tue May 15 16:49:17 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23814         * tests/Makefile.am,tests/termgentest.cc: Add new test file, for
23815           testing the term generator.  Only has a single test so far.
23817 Tue May 15 16:20:20 BST 2007  Olly Betts <olly@survex.com>
23819         * include/xapian/unicode.h: Make single parameter ctor explicit.
23821 Tue May 15 16:00:24 BST 2007  Olly Betts <olly@survex.com>
23823         * queryparser/termgenerator_internal.cc: Add special handling for
23824           acronyms/initialisms, so I.B.M -> term ibm, etc.
23826 Tue May 15 14:07:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23828         * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
23829           a set_termpos() method, too.
23831 Tue May 15 13:54:34 BST 2007  Olly Betts <olly@survex.com>
23833         * include/xapian/database.h: Document the issue of the monotonic
23834           docid counter wrapping around.
23836 Tue May 15 10:58:37 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23838         * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
23839           get_termpos() method to get the current value of the termpos.
23840           Makes it easier to integrate with different term generators.
23842 Tue May 15 03:44:50 BST 2007  Olly Betts <olly@survex.com>
23844         * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
23845           Include '.', ',', and a few other characters in terms if they are
23846           between two decimal digits.
23847         * queryparser/termgenerator_internal.cc: Don't stem terms which start
23848           with a number.
23849         * tests/queryparsertest.cc: Update results for real world queries to
23850           match new results (better in every case but one!)
23852 Tue May 15 01:24:08 BST 2007  Olly Betts <olly@survex.com>
23854         * HACKING: Fix a few typos.  Add "feisty" to the list of debs to
23855           build.
23857 Tue May 15 00:51:35 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23859         * HACKING: Document that the bootstrap script should be run from
23860           srcdir, and that the generated configure can be run from a
23861           different builddir.  Tidy up a few other lines.
23863 Mon May 14 23:52:33 BST 2007  Olly Betts <olly@survex.com>
23865         * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
23866           Expand check_infix to include some of characters Unicode does.
23867         * tests/queryparsertest.cc: Update the single test query which now
23868           parses differently.
23870 Mon May 14 23:42:53 BST 2007  Olly Betts <olly@survex.com>
23872         * tests/harness/testsuite.h: New macro TEST_STRINGS_EQUAL() which
23873           displays the strings on separate lines so the differences can
23874           be clearly seen.
23875         * tests/queryparsertest.cc: Use TEST_STRINGS_EQUAL().
23877 Mon May 14 20:14:17 BST 2007  Olly Betts <olly@survex.com>
23879         * include/xapian/enquire.h: Make the "uses string sort" warning in
23880           the documentation for the methods which enable sorting by value
23881           more prominent, and fix several miscellaneous typos.
23883 Mon May 14 19:28:21 BST 2007  Olly Betts <olly@survex.com>
23885         * queryparser/dir_contents: Update to mention TermGenerator.
23887 Mon May 14 19:12:12 BST 2007  Olly Betts <olly@survex.com>
23889         * queryparser/queryparser.lemony: Fix handling of WILDCARD_TERM and
23890           PARTIAL_TERM for prefixed terms.
23891         * tests/queryparsertest.cc: Add test coverage for this.
23893 Mon May 14 18:02:22 BST 2007  Olly Betts <olly@survex.com>
23895         * tests/queryparsertest.cc: Add more testcases for wildcarded queries.
23897 Mon May 14 17:39:30 BST 2007  Olly Betts <olly@survex.com>
23899         * queryparser/queryparser.lemony: Fix handling of partial queries.
23901 Mon May 14 16:49:46 BST 2007  Olly Betts <olly@survex.com>
23903         * net/remoteconnection.cc: closesocket() seems to work equally as
23904           well as CloseHandle() but it's what we use elsewhere and Charlie
23905           thinks it's a better choice here too so use that instead.  Rename
23906           the wrapper call from close_fd_or_handle() to close_fd_or_socket().
23907           And mark close_fd_or_socket() as "inline" under UNIX, since it
23908           should always be inlined.
23910 Mon May 14 15:30:13 BST 2007  Olly Betts <olly@survex.com>
23912         * tests/api_anydb.cc: Add FIXME about moving wildquery1.
23914 Mon May 14 15:21:59 BST 2007  Olly Betts <olly@survex.com>
23916         * bin/xapian-progsrv.cc: Improve comments.
23918 Mon May 14 11:29:14 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23920         * net/remoteconnection.cc: Deal with invalid parameter exceptions
23921           on windows when closing file descriptors or handles.
23923 Mon May 14 05:04:16 BST 2007  Olly Betts <olly@survex.com>
23925         * tests/api_anydb.cc: Fix wildquery1 to work with the new term
23926           stemming scheme.
23928 Sun May 13 19:15:17 BST 2007  Olly Betts <olly@survex.com>
23930         * include/xapian/unicode.h: Count control characters as whitespace
23931           (which is certainly what we want for TAB, CR, LF, and FF).
23933 Sun May 13 17:50:19 BST 2007  Olly Betts <olly@survex.com>
23935         * include/xapian/unicode.h: Add CONNECTOR_PUNCTUATION to is_wordchar()
23936           - this category includes '_' and characters which fulfil similar
23937           roles.
23938         * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
23939           No longer need to special case '_'.
23940         * queryparser/queryparser.lemony: Test for Unicode "whitespace" rather
23941           than just ASCII.
23943 Sun May 13 04:43:37 BST 2007  Olly Betts <olly@survex.com>
23945         * queryparser/queryparser.lemony: Normalise Unicode characters used
23946           for apostrophe to ASCII apostrophe.
23948 Sun May 13 03:56:17 BST 2007  Olly Betts <olly@survex.com>
23950         * include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
23951           routines to use Unicode 5.0.0 and support characters outside the BMP
23952           (so we now support all Unicode characters in the latest version of
23953           the standard).
23954         * tests/api_unicode.cc: Add test unicode1 which performs some simple
23955           tests of the categorisation function, include one which tests for a
23956           character added in Unicode 5.0.0.
23958 Sat May 12 06:01:50 BST 2007  Olly Betts <olly@survex.com>
23960         * queryparser/queryparser.lemony: Update comment.
23962 Sat May 12 04:23:01 BST 2007  Olly Betts <olly@survex.com>
23964         * queryparser/queryparser.lemony: Improve description of Term class.
23966 Sat May 12 04:16:47 BST 2007  Olly Betts <olly@survex.com>
23968         * queryparser/queryparser.lemony: Update to implement the new stemming
23969           scheme.
23970         * tests/queryparsertest.cc: Update testcases, and check that the new
23971           parses are all reasonable.
23973 Sat May 12 04:03:55 BST 2007  Olly Betts <olly@survex.com>
23975         * include/xapian/unicode.h: Xapian::Unicode::get_category() now checks
23976           for characters outside the BMP, and assumes they're of category
23977           OTHER_LETTER.  Remove BMP check from all functions which use
23978           Xapian::Unicode::get_category().
23980 Sat May 12 04:02:52 BST 2007  Olly Betts <olly@survex.com>
23982         * include/xapian/queryparser.h: Fix typo in comment.
23984 Fri May 11 05:45:38 BST 2007  Olly Betts <olly@survex.com>
23986         * net/remoteserver.cc: Make "Server is read-only" be of type
23987           InvalidOperationError not NetworkError.  This is arguably more
23988           appropriate anyway, but in particular it avoids a worrying looking
23989           (but harmless) warning when a read-only connection is closed, due
23990           dtor_called() calling flush() on a read-only database.
23992 Fri May 11 01:35:31 BST 2007  Olly Betts <olly@survex.com>
23994         * docs/Makefile.am: Disable more documentation rules if
23995           MAINTAINER_NO_DOCS is true.
23997 Thu May 10 23:01:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23999         * net/remoteconnection.cc: Remove definition of unused macro
24000           XAPIAN_MSVC_INVALID_PARAMETER_HANDLER.
24002 Thu May 10 19:24:23 BST 2007  Olly Betts <olly@survex.com>
24004         * include/xapian/enquire.h: Try quoting qualified identifiers in
24005           #pragma deprecated.
24007 Thu May 10 15:58:37 BST 2007  Olly Betts <olly@survex.com>
24009         * include/xapian/enquire.h: Give full scope in '#pragma deprecated'
24010           to try to avoid false positives.
24012 Thu May 10 14:53:08 BST 2007  Olly Betts <olly@survex.com>
24014         * include/xapian/enquire.h: Use '#pragma deprecated' to work around
24015           MSVC stupidity (you get a warning for deprecating a declaration).
24017 Thu May 10 13:42:49 BST 2007  Olly Betts <olly@survex.com>
24019         * configure.ac: Some GCC 3.x versions produce bogus warnings, so only
24020           automatically enable -Werror on --enable-maintainer-mode under GCC
24021           if we're using GCC >= 4.0.  Most developers will be using GCC 4.x
24022           soon if they aren't already anyway.
24023         * HACKING: Update documentation in line with the above.  Mention that
24024           we also enable -Werror for Intel's C++ compiler.
24026 Thu May 10 05:06:22 BST 2007  Olly Betts <olly@survex.com>
24028         * configure.ac: Detect __WIN32__ by running the preprocessor so we
24029           don't get confused by building mingw in a cygwin environment.
24031 Thu May 10 04:52:21 BST 2007  Olly Betts <olly@survex.com>
24033         * net/tcpserver.cc: Exit with EX_UNAVAILABLE if the mutex tells us
24034           xapian-tcpsrv is already running on this port.
24036 Thu May 10 04:44:10 BST 2007  Olly Betts <olly@survex.com>
24038         * common/Makefile.mk,common/safe.cc,common/safeunistd.h: Pulling
24039           in safewindows.h from safeunistd.h causes clashes with NEAR
24040           in the QueryParser, so use a helper function to call Sleep
24041           and just call that from the header.
24043 Thu May 10 04:36:19 BST 2007  Olly Betts <olly@survex.com>
24045         * net/tcpserver.cc: Fix compilation error.
24047 Thu May 10 04:26:31 BST 2007  Olly Betts <olly@survex.com>
24049         * common/tcpserver.h,net/tcpserver.cc: Just pass the mutex to
24050           get_listening_socket() by reference to avoid MSVC warnings.
24052 Thu May 10 04:19:13 BST 2007  Olly Betts <olly@survex.com>
24054         * common/safeunistd.h: Use Sleep() instead of _sleep() as the latter
24055           gives deprecation warnings.  Sadly that means that safeunistd.h
24056           now has to pull in safewindows.h.
24058 Thu May 10 04:07:53 BST 2007  Olly Betts <olly@survex.com>
24060         * common/tcpserver.h,net/tcpserver.cc: Keep track of the mutex so
24061           we can release it right after we close the listening socket.
24062           Throw an error if we fail to get the mutex to avoid a possible
24063           race condition (we might end up with the socket listening but
24064           without the mutex locked).  Always call closesocket() on the
24065           listening socket under __WIN32__ to ensure resources are released.
24067 Thu May 10 02:48:31 BST 2007  Olly Betts <olly@survex.com>
24069         * net/tcpserver.cc: Use a mutex under Cygwin and WIN32 to allow use to
24070           use Microsoft's broken SO_REUSEADDR on our listening socket, but
24071           avoid being able to run two copies of xapian-tcpsrv on the same port
24072           at once (tweaked patch from MarkH).
24073         * net/tcpserver.cc: Don't try to set SO_EXCLUSIVEADDRUSE if a previous
24074           setsockopt() call failed as we might stomp on the error code.
24076 Thu May 10 02:15:20 BST 2007  Olly Betts <olly@survex.com>
24078         * Makefile.am,bin/Makefile.mk,configure.ac,docs/Makefile.am,
24079           examples/Makefile.mk: Add new Automake conditional
24080           "MAINTAINER_NO_DOCS" to allow use to disable references to built
24081           documentation in maintainer builds if --disable-documentation is
24082           specified.  This allows Mark's buildbot to work without installing
24083           so many tools, some of which aren't packaged for Cygwin.
24085 Thu May 10 02:03:44 BST 2007  Olly Betts <olly@survex.com>
24087         * Makefile.am: Build rules for running generate-exceptions should be
24088           controlled by MAINTAINER_MODE not DOCUMENTATION_RULES, part II.
24090 Thu May 10 01:49:42 BST 2007  Olly Betts <olly@survex.com>
24092         * docs/deprecation.rst: Add Error::get_type().
24094 Thu May 10 01:25:37 BST 2007  Olly Betts <olly@survex.com>
24096         * api/error.cc,generate-exceptions.in: Add new constructors which
24097           allow error_string to be set directly, for use by the Xapian::Error
24098           unserialising code.
24099         * generate-exceptions.in: Xapian::Error::get_type() now returns
24100           const char * not std::string.
24101         * backends/quartz/quartz_database.cc: Fix code to handle changed
24102           return type of Xapian::Error::get_type().
24103         * net/serialise.cc: Include error_string in the serialisation.
24104         * common/remoteprotocol.h,docs/remote_protocol.html: Bump protocol
24105           version to 29 because of change in Xapian::Error serialisation.
24107 Wed May 09 14:42:33 BST 2007  Olly Betts <olly@survex.com>
24109         * queryparser/queryparser.lemony: Renaming match_nothing_
24110           member of QpQuery to match_nothing.  Comment out unused
24111           QpQuery::get_description().  Add FIXME comment about
24112           apparently redundant logic (now's not really the time
24113           to be fiddling with such things).
24115 Wed May 09 14:27:02 BST 2007  Olly Betts <olly@survex.com>
24117         * queryparser/queryparser.lemony: Update to match new TermGenerator
24118           class.  '_' is now a term character, not a phrase generator.  We
24119           only keep a suffix which has 3 or fewer characters, and we no longer
24120           count '-' as a suffix character.
24121         * tests/queryparsertest.cc: Update test cases to match new behaviour.
24122           In almost every case the new rules give a better result.
24124 Wed May 09 14:15:38 BST 2007  Olly Betts <olly@survex.com>
24126         * languages/compiler/space.c: Add sanity check to b_to_s(),
24127           highlighted by MSVC warning.
24129 Wed May 09 14:06:24 BST 2007  Olly Betts <olly@survex.com>
24131         * tests/btreetest.cc: Return filesize as off_t to avoid MSVC warning
24132           about truncating from 64 to 32 bits (the filesize will never be
24133           more than a few K here, so this is essentially a cosmetic issue).
24135 Wed May 09 04:04:03 BST 2007  Olly Betts <olly@survex.com>
24137         * common/tcpserver.h,net/tcpserver.cc: Always starting the server in a
24138           new thread in "one-shot" mode is trickier than it looked, so revert
24139           that change for now.  Always call closesocket() on our sockets under
24140           __WIN32__.
24142 Wed May 09 01:53:43 BST 2007  Olly Betts <olly@survex.com>
24144         * common/tcpserver.h,net/tcpserver.cc: Make UNIX signal handling
24145           functions and WIN32 CrtlHandler static.  TcpServer::run() is now
24146           generic, calling an OS-specific TcpServer::run_once().  Now we
24147           always run the server in a new thread in "one-shot" mode, which
24148           gives better code coverage in apitest as it runs more like a normal
24149           xapian-tcpsrv would.  CtrlHandler now lets the OS handle the event
24150           if it doesn't have a socket to close, or if closesocket() fails.
24152 Wed May 09 01:42:33 BST 2007  Olly Betts <olly@survex.com>
24154         * net/remoteconnection.cc: DWORD is unsigned, so received can't be
24155           negative - tidy up the ReadFile() loop taking this into account.
24157 Wed May 09 01:28:48 BST 2007  Olly Betts <olly@survex.com>
24159         * net/remoteconnection.cc: ReadFile() doesn't set errno, so remove
24160           test for EINTR which is just a hangover from the UNIX code.
24162 Tue May 08 23:50:33 BST 2007  Olly Betts <olly@survex.com>
24164         * queryparser/termgenerator_internal.cc: Treat '_' as a word character
24165           which seems to be the correct thing to do in general.  Generate
24166           unstemmed terms with positional information for all words without a
24167           prefix, and stemmed terms without positional information for
24168           non-stopwords with a 'Z' prefix.  This means we can implement exact
24169           phrase search, and prefixing stemmed forms (rather than unstemmed
24170           as Omega < 1.0 does) means fewer terms with the prefix.  Only
24171           stemming non-stopwords cuts a significant amount of the database
24172           size in my tests.
24174 Tue May 08 18:22:30 BST 2007  Olly Betts <olly@survex.com>
24176         * net/tcpserver.cc: Fix remaining use of handle_one_request in
24177           __WIN32__-specific code.
24179 Tue May 08 18:10:12 BST 2007  Olly Betts <olly@survex.com>
24181         * api/error.cc: Really fix it...
24183 Tue May 08 17:38:04 BST 2007  Olly Betts <olly@survex.com>
24185         * api/error.cc: Fix another paste-o!
24187 Tue May 08 17:28:29 BST 2007  Olly Betts <olly@survex.com>
24189         * api/error.cc: Remove bogus statement in __WIN32__ case left over
24190           from cut-and-paste.
24192 Tue May 08 17:10:53 BST 2007  Olly Betts <olly@survex.com>
24194         * common/tcpserver.h,net/tcpserver.cc: Rename
24195           TcpServer::handle_one_request() to
24196           TcpServer::handle_one_connection() (to make it clearer that it
24197           handles a connection rather than a single MSG/REPLY exchange), and
24198           use it in UNIX builds too to avoid duplicating its code.  Catch
24199           NetworkTimeoutError here and report it if we're in verbose mode.
24200         * net/remoteserver.cc: If we catch NetworkTimeoutError then try to
24201           propagate it only if we can send it right away, then rethrow it
24202           to close the connection and let the caller log it.  If we catch
24203           any other NetworkError then just rethrow it.
24205 Tue May 08 16:52:50 BST 2007  Olly Betts <olly@survex.com>
24207         * common/noreturn.h: Add missing '#endif'.
24209 Tue May 08 16:19:05 BST 2007  Olly Betts <olly@survex.com>
24211         * common/Makefile.mk,common/noreturn.h: New header which defines
24212           XAPIAN_NORETURN() to allow functions which don't return to be
24213           marked as such so the compiler can take this into account when
24214           generating code.
24215         * api/error.cc,tests/harness/backendmanager.cc: Remove any trailing
24216           "\r\n" from the output of FormatMessage().
24218 Tue May 08 16:16:55 BST 2007  Olly Betts <olly@survex.com>
24220         * include/xapian/deprecated.h: Use `__attribute__((__deprecated__))'
24221           instead of `__attribute__((deprecated))' so we're even robust
24222           against some clown doing `#define deprecated foo'.
24224 Tue May 08 16:15:30 BST 2007  Olly Betts <olly@survex.com>
24226         * bin/quartzcheck.cc,tests/harness/backendmanager.cc: In these files
24227           we have to disable XAPIAN_DEPRECATED() since we need to be able to
24228           use Quartz::open() - move this to the start of the #include block
24229           to avoid problems with any intermediate header implicitly including
24230           <xapian.h>.
24232 Tue May 08 14:51:37 BST 2007  Olly Betts <olly@survex.com>
24234         * HACKING: Move section on "Configure Options" to a more logical spot
24235           just before "Makefile Portability".  Add section on how to use
24236           XAPIAN_DEPRECATED() noting the issue with GCC 3.3.5 not allowing
24237           it to be used on an inline method definition.
24238         * include/xapian/deprecated.h: Add pointers to HACKING and
24239           docs/deprecated.rst.
24241 Tue May 08 13:57:17 BST 2007  Olly Betts <olly@survex.com>
24243         * generate-exceptions.in: We can't use XAPIAN_DEPRECATED() on
24244           a function definition with GCC 3.3.5, so use it on a declaration
24245           and then define inline but out of the class.
24247 Tue May 08 13:45:48 BST 2007  Olly Betts <olly@survex.com>
24249         * net/tcpserver.cc: We must call closesocket() (instead of just
24250           close()) under __WIN32__ or else the socket remains in the
24251           CLOSE_WAIT state.
24253 Tue May 08 12:17:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24255         * docs/deprecation.rst: Add Error::get_errno() to the deprecation
24256           list for the bindings, too.
24258 Tue May 08 10:09:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24260         * docs/deprecation.rst: Change the xapian_version functions to be
24261           marked for removal in 1.1.0, and also note them in the bindings
24262           section.
24264 Tue May 08 04:27:37 BST 2007  Olly Betts <olly@survex.com>
24266         * backends/remote/remote-database.cc,common/remote-database.h: The
24267           timeout parameter to RemoteDatabase wasn't being used, instead the
24268           client would wait indefinitely for the server to respond.
24270 Tue May 08 04:16:45 BST 2007  Olly Betts <olly@survex.com>
24272         * generate-exceptions.in: Initialise error_string in Xapian::Error
24273           ctor.
24275 Tue May 08 03:48:47 BST 2007  Olly Betts <olly@survex.com>
24277         * api/error.cc: Fix compilation when HAVE_HSTRERROR isn't defined.
24279 Tue May 08 02:35:04 BST 2007  Olly Betts <olly@survex.com>
24281         * api/error.cc,bin/xapian-tcpsrv.cc,examples/delve.cc,
24282           generate-exceptions.in,tests/harness/testsuite.cc: Error subclasses
24283           now store the error_string in the class, converting it from the
24284           error code in my_errno lazily.  Also, get_error_string() now returns
24285           const char *.
24287 Tue May 08 01:34:56 BST 2007  Olly Betts <olly@survex.com>
24289         * Makefile.am: Build rules for running generate-exceptions should be
24290           controlled by MAINTAINER_MODE not DOCUMENTATION_RULES.
24292 Tue May 08 01:23:22 BST 2007  Olly Betts <olly@survex.com>
24294         * bin/xapian-tcpsrv.cc,docs/deprecation.rst,generate-exceptions.in,
24295           net/tcpserver.cc,tests/harness/testsuite.cc: Deprecate
24296           Error::get_errno() in favour of Error::get_error_string().  We can't
24297           pass errno values from remote server to client as they aren't
24298           portable and the server and client may be running on entirely
24299           different platforms!
24300         * generate-exceptions.in: Mark as generated with @configure_input@.
24302 Tue May 08 01:20:43 BST 2007  Olly Betts <olly@survex.com>
24304         * backends/flint/flint_database.cc,backends/flint/flint_lock.h: Make
24305           FlintLock's dtor release the lock (if held) which avoids the need
24306           for any special handling in FlintDatabase.
24308 Mon May 07 21:15:33 BST 2007  Olly Betts <olly@survex.com>
24310         * tests/harness/unixcmds.cc: Use O_BINARY when opening a file to
24311           "touch" it.
24313 Mon May 07 17:28:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24315         * backends/flint/flint_database.cc: Add try{}catch(...){} block to
24316           ensure that lock is released if an exception occurs in the
24317           FlintDatabase() constructor.
24318         * tests/api_db.cc: Add regression test for releasing lock on error
24319           in constructor.
24321 Mon May 07 11:10:33 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24323         * HACKING: Update section on multiple output rules to detail the
24324           workaround described in the automake manual.
24326 Mon May 07 10:03:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24328         * backends/flint/flint_database.cc,backends/flint/flint_database.h,
24329           backends/flint/flint_version.cc,backends/quartz/,exception_data.pm,
24330           include/xapian/database.h,tests/api_db.cc: Throw
24331           DatabaseVersionError instead of DatabaseOpeningError when database
24332           version is unsupported.  This is a new error class, which is a
24333           subclass of DatabaseOpeningError, so most existing scripts
24334           shouldn't need changing, but makes it easy for application
24335           writers to determine whether a database needs upgrading or
24336           whether the problem is something else.  Should fix #144.
24338 Mon May 07 09:22:01 BST 2007  Olly Betts <olly@survex.com>
24340         * net/progclient.cc: Under __WIN32__, use byte mode on pipes because
24341           message mode fails for message > 256 bytes, and use "overlapped"
24342           mode so we don't block waiting for a reply so that timeouts work.
24343           (Patch from Mark Hammond).
24345 Mon May 07 03:03:10 BST 2007  Olly Betts <olly@survex.com>
24347         * tests/api_anydb.cc,tests/apitest.cc,tests/harness/: Now
24348           TEST_EQUAL_DOUBLE() should work everywhere.  Move the helper
24349           function out of the header.  Use TEST_EQUAL_DOUBLE() instead
24350           of doubles_are_equal_enough() and weights_are_equal_enough()
24351           which do much the same job.
24353 Mon May 07 01:13:29 BST 2007  Olly Betts <olly@survex.com>
24355         * tests/harness/testsuite.h: Report extra info to try to work out why
24356           MSVC build is failing expandweights1.
24358 Mon May 07 00:26:59 BST 2007  Olly Betts <olly@survex.com>
24360         * tests/harness/testsuite.h: Another tweak to TEST_EQUAL_DOUBLE().
24362 Sun May 06 22:30:26 BST 2007  Olly Betts <olly@survex.com>
24364         * docs/quickstart.html: Remove reference to DA databases since the
24365           muscat36 backend has been removed.  Update to recommend GCC 3.3
24366           or later, as we do elsewhere.  Change references to "quartz" to
24367           say "flint", or remove them.
24369 Sun May 06 16:02:28 BST 2007  Olly Betts <olly@survex.com>
24371         * configure.ac: Set version to mythical 0.9.99.
24373 Sun May 06 15:06:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24375         * tests/api_db.cc: Add test_flintdatabaseformaterror1() which
24376           checks what happens when an old-format flint database is opened.
24377           It generates the old-format database by making a fake "iamflint"
24378           file containing an old version number.
24380 Sun May 06 04:00:39 BST 2007  Olly Betts <olly@survex.com>
24382         * expand/ortermlist.cc: Remove incorrect assertion check in
24383           OrTermList::next(), replacing it with anexplanatory comment.
24385 Sun May 06 02:42:30 BST 2007  Olly Betts <olly@survex.com>
24387         * net/remoteconnection.cc: Fix typo.
24389 Sun May 06 02:39:23 BST 2007  Olly Betts <olly@survex.com>
24391         * net/remoteconnection.cc: Aha!  Richard's patch failed to compile
24392           because stdlib.h was in "#ifndef __WIN32__" not "#ifdef __WIN32__".
24394 Sun May 06 02:27:18 BST 2007  Olly Betts <olly@survex.com>
24396         * net/remoteconnection.cc: Protect _set_invalid_parameter_handler, etc
24397           by _MSC_VER >= 1400 (MSVC 2005) and __STDC_SECURE_LIB__ (undocumented
24398           but cribbed from the Python sources).  Refactor into a handy class
24399           (MSVCIgnoreInvalidParameter) which just needs to be instantiated in
24400           the scope where you want to allow invalid parameters to be passed.
24402 Sun May 06 01:42:06 BST 2007  Olly Betts <olly@survex.com>
24404         * net/remoteconnection.cc: Rework use of _invalid_parameter_handler to
24405           only apply when _MSC_VER is defined, to fix the mingw build.
24407 Sat May 05 22:30:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24409         * net/remoteconnection.cc: Under __WIN32__, add an invalid
24410           parameter handler which ignores the error and use it for the
24411           calls to _get_osfhandle() which are sometimes expected to fail.
24412           Requires stdlib.h according to msdn, so also #include that.
24414 Sat May 05 20:43:29 BST 2007  Olly Betts <olly@survex.com>
24416         * bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc,common/remoteconnection.h,
24417           common/remoteserver.h,common/tcpserver.h,net/remoteserver.cc,
24418           net/tcpserver.cc: Open a fresh copy of the database(s) on each
24419           connection to a xapian-tcpsrv rather than relying on being able to
24420           share a database across fork() or between threads (which we don't
24421           promise will work).  Largely based on patch from Mark Hammond.
24422           Fixes some of bug#141 and all of bug#142.
24424 Sat May 05 02:19:39 BST 2007  Olly Betts <olly@survex.com>
24426         * api/omdatabase.cc: Use RETURN() not return in methods with debug
24427           logging.
24429 Sat May 05 02:19:11 BST 2007  Olly Betts <olly@survex.com>
24431         * bin/xapian-compact.cc: Fix typo in comment.
24433 Fri May 04 23:59:54 BST 2007  Olly Betts <olly@survex.com>
24435         * backends/flint/flint_version.cc: Remove the "u" suffix from
24436           FLINT_VERSION as it's confusing in the "wrong format version"
24437           error message and doesn't seem needed in the code.
24439 Fri May 04 23:56:32 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24441         * backends/flint/: Revert patch from revision 8426 (except for the
24442           bit which removed the unused prototypes), to avoid the
24443           possibility that it introduces bugs into the code just before
24444           1.0.0.  The patch is attached to bug #143 for later reference.
24446 Fri May 04 23:50:39 BST 2007  Olly Betts <olly@survex.com>
24448         * examples/delve.cc: Report the error string if we catch Xapian::Error
24449           while trying to open a database.
24451 Fri May 04 22:50:54 BST 2007  Olly Betts <olly@survex.com>
24453         * docs/intro_ir.html: Fix a few typos; elaborate on a few points.
24455 Fri May 04 20:07:44 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24457         * queryparser/termgenerator_internal.cc: Fix bug in termgenerator -
24458           arguments to add_posting were the wrong way round.
24460 Fri May 04 20:00:40 BST 2007  Olly Betts <olly@survex.com>
24462         * queryparser/termgenerator_internal.cc: Limit term length, handle
24463           infix and suffix characters, and convert apostrophes to ASCII
24464           representation.
24466 Fri May 04 19:47:43 BST 2007  Olly Betts <olly@survex.com>
24468         * include/xapian/unicode.h: Fill in remaining missing documentation
24469           comments.
24471 Fri May 04 19:30:56 BST 2007  Olly Betts <olly@survex.com>
24473         * include/xapian/termgenerator.h: Add convenience version of
24474           index_text() and index_text_without_positions() which take a
24475           std::string instead of a Utf8Iterator.
24477 Fri May 04 17:11:11 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24479         * unicode/utf8itor.cc: Fix segfault bug in Utf8Iterator::operator*().
24480           If this was called when the iterator had reached end, invalid
24481           memory was accessed because p was compared to end, p will always
24482           be set to NULL when the iterator reaches the end.  No regression
24483           test, but the smoketest tests I'm implementing in the bindings
24484           will exercise this code.
24486 Fri May 04 16:29:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24488         * include/xapian/unicode.h: Add documentation comments to
24489           Utf8Iterator, so I don't have to work out how it works again.
24491 Fri May 04 14:55:32 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24493         * include/xapian/unicode.h: Add assign() function which takes a
24494           string, for symmetry with the constructors.  Also makes
24495           implementing the bindings easier.
24497 Fri May 04 13:04:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24499         * include/Makefile.mk: Add termgenerator.h to distribution
24500           tarballs.
24502 Fri May 04 03:41:56 BST 2007  Olly Betts <olly@survex.com>
24504         * tests/harness/testsuite.h: Test against pow(10, -DBL_DIG) rather
24505           than DBL_EPSILON.  DBL_EPSILON is a little bit smaller, but we use
24506           DBL_DIG for displaying the numbers and it looks stupid to say two
24507           numbers which are displayed identically should be nearly the same!
24509 Fri May 04 03:33:51 BST 2007  Olly Betts <olly@survex.com>
24511         * HACKING: Fix reference to --enable-maitainer-mode and documentation
24512           rebuilding.
24514 Fri May 04 03:32:57 BST 2007  Olly Betts <olly@survex.com>
24516         * configure.ac: Fix now erroneous references to tools "required in
24517           maintainer mode" to "required to build documentation".
24519 Fri May 04 01:49:05 BST 2007  Olly Betts <olly@survex.com>
24521         * HACKING: Document --enable-documentation.
24523 Fri May 04 01:38:44 BST 2007  Olly Betts <olly@survex.com>
24525         * Makefile.am,bin/Makefile.mk,configure.ac,docs/Makefile.am,
24526           examples/Makefile.mk: Add new configure option
24527           "--enable-documentation" which enables the make rules to rebuild the
24528           documentation.  By default this follows the setting of
24529           "--enable-maintainer-mode" (so giving much the same behaviour as
24530           currently), but the documentation rules can now be controlled
24531           independently.  Also, if documentation isn't being built, the
24532           configure probes for tools required to rebuild it are no longer run
24533           which should shorten configure time a bit for end-users building
24534           releases.
24536 Thu May 03 22:07:39 BST 2007  Olly Betts <olly@survex.com>
24538         * common/remoteserver.h: Remove unused default values for
24539           active_timeout_ and idle_timeout_ parameters.  Fix repeated typo
24540           in documentation comments ('millisrconds' -> 'milliseconds').
24542 Thu May 03 15:05:24 BST 2007  Olly Betts <olly@survex.com>
24544         * include/xapian.h,include/xapian/termgenerator.h,queryparser/:
24545           Initial cut of TermGenerator class.
24547 Thu May 03 15:04:09 BST 2007  Olly Betts <olly@survex.com>
24549         * generate-exceptions.in: Hide the internal constructors of generated
24550           error classes in the doxygen-generated API docs.
24552 Thu May 03 04:37:51 BST 2007  Olly Betts <olly@survex.com>
24554         * expand/ortermlist.cc,expand/ortermlist.h: Fix compilation error when
24555           --enable-assertions is used.
24557 Thu May 03 03:57:42 BST 2007  Olly Betts <olly@survex.com>
24559         * common/safeunistd.h: Provide a POSIX-compatible sleep() function.
24560         * common/utils.h: Remove inferior POSIX-compatible sleep() function.
24562 Thu May 03 03:17:02 BST 2007  Olly Betts <olly@survex.com>
24564         * include/xapian/: Mark all @internal member variables and functions
24565           which aren't private with @private so doxygen doesn't document them.
24567 Thu May 03 02:33:09 BST 2007  Olly Betts <olly@survex.com>
24569         * include/xapian/: Mark DocIDWrapper, RefCntBase, RefCntPtr,
24570           TermNameWrapper, and TermPosWrapper as "@internal" so that they don't
24571           show up in the doxygen-generated API documentation.  In particular,
24572           this makes the class collaboration diagrams much more useful.
24573         * include/xapian/errorhandler.h: Declare the class in namespace Xapian
24574           rather than with namespace Xapian:: since the latter seems to
24575           confuse doxygen.
24577 Thu May 03 02:31:33 BST 2007  Olly Betts <olly@survex.com>
24579         * include/xapian/unicode.h: Fix wrapping of comment.
24581 Thu May 03 00:05:23 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24583         * backends/flint/: Remove unused (and unimplemented) declarations
24584           of begin_transaction_(), commit_transaction_() and
24585           cancel_transaction_() from FlintWritableDatabase class.  Tidy up
24586           handling of metainfo (total_length and lastdocid) to avoid
24587           repeatedly parsing the special record, and make it easier to
24588           store additional metainfo in future.
24589           Also, remove code which ensures that there is always a special
24590           record - this was added in revision 5459 when the special record
24591           was stored in the record table, so that the number of documents
24592           in the database could always be calculated by subtracting 1 from
24593           the number of entries in the record table.  Now that the special
24594           record is stored in the postlist table, this is no longer
24595           necessary.
24597 Wed May 02 17:56:39 BST 2007  Olly Betts <olly@survex.com>
24599         * backends/dbfactory_remote.cc,include/xapian/dbfactory.h:
24600           Remote::open_writable() now defaults to no (active) timeout.  The
24601           connection timeouts for Remote::open() and Remote::open_writable()
24602           now default to 10 seconds rather than defaulting to the same as
24603           the active timeout (which defaults to 10 seconds).
24605 Wed May 02 16:00:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24607         * common/safeunistd.h,tests/harness/backendmanager.cc: Fix
24608           compilation on windows - safeunistd.h was undefining ssize_t
24609           and thus overriding the definition in config.h, and include
24610           safewindows.h for backendmanager.cc
24612 Wed May 02 15:34:33 BST 2007  Olly Betts <olly@survex.com>
24614         * common/safeunistd.h: Don't define ssize_t here for MSVC - do it in
24615           config.h instead.  This avoids pulling in <windows.h> which will
24616           hopefully fix another macro redefinition warning under MSVC.
24618 Wed May 02 15:20:56 BST 2007  Olly Betts <olly@survex.com>
24620         * common/safewindows.h: Define NOGDI before including windows.h to
24621           prevent it from defining a macro called "ERROR" which collides with
24622           the generated queryparser sources, causing a warning in the MSVC
24623           build.
24625 Wed May 02 14:38:33 BST 2007  Olly Betts <olly@survex.com>
24627         * common/termlist.h: Forward declare ExpandStats as "class" not
24628           "struct" for consistency with the actual declaration.
24630 Wed May 02 14:30:41 BST 2007  Olly Betts <olly@survex.com>
24632         * configure.ac: Try '-lzlib' for zlib, which mingw reportedly needs.
24634 Wed May 02 14:21:40 BST 2007  Olly Betts <olly@survex.com>
24636         * common/remoteconnection.h,include/xapian/dbfactory.h,
24637           net/remoteserver.cc: A timeout of `0' in the remote backend now
24638           means "no timeout" (code patch from Mark Hammond).
24640 Wed May 02 04:17:28 BST 2007  Olly Betts <olly@survex.com>
24642         * Makefile.am,api/,backends/alltermslist.cc,backends/flint/,
24643           backends/inmemory/inmemory_database.cc,
24644           backends/inmemory/inmemory_database.h,
24645           backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
24646           backends/quartz/,backends/remote/net_termlist.cc,
24647           backends/remote/net_termlist.h,backends/remote/remote-database.cc,
24648           common/,expand/,matcher/: Split expand functionality out of
24649           "matcher" subdirectory into new "expand" subdirectory since it's
24650           not really connected to query matching and the matcher subdirectory
24651           is one of the largest.  Rewrite OrTermList, eliminating
24652           BranchTermList entirely.  Alter expand to pass in an object (of
24653           class Xapian::Internal::ExpandWeight) which accumulates statistics
24654           instead of returning OmExpandBits objects which we then have to
24655           merge (and eliminating the need for LeafTermList entirely).  Query
24656           expansion for multiple databases should now give results more like
24657           that for a single database with the same documents (if
24658           USE_EXACT_TERMFREQ is used, the results should be the same).  Debug
24659           logging from expand is now all of type EXPAND (some was of types
24660           MATCHER and WTCALC before).
24662 Wed May 02 03:35:17 BST 2007  Olly Betts <olly@survex.com>
24664         * docs/deprecation.rst: Add deprecation info for Omega too.
24666 Wed May 02 00:24:13 BST 2007  Olly Betts <olly@survex.com>
24668         * tests/api_anydb.cc: Add test expandweights1 as a regression test for
24669           the previous commit.
24670         * tests/harness/testsuite.h: Set the precision for TEST_EQUAL_DOUBLE
24671           so we don't claim two numbers to be different yet display them the
24672           same!
24674 Tue May 01 23:27:10 BST 2007  Olly Betts <olly@survex.com>
24676         * backends/remote/net_termlist.cc,backends/remote/remote-database.cc,
24677           common/remoteprotocol.h,docs/remote_protocol.html,
24678           net/remoteserver.cc: Fix handling of the document length in the
24679           termlist for the remote backend.
24681 Tue May 01 23:17:28 BST 2007  Olly Betts <olly@survex.com>
24683         * tests/api_db.cc: Several tests were marked as "local db only" for
24684           historical reasons.  Enable them for remote backends too.
24685         * backends/remote/net_postlist.cc,tests/api_db.cc: Fix a bug in
24686           NetworkPostList::skip_to() which apitest's postlist4 reveals.
24688 Tue May 01 21:00:26 BST 2007  Olly Betts <olly@survex.com>
24690         * api/omtermlistiterator.cc,api/omvalueiterator.cc,
24691           backends/multi/multi_alltermslist.cc: Add explicit
24692           `#include "omassert.h"'.
24693         * backends/multi/multi_alltermslist.cc: Remove all explicit
24694           std:: qualifiers and add `using namespace std;'.
24696 Tue May 01 20:56:10 BST 2007  Olly Betts <olly@survex.com>
24698         * common/multialltermslist.h: Add explicit std:: qualifiers for
24699           string, for consistency with std::vector in this header.
24701 Tue May 01 15:19:53 BST 2007  Olly Betts <olly@survex.com>
24703         * matcher/branchpostlist.h: Don't check for NULL pointer before
24704           calling delete.
24706 Tue May 01 02:29:10 BST 2007  Olly Betts <olly@survex.com>
24708         * common/document.h,common/documentterm.h,common/multialltermslist.h,
24709           matcher/rset.cc,queryparser/queryparser.cc: Add some explicit
24710           includes for headers which were previously only implicitly included
24711           (in preparation for a forthcoming change which removes some of the
24712           implicit inclusions).
24714 Tue May 01 01:20:53 BST 2007  Olly Betts <olly@survex.com>
24716         * backends/database.cc,bin/quartzcheck.cc,docs/deprecation.rst,
24717           include/xapian/dbfactory.h,tests/api_db.cc,
24718           tests/harness/backendmanager.cc,tests/quartztest.cc: Deprecate
24719           the Quartz backend and related functions and utilities.
24721 Fri Apr 27 12:56:13 BST 2007  Olly Betts <olly@survex.com>
24723         * tests/Makefile.am: Pass '-no-install' when linking test programs,
24724           since we don't ever install them.  This means libtool doesn't need
24725           to generate shell script wrappers on most platforms.  Also prefer
24726           '$(ldflags)' to '@ldflags' as the former allows the user to override
24727           when they run 'make' which is sometimes useful.
24729 Fri Apr 27 03:44:15 BST 2007  Olly Betts <olly@survex.com>
24731         * docs/intro_ir.html: Add links for the various researchers mentioned
24732           by name.
24734 Thu Apr 26 17:57:10 BST 2007  Olly Betts <olly@survex.com>
24736         * docs/bm25.html,docs/intro_ir.html: Assorted documentation
24737           improvements.
24739 Thu Apr 26 15:43:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24741         * docs/deprecation.rst: Update with changes to Python bindings.
24743 Thu Apr 26 06:01:45 BST 2007  Olly Betts <olly@survex.com>
24745         * common/expandweight.h,matcher/expandweight.cc: Better handling of
24746           expand with multiple databases.
24748 Wed Apr 25 18:35:13 BST 2007  Olly Betts <olly@survex.com>
24750         * api/omenquire.cc: Delete nonsensical comment.
24752 Wed Apr 25 17:41:58 BST 2007  Olly Betts <olly@survex.com>
24754         * docs/deprecation.rst: Use the collective term "features" rather than
24755           overloading the term "functions".  Casual readers may miss the
24756           definition altogether, and even dedicated readers will probably
24757           already have a strong mental image of what a "function" is in the
24758           context of an API.
24760 Wed Apr 25 14:52:11 BST 2007  Olly Betts <olly@survex.com>
24762         * docs/intro_ir.html: Improve the look of the formulae.
24764 Wed Apr 25 03:56:18 BST 2007  Olly Betts <olly@survex.com>
24766         * common/omqueryinternal.h,languages/generate-allsnowballheaders.in,
24767           matcher/msetcmp.h,queryparser/queryparser_internal.h: Add missing
24768           multiple inclusion guards.
24770 Wed Apr 25 03:12:50 BST 2007  Olly Betts <olly@survex.com>
24772         * queryparser/queryparser_internal.h: Don't include <config.h> in
24773           a header file.
24775 Wed Apr 25 03:05:09 BST 2007  Olly Betts <olly@survex.com>
24777         * queryparser/queryparser.cc: Initialise `internal' member inline
24778           for consistency with other classes.
24780 Tue Apr 24 04:55:45 BST 2007  Olly Betts <olly@survex.com>
24782         * configure.ac: Add missing ')' to the error messages when zlib stuff
24783           isn't found.
24785 Tue Apr 24 02:56:57 BST 2007  Olly Betts <olly@survex.com>
24787         * backends/flint/flint_database.h,
24788           backends/inmemory/inmemory_database.h,
24789           backends/quartz/quartz_database.h: MSVC doesn't handle using
24790           properly.
24792 Tue Apr 24 01:25:34 BST 2007  Olly Betts <olly@survex.com>
24794         * matcher/bm25weight.cc,matcher/expandweight.cc: Fix typo in comments:
24795           'releveant' -> 'relevant'.
24797 Mon Apr 23 23:00:23 BST 2007  Olly Betts <olly@survex.com>
24799         * api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h,
24800           tests/api_anydb.cc,tests/api_db.cc: Deprecate
24801           Enquire::include_query_terms and Enquire::use_exact_termfreq in
24802           favour of capitalised versions Enquire::INCLUDE_QUERY_TERMS and
24803           Enquire::USE_EXACT_TERMFREQ (for consistency with our other
24804           manifest constants, and general C/C++ conventions).
24806 Mon Apr 23 18:14:20 BST 2007  Olly Betts <olly@survex.com>
24808         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Support for
24809           VLAs in C++ is a GCC extension, so eliminate the need for them.
24811 Mon Apr 23 16:32:07 BST 2007  Olly Betts <olly@survex.com>
24813         * docs/: svn:ignore deprecation.html. svn:ignore apidoc.pdf and
24814           sourcedoc.pdf rather than *.pdf.
24816 Mon Apr 23 16:08:53 BST 2007  Olly Betts <olly@survex.com>
24818         * tests/quartztest.cc: Resolve FIXME about MapTermList.
24820 Mon Apr 23 16:06:38 BST 2007  Olly Betts <olly@survex.com>
24822         * api/valuerangeproc.cc,backends/flint/flint_check.cc,
24823           backends/flint/flint_table.cc,backends/quartz/btree.cc,
24824           backends/quartz/btreecheck.cc,bin/xapian-tcpsrv.cc,examples/,
24825           languages/steminternal.h,tests/harness/testsuite.cc,
24826           tests/harness/testsuite.h,tests/stemtest.cc: Fix compilation with
24827           GCC 4.3 snapshot.
24829 Mon Apr 23 15:20:55 BST 2007  Olly Betts <olly@survex.com>
24831         * common/safeunistd.h: Comment tweaks.
24833 Mon Apr 23 11:54:14 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24835         * common/safeunistd.h: Include <process.h> on windows to get
24836           getpid() instead of using a #define.
24838 Mon Apr 23 11:30:56 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24840         * api/maptermlist.h: Fix typo in error message.
24842 Mon Apr 23 11:08:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24844         * api/maptermlist.h: Throw an InvalidOperationError() if
24845           MapTermList::get_termfreq() is called, instead of simply having
24846           Assert(false): this gets called if a term iterator is accessed
24847           for a freshly created Document, and the get_termfreq() method is
24848           called on it.  The error message is specific to this situation,
24849           since this is the only place in which MapTermList is used.
24851 Mon Apr 23 03:22:54 BST 2007  Olly Betts <olly@survex.com>
24853         * backends/flint/flint_database.cc,backends/flint/flint_lock.cc,
24854           backends/flint/flint_lock.h: Report why we failed to get a write
24855           lock on a flint database.
24857 Mon Apr 23 01:44:13 BST 2007  Olly Betts <olly@survex.com>
24859         * backends/flint/flint_version.cc: Update the flint format version
24860           since older flint versions can't read compressed tags.
24862 Mon Apr 23 01:25:25 BST 2007  Olly Betts <olly@survex.com>
24864         * configure.ac: Probe for zlib.h and -lz.
24865         * backends/flint/,bin/xapian-compact.cc: Use zlib to compress tags
24866           in the record and termlist tables.
24867         * tests/Makefile.am,tests/runtest.in,tests/valgrind.supp: Add a
24868           valgrind suppression for zlib (a known issue - for speed zlib
24869           deliberately reads past the end of the buffer in some cases).
24871 Sun Apr 22 04:24:06 BST 2007  Olly Betts <olly@survex.com>
24873         * backends/flint/: Remove documentation for blocksize_ parameters
24874           which were removed some time ago.
24876 Sun Apr 22 00:02:13 BST 2007  Olly Betts <olly@survex.com>
24878         * matcher/multimatch.cc: Track the minimum weight required to be
24879           considered for the MSet separately from the minimum item which
24880           could be considered.  Trying to combine the two is causing subtle
24881           bugs (fixed bug#86).
24883 Sun Apr 22 00:00:39 BST 2007  Olly Betts <olly@survex.com>
24885         * HACKING: Add notes about the files Omega uses from xapian-core.
24887 Sat Apr 21 23:49:58 BST 2007  Olly Betts <olly@survex.com>
24889         * queryparser/queryparser.cc: Clear the stoplist when we parse a new
24890           query.
24891         * tests/queryparsertest.cc: Add regression test.
24893 Sat Apr 21 23:27:33 BST 2007  Olly Betts <olly@survex.com>
24895         * Makefile.am,common/Makefile.mk,getopt/: Move getopt.cc from getopt/
24896           to common/.  Having a whole directory for a single source file
24897           is a bit extravagant, and putting it in common/ allows us to share a
24898           copy with omega easily.
24900 Sat Apr 21 21:38:20 BST 2007  Olly Betts <olly@survex.com>
24902         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc,
24903           backends/quartz/quartz_log.cc,common/omdebug.h,common/safeunistd.h,
24904           tests/harness/testsuite.cc: safeunistd.h now defines getpid() to
24905           GetCurrentProcessId() for MSVC, and we now include this where we
24906           want to use getpid() rather than conditionally defining getpid().
24908 Sat Apr 21 04:13:12 BST 2007  Olly Betts <olly@survex.com>
24910         * configure.ac: Explicitly set AM_CXXFLAGS to an empty value to start
24911           with to avoid issues if it's set in the environment.  Cache the
24912           results of the test to see if the C++ compiler actually works, and
24913           in the XAPIAN_TEST_LINKER_FLAG macro.
24914         * configure.ac, include/xapian/visibility.h: Add --disable-visibility
24915           option to configure to completely disable use of -fvisibility.
24916         * INSTALL: Document all --enable-backend-* options explicitly.
24917           Document how to disable use of -fvisibility and
24918           -Bsymbolic-functions should you want/need to.  Improve wording in
24919           a few places.
24921 Fri Apr 20 19:20:23 BST 2007  Olly Betts <olly@survex.com>
24923         * HACKING,configure.ac: Revert to requiring autoconf 2.59 so that the
24924           .spec file for building RPMs can run `autoreconf' to work around a
24925           libtool bug.
24927 Fri Apr 20 18:12:51 BST 2007  Olly Betts <olly@survex.com>
24929         * docs/deprecation.rst: Document return type of ExpandDecider::Apply()
24930           and MatchDecider::Apply() in C# is now bool instead of int.
24932 Fri Apr 20 18:01:18 BST 2007  Olly Betts <olly@survex.com>
24934         * xapian.spec.in: Package xapian-check and its man page.
24936 Fri Apr 20 14:38:00 BST 2007  Olly Betts <olly@survex.com>
24938         * docs/deprecation.rst: Note changed return type of
24939           ExpandDecider::operator() and MatchDecider::operator().
24941 Fri Apr 20 14:28:39 BST 2007  Olly Betts <olly@survex.com>
24943         * include/xapian/enquire.h: MatchDecider::operator() now returns
24944           `bool' not `int'.  Remove declaraction of ExpandDecider.
24945         * include/xapian/expanddecider.h: Move declaration of ExpandDecider
24946           to here.  ExpandDecider::operator() now returns `bool' not `int'.
24947           ExpandDeciderAnd now names parameters `first' and `second' and
24948           documents the order in which they are applied (useful if you have
24949           an expensive and a cheap test).  ExpandDeciderAnd can now take
24950           parameters by reference instead of pointer.
24951         * api/Makefile.mk,include/xapian/enquire.h,api/omenquire.cc,
24952           api/expanddecider.cc: New home for definitions of virtual methods of
24953           ExpandDecider and subclasses.
24954         * api/omenquire.cc,common/expand.h,matcher/expand.cc: Eliminate
24955           internal class ExpandDeciderAlways - just test pointer against NULL
24956           instead.
24957         * tests/api_anydb.cc,tests/api_db.cc: Update for change in return
24958           type from MatchDecider::operator() and ExpandDecider::operator().
24960 Fri Apr 20 10:35:09 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24962         * HACKING: Add note on rules with multiple targets.
24964 Thu Apr 19 19:02:42 BST 2007  Olly Betts <olly@survex.com>
24966         * PLATFORMS: Remove reports for 0.7.* and demote reports for 0.8.* to
24967           "older reports" status.  All SF compilefarm machines are now "no
24968           longer available", so update the symbols and key to reflect this.
24970 Thu Apr 19 13:27:59 BST 2007  Olly Betts <olly@survex.com>
24972         * HACKING: Fix vim magic comment.  Add space after URL to stop
24973           '::' getting glued to it.
24975 Thu Apr 19 11:36:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24977         * HACKING: Turn syntax highlighting off, since it's broken for the
24978           restructured text in this file anyway.
24980 Thu Apr 19 03:26:28 BST 2007  Olly Betts <olly@survex.com>
24982         * backends/flint/flint_database.h,
24983           backends/inmemory/inmemory_database.h,
24984           backends/quartz/quartz_database.h:
24985           The trick of importing base class methods with 'using' breaks
24986           compilation with GCC 2.95 which doesn't issue the warning we're
24987           trying to avoid, so add a preprocessor check,
24989 Thu Apr 19 03:20:31 BST 2007  Olly Betts <olly@survex.com>
24991         * common/progclient.h,net/progclient.cc: Always use pid_t not int for
24992           holding a process id.
24994 Thu Apr 19 01:08:57 BST 2007  Olly Betts <olly@survex.com>
24996         * docs/deprecation.rst: Update '#callable' footnote.
24998 Thu Apr 19 00:07:02 BST 2007  Olly Betts <olly@survex.com>
25000         * backends/flint/flint_database.h,
25001           backends/inmemory/inmemory_database.h,
25002           backends/quartz/quartz_database.h: Add using declarations to
25003           subclasses of Xapian::Database::Internal which don't override the
25004           term forms of delete_document() and replace_document() to prevent
25005           compiler warnings about these methods being hidden.
25007 Wed Apr 18 23:22:29 BST 2007  Olly Betts <olly@survex.com>
25009         * net/remoteconnection.cc: Remove code which can't actually be
25010           reached, which fixes a warning in the mingw build.
25012 Wed Apr 18 23:07:45 BST 2007  Olly Betts <olly@survex.com>
25014         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
25015           include/xapian/enquire.h,matcher/Makefile.mk,
25016           matcher/biaspostlist.h,matcher/multimatch.cc,net/remoteserver.cc:
25017           Remove Enquire::set_bias().
25018         * docs/deprecation.rst: Update wrt Enquire::set_bias().  Fix typo.
25020 Wed Apr 18 18:51:42 BST 2007  Olly Betts <olly@survex.com>
25022         * configure.ac: Require autoconf 2.60 or newer.  Drop docdir
25023           compatibility hack which is no longer required.
25024         * HACKING: Document requirement.  Fix typo (or out-of-date info) for
25025           automake requirement (we require 1.9.5 not 1.8.5).
25027 Wed Apr 18 18:27:35 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25029         * docs/deprecation.rst: Note the deprecation of get_description()
25030           methods for Python.
25032 Wed Apr 18 14:57:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25034         * HACKING: Minimal changes to make this into valid restructured
25035           text.
25037 Wed Apr 18 11:27:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25039         * configure.ac: Require autoconf version 2.59c or later:
25040           AC_TYPE_SSIZE_T isn't present in earlier versions.
25042 Wed Apr 18 11:08:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25044         * docs/deprecation.rst: Fix table formatting error
25046 Wed Apr 18 01:32:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25048         * docs/deprecation.rst: Update with methods which have been removed
25049           from the bindings.
25051 Wed Apr 18 00:24:00 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25053         * docs/deprecation.rst: Move methods which have just been removed
25054           from the list of deprecated methods to the list of removed
25055           methods.
25057 Tue Apr 17 23:58:53 BST 2007  Olly Betts <olly@survex.com>
25059         * api/omdocument.cc,api/omenquire.cc,api/omquery.cc,include/xapian/,
25060           languages/stem.cc,tests/api_db.cc: Remove methods we're deprecating
25061           for 1.0.
25063 Tue Apr 17 23:50:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25065         * docs/deprecation.rst: Note that is_empty() is not deprecated for
25066           PHP after all!
25068 Tue Apr 17 22:17:41 BST 2007  Olly Betts <olly@survex.com>
25070         * queryparser/queryparser.lemony: GCC 2.95 doesn't support
25071           std::string::clear(), so use resize(0) instead.
25072         * HACKING: Document the above issue in a reworked section on C++
25073           STL features.  Update the section on safeXXX.h headers.
25075 Tue Apr 17 22:07:39 BST 2007  Olly Betts <olly@survex.com>
25077         * common/safesysselect.h: Correct typo in #error message.
25079 Tue Apr 17 19:18:00 BST 2007  Olly Betts <olly@survex.com>
25081         * configure.ac: Factor out code to test for a linker flag into macro
25082           XAPIAN_TEST_LINKER_FLAG.  With g++, use XAPIAN_TEST_LINKER_FLAG to
25083           see if -Bsymbolic-functions is supported (it requires a very recent
25084           version of ld currently).  This option reduces the size and load
25085           time of the shared library by resolving references within the
25086           library when it's created.  Currently untested on a box which
25087           supports -Bsymbolic-functions.
25089 Tue Apr 17 12:01:46 BST 2007  Olly Betts <olly@survex.com>
25091         * unicode/utf8itor.cc: Tidy up code layout.
25093 Tue Apr 17 02:06:39 BST 2007  Olly Betts <olly@survex.com>
25095         * include/xapian/unicode.h,unicode/utf8itor.cc: Make nonascii_to_utf8
25096           a public method.  Make get_case_type(), get_category(), and
25097           get_delta() internal, but provide a public get_category() function
25098           which takes a Unicode character value.
25100 Tue Apr 17 02:05:32 BST 2007  Olly Betts <olly@survex.com>
25102         * backends/flint/Makefile.mk: Distribute flint_check.h.
25104 Tue Apr 17 01:47:05 BST 2007  Olly Betts <olly@survex.com>
25106         * tests/api_posdb.cc: The remote backend now supports all database
25107           operations, so merge localpositionaldb_tests into
25108           positionaldb_tests.
25109         * tests/: Remove the trivial separate api_XXXdb.h headers, some of
25110           which were out-of-step with their respective .cc sources.  Instead
25111           just keep the array external declarations in apitest.h.
25112         * tests/apitest.h,tests/api_transdb.cc: Move TESTCASE and
25113           END_OF_TESTCASES macros into header.
25114         * tests/api_db.cc: Remove test collapsekey2 - it's only relevant for
25115           the Muscat 3.6 backend, so it's unused now that has been removed.
25116         * tests/: Add unicode tests, adapted from Omega's utftest.
25118 Tue Apr 17 00:14:16 BST 2007  Olly Betts <olly@survex.com>
25120         * Makefile.am,include/Makefile.mk,include/xapian.h,
25121           include/xapian/unicode.h,queryparser/,unicode/: Expose Unicode and
25122           UTF-8 related classes and functions as a public API.
25124 Mon Apr 16 16:06:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25126         * docs/deprecation.rst: Bring document fully up-to-date, listing
25127           all the planned deprecations for the bindings.  Also, include the
25128           full upgrade notes in the listings, so they can be preserved
25129           accessibly for posterity.  I even retrieved the notes for the
25130           already-removed QueryParser::set_stemming_options from 0.9.10.
25132 Mon Apr 16 11:36:18 BST 2007  Olly Betts <olly@survex.com>
25134         * net/tcpclient.cc: Call WSAGetLastError() instead of socket_errno()
25135           when we want to compare the result against WSAEWOULDBLOCK.
25137 Mon Apr 16 11:19:21 BST 2007  Olly Betts <olly@survex.com>
25139         * common/remoteconnection.h,common/safewinsock2.h: Need to negate the
25140           POSIX error codes we define in terms of winsock ones.
25142 Fri Apr 13 16:24:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25144         * docs/doxygen_api_conf.in: Turn on XML output, so that we can use
25145           it to populate docstrings for the python bindings.
25147 Fri Apr 13 11:38:39 BST 2007  Olly Betts <olly@survex.com>
25149         * backends/Makefile.mk,backends/alltermslist.cc,common/alltermslist.h:
25150           Split AllTermsList into header and code.  AllTermsList::get_wdf()
25151           now throws InvalidOperationError() rather than asserting in a
25152           debug build and returning 0 in a non-debug build.
25153         * backends/Makefile.mk: Correct list for "how to add a new backend".
25155 Fri Apr 13 10:17:46 BST 2007  Olly Betts <olly@survex.com>
25157         * api/version.cc: Simpler and cleaner fix - the prototypes for the
25158           version functions had moved from xapian/version.h to xapian.h so we
25159           were including the wrong header and not seeing the prototypes with
25160           visibility markup!
25162 Fri Apr 13 09:29:17 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25164         * api/version.cc: Add visibility annotations to definitions of
25165           version functions: the annotation apparently needs to be applied
25166           to the definition as well as the declaration or it is ignored:
25167           possibly the annotation on the declaration is ignored anyway,
25168           but it should be kept there for documentation purposes in any
25169           case.  Fixes link error with bindings under gcc 4.1.
25171 Fri Apr 13 01:39:57 BST 2007  Olly Betts <olly@survex.com>
25173         * common/remoteconnection.h,net/progclient.cc,net/remoteconnection.cc:
25174           GetLastError() has an unsigned return type, so need to cast to int
25175           before negating.
25177 Fri Apr 13 01:39:20 BST 2007  Olly Betts <olly@survex.com>
25179         * docs/deprecation.rst: Add xapian_version_string() and friends.
25181 Fri Apr 13 01:24:53 BST 2007  Olly Betts <olly@survex.com>
25183         * tests/api_nodb.cc: More 'tout' output.
25185 Fri Apr 13 01:19:20 BST 2007  Olly Betts <olly@survex.com>
25187         * api/Makefile.mk,api/error.cc,bin/xapian-tcpsrv.cc,
25188           common/remoteconnection.h,common/safeerrno.h,configure.ac,
25189           generate-exceptions.in,net/,tests/harness/testsuite.cc: On
25190           MS Windows, if Xapian::Error::my_errno is the result of
25191           GetLastError() or WSAGetLastError(), negate it (the error codes can
25192           overlap with errno codes).  On UNIX, put h_errno negated in my_errno
25193           if a call to gethostbyname() fails.  Add
25194           Xapian::Error::get_error_string() method which decodes my_errno
25195           in the appropriate way to give a string, and use this instead of
25196           strerror(error.get_errno()).
25198 Fri Apr 13 01:17:08 BST 2007  Olly Betts <olly@survex.com>
25200         * languages/generate-allsnowballheaders.in: win32 makefiles don't keep
25201           the snowball header list in sorted order like we do, so fix that
25202           here.  Also allow for '\' as path separator.
25204 Fri Apr 13 00:58:09 BST 2007  Olly Betts <olly@survex.com>
25206         * tests/api_nodb.cc: Add "tout" debug output to stemlangs1.
25208 Thu Apr 12 21:37:04 BST 2007  Olly Betts <olly@survex.com>
25210         * tests/Makefile.am: Add support for QUIET= and QUIET=y arguments to
25211           "make".
25213 Thu Apr 12 21:35:50 BST 2007  Olly Betts <olly@survex.com>
25215         * docs/Makefile.am: Use a substitution for RSTHTML (like we do for the
25216           snowball generated sources).
25218 Thu Apr 12 20:41:18 BST 2007  Olly Betts <olly@survex.com>
25220         * api/omqueryinternal.cc: Add validate_query() calls to the "term" and
25221           "value range" constructors.
25223 Thu Apr 12 20:00:14 BST 2007  Olly Betts <olly@survex.com>
25225         * api/omqueryinternal.cc,include/xapian/query.h: Only validate a
25226           Query object when it's either constructed or changed to avoid O(n^2)
25227           behaviour in some cases.
25229 Thu Apr 12 19:59:13 BST 2007  Olly Betts <olly@survex.com>
25231         * queryparser/lemon.c: Fix nasty function casting for argument to
25232           qsort - it's (at least technically) not portable.
25234 Thu Apr 12 17:47:47 BST 2007  Olly Betts <olly@survex.com>
25236         * configure.ac: Fix GCC version test to only turn on
25237           -fvisibility=hidden for GCC >= 4.
25239 Thu Apr 12 16:47:56 BST 2007  Olly Betts <olly@survex.com>
25241         * backends/flint/flint_btreebase.h,backends/flint/flint_cursor.h,
25242           backends/flint/flint_table.h,backends/quartz/,common/,configure.ac,
25243           generate-exceptions.in,include/Makefile.mk,include/xapian.h,
25244           include/xapian/: Add visibility annotations to the library, which
25245           when using GCC >= 4 reduces the size and load time of the library
25246           and increase the runtime speed a little.  Under x86_64, the stripped
25247           library is 6.4% smaller (1.5% smaller with debug information).
25249 Thu Apr 12 16:45:57 BST 2007  Olly Betts <olly@survex.com>
25251         * api/version.cc: Add missing "#include <config.h>".
25253 Thu Apr 12 13:41:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25255         * tests/quartztest.cc: Put removedir() function back for now to fix
25256           build.
25258 Thu Apr 12 13:02:30 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25260         * net/progclient.cc: Some (but not all) versions of MSVC need
25261           "#include <io.h>" to get the _open_osfhandle identifier.  Add it.
25263 Thu Apr 12 12:00:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25265         * backends/remote/net_postlist.cc: Include config.h
25267 Thu Apr 12 11:54:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25269         * backends/multi/multi_termlist.cc: Include config.h to get system
25270           specific defines.
25271         * common/safesysstat.h: Change signature of mkdir to take mode_t
25272           instead of int, to match unixy definition.
25274 Thu Apr 12 10:19:49 BST 2007  Olly Betts <olly@survex.com>
25276         * configure.ac: Probe for mode_t.
25278 Thu Apr 12 01:10:18 BST 2007  Olly Betts <olly@survex.com>
25280         * backends/flint/flint_positionlist.cc: Move BitReader class inside
25281           Xapian namespace to avoid namespace pollution.
25282         * bin/xapian-check.cc: Include BitReader::decode_interpolative()
25283           - previously we were relying on using the copy from the library.
25285 Thu Apr 12 01:02:53 BST 2007  Olly Betts <olly@survex.com>
25287         * common/safesysstat.h: Under __WIN32__, provide a POSIX-like mkdir()
25288           wrapper which takes 2 arguments, but ignores the file mode, so we
25289           can just call mkdir with a mode argument everywhere.
25290         * common/utils.h: Remove special case handling of mkdir.
25291         * bin/xapian-compact.cc: Replace uses of om_tostring() with a call
25292           to sprintf.  No longer need to `#include "utils.h"'.
25294 Thu Apr 12 00:44:18 BST 2007  Olly Betts <olly@survex.com>
25296         * api/,backends/inmemory/inmemory_positionlist.cc,common/,matcher/,
25297           net/remoteconnection.cc,net/serialise.cc: omdebug.h only includes
25298           omassert.h for the trivial "STRINGIZE" macro, so just duplicate
25299           that rather than pulling in an extra header everywhere.  Then fix
25300           up the two dozen files which were relying on this implicit
25301           inclusion!
25303 Thu Apr 12 00:10:48 BST 2007  Olly Betts <olly@survex.com>
25305         * tests/harness/testsuite.cc: Tweak #ifdef XAPIAN_DEBUG_VERBOSE to
25306           include DEBUGLINE() for clarity (no change in behaviour).
25308 Wed Apr 11 23:36:10 BST 2007  Olly Betts <olly@survex.com>
25310         * queryparser/queryparser.lemony: Fix regression introduced by
25311           Richard's change, and restructure to make the handling for each case
25312           more obvious.
25313         * tests/queryparsertest.cc: Add a couple of testcases for the
25314           regression.
25315         * queryparser/queryparser_internal.h: Remove reference to "bool" in
25316           comment which no longer applies.
25318 Wed Apr 11 21:25:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25320         * queryparser/queryparser_internal.h: Refactor boolean "flag"
25321           member in BoolAndString class into an enum of possible prefix
25322           types.  Rename "flag" to "type".  Rename BoolAndString to
25323           PrefixInfo.
25324         * queryparser/queryparser.cc: Change add_prefix() and
25325           add_boolean_prefix() to match changes to queryparser_internal.h
25326         * queryparser/queryparser.lemony: Refactor handling of prefixed
25327           terms to match queryparser_internal, and to use a switch()
25328           structure: no functional changes, but code is considerably more
25329           readable (I hope).
25331 Wed Apr 11 21:13:31 BST 2007  Olly Betts <olly@survex.com>
25333         * tests/api_db.cc,tests/quartztest.cc: Rework quartztest's "open1"
25334           into API level tests for quartz and flint in apitest.
25336 Wed Apr 11 14:01:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25338         * docs/deprecation.rst: Remove documentation of the "#define
25339           XAPIAN_DEPRECATED(D) D" hack, and clarify documentation on how
25340           long we support deprecated functions.
25342 Wed Apr 11 09:25:55 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25344         * docs/Makefile.am,docs/deprecation.rst: Add initial draft of
25345           deprecation policy document, with list of all API items currently
25346           marked for deprecation.
25347         * HACKING: Add note about keeping deprecation.rst up-to-date when
25348           making a release.
25350 Tue Apr 10 19:07:24 BST 2007  Olly Betts <olly@survex.com>
25352         * configure.ac: --enable-quiet now uses AS_HELP_STRING.
25354 Tue Apr 10 18:53:32 BST 2007  Olly Betts <olly@survex.com>
25356         * tests/harness/index_utils.cc: Return the empty document we already
25357           have rather than constructing another.
25359 Tue Apr 10 17:45:11 BST 2007  Olly Betts <olly@survex.com>
25361         * net/remoteconnection.cc: Fix typo in comment.
25363 Tue Apr 10 17:35:57 BST 2007  Olly Betts <olly@survex.com>
25365         * tests/harness/backendmanager.cc: Fix "if" to "is" typo in 3
25366           comments.
25368 Tue Apr 10 16:46:09 BST 2007  Olly Betts <olly@survex.com>
25370         * tests/harness/backendmanager.cc: Define XAPIAN_TCPSRV and
25371           XAPIAN_PROGSRV under UNIX too, and use them everywhere.
25373 Tue Apr 10 16:33:48 BST 2007  Olly Betts <olly@survex.com>
25375         * tests/harness/backendmanager.h: Remove "BackendManager::" from
25376           method declaration.
25378 Tue Apr 10 15:35:50 BST 2007  Olly Betts <olly@survex.com>
25380         * configure.ac: Define HAVE_SOCKETPAIR if we have socketpair().
25382 Tue Apr 10 15:29:49 BST 2007  Olly Betts <olly@survex.com>
25384         * net/progclient.cc: Fix #endif placement so it compiles on UNIX.
25386 Tue Apr 10 14:18:06 BST 2007  Olly Betts <olly@survex.com>
25388         * net/remoteconnection.cc: Remove debugging code.
25390 Tue Apr 10 12:57:51 BST 2007  Olly Betts <olly@survex.com>
25392         * backends/dbfactory_remote.cc,common/progclient.h,net/progclient.cc,
25393           net/remoteconnection.cc,tests/api_db.cc,tests/apitest.cc,
25394           tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
25395           Add support for the "prog" variant of the remote backend (patch
25396           started by me, finished by Mark Hammond).
25398 Tue Apr 10 12:23:46 BST 2007  Olly Betts <olly@survex.com>
25400         * api/omqueryinternal.cc,backends/inmemory/inmemory_database.cc,
25401           backends/quartz/quartz_alldocspostlist.cc,matcher/localmatch.cc,
25402           matcher/multimatch.cc,tests/harness/testutils.cc: Prefer
25403           `CONTAINER.empty()' to `CONTAINER.size() == 0'.
25405 Tue Apr 10 12:09:45 BST 2007  Olly Betts <olly@survex.com>
25407         * api/omqueryinternal.cc: Tighten up an assertion.
25409 Mon Apr 09 20:56:23 BST 2007  Olly Betts <olly@survex.com>
25411         * configure.ac,tests/harness/backendmanager.cc,tests/runsrv.in,
25412           tests/runtest.in: Run the remote backend server using new "runsrv"
25413           script instead of "runtest".  This doesn't echo anything to stdout,
25414           and if valgrind is in use, runs the remote server under
25415           "--tool=none" which is much quicker than using valgrind's default
25416           memcheck tool (we need to run the remote server under valgrind
25417           because valgrind's emulation of excess FP precision isn't exact and
25418           otherwise we get tests failing because of these differences).
25420 Mon Apr 09 20:24:30 BST 2007  Olly Betts <olly@survex.com>
25422         * tests/api_anydb.cc,tests/api_nodb.cc: Move test poscollapse2 to the
25423           "no database" category, since it doesn't require a database!
25425 Mon Apr 09 18:04:40 BST 2007  Olly Betts <olly@survex.com>
25427         * docs/remote_protocol.html: Correct documentation - MSG_REOPEN gives
25428           a response of REPLY_UPDATE.
25430 Mon Apr 09 15:08:44 BST 2007  Olly Betts <olly@survex.com>
25432         * ./: svn:eol-style not svn:eolstyle.
25434 Mon Apr 09 15:00:30 BST 2007  Olly Betts <olly@survex.com>
25436         * ./: Set svn:eolstyle to native for most text files.
25438 Mon Apr 09 14:50:40 BST 2007  Olly Betts <olly@survex.com>
25440         * backends/flint/flint_database.cc: Delete the corresponding entry
25441           (if any) from doclens in delete_document().  Add assertion to
25442           add_document_() that the corresponding entry in doclens isn't
25443           already set, but in a non-debug build overwrite any existing
25444           entry as that's more likely to be correct.
25445         * backends/quartz/quartz_database.cc: Ditto.
25447 Mon Apr 09 14:08:55 BST 2007  Olly Betts <olly@survex.com>
25449         * backends/quartz/quartz_database.cc: Just assign to doclens[did].
25451 Mon Apr 09 14:06:58 BST 2007  Olly Betts <olly@survex.com>
25453         * backends/flint/flint_database.cc: Just assign to doclens[did].
25455 Mon Apr 09 11:29:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25457         * backends/quartz/quartz_database.cc: Apply same change to quartz.
25459 Mon Apr 09 11:24:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25461         * backends/flint/flint_database.cc: Fix bug with document lengths
25462           in replace document.  Was using doclens.insert() to set the new
25463           document length, but this has no effect if the entry already
25464           exists.  This fixes replacedoc3 for flint (and thus for remote
25465           databases), but the same change is needed for quartz.
25466         * backends/flint/flint_postlist.cc: Add some debugging lines.
25468 Mon Apr 09 01:43:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25470         * backends/flint/: Add some more debugging messages to help track
25471           down the problem with document lengths shown up by previous
25472           change.
25474 Mon Apr 09 01:40:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25476         * tests/api_wrdb.cc: Add asserts to check that the value of
25477           get_doclength() on the database and on the posting list are
25478           correct.  Currently fails with the value from the posting list
25479           for the document which has been replaced (or sooner if assertions
25480           are turned on).
25482 Sun Apr 08 23:24:20 BST 2007  Olly Betts <olly@survex.com>
25484         * Makefile.am,configure.ac: `./configure --enable-quiet' allows you to
25485           specify at configure time to pass `--quiet' to libtool.  Now you can
25486           override this at make-time by using `make QUIET=' (to turn off
25487           `--quiet') or `make QUIET=y' (to turn on `--quiet').
25489 Sun Apr 08 23:23:50 BST 2007  Olly Betts <olly@survex.com>
25491         * HACKING: Mention AssertEqParanoid and AssertNeParanoid.
25493 Sun Apr 08 22:45:45 BST 2007  Olly Betts <olly@survex.com>
25495         * common/omassert.h: Add AssertEqParanoid and AssertNeParanoid macros.
25496         * backends/flint/flint_table.cc,backends/inmemory/inmemory_database.cc,
25497           backends/multi/multi_postlist.cc,backends/quartz/btree.cc: Use them.
25498         * backends/multi/multi_postlist.cc: Add extra assertions to
25499           MultiPostList::get_doclength().
25501 Sun Apr 08 22:16:11 BST 2007  Olly Betts <olly@survex.com>
25503         * configure.ac: Fix typos: `AC_CHECK_SSIZE_T' -> `AC_TYPE_SSIZE_T';
25504           `AC_CHECK_PID_T' -> `AC_TYPE_PID_T'.
25506 Sun Apr 08 22:04:54 BST 2007  Olly Betts <olly@survex.com>
25508         * HACKING: Snapshots and releases are now generated with autoconf 2.61.
25510 Sun Apr 08 21:42:03 BST 2007  Olly Betts <olly@survex.com>
25512         * configure.ac: Use AC_CHECK_SSIZE_T instead of our own test.  Add
25513           AC_CHECK_PID_T for any platforms which don't have `pid_t'.
25514         * net/tcpserver.cc: Use `pid_t' instead of `int'.
25515         * common/progclient.h,net/progclient.cc: Cleaner rewritten version of
25516           progclient.h.
25518 Sun Apr 08 19:59:43 BST 2007  Olly Betts <olly@survex.com>
25520         * backends/flint/flint_lock.cc: If kill() fails, don't bother calling
25521           waitpid().
25523 Sun Apr 08 19:41:11 BST 2007  Olly Betts <olly@survex.com>
25525         * net/remoteconnection.cc: Don't explicitly pass "0" for errno.
25527 Sun Apr 08 16:58:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25529         * queryparser/queryparser.lt: Fix warnings in debugging builds on
25530           gcc 4.1 due to comparison of signed and unsigned types.  Also,
25531           use the ParseTokenName function instead of explicitly doing a
25532           range check each time an entry is looked up in yyTokenName, and
25533           add a ParseRuleName function for looking up things in yyRuleName,
25534           and use it similarly.
25536 Sun Apr 08 15:55:42 BST 2007  Olly Betts <olly@survex.com>
25538         * configure.ac: Fix lingering references to enable_debug.
25540 Sun Apr 08 15:48:13 BST 2007  Olly Betts <olly@survex.com>
25542         * tests/api_anydb.cc,tests/api_wrdb.cc: Remove hacks to automatically
25543           SKIP tests which failed because of lack of support for some features
25544           by the remote backend.
25546 Sun Apr 08 15:14:11 BST 2007  Olly Betts <olly@survex.com>
25548         * queryparser/queryparser.lemony,queryparser/queryparser.lt: More
25549           tweaks.
25551 Sun Apr 08 15:04:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25553         * queryparser/queryparser.lt: Always include "omdebug.h", and put
25554           one of the pieces of debugging code in #ifdef
25555           XAPIAN_DEBUG_VERBOSE, to fix non-logging message builds.
25557 Sun Apr 08 14:23:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25559         * docs/remote_protocol.html: Update for protocol version 27 by
25560           adding documentation for MSG_POSTLIST and replies.  Also, fix a
25561           typo.
25563 Sun Apr 08 13:50:20 BST 2007  Olly Betts <olly@survex.com>
25565         * common/omdebug.h,queryparser/queryparser.lemony,
25566           queryparser/queryparser.lt: Hook the debug tracing in the lemon
25567           generated parser into Xapian's debug logging framework.
25569 Sun Apr 08 12:35:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25571         * backends/remote/,common/remote-database.h,common/remoteprotocol.h,
25572           common/remoteserver.h,net/remoteserver.cc: Implement postlists
25573           for the remote database.  Increases
25574           XAPIAN_REMOTE_PROTOCOL_VERSION to 27.
25576 Sun Apr 08 12:33:02 BST 2007  Olly Betts <olly@survex.com>
25578         * HACKING,INSTALL,configure.ac: Rename --enable-debug* - conflating the
25579           options to "turn on assertions" and "turn on logging" still confuses
25580           me to the extent I need to read the documentation every time I use
25581           them.  `--enable-debug[=partial]' become `--enable-assertions';
25582           `--enable-debug-verbose' becomes `--enable-log' and
25583           `--enable-debug=full' becomes `--enable-assertions --enable-log'.
25584           For now the old options give an error telling you the new
25585           equivalent.
25587 Sun Apr 08 10:45:40 BST 2007  Olly Betts <olly@survex.com>
25589         * configure.ac: Eliminate use_quiet - just use enable_quiet instead.
25591 Fri Apr 06 19:06:07 BST 2007  Olly Betts <olly@survex.com>
25593         * net/progclient.cc: Close stderr of the spawned backend program.
25595 Fri Apr 06 18:59:24 BST 2007  Olly Betts <olly@survex.com>
25597         * net/progclient.cc: msecs_timeout_ -> msecs_timeout.
25599 Fri Apr 06 18:12:36 BST 2007  Olly Betts <olly@survex.com>
25601         * net/remoteconnection.cc: Fix comment grammar.
25603 Fri Apr 06 18:10:31 BST 2007  Olly Betts <olly@survex.com>
25605         * net/remoteconnection.cc: Deal with the exceptional case first.
25607 Fri Apr 06 17:51:20 BST 2007  Olly Betts <olly@survex.com>
25609         * net/remoteconnection.cc: Use string::append(ptr, size) in preference
25610           to string::append(ptr, ptr + size).
25612 Fri Apr 06 11:45:39 BST 2007  Olly Betts <olly@survex.com>
25614         * api/omqueryinternal.cc,backends/flint/flint_database.cc,
25615           backends/flint/flint_database.h,backends/flint/flint_postlist.cc,
25616           backends/inmemory/inmemory_database.cc,
25617           backends/inmemory/inmemory_database.h,
25618           backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
25619           backends/quartz/quartz_postlist.cc,
25620           backends/remote/remote-database.cc,common/database.h,
25621           common/remote-database.h: Refactor to eliminate do_open_post_list
25622           and any unnecessary call to term_exists().
25624 Fri Apr 06 11:44:25 BST 2007  Olly Betts <olly@survex.com>
25626         * tests/api_wrdb.cc: Just use TEST on a boolean value rather than
25627           TEST_EQUAL against true/false.
25629 Fri Apr 06 08:53:46 BST 2007  Olly Betts <olly@survex.com>
25631         * net/remoteserver.cc: Remove "N" which we calculate but never use!
25633 Fri Apr 06 08:17:00 BST 2007  Olly Betts <olly@survex.com>
25635         * backends/flint/Makefile.mk,backends/flint/flint_check.cc,
25636           backends/flint/flint_check.h,bin/Makefile.mk,bin/xapian-check.cc:
25637           Fix xapian-check not to use libquartzcheck.la.
25639 Fri Apr 06 07:20:47 BST 2007  Olly Betts <olly@survex.com>
25641         * bin/Makefile.mk,bin/xapian-check.cc: Add new "xapian-check" program
25642           which performs consistency checks on a flint database.
25644 Fri Apr 06 06:25:36 BST 2007  Olly Betts <olly@survex.com>
25646         * bin/quartzcheck.cc: Test if this is a quartz database by looking at
25647           "meta" not "record_DB".  If "record_DB" is >= 2GB and we don't have
25648           a LFS aware stat function then stat can fail even though the file is
25649           there.  Also open the database explicitly as a Quartz database for
25650           extra robustness.
25652 Fri Apr 06 06:23:33 BST 2007  Olly Betts <olly@survex.com>
25654         * AUTHORS: Thank Daniel Ménard.
25656 Thu Apr 05 18:20:53 BST 2007  Olly Betts <olly@survex.com>
25658         * tests/harness/testsuite.cc: No need to explicitly initialise
25659           std::string to ""; not doing so results in a smaller object
25660           file.
25662 Thu Apr 05 18:20:12 BST 2007  Olly Betts <olly@survex.com>
25664         * common/remoteprotocol.h: Note other changes in protocol version 26.
25666 Thu Apr 05 17:34:10 BST 2007  Olly Betts <olly@survex.com>
25668         * tests/runtest.in: Pass "--leak-resolution=high" to valgrind to
25669           prevent unrelated leak reports related to STL classes from being
25670           combined.
25672 Thu Apr 05 17:26:39 BST 2007  Olly Betts <olly@survex.com>
25674         * tests/api_wrdb.cc: Remove stray line left over from debugging.
25676 Thu Apr 05 16:47:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25678         * tests/internaltest.cc: Fix test_serialiselength2: implementation
25679           was correct, but test was failing.  Needed special casing for n=0
25680           and 1, and was using arguments to string::append(size_type,
25681           charT) the wrong way round (stupid C++ API).  Also, make it check
25682           the return value of decode_length(), since we know what the
25683           answer ought to be.
25685 Thu Apr 05 14:26:30 BST 2007  Olly Betts <olly@survex.com>
25687         * api/omqueryinternal.cc,backends/remote/remote-database.cc,
25688           common/serialise.h,net/remoteserver.cc,net/serialise.cc,
25689           tests/internaltest.cc: Add a flag parameter to decode_length()
25690           to indicate if the decoded value indicates the length of a
25691           string in the protocol stream, and if it does, check it against
25692           p_end - p after the length has been decoded (fixes bug#117).
25694 Thu Apr 05 14:08:02 BST 2007  Olly Betts <olly@survex.com>
25696         * tests/api_wrdb.cc: In test uniqueterm1, check the document length
25697           after every delete or replace for better coverage.
25699 Thu Apr 05 12:41:04 BST 2007  Olly Betts <olly@survex.com>
25701         * net/serialise.cc: Encode deltas between docids (rather than the
25702           docids themselves) in the RSet serialisation which reduces the
25703           size of the encoding if a lot of large docids with small gaps
25704           between them are present.
25705         * backends/remote/remote-database.cc,net/remoteserver.cc: Encode
25706           deltas between termpositions in REPLY_POSITIONLIST, for similar
25707           reasons.  No need to encode the term length for
25708           MSG_DELETEDOCUMENTTERM as it's the last (indeed only) item, and more
25709           consistent not to.
25710         * common/remoteprotocol.h: Bump protocol version to 26.
25711         * docs/remote_protocol.html: Document the new messages
25712           MSG_DELETEDOCUMENTTERM and MSG_REPLACEDOCUMENTTERM.  Correct
25713           reference to REPLY_DOCUMENT to REPLY_DOCDATA.  Fix documentation for
25714           MSG_QUERY to include the serialised Weight and RSet objects.  Fix
25715           "copy and paste" error in the description of Flush (should of course
25716           be MSG_FLUSH not MSG_CANCEL).  Update for changes above.
25718 Thu Apr 05 12:18:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25720         * backends/database.cc: Keep a RefCntPtr to the LeafPostList used
25721           in implementations of delete_document and replace_document with a
25722           unique term, so that the postlist isn't leaked.
25724 Thu Apr 05 11:56:57 BST 2007  Olly Betts <olly@survex.com>
25726         * backends/database.cc: Database::Internal can't call the
25727           PostingIterator(PostingIterator::Internal*) ctor (at least under
25728           g++ 3.3.5) because it isn't a friend (only class Database is).
25729           Can't seem to forward define Database::Internal to make
25730           Database::Internal a friend so just use LeafPostList directly
25731           as that seems less bad than pulling in the whole of database.h
25732           or making PostingIterator::internal public.
25734 Thu Apr 05 08:27:26 BST 2007  Olly Betts <olly@survex.com>
25736         * HACKING: Need to run svn-tag-release on ixion.
25738 Thu Apr 05 01:50:10 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25740         * backends/remote/remote-database.cc,common/remote-database.h,
25741           common/remoteprotocol.h,common/remoteserver.h,net/remoteserver.cc:
25742           Implement unique term variants of delete and replace document for
25743           the remote database.  Involves adding two new message types to the
25744           protocol (and therefore bumping the protocol version to 25), and
25745           overriding the standard implementations of delete_document(term)
25746           and replace_document(term) in RemoteDatabase.
25747         * tests/api_wrdb.cc: Correct text in SKIP_TEST() message.
25749 Thu Apr 05 01:04:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25751         * api/omdatabase.cc,backends/database.cc,common/database.h: Move
25752           implementation of delete_document and replace_document with a
25753           unique_term from WritableDatabase to Xapian::Database::Internal.
25754           This will allow it to be overridden for databases which need a
25755           special implementation (such as the remote database).
25757 Tue Apr 03 14:30:45 BST 2007  Olly Betts <olly@survex.com>
25759         * common/remote-database.h: Remove unused and undefined method
25760           RemoteDatabase::get_spawned_socket().
25762 Tue Apr 03 09:18:51 BST 2007  Olly Betts <olly@survex.com>
25764         * tests/harness/backendmanager.cc: Under __WIN32__, launch
25765           xapian-tcpsrv as a child process communicating via a pipe and handle
25766           the port being already in use by trying the next port up (as we do
25767           under UNIX).
25769 Tue Apr 03 06:50:48 BST 2007  Olly Betts <olly@survex.com>
25771         * net/tcpserver.cc: For __WIN32__ and __CYGWIN__, use
25772           SO_EXCLUSIVEADDRUSE (if available) on on listening sockets for
25773           xapian-tcpsrv.
25775 Tue Apr 03 04:37:02 BST 2007  Olly Betts <olly@survex.com>
25777         * include/xapian/positioniterator.h,include/xapian/postingiterator.h:
25778           Fix mangled comment start in (C) headers.
25780 Tue Apr 03 03:27:12 BST 2007  Olly Betts <olly@survex.com>
25782         * include/xapian/,generate-exceptions.in: Mark the following
25783           constructors 'explicit': DocIDWrapper(docid), TermPosWrapper(const
25784           std::string &), Query::Internal(const std::string &), Database(const
25785           std::string &), all Error subclass constructors taking const
25786           std::string &.  Only the Database and Error subclass changes should
25787           be able to affect user code at all.
25788         * include/xapian/,api/omenquire.cc: Make the following methods
25789           'const': RSet::contains(MSetIterator), Enquire::get_query().  This
25790           shouldn't affect the validity of any user code.
25792 Mon Apr 02 11:44:26 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25794         * HACKING: Add note on "Building from SVN on Windows with MSVC"
25796 Mon Apr 02 11:32:51 BST 2007  Olly Betts <olly@survex.com>
25798         * api/omqueryinternal.cc: Fix assertion to allow for OP_VALUE_RANGE.
25800 Mon Apr 02 11:14:10 BST 2007  Olly Betts <olly@survex.com>
25802         * autoconf/rjb_find_stlport.m4: Fix check that the user didn't say
25803           `./configure --with-stlport-compiler' (without `=gcc' or similar
25804           after it).
25806 Mon Apr 02 10:38:35 BST 2007  Olly Betts <olly@survex.com>
25808         * tests/api_db.cc,tests/apitest.cc: Under __WIN32__ disable tests
25809           which require the prog variant of the remote backend.
25811 Mon Apr 02 09:44:13 BST 2007  Olly Betts <olly@survex.com>
25813         * net/tcpserver.cc: Don't use SO_REUSEADDR under __CYGWIN__ or
25814           __WIN32__ as it has incorrect semantics.
25816 Mon Apr 02 09:37:14 BST 2007  Olly Betts <olly@survex.com>
25818         * tests/harness/backendmanager.cc: Pull `1239' out as `DEFAULT_PORT'.
25819           On Windows, cycle through 10 ports starting at DEFAULT_PORT so that
25820           we can have multiple databases open at once.  Add a monotonic count
25821           to the name of the log file created from the output of each
25822           xapian-tcpsrv to avoid failures because the log file is already
25823           open.
25825 Mon Apr 02 07:41:57 BST 2007  Olly Betts <olly@survex.com>
25827         * tests/api_anydb.cc: Avoid having the same database open twice at
25828           once.  Xapian itself copes, but the BackendManager class in the test
25829           harness struggles in the remotetcp case under mingw.
25831 Mon Apr 02 07:14:13 BST 2007  Olly Betts <olly@survex.com>
25833         * include/xapian/enquire.h: Make Enquire constructor explicit since
25834           it can take a single parameter (of type Database).
25836 Mon Apr 02 02:32:23 BST 2007  Olly Betts <olly@survex.com>
25838         * net/tcpserver.cc: Add "#error" if neither HAVE_FORK nor __WIN32__
25839           is defined (otherwise we'd failed with a rather obscure link error
25840           much later!)
25842 Mon Apr 02 01:54:20 BST 2007  Olly Betts <olly@survex.com>
25844         * matcher/multimatch.cc: Remove unused variable left over from
25845           recent change.
25847 Mon Apr 02 01:22:56 BST 2007  Olly Betts <olly@survex.com>
25849         * net/tcpserver.cc: Actually remove SOCKOPT_OPTIONS_TYPE.
25851 Mon Apr 02 01:16:03 BST 2007  Olly Betts <olly@survex.com>
25853         * net/tcpclient.cc,net/tcpserver.cc: Pass the 4th parameter of
25854           setsockopt() as char* which works whether the function actually
25855           takes char* or void* (since C++ allows implicit conversion from
25856           char* to void*).  Only call socket_errno() after gethostbyname()
25857           under __WIN32__ - on UNIX the error code is in h_errno (with
25858           incompatible values to errno) and we don't want to confuse things by
25859           reporting some random value of errno.
25861 Mon Apr 02 00:44:56 BST 2007  Olly Betts <olly@survex.com>
25863         * tests/harness/backendmanager.cc: Factor out localhost address into
25864           LOCALHOST.  Use new xapian-tcpsrv --interface option to only listen
25865           for connections on localhost.  Run xapian-tcpsrv with "start /B" on
25866           MS Windows (this stops the "flickbook of console windows" effect).
25868 Mon Apr 02 00:41:31 BST 2007  Olly Betts <olly@survex.com>
25870         * common/Makefile.mk,common/safesyssocket.h: Oops, I checked
25871           in safesysselect.h as safesyssocket.h!
25873 Mon Apr 02 00:30:54 BST 2007  Olly Betts <olly@survex.com>
25875         * include/xapian/queryparser.h: Fix SimpleStopper::add to take
25876           `const std::string &' not `const std::string'.
25878 Mon Apr 02 00:20:45 BST 2007  Olly Betts <olly@survex.com>
25880         * bin/xapian-tcpsrv.cc,net/tcpserver.cc: Add "--interface" option to
25881           allow the hostname or address of the interface to listen on to be
25882           specified (default is the previous behaviour of listening on all
25883           interfaces).
25884         * net/remoteconnection.cc,net/tcpclient.cc,common/safesysselect.h:
25885           Factor out portability code for sys/select.h.
25886         * common/Makefile.mk: Ship common/safesysselect.h.
25887         * net/tcpserver.cc: Rename parameter of run_thread from "_param" to
25888           "param_" (identifiers with leading underscores are reserved for the
25889           compiler).
25890         * common/tcpclient.h,net/tcpclient.cc,common/tcpserver.h: Rewrite
25891           headers with comments which are actually accurate and up-to-date!
25892           TcpClient ctor is small so put inline in the header.  Pass
25893           std::string by const reference.
25894         * common/tcpclient.h,common/tcpserver.h: TcpClient and TcpServer
25895           classes now inherit from WinsockInitializer under __WIN32__ (as
25896           a mixin class) instead of having a member of type WinsockInitializer
25897           (the member is initialised too late, at least under mingw).
25899 Sun Apr 01 19:14:11 BST 2007  Olly Betts <olly@survex.com>
25901         * common/omdebug.cc: Fix retrying of write to retry the part of
25902           the string not already written!
25904 Sun Apr 01 18:37:15 BST 2007  Olly Betts <olly@survex.com>
25906         * common/remoteconnection.h: Note in comments about use as a "mixin"
25907           class.
25909 Sun Apr 01 17:42:19 BST 2007  Olly Betts <olly@survex.com>
25911         * tests,examples,bin: Add .exe versions of built executables to
25912           svn:ignore.
25914 Sun Apr 01 16:28:26 BST 2007  Olly Betts <olly@survex.com>
25916         * common/omdebug.cc: Remove unused '#include <stdio.h>' - we switched
25917           to using unbuffered I/O for logging long ago!
25919 Sun Apr 01 15:21:04 BST 2007  Olly Betts <olly@survex.com>
25921         * common/safewinsock2.h: No, don't typedef socklen_t here - we use
25922           SOCKLEN_T everywhere and have `#define SOCKLEN_T int' in
25923           config.h.win32.
25925 Sun Apr 01 13:32:21 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25927         * common/omdebug.cc: Include necessary headers to get O_CREAT and
25928           friends defined (according to documentation in linux manpage),
25929           to fix compile error.  Also, don't ignore the return value of
25930           write() to fix compile warning (and to ensure that the whole
25931           output gets written if possible).
25933 Sun Apr 01 13:19:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25935         * queryparser/queryparser.cc: Fix Assert() on a RefCountPtr to
25936           check the value of the pointer, to fix compile with asserts
25937           turned on.
25939 Sun Apr 01 12:57:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25941         * common/safewinsock2.h: Define socklen_t under MS compiler (since
25942           Olly reported build success with mingw, presumably it's not
25943           needed there).
25945 Sun Apr 01 06:42:14 BST 2007  Olly Betts <olly@survex.com>
25947         * languages/Makefile.mk: $(snowball_algorithms:.sbl=.cc) is portable
25948           according to the automake list so use that so we only need to list
25949           the .sbl sources.
25951 Sun Apr 01 05:53:29 BST 2007  Olly Betts <olly@survex.com>
25953         * common/tcpserver.h,net/tcpserver.cc: TcpServer's port member
25954           variable is set but never used so remove it.
25956 Sun Apr 01 03:27:30 BST 2007  Olly Betts <olly@survex.com>
25958         * bin/Makefile.mk,examples/Makefile.mk: Add $(EXEEXT) to dependency on
25959           binaries in man page generation rules so they work on Windows.
25961 Sat Mar 31 22:17:55 BST 2007  Olly Betts <olly@survex.com>
25963         * common/multimatch.h,matcher/multimatch.cc: When using a MatchDecider
25964           with remote database(s), don't rerun the MatchDecider on documents
25965           which a remote server has already checked.
25967 Sat Mar 31 10:44:26 BST 2007  Olly Betts <olly@survex.com>
25969         * tests/harness/backendmanager.cc: Sort out path to xapian-tcpsrv
25970           under mingw.  If neither HAVE_FORK nor __WIN32__ is defined,
25971           make compilation fail with a suitable #error.
25973 Sat Mar 31 10:17:06 BST 2007  Olly Betts <olly@survex.com>
25975         * api/Makefile,backends/Makefile,backends/flint/Makefile,
25976           backends/inmemory/Makefile,backends/multi/Makefile,
25977           backends/quartz/Makefile,backends/remote/Makefile,bin/Makefile,
25978           common/Makefile,examples/Makefile,getopt/Makefile,include/Makefile,
25979           languages/Makefile,matcher/Makefile,net/Makefile,
25980           queryparser/Makefile,tests/harness/Makefile: Don't pass $(MAKEFLAGS)
25981           on the command line to $(MAKE) when invoking the top level Makefile
25982           from a static Makefile.  It's passed automatically anyway, and also
25983           $(MAKEFLAGS) doesn't have a leading '-' so "make -s" tries to do
25984           "make s" at the top level.
25986 Sat Mar 31 09:28:06 BST 2007  Olly Betts <olly@survex.com>
25988         * tests/api_nodb.cc: Fix end of loop handling.
25990 Sat Mar 31 09:03:26 BST 2007  Olly Betts <olly@survex.com>
25992         * tests/api_nodb.cc: Fix to compile.
25994 Sat Mar 31 07:53:25 BST 2007  Olly Betts <olly@survex.com>
25996         * common/safewindows.h,common/safewinsock2.h: safewindows.h is
25997           included by a lot of files so we want to keep it lightweight
25998           so split winsock2.h related stuff into safewinsock2.h.
25999         * common/remoteconnection.h: Move WinsockInitializer here.
26000         * common/safeerrno.h: #include "safewinsock2.h" not <winsock2.h>.
26002 Sat Mar 31 07:19:06 BST 2007  Olly Betts <olly@survex.com>
26004         * common/remoteserver.h: Stop trying to include "remoteserver.h"
26005           because that's the SAME HEADER!
26007 Sat Mar 31 07:16:23 BST 2007  Olly Betts <olly@survex.com>
26009         * common/tcpclient.h,common/tcpserver.h: Fix comments - the class is
26010           called WinsockInitializer not WinsockInitialiser.
26012 Sat Mar 31 06:54:22 BST 2007  Olly Betts <olly@survex.com>
26014         * net/progclient.cc: Don't compile any code from this file if
26015           __WIN32__ is defined (for mingw).
26017 Sat Mar 31 06:52:27 BST 2007  Olly Betts <olly@survex.com>
26019         * tests/api_nodb.cc: Simplify code in test_stemlangs1().
26021 Sat Mar 31 06:22:26 BST 2007  Olly Betts <olly@survex.com>
26023         * net/remoteconnection.cc: Use const_cast to avoid GCC warning
26024           about casting away const.  Use string::data() rather than
26025           string::c_str() since we don't need a terminating zero byte.
26027 Sat Mar 31 06:20:07 BST 2007  Olly Betts <olly@survex.com>
26029         * backends/dbfactory_remote.cc: Suppress "unused parameter" warnings.
26031 Sat Mar 31 06:17:35 BST 2007  Olly Betts <olly@survex.com>
26033         * net/tcpserver.cc: Make global variable and function used only in
26034           this file static.  Don't call delete on a void* (that's undefined
26035           behaviour) - delete the cast version of the pointer instead.
26037 Sat Mar 31 06:17:20 BST 2007  Olly Betts <olly@survex.com>
26039         * AUTHORS: Add a number of bug reporters I missed before.
26041 Sat Mar 31 04:49:27 BST 2007  Olly Betts <olly@survex.com>
26043         * configure.ac: Clean up handling of --enable-backend-* options.  Let
26044           mingw try to build the remote backend.
26046 Sat Mar 31 03:47:49 BST 2007  Olly Betts <olly@survex.com>
26048         * tests/internaltest.cc: Don't compile test_serialisequery1
26049           if the remote backend is disabled to avoid an "unused
26050           function" warning (we were already disabling the use of
26051           it).
26053 Fri Mar 30 22:43:27 BST 2007  Olly Betts <olly@survex.com>
26055         * HACKING: Correct several inaccuracies: --enable-debug and
26056           --enable-debug=partial don't cause the build system to compile in
26057           debugging symbols (configure defaults to adding "-g" for GCC, while
26058           for other compilers you must enable them by hand).  Also,
26059           --enable-debug doesn't "produce warnings", but causes
26060           Xapian::AssertionError to be thrown.  Add explanation for why
26061           --enable-debug=partial" exists.  CC_FOR_BUILD is now needed for
26062           snowball as well as lemon.
26064 Fri Mar 30 19:53:05 BST 2007  Olly Betts <olly@survex.com>
26066         * common/utils.cc: Avoid GCC warning on format string "%I64d".
26068 Fri Mar 30 16:48:46 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26070         * common/tcpserver.h,net/tcpserver.cc: Patch from Mark Hammond:
26071           implement for windows.
26073 Fri Mar 30 16:21:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26075         * common/tcpclient.h,net/tcpclient.cc: Patch from Mark Hammond:
26076           implement for windows.
26078 Fri Mar 30 15:52:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26080         * tests/harness/backendmanager.cc: Patch from Mark Hammond:
26081           implement launcher for tcpserver, so that remotetcp tests can run
26082           on windows.
26084 Fri Mar 30 15:42:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26086         * common/safewindows.h: Include xapian/error.h so
26087           WinsockInitialiser can throw an exception.
26089 Fri Mar 30 14:59:40 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26091         * More code from Mark Hammond's patch
26092         * common/remoteconnection.h: Add explicit destructor and (for
26093           windows compiles) a declare a helper method to calculate the
26094           number of milliseconds until a timeout.
26095         * net/remoteconnection.cc: Implement windows versions for functions
26096           which need it: constructor and destructor now do create and close
26097           the overlapped IO stuff, read_at_least() and send_message() have
26098           windows specific implementations.
26100 Fri Mar 30 13:05:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26102         * More code adapted from Mark Hammond's patch
26103         * common/safewindows.h: When remote databases are compiled in,
26104           include the winsock stuff, and define some useful bits and pieces
26105           for using it.
26106         * common/remoteconnection.h: Add a member to RemoteConnection on
26107           windows to hold an overlapped IO structure.
26108         * net/progclient.cc: Don't include winsock stuff directly (it's now
26109           brought in by "safewindows.h"), and don't include <sys/wait.h> on
26110           windows.
26111         * net/remoteserver.cc: Ignore more SIGPIPE stuff on windows.
26113 Fri Mar 30 12:37:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26115         * Patch from Mark Hammond
26116         * backends/dbfactory_remote.cc: Ignore code to handle SIGPIPE on
26117           windows, where it doesn't exist.
26118         * backends/remote/remote-database.cc: Raise UnimplementedError on
26119           windows if a progclient backend is requested.
26121 Fri Mar 30 12:11:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26123         * tests/harness/testsuite.cc: Fix srcdir guessing on windows -
26124           search for windows style directory separators, and remove .exe
26125           suffix from executable name.  Adapted from Mark Hammond's patch.
26127 Thu Mar 29 18:32:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26129         * Changes related to Mark Hammond's patch:
26130         * common/safeerrno.h: Define a new inline function "socket_errno()"
26131           which returns an error number relating to the last error caused
26132           by a socket function on platforms which make such a distinction,
26133           and the value of errno on other platforms.
26134         * net/tcpclient.cc,net/tcpserver.cc: Use the socket_errno()
26135           function instead of checking the value of errno.  Also, check for
26136           WSAEWOULDBLOCK instead of EINPROGRESS on windows.
26138 Thu Mar 29 15:36:45 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26140         * bin/xapian-tcpsrv.cc,tests/harness/testsuite.cc: First of many
26141           parts of a large patch from Mark Hammond working towards enabling
26142           remote databases on windows.  When displaying errors which might
26143           be socket errors, display the error number as well as the output
26144           of strerror - on windows, strerror doesn't display useful
26145           information for socket errors.
26146         * AUTHORS: Add Mark Hammond
26148 Thu Mar 29 06:07:35 BST 2007  Olly Betts <olly@survex.com>
26150         * api/omqueryinternal.cc: Unserialisation shouldn't reject a
26151           serialised query which ends after a termname.
26152         * tests/internaltest.cc: Add regression test.
26154 Wed Mar 28 17:17:42 BST 2007  Olly Betts <olly@survex.com>
26156         * tests/queryparsertest.cc: Add feature tests for "prefer_mdy" and
26157           "epoch" arguments of DateValueRangeProcessor.
26159 Wed Mar 28 04:52:34 BST 2007  Olly Betts <olly@survex.com>
26161         * tests/queryparsertest.cc: Add more test cases for parsing of value
26162           ranges.
26164 Wed Mar 28 04:18:14 BST 2007  Olly Betts <olly@survex.com>
26166         * languages/compiler/generator.c,languages/compiler/header.h,
26167           languages/steminternal.cc,languages/steminternal.h: For among with
26168           functions (only used by finnish and lovins stemmers currently),
26169           change to generating an array of unsigned byte offsets into an array
26170           of function pointers rather than just an array of function pointers
26171           - this generally requires a lot less space.
26173 Wed Mar 28 03:28:37 BST 2007  Olly Betts <olly@survex.com>
26175         * queryparser/queryparser.lemony: Fix parsing of `hello a..b'.
26176         * tests/queryparsertest.cc: Add regression test for above.  Refactor
26177           qp_value_range1 to use a table of queries.
26179 Wed Mar 28 00:35:50 BST 2007  Olly Betts <olly@survex.com>
26181         * languages: Update svn:ignore for recent romanian changes.
26183 Wed Mar 28 00:08:11 BST 2007  Olly Betts <olly@survex.com>
26185         * api/valuerangeproc.cc: Need #include <stdio.h> for snprintf or
26186           sprintf.
26188 Tue Mar 27 23:53:18 BST 2007  Olly Betts <olly@survex.com>
26190         * queryparser/queryparser.lemony: Fix infinite loop in value range
26191           processing.  Fix value range to work as a filter when used with a
26192           probabilistic query.
26193         * tests/queryparsertest.cc: Add regression tests for the above two
26194           issues.  Refactor qp_value_range2 to use a table of queries.
26196 Tue Mar 27 22:09:57 BST 2007  Olly Betts <olly@survex.com>
26198         * api/valuerangeproc.cc: Assume that the start date is before the
26199           end date to help decide ambiguous cases.
26201 Tue Mar 27 21:49:15 BST 2007  Olly Betts <olly@survex.com>
26203         * api/valuerangeproc.cc: Refactor to simplify and reduce duplication.
26205 Tue Mar 27 21:41:38 BST 2007  Olly Betts <olly@survex.com>
26207         * configure.ac: datarootdir is new in 2.60 too, so use datadir when
26208           setting docdir for 2.59.
26210 Tue Mar 27 18:39:11 BST 2007  Olly Betts <olly@survex.com>
26212         * api/Makefile.mk,api/valuerangeproc.cc,include/xapian/queryparser.h:
26213           Move NumberValueRangeProcessor::operator()() out of the header as
26214           it's too complex for sane inlining.  Implement handling of dmy and
26215           mdy dates and epochs for 2 digit years.
26216         * tests/queryparsertest.cc: Add tests.
26218 Tue Mar 27 11:57:53 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26220         * languages/romanian.sbl: Add Martin Porter's new romanian stemming
26221           algorithm.
26222         * languages/romanian1.sbl,languages/romanian2.sbl: Remove old
26223           romanian stemming algorithms.
26224         * languages/Makefile.mk: Replace romanian1 and romanian2 by
26225           romanian.
26226         * languages/stem.cc: Use romanian stemmer when asked for "ro" or
26227           "romanian".  No longer give a stemmer for "romanian1" or
26228           "romanian2".
26230 Tue Mar 27 04:50:36 BST 2007  Olly Betts <olly@survex.com>
26232         * languages/german2.sbl: Copy over "hop 3" in utf-8 case from
26233           snowball's latest version.
26235 Tue Mar 27 04:44:52 BST 2007  Olly Betts <olly@survex.com>
26237         * tests/stemtest.cc: Remove lower casing of dictionary words before
26238           stemming - instead we'll make sure the dictionary is already the
26239           right case.
26241 Tue Mar 27 04:28:10 BST 2007  Olly Betts <olly@survex.com>
26243         * languages/compiler/analyser.c,languages/compiler/generator.c,
26244           languages/compiler/header.h,languages/steminternal.cc,
26245           languages/steminternal.h: Add handling of among with functions.
26246           We use a "shim" functions for each method we want to call in
26247           this way.  The shim function is passed the "this" pointer and
26248           calls a particular method on this.  Split the functions into
26249           an optional separate array, since they're not used by most of
26250           the stemming algorithms.
26251         * languages/Makefile.mk,languages/stem.cc: Enable the finnish
26252           and lovins stemmers.
26254 Tue Mar 27 04:24:37 BST 2007  Olly Betts <olly@survex.com>
26256         * languages/steminternal.cc: Fix typo bug in slice_to - if we needed
26257           to increase the capacity of a snowball string variable, we trashed
26258           the variable with p (bug discovered while trying to enable the
26259           finnish stemmer).
26261 Tue Mar 27 02:55:51 BST 2007  Olly Betts <olly@survex.com>
26263         * include/xapian/queryparser.h: Implement handling of ISO format dates
26264           in DateValueRangeProcessor.
26265         * tests/queryparsertest.cc: Add feature tests.
26267 Tue Mar 27 01:47:36 BST 2007  Olly Betts <olly@survex.com>
26269         * include/xapian/queryparser.h: Implement prefix and suffix handling
26270           for NumberValueRangeProcessor.
26271         * tests/queryparsertest.cc: Add feature tests.
26273 Mon Mar 26 22:26:48 BST 2007  Olly Betts <olly@survex.com>
26275         * queryparser/utf8itor.h: Add is_currency() predicate function.
26276         * queryparser/queryparser.lemony: Rejig parsing of RANGE_START to
26277           allow all characters which are likely to be required.
26278         * tests/queryparsertest.cc: Test RANGE_START can contain "/".
26279         * queryparser/queryparser.lemony: Set "syntax=yacc" for vim, which
26280           give fairly decent syntax highlighting.
26282 Mon Mar 26 15:43:50 BST 2007  Olly Betts <olly@survex.com>
26284         * configure.ac: Use m4 comments not shell (dnl not #).
26286 Mon Mar 26 15:41:41 BST 2007  Olly Betts <olly@survex.com>
26288         * configure.ac: Add code to ensure that docdir is set for autoconf
26289           2.59 (starting from 2.60, it is defined as standard).
26290         * docs/Makefile.am: Use docdir for installing docs.
26292 Sun Mar 25 15:41:16 BST 2007  Olly Betts <olly@survex.com>
26294         * bin/xapian-compact.cc: Prune unused docids off the start of each
26295           source database's range of docid.
26297 Sat Mar 24 23:07:42 GMT 2007  Olly Betts <olly@survex.com>
26299         * include/xapian/base.h: Add a note explaining why it's OK that
26300           RefCntBase doesn't have a virtual destructor.
26302 Sat Mar 24 01:30:17 GMT 2007  Olly Betts <olly@survex.com>
26304         * HACKING,configure.ac: Bump the automake required version to 1.9.5.
26305           It was in Debian sarge, so any modern Linux distro should include
26306           packages, and we've actually been bootstrapping with 1.9.6 for ages.
26308 Thu Mar 22 00:53:35 GMT 2007  Olly Betts <olly@survex.com>
26310         * configure.ac: Disable probes for f77 more completely by preventing
26311           the probe code from even appearing in configure.  Similarly
26312           eliminate the code for gcj and rc probes - in total these changes
26313           reduce the size of configure by 209KB (~25%).
26315 Fri Mar 09 14:28:01 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26317         * Makefile.am: Add include/xapian/error.h to list of headers to
26318           install.
26320 Thu Mar 08 17:16:08 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26322         * generate-exceptions.in,exception_data.pm: Split definitions of
26323           the exception hierarchy into a separate file, so it can be reused
26324           elsewhere.
26325         * Makefile.am: Add exception_data.pm as a dependency for generating
26326           error.h, and add it to EXTRA_DIST.
26328 Fri Mar 09 06:42:40 GMT 2007  Olly Betts <olly@survex.com>
26330         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: We
26331           always ignore the return value from FlintCursor::get_key() because
26332           we only call it when it shouldn't fail, so restructure the code so
26333           it can't fail and change the return value to void.
26335 Fri Mar 09 06:33:09 GMT 2007  Olly Betts <olly@survex.com>
26337         * configure.ac: Suppress another aCC warning.
26339 Thu Mar 08 20:39:46 GMT 2007  Olly Betts <olly@survex.com>
26341         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow
26342           arbitrary characters in a range end (anything except whitespace
26343           and ')').
26345 Thu Mar 08 19:46:46 GMT 2007  Olly Betts <olly@survex.com>
26347         * Makefile.am,languages/Makefile.mk: Depend on the autoconf
26348           substituted version of a script, not the template version.  The
26349           only thing we substitute is @PERL@, but configure won't update
26350           a substituted file which hasn't changed so it's better to put
26351           the dependency on the script itself where it belongs.
26353 Thu Mar 08 17:09:21 GMT 2007  Olly Betts <olly@survex.com>
26355         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Keep any
26356           non-whitespace, non-term prefix for a term in case it turns out
26357           to be the start of a range, so "$50..100" works.
26359 Thu Mar 08 16:21:14 GMT 2007  Olly Betts <olly@survex.com>
26361         * HACKING: Add my "create docs/GNUmakefile" trick to avoid doxygen
26362           delays.
26364 Thu Mar 08 16:13:39 GMT 2007  Olly Betts <olly@survex.com>
26366         * HACKING: A few more coding guidelines.
26368 Thu Mar 08 14:26:21 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26370         * HACKING: Adjust wording to indicate that the build system is
26371           indended not to break after SVN updates.
26373 Thu Mar 08 07:34:22 GMT 2007  Olly Betts <olly@survex.com>
26375         * include/xapian/queryparser.h,tests/queryparsertest.cc: Add simple
26376           implementations of DateValueRangeProcessor and
26377           NumberValueRangeProcessor and add qp_value_range2 to check that
26378           chaining ValueRangeProcessor subclasses works as intended.
26380 Thu Mar 08 06:06:15 GMT 2007  Olly Betts <olly@survex.com>
26382         * docs/overview.html: Fix links to error classes in generated API
26383           documentation.
26385 Thu Mar 08 05:37:13 GMT 2007  Olly Betts <olly@survex.com>
26387         * include/xapian/queryparser.h,queryparser/queryparser.cc,
26388           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
26389           tests/queryparsertest.cc: Add the ability to parse "value ranges"
26390           to the QueryParser (e.g. "10..50") which translate into a Query
26391           with operator OP_VALUE_RANGE.
26393 Thu Mar 08 04:27:54 GMT 2007  Olly Betts <olly@survex.com>
26395         * include/xapian/queryparser.h,queryparser/queryparser.cc: Remove
26396           QueryParser::set_stemming_options() which has been deprecated
26397           since 0.9.0.
26399 Thu Mar 08 03:37:07 GMT 2007  Olly Betts <olly@survex.com>
26401         * backends/flint/flint_lock.cc: Handle write failing to send a single
26402           byte down down the pipe to tell the parent we've got the lock (a
26403           potential bug noticed by _FORTIFY_SOURCE!)  Handle read() failing
26404           with an unexpected error on the parent side by failing the lock
26405           attempt rather than risking an infinite loop.
26407 Thu Mar 08 02:52:26 GMT 2007  Olly Betts <olly@survex.com>
26409         * include/xapian/types.h: Rewritten, with more accurate documentation
26410           comments.  Add constant Xapian::BAD_VALUENO which is -1 cast to
26411           Xapian::valueno.
26412         * api/omenquire.cc,include/xapian/enquire.h,matcher/multimatch.cc: Use
26413           Xapian::BAD_VALUENO instead of Xapian::valueno(-1).
26415 Thu Mar 08 01:47:08 GMT 2007  Olly Betts <olly@survex.com>
26417         * docs/Makefile.am: Try putting apidoc/html in EXTRA_DIST instead of
26418           using dist-hook.
26420 Wed Mar 07 23:16:52 GMT 2007  Olly Betts <olly@survex.com>
26422         * docs/Makefile.am: Stop shipping docs/apidoc/latex/* in the
26423           xapian-core tarballs since it's just useless bloat.  Removing it
26424           more than halves the size of the tarball (55% reduction!)
26426 Wed Mar 07 22:07:31 GMT 2007  Olly Betts <olly@survex.com>
26428         * tests/runtest.in: If we aren't using valgrind, turn on
26429           MALLOC_CHECK_ and MALLOC_PERTURB_ for glibc.
26431 Wed Mar 07 20:02:31 GMT 2007  Olly Betts <olly@survex.com>
26433         * INSTALL: CVS -> SVN.
26435 Wed Mar 07 20:00:37 GMT 2007  Olly Betts <olly@survex.com>
26437         * configure.ac: Define _FORTIFY_SOURCE in config.h if GCC is in use
26438           and it's not already set.  That way the user can easily override.
26439         * INSTALL: Document this.
26441 Wed Mar 07 19:53:15 GMT 2007  Olly Betts <olly@survex.com>
26443         * INSTALL: Remove reference to muscat36 backend.
26445 Wed Mar 07 17:37:07 GMT 2007  Olly Betts <olly@survex.com>
26447         * configure.ac: Note GCC and glibc versions needed for _FORTIFY_SOURCE
26448           support.
26450 Wed Mar 07 16:29:02 GMT 2007  Olly Betts <olly@survex.com>
26452         * queryparser/lemon.c: Increase the length allowed for the filename
26453           in an error message, as it was being truncated which makes for a
26454           confusing error message and stops editors jumping to the line with
26455           the error in.
26457 Wed Mar 07 15:57:15 GMT 2007  Olly Betts <olly@survex.com>
26459         * common/Makefile.mk: Ship common/msvc_posix_wrapper.h and
26460           common/msvc_posix_wrapper.cc.
26462 Wed Mar 07 10:01:31 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26464         * configure.ac: Add -D_FORTIFY_SOURCE to AM_CXXFLAGS for GCC
26465           builds.  According to glibc CVS support for this was added in
26466           October 2004, but it doesn't seem to be documented very well,
26467           other than in features.h.  This adds some extra checking for
26468           array bounds, partially at compile time, but doesn't currently
26469           find any problems (or cause any noticeable slowdown).
26471 Wed Mar 07 04:49:01 GMT 2007  Olly Betts <olly@survex.com>
26473         * api/omqueryinternal.cc: Include str_parameter in swap() and the copy
26474           constructor.
26475         * tests/api_anydb.cc: get_mset(0, 20) not get_mset(1, 20)!  Also check
26476           that we didn't miss any documents which should match the filter, not
26477           just that we didn't get any documents which shouldn't.
26479 Wed Mar 07 03:07:49 GMT 2007  Olly Betts <olly@survex.com>
26481         * tests/harness/unixcmds.h: Fixed reverse sense include guard test.
26482         * tests/api_db.cc: Still need #include "utils.h".
26483         * tests/harness/backendmanager.cc: Update for rmdir.h -> unixcmds.h
26484           and rmdir() -> rm_rf().
26486 Wed Mar 07 02:22:30 GMT 2007  Olly Betts <olly@survex.com>
26488         * backends/quartz/btree.cc,backends/quartz/quartz_database.cc,
26489           backends/quartz/quartz_log.cc,common/utils.h,net/remoteconnection.cc,
26490           net/tcpclient.cc,tests/api_db.cc,tests/btreetest.cc,tests/harness/,
26491           tests/quartztest.cc: Rename rmdir() to rm_rf() since it does the
26492           same as "rm -rf" not "rmdir".  The "touch()" function is only used
26493           in the testsuite so move it from common/utils.h into
26494           tests/harness/rmdir.cc and rename rmdir.cc to unixcmds.cc.
26495           common/utils.h no longer include safefcntl.h, so add explicit
26496           includes to the files which were previous relying on utils.h pulling
26497           it in.
26499 Wed Mar 07 02:21:18 GMT 2007  Olly Betts <olly@survex.com>
26501         * xapian.spec.in: Include ChangeLog.examples.
26503 Wed Mar 07 02:17:59 GMT 2007  Olly Betts <olly@survex.com>
26505         * docs/index.html,docs/internals.html: Create a separate index page
26506           for the "internal" documentation.
26508 Tue Mar 06 23:47:58 GMT 2007  Olly Betts <olly@survex.com>
26510         * common/utils.cc,common/utils.h: Remove map_string_to_value() which
26511           is no longer used.
26512         * common/utils.h: Remove prototype for rmdir() which I failed to
26513           remove with the earlier commit.
26515 Tue Mar 06 22:51:51 GMT 2007  Olly Betts <olly@survex.com>
26517         * tests/harness/rmdir.cc: Fix rmdir() on Unix to not be O(n^2) in the
26518           worst case.
26520 Tue Mar 06 22:46:30 GMT 2007  Olly Betts <olly@survex.com>
26522         * docs/Makefile.am: Use the "inline test || echo" idiom to merge the
26523           VPATH and non-VPATH cases for distributing and installing the HTML
26524           apidocs.
26526 Tue Mar 06 22:13:03 GMT 2007  Olly Betts <olly@survex.com>
26528         * api/omqueryinternal.cc: Fix Query::get_description() on an
26529           OP_VALUE_RANGE query.
26531 Tue Mar 06 09:03:33 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26533         * HACKING: Note on running preautoreconf and autoreconf to keep SVN
26534           builds working.
26535         * PLATFORMS: Update with success reports for windows builds.
26537 Tue Mar 06 01:57:23 GMT 2007  Olly Betts <olly@survex.com>
26539         * tests/internaltest.cc: Comment out the "unsigned long long" testcase
26540           in tostring1 since the library doesn't currently have (or need) the
26541           utility function for that case.
26543 Tue Mar 06 01:49:55 GMT 2007  Olly Betts <olly@survex.com>
26545         * common/utils.cc,tests/btreetest.cc,tests/harness/,
26546           tests/quartztest.cc: rmdir() is only used in the test suite, and not
26547           in the library code, so move it into the testsuite.  Also, bow out
26548           early if the pathname passed is empty, and on Unix protect against
26549           filenames which start with "-".
26551 Mon Mar 05 02:52:49 GMT 2007  Olly Betts <olly@survex.com>
26553         * configure.ac: Suppress more unhelpful aCC warnings.
26555 Mon Mar 05 02:15:29 GMT 2007  Olly Betts <olly@survex.com>
26557         * tests/internaltest.cc: Add testcase autoptr1 which tests that an
26558           autoptr correctly handles self-assignment.
26560 Mon Mar 05 02:05:53 GMT 2007  Olly Betts <olly@survex.com>
26562         * tests/internaltest.cc: Rename "omtostring1" to "tostring1" (we don't
26563           want to perpetuate references to "om"!)  Add more test cases to this
26564           test.
26566 Mon Mar 05 01:18:17 GMT 2007  Olly Betts <olly@survex.com>
26568         * configure.ac: Update in line with 0.9.10.
26570 Sun Mar 04 23:58:29 GMT 2007  Olly Betts <olly@survex.com>
26572         * AUTHORS: Add reporters of bugs fixed in 0.9.10 to the "thanks" list.
26574 Sun Mar 04 00:44:17 GMT 2007  Olly Betts <olly@survex.com>
26576         * api/errorhandler.cc,include/xapian/errorhandler.h: Move virtual
26577           dtor for ErrorHandler out of the header.  Same reasons as previous
26578           commit.
26580 Sun Mar 04 00:40:44 GMT 2007  Olly Betts <olly@survex.com>
26582         * api/omenquire.cc,include/xapian/enquire.h,matcher/Makefile.mk,
26583           matcher/weight.cc: Move virtual method definitions out of headers
26584           for MatchDecider, ExpandDecider, Weight, BoolWeight.  This fixes
26585           warnings from aCC, and it's rare that the compiler would be able
26586           to inline a virtual method anyway.
26588 Sat Mar 03 21:40:43 GMT 2007  Olly Betts <olly@survex.com>
26590         * configure.ac: For HP's aCC, we no longer need to suppress warning
26591           #336 (empty translation unit) since dummy.cc is history.  But we
26592           do want to suppress a couple of frequently reported "remarks" which
26593           are unavoidable and don't indicate a problem.  Experimentally, add
26594           "+wlint" for "link-like" warnings.
26596 Sat Mar 03 21:38:52 GMT 2007  Olly Betts <olly@survex.com>
26598         * include/xapian.h,include/xapian/version_h.cc: Move function
26599           prototypes into a non-generated header.
26600         * configure.ac,msvc/version.h.in: Generate version.h suitable for use
26601           with MSVC.
26602         * Makefile.am: Distribute msvc/version.h.
26604 Sat Mar 03 19:49:11 GMT 2007  Olly Betts <olly@survex.com>
26606         * tests/harness/backendmanager.cc: Rework how we start and handle
26607           xapian-tcpsrv - it's now started by exec from a child process.
26608           This means that the mechanism to try higher port numbers works
26609           reliably, and we no longer leak file descriptors (which was causing
26610           tests to fail on some platforms).
26612 Sat Mar 03 19:46:03 GMT 2007  Olly Betts <olly@survex.com>
26614         * bin/xapian-tcpsrv.cc: Put "e.get_errno()" in a variable for clearer
26615           code.
26617 Sat Mar 03 16:01:17 GMT 2007  Olly Betts <olly@survex.com>
26619         * common/msvc_posix_wrapper.cc: Change `#include <fcntl.h>' to
26620           `#include "safefcntl.h"' (currently makes no difference on
26621           Windows, but it's more consistent to always use the safeXXX
26622           headers).
26623         * common/msvc_posix_wrapper.cc: Merge two ECHILD cases.
26624         * common/msvc_posix_wrapper.cc: Make sure dwCreationDisposition
26625           is initialised even if flags has a bogus value.
26626         * common/msvc_posix_wrapper.cc: Be consistent and always use O_CREAT,
26627           etc, instead of sometimes using the MS alternative forms _O_CREAT,
26628           etc.
26630 Sat Mar 03 03:25:05 GMT 2007  Olly Betts <olly@survex.com>
26632         * generate-exceptions.in: The GCC visibility docs aren't clear whether
26633           you need to make *thrown* exception types visible, or also *caught*
26634           exception types.  But I've just been having odd problems catching
26635           Xapian::DocNotFoundError with "const Xapian::Error &", so let's mark
26636           the exception virtual baseclass Xapian::Error as visible too.
26638 Fri Mar 02 22:34:04 GMT 2007  Olly Betts <olly@survex.com>
26640         * languages/Makefile.mk,languages/generate-allsnowballheaders.in:
26641           Convert unreadable make rule for generating allsnowballheaders.h
26642           to a perl script.
26643         * configure.ac: Substitute languages/allsnowballheaders.
26645 Fri Mar 02 14:31:11 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26647         * tests/internaltest.cc: Add a test for om_tostring(), mainly
26648           aimed at 64 bit types on windows platforms.  Mingw builds report
26649           a warning in this code, which merits further investigation - see
26650           Bug #112 for details.
26652 Fri Mar 02 14:15:44 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26654         * common/msvc_posix_wrapper.cc: Improve accuracy of emulation of
26655           posix open, and fix a bug which caused it to misinterpret the
26656           "flags" argument - files were always being opened for writing:
26657           O_RDONLY is 0, so the old test (flags & O_RDONLY) always
26658           failed.
26660 Fri Mar 02 12:44:33 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26662         * common/msvc_posix_wrapper.cc: Fix whitespace issues.
26664 Fri Mar 02 12:18:42 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26666         * HACKING: Add note about how to generate ChangeLog timestamps
26667           using the unix date command - and I've started generating them in
26668           the same format as Olly is. (I hope.)
26670 Fri Mar  2 11:49:11 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26672         * common/msvc_posix_wrapper.h,common/safeerrno.h,
26673           common/msvc_posix_wrapper.cc,backends/quartz/btree.cc,
26674           backends/flint/flint_table.cc,backends/flint/flint_btreebase.cc:
26675           Move MSVC specific code for opening files into
26676           msvc_posix_wrapper.cc, and just leave a few conditional includes
26677           and function calls elsewhere.
26679 Thu Mar 01 22:51:42 GMT 2007  Olly Betts <olly@survex.com>
26681         * queryparser/queryparser.lemony: Add casts to U_isupper(), etc to
26682           suppress warnings from aCC.
26683         * queryparser/queryparser.lemony: Use U_isdigit() instead of
26684           C_isdigit(), etc - the truncation to a char can cause false
26685           positives.
26686         * tests/queryparsertest.cc: Add a (rather contrived) regression test
26687           for the above change.
26689 Thu Mar 01 21:49:37 GMT 2007  Olly Betts <olly@survex.com>
26691         * queryparser/utf8itor.h: Add cast to suppress warning from aCC.
26693 Thu Mar  1 15:27:09 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26695         * common/utils.c,common/utils.h: For windows, add an om_tostring()
26696           function for 64 bit integers: time() and GetProcessId() return
26697           these, and without this, backends/quartz/quartz_log.cc reports
26698           an error.
26700 Thu Mar  1 13:48:46 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26702         * queryparser/queryparser.lemony: Fix handling of hated wildcards
26703           which don't expand to any terms.
26705 Thu Mar  1 13:45:04 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26707         * tests/queryparsertest.cc: Fix last two test cases for hated
26708           wildcards to check for exactly what should be returned.
26710 Thu Mar  1 12:02:04 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26712         * common/safeerrno.h: Some of Microsoft's C++ compiler versions
26713           earlier than 2005 do not have _set_errno, so #define it in this
26714           case.
26716 Thu Mar 01 04:28:23 GMT 2007  Olly Betts <olly@survex.com>
26718         * backends/quartz/btree.h: Correct comment ("read" -> "write").
26720 Thu Mar 01 04:21:52 GMT 2007  Olly Betts <olly@survex.com>
26722         * backends/flint/flint_table.h: Correct comment ("read" -> "write").
26724 Thu Mar 01 01:30:02 GMT 2007  Olly Betts <olly@survex.com>
26726         * tests/queryparsertest.cc: Add some test cases for hated wildcards
26727           which don't expand to any terms.
26729 Thu Mar 01 01:21:42 GMT 2007  Olly Betts <olly@survex.com>
26731         * api/omqueryinternal.cc: Complete truncated comment.  Prefer
26732           preincrement to postincrement.
26734 Wed Feb 28 20:13:35 GMT 2007  Olly Betts <olly@survex.com>
26736         * api/omdocument.cc: Really tweak OmDocumentTerm::add_position() so
26737           that adding position 0 to an empty termlist takes the shortcut.
26739 Wed Feb 28 15:04:25 GMT 2007  Olly Betts <olly@survex.com>
26741         * common/safeerrno.h: Correct <safeerrno.h> to "safeerrno.h" in
26742           message in #error directive.
26744 Wed Feb 28 14:59:29 GMT 2007  Olly Betts <olly@survex.com>
26746         * include/xapian/query.h: Removed documentation comment for
26747           Xapian::Query::Internal which is no longer relevant (Query objects
26748           are now immutable once constructed, so parameters can no longer be
26749           set separately).
26751 Wed Feb 28 02:42:31 GMT 2007  Olly Betts <olly@survex.com>
26753         * api/omqueryinternal.cc: Add support for serialising OP_VALUE_RANGE
26754           queries.  Add support for OP_VALUE_RANGE queries to
26755           Query::get_description().  If an OP_VALUE_RANGE query has a start
26756           bound strictly greater than its end bound, simplify it by knowing
26757           that it can't match anything.
26758         * common/remoteprotocol.h,docs/remote_protocol.html: Bump remote
26759           protocol version to 24.
26761 Wed Feb 28 01:15:00 GMT 2007  Olly Betts <olly@survex.com>
26763         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
26764           matcher/: Add new Query operator OP_VALUE_RANGE which allows
26765           a query to be filtered by checking if a value lies between
26766           two limits.
26767         * tests/api_anydb.cc: Add feature test valuerange1.
26769 Wed Feb 28 01:07:53 GMT 2007  Olly Betts <olly@survex.com>
26771         * tests/harness/testsuite.cc: Only hook the testsuite into valgrind if
26772           env var XAPIAN_TESTSUITE_VALGRIND is set, to make it simple to run a
26773           test program under valgrind normally.
26774         * tests/runtest.in: Set XAPIAN_TESTSUITE_VALGRIND if automatically
26775           running a test program under valgrind.
26777 Tue Feb 27 23:51:34 GMT 2007  Olly Betts <olly@survex.com>
26779         * tests/Makefile.am: Turn subdir-objects back on here so that the
26780           harness objects end up in the harness subdirectory.
26782 Tue Feb 27 22:45:04 GMT 2007  Olly Betts <olly@survex.com>
26784         * examples/delve.cc: Rename "-k" to "-V" since "keys" were renamed to
26785           "values" long ago.  Keep "-k" as an alias for now, but don't
26786           advertise it.  Add handling so "-V3" shows value #3 for every
26787           document in the database.
26789 Tue Feb 27 21:35:35 GMT 2007  Olly Betts <olly@survex.com>
26791         * tests/Makefile.am,tests/remotetest.cc: Get rid of remotetest since
26792           it no longer does anything.
26794 Tue Feb 27 21:28:28 GMT 2007  Olly Betts <olly@survex.com>
26796         * tests/api_db.cc,tests/remotetest.cc: Move netstats1 from remotetest
26797           to apitest.  It will now run for "remotetcp" as well as "remote".
26799 Tue Feb 27 21:27:17 GMT 2007  Olly Betts <olly@survex.com>
26801         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
26802           Inline trivial getter and setter methods in the header.  Make
26803           getter method const.
26805 Tue Feb 27 20:22:58 GMT 2007  Olly Betts <olly@survex.com>
26807         * examples/delve.cc: Change to not stem terms by default.  Add
26808           "-s/--stemmer" option to allow a stemmer to be specified.
26810 Tue Feb 27 17:50:13 GMT 2007  Olly Betts <olly@survex.com>
26812         * backends/flint/flint_table.cc: Test revision_supplied rather than
26813           revision_ so that behaviour matches comments.
26815 Tue Feb 27 16:58:56 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26817         * tests/api_wrdb.cc: Enhance crashrecovery1 to check that the
26818           readers reference a database with the expected number of
26819           documents.  This checks that the base files which were removed
26820           were the correct ones to leave the current database valid.
26822 Tue Feb 27 16:54:31 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26824         * backends/quartz/btree.cc,backends/quartz/btree.h,
26825           backends/quartz/quartz_database.cc: Apply fix for opening
26826           databases while under heavy modification to quartz, using Olly's
26827           attachment to bug #108:
26828           http://www.xapian.org/cgi-bin/bugzilla/attachment.cgi?id=43
26829           Verified with loadtest that this resolves the issue.
26831 Tue Feb 27 13:12:31 GMT 2007  Olly Betts <olly@survex.com>
26833         * tests/harness/backendmanager.h: Add get_dbtype() method to allow the
26834           current backend type to be read.
26835         * tests/apitest.cc,tests/apitest.h: Add get_dbtype() function to allow
26836           BackendManager::get_dbtype() to be called by tests.
26837         * tests/api_wrdb.cc: Add new test crashrecovery1 to verify that the
26838           backend can recover from the latest revision missing some of the
26839           base files.
26841 Tue Feb 27 12:45:00 GMT 2007  Olly Betts <olly@survex.com>
26843         * tests/harness/backendmanager.cc: Fix how we start xapian-progsrv
26844           when running under valgrind.
26846 Tue Feb 27 11:34:22 GMT 2007  Olly Betts <olly@survex.com>
26848         * backends/flint/flint_database.cc: Remove the old throw for
26849           DatabaseOpeningError so the new throw for DatabaseModifiedError will
26850           actually be used.
26852 Tue Feb 27 09:22:52 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26854         * flint_table.cc,flint_table.h,flint_database.cc: If a database is
26855           being frequently modified (ie, transactions committed extremely
26856           frequently), flint can fail open all the tables at a consistent
26857           revision on the first attempt.  The code to handle this in
26858           flint_database.cc was not firing because flint_table.cc was
26859           reporting all failures to open a table for reading by throwing an
26860           exception.  This commit changes flint_table.cc to report failure
26861           to open at a specific revision by returning false.
26863           In addition, there was a bug in flint_database.cc which caused
26864           the attempts to re-try opening a database in this situation to
26865           fail.  This is now fixed.
26867           Finally, flint_database.cc now throws a DatabaseModified error if
26868           100 attempts to reopen the database fail because of continual
26869           modifications - previously, it would have thrown a
26870           DatabaseOpening error.
26872           There is no easy regression test - but my "loadtest.cc" program
26873           attached to bug #108 shows the problem (if you comment out the
26874           code which ignores DatabaseOpeningErrors).
26876 Tue Feb 27 01:25:00 GMT 2007  Olly Betts <olly@survex.com>
26878         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Need to
26879           define DOXYGEN so that the previous change to the generated
26880           errordispatch.h works.  Remove obsolete macros from
26881           EXPAND_AS_DEFINED and PREDEFINED.
26882         * docs/doxygen_full_conf.in: Increase MAX_DOT_GRAPH_WIDTH from
26883           800 to 1024 to match doxygen_api_conf.in.
26885 Tue Feb 27 00:41:47 GMT 2007  Olly Betts <olly@survex.com>
26887         * matcher/multimatch.cc: Fix warning with SGI's CC.
26889 Tue Feb 27 00:35:06 GMT 2007  Olly Betts <olly@survex.com>
26891         * generate-exceptions.in: Wrap errordispatch.h in "#ifndef DOXYGEN"
26892           and "#endif" because doxygen gets confused by a header full of
26893           code.
26895 Mon Feb 26 21:53:41 GMT 2007  Olly Betts <olly@survex.com>
26897         * tests/findheaders.pl: Remove long unused perl script.
26899 Mon Feb 26 19:23:50 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26901         * tests/api_wrdb.c: test_emptyterm2 used to delete a writable
26902           database whilst the database was open.  Unfortunately, this
26903           doesn't work on windows (and it doesn't seem to be easy to make
26904           it work), so this patch changes the test to close each database
26905           before opening the next writable database at the same path.
26906           Fortunately, this seems to be the only test which behaves like
26907           this.  Also, added a note to the win32 README file to document
26908           this restriction.
26910 Mon Feb 26 19:19:34 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26912         * docs/Makefile.am: touch apidoc/html/index.html after apidoc.pdf
26913           is created so that make doesn't attempt to regenerate it due to
26914           the dependency of apidoc/html/index.html on apidoc.pdf.
26915           Similarly for sourcedoc/html/index.html.
26917 Mon Feb 26 18:36:22 GMT 2007  Olly Betts <olly@survex.com>
26919         * tests/harness/backendmanager.cc: Indent with tabs not spaces.
26920         * tests/harness/index_utils.cc: Add missing space after "if";
26921           prefer "X.empty()" to "X.size() == 0".
26923 Mon Feb 26 16:10:31 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26925         * tests/harness/index_utils.cc,tests/harness/backendmanager.cc:
26926           Fix for windows: windows file handling seems to have a bug
26927           causing end of file conditions in ifstream to be missed.  As a
26928           result, an empty string was being returned from the get_paragraph
26929           function in the test harness, resulting in an out-of-bounds error
26930           when generating a value from the paragraph.  Add a check that the
26931           paragraph returned isn't empty, and return an empty document if
26932           it is.  Then, check for empty documents (ie, contain some terms)
26933           before adding them to the test database.
26935 Mon Feb 26 16:05:07 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26937         * backends/quartz/btree_base.cc,backends/flint/flint_btreebase.cc:
26938           Fix for windows: string append method with a pointer and length
26939           causes a segfault-type error on windows if the pointer is NULL,
26940           even if the length is also 0.  Check for this case when appending
26941           the bitmap to the base block, since a NULL pointer is passed for
26942           an empty bitmap when a new database is being created.
26944           Also, initialise the bit_map0 and bitmap members to 0 in the
26945           FlintTable_base constructor which takes a string and a char
26946           argument - they had been omitted from this and were only being
26947           initialised by the constructor which takes no argument.  This
26948           didn't seem to be having any negative effect, but doing it makes
26949           the code neater.
26951 Sun Feb 25 23:21:11 GMT 2007  Olly Betts <olly@survex.com>
26953         * backends/inmemory/inmemory_database.cc: Create the RefCntPtr to this
26954           as an explicit variable to make the code more readable.
26956 Sun Feb 25 19:20:33 GMT 2007  Olly Betts <olly@survex.com>
26958         * matcher/multimatch.cc: Fix inconsistent ordering between pages with
26959           set_sort_by_value_then_relevance (fixes bug#110).
26960         * tests/api_wrdb.cc: Enabled test consistency2.
26962 Sun Feb 25 17:28:09 GMT 2007  Olly Betts <olly@survex.com>
26964         * matcher/: Also apply the "decreasing weights with remote database"
26965           optimisations which we use in the sort_by_relevance case in the
26966           sort_by_relevance_then_value case.
26968 Sat Feb 24 19:35:41 GMT 2007  Olly Betts <olly@survex.com>
26970         * backends/inmemory/inmemory_database.cc: If replace_document is used
26971           to set the docid of a newly added document which has previously
26972           existed, then we need to mark that document as valid (caught by
26973           existing test replacedoc4 in a debug build).
26975 Sat Feb 24 17:11:22 GMT 2007  Olly Betts <olly@survex.com>
26977         * tests/api_wrdb.cc: Add regression test consistency2 for bug#110
26978           (currently skipped since the bug isn't fixed yet).
26980 Thu Feb 22 15:18:53 GMT 2007  Olly Betts <olly@survex.com>
26982         * configure.ac: Add proper detection for SGI's C++ (check stderr
26983           output of "CC -v").  Automatically pass -ptused in CXXFLAGS for
26984           xapian-core and any applications using xapian-config --cxxflags
26985           since it seems to be required to avoid template linking errors.
26987 Thu Feb 22 09:04:30 GMT 2007  Olly Betts <olly@survex.com>
26989         * docs/Makefile.am: Ship generated RSTHTML files.
26991 Wed Feb 21 19:01:06 GMT 2007  Olly Betts <olly@survex.com>
26993         * languages/turkish.sbl: Make some simplifications to the code of the
26994           turkish stemmer.
26996 Wed Feb 21 19:00:11 GMT 2007  Olly Betts <olly@survex.com>
26998         * languages/Makefile.mk,languages/stem.cc,languages/turkish.sbl:
26999           Add turkish stemmer.
27001 Wed Feb 21 18:55:03 GMT 2007  Olly Betts <olly@survex.com>
27003         * languages/compiler/generator.c: Number m_test and c_test variables
27004           to avoid variable shadowing warnings.
27006 Wed Feb 21 18:07:50 GMT 2007  Olly Betts <olly@survex.com>
27008         * languages/compiler/generator.c: Remove duplicate copy of function
27009           resulting from ham-fisted reverting and applying of patches.
27011 Wed Feb 21 18:03:12 GMT 2007  Olly Betts <olly@survex.com>
27013         * languages/compiler/generator.c,languages/compiler/header.h: Number
27014           mlimit variables to avoid variable shadowing warnings.
27015         * languages/compiler/generator.c: Use "if (foo() == -1) return -1;"
27016           which avoids a temporary variable (improving readability of
27017           generated code) and producing very slightly faster code.
27018         * languages/compiler/header.h: Use "#ifdef DISABLE_JAVA" around Java
27019           generator specific struct members and prototypes.
27021 Wed Feb 21 17:47:13 GMT 2007  Olly Betts <olly@survex.com>
27023         * languages/compiler/generator.c: Add "~C" comments to generated
27024           source for more operations.
27026 Tue Feb 20 20:24:30 GMT 2007  Olly Betts <olly@survex.com>
27028         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Ensure
27029           both_bases is set to false if we don't have both bases when
27030           opening a table using an existing object.
27032 Tue Feb 20 15:57:05 GMT 2007  Olly Betts <olly@survex.com>
27034         * preautoreconf: Fix to handle generating dependencies on generated
27035           objects, at least for the "checked out tree from SVN" case.  Fixing
27036           this fully is trickier, but currently this is stopped snapshots
27037           from bootstrapping.
27039 Tue Feb 20 14:28:02 GMT 2007  Charlie Hull
27041         * backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc,
27042           backends/quartz/btree.cc: Use MS Windows API calls to delete
27043           files and open files we might want to delete while they are
27044           still open (i.e. the flint and quartz btree base files).  This
27045           fixes a problem when a writer can't discard an old revision at the
27046           exact moment a reader is opening it (bug #108).
27048 Tue Feb 20 14:13:43 GMT 2007  Richard Boulton <richard@tartarus.org>
27050         * .: Add generate-exceptions to svn:ignore property.
27052 Tue Feb 20 13:36:27 GMT 2007  Olly Betts <olly@survex.com>
27054         * generate-exceptions.in: Add missing '}' to close 'namespace Xapian'
27055           in generated header 'xapian/error.h'.
27057 Tue Feb 20 13:26:19 GMT 2007  Olly Betts <olly@survex.com>
27059         * Makefile.am: Put generated exception headers in BUILT_SOURCES.
27061 Tue Feb 20 12:10:18 GMT 2007  Olly Betts <olly@survex.com>
27063         * Makefile.am,configure.ac,generate-exceptions.in,include/Makefile.mk,
27064           include/xapian/error.h,include/xapian/errortypes.h,net/serialise.cc:
27065           Replace macro gymnastics with errortypes.h by a perl script which
27066           generates the headers we require.  It's more flexible, and easier to
27067           get doxygen to generate documentation from.
27068         * queryparser/queryparser.cc,tests/queryparsertest.cc: Throw new
27069           Error subclass QueryParserError instead of throwing const char *
27070           (fixes bug#101).
27072 Tue Feb 20 10:37:54 GMT 2007  Olly Betts <olly@survex.com>
27074         * languages/steminternal.cc: p is never NULL once the class is
27075           successfully constructed, so just use Assert() to confirm this.
27077 Tue Feb 20 10:29:25 GMT 2007  Olly Betts <olly@survex.com>
27079         * queryparser/lemon.c: Fix compiler warnings.
27081 Mon Feb 19 18:50:12 GMT 2007  Olly Betts <olly@survex.com>
27083         * common/serialise-double.cc,net/remoteconnection.cc: Throw
27084           NetworkError rather than InternalError for invalid data received
27085           over the remote protocol.
27087 Mon Feb 19 18:12:21 GMT 2007  Olly Betts <olly@survex.com>
27089         * tests/internaltest.cc: Just disable serialisequery1 if the remote
27090           backend is disabled, like we do for serialiselength1 and
27091           serialisedoc1 rather than assuming InternalError is due to the
27092           code being disabled.
27094 Mon Feb 19 09:48:02 GMT 2007  Olly Betts <olly@survex.com>
27096         * docs/Makefile.am,docs/XapianAdminNotes.txt,docs/admin_notes.rst:
27097           Generated file "XapianAdminNotes.html" doesn't fit the naming
27098           conventions of other files at all, so renamed to "admin_notes.html".
27099           Rename the source to ".rst" so we can use an implicit rule for
27100           the conversion, in anticipation of other documentation in ReST
27101           format.
27103 Mon Feb 19 09:10:48 GMT 2007  Olly Betts <olly@survex.com>
27105         * docs/Makefile.am: Fix typos which stopped parallel make from working
27106           correctly in "docs" subdirectory.
27108 Sun Feb 18 22:36:46 GMT 2007  Olly Betts <olly@survex.com>
27110         * common/Makefile.mk,common/omstringstream.h,common/output.h,
27111           include/Makefile.mk,include/xapian/output.h: Move
27112           "<xapian/output.h>" to being an internal header in "common/" since
27113           it hasn't been included by "<xapian.h>" since 0.7.0.
27115 Sun Feb 18 22:18:33 GMT 2007  Olly Betts <olly@survex.com>
27117         * include/xapian/dbfactory.h: Add documentation comment for the "prog"
27118           form of Remote::open_writable().
27120 Sun Feb 18 19:31:20 GMT 2007  Olly Betts <olly@survex.com>
27122         * tests/queryparsertest.cc: Add test for "associative NEAR".
27124 Sun Feb 18 18:27:40 GMT 2007  Olly Betts <olly@survex.com>
27126         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
27127           Merge BackendManager::change_names_to_paths() into
27128           index_files_to_database() and make the latter a method of
27129           class BackendManager.
27130         * tests/harness/backendmanager.cc: Remove mention of muscat36 backends
27131           from error message listing valid backends.
27132         * tests/harness/backendmanager.h: Comment out prototypes for currently
27133           disabled methods getdb_inmemoryerr, getwritedb_inmemory, etc.
27135 Sat Feb 17 15:38:05 GMT 2007  Olly Betts <olly@survex.com>
27137         * backends/flint/flint_table.cc: new throws if allocation fails
27138           so we don't need to check the return value.
27140 Sat Feb 17 02:08:22 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27142         * backends/flint/flint_table.cc: Fix memory double-frees if
27143           FlintTable::close() is called twice on a table (without an open()
27144           being called in between).  This was happening after a transaction
27145           failed when the table was next opened.
27146         * backends/quartz/btree.cc: Fix double-frees, similarly.
27148 Fri Feb 16 20:11:13 GMT 2007  Olly Betts <olly@survex.com>
27150         * languages/compiler/generator.c: Add missing "~Z" for compatibility
27151           with C code generation (which we don't use for Xapian).
27153 Fri Feb 16 19:51:26 GMT 2007  Olly Betts <olly@survex.com>
27155         * queryparser/tclUniData.h,queryparser/utf8itor.h: The tcl unicode
27156           routines only have tables for characters in the BMP.  For other
27157           characters, assume they're word characters, but can't be forced to
27158           lowercase.
27160 Fri Feb 16 19:26:00 GMT 2007  Olly Betts <olly@survex.com>
27162         * queryparser/utf8itor.cc: Fix bug in decoding of 4 byte utf-8
27163           sequences - the returned value was 0x400000 too large!
27165 Thu Feb 15 19:37:26 GMT 2007  Olly Betts <olly@survex.com>
27167         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Keep
27168           embedded apostrophe's in terms rather than generating a phrase
27169           search for them.
27171 Thu Feb 15 18:42:49 GMT 2007  Olly Betts <olly@survex.com>
27173         * languages/compiler/generator.c,languages/steminternal.cc,
27174           languages/steminternal.h: Tweak the "grouping" functions to allow
27175           skipping past multiple occurrences and use this to implement "goto"
27176           or "gopast" followed by a grouping or "non" grouping more
27177           efficiently.
27179 Thu Feb 15 17:57:43 GMT 2007  Olly Betts <olly@survex.com>
27181         * languages/compiler/generator.c,languages/steminternal.cc,
27182           languages/steminternal.h: Inline lose_s().  Since lose_s()
27183           checks if p is NULL, remove checks prior to calling lose_s().
27184         * languages/steminternal.h: Cast from symbol * to int * via
27185           void * to try to suppress over-eager warnings about alignment.
27187 Thu Feb 15 12:43:04 GMT 2007  Olly Betts <olly@survex.com>
27189         * languages/stem.cc: Add support for two letter ISO 639 codes.
27191 Thu Feb 15 10:40:40 GMT 2007  Olly Betts <olly@survex.com>
27193         * docs/Makefile.am: Don't try to ship mkdoc.pl.
27195 Thu Feb 15 09:58:48 GMT 2007  Olly Betts <olly@survex.com>
27197         * docs/gen_codestructure_doc.in: Fix to work in a VPATH build.
27199 Thu Feb 15 09:54:55 GMT 2007  Olly Betts <olly@survex.com>
27201         * languages/compiler/generator.c: Fix Stem::get_description() to
27202           return the right string.
27204 Thu Feb 15 09:44:54 GMT 2007  Olly Betts <olly@survex.com>
27206         * docs/gen_codestructure_doc.in: Add links to viewvcs on
27207           svn.xapian.org.
27209 Thu Feb 15 09:26:07 GMT 2007  Olly Betts <olly@survex.com>
27211         * configure.ac,docs/Makefile.am,docs/gen_codestructure_doc.in,
27212           docs/mkdoc.pl,preautoreconf: Rework how code_structure.html
27213           is generated.  Nicer output, and the html document is now
27214           regenerated if any of the dir_contents files change.
27216 Thu Feb 15 07:43:39 GMT 2007  Olly Betts <olly@survex.com>
27218         * Makefile.am,bin/Makefile.mk,configure.ac,examples/Makefile.mk,
27219           makemanpage.in: Add "makemanpage" script which takes care of all
27220           the magic needed to generate a man page using help2man.  This
27221           script is written in perl, but so is help2man, and they're both
27222           only used in maintainer-mode.
27224 Thu Feb 15 06:33:41 GMT 2007  Olly Betts <olly@survex.com>
27226         * bin/Makefile.mk: Fix typos in man page generation rules.
27228 Thu Feb 15 06:30:54 GMT 2007  Olly Betts <olly@survex.com>
27230         * examples/Makefile.mk: Fix typos in previous commit.
27232 Thu Feb 15 06:03:35 GMT 2007  Olly Betts <olly@survex.com>
27234         * Makefile.am,configure.ac,examples/Makefile,examples/Makefile.am,
27235           examples/Makefile.mk: Convert examples subdirectory to use
27236           non-recursive make.  Fixes wishlist bug#97.
27238 Thu Feb 15 05:48:38 GMT 2007  Olly Betts <olly@survex.com>
27240         * Makefile.am,bin/Makefile,bin/Makefile.am,bin/Makefile.mk,
27241           configure.ac: Convert bin subdirectory to use non-recursive make.
27243 Wed Feb 14 19:08:49 GMT 2007  Olly Betts <olly@survex.com>
27245         * tests/Makefile.am: There's no longer a need to remove the temporary
27246           directories for muscat36 backend tests, since we've removed the
27247           muscat36 backend code.
27249 Wed Feb 14 18:58:31 GMT 2007  Olly Betts <olly@survex.com>
27251         * languages/Makefile.mk: Move adjusting of INCLUDES to the top of the
27252           file.
27253         * queryparser/Makefile.mk: Adjust INCLUDES for a VPATH build.
27255 Wed Feb 14 18:38:16 GMT 2007  Olly Betts <olly@survex.com>
27257         * languages/Makefile.mk: Need -Ilanguages for VPATH builds from SVN.
27259 Wed Feb 14 18:37:54 GMT 2007  Olly Betts <olly@survex.com>
27261         * languages/steminternal.cc,languages/steminternal.h: Add
27262           SET_CAPACITY() macro.
27264 Wed Feb 14 17:39:50 GMT 2007  Olly Betts <olly@survex.com>
27266         * languages/steminternal.h: Don't cast away const.
27268 Wed Feb 14 17:14:14 GMT 2007  Olly Betts <olly@survex.com>
27270         * include/Makefile: Add stub makefile.
27272 Wed Feb 14 17:12:41 GMT 2007  Olly Betts <olly@survex.com>
27274         * configure.ac: ac_abs_srcdir, etc aren't available in configure
27275           itself, so we have to do the work ourselves.
27277 Wed Feb 14 12:54:26 GMT 2007  Olly Betts <olly@survex.com>
27279         * configure.ac: Fix typo in last commit.
27281 Wed Feb 14 12:19:18 GMT 2007  Olly Betts <olly@survex.com>
27283         * Makefile.am,configure.ac,languages/Makefile.mk: Define automake
27284           conditional VPATH_BUILD so we can only add extra entries to
27285           INCLUDES in VPATH builds.
27287 Wed Feb 14 11:59:02 GMT 2007  Olly Betts <olly@survex.com>
27289         * languages/Makefile.mk: Ick, we need $(top_srcdir)/languages in
27290           INCLUDES as the generated sources need to find non-generated
27291           headers.
27293 Wed Feb 14 11:46:43 GMT 2007  Olly Betts <olly@survex.com>
27295         * backends/database.cc,backends/remote/remote-database.cc,
27296           common/database.h,common/remote-database.h,common/remoteprotocol.h,
27297           docs/remote_protocol.html,net/remoteserver.cc: Support
27298           get_lastdocid() on remote databases.
27300 Wed Feb 14 11:20:33 GMT 2007  Olly Betts <olly@survex.com>
27302         * Makefile.am,configure.ac,include/Makefile.am,include/Makefile.mk:
27303           Convert include subdirectory to use non-recursive make.
27305 Wed Feb 14 11:05:00 GMT 2007  Olly Betts <olly@survex.com>
27307         * Makefile.am,bin/Makefile.am,configure.ac,examples/Makefile.am,
27308           getopt/Makefile,getopt/Makefile.am,getopt/Makefile.mk,
27309           tests/Makefile.am: Convert getopt subdirectory to use non-recursive
27310           make.
27312 Wed Feb 14 10:56:15 GMT 2007  Olly Betts <olly@survex.com>
27314         * tests/harness/Makefile.am: Remove as no longer used.
27316 Wed Feb 14 10:38:27 GMT 2007  Olly Betts <olly@survex.com>
27318         * backends/quartz/Makefile.mk,bin/Makefile.am,tests/Makefile.am: Move
27319           backends/quartz/libbtreecheck.la to libquartzcheck.la.
27320         * getopt/Makefile.am: Distribute getopt/dir_contents.
27322 Wed Feb 14 10:20:14 GMT 2007  Olly Betts <olly@survex.com>
27324         * preautoreconf: Handle variables set with "+=" and ":=".
27326 Wed Feb 14 10:16:29 GMT 2007  Olly Betts <olly@survex.com>
27328         * include/xapian/database.h: Add documentation comments for DB_*
27329           constants.
27331 Wed Feb 14 10:11:37 GMT 2007  Olly Betts <olly@survex.com>
27333         * examples/.cvsignore: Remove lingering relic of CVS days.
27335 Wed Feb 14 10:07:14 GMT 2007  Olly Betts <olly@survex.com>
27337         * Makefile.am,configure.ac,net/Makefile,net/Makefile.am,
27338           net/Makefile.mk: Convert net subdirectory to use non-recursive make.
27339           Now libxapian.la is built completely non-recursively.
27340         * docs/Makefile.am,docs/mkdoc.pl: Fix mkdoc.pl to handle directories
27341           which use non-recursive make.
27343 Wed Feb 14 09:10:27 GMT 2007  Olly Betts <olly@survex.com>
27345         * Makefile.am,backends/Makefile,backends/Makefile.am,
27346           backends/Makefile.mk,backends/flint/Makefile,
27347           backends/flint/Makefile.am,backends/flint/Makefile.mk,
27348           backends/inmemory/Makefile,backends/inmemory/Makefile.am,
27349           backends/inmemory/Makefile.mk,backends/multi/Makefile,
27350           backends/multi/Makefile.am,backends/multi/Makefile.mk,
27351           backends/quartz/Makefile,backends/quartz/Makefile.am,
27352           backends/quartz/Makefile.mk,backends/remote/Makefile,
27353           backends/remote/Makefile.am,backends/remote/Makefile.mk,
27354           configure.ac: Convert backends subdirectory (and subdirectories
27355           thereof) to non-recursive make.
27357 Wed Feb 14 08:49:02 GMT 2007  Olly Betts <olly@survex.com>
27359         * preautoreconf: Fix handling of backslash at the end of a line in
27360           included files.
27361         * preautoreconf: Our handling of which directory a nested include is
27362           sought from is consistent with automake, so remove the FIXME comment
27363           about it.
27365 Wed Feb 14 08:07:07 GMT 2007  Olly Betts <olly@survex.com>
27367         * Makefile.am,configure.ac,matcher/Makefile,matcher/Makefile.am,
27368           matcher/Makefile.mk: Convert matcher subdirectory to non-recursive
27369           make.
27371 Wed Feb 14 07:50:19 GMT 2007  Olly Betts <olly@survex.com>
27373         * Makefile.am,api/Makefile,api/Makefile.am,api/Makefile.mk,
27374           configure.ac: Convert api subdirectory to non-recursive make.
27376 Wed Feb 14 07:48:45 GMT 2007  Olly Betts <olly@survex.com>
27378         * preautoreconf: No need to `chdir' to the current directory.
27379         * preautoreconf: Don't bother looking at the file we generate
27380           when considering included files.
27381         * preautoreconf: Add included files to the dependency list.
27383 Wed Feb 14 07:38:19 GMT 2007  Olly Betts <olly@survex.com>
27385         * preautoreconf: Generate dummy rules for the files which
27386           preautoreconf depends on, so that "make" still works if one
27387           of them is removed (by build system restructuring).
27389 Wed Feb 14 07:24:07 GMT 2007  Olly Betts <olly@survex.com>
27391         * common,languages,tests/harness: svn:ignore: We do need to ignore
27392           .dirstamp files after all.
27394 Wed Feb 14 07:22:29 GMT 2007  Olly Betts <olly@survex.com>
27396         * Makefile.am,common/Makefile,common/Makefile.am,common/Makefile.mk,
27397           configure.ac: Convert common subdirectory to non-recursive make.
27399 Wed Feb 14 07:03:27 GMT 2007  Olly Betts <olly@survex.com>
27401         * .: svn:ignore: Ignore all vim swapfiles.  No need to ignore .deps
27402           now that dummy.cc is history.
27404 Wed Feb 14 06:34:44 GMT 2007  Olly Betts <olly@survex.com>
27406         * tests/stemtest.cc: Force ASCII capitals in sample vocabulary to
27407           lower case before stemming.
27409 Wed Feb 14 06:14:42 GMT 2007  Olly Betts <olly@survex.com>
27411         * Makefile.am,configure.ac,queryparser/Makefile,
27412           queryparser/Makefile.am,queryparser/Makefile.mk:
27413           Convert queryparser subdirectory to non-recursive make.
27414         * Makefile.am: Enable automake option "subdir-objects" so
27415           that built objects for a non-recursively made directory
27416           go into that directory.
27418 Wed Feb 14 06:12:29 GMT 2007  Olly Betts <olly@survex.com>
27420         * tests/harness: svn:ignore: remove .dirstamp and depcomp.
27422 Wed Feb 14 06:10:44 GMT 2007  Olly Betts <olly@survex.com>
27424         * languages/Makefile.mk: In maintainer-mode, remove snowball and
27425           generated allsnowballheaders.h on "make clean".  When not in
27426           maintainer-mode, remove them on "make maintainer-clean".
27427         * languages/: svn:ignore all vim swap files.
27429 Wed Feb 14 05:54:32 GMT 2007  Olly Betts <olly@survex.com>
27431         * languages/Makefile.mk: Distribute the stub languages/Makefile.
27432         * tests/harness/Makefile.mk: No need to explicitly distribute
27433           harness/Makefile.mk.
27435 Wed Feb 14 05:52:08 GMT 2007  Olly Betts <olly@survex.com>
27437         * languages/Makefile.mk: Distribute languages/dir_contents.
27439 Wed Feb 14 05:44:10 GMT 2007  Olly Betts <olly@survex.com>
27441         * api/Makefile.am,api/vectortermlist.h,common/Makefile.am,
27442           queryparser/Makefile.am: We use vectortermlist.h from the
27443           queryparser directory, so move it from api to common.
27445 Wed Feb 14 05:27:13 GMT 2007  Olly Betts <olly@survex.com>
27447         * languages/Makefile.mk,languages/stem.cc: Disable finnish and lovins
27448           temporarily, until I sort out merging the support for among with
27449           functions properly.
27451 Wed Feb 14 05:24:36 GMT 2007  Olly Betts <olly@survex.com>
27453         * languages/steminternal.cc,languages/steminternal.h: Temporarily
27454           back out the changes to handling of among with functions.
27456 Tue Feb 13 19:11:57 GMT 2007  Olly Betts <olly@survex.com>
27458         * tests/harness/testsuite.cc: If a test throws an unknwon exception,
27459           say so in the test failure message.  If it throws std::string,
27460           report the first 40 character (or first line) of the string.
27462 Tue Feb 13 17:48:11 GMT 2007  Olly Betts <olly@survex.com>
27464         * languages/steminternal.cc: Fix decoding of 3 byte utf-8 sequences.
27466 Tue Feb 13 17:47:22 GMT 2007  Olly Betts <olly@survex.com>
27468         * languages/Makefile.mk: Fix dependency of generated
27469           languages/allsnowballheaders.h to be on languages/Makefile.mk.
27471 Tue Feb 13 17:46:42 GMT 2007  Olly Betts <olly@survex.com>
27473         * languages/compiler/generator.c: Fix missing ";" in generated
27474           code.
27476 Tue Feb 13 15:40:15 GMT 2007  Olly Betts <olly@survex.com>
27478         * languages/Makefile.mk,languages/compiler/driver.c,
27479           languages/compiler/generator.c,languages/compiler/header.h:
27480           Changes towards getting C++ generation working.
27482 Tue Feb 13 15:39:23 GMT 2007  Olly Betts <olly@survex.com>
27484         * languages/steminternal.cc,languages/steminternal.h: Revert to match
27485           currently generated code.
27487 Tue Feb 13 14:09:31 GMT 2007  Olly Betts <olly@survex.com>
27489         * languages/compiler/: Sync with current snowball SVN + submitted
27490           patches.
27492 Tue Feb 13 10:53:34 GMT 2007  Olly Betts <olly@survex.com>
27494         * tests/harness/backendmanager.cc: If we fail to start
27495           xapian-tcpsrv, report why (give errno or the error output).
27497 Tue Feb 13 10:28:43 GMT 2007  Olly Betts <olly@survex.com>
27499         * tests/remotetest.cc: Prune test cases which are redundant now that
27500           apitest tests remote and remotetcp: apitest's simplequery1 performs
27501           a superset of what netmatch1 and tcpmatch1 do; apitest's multidb1
27502           performs a superset of what netmatch2 does; and the coverage given
27503           by our netexpand1 is provided by various apitest tests.
27505 Mon Feb 12 06:36:58 GMT 2007  Olly Betts <olly@survex.com>
27507         * languages/compiler/generator.c: In backward mode, among
27508           can't match if there are fewer characters before the current
27509           position than the minimum length string in the among.
27511 Mon Feb 12 05:56:31 GMT 2007  Olly Betts <olly@survex.com>
27513         * configure.ac: Make sure that the languages subdirectory exists in
27514           case this is a fresh SVN checkout and srcdir != builddir.
27516 Mon Feb 12 05:46:49 GMT 2007  Olly Betts <olly@survex.com>
27518         * languages/Makefile.mk,languages/compiler/driver.c: -DDISABLE_JAVA
27519           to not compile in Java support (inline with Richard's patch to
27520           the upstream snowball sources).
27521         * languages/Makefile.mk: Remove inaccurate comment about processing
27522           with automake.  Fix -n option we pass (remove directory name).
27523           Use "" instead of <> in generated file allsnowballheaders.h.  Remove
27524           snowball compiler and generated files on "make maintainer-clean".
27526 Mon Feb 12 01:08:50 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27528         * languages/compiler/header.h: Remove commented out header for
27529           sort() prototype, to match snowball sources.
27531 Sun Feb 11 19:28:50 GMT 2007  Olly Betts <olly@survex.com>
27533         * languages/api.h,languages/header.h: Remove headers which are no
27534           longer used.
27536 Sun Feb 11 19:26:50 GMT 2007  Olly Betts <olly@survex.com>
27538         * languages/api.cc,languages/utilities.cc: Remove sources which are
27539           no longer used.
27541 Sun Feb 11 16:22:16 GMT 2007  Olly Betts <olly@survex.com>
27543         * languages/compiler/driver.c: Use #ifdef instead of #if.
27545 Sun Feb 11 16:20:44 GMT 2007  Olly Betts <olly@survex.com>
27547         * languages/compiler/driver.c: Disable java support, since we don't
27548           use it and it means one less source file.
27550 Sun Feb 11 16:08:49 GMT 2007  Olly Betts <olly@survex.com>
27552         * languages/compiler/analyser.c,languages/compiler/header.h: Use qsort
27553           instead the snowball's own sort implementation to reduce the number
27554           of source files we need for the snowball compiler.
27556 Sun Feb 11 16:04:19 GMT 2007  Olly Betts <olly@survex.com>
27558         * languages/Makefile: Add stub Makefile to allow "make", "make check",
27559           and "make clean" from the languages subdirectory.
27561 Sun Feb 11 16:00:51 GMT 2007  Olly Betts <olly@survex.com>
27563         * languages/compiler/analyser.c: Cast the arguments, not the function
27564           pointer as ISO C allows `void*' and `struct amongvec*' to have
27565           different representations.
27567 Sun Feb 11 15:43:49 GMT 2007  Olly Betts <olly@survex.com>
27569         * languages/compiler/space.c: Fix a typo of a function name in a
27570           comment.
27572 Sun Feb 11 15:23:51 GMT 2007  Olly Betts <olly@survex.com>
27574         * languages/compiler/header.h,languages/compiler/tokeniser.c: Give
27575           syswords and syswords2 .h extensions for clarity.
27577 Sun Feb 11 15:17:28 GMT 2007  Olly Betts <olly@survex.com>
27579         * Makefile.am,api/Makefile.am,api/omstem.cc,configure.ac,dummy.cc,
27580           languages/Makefile.am,languages/Makefile.mk,languages/compiler/,
27581           languages/: Update the stemmers to use utf-8 and the latest snowball
27582           version (based on r421 from snowball SVN).  Further patches are
27583           required to generate C++ classes from snowball, I'm checking in the
27584           vanilla compiler first to help us track the patches.
27586 Sun Feb 11 14:16:35 GMT 2007  Olly Betts <olly@survex.com>
27588         * api/omstem.cc: Add definition for Xapian::Stem::stem_word().
27590 Sun Feb 11 13:15:11 GMT 2007  Olly Betts <olly@survex.com>
27592         * tests/api_anydb.cc,tests/api_db.cc,tests/api_posdb.cc: Prefer
27593           Xapian::Stem::operator() to Xapian::Stem::stem_word().
27595 Sat Feb 10 19:10:31 GMT 2007  Olly Betts <olly@survex.com>
27597         * queryparser/queryparser.lemony: Prefer Xapian::Stem::operator() to
27598           Xapian::Stem::stem_word().
27600 Sat Feb 10 18:34:41 GMT 2007  Olly Betts <olly@survex.com>
27602         * include/xapian/stem.h: Make Xapian::Stem::Internal as @internal for
27603           doxygen.  Mark Xapian::Stem::stem_word() as deprecated.
27605 Sat Feb 10 18:34:05 GMT 2007  Olly Betts <olly@survex.com>
27607         * HACKING: Add brief note about coding style.
27609 Sat Feb 10 18:24:28 GMT 2007  Olly Betts <olly@survex.com>
27611         * preautoreconf: Add licence and copyright notice.  Add support for
27612           automake include directives.  Warn about unknown variables.
27614 Sat Feb 10 18:19:26 GMT 2007  Olly Betts <olly@survex.com>
27616         * tests/harness/testsuite.cc: Conditionalise all the valgrind specific
27617           code on RUNNING_ON_VALGRIND to minimise the overhead if valgrind
27618           is installed but we aren't running tests under it.
27620 Sat Feb 10 17:42:05 GMT 2007  Olly Betts <olly@survex.com>
27622         * tests/harness/index_utils.cc,tests/stemtest.cc: Prefer
27623           Xapian::Stem::operator() to Xapian::Stem::stem_word().
27625 Sat Feb 10 17:27:27 GMT 2007  Olly Betts <olly@survex.com>
27627         * examples/delve.cc,examples/simpleindex.cc,examples/simplesearch.cc:
27628           Prefer Xapian::Stem::operator() to Xapian::Stem::stem_word().
27630 Wed Feb 07 04:23:09 GMT 2007  Olly Betts <olly@survex.com>
27632         * queryparser/queryparser.lemony,queryparser/queryparser.lt: Use
27633           new/delete instead of malloc/free to allocate struct yyParser
27634           and pass it around as "yyParser *" instead of "void *".
27636 Wed Feb 07 03:44:16 GMT 2007  Olly Betts <olly@survex.com>
27638         * include/xapian/queryparser.h,queryparser/queryparser.cc,
27639           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
27640           tests/queryparsertest.cc: Allow the default prefix to be specified
27641           so you can use QueryParser to parse a text entry box for "author"
27642           etc.
27643         * configure.ac: Note API change for LIBRARY_VERSION_INFO updating.
27645 Wed Feb 07 01:14:37 GMT 2007  Olly Betts <olly@survex.com>
27647         * common/safeunistd.h: Add '#include <sys/types.h>' so that we've seen
27648           a typedef for off_t before we hide it behind a #define to avoid a
27649           compilation error if <sys/types.h> or <wchar.h> is included after
27650           we are.
27652 Tue Feb 06 06:26:24 GMT 2007  Olly Betts <olly@survex.com>
27654         * INSTALL: Mention MSVC makefiles.  Note that we still test build with
27655           GCC 2.95.4 even though we recommend using a newer version.
27657 Tue Feb 06 06:13:48 GMT 2007  Olly Betts <olly@survex.com>
27659         * AUTHORS,HACKING,backends/flint/,backends/quartz/btree.cc,
27660           backends/quartz/quartz_database.cc,bin/quartzcompact.cc,
27661           bin/xapian-compact.cc,common/,tests/btreetest.cc,
27662           tests/harness/backendmanager.cc,tests/harness/testsuite.cc,
27663           tests/quartztest.cc: Support large files in stat() and fstat()
27664           when building with MSVC.  Factor MSVC specific header magic
27665           into new replacement headers "safeunistd.h" and "safesysstat.h".
27666         * AUTHORS: Thanks to Charlie Hull for the original patch to support
27667           stat() on large files with MSVC (and past MSVC related stuff!)
27669 Sat Jan 13 02:06:15 GMT 2007  Olly Betts <olly@survex.com>
27671         * include/xapian/database.h: Add pointer from
27672           WritableDatabase::add_document() to replace_document() in case the
27673           user wants to specify the docid themselves.  Also improve the
27674           wording of the warning about changes not being committed to disk
27675           right away.
27677 Tue Jan  2 15:49:43 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27679         * backends/quartz/btree.cc,backends/flint/flint_io.h: Patches from
27680           Charlie Hull to allow 2GB+ index files work when compiled using
27681           Visual C++.
27683 Sat Dec 30 13:48:54 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27685         * queryparser/queryparser.lemony,include/xapian/queryparser.h:
27686           Add support for partially entered queries, to better support
27687           incremental searching.  Also fix a typo in a comment.
27688         * docs/queryparser.html: Document the new partial query option, and
27689           what it's useful for.
27690         * tests/queryparsertest.cc: Test partial queries.
27692 Wed Dec 20 16:42:24 GMT 2006  Olly Betts <olly@survex.com>
27694         * PLATFORMS: Updated with success reports from debian buildds.
27696 Wed Dec 20 00:53:19 GMT 2006  Olly Betts <olly@survex.com>
27698         * api/omqueryinternal.cc: Fix "unused parameter" warning when building
27699           with the remote backend disabled.  Also update a comment - the query
27700           serialisation isn't really one line of text since we now store term
27701           names with the length prefixed, and they can contain arbitrary
27702           characters including linefeeds.
27704 Tue Dec 19 20:40:27 GMT 2006  Olly Betts <olly@survex.com>
27706         * tests/Makefile.am: Need libgetopt.la for test programs which
27707           use the test harness for platforms where GNU getopt isn't in
27708           the standard C library.
27710 Tue Dec 19 20:34:16 GMT 2006  Olly Betts <olly@survex.com>
27712         * queryparser/utf8itor.h: Need <string.h> for strlen.
27714 Tue Dec 19 16:35:58 GMT 2006  Olly Betts <olly@survex.com>
27716         * common/omstringstream.h: Fix "warning: comparison between signed and
27717           unsigned".
27719 Tue Dec 19 15:33:19 GMT 2006  Olly Betts <olly@survex.com>
27721         * backends/flint/flint_positionlist.cc: Turn the second (and
27722           potentially slightly deeper) recursion in encode_interpolative
27723           and decode_interpolative into explicit iteration in case the
27724           compiler fails to optimise the tail recursion.
27726 Mon Dec 18 03:39:41 GMT 2006  Olly Betts <olly@survex.com>
27728         * matcher/: Add ExactPhrasePostList to handle the common special case
27729           where the window size of OP_PHRASE is equal to the number of terms
27730           in the phrase.
27732 Mon Dec 18 02:21:32 GMT 2006  Olly Betts <olly@survex.com>
27734         * tests/harness/testsuite.cc: Remove accidentally committed "NO
27735           PROBLEM" message when running under valgrind.
27737 Wed Dec 13 21:15:57 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27739         * include/xapian/document.h: Another tweak to the documentation
27740           comment.
27742 Wed Dec 13 18:07:51 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27744         * include/xapian/document.h: Improve documentation comment for
27745           Document::get_value().
27747 Wed Dec 13 03:38:37 GMT 2006  Olly Betts <olly@survex.com>
27749         * include/xapian/enquire.h: In the description of the TradWeight
27750           class, replace reference to "Muscat 3.6" (meaningless to most
27751           people) with a generally useful explanation.
27753 Wed Dec 13 03:27:14 GMT 2006  Olly Betts <olly@survex.com>
27755         * docs/: svn:ignore XapianAdminNotes.html.
27757 Wed Dec 13 03:16:44 GMT 2006  Olly Betts <olly@survex.com>
27759         * configure.ac: Yet more valgrind test improvements!  Give up testing
27760           valgrind features if VALGRIND_COUNT_LEAKS isn't supported.  Fix the
27761           common shortcut case to not try logging to /dev/null.<pid> so it
27762           can actually get used.  Also don't use /dev/null in the --logfile
27763           case either as it will probably cause problems there too (though I
27764           don't have an old enough valgrind handy to verify this).  Also report
27765           results of valgrind tests in a couple more places.
27767 Wed Dec 13 00:31:04 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27769         * docs/Makefile.am: New rules for generating XapianAdminNotes.html
27770           from XapianAdminNotes.txt
27771         * configure.ac: Check for rst2html, and require it in maintainer
27772           mode.
27773         * HACKING: document rst2html as a requirement.
27775 Tue Dec 12 23:58:13 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27777         * docs/XapianAdminNotes.txt: Add new document giving an
27778           introduction to Xapian concepts for system administrators.
27780 Tue Dec 12 21:33:38 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27782         * docs/quartzdesign.html: Fix an unmatched bracket.
27784 Tue Dec 12 21:18:54 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27786         * backends/quartz/quartz_alldocspostlist.cc: Fix memory leak
27787           discovered by valgrind in QuartzAllDocsPostList constructor: was
27788           failing to delete the Bcursor.
27790 Tue Dec 12 21:05:47 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27792         * queryparser/queryparser.lemony: Fix parsing of queries of the
27793           form "+foo* bar", where no terms in the database match the
27794           wildcard "foo*", but bar does exist in the database.  Previously,
27795           such queries would be equivalent to "bar".  Now, they will match
27796           no documents.  This required using a new "QpQuery" object
27797           internally so we can distinguish between deliberately "match
27798           nothing" queries, and empty lists of queries.
27799         * tests/api_anydb.cc,tests/queryparsertest.cc: Test above fix, and
27800           general parsing of wildcard queries with +terms, and test
27801           performing a match with a query resulting from a wildcard query
27802           which matches nothing.
27804 Tue Dec 12 21:05:15 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27806         * tests/api_nodb.cc,api/omqueryinternal.cc,api/omquery.cc: Fix some
27807           copyright assertions I missed.
27809 Tue Dec 12 19:38:39 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27811         * include/xapian/query.h,api/omqueryinternal.cc,api/omquery.cc: Add
27812           two static Query objects: Xapian::Query::MatchAll and
27813           Xapian::Query::MatchNothing, which match all documents and no
27814           documents in the database, respectively.  (Equivalent to
27815           Query("") and Query()).  Allow empty queries such as MatchNothing
27816           to be combined with other queries.  Change methods of
27817           Xapian::Query::Internal to use pointers to query internals
27818           instead of references, so they can handle the NULL pointer
27819           internals of an empty query.
27820         * tests/api_nodb.cc: Test combining of MatchNothing queries with
27821           other queries with OP_AND and OP_OR.
27823 Tue Dec 12 20:01:58 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27825         * configure.ac: Fix valgrind better: --log-file-exactly isn't what
27826           is wanted, because it messes up if multiple processes are traced.
27827           Instead, use a temporary file instead of /dev/null, so we don't
27828           get the permission denied error.
27830 Tue Dec 12 19:15:20 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27832         * configure.ac: Fix detection of valgrind for newer valgrind.  My
27833           version of valgrind (valgrind-3.2.1-Debian, from ubuntu feisty)
27834           treats the parameter supplied to --log-file as a base path, and
27835           appends a process ID. This caused the test for the log-file
27836           option to fail with permission denied errors due to trying to
27837           write to files of the form '/dev/null.16098'.  Solution - test
27838           for the --log-file-exactly option, and use that.  Also, change
27839           configure.ac to display the result of the tests for valgrind; was
27840           displaying that it had found it, but not mentioning that it
27841           couldn't make it work.
27843 Tue Dec 05 21:12:12 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27845         * include/xapian/query.h,api/omqueryinternal.cc: Fix query
27846           serialisation bug.  Was failing to propagate "curpos" parameter
27847           across subqueries, resulting in incorrect serialisation of
27848           termpositions.
27849         * tests/internaltest.cc: Regression test for this bug.
27851 Tue Dec 05 01:34:07 GMT 2006  Olly Betts <olly@survex.com>
27853         * HACKING: Clarify how XAPIAN_DEBUG_FLAGS works.
27855 Tue Dec 05 01:23:12 GMT 2006  Olly Betts <olly@survex.com>
27857         * examples/quest.cc: Add "--stemmer" option to allow stemming language
27858           to be set, or stemming to be disabled.
27860 Sun Dec 03 00:34:27 GMT 2006  Olly Betts <olly@survex.com>
27862         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Add entries
27863           to the "unstem" map for prefixed boolean filters (e.g. type:html).
27864           Also don't corrupt non-ASCII characters in a prefixed boolean
27865           filter.
27867 Sat Nov 25 04:17:23 GMT 2006  Olly Betts <olly@survex.com>
27869         * backends/flint/flint_database.cc,backends/flint/flint_version.cc:
27870           The "my_fls()" change actually results in a different interpolative
27871           encoding in a few cases - the old encoding could vary between
27872           architectures so we have to change it.  So bump the FLINT_VERSION
27873           and change the "flicklock" file to be "flintlock" as it should have
27874           been all along!
27876 Wed Nov 22 18:55:42 GMT 2006  Olly Betts <olly@survex.com>
27878         * xapian-config.in: Improve --version output so that help2man produces
27879           a better man page.
27881 Mon Nov 20 07:21:07 GMT 2006  Olly Betts <olly@survex.com>
27883         * backends/flint/flint_positionlist.cc: Fix another off-by-one
27884           error (> should be >=).
27886 Mon Nov 20 07:12:11 GMT 2006  Olly Betts <olly@survex.com>
27888         * backends/flint/flint_positionlist.cc: Fix off-by-one error in code
27889           which calls my_fls().
27891 Sat Nov 18 08:32:08 GMT 2006  Olly Betts <olly@survex.com>
27893         * backends/flint/flint_positionlist.cc: "const static" -> "static
27894           const".
27896 Sat Nov 18 08:05:17 GMT 2006  Olly Betts <olly@survex.com>
27898         * backends/flint/flint_positionlist.cc: Make decode_interpolative
27899           a member function of BitReader.
27901 Sat Nov 18 07:45:19 GMT 2006  Olly Betts <olly@survex.com>
27903         * backends/flint/flint_positionlist.cc: Add highly optimised fls()
27904           implementation and make use of it.
27906 Thu Nov 16 04:22:36 GMT 2006  Olly Betts <olly@survex.com>
27908         * m4/xapian.m4: If XAPIAN_CONFIG wasn't specified and xapian-config
27909           wasn't found, see if the library seems to be present - if so give
27910           a different error message which suggests the user needs to install
27911           a -dev or -devel package.
27913 Thu Nov 16 02:11:34 GMT 2006  Olly Betts <olly@survex.com>
27915         * docs/install.html: omega tarball is now xapian-omega.
27917 Tue Nov 14 22:42:05 GMT 2006  Olly Betts <olly@survex.com>
27919         * tests/harness/Makefile: Add static Makefile so you can make all,
27920           check, and clean from the subdirectory.
27921         * tests/harness/Makefile.mk: Ship Makefile.mk and Makefile.
27923 Tue Nov 14 21:53:45 GMT 2006  Olly Betts <olly@survex.com>
27925         * tests/: Remove muscat36 temporary directories from svn:ignore
27926           property.
27928 Tue Nov 14 19:47:30 GMT 2006  Olly Betts <olly@survex.com>
27930         * configure.ac,tests/Makefile.am,tests/harness/Makefile.mk: Use
27931           non-recursive make to build the test harness, so it only gets
27932           built if "make check" is run.
27934 Tue Nov 14 19:43:48 GMT 2006  Olly Betts <olly@survex.com>
27936         * tests/quartztest.cc: Removed unused static function unlink_table.
27938 Tue Nov 14 17:41:26 GMT 2006  Olly Betts <olly@survex.com>
27940         * include/xapian/queryparser.h,queryparser/queryparser.lemony,
27941           tests/queryparsertest.cc: Add QueryParser::FLAG_PURE_NOT to allow
27942           pure NOT queries to be enabled (they are now disabled by default).
27944 Tue Nov 14 04:19:40 GMT 2006  Olly Betts <olly@survex.com>
27946         * backends/database.cc,backends/flint/dir_contents,
27947           backends/quartz/dir_contents,docs/overview.html,
27948           docs/quartzdesign.html,docs/scalability.html: Make flint the default
27949           backend.
27951 Tue Nov 14 03:25:19 GMT 2006  Olly Betts <olly@survex.com>
27953         * tests/api_nodb.cc: Xapian::Query("") now builds a query which
27954           matches all documents rather than throwing InvalidArgumentError
27955           so fix emptyquery1 test.
27957 Tue Nov 14 02:03:29 GMT 2006  Olly Betts <olly@survex.com>
27959         * api/omdocument.cc: Tweak OmDocumentTerm::add_position() so that
27960           adding position 0 to an empty termlist takes the shortcut.
27962 Mon Nov 13 05:46:15 GMT 2006  Olly Betts <olly@survex.com>
27964         * docs/queryparser.html: Document the new pure NOT feature.
27966 Mon Nov 13 05:24:30 GMT 2006  Olly Betts <olly@survex.com>
27968         * api/omqueryinternal.cc,queryparser/queryparser.lemony,
27969           tests/queryparsertest.cc: Allow "pure NOT" queries - e.g.
27970           "NOT apples".  Fixes bug #99.
27972 Mon Nov 13 04:54:04 GMT 2006  Olly Betts <olly@survex.com>
27974         * api/omqueryinternal.cc: Undo changes accidentally committed in last
27975           check-in.
27977 Mon Nov 13 04:47:57 GMT 2006  Olly Betts <olly@survex.com>
27979         * api/omqueryinternal.cc,backends/Makefile.am,backends/database.cc,
27980           backends/muscat36/,configure.ac,docs/overview.html,
27981           docs/quartzdesign.html,docs/tests.html,include/xapian/dbfactory.h,
27982           include/xapian/version_h.cc,tests/api_anydb.cc,tests/apitest.cc,
27983           tests/harness/backendmanager.cc,tests/harness/backendmanager.h,
27984           tests/harness/index_utils.cc: Remove support for the old Muscat 3.6
27985           backends.
27987 Mon Nov 13 04:02:27 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27989         * common/database.h,api/omdatabase.cc,
27990           backends/inmemory/inmemory_database.cc,
27991           backends/inmemory/inmemory_database.h,
27992           backends/quartz/Makefile.am,backends/quartz/quartz_database.cc,
27993           backends/quartz/quartz_alldocspostlist.h,
27994           backends/quartz/quartz_alldocspostlist.cc,
27995           backends/flint/Makefile.am,backends/flint/flint_database.cc,
27996           backends/flint/flint_alldocspostlist.cc,
27997           backends/flint/flint_alldocspostlist.h:
27998           Implement posting lists which return a list of all documents in
27999           the database.  Such a posting list is obtained by calling
28000           Xapian::Database::postlist_begin() with an empty term (ie, "").
28001           Also, all Xapian::Database methods which take a termname now
28002           accept an empty term, and return appropriate values (ie,
28003           get_termfreq("") and get_collection_freq("") return the number of
28004           documents in the database, and term_exists("") returns true
28005           unless the database is empty).  Fixes Bug #47.
28006         * docs/quartzdesign.html: Document the inefficiency of all-document
28007           postlists for Quartz.
28008         * tests/api_anydb.cc,tests/api_db.cc,tests/api_wrdb.cc: Add tests for
28009           all-document postlists, and for passing an empty term to all the
28010           applicable database methods.  This defines the new tests
28011           allpostlist1, allpostlist2, emptyterm1, and emptyterm2.  These
28012           tests currently skip for the remote backend where postlist_begin()
28013           isn't yet implemented.
28015 Mon Nov 13 02:06:03 GMT 2006  Olly Betts <olly@survex.com>
28017         * Merge in utf8 branch:
28019         Thu Sep 14 23:49:48 BST 2006  Olly Betts <olly@survex.com>
28021                 * queryparser/,tests/queryparsertest.cc: Update to work with
28022                   UTF-8.  Stop normalising accents - the general sentiment
28023                   seems to be firmly against it, and where it is still
28024                   appropriate we should get the stemmers to do it.
28026 Sun Nov 12 22:38:56 GMT 2006  Olly Betts <olly@survex.com>
28028         * NEWS: Update from ChangeLog file in preparation for branching and
28029           merging.
28031 Sun Nov 12 19:32:01 GMT 2006  Olly Betts <olly@survex.com>
28033         * backends/flint/flint_database.cc,
28034           backends/inmemory/inmemory_database.cc,
28035           backends/inmemory/inmemory_database.h,
28036           backends/quartz/quartz_database.cc: Fix replace_document() not to
28037           lose positional information for a document if it is replaced with
28038           itself with unmodified postings.
28039         * tests/api_wrdb.cc: Add testcase replace_document5 as regression test
28040           for the replace_document bug.
28041         * backends/remote/remote-database.cc: Fix
28042           RemoteDatabase::has_positions() to refetch the cached value if it
28043           might be out of date.
28045 Sun Nov 12 17:07:00 GMT 2006  Olly Betts <olly@survex.com>
28047         * docs/Makefile.am: Need to increase pool_size further still to build
28048           sourcedoc.pdf (2000000 now).
28050 Sun Nov 12 16:24:15 GMT 2006  Olly Betts <olly@survex.com>
28052         * HACKING: Add "update ReleaseNotes on wiki" to release checklist.
28054 Sun Nov 12 16:23:19 GMT 2006  Olly Betts <olly@survex.com>
28056         * xapian.spec.in: Remove "." from end of "Summary:".  Package
28057           new man page for xapian-progsrv.
28059 Sun Nov 12 00:43:36 GMT 2006  Olly Betts <olly@survex.com>
28061         * docs/stemming.html: Update another "CVS" reference to say "SVN".
28063 Sun Nov 12 00:42:22 GMT 2006  Olly Betts <olly@survex.com>
28065         * docs/install.html: Update reference to "CVS" to say "SVN".
28067 Thu Nov 09 01:11:52 GMT 2006  Olly Betts <olly@survex.com>
28069         * HACKING: Reorder the release checklist a little.  I've fixed
28070           update_website.sh to get the latest version from version.php, so
28071           now only version.php needs updating.
28073 Thu Nov 09 00:17:35 GMT 2006  Olly Betts <olly@survex.com>
28075         * NEWS,PLATFORMS,configure.ac: Update for 0.9.9.
28077 Wed Nov 08 20:54:31 GMT 2006  Olly Betts <olly@survex.com>
28079         * xapian.spec.in: Apply changes from Neal Becker to run "autoreconf
28080           --force" so that we don't set rpath for /usr/lib64, and add "libs"
28081           to %post and %postun.
28082         * AUTHORS: Thank Neal Becker.
28084 Wed Nov 08 04:27:17 GMT 2006  Olly Betts <olly@survex.com>
28086         * docs/tests.html: Update for "testsuite" -> "tests/harness".  Mark
28087           paths and programs with <code>...</code>.  Improve wording in a few
28088           places.
28090 Wed Nov 08 03:10:37 GMT 2006  Olly Betts <olly@survex.com>
28092         * bin/xapian-tcpsrv.cc: Need '#include "safeerrno.h"' for EADDRINUSE.
28094 Wed Nov 08 02:36:59 GMT 2006  Olly Betts <olly@survex.com>
28096         * bin/Makefile.am,bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc:
28097           xapian-progsrv now uses getopt for option processing, and we can
28098           now generate a man page using help2man.  Fixes Bug #98.
28100 Wed Nov 08 01:47:19 GMT 2006  Olly Betts <olly@survex.com>
28102         * bin/xapian-tcpsrv.cc: If the port requested is in use, exit with
28103           code 69 (EX_UNAVAILABLE) which is useful if you're trying to
28104           automate launching of xapian-tcpsrv instances.
28105         * tests/harness/backendmanager.cc: If we can't start xapian-tcpsrv
28106           because the port is in use, try higher numbered ports.
28107         * tests/harness/testsuite.cc: Catch and report std::string exceptions.
28109 Tue Nov 07 22:40:58 GMT 2006  Olly Betts <olly@survex.com>
28111         * net/tcpclient.cc: Turn on TCP_NODELAY for the client too.
28113 Tue Nov 07 21:46:39 GMT 2006  Olly Betts <olly@survex.com>
28115         * net/tcpserver.cc: Turn on TCP_NODELAY for xapian-tcpsrv which
28116           increases throughput for the remote backend over tcp.
28118 Tue Nov 07 21:08:57 GMT 2006  Olly Betts <olly@survex.com>
28120         * backends/flint/flint_btreebase.cc: Add missing '#include'-s.
28122 Tue Nov 07 17:57:22 GMT 2006  Olly Betts <olly@survex.com>
28124         * backends/quartz/btree_base.cc: Add missing '#include'-s.
28126 Tue Nov 07 05:12:40 GMT 2006  Olly Betts <olly@survex.com>
28128         * backends/flint/flint_positionlist.h,backends/flint/flint_table.cc,
28129           backends/quartz/btree.cc: Add missing '#include <vector>' which
28130           "utils.h" was implicitly pulling in.
28131         * common/utils.h: Move '#include "safefcntl.h"' to more logical place.
28133 Tue Nov 07 04:18:27 GMT 2006  Olly Betts <olly@survex.com>
28135         * common/safefcntl.h: Actually add the new file to SVN.
28137 Tue Nov 07 03:36:59 GMT 2006  Olly Betts <olly@survex.com>
28139         * HACKING,backends/flint/flint_io.h,backends/flint/flint_lock.cc,
28140           backends/flint/flint_lock.h,backends/muscat36/io_system.cc,common/,
28141           net/tcpserver.cc,tests/harness/backendmanager.cc,
28142           tests/harness/testsuite.cc: Create "safefcntl.h" as a replacement
28143           for <fcntl.h> instead of using "utils.h" for this purpose, since
28144           "utils.h" pulls in many other things we often don't want.
28145         * common/utils.cc,common/utils.h,net/progclient.cc: Move split_words
28146           to progclient.cc which is the only user of it.  Rewrite it to not
28147           modified the string being split which risks being O(n^2).
28148         * net/progclient.cc,common/progclient.h: Pass std::string by const
28149           reference.
28150         * configure.ac: Fix DJGPP build (fork is present but always fails).
28152 Tue Nov 07 03:21:24 GMT 2006  Olly Betts <olly@survex.com>
28154         * matcher/biaspostlist.h: Don't need '#include "utils.h"'.
28156 Tue Nov 07 01:15:14 GMT 2006  Olly Betts <olly@survex.com>
28158         * common/c_strtod.cc: Remove file which was checked in but is unused!
28160 Mon Nov 06 15:24:02 GMT 2006  Olly Betts <olly@survex.com>
28162         * tests/internaltest.cc: Disable serialiselength1 and serialisedoc1
28163           when the remote backend is disabled.
28165 Mon Nov 06 15:23:40 GMT 2006  Olly Betts <olly@survex.com>
28167         * tests/Makefile.am: Fix typo in recent check-in.
28169 Mon Nov 06 01:43:37 GMT 2006  Olly Betts <olly@survex.com>
28171         * tests/Makefile.am: Need "harness" in "$(srcdir)" for VPATH builds to
28172           work.
28174 Sun Nov 05 19:55:26 GMT 2006  Olly Betts <olly@survex.com>
28176         * backends/quartz/Makefile.am: Remove explicit dependency of
28177           libbtreecheck.la on libxapian.la.  We always link in libxapian.la
28178           and the explicit dependency makes it hard to build things in a
28179           sane order.
28181 Sun Nov 05 19:29:17 GMT 2006  Olly Betts <olly@survex.com>
28183         * net/tcpserver.cc: Don't define on_SIGCHLD() unless we'll use it.
28184         * tests/harness/backendmanager.cc: Use a proper signal handler for
28185           SIGCHLD if we have waitpid() - POSIX leaves the semantics of
28186           SIG_IGN on SIGCHLD unspecified.
28188 Sun Nov 05 19:11:36 GMT 2006  Olly Betts <olly@survex.com>
28190         * backends/quartz/Makefile.am,backends/quartz/btreecheck.cc,
28191           backends/quartz/btreecheck.h,bin/Makefile.am,tests/Makefile.am,
28192           tests/harness/: Use _exit(0) instead of exit(0) in the child
28193           process which closes the pipe to xapian-tcpsrv in BackendManager
28194           since we don't want to call atexit functions from the child.  Move
28195           btreecheck stuff into backends/quartz.
28197 Sun Nov 05 17:12:05 GMT 2006  Olly Betts <olly@survex.com>
28199         * Makefile.am,bin/Makefile.am,configure.ac,tests/Makefile.am,
28200           tests/harness/Makefile.am,tests/harness/dir_contents,testsuite/:
28201           Move the testsuite harness from "testsuite/" to "tests/harness/".
28203 Sun Nov 05 16:36:56 GMT 2006  Olly Betts <olly@survex.com>
28205         * testsuite/backendmanager.cc,testsuite/backendmanager.h: Now needs
28206           <stdio.h>.  Set SIG_IGN for SIG_CHLD so we don't get zombie child
28207           processes.
28209 Sun Nov 05 03:53:24 GMT 2006  Olly Betts <olly@survex.com>
28211         * tests/apitest.cc: Make backendmanager static.
28213 Sun Nov 05 03:51:36 GMT 2006  Olly Betts <olly@survex.com>
28215         * bin/xapian-tcpsrv.cc: Output "Listening..." once the socket is
28216           open and read for connections.
28217         * testsuite/backendmanager.cc: Use popen() to run xapian-tcpsrv
28218           and wait for "Listening..." before returning rather than just
28219           sleeping for 1 second and hoping that's enough.
28221 Sun Nov 05 02:54:23 GMT 2006  Olly Betts <olly@survex.com>
28223         * tests/api_db.cc: Remove unnecessary inclusion of backendmanager.h.
28225 Fri Nov 03 02:09:26 GMT 2006  Olly Betts <olly@survex.com>
28227         * HACKING: Update debian packaging checklist.
28229 Fri Nov 03 00:57:35 GMT 2006  Olly Betts <olly@survex.com>
28231         * docs/Makefile.am: Building sourcedoc.pdf needs a larger pool_size
28232           now.
28234 Thu Nov 02 19:12:34 GMT 2006  Olly Betts <olly@survex.com>
28236         * AUTHORS: Updated.
28238 Thu Nov 02 15:41:46 GMT 2006  Olly Betts <olly@survex.com>
28240         * HACKING,NEWS,configure.ac: Update for 0.9.8.
28242 Thu Nov 02 15:20:05 GMT 2006  Olly Betts <olly@survex.com>
28244         * PLATFORMS: Update from tinderbox.
28246 Thu Nov 02 11:53:53 GMT 2006  Olly Betts <olly@survex.com>
28248         * configure.ac: GCC's -Wendif-labels is enabled by default on versions
28249           which support it, which simplifies our tests.
28251 Thu Nov 02 00:22:44 GMT 2006  Olly Betts <olly@survex.com>
28253         * backends/remote/dir_contents: Update.
28255 Wed Nov 01 15:33:12 GMT 2006  Olly Betts <olly@survex.com>
28257         * common/omstringstream.h: Fix our implementation of om_ostringstream
28258           to work with OmTime.
28260 Wed Nov 01 03:27:36 GMT 2006  Olly Betts <olly@survex.com>
28262         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Don't
28263           require a prefixed boolean term to start with an alphanumeric
28264           - allow the same set of characters as we do for the second and
28265           subsequent characters.
28267 Sat Oct 28 04:12:13 BST 2006  Olly Betts <olly@survex.com>
28269         * bin/quartzcheck.cc: Add catch for unknown exceptions.
28271 Sat Oct 28 03:49:19 BST 2006  Olly Betts <olly@survex.com>
28273         * HACKING,configure.ac,docs/Makefile.am,docs/doxygen_api_conf.in,
28274           docs/doxygen_full_conf.in: Produce a PDF for apidoc rather than
28275           PostScript, since the PDF is smaller, and easier to view for most
28276           users.  Use pdflatex to generate the PDF directly rather than
28277           going via a DVI file.  This also avoids problems on some Linux
28278           distros where latex is a symlink to pdfelatex (bug#81, bug#95).
28280 Thu Oct 26 22:12:20 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28282         * bin/quartzcheck.cc: Catch (and display) any exceptions which are
28283           of type "const char *error".  btreecheck.cc raises an exception
28284           of this type if a btree error is found, and this avoids
28285           quartzcheck dying quite so horribly in this case.
28287 Wed Oct 25 23:30:26 BST 2006  Olly Betts <olly@survex.com>
28289         * configure.ac: -Wendif-labels is new in GCC 3.3.
28290         * configure.ac: Revert accidental change which turned on -Werror in
28291           non-maintainer builds.
28292         * configure.ac: Avoid non-portable use of double quotes in
28293           double-quoted backticks.
28295 Wed Oct 25 01:19:24 BST 2006  Olly Betts <olly@survex.com>
28297         * configure.ac: Redhat's GCC 2.96 doesn't support -Wundef even
28298           though real GCC version before and after it do!  Also, use
28299           -Wshadow and -Wendif-labels even when not in maintainer mode.
28301 Tue Oct 24 04:17:58 BST 2006  Olly Betts <olly@survex.com>
28303         * backends/flint/flint_lock.cc,bin/quartzcheck.cc: Eliminate
28304           a couple of variables whose value is never used.
28306 Tue Oct 24 00:31:25 BST 2006  Olly Betts <olly@survex.com>
28308         * backends/quartz/quartz_database.cc: Only force a flush on
28309           WritableDatabase::allterms_begin() if there are actually pending
28310           changes.
28312 Mon Oct 23 23:49:52 BST 2006  Olly Betts <olly@survex.com>
28314         * backends/flint/flint_database.cc: Only force a flush on
28315           WritableDatabase::allterms_begin() if there are actually pending
28316           changes.
28318 Mon Oct 23 02:24:12 BST 2006  Olly Betts <olly@survex.com>
28320         * configure.ac: When checking if we need -lm, don't use a constant
28321           argument to log as the compiler might simply evaluate the whole
28322           expression at compile time.
28324 Sat Oct 21 20:42:52 BST 2006  Olly Betts <olly@survex.com>
28326         * HACKING: Mention automake 1.10 is out but we've not tested it yet.
28328 Sat Oct 21 20:39:57 BST 2006  Olly Betts <olly@survex.com>
28330         * HACKING: Add entries to release checklist: make sure new API methods
28331           are wrapped by the bindings, and that bug submitters are thanked.
28333 Fri Oct 20 13:56:50 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28335         * backends/flint/flint_io.cc: Fix compilation on windows (needs to
28336           #include "safewindows.h" to get definition of SSIZE_T).
28338 Tue Oct 17 02:16:37 BST 2006  Olly Betts <olly@survex.com>
28340         * testsuite/backendmanager.cc: Fix compilation when valgrind is
28341           detected by configure.
28343 Thu Oct 12 13:30:05 BST 2006  Olly Betts <olly@survex.com>
28345         * xapian.spec.in: Package xapian-progsrv.
28347 Thu Oct 12 00:49:47 BST 2006  Olly Betts <olly@survex.com>
28349         * HACKING: Note that on Debian, tetex-extra is needed for
28350           fancyhdr.sty.
28351         * HACKING: Note that dch can be used to update debian/changelog.
28353 Wed Oct 11 23:35:08 BST 2006  Olly Betts <olly@survex.com>
28355         * docs/Makefile.am: If running latex on refman.ps fails, cat
28356           refman.log since that is likely to show what failed.
28358 Tue Oct 10 17:24:00 BST 2006  Olly Betts <olly@survex.com>
28360         * NEWS: Bump release date.
28362 Sun Oct 08 21:41:04 BST 2006  Olly Betts <olly@survex.com>
28364         * NEWS,PLATFORMS,configure.ac: Update for 0.9.7.
28366 Sun Oct 08 10:06:51 BST 2006  Olly Betts <olly@survex.com>
28368         * testsuite/testsuite.cc: Use lseek() to skip existing valgrind output
28369           instead of repeated calls to read.  Handle the old valgrind naming
28370           convention for log files.
28372 Sun Oct 08 09:35:59 BST 2006  Olly Betts <olly@survex.com>
28374         * matcher/multimatch.cc: Fix a couple of typos in comments.
28376 Sun Oct 08 05:36:36 BST 2006  Olly Betts <olly@survex.com>
28378         * configure.ac: Disable probing and short-cut tests for a FORTRAN
28379           compiler.  We don't use one, but current libtool versions always
28380           check for it regardless.
28382 Sat Oct 07 21:19:35 BST 2006  Olly Betts <olly@survex.com>
28384         * configure.ac,tests/runtest.in,testsuite/backendmanager.cc,
28385           testsuite/testsuite.cc: Fix testsuite harness to show valgrind
28386           output when a test fails (when running under valgrind in verbose
28387           mode).  This probably stopped working due to changes in valgrind 3.
28388         * testsuite/backendmanager.cc: Run xapian-tcpsrv under valgrind if
28389           apitest is.
28391 Fri Oct  6 18:27:13 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28393         * tests/runtest.in: export $LIBTOOL, $VALGRIND and $VG_LOG_FD.
28394         * testsuite/backendmanager.cc: If $LIBTOOL, $VALGRIND and
28395           $VG_LOG_FD are set, run progsrv under valgrind.  Fixes
28396           Bug #94.
28397         * net/remoteserver.cc: Use an AutoPtr to hold the unserialised
28398           query, so it gets deleted if an exception is thrown.
28399         * api/omqueryinternal.cc: Use AutoPtr in one place, and a try-catch
28400           in another, to ensure that partially unserialised queries get
28401           deleted if exceptions are thrown.
28402         * tests/internaltest.cc: Add copyright notices to file for recent
28403           change.
28404         * AUTHORS: Add myself as a current developer, now that I've started
28405           committing to the core again.
28407 Fri Oct 06 17:44:21 BST 2006  Olly Betts <olly@survex.com>
28409         * api/omqueryinternal.cc: Fix memory leak in query unserialisation.
28411 Fri Oct  6 17:34:59 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28413         * tests/runtest.in: Cache result of test for $VG_LOG_FD if we
28414           find the new option.  Saves 2 seconds for each invocation on my
28415           machine, which is half the time when running just a single simple
28416           test.
28418 Fri Oct  6 16:35:46 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28420         * tests/internaltest.cc: Check serialisation and unserialisation of
28421           Query objects.  Currently fails under valgrind due to a memory
28422           leak somewhere in the unserialisation code.
28424 Thu Oct 05 14:13:55 BST 2006  Olly Betts <olly@survex.com>
28426         * include/xapian/error.h: Only enable the SWIG visibility hook when
28427           using GCC 4 or later.
28429 Wed Oct 04 20:32:43 BST 2006  Olly Betts <olly@survex.com>
28431         * m4/xapian.m4: Remove overquoting.
28433 Wed Oct  4 13:28:09 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28435         * common/utils.h: MSVC seems to #define open.  However, the
28436           workaround for this problem implemented for old versions of
28437           solaris doesn't work for windows, so avoid applying the fix for
28438           windows, and just #undef open.  (Windows seems to define some
28439           open() functions, as well as #defining open!)
28441 Wed Oct  4 13:26:18 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28443         * net/serialise.cc: Use "unsigned char" instead of "char" when
28444           serialising lengths, to avoid problems on platforms where char is
28445           signed (eg, windows).
28447 Wed Oct 04 12:25:51 BST 2006  Olly Betts <olly@survex.com>
28449         * backends/flint/flint_version.cc: Remove "100" from start of file so
28450           it actually compiles.
28452 Mon Oct 02 13:57:56 BST 2006  Olly Betts <olly@survex.com>
28454         * xapian-config.in: Fix typo - "@libdir" should be "@libdir@".
28455           This would lead to -L/usr/lib not being pruned, which is really
28456           just a cosmetic problem (the typo was introduced in 0.9.3).
28458 Thu Sep 28 02:00:05 BST 2006  Olly Betts <olly@survex.com>
28460         * matcher/multimatch.cc: Reserve the right number of entries in the
28461           subrsets vector.
28463 Fri Sep 22 07:48:32 BST 2006  Olly Betts <olly@survex.com>
28465         * common/serialise-double.cc: Fix warning with aCC.
28467 Fri Sep 22 04:43:06 BST 2006  Olly Betts <olly@survex.com>
28469         * HACKING: Expand note on _GLIBCXX_DEBUG;  Now using autoconf 2.60 for
28470           snapshots and releases;  Now using a libtool patch which improves
28471           support for -library=stlport4 with Sun's C++;  Give URL to Alexandre
28472           Duret-Lutz's autotools tutorial, which is much more up-to-date than
28473           the "goat book".
28475 Fri Sep 22 04:42:08 BST 2006  Olly Betts <olly@survex.com>
28477         * common/serialise-double.cc: Fix a few compiler warnings.
28479 Fri Sep 22 04:29:18 BST 2006  Olly Betts <olly@survex.com>
28481         * backends/flint/flint_lock.cc: Retry on EINTR from fcntl or waitpid.
28483 Fri Sep 22 03:39:12 BST 2006  Olly Betts <olly@survex.com>
28485         * include/xapian/version_h.cc: Only check _GLIBCXX_DEBUG for GCC 3.4
28486           and later (which are the versions which support it).
28488 Fri Sep 22 03:37:02 BST 2006  Olly Betts <olly@survex.com>
28490         * bin/xapian-tcpsrv.cc: Report errno if we catch a Xapian::Error which
28491           has it set.
28493 Fri Sep 22 03:30:25 BST 2006  Olly Betts <olly@survex.com>
28495         * configure.ac: Turn on -Wportability to help ensure our Makefile.am's
28496           are written in a portable way.
28498 Fri Sep 22 03:29:25 BST 2006  Olly Betts <olly@survex.com>
28500         * tests/runtest.in: Turn on GLIBCXX_FORCE_NEW when running tests under
28501           valgrind.
28503 Tue Sep 19 06:28:47 BST 2006  Olly Betts <olly@survex.com>
28505         * tests/internaltest.cc: Check that the the destructor on a temporary
28506           object gets called at the correct time (Sun C++ deliberately gets
28507           this wrong by default).
28509 Tue Sep 19 04:32:04 BST 2006  Olly Betts <olly@survex.com>
28511         * include/xapian/enquire.h: Revert change to Xapian::Weight's copy
28512           constructor because it prevents Omega from compiling.
28514 Tue Sep 19 04:01:14 BST 2006  Olly Betts <olly@survex.com>
28516         * configure.ac: Make the argument of log() a double to avoid
28517           potential compiler warnings.
28519 Mon Sep 18 22:58:19 BST 2006  Olly Betts <olly@survex.com>
28521         * include/xapian/enquire.h: Xapian::Weight's copy constructor should
28522           be private not protected (direct copying isn't allowed).
28524 Mon Sep 18 07:03:51 BST 2006  Olly Betts <olly@survex.com>
28526         * configure.ac: We reportedly need "-lm" to get maths functions on
28527           some versions of Sun's C++ compiler.
28529 Sat Sep 16 12:08:25 BST 2006  Olly Betts <olly@survex.com>
28531         * configure.ac: Sun's C++ compiler implements non-standards-conforming
28532           lifetimes for temporary objects (for "backwards compatibility" with
28533           old Sun C++ specific code).  We don't care about such code, so
28534           always pass "-features=tmplife" for Sun C++.
28536 Sat Sep 16 03:04:57 BST 2006  Olly Betts <olly@survex.com>
28538         * bin/xapian-progsrv.cc: Oops, fix compilation error.
28540 Sat Sep 16 02:13:22 BST 2006  Olly Betts <olly@survex.com>
28542         * bin/xapian-progsrv.cc: Fix messages send by xapian-progsrv if an
28543           exception is thrown while opening the database.
28545 Fri Sep 15 06:29:55 BST 2006  Olly Betts <olly@survex.com>
28547         * tests/internaltest.cc: 1/DBL_MAX may be less than DBL_MIN but on
28548           platforms like x86 which hold results in registers with extra
28549           precision, this is still representable, but not reliably so
28550           the test sometimes fails.
28552 Fri Sep 15 02:40:52 BST 2006  Olly Betts <olly@survex.com>
28554         * backends/flint/flint_btreebase.cc: Avoid copying beyond the end of
28555           the bitmap block.
28557 Thu Sep 14 02:01:58 BST 2006  Olly Betts <olly@survex.com>
28559         * backends/flint/flint_version.cc: Fix warning from GCC 4.1.0.
28561 Wed Sep 13 18:12:43 BST 2006  Olly Betts <olly@survex.com>
28563         * backends/flint/flint_io.cc,backends/flint/flint_io.h,
28564           backends/flint/flint_version.cc: Fix compiler warnings.
28566 Wed Sep 13 06:09:40 BST 2006  Olly Betts <olly@survex.com>
28568         * backends/flint/flint_version.cc,backends/flint/flint_version.h:
28569           Actually commit the new files!
28571 Wed Sep 13 05:21:04 BST 2006  Olly Betts <olly@survex.com>
28573         * backends/flint/,common/utils.h: Rewrite some of flint's low level IO
28574           functions, and the "iamflint" handling class.
28576 Tue Sep 12 20:22:57 BST 2006  Olly Betts <olly@survex.com>
28578         * backends/remote/remote-database.cc: Fix to compile.
28580 Tue Sep 12 18:56:16 BST 2006  Olly Betts <olly@survex.com>
28582         * backends/remote/remote-database.cc,common/remote-database.h:
28583           Fix bug in remote backend which incorrectly returned an empty MSet
28584           under certain circumstances!
28586 Tue Sep 12 11:51:31 BST 2006  Olly Betts <olly@survex.com>
28588         * matcher/msetcmp.cc: "static inline" -> "inline" since the static is
28589           superfluous and Sun's C++ warns.
28591 Mon Sep 11 23:42:28 BST 2006  Olly Betts <olly@survex.com>
28593         * configure.ac: Check $CXX not $CC to identify which C++ compiler we
28594           have.
28596 Mon Sep 11 16:32:37 BST 2006  Olly Betts <olly@survex.com>
28598         * api/omenquire.cc,api/vectortermlist.h,
28599           backends/flint/flint_positionlist.cc,configure.ac,
28600           net/remoteconnection.cc,net/tcpclient.cc,
28601           queryparser/queryparser.lemony,tests/api_anydb.cc,tests/api_db.cc,
28602           tests/api_nodb.cc: I've discovered that -library=stlport4 puts
28603           Sun's compiler into an "ANSI C++ compliant" mode, so do that
28604           automatically in configure and throw away all the annoying special
28605           bits of alternative code we'd accumulated just for this one
28606           compiler.
28608 Mon Sep 11 16:01:20 BST 2006  Olly Betts <olly@survex.com>
28610         * tests/api_wrdb.cc: Speed up deldoc4 when run in verbose mode
28611           - some stringstream implementations are very inefficient when
28612           the string grows long.
28614 Mon Sep 11 05:30:29 BST 2006  Olly Betts <olly@survex.com>
28616         * HACKING: Add some advice regarding debugging using -D_GLIBCXX_DEBUG,
28617           valgrind, and gdb.
28619 Sun Sep 10 02:24:47 BST 2006  Olly Betts <olly@survex.com>
28621         * configure.ac: Fix last check-in to actually work.
28623 Sat Sep 09 04:19:44 BST 2006  Olly Betts <olly@survex.com>
28625         * configure.ac: Ensure that if _GLIBCXX_DEBUG has been specified that
28626           it also passed when generating version.h.
28628 Sat Sep 09 04:01:40 BST 2006  Olly Betts <olly@survex.com>
28630         * tests/internaltest.cc: Give more useful output should the double
28631           serialisation test fail.
28633 Sat Sep 09 03:19:20 BST 2006  Olly Betts <olly@survex.com>
28635         * include/xapian/version_h.cc: Add a check that _GLIBCXX_DEBUG is
28636           set compatibly if we're compiling with GNU C++.
28638 Sat Sep 09 02:55:38 BST 2006  Olly Betts <olly@survex.com>
28640         * backends/flint/flint_modifiedpostlist.cc: Fix potential access to
28641           iterator which has already reached its end.
28643 Fri Sep 08 04:05:28 BST 2006  Olly Betts <olly@survex.com>
28645         * backends/remote/remote-database.cc,common/,matcher/bm25weight.cc,
28646           matcher/tradweight.cc,net/,tests/internaltest.cc: Split the double
28647           serialisation code off into its own file - it is used by BM25Weight
28648           and TradWeight, so it needs to be compiled in even when the remote
28649           backend is disabled.
28651 Thu Sep 07 00:09:41 BST 2006  Olly Betts <olly@survex.com>
28653         * testsuite/backendmanager.cc: Discard stderr from xapian-tcpsrv
28654           so we don't get "write error" messages appearing in the testsuite
28655           output when we've just closed the connection at the client side.
28657 Tue Sep 05 21:07:40 BST 2006  Olly Betts <olly@survex.com>
28659         * api/omqueryinternal.cc: Fix warning when remote backend
28660           is disabled.
28662 Tue Sep 05 20:58:52 BST 2006  Olly Betts <olly@survex.com>
28664         * docs/Makefile.am: Add extra dependencies so that parallel make
28665           doesn't try to run latex twice simultaneously.
28667 Tue Sep 05 20:58:13 BST 2006  Olly Betts <olly@survex.com>
28669         * AUTHORS: Updated.
28671 Tue Sep 05 20:56:50 BST 2006  Olly Betts <olly@survex.com>
28673         * Makefile.am: Fix typo.
28675 Tue Sep 05 03:23:14 BST 2006  Olly Betts <olly@survex.com>
28677         * docs/queryparser.html,queryparser/queryparser.lemony,
28678           tests/queryparsertest.cc: Implement "ADJ" operator - like
28679           "NEAR" except the terms must appear in matching documents in the
28680           same order as in the query.
28682 Tue Sep 05 03:19:12 BST 2006  Olly Betts <olly@survex.com>
28684         * backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
28685           matcher/bm25weight.cc,matcher/tradweight.cc,net/remoteserver.cc,
28686           net/serialise.cc,tests/internaltest.cc: Change how doubles are
28687           serialised by TradWeight, BM25Weight, and in the remote backend
28688           protocol.  The new encoding allows us to transfer any double
28689           value which can be represented by both machines precisely and
28690           compactly.
28692 Tue Sep 05 02:27:36 BST 2006  Olly Betts <olly@survex.com>
28694         * docs/queryparser.html,queryparser/queryparser.lemony,
28695           tests/queryparsertest.cc: Allow a distance to be specified
28696           for NEAR - e.g. "cats NEAR/3 dogs" (bug#92).
28698 Fri Sep 01 00:29:10 BST 2006  Olly Betts <olly@survex.com>
28700         * backends/remote/remote-database.cc,common/remote-database.h:
28701           Fix RemoteDatabase::reopen() to not be const so it actually
28702           overrides the virtual method it is supposed to.
28704 Thu Aug 31 21:40:53 BST 2006  Olly Betts <olly@survex.com>
28706         * testsuite/backendmanager.h: Remove unneeded BackendManager::
28707           qualifications.
28709 Thu Aug 31 17:08:16 BST 2006  Olly Betts <olly@survex.com>
28711         * matcher/msetpostlist.cc,matcher/msetpostlist.h: Move #include
28712           "omenquireinternal.h" into the header to fix compilation error
28713           with older versions of GCC.
28715 Thu Aug 31 16:38:33 BST 2006  Olly Betts <olly@survex.com>
28717         * PLATFORMS: Added success report for Nexenta (alpha 5).
28719 Wed Aug 30 23:41:08 BST 2006  Olly Betts <olly@survex.com>
28721         * configure.ac: Fix generation of version.h to work with Solaris sed.
28723 Sat Aug 26 15:28:22 BST 2006  Olly Betts <olly@survex.com>
28725         * docs/index.html: Add links to the wiki.
28727 Sun Jul 16 03:48:26 BST 2006  Olly Betts <olly@survex.com>
28729         * common/Makefile.am: Ship remoteprotocol.h.
28731 Sun Jul 16 02:23:54 BST 2006  Olly Betts <olly@survex.com>
28733         * common/remote-database.h: Add new file I missed in the previous
28734           commit.
28736 Sun Jul 16 01:58:25 BST 2006  Olly Betts <olly@survex.com>
28738         * Makefile.am,api/,backends/Makefile.am,backends/database.cc,
28739           backends/dbfactory_remote.cc,backends/flint/flint_database.cc,
28740           backends/flint/flint_termlist.cc,backends/flint/flint_termlist.h,
28741           backends/inmemory/inmemory_database.cc,
28742           backends/inmemory/inmemory_database.h,
28743           backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
28744           backends/net/,backends/quartz/quartz_termlist.cc,
28745           backends/quartz/quartz_termlist.h,backends/remote/,bin/Makefile.am,
28746           bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc,common/,configure.ac,
28747           docs/remote_protocol.html,include/xapian/,matcher/,net/,tests/,
28748           testsuite/backendmanager.cc,testsuite/backendmanager.h: Rewrite
28749           most of the remote backend.  It now supports most operations
28750           which a local database does (including writing!), the protocol
28751           used is more compact, and a number of layers of classes have
28752           been eliminated and the sequences of method calls simplified, so the
28753           code should be easier to understand and maintain despite doing more.
28754           A number of bugs have been fixed in the process.
28756 Sat Jul 15 05:10:38 BST 2006  Olly Betts <olly@survex.com>
28758         * tests/api_nodb.cc: Doesn't need <iostream>.
28760 Sat Jul 15 01:06:27 BST 2006  Olly Betts <olly@survex.com>
28762         * README: Add link to the wiki.  Tweak wording.
28764 Fri Jul 14 15:21:39 BST 2006  Olly Betts <olly@survex.com>
28766         * configure.ac: Note in error message that dot is in graphviz.
28768 Fri Jul 14 15:17:36 BST 2006  Olly Betts <olly@survex.com>
28770         * docs/overview.html: Add discussion of uses of terms vs values.
28772 Fri Jul 14 15:01:04 BST 2006  Olly Betts <olly@survex.com>
28774         * docs/overview.html: Rewrite the section on Xapian::Document to
28775           remove some very out-of-date information and make it clearer.
28777 Tue Jul 11 18:41:07 BST 2006  Olly Betts <olly@survex.com>
28779         * queryparser/queryparser.lemony: Fix problem I believe was introduced
28780           by previous fix.
28781         * tests/queryparsertest.cc: Add regression test and some additional
28782           related test cases.
28784 Tue Jul 11 03:32:48 BST 2006  Olly Betts <olly@survex.com>
28786         * queryparser/queryparser.lemony: Fix bug in how we handle prefixed
28787           quoted phrases and prefixed brackets.
28788         * tests/queryparsertest.cc: Add regression tests.
28790 Mon Jul 10 23:17:58 BST 2006  Olly Betts <olly@survex.com>
28792         * include/xapian/database.h: Note that automatically allocated
28793           document IDs don't reuse IDs from deleted document.
28795 Wed Jul 05 01:06:35 BST 2006  Olly Betts <olly@survex.com>
28797         * tests/api_wrdb.cc: Tweak whitespace.
28799 Mon Jun 26 23:56:02 BST 2006  Olly Betts <olly@survex.com>
28801         * PLATFORMS: Added success reports for MSVC and sparc linux.
28803 Sat Jun 17 02:01:35 BST 2006  Olly Betts <olly@survex.com>
28805         * Makefile.am,tests/Makefile.am: Tweak new check-* rules to be more
28806           portable and robust.
28808 Sun Jun 11 23:29:48 BST 2006  Olly Betts <olly@survex.com>
28810         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix parsing
28811           of loved and hated prefixed phrases and bracketted expressions.  Fix
28812           handling of stopwords in boolean expressions.  Don't ignore a
28813           stopword if it's the only query term.  Add regression tests for all
28814           these cases.
28816 Fri Jun 09 15:21:07 BST 2006  Olly Betts <olly@survex.com>
28818         * docs/queryparser.html: Add pointer to set_database when describing
28819           FLAG_WILDCARD.
28821 Fri Jun 09 13:51:03 BST 2006  Olly Betts <olly@survex.com>
28823         * include/xapian/queryparser.h: Add note that FLAG_WILDCARD requires
28824           you to call set_database.
28826 Fri Jun 09 13:49:34 BST 2006  Olly Betts <olly@survex.com>
28828         * api/omqueryinternal.cc: Don't compile query serialisation if the
28829           remote backend is disabled.
28831 Fri Jun 09 01:48:25 BST 2006  Olly Betts <olly@survex.com>
28833         * api/omdocument.cc,tests/api_nodb.cc: add_value failed to replace an
28834           existing value with the same number, contrary to what the
28835           documentation says (bug #82).
28837 Thu Jun 08 21:36:54 BST 2006  Olly Betts <olly@survex.com>
28839         * matcher/multimatch.cc: Don't fetch the document data when fetching
28840           the value to sort on.  Simple benchmarking showed this to speed
28841           up sort by value by a factor of between 3 and 9!
28843 Sun Jun 04 17:36:01 BST 2006  Olly Betts <olly@survex.com>
28845         * backends/flint/: Remove forced flush when iterating the posting list
28846           of a term which has modified posting pending.
28848 Sat Jun 03 21:38:43 BST 2006  Olly Betts <olly@survex.com>
28850         * backends/flint/flint_database.cc,backends/flint/flint_termlist.cc,
28851           backends/quartz/quartz_database.cc,tests/api_wrdb.cc: We can't flush
28852           during a transaction, which means that we can't use flush to avoid
28853           having to handle corner cases (like deleting a document right after
28854           adding it before it's been flushed) so handle corner cases properly
28855           (except for postlist_begin() and allterms_begin() which are
28856           harder - these now throw UnimplementedError at least...)
28857         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
28858           replace_document(did, doc) was double-incrementing the "changes"
28859           counter when document did didn't exist - fixed.
28861 Sat Jun 03 17:53:41 BST 2006  Olly Betts <olly@survex.com>
28863         * HACKING: Document "make check-flint" and "make check-quartz".
28865 Sat Jun 03 17:49:25 BST 2006  Olly Betts <olly@survex.com>
28867         * Makefile.am,tests/Makefile.am: Added make targets "check-flint" and
28868           "check-quartz" which run the subset of tests which test the flint
28869           and quartz backends respectively.
28871 Sat Jun 03 04:03:00 BST 2006  Olly Betts <olly@survex.com>
28873         * api/omdatabase.cc,backends/database.cc,
28874           backends/flint/flint_database.cc,backends/flint/flint_database.h,
28875           backends/inmemory/inmemory_database.cc,
28876           backends/inmemory/inmemory_database.h,backends/quartz/dir_contents,
28877           backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
28878           common/database.h,include/xapian/database.h,tests/apitest.cc:
28879           Rework transactions to support "unflushed" transactions, and so
28880           they work with quartz as well as with flint.
28882 Sat Jun 03 03:18:22 BST 2006  Olly Betts <olly@survex.com>
28884         * HACKING: Document "make check-remote".
28886 Sat Jun 03 00:23:46 BST 2006  Olly Betts <olly@survex.com>
28888         * backends/database.cc,backends/flint/dir_contents,
28889           backends/flint/flint_database.cc,backends/flint/flint_database.h,
28890           backends/quartz/dir_contents,common/database.h,
28891           include/xapian/database.h,tests/: Implement transactions for
28892           flint.
28894 Sat Jun 03 00:14:37 BST 2006  Olly Betts <olly@survex.com>
28896         * tests/apitest.cc: Run tests on flint if flint is enabled, rather
28897           than if quartz is enabled.
28899 Sun May 28 23:01:45 BST 2006  Olly Betts <olly@survex.com>
28901         * common/omtime.h: Add operator+ and operator+= with argument of
28902           type Xapian::timeout.
28904 Sun May 28 22:02:30 BST 2006  Olly Betts <olly@survex.com>
28906         * include/xapian/errorhandler.h: Fix typos in private assignment
28907           operator and copy ctor (Error -> ErrorHandler!)
28909 Sun May 28 21:54:05 BST 2006  Olly Betts <olly@survex.com>
28911         * Makefile.am,tests/Makefile.am: Add "check-remote" target which runs
28912           the subset of tests which test the remote backend.
28914 Thu May 25 16:06:06 BST 2006  Olly Betts <olly@survex.com>
28916         * api/omdatabase.cc,backends/database.cc,common/database.h:
28917           Merge Xapian::Internal::open_database() into the Xapian::Database
28918           ctor which calls it; merge Xapian::Internal::open_writable_database()
28919           into the Xapian::WritableDatabase ctor which calls it.
28921 Wed May 24 08:28:40 BST 2006  Olly Betts <olly@survex.com>
28923         * net/socketserver.cc: OmLineBuf -> OmSocketLineBuf.
28925 Wed May 24 08:27:22 BST 2006  Olly Betts <olly@survex.com>
28927         * common/socketserver.h: OmLineBuf -> OmSocketLineBuf.
28929 Wed May 24 07:50:51 BST 2006  Olly Betts <olly@survex.com>
28931         * common/Makefile.am,common/omlinebuf.h,common/socketcommon.h,
28932           net/Makefile.am,net/omlinebuf.cc,net/socketcommon.cc:
28933           Merge OmLineBuf into OmSocketLineBuf.
28934         * common/Makefile.am: Fix netutils.cc to be conditionally included
28935           when the remote backend is enabled, not the quartz backend!
28937 Tue May 23 18:59:09 BST 2006  Olly Betts <olly@survex.com>
28939         * api/Makefile.am,api/errorhandler.cc,api/omerror.cc,
28940           include/xapian/error.h,include/xapian/errorhandler.h:
28941           Redo the Xapian::Error and Xapian::ErrorHandler classes.
28942           The new versions have better, clearer documentation comments
28943           and are cleaner internally.
28944         * include/xapian/error.h: Add hook to allow SWIG bindings to
28945           be built using GCC's visibility support.
28947 Tue May 23 10:08:02 BST 2006  Olly Betts <olly@survex.com>
28949         * backends/quartz/btree.cc: Remove superfluous '#include <autoptr.h>'.
28951 Tue May 23 09:42:52 BST 2006  Olly Betts <olly@survex.com>
28953         * backends/Makefile.am,backends/database.cc,
28954           backends/dbfactory_remote.cc,backends/net/net_database.cc,
28955           backends/net/net_termlist.cc,backends/net/net_termlist.h,common/,
28956           include/xapian/dbfactory.h,matcher/,net/socketclient.cc,
28957           net/socketcommon.cc: Eliminate the NetClient class by merging
28958           it into NetDatabase.
28960 Mon May 22 08:51:16 BST 2006  Olly Betts <olly@survex.com>
28962         * common/omtime.h: Fix OmTime::operator> which failed to return false
28963           if the seconds were strictly less but the microsecond fraction was
28964           more.
28966 Sun May 21 11:53:29 BST 2006  Olly Betts <olly@survex.com>
28968         * Makefile.am,bin/Makefile.am,docs/Makefile.am,examples/Makefile.am:
28969           Make use of the dist_ prefix to avoid having to list files in
28970           EXTRA_DIST as well as in *_DATA and man_MANS.
28972 Sun May 21 05:55:00 BST 2006  Olly Betts <olly@survex.com>
28974         * api/dir_contents,getopt/dir_contents,queryparser/dir_contents:
28975           Add missing dir_contents files.
28977 Sun May 21 05:45:44 BST 2006  Olly Betts <olly@survex.com>
28979         * tests/remotetest.cc: Remove unnecessary "#include <sys/wait.h>".
28981 Sat May 20 11:02:43 BST 2006  Olly Betts <olly@survex.com>
28983         * docs/Makefile.am: doxygen_api_conf and doxygen_full_conf are
28984           generated, so aren't in srcdir!
28986 Sat May 20 10:14:52 BST 2006  Olly Betts <olly@survex.com>
28988         * docs/Makefile.am: automake adds suitable rules for rebuilding
28989           doxygen_api_conf and doxygen_source_conf, so remove our less
28990           accurate versions.
28992 Fri May 19 14:43:47 BST 2006  Olly Betts <olly@survex.com>
28994         * docs/Makefile.am,docs/doxygen_api_conf.in,docs/doxygen_full_conf.in:
28995           Remove "XAPIAN_DEPRECATED" from generated documentation.
28996         * docs/Makefile.am: Fix dependencies for regenerating the doxygen
28997           documentation.
28999 Fri May 19 08:12:51 BST 2006  Olly Betts <olly@survex.com>
29001         * docs/scalability.html: quartzcompact and xapian-compact now allow
29002           you to set the blocksize, so there's no need to use copydatabase
29003           if you want to migrate a database to a larger blocksize.  Mention
29004           gmane.  Other minor tweaks.
29006 Fri May 19 07:52:23 BST 2006  Olly Betts <olly@survex.com>
29008         * bin/quartzcompact.cc: Add --blocksize option to allow the blocksize
29009           to be set (default is 8K as before.)
29011 Fri May 19 07:47:13 BST 2006  Olly Betts <olly@survex.com>
29013         * bin/xapian-compact.cc: Add --blocksize option to allow the blocksize
29014           to be set (default is 8K as before.)
29016 Thu May 18 11:24:17 BST 2006  Olly Betts <olly@survex.com>
29018         * api/vectortermlist.h: Whitespace tweak.
29020 Tue May 16 10:09:53 BST 2006  Olly Betts <olly@survex.com>
29022         * HACKING: Update details of the debian stable backport version
29023           numbering scheme.
29025 Tue May 16 06:55:14 BST 2006  Olly Betts <olly@survex.com>
29027         * configure.ac: Remove unused variable from snprintf testing code.
29029 Tue May 16 04:32:34 BST 2006  Olly Betts <olly@survex.com>
29031         * HACKING: Expand on the debian package building checklist.
29033 Tue May 16 04:32:07 BST 2006  Olly Betts <olly@survex.com>
29035         * include/xapian/enquire.h: Note that "set_sort_by_relevance" is the
29036           default setting.
29038 Mon May 15 06:59:01 BST 2006  Olly Betts <olly@survex.com>
29040         * HACKING: Update debian package building checklist.
29042 Mon May 15 03:53:53 BST 2006  Olly Betts <olly@survex.com>
29044         * PLATFORMS: Update one more result before the actual release.
29046 Mon May 15 02:15:18 BST 2006  Olly Betts <olly@survex.com>
29048         * NEWS,configure.ac: Updated for 0.9.6.
29050 Mon May 15 01:35:33 BST 2006  Olly Betts <olly@survex.com>
29052         * PLATFORMS: Updated in preparation for the next release.
29054 Sun May 14 19:05:37 BST 2006  Olly Betts <olly@survex.com>
29056         * backends/flint/flint_lock.h: Added workaround for newlib header bug.
29058 Sat May 13 07:04:14 BST 2006  Olly Betts <olly@survex.com>
29060         * configure.ac: Fix snprintf tests.
29062 Sat May 13 04:52:53 BST 2006  Olly Betts <olly@survex.com>
29064         * configure.ac: Tweak version.h generation to cope with CXXCPP putting
29065           carriage returns into its output as can happen on cygwin.
29067 Fri May 12 21:49:33 BST 2006  Olly Betts <olly@survex.com>
29069         * HACKING: Update with the libtool patches we're now using.
29071 Fri May 12 21:43:02 BST 2006  Olly Betts <olly@survex.com>
29073         * include/xapian/version_h.cc: Trim trailing whitespace.
29075 Fri May 12 20:43:47 BST 2006  Olly Betts <olly@survex.com>
29077         * configure.ac,include/xapian/version_h.cc: Replace @@ with " instead
29078           of @, so we can write @deprecated.  Fix more compilation problems.
29080 Fri May 12 19:00:08 BST 2006  Olly Betts <olly@survex.com>
29082         * include/xapian/version_h.cc: Fix compilation problem.
29084 Fri May 12 01:19:14 BST 2006  Olly Betts <olly@survex.com>
29086         * api/version.cc,include/xapian/version_h.cc: Rename
29087           Xapian::xapian_version_string() and companions to
29088           Xapian::version_string().  Keep the old functions as aliases
29089           which are marked as deprecated.
29091 Wed May 10 18:25:59 BST 2006  Olly Betts <olly@survex.com>
29093         * include/xapian/enquire.h: Remove bogus documentation for a
29094           parameter which doesn't exist.
29096 Tue May 09 19:17:23 BST 2006  Olly Betts <olly@survex.com>
29098         * bin/Makefile.am: Remove trailing whitespace.
29099         * bin/xapian-compact.cc: Fix renaming of "iamflint.tmp" for MS Windows
29100           where you can't rename an open file.
29102 Tue May 09 15:57:26 BST 2006  Olly Betts <olly@survex.com>
29104         * configure.ac: Fix reversed conditional in test for snprintf (which
29105           affects cygwin).
29107 Mon May 01 21:49:46 BST 2006  Olly Betts <olly@survex.com>
29109         * tests/queryparsertest.cc: Add another prefix testcase to improve
29110           coverage.
29112 Sat Apr 29 20:16:46 BST 2006  Olly Betts <olly@survex.com>
29114         * docs/remote_protocol.html: Document keep-alive messages.
29116 Thu Apr 13 14:49:48 BST 2006  Olly Betts <olly@survex.com>
29118         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Add rules
29119           to handle a boolean filter with a "+" in front (such as
29120           +site:xapian.org).
29122 Wed Apr 12 18:42:31 BST 2006  Olly Betts <olly@survex.com>
29124         * PLATFORMS: More updates for 0.9.5.
29126 Tue Apr 11 19:56:16 BST 2006  Olly Betts <olly@survex.com>
29128         * matcher/Makefile.am: Need to add "-I${top_builddir}/include" to
29129           INCLUDES so that xapian/version.h is found.
29131 Tue Apr 11 19:24:59 BST 2006  Olly Betts <olly@survex.com>
29133         * backends/database.cc,configure.ac,include/xapian/version_h.cc,
29134           matcher/multimatch.cc,matcher/stats.cc,tests/apitest.cc,
29135           testsuite/backendmanager.cc,testsuite/backendmanager.h:
29136           Eliminate XAPIAN_BUILD_BACKEND_* from config.h and just use
29137           XAPIAN_HAS_*_BACKEND from xapian/version.h instead.
29139 Tue Apr 11 18:32:52 BST 2006  Olly Betts <olly@survex.com>
29141         * include/Makefile.am: Add xapian/version.h.timestamp as a dependency
29142           on all-local so that xapian/version.h actually gets regenerated
29143           when required.
29145 Tue Apr 11 17:52:24 BST 2006  Olly Betts <olly@survex.com>
29147         * api/omenquire.cc,backends/flint/flint_btreebase.cc,
29148           backends/quartz/btree_base.cc,common/utils.h,configure.ac:
29149           Disable MSVC warning 4800 (on int to bool conversions) in config.h
29150           and then we can remove the "fixes" elsewhere.
29152 Tue Apr 11 16:28:01 BST 2006  Olly Betts <olly@survex.com>
29154         * configure.ac: Simpler check for VALGRIND being set to empty value.
29156 Tue Apr 11 01:04:32 BST 2006  Olly Betts <olly@survex.com>
29158         * PLATFORMS: Add a summary.
29160 Tue Apr 11 00:45:55 BST 2006  Olly Betts <olly@survex.com>
29162         * PLATFORMS: Updates from boxes which were down when I did the
29163           release.
29165 Mon Apr 10 17:06:46 BST 2006  Olly Betts <olly@survex.com>
29167         * api/omenquire.cc,backends/flint/flint_btreebase.cc,
29168           backends/flint/flint_utils.h,backends/quartz/btree_base.cc,
29169           backends/quartz/quartz_utils.h,common/omassert.h:
29170           Fix more MSVC7 warnings (I spoke too soon).
29172 Mon Apr 10 15:56:52 BST 2006  Olly Betts <olly@survex.com>
29174         * include/xapian/query.h: Another MSVC7 warning fix.  Should be free
29175           of warnings now.
29177 Mon Apr 10 14:46:34 BST 2006  Olly Betts <olly@survex.com>
29179         * backends/flint/flint_database.cc,backends/flint/flint_utils.h,
29180           backends/quartz/quartz_utils.h,bin/quartzcompact.cc,
29181           bin/xapian-compact.cc,common/omdebug.h,common/utils.h,
29182           include/xapian/query.h,languages/header.h,matcher/multimatch.cc:
29183           Fix assorted MSVC7 warnings.
29185 Sun Apr 09 04:56:09 BST 2006  Olly Betts <olly@survex.com>
29187         * HACKING: Expand on details of what's required when changing Xapian
29188           (discuss documentation requirements, expand on why feature tests
29189           are vital).
29190         * HACKING: Update section on building debian packages.
29192 Sat Apr 08 20:02:19 BST 2006  Olly Betts <olly@survex.com>
29194         * NEWS,PLATFORMS,configure.ac: Updated for 0.9.5.
29196 Fri Apr 07 23:53:08 BST 2006  Olly Betts <olly@survex.com>
29198         * tests/api_anydb.cc,tests/api_db.cc,tests/btreetest.cc: Correct
29199           spelling of "existant" to "existent".
29201 Fri Apr 07 19:13:24 BST 2006  Olly Betts <olly@survex.com>
29203         * configure.ac: We don't use strcasecmp, so don't probe for it.
29205 Fri Apr 07 18:30:40 BST 2006  Olly Betts <olly@survex.com>
29207         * common/utils.h: Fixes for MSVC7 compilation.
29209 Fri Apr 07 17:19:43 BST 2006  Olly Betts <olly@survex.com>
29211         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Fixes for
29212           MSVC compilation.
29214 Fri Apr 07 16:04:08 BST 2006  Olly Betts <olly@survex.com>
29216         * backends/flint/flint_cursor.h: Fix incorrect example code in
29217           documentation comment.
29218         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
29219           Remove unused method FlintTable::find_key().
29221 Fri Apr 07 16:02:40 BST 2006  Olly Betts <olly@survex.com>
29223         * AUTHORS: Updated.
29225 Fri Apr 07 15:58:31 BST 2006  Olly Betts <olly@survex.com>
29227         * debian/control.in: copydatabase and xapian-compact are packaged
29228           in xapian-tools, so add them to the documented list of tools
29229           included.
29231 Fri Apr 07 15:12:43 BST 2006  Olly Betts <olly@survex.com>
29233         * net/tcpserver.cc: Set xapian-tcpsrv to allow 5 connections in the
29234           listen queue instead of just one.
29236 Fri Apr 07 13:28:15 BST 2006  Olly Betts <olly@survex.com>
29238         * tests/remotetest.cc: Check mset size in tcpmatch1.
29240 Fri Apr 07 01:26:03 BST 2006  Olly Betts <olly@survex.com>
29242         * xapian.spec.in: Man pages may be gzipped.
29244 Thu Apr 06 14:41:29 BST 2006  Olly Betts <olly@survex.com>
29246         * HACKING: aclocal is part of automake, not autoconf.
29248 Thu Apr 06 01:29:21 BST 2006  Olly Betts <olly@survex.com>
29250         * bin/,examples/copydatabase.cc,examples/delve.cc,examples/quest.cc:
29251           In the "--help" output, add "Options:" before the list of options.
29253 Thu Apr 06 01:11:31 BST 2006  Olly Betts <olly@survex.com>
29255         * xapian-config.in: Tweak to improve help2man output.
29257 Wed Apr 05 16:26:15 BST 2006  Fabrice Colin
29259         * xapian.spec.in: Package man pages.
29261 Wed Apr 05 16:23:49 BST 2006  Olly Betts <olly@survex.com>
29263         * Makefile.am,bin/Makefile.am,examples/Makefile.am: Include generated
29264           man pages in the distribution tarball.
29266 Wed Apr 05 02:48:27 BST 2006  Olly Betts <olly@survex.com>
29268         * debian/TODO: Updated.
29270 Wed Apr 05 02:44:15 BST 2006  Olly Betts <olly@survex.com>
29272         * ./,examples: svn:ignore man pages.
29274 Wed Apr 05 02:43:08 BST 2006  Olly Betts <olly@survex.com>
29276         * bin/Makefile.am,examples/Makefile.am: No need to make man pages
29277           depend on config.h, since the binaries will already.
29279 Wed Apr 05 02:42:42 BST 2006  Olly Betts <olly@survex.com>
29281         * Makefile.am: Generate man page for xapian-config.
29283 Wed Apr 05 00:59:53 BST 2006  Olly Betts <olly@survex.com>
29285         * examples/Makefile.am: Use help2man to generate manpages for the
29286           installed binaries in examples.
29288 Wed Apr 05 00:56:11 BST 2006  Olly Betts <olly@survex.com>
29290         * bin/omtcpsrv.cc: Rename to bin/xapian-tcpsrv.cc.
29291         * bin/omprogsrv.cc: Rename to bin/xapian-progsrv.cc.
29292         * HACKING,bin/Makefile.am,configure.ac: Use help2man to generate
29293           manpages for the installed binaries in bin.
29295 Tue Apr 04 16:44:54 BST 2006  Olly Betts <olly@survex.com>
29297         * include/xapian/enquire.h: Note example of BM25Weight parameters
29298           which make set_sort_by_relevance_then_value useful.
29300 Tue Apr 04 16:35:58 BST 2006  Olly Betts <olly@survex.com>
29302         * api/omenquire.cc,include/xapian/enquire.h,matcher/,tests/api_db.cc:
29303           Implement Enquire::set_sort_by_relevance_then_value().
29305 Tue Apr 04 01:05:41 BST 2006  Olly Betts <olly@survex.com>
29307         * common/omenquireinternal.h: sort_key no longer needs to be mutable
29308           now that MSetSortCmp has been removed.
29310 Mon Apr 03 02:03:12 BST 2006  Olly Betts <olly@survex.com>
29312         * matcher/multimatch.cc: Removed dead code (class MSetSortCmp).
29314 Sun Apr 02 16:37:38 BST 2006  Olly Betts <olly@survex.com>
29316         * net/tcpserver.cc: Don't perform a name lookup on the IP address
29317           which an incoming connection is from as that could easily slow
29318           down the search response - instead just print the IP address itself
29319           if output is verbose.
29321 Sun Apr 02 13:28:31 BST 2006  Olly Betts <olly@survex.com>
29323         * api/omenquire.cc,common/,docs/remote_protocol.html,
29324           matcher/multimatch.cc,matcher/networkmatch.cc,matcher/networkmatch.h,
29325           net/socketclient.cc,net/socketserver.cc: Change bool
29326           sort_by_relevance to enum sort_by in preparation for adding
29327           "sort_by_relevance_then_value".
29329 Fri Mar 31 22:32:16 BST 2006  Olly Betts <olly@survex.com>
29331         * examples/copydatabase.cc,examples/quest.cc: Add --help and --version
29332           options.
29333         * examples/delve.cc: Tidy up output from --help and --version options.
29335 Fri Mar 31 19:01:25 BST 2006  Olly Betts <olly@survex.com>
29337         * bin/quartzcheck.cc: Fix SEGV when run with no arguments (introduced
29338           by last change).
29340 Fri Mar 31 17:57:27 BST 2006  Olly Betts <olly@survex.com>
29342         * bin/quartzcheck.cc: Add --version option.  Tidy up output from
29343           --help.
29345 Fri Mar 31 17:43:25 BST 2006  Olly Betts <olly@survex.com>
29347         * bin/quartzcompact.cc: Include --help and --version in --help output.
29348         * bin/quartzdump.cc: Add --help and --version options.  Terminate list
29349           of long options so that "quartzdump --foo" no longer segfaults.
29351 Fri Mar 31 17:27:09 BST 2006  Olly Betts <olly@survex.com>
29353         * bin/quartzcompact.cc: Tweak --help and --version output for
29354           consistency with other binaries.  Terminate list of long options so
29355           that "quartzcompact --foo" no longer segfaults.
29357 Fri Mar 31 16:47:02 BST 2006  Olly Betts <olly@survex.com>
29359         * bin/omtcpsrv.cc: Make OPT_HELP and OPT_VERSION positive numbers.
29360           Only give synopsis line for --help, not for syntax error.
29361         * bin/xapian-compact.cc: List --help and --version in --help output.
29362           Terminate list of long options so that "xapian-compact --foo" no
29363           longer segfaults.
29365 Fri Mar 31 16:20:24 BST 2006  Olly Betts <olly@survex.com>
29367         * bin/omtcpsrv.cc: Added --help and --version options.
29369 Thu Mar 30 11:51:21 BST 2006  Philip Neustrom
29371         * docs/remote_protocol.html: Document messages for requesting and
29372           sending a termlist and a document.
29374 Wed Mar 29 19:39:05 BST 2006  Olly Betts <olly@survex.com>
29376         * backends/flint/flint_termlist.cc,backends/quartz/quartz_termlist.cc:
29377           Add missing spaces in debug output.
29379 Fri Mar 17 09:22:54 GMT 2006  Olly Betts <olly@survex.com>
29381         * api/vectortermlist.h,backends/net/net_termlist.cc,
29382           backends/net/net_termlist.h,common/alltermslist.h,common/termlist.h,
29383           matcher/branchtermlist.h: Make TermList::positionlist_begin() pure
29384           virtual and put dummy implementations in BranchTermList and other
29385           subclasses which can't (or don't) implement it.  This makes it
29386           hard to accidentally fail to implement it in a backend's TermList
29387           subclass.
29388         * backends/net/net_termlist.h: positionlist_begin() now throws
29389           UnimplementedError instead of InvalidOperationError.
29391 Fri Mar 17 08:46:52 GMT 2006  Olly Betts <olly@survex.com>
29393         * api/omdatabase.cc: There's no need for the MultiTermList wrapper in
29394           the common case where we're only dealing with a single database.
29396 Fri Mar 17 07:54:54 GMT 2006  Olly Betts <olly@survex.com>
29398         * backends/net/net_termlist.h: Remove unused "positions" member.
29400 Fri Mar 17 07:07:57 GMT 2006  Olly Betts <olly@survex.com>
29402         * backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
29403           tests/api_posdb.cc: Fix TermIterator::positionlist_begin() to work
29404           on TermIterator from Database::termlist_begin().
29406 Fri Mar 17 03:47:04 GMT 2006  Olly Betts <olly@survex.com>
29408         * include/xapian/enquire.h: Fix "unused parameter" warning from
29409           previous change.
29411 Thu Mar 16 05:20:16 GMT 2006  Olly Betts <olly@survex.com>
29413         * api/omenquire.cc,include/xapian/enquire.h:  Move
29414           Enquire::get_matching_terms_end() inline in header.
29416 Thu Mar 16 04:28:20 GMT 2006  Olly Betts <olly@survex.com>
29418         * api/omdocument.cc,configure.ac,include/xapian/document.h: Move
29419           Document::termlist_end() inline in header.
29421 Fri Mar 10 04:55:57 GMT 2006  Olly Betts <olly@survex.com>
29423         * INSTALL: Improve wording.
29425 Fri Mar 10 04:49:09 GMT 2006  Olly Betts <olly@survex.com>
29427         * backends/quartz/bcursor.h: Fix incorrect method name in
29428           documentation comment.
29430 Fri Mar 10 04:39:45 GMT 2006  Olly Betts <olly@survex.com>
29432         * backends/quartz/btree.cc,backends/quartz/btree.h: Btree::find_key()
29433           is unused so remove it.
29435 Fri Mar 10 04:29:46 GMT 2006  Olly Betts <olly@survex.com>
29437         * HACKING: Note that we now use a lightly patched version of libtool
29438           1.5.22.
29440 Fri Mar 10 02:55:48 GMT 2006  Olly Betts <olly@survex.com>
29442         * docs/overview.html: Bring up to date.
29444 Wed Mar 08 02:32:49 GMT 2006  Olly Betts <olly@survex.com>
29446         * queryparser/queryparser.lemony: Fix FLAG_BOOLEAN_ANY_CASE to really
29447           allow any case combination - previously it only allowed all
29448           uppercase or all lowercase.
29449         * tests/queryparsertest.cc: Add feature and regression tests for
29450           FLAG_BOOLEAN_ANY_CASE.
29451         * tests/queryparsertest.cc: Rename test cases to more descriptive
29452           names.
29454 Tue Mar 07 19:59:54 GMT 2006  Olly Betts <olly@survex.com>
29456         * queryparser/queryparser.lemony,tests/queryparsertest.cc:
29457           Fix QueryParser's handling of terms with trailing "#", "+",
29458           or "-" when set_database has been called and the term doesn't
29459           exist in the database with the suffix.
29461 Tue Feb 21 21:14:22 GMT 2006  Olly Betts <olly@survex.com>
29463         * include/xapian/deprecated.h: Allow xapian-bindings to override
29464           deprecation warnings.
29466 Tue Feb 21 17:55:17 GMT 2006  Olly Betts <olly@survex.com>
29468         * backends/flint/flint_database.cc: Note that "flicklock" should be
29469           "flintlock"!
29471 Tue Feb 21 14:13:08 GMT 2006  Olly Betts <olly@survex.com>
29473         * PLATFORMS: Updated.
29475 Tue Feb 21 14:12:47 GMT 2006  Olly Betts <olly@survex.com>
29477         * HACKING: Update the "how to do a release" list.
29479 Tue Feb 21 00:17:40 GMT 2006  Olly Betts <olly@survex.com>
29481         * NEWS,PLATFORMS,configure.ac: Updated for 0.9.4.
29483 Mon Feb 20 21:15:46 GMT 2006  Olly Betts <olly@survex.com>
29485         * api/omdocument.cc,api/omenquire.cc,api/omquery.cc,include/xapian/,
29486           queryparser/queryparser.cc: GCC 3.2 actually doesn't like
29487           __attribute__((deprecated)) on method definitions, so just
29488           put declarations of deprecated methods in the headers, and
29489           move definitions into the library.
29491 Mon Feb 20 16:04:33 GMT 2006  Olly Betts <olly@survex.com>
29493         * tests/api_anydb.cc,tests/api_db.cc,tests/api_nodb.cc: Update uses
29494           of deprecated methods and functions.
29496 Mon Feb 20 15:47:31 GMT 2006  Olly Betts <olly@survex.com>
29498         * include/xapian/document.h: __attribute__((deprecated)) doesn't
29499           work on method definitions with default parameters on GCC 3.2
29500           so fix header to overload instead.
29502 Mon Feb 20 13:44:14 GMT 2006  Olly Betts <olly@survex.com>
29504         * include/xapian/enquire.h: Add documentation comment for
29505           Enquire::set_sort_by_value_then_relevance().
29507 Sun Feb 19 23:18:09 GMT 2006  Olly Betts <olly@survex.com>
29509         * include/Makefile.am,include/xapian/: Flag deprecated methods such
29510           that the compiler gives a warning, for compilers which support
29511           such a feature.
29513 Sun Feb 19 22:58:55 GMT 2006  Olly Betts <olly@survex.com>
29515         * COPYING: Update second occurrence of old FSF address.
29517 Sun Feb 19 22:46:49 GMT 2006  Olly Betts <olly@survex.com>
29519         * README: Add pointer to HACKING.  Change "CVS access" to "SVN
29520           access".
29522 Sun Feb 19 01:46:00 GMT 2006  Olly Betts <olly@survex.com>
29524         * api/version.cc: Correct typo in name of function xapian_revision().
29526 Thu Feb 16 10:23:59 GMT 2006  Olly Betts <olly@survex.com>
29528         * xapian-config.in: Oops, fix previous fix (I'd pasted the substituted
29529           result from testing the patch...)
29531 Thu Feb 16 10:16:31 GMT 2006  Olly Betts <olly@survex.com>
29533         * PLATFORMS: Updated from tinderbox.
29535 Thu Feb 16 10:15:51 GMT 2006  Olly Betts <olly@survex.com>
29537         * xapian-config.in: Need to set exec_prefix and prefix at top of
29538           script as they're used by various @SUBSTITUTIONS@.
29540 Thu Feb 16 00:09:34 GMT 2006  Olly Betts <olly@survex.com>
29542         * NEWS,PLATFORMS,configure.ac: Updated for 0.9.3.
29544 Wed Feb 15 21:58:23 GMT 2006  Olly Betts <olly@survex.com>
29546         * xapian-config.in: Fix option loop to work on shells other than bash.
29548 Wed Feb 15 21:38:38 GMT 2006  Olly Betts <olly@survex.com>
29550         * include/xapian/database.h: Tweak wording of a documentation comment.
29552 Wed Feb 15 21:34:55 GMT 2006  Olly Betts <olly@survex.com>
29554         * include/xapian/queryparser.h: Fix documentation comments for the
29555           values of QueryParser::feature_flag so doxygen actually pulls out
29556           the documentation for them.  Add documentation for the parameters
29557           of QueryParser::parse_query().
29559 Wed Feb 15 21:26:48 GMT 2006  Olly Betts <olly@survex.com>
29561         * bin/quartzcheck.cc: If the database is too broken to open, emit a
29562           warning message and bump the error count.
29564 Wed Feb 15 21:23:38 GMT 2006  Olly Betts <olly@survex.com>
29566         * docs/queryparser.html: Document right-truncation.
29568 Wed Feb 15 21:08:37 GMT 2006  Olly Betts <olly@survex.com>
29570         * xapian-config.in: Fixed to output usage correctly if no arguments
29571           are specified.
29573 Mon Feb 13 17:43:08 GMT 2006  Olly Betts <olly@survex.com>
29575         * xapian-config.in: Expand dependency_libs recursively.  It's not
29576           *that* hard, and we're just storing up problems for the future
29577           by ignoring the issue.
29579 Mon Feb 13 16:57:36 GMT 2006  Olly Betts <olly@survex.com>
29581         * HACKING: Devlopers also need makeindex installed for documentation
29582           building.  Note that dvips and makeindex are usually packaged with
29583           TeX.
29585 Mon Feb 13 15:16:02 GMT 2006  Olly Betts <olly@survex.com>
29587         * configure.ac,xapian-config.in: Some Linux distros have an
29588           unhelpful policy of not packaging .la files, and on Linux
29589           link_all_deplibs_CXX=no so we don't actually need to link
29590           in the dependency_libs.  So use the value of link_all_deplibs_CXX
29591           from configure to control whether we link against dependency_libs.
29592         * xapian-config.in: Factor out common code into shell functions,
29593           and tidy up --help output.
29594         * xapian-config.in: Re entry "Tue May 11 20:55:56 BST 2004": the (C)
29595           dates I mined from CVS included a BrightStation (C), but the few
29596           fragments of that version which survive are actually from
29597           glib-config (or one of the myriad of *-config scripts which look
29598           very like it), and are just standard Bourne shell idioms anyway.
29600 Mon Feb 13 13:59:02 GMT 2006  Olly Betts <olly@survex.com>
29602         * PLATFORMS: td174 is gone.
29603         * PLATFORMS: Compaq C++ 7.1 seems to have better template support
29604           (but fails to link binaries).
29606 Mon Feb 13 12:22:23 GMT 2006  Olly Betts <olly@survex.com>
29608         * HACKING,testsuite/testsuite.cc: XAPIAN_TESTSUITE_PLAIN_OUTPUT
29609           -> XAPIAN_TESTSUITE_OUTPUT=plain.
29611 Sun Feb 12 18:29:55 GMT 2006  Olly Betts <olly@survex.com>
29613         * backends/database.cc,tests/api_nodb.cc: Trying to open a database
29614           for reading which doesn't exist now fails with DatabaseOpeningError
29615           instead of FeatureUnavailableError.  Added regression test
29616           nosuchdb1.
29618 Thu Feb 09 10:48:10 GMT 2006  Olly Betts <olly@survex.com>
29620         * net/socketserver.cc: Add missing '#include <iostream>'
29621           when TIMING_PATCH is defined.
29623 Wed Feb 08 08:22:09 GMT 2006  Olly Betts <olly@survex.com>
29625         * HACKING: Now use libtool 1.5.22 for generating snapshots and
29626           releases (includes a number of bug-fixes).
29627         * HACKING,docs/doxygen_api_header.html_tmpl,
29628           docs/doxygen_full_header.html_tmpl: Now use doxygen 1.4.6 for
29629           generating snapshots and releases (nicer output).
29630         * docs/doxygen_full_header.html_tmpl: Title "Internal Source
29631           Documentation" rather than "Full source documentation".
29633 Sun Feb 05 06:19:29 GMT 2006  Olly Betts <olly@survex.com>
29635         * queryparser/queryparser.lemony,tests/queryparsertest.cc: The
29636           QueryParser now recognises "AND NOT" as a synonym for "NOT".
29638 Mon Jan 16 18:19:26 GMT 2006  Olly Betts <olly@survex.com>
29640         * backends/quartz/quartz_utils.h: Fix compiler warning.
29642 Mon Jan 16 18:17:27 GMT 2006  Olly Betts <olly@survex.com>
29644         * HACKING,backends/flint/,backends/muscat36/,backends/quartz/,
29645           bin/quartzcompact.cc,bin/xapian-compact.cc,common/Makefile.am,
29646           common/safeerrno.h,net/,tests/btreetest.cc,tests/quartztest.cc,
29647           testsuite/backendmanager.cc,testsuite/testsuite.cc: Sorted out
29648           a cleaner workaround for Compaq C++'s <errno.h> oddity.
29650 Mon Jan 16 17:18:56 GMT 2006  Olly Betts <olly@survex.com>
29652         * common/safewindows.h: Fix typo in file description.
29654 Mon Jan 16 13:29:48 GMT 2006  Olly Betts <olly@survex.com>
29656         * backends/quartz/quartz_database.cc: Reverse order of errno includes
29657           which seems to make Compaq's C++ compiler happier.
29659 Sun Jan 15 23:52:01 GMT 2006  Olly Betts <olly@survex.com>
29661         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
29662           backends/quartz/btree.cc,backends/quartz/quartz_database.cc,
29663           backends/quartz/quartz_log.cc,configure.ac,net/socketcommon.cc,
29664           net/tcpclient.cc,testsuite/backendmanager.cc: Compaq C++ requires
29665           sys/errno.h to get ENOENT and most other EXXX codes defined.
29667 Sun Jan 15 23:41:15 GMT 2006  Olly Betts <olly@survex.com>
29669         * bin/xapian-compact.cc: Initialise 2 variables to avoid compiler
29670           warnings.
29672 Sun Jan 15 23:38:11 GMT 2006  Olly Betts <olly@survex.com>
29674         * xapian-config.in: If libxapian.la's dependency_libs contains
29675           another .la file, crudely transform to a pair of -L and -l
29676           options.  Ideally we should recursively pull in dependency_libs
29677           from that .la file, but that's too hard to do in sh.
29679 Sun Jan 15 21:43:26 GMT 2006  Olly Betts <olly@survex.com>
29681         * queryparser/queryparser.lemony,queryparser/queryparser.lt:
29682           Eliminate ParseAlloc's mallocProc parameter and ParseFree's freeProc
29683           parameter - we always pass malloc and free, and get warnings from
29684           some compilers because we're passing a C-linkage function for a
29685           C++-linkage function pointer.
29686         * testsuite/testsuite.cc,testsuite/testsuite.h: Fix functions
29687           registered as signal handlers and pass to atexit to have C linkage.
29689 Sun Jan 15 14:49:45 GMT 2006  Olly Betts <olly@survex.com>
29691         * backends/quartz/quartz_log.cc: #include <string.h> for strerror.
29693 Sun Jan 15 04:36:49 GMT 2006  Olly Betts <olly@survex.com>
29695         * include/xapian/queryparser.h,queryparser/queryparser.cc:
29696           Add Stopper::get_description() and SimpleStopper::get_description().
29698 Sat Jan 14 21:43:32 GMT 2006  Olly Betts <olly@survex.com>
29700         * configure.ac: Fix backwards logic in snprintf configure test.
29701           Also define SNPRINTF_ISO to be an snprintf with ISO C90 semantics
29702           for the return value (if one exists), with SNPRINTF being defined
29703           to any snprintf which at least performs truncation (which in many
29704           cases is sufficient).
29706 Sat Jan 14 04:47:33 GMT 2006  Olly Betts <olly@survex.com>
29708         * queryparser/queryparser.lt: Fix aCC warnings.
29710 Sat Jan 14 04:47:00 GMT 2006  Olly Betts <olly@survex.com>
29712         * common/utils.h: Fix aCC warning.
29714 Fri Jan 13 18:25:04 GMT 2006  Olly Betts <olly@survex.com>
29716         * configure.ac: Turn on more warnings for aCC; suppress existing
29717           warning ("Entire translation unit was empty") since it's not
29718           useful to us.
29720 Fri Jan 13 03:22:26 GMT 2006  Olly Betts <olly@survex.com>
29722         * configure.ac: The configure test for snprintf uses memcmp, so
29723           we need to "#include <string.h>" for it to work reliably.
29725 Wed Jan 11 03:14:30 GMT 2006  Olly Betts <olly@survex.com>
29727         * configure.ac: If not cross-compiling, try to actually run a test
29728           program built with the C++ compiler, not just link one.
29730 Wed Jan 11 03:06:28 GMT 2006  Olly Betts <olly@survex.com>
29732         * configure.ac: Note the library version info which 0.9.3 will
29733           probably need.
29735 Tue Jan 10 22:41:36 GMT 2006  Olly Betts <olly@survex.com>
29737         * configure.ac: Fix to actually skip the check for valgrind if
29738           VALGRIND is set to an empty value.
29740 Tue Jan 10 01:08:10 GMT 2006  Olly Betts <olly@survex.com>
29742         * PLATFORMS: Updates from the tinderbox.
29744 Mon Jan 09 01:35:57 GMT 2006  Olly Betts <olly@survex.com>
29746         * backends/muscat36/io_system.cc,bin/xapian-compact.cc,
29747           common/omdebug.cc: More sprintf tweaks.
29749 Mon Jan 09 00:58:33 GMT 2006  Olly Betts <olly@survex.com>
29751         * bin/xapian-compact.cc: Use snprintf if we have it.
29753 Sun Jan 08 03:51:52 GMT 2006  Olly Betts <olly@survex.com>
29755         * testsuite/backendmanager.cc: Fix conditional compilation of
29756           flint backend to use XAPIAN_BUILD_BACKEND_FLINT instead
29757           of XAPIAN_BUILD_BACKEND_QUARTZ.
29759 Sun Jan 08 02:11:30 GMT 2006  Olly Betts <olly@survex.com>
29761         * configure.ac: Disable flint backend by default if building for
29762           djgpp or msdos.
29764 Sun Jan 08 02:09:48 GMT 2006  Olly Betts <olly@survex.com>
29766         * backends/flint/flint_lock.cc: Cast NULL to (void*) to avoid
29767           "missing sentinel" warning from GCC4.
29769 Sat Jan 07 19:09:33 GMT 2006  Olly Betts <olly@survex.com>
29771         * HACKING,docs/tests.html: Merge the "running tests" section of
29772           docs/tests.html into the similar section in HACKING, and make
29773           docs/tests.html refer the reader to HACKING for more information.
29774         * HACKING,tests/apitest.cc: Remove OM_TEST_BACKEND.  You can now
29775           use the "-b" switch to apitest to control which backend is used
29776           so it's pretty much redundant.
29777         * HACKING,testsuite/testsuite.cc: Rename XAPIAN_SIG_DFL to
29778           XAPIAN_TESTSUITE_SIG_DFL.
29779         * HACKING,testsuite/testsuite.cc: Add XAPIAN_TESTSUITE_PLAIN_OUTPUT
29780           to disable use of ANSI escape sequences in test output.
29782 Sat Jan 07 09:13:06 GMT 2006  Olly Betts <olly@survex.com>
29784         * tests/queryparsertest.cc: Write top-bit set characters using \xXX
29785           notation to avoid warnings from Intel's C++ compiler.
29787 Sat Jan 07 07:13:25 GMT 2006  Olly Betts <olly@survex.com>
29789         * configure.ac: TYPE_SOCKLEN_T fails hard, so only run it if we've
29790           successfully run other socket tests.
29792 Sat Jan 07 05:29:39 GMT 2006  Olly Betts <olly@survex.com>
29794         * queryparser/accentnormalisingitor.h: #include <limits.h> for
29795           CHAR_BIT.
29797 Fri Jan 06 21:24:01 GMT 2006  Olly Betts <olly@survex.com>
29799         * bin/xapian-compact.cc: Fix printf type mismatch on 64 bit platforms.
29801 Fri Jan 06 18:05:30 GMT 2006  Olly Betts <olly@survex.com>
29803         * queryparser/queryparser.cc,queryparser/queryparser.lemony,
29804           queryparser/queryparser_internal.h: Replace pair<bool, string>
29805           with a simple class BoolAndString - the pair results in a
29806           4328 byte symbol on HP-UX which gets truncated (to 4000 bytes).
29808 Fri Jan 06 12:55:37 GMT 2006  Olly Betts <olly@survex.com>
29810         * PLATFORMS: Updated from tinderbox.
29812 Thu Jan 05 16:12:00 GMT 2006  Olly Betts <olly@survex.com>
29814         * configure.ac: Oops, remove hack left over from testing.
29816 Thu Jan 05 16:09:06 GMT 2006  Olly Betts <olly@survex.com>
29818         * configure.ac: Add sanity check for MS Windows that "find" is
29819           Unix-like find, not MSDOS-like.
29821 Thu Jan 05 04:27:29 GMT 2006  Olly Betts <olly@survex.com>
29823         * INSTALL,PLATFORMS,README: Updated.
29825 Mon Dec 19 12:53:38 GMT 2005  Olly Betts <olly@survex.com>
29827         * AUTHORS,PLATFORMS: Add success report for Fedora Core 4.
29829 Mon Dec 19 12:52:55 GMT 2005  Olly Betts <olly@survex.com>
29831         * include/xapian/database.h: Improve a couple of documentation
29832           comments.
29834 Sun Dec 11 01:33:58 GMT 2005  Olly Betts <olly@survex.com>
29836         * queryparser/queryparser.lemony: Fix handling of "+" terms in a query
29837           when the default query operator is AND.
29838         * tests/queryparsertest.cc: Add regression test.
29840 Fri Dec 09 05:54:33 GMT 2005  Olly Betts <olly@survex.com>
29842         * languages/api.cc: Check for malloc and calloc failing to allocate
29843           memory and throw an exception.  Richard has fix this upstream in
29844           snowball, so this is a temporary fix until we import a new version
29845           of snowball.
29847 Fri Dec 09 02:15:38 GMT 2005  Olly Betts <olly@survex.com>
29849         * api/omenquire.cc: Added assertions that the internal ptr isn't NULL
29850           to ESet::end() and ESet::get_description().
29852 Fri Dec 09 02:14:13 GMT 2005  Olly Betts <olly@survex.com>
29854         * HACKING: Note platforms valgrind now has solid support for; Improve
29855           phrasing in a few places.
29857 Thu Dec 08 23:13:09 GMT 2005  Olly Betts <olly@survex.com>
29859         * INSTALL: Update URL for stlport to sourceforge site, which seems to
29860           be where the action is now.
29862 Thu Dec 08 04:13:11 GMT 2005  Olly Betts <olly@survex.com>
29864         * testsuite/testsuite.cc: Fix testsuite harness to work with valgrind
29865           on 64 bit platforms (it's not documented, but VALGRIND_COUNT_LEAKS
29866           requires the count parameters to be 64 bit on such platforms - i.e.
29867           long rather than int as we were using).
29869 Tue Nov 01 13:22:50 GMT 2005  Olly Betts <olly@survex.com>
29871         * PLATFORMS: Sourceforge have a ppc64 linux box.  Xapian builds and
29872           works out of the box, so add success report for this platform.
29874 Thu Oct 27 09:32:24 BST 2005  Fabrice Colin
29876         * xapian.spec.in: Invoke %setup correctly.
29878 Sat Oct 01 03:25:50 BST 2005  Olly Betts <olly@survex.com>
29880         * bin/xapian-compact.cc: Added "--multipass" option to merge postlists
29881           in pairs or triples until all are merged.  Generally this is faster
29882           than an N-way merge, but it does require more disk space for
29883           temporary files so it's not the default.
29885 Fri Sep 30 18:02:32 BST 2005  Olly Betts <olly@survex.com>
29887         * include/xapian/enquire.h: Give pointer to replacements for the
29888           deprecated Enquire sorting methods.
29890 Wed Sep 28 02:16:03 BST 2005  Olly Betts <olly@survex.com>
29892         * bin/xapian-compact.cc: Use a vector<string> to store the list of
29893           source databases, in preparation for merging multiple postlist
29894           tables in more than one pass.
29896 Mon Sep 26 22:22:24 BST 2005  Olly Betts <olly@survex.com>
29898         * .: svn:ignore docsource.mk.
29900 Mon Sep 26 19:54:15 BST 2005  Olly Betts <olly@survex.com>
29902         * bin/: svn:ignore xapian-compact.
29904 Mon Sep 26 19:50:13 BST 2005  Olly Betts <olly@survex.com>
29906         * backends/flint/flint_positionlist.cc: Remove trailing whitespace.
29908 Wed Sep 21 01:31:23 BST 2005  Olly Betts <olly@survex.com>
29910         * api/Makefile.am: Fixed VPATH build which was broken by the addition
29911           of version.cc.
29913 Tue Sep 20 23:38:05 BST 2005  Olly Betts <olly@survex.com>
29915         * backends/flint/flint_lock.cc: Don't pass NULL for second parameter
29916           of execl().
29918 Tue Sep 20 21:32:04 BST 2005  Olly Betts <olly@survex.com>
29920         * api/Makefile.am,api/version.cc,include/xapian/version_h.cc: Add 4
29921           functions to report version information for the library version
29922           being used (which may not be the same as that compiled against
29923           if shared libraries are in use):  xapian_version_string(),
29924           xapian_major_version(), xapian_minor_version(), xapian_revision().
29926 Sat Sep 17 14:07:32 BST 2005  Richard Boulton <richard@tartarus.org>
29928         * backends/flint/flint_lock.cc: Pass two NULLs to execl() to avoid
29929           getting a warning ("not enough variable arguments to fit a
29930           sentinel", observed on Ubuntu breezy powerpc).  Reported by
29931           Sidnei da Silva.
29933 Wed Sep 14 23:54:14 BST 2005  Olly Betts <olly@survex.com>
29935         * HACKING: Now generate snapshots and releases with automake 1.9.6
29936           (was 1.9.5) and libtool 1.5.20 (was 1.5.18).
29938 Tue Aug 30 14:01:55 BST 2005  Olly Betts <olly@survex.com>
29940         * backends/inmemory/inmemory_database.h: Forward declare class
29941           InMemoryDatabase to fix compilation with GCC 4.0.1.
29943 Fri Aug 19 12:13:39 BST 2005  Olly Betts <olly@survex.com>
29945         * backends/quartz/quartz_postlist.cc,backends/flint/flint_postlist.cc:
29946           Correct uses of termcount which should be doccount.
29948 Fri Aug 19 11:48:51 BST 2005  Olly Betts <olly@survex.com>
29950         * include/xapian/enquire.h: Fix prototype for ESet::operator[] to
29951           take parameter of type termcount instead of doccount.
29953 Wed Aug 17 11:50:54 BST 2005  Olly Betts <olly@survex.com>
29955         * common/safewindows.h: Fix compilation for cygwin.
29957 Tue Aug 16 16:01:36 BST 2005  Olly Betts <olly@survex.com>
29959         * backends/flint/flint_types.h,backends/quartz/quartz_types.h:  Using
29960           a double to hold the total document length would be a bad idea as
29961           we need to store it exactly so kill FIXME comments that suggest
29962           perhaps we should.
29964 Fri Jul 15 11:11:35 BST 2005  Olly Betts <olly@survex.com>
29966         * configure.ac,NEWS,PLATFORMS: Updated for 0.9.2.
29968 Fri Jul 15 02:31:11 BST 2005  Olly Betts <olly@survex.com>
29970         * preautoreconf: Change directory to the directory that the
29971           preautoreconf script is in before doing anything else.
29973 Fri Jul 15 01:02:29 BST 2005  Olly Betts <olly@survex.com>
29975         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in,configure.ac:
29976           Eliminate TOP_SRCDIR and TOP_BUILDDIR - it's better to just use
29977           top_srcdir and top_builddir directly.
29979 Fri Jul 15 00:48:39 BST 2005  Olly Betts <olly@survex.com>
29981         * configure.ac: Fix superfluous shell quoting.
29983 Fri Jul 15 00:28:40 BST 2005  Olly Betts <olly@survex.com>
29985         * configure.ac,docs/Makefile.am,preautoreconf,Makefile.am: Generate
29986           the list of source files to feed to doxygen by inspecting all the
29987           Makefile.am files prior to running autoreconf rather than by using
29988           "find" when the user runs ./configure.  This speeds up configure,
29989           avoids generating docs for random .cc and .h files which aren't
29990           part of xapian-core, and avoids problems with picking up FIND.EXE
29991           on MS Windows.
29993 Thu Jul 14 12:49:36 BST 2005  Olly Betts <olly@survex.com>
29995         * common/,matcher/multimatch.cc,matcher/networkmatch.cc,
29996           matcher/networkmatch.h,net/socketclient.cc,net/socketserver.cc,
29997           tests/api_db.cc: Implement sorting on a value with the remote
29998           backend.
30000 Wed Jul 13 01:25:17 BST 2005  Olly Betts <olly@survex.com>
30002         * include/xapian/database.h,include/xapian/dbfactory.h,
30003           net/socketclient.cc: Regularise horizontal whitespace.
30005 Tue Jul 05 03:03:57 BST 2005  Olly Betts <olly@survex.com>
30007         * include/xapian/queryparser.h: Oops, failed to check in header
30008           changes for last change.
30010 Mon Jul 04 15:50:55 BST 2005  Olly Betts <olly@survex.com>
30012         * queryparser/queryparser.lemony,queryparser/queryparser.cc:
30013           Add flag FLAG_BOOLEAN_ANY_CASE which tells the QueryParser that
30014           boolean operators such as "AND", "OR", and "NEAR" should be
30015           recognised even if they aren't fully capitalised (so "and",
30016           "And", "aNd", etc will work too).  Add flag FLAG_WILDCARD which
30017           tells the QueryParser to allow right truncation e.g. "xap*".
30018         * tests/queryparsertest.cc: Add tests for FLAG_WILDCARD.
30020 Sun Jul 03 15:24:12 BST 2005  Olly Betts <olly@survex.com>
30022         * backends/database.cc: Fixed to auto-detect database type when
30023           opening an existing Flint database as a WritableDatabase.
30025 Sat Jul 02 18:49:22 BST 2005  Olly Betts <olly@survex.com>
30027         * tests/queryparsertest.cc: Add test case: "-site:xapian.org mail".
30029 Sat Jul 02 18:49:03 BST 2005  Olly Betts <olly@survex.com>
30031         * common/Makefile.am: Ship safewindows.h header.
30033 Sat Jul 02 18:04:18 BST 2005  Olly Betts <olly@survex.com>
30035         * bin/quartzcompact.cc,bin/xapian-compact.cc,
30036           backends/muscat36/io_system.cc,backends/quartz/btree.cc,
30037           backends/quartz/quartz_log.cc,backends/quartz/quartz_database.cc,
30038           backends/flint/,common/,net/,tests/,testsuite/backendmanager.cc,
30039           testsuite/testsuite.cc: Assorted tweaks towards allowing
30040           compilation with MSVC.
30042 Sat Jul 02 05:08:54 BST 2005  Olly Betts <olly@survex.com>
30044         * backends/quartz/: Always define WIN32_LEAN_AND_MEAN before
30045           including windows.h to reduce the amount of stuff it includes
30046           and speed up builds; Eliminate Btree::max_key_len as MSVC
30047           doesn't like the way we define it and it actually seems
30048           simpler to just use BTREE_MAX_KEY_LEN everywhere anyway.
30049         * backends/quartz/btree.cc: Added a few more assertions.
30051 Sat Jul 02 04:11:01 BST 2005  Olly Betts <olly@survex.com>
30053         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fixed to
30054           handle "-site:microsoft.com" where site is a boolean prefix.
30055         * queryparser/Makefile.am: Add dependency to generate
30056           queryparser_token.h.
30058 Thu Jun 30 02:14:16 BST 2005  Olly Betts <olly@survex.com>
30060         * testsuite/testsuite.cc: Update URL for valgrind FAQ in comment.
30062 Thu Jun 30 00:11:52 BST 2005  Olly Betts <olly@survex.com>
30064         * include/xapian/enquire.h: More explicit explanation of the
30065           "descending docid with boolean weighting" trick for fast
30066           date ordered searching.
30068 Wed Jun 29 13:16:13 BST 2005  Olly Betts <olly@survex.com>
30070         * NEWS: Fix typo: "configurec" -> "configure".
30072 Mon Jun 27 04:21:34 BST 2005  Olly Betts <olly@survex.com>
30074         * xapian.spec.in: Package xapian-compact.
30076 Mon Jun 27 03:41:23 BST 2005  Olly Betts <olly@survex.com>
30078         * backends/flint/flint_positionlist.cc,tests/api_wrdb.cc: Fixed
30079           mispacking of length for Flint positionlists with more than 127
30080           entries, and added regression test longpositionlist1.
30082 Sun Jun 26 02:04:33 BST 2005  Olly Betts <olly@survex.com>
30084         * bin/xapian-compact.cc,backends/flint/flint_cursor.h: Let
30085           PostlistCursor take ownership of the FlintTable it's iterating over
30086           which makes clean-up tidier.
30087         * bin/xapian-compact.cc: We were accidentally skipping the first
30088           entry in various tables (which essentially meant the first
30089           document from each database would go missing when merging
30090           databases).
30092 Sat Jun 25 23:45:42 BST 2005  Olly Betts <olly@survex.com>
30094         * api/omdatabase.cc: Tweak get_lastdocid() code to be a little
30095           clearer.
30097 Wed Jun 22 20:50:43 BST 2005  Olly Betts <olly@survex.com>
30099         * configure.ac,include/xapian/version.h.in,include/xapian/version_h.cc,
30100           include/Makefile.am: Eliminate use of "ln -s" when generating
30101           include/xapian/version.h since it seems to cause problems on Solaris
30102           in some setups and isn't really necessary.  Also add dependency
30103           mechanism so version.h gets regenerated when the template is
30104           changed.
30106 Wed Jun 22 18:47:05 BST 2005  Olly Betts <olly@survex.com>
30108         * docs/intro_ir.html: Citeseer has moved, so update link.
30110 Mon Jun 20 13:33:42 BST 2005  Olly Betts <olly@survex.com>
30112         * configure.ac: -Wshadow causes false positives with GCC 3.0.4, so
30113           only enable it for 3.1 and up.
30115 Mon Jun 20 03:09:07 BST 2005  Olly Betts <olly@survex.com>
30117         * queryparser/queryparser.lemony: "utilpy" -> "utility"!
30119 Fri Jun 17 19:54:44 BST 2005  Olly Betts <olly@survex.com>
30121         * COPYING: Update FSF address.
30123 Thu Jun 16 18:43:33 BST 2005  Olly Betts <olly@survex.com>
30125         * backends/flint/flint_table.cc: Fix warnings from older GCC versions.
30126         * backends/flint/flint_lock.cc: '#include <signal.h>' so that SIGHUP
30127           gets defined reliably.
30129 Thu Jun 16 17:54:39 BST 2005  Olly Betts <olly@survex.com>
30131         * bin/Makefile.am,bin/xapian-compact.cc: Added new "xapian-compact"
30132           program which can compact and merge flint databases in a similar
30133           way to how quartzcompact does for quartz databases.
30135 Thu Jun 16 01:22:45 BST 2005  Olly Betts <olly@survex.com>
30137         * configure.ac: Check for spaces in build directory, source directory,
30138           or install prefix and die with a helpful message.
30140 Wed Jun 15 01:00:11 BST 2005  Olly Betts <olly@survex.com>
30142         * backends/flint/flint_lock.cc: It seems we need to explicitly kill
30143           the child process.  Otherwise when we have two databases locked
30144           just closing the connection doesn't cause the child to die.  I
30145           don't understand why it's needed, but this fix is at least clean.
30147 Mon Jun 13 00:13:33 BST 2005  Olly Betts <olly@survex.com>
30149         * backends/flint/flint_alltermslist.cc,
30150           backends/flint/flint_alltermslist.h,
30151           backends/flint/flint_database.cc: Rewrite of FlintAllTermsList
30152           with several fewer member variables.  Also fixes a bug (the old
30153           version wasn't ignoring the metainfo entry so tests were failing).
30155 Sun Jun 12 13:08:16 BST 2005  Olly Betts <olly@survex.com>
30157         * backends/quartz/quartz_alltermslist.cc: Disable assertion which is
30158           incorrect in a corner case.
30159         * tests/api_db.cc: Add test_specialterms2 as a regression test.
30161 Sun Jun 12 02:03:52 BST 2005  Olly Betts <olly@survex.com>
30163         * backends/flint/flint_positionlist.cc: Encoding and decoding of
30164           position list size, and first and last entries didn't match.
30165           Reworked to match using a slightly smaller encoding.
30166         * backends/flint/flint_metafile.cc: Bumped format version.
30168 Sun Jun 12 02:02:35 BST 2005  Olly Betts <olly@survex.com>
30170         * backends/flint/flint_table.cc: We were failing to append "DB" to the
30171           path when opening a table for reading - fixed.
30173 Sun Jun 12 02:00:30 BST 2005  Olly Betts <olly@survex.com>
30175         * testsuite/backendmanager.cc: When a flint database was requested, we
30176           were incorrectly creating a quartz database instead - fixed.
30178 Sat Jun 11 17:53:12 BST 2005  Olly Betts <olly@survex.com>
30180         * bin/quartzcompact.cc: Fix mis-repacking of keys in positionlist
30181           table when merging several databases.
30183 Thu Jun 09 01:06:35 BST 2005  Olly Betts <olly@survex.com>
30185         * Makefile.am,configure.ac: Pass automake options to AM_INIT_AUTOMAKE
30186           rather than specifying them in Makefile.am.  This way, the version
30187           requirements for autoconf and automake are stated close together.
30189 Mon Jun 06 19:49:36 BST 2005  Olly Betts <olly@survex.com>
30191         * HACKING: Minor updates to release checklist.
30193 Mon Jun 06 17:44:19 BST 2005  Olly Betts <olly@survex.com>
30195         * NEWS,configure.ac: Updated for 0.9.1.
30197 Mon Jun 06 17:28:34 BST 2005  Olly Betts <olly@survex.com>
30199         * configure.ac: Describe CC_FOR_BUILD in configure --help output.
30201 Mon Jun 06 16:00:26 BST 2005  Olly Betts <olly@survex.com>
30203         * PLATFORMS: Updated for 0.9.1.
30205 Fri Jun 03 03:49:33 BST 2005  Olly Betts <olly@survex.com>
30207         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Fixed
30208           compilation failure on mingw.
30210 Fri Jun 03 01:58:08 BST 2005  Olly Betts <olly@survex.com>
30212         * PLATFORMS: Updated from tinderbox.
30214 Fri Jun 03 00:46:00 BST 2005  Olly Betts <olly@survex.com>
30216         * HACKING,NEWS: Snapshot and release tarballs are now bootstrapped
30217           using libtool 1.5.18 and automake 1.9.5 (though neither is currently
30218           an enforced requirement for bootstrapping).
30220 Thu Jun 02 17:36:36 BST 2005  Olly Betts <olly@survex.com>
30222         * NEWS: First draft of release notes for 0.9.1.
30224 Thu Jun 02 02:05:47 BST 2005  Olly Betts <olly@survex.com>
30226         * backends/flint/flint_record.cc: Fix get_doccount() to not return
30227           one too low now that the special entry is no longer in the record
30228           table!
30230 Wed Jun 01 12:41:59 BST 2005  Olly Betts <olly@survex.com>
30232         * backends/flint/flint_positionlist.cc: Placate Sun's C++ compiler.
30234 Tue May 31 19:31:24 BST 2005  Olly Betts <olly@survex.com>
30236         * backends/flint/flint_positionlist.h,
30237           backends/flint/flint_positionlist.cc,
30238           backends/flint/flint_metafile.cc: positionlist entries are now
30239           stored using interpolative coding (which is significantly more
30240           compact).
30242 Mon May 30 01:48:17 BST 2005  Olly Betts <olly@survex.com>
30244         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h:  Added
30245           locking code for MS Windows (untested).
30247 Sun May 29 01:00:41 BST 2005  Olly Betts <olly@survex.com>
30249         * HACKING,NEWS,testsuite/testsuite.h: Fixed spelling mistakes.
30251 Sat May 28 22:51:15 BST 2005  Olly Betts <olly@survex.com>
30253         * tests/: svn:ignore .flint/ subdirectory.
30254         * tests/Makefile.am: Remove .flint subdirectory on 'make clean'.
30256 Sat May 28 22:45:24 BST 2005  Olly Betts <olly@survex.com>
30258         * docs/quartzdesign.html: Remove warning that quartz is still in
30259           development.
30261 Sat May 28 16:24:43 BST 2005  Olly Betts <olly@survex.com>
30263         * backends/flint/flint_lock.h: Removed unused FlintLock method
30264           'operator int()' which was confusing Sun's C++ compiler.
30266 Sat May 28 16:18:11 BST 2005  Olly Betts <olly@survex.com>
30268         * include/xapian/query.h: Removed superfluous "Query::" which was
30269           causing the build to fail with aCC.
30271 Sat May 28 14:31:33 BST 2005  Olly Betts <olly@survex.com>
30273         * backends/flint/flint_metafile.cc: Added missing '#include <errno.h>'.
30275 Sat May 28 14:15:36 BST 2005  Olly Betts <olly@survex.com>
30277         * backends/flint/flint_positionlist.cc: Simplify code a bit.
30279 Sat May 28 02:01:12 BST 2005  Olly Betts <olly@survex.com>
30281         * backends/flint/: Move the special item holding the total document
30282           length and doc id high water mark from the record table to the
30283           postlist table.  This means that when appending documents, the
30284           insertion point will now always be at the end of the record table.
30285           We need to jump around the postlist table to merge anyway.
30287 Sat May 28 00:42:25 BST 2005  Olly Betts <olly@survex.com>
30289         * backends/flint/flint_metafile.cc: Change metafile magic to be
30290           different from quartz, and make the metafile version a datestamp
30291           which we'll change each time the format changes; check the return
30292           value of close on the metafile.
30294 Fri May 27 22:09:45 BST 2005  Olly Betts <olly@survex.com>
30296         * backends/Makefile.am,backends/flint/: Implement new fork+fcntl+exec
30297           based locking;  Fix new GCC warnings.
30299 Fri May 27 22:06:14 BST 2005  Olly Betts <olly@survex.com>
30301         * api/omquery.cc: Missed a warning fix.
30303 Fri May 27 22:04:18 BST 2005  Olly Betts <olly@survex.com>
30305         * backends/quartz/btree.cc,backends/quartz/btree.h,
30306           backends/quartz/quartz_postlist.cc,common/omtime.h,matcher/,
30307           net/socketserver.cc,net/socketcommon.cc,net/socketclient.cc,
30308           testsuite/btreecheck.h,testsuite/testsuite.cc: Fix GCC warnings
30309           from new flags.
30311 Fri May 27 20:06:52 BST 2005  Olly Betts <olly@survex.com>
30313         * queryparser/queryparser.lemony: Add missing '#include <config.h>'.
30315 Fri May 27 12:20:03 BST 2005  Olly Betts <olly@survex.com>
30317         * common/omdebug.h: Oops, change to static_cast reveals that we were
30318           discarding const (harmlessly).
30320 Fri May 27 12:16:03 BST 2005  Olly Betts <olly@survex.com>
30322         * common/omdebug.h: Replace C style cast with static_cast<>.
30324 Fri May 27 12:07:48 BST 2005  Olly Betts <olly@survex.com>
30326         * configure.ac: -Wendif should be -Wendif-labels.
30328 Wed May 25 20:41:39 BST 2005  Olly Betts <olly@survex.com>
30330         * configure.ac: Pass more -W flags to g++ (including -Wundef which
30331           caught the getopt problem fixed by the previous commit).
30333 Wed May 25 20:32:35 BST 2005  Olly Betts <olly@survex.com>
30335         * getopt/getopt.cc: Added accidentally pruned #define so that getopt
30336           code isn't compiled in when the system uses glibc.
30338 Wed May 25 18:36:41 BST 2005  Olly Betts <olly@survex.com>
30340         * configure.ac: Add -Wredundant-decls to the default CXXFLAGS for GCC.
30342 Wed May 25 03:33:34 BST 2005  Olly Betts <olly@survex.com>
30344         * tests/apitest.cc,tests/api_db.cc,tests/api_db.h,
30345           testsuite/backendmanager.cc,testsuite/backendmanager.h:
30346           apitest now runs tests on flint as well.
30348 Wed May 25 03:20:12 BST 2005  Olly Betts <olly@survex.com>
30350         * backends/database.cc: When automatically determining which backend
30351           to use when creating a WritableDatabase, don't try to open it as
30352           both Flint *AND* Quartz (an "else" was missing).
30354 Wed May 25 03:19:21 BST 2005  Olly Betts <olly@survex.com>
30356         * backends/flint/flint_btreebase.cc: Fix typo in code which prevented
30357           a flint database from being opened.
30359 Wed May 25 01:10:51 BST 2005  Olly Betts <olly@survex.com>
30361         * include/xapian/version.h.in,include/xapian/dbfactory.h,
30362           include/xapian/queryparser.h,backends/quartz/,backends/flint/:
30363           Flint backend hooked in fully, and everything now builds once
30364           more.
30366 Tue May 24 02:30:39 BST 2005  Olly Betts <olly@survex.com>
30368         * HACKING: Add "email Fabrice" to the release checklist so that RPM
30369           spec files don't lag behind.  The new svn-tag-release script
30370           actually builds the release tarballs rather than just copying
30371           snapshots like cvs-tag-release did, so document that.
30373 Tue May 24 01:21:18 BST 2005  Olly Betts <olly@survex.com>
30375         * include/xapian/queryparser.h: Added missing documentation comments.
30377 Mon May 23 02:36:06 BST 2005  Olly Betts <olly@survex.com>
30379         * configure.ac,backends/database.cc,backends/Makefile.am,
30380           backends/flint/: Cloned the quartz backend to form the basis of the
30381           new flint backend.  Currently it's the same except that the quartz
30382           log feature has been removed.  When creating a database without a
30383           specified backend, quartz is still used unless the environmental
30384           variable XAPIAN_PREFER_FLINT is set to a non-empty value.
30386 Sat May 21 20:58:48 BST 2005  Olly Betts <olly@survex.com>
30388         * xapian.spec.in: Remove bogus %setup line left over from when we
30389           packaged xapian-core and xapian-examples together from separate
30390           tarballs.
30392 Thu May 19 01:12:27 BST 2005  Olly Betts <olly@survex.com>
30394         * bin/quartzcheck.cc: Fixed corner case where you couldn't check a
30395           single Btree table which was just the DB and baseA/baseB files
30396           in a directory (Xapian doesn't produce anything like this, but
30397           btreetest does while unit testing the Btree code).
30399 Wed May 18 16:59:23 BST 2005  Olly Betts <olly@survex.com>
30401         * api/omquery.cc,include/xapian/query.h: Put Query::get_terms_end()
30402           inline in header.
30404 Wed May 18 16:41:56 BST 2005  Olly Betts <olly@survex.com>
30406         * api/omquery.cc,tests/api_nodb.cc: Fix SEGV on get_terms_begin()
30407           on an empty Query object.
30409 Mon May 16 22:58:09 BST 2005  Olly Betts <olly@survex.com>
30411         * api/omqueryinternal.cc: Fixed compilation with --enable-debug.
30413 Sat May 14 01:02:33 BST 2005  Olly Betts <olly@survex.com>
30415         * docs/doxygen_full_conf.in: Fix lingering DOXYGEN_HAVE_DOT reference.
30417 Sat May 14 00:36:14 BST 2005  Olly Betts <olly@survex.com>
30419         * HACKING: Update information about the SVN tag name to use for
30420           debian files.
30422 Fri May 13 23:21:54 BST 2005  Olly Betts <olly@survex.com>
30424         * HACKING: Updated release instructions to refer to SVN.
30426 Fri May 13 20:58:15 BST 2005  Olly Betts <olly@survex.com>
30428         * PLATFORMS: Updated for 0.9.0.
30430 Fri May 13 02:47:42 BST 2005  Olly Betts <olly@survex.com>
30432         * include/xapian/queryparser.h: Fix for Sun's C++ compiler.
30434 Fri May 13 00:09:07 BST 2005  Olly Betts <olly@survex.com>
30436         * NEWS,configure.ac: Updated for 0.9.0.
30438 Thu May 12 18:54:11 BST 2005  Olly Betts <olly@survex.com>
30440         * docs/doxygen_api_conf.in,docs/Makefile.am: Fix to generate docs
30441           for all backend factory functions like 0.8.5 did.
30443 Thu May 12 16:59:22 BST 2005  Olly Betts <olly@survex.com>
30445         * backends/database.cc,backends/Makefile.am,include/xapian/database.h,
30446           include/xapian/dbfactory.h,include/xapian.h,include/Makefile.am:
30447           Split off database factory methods into xapian/dbfactory.h - this
30448           allows us to fix recent breakage in VPATH builds (caused by the
30449           need to include the generated file xapian/version.h from
30450           xapian/database.h) without modifying almost every Makefile.am.
30452 Wed May 11 16:52:41 BST 2005  Olly Betts <olly@survex.com>
30454         * queryparser/queryparser.lemony: Move prefixed, bracketed
30455           subexpression to be an alternative for stop_term which allows
30456           "term prefix:(term2 term3)" to parse correctly. Also move
30457           non-prefixed, bracketed subexpression to be an alternative
30458           for stop_term - this doesn't change how things parse, but
30459           makes the grammar simpler.
30460         * tests/queryparsertest.cc: Added regression test for the above.
30461         * tests/Makefile.am,tests/queryparsertest.cc: Reworked queryparsertest
30462           to use the standard testsuite harness.
30464 Wed May 11 16:09:32 BST 2005  Olly Betts <olly@survex.com>
30466         * include/xapian/query.h: Fix OP_ELITE_SET at 10 (the value it had
30467           in 0.8.5).
30469 Tue May 10 22:56:45 BST 2005  Olly Betts <olly@survex.com>
30471         * docs/Makefile.am: Removed check for DOXYGEN_HAVE_DOT which I removed
30472           recently.
30474 Tue May 10 01:09:01 BST 2005  Olly Betts <olly@survex.com>
30476         * queryparser/queryparser.lemony: Removed state parameter from
30477           TermList::add_term() since it is no longer used.
30479 Mon May 09 20:56:40 BST 2005  Olly Betts <olly@survex.com>
30481         * docs/Makefile.am: Explicitly set the pool_size for latex, because we
30482           seem to overflow the default setting on many systems.
30483         * docs/Makefile.am: Use $(MAKE) instead of make.
30485 Sun May 08 23:22:37 BST 2005  Olly Betts <olly@survex.com>
30487         * configure.ac: Corrected $CC -> $CXX to fix bogus message "Checking
30488           for  option to enable ANSI C++ mode".
30489         * configure.ac: If any tools needed for documentation are missing
30490           and we're in maintainer mode, die with a suitable error in
30491           configure rather than with strange errors when building the
30492           documentation.
30494 Sun May 08 01:43:55 BST 2005  Olly Betts <olly@survex.com>
30496         * include/xapian/queryparser.h,queryparser/queryparser.lemony,
30497           queryparser/queryparser_internal.h,queryparser/queryparser.cc:
30498           Remove QueryParser::termlist_begin() and termlist_end() since
30499           you can just use Query::terms_begin() and terms_end() on the
30500           Query object returned by QueryParser::parse_query().
30502 Thu May 05 01:00:26 BST 2005  Olly Betts <olly@survex.com>
30504         * common/utils.cc: On WIN32, don't define NOMINMAX if it is already
30505           defined.
30507 Wed May 04 00:52:04 BST 2005  Olly Betts <olly@survex.com>
30509         * matcher/bm25weight.cc: Avoid needing document length if we're simply
30510           going to multiply it by zero!
30512 Tue May 03 14:07:20 BST 2005  Olly Betts <olly@survex.com>
30514         * HACKING: CVS -> SVN;  Note that tabs should be 8 spaces.
30516 Thu Apr 28 21:13:17 BST 2005  Olly Betts <olly@survex.com>
30518         * include/xapian/database.h: Don't declare the backend factory
30519           functions if the corresponding backend has been disabled.  This
30520           means that trying to use a disabled backend will be caught at
30521           compile time rather than link time.
30523 Thu Apr 28 21:12:43 BST 2005  Olly Betts <olly@survex.com>
30525         * docs/intro_ir.html: Corrected two errors.
30527 Wed Apr 27 23:04:53 BST 2005  Olly Betts <olly@survex.com>
30529         * configure.ac,include/xapian/version.h.in: Define
30530           XAPIAN_HAS_xxx_BACKEND for each backend which is enabled.  The
30531           bindings need this, and user code might find it useful too.
30533 Wed Apr 27 03:31:50 BST 2005  Olly Betts <olly@survex.com>
30535         * api/omdatabase.cc,api/ompostlistiterator.cc,
30536           api/omtermlistiterator.cc,include/xapian/,
30537           queryparser/queryparser.cc: Where end iterator is just
30538           FooIterator(NULL) put it inline in the header for efficiency.
30539           If we ever need to change an implementation, we can easily move
30540           methods back into the library and bump the library version suitably.
30542 Wed Apr 27 02:40:43 BST 2005  Olly Betts <olly@survex.com>
30544         * examples/quest.cc,include/xapian/queryparser.h,
30545           queryparser/queryparser.cc,tests/queryparsertest.cc: Rename
30546           QueryParser::set_stemming_options() to set_stemming_strategy()
30547           - it's a better name and avoids confusion with the old deprecated
30548           method called set_stemming_options().
30549         * examples/quest.cc: Added stopword handling.
30551 Wed Apr 27 02:39:33 BST 2005  Olly Betts <olly@survex.com>
30553         * include/xapian/enquire.h: Fixed documentation comment.
30555 Sun Apr 24 03:02:47 BST 2005  Olly Betts <olly@survex.com>
30557         * api/omstem.cc: Simplified Xapian::Stem::Internal.
30559 Sun Apr 24 02:21:22 BST 2005  Olly Betts <olly@survex.com>
30561         * tests/api_nodb.cc: Extended stemlang1 to check that trying to create
30562           a stemmer for a non-existent language throws InvalidArgumentError.
30564 Fri Apr 22 01:20:57 BST 2005  Olly Betts <olly@survex.com>
30566         * include/xapian/document.h: Clearer documentation comments.
30568 Thu Apr 21 15:03:42 BST 2005  Olly Betts <olly@survex.com>
30570         * docs/overview.html,include/xapian/query.h: Removed lingering
30571           references to OP_WEIGHT_CUTOFF.
30573 Thu Apr 21 01:46:51 BST 2005  Olly Betts <olly@survex.com>
30575         * PLATFORMS: Added success report for Ubuntu 5.04 on x86_64.
30577 Mon Apr 18 02:54:10 BST 2005  Olly Betts <olly@survex.com>
30579         * docs/stemming.html: Stemming appears to be applicable to Japanese
30580           so don't say it isn't!
30582 Sat Apr 16 01:08:22 BST 2005  Olly Betts <olly@survex.com>
30584         * PLATFORMS: Updated from tinderbox.
30586 Fri Apr 15 23:18:58 BST 2005  Olly Betts <olly@survex.com>
30588         * languages/: Remove lingering .c versions of snowball generated
30589           sources.
30591 Fri Apr 15 02:05:27 BST 2005  Olly Betts <olly@survex.com>
30593         * include/xapian/queryparser.h,queryparser/queryparser_internal.h,
30594           queryparser/queryparser.cc: Implemented QueryParser::set_database()
30595           method.
30596         * queryparser/queryparser.lemony: Allow searches for C#, etc.  If a
30597           database has been set, for this and + and - suffixes, check if the
30598           term actually exists, and if not, ignore the suffix if the
30599           unsuffixed term exists.
30600         * tests/queryparsertest.cc: Added tests for # suffix.
30602 Thu Apr 14 23:39:57 BST 2005  Olly Betts <olly@survex.com>
30604         * include/xapian/stem.h: Rewritten with better documentation comments.
30605         * include/xapian/stem.h: Added operator() as preferred alternative
30606           to stem_word().
30607         * api/omstem.cc,include/xapian/stem.h: Simplified by restructuring
30608           to eliminate a few internal methods.
30610 Thu Apr 14 23:35:47 BST 2005  Olly Betts <olly@survex.com>
30612         * queryparser/queryparser.cc: Make get_description() debug tracing
30613           message category INTRO not API.
30615 Thu Apr 14 19:57:06 BST 2005  Olly Betts <olly@survex.com>
30617         * include/xapian/queryparser.h,queryparser/queryparser.cc: Added
30618           QueryParser::get_description() method (not very descriptive yet!)
30620 Thu Apr 14 03:30:09 BST 2005  Olly Betts <olly@survex.com>
30622         * include/xapian/queryparser.h: Fixed to only include the xapian
30623           headers we actually depend on.
30624         * include/xapian/queryparser.h: Added \file and \brief documentation
30625           comments.
30627 Thu Apr 14 02:50:36 BST 2005  Olly Betts <olly@survex.com>
30629         * examples/quest.cc,include/xapian.h,tests/queryparsertest.cc:
30630           Change xapian.h to automatically include xapian/queryparser.h
30631           and fix direct includes of xapian/queryparser.h in tests and
30632           examples.
30634 Thu Apr 14 01:48:39 BST 2005  Olly Betts <olly@survex.com>
30636         * include/xapian/queryparser.h: Added Xapian::SimpleStopper which
30637           should be sufficient for the majority of uses.
30638         * include/xapian/queryparser.h,queryparser/queryparser_internal.h,
30639           queryparser/queryparser.cc: Changed QueryParser::set_stopper() to
30640           take a const pointer.
30642 Thu Apr 07 15:57:15 BST 2005  Olly Betts <olly@survex.com>
30644         * api/omenquire.cc,common/omenquireinternal.h,common/multimatch.h,
30645           matcher/multimatch.cc,net/socketserver.cc: Tidy up after sort_bands.
30647 Thu Apr 07 15:15:27 BST 2005  Olly Betts <olly@survex.com>
30649         * api/omenquire.cc,common/,include/xapian/enquire.h,
30650           matcher/networkmatch.cc,matcher/multimatch.cc,matcher/networkmatch.h,
30651           net/socketserver.cc,net/socketclient.cc,tests/api_db.cc:
30652           Enhanced Enquire sorting API and added ability to reverse sort on
30653           a value.
30654         * api/omenquire.cc: Enquire::get_description() now includes output of
30655           Enquire::Internal::get_description().
30657 Thu Apr 07 13:55:56 BST 2005  Olly Betts <olly@survex.com>
30659         * HACKING: Fixed a typo.
30661 Thu Apr 07 13:37:02 BST 2005  Olly Betts <olly@survex.com>
30663         * backends/quartz/btree.cc,backends/quartz/btree.h,
30664           bin/quartzcompact.cc: The "fuller compaction" code needs changes
30665           to btree.h which I'd failed to check in.  Also document --fuller
30666           in 'quartzcompact --help'.
30668 Thu Apr 07 03:35:36 BST 2005  Olly Betts <olly@survex.com>
30670         * bin/quartzcompact.cc: Added "fuller compaction" mode, which ignores
30671           the usual "at least 4 items per block" rule.
30673 Thu Apr 07 03:28:32 BST 2005  Olly Betts <olly@survex.com>
30675         * PLATFORMS: Added success result for GCC 3.2.3 on FreeBSD 4.8; fixed
30676           a typo.
30678 Wed Apr 06 23:04:15 BST 2005  Olly Betts <olly@survex.com>
30680         * queryparser/queryparser.lemony: Added FIXME comment.
30682 Wed Apr 06 22:52:53 BST 2005  Olly Betts <olly@survex.com>
30684         * ./: Removed ylwrap from svn:ignore.
30686 Tue Apr 05 22:34:16 BST 2005  Olly Betts <olly@survex.com>
30688         * queryparser/queryparsertest.cc,queryparser/Makefile.am,
30689           tests/Makefile.am: Moved queryparsertest into tests/.
30691 Tue Apr 05 22:15:05 BST 2005  Olly Betts <olly@survex.com>
30693         * examples/: Updated svn:ignore property.
30695 Tue Apr 05 21:34:13 BST 2005  Olly Betts <olly@survex.com>
30697         * queryparser/Makefile.am,configure.ac,extra/xapian/queryparser.h,
30698           extra/,include/Makefile.am,Makefile.am: Move extra/ to queryparser/;
30699           Merge extra/xapian/ into include/xapian/.
30701 Tue Apr 05 16:37:32 BST 2005  Olly Betts <olly@survex.com>
30703         * m4/xapian.m4: Fix m4 quoting (argh!)
30705 Tue Apr 05 16:28:06 BST 2005  Olly Betts <olly@survex.com>
30707         * m4/xapian.m4: Fix XO_LIB_XAPIAN to trim off any _svn6789 from
30708           XAPIAN_VERSION.
30710 Tue Apr 05 16:17:31 BST 2005  Olly Betts <olly@survex.com>
30712         * configure.ac: Fix m4 quoting.
30714 Tue Apr 05 15:16:38 BST 2005  Olly Betts <olly@survex.com>
30716         * configure.ac: #define VERSION in version.h shouldn't include any
30717           _svn6789 suffix.
30719 Tue Apr 05 13:28:23 BST 2005  Olly Betts <olly@survex.com>
30721         * configure.ac: Snapshot generator now appends _svn6789 or similar to
30722           the version string, so take that into account when finding REVISION.
30724 Tue Apr 05 12:55:52 BST 2005  Olly Betts <olly@survex.com>
30726         * ChangeLog.examples,Makefile.am,examples/ChangeLog: Move
30727           xapian-examples ChangeLog to ChangeLog.examples in the top-level
30728           and include in the tarball.
30730 Tue Apr 05 02:18:08 BST 2005  Olly Betts <olly@survex.com>
30732         * examples/dir_contents,examples/README: Converted xapian-examples
30733           README into a dir_contents file.
30735 Tue Apr 05 02:12:31 BST 2005  Olly Betts <olly@survex.com>
30737         * docs/overview.html,docs/install.html,configure.ac,Makefile.am,
30738           xapian.spec.in,examples/Makefile.am: Moved xapian-examples module
30739           to examples subdirectory of xapian-core.
30741 Tue Apr 05 00:37:05 BST 2005  Olly Betts <olly@survex.com>
30743         * m4/.cvsignore,debian/.cvsignore,matcher/.cvsignore,docs/.cvsignore,
30744           tests/.cvsignore,bin/.cvsignore,.cvsignore,autoconf/.cvsignore,
30745           extra/.cvsignore,include/xapian/.cvsignore,include/.cvsignore,
30746           net/.cvsignore,common/.cvsignore,testsuite/.cvsignore,
30747           getopt/.cvsignore,languages/.cvsignore,api/.cvsignore,
30748           backends/inmemory/.cvsignore,backends/muscat36/.cvsignore,
30749           backends/net/.cvsignore,backends/quartz/.cvsignore,
30750           backends/multi/.cvsignore,backends/.cvsignore: Remove .cvsignore
30751           files, as they're not used by SVN.
30753 Thu Mar 10 01:48:20 GMT 2005  Olly Betts <olly@survex.com>
30755         * testsuite/backendmanager.cc,testsuite/index_utils.cc,
30756           testsuite/index_utils.h: Rewrite of index_utils code, removing
30757           unused and unusual features.
30758         * tests/testdata/: Cleaned up data for apitest now that paragraphs
30759           don't have the odd minimum number of lines!
30760         * tests/testdata/apitest_space.txt: New index_utils code has C-like
30761           \ escapes for control characters rather than ^ escapes.
30763 Wed Mar 09 22:04:08 GMT 2005  Olly Betts <olly@survex.com>
30765         * common/utils.h: Added C_isxdigit and C_isnotxdigit.
30767 Wed Mar 09 15:22:35 GMT 2005  Olly Betts <olly@survex.com>
30769         * testsuite/index_utils.cc: Fixed ^x to actually decode hex values
30770           correctly.
30772 Tue Mar 08 16:57:25 GMT 2005  Olly Betts <olly@survex.com>
30774         * matcher/multimatch.cc: Minor code tidy.
30776 Tue Mar 08 15:48:38 GMT 2005  Olly Betts <olly@survex.com>
30778         * api/omenquire.cc,docs/matcherdesign.html,include/xapian/enquire.h,
30779           matcher/multimatch.cc,tests/api_db.cc: Removed sort_bands support.
30781 Tue Mar 08 04:13:03 GMT 2005  Olly Betts <olly@survex.com>
30783         * bin/quartzcompact.cc: Fixed to add items for all tables in key order
30784           which produces results around 40% more compact (previously in the
30785           merge case, this was only happening for the postlist table).
30787 Tue Mar 08 03:30:06 GMT 2005  Olly Betts <olly@survex.com>
30789         * testsuite/btreecheck.cc: Make default check output fit on a single
30790           line (at least for many databases).
30792 Tue Mar 08 02:34:41 GMT 2005  Olly Betts <olly@survex.com>
30794         * matcher/multimatch.cc: Fix warning from newer versions of GCC.
30796 Sat Mar 05 00:25:07 GMT 2005  Olly Betts <olly@survex.com>
30798         * api/omenquire.cc,common/omenquireinternal.h,include/xapian/enquire.h,
30799           matcher/multimatch.cc,tests/api_db.cc: Fixed Xapian::RSet to have
30800           the same "it's a handle" copy semantics as most of the other
30801           classes.
30803 Sat Mar 05 00:23:47 GMT 2005  Olly Betts <olly@survex.com>
30805         * testsuite/testsuite.h: Fixed TEST_EQUAL_DOUBLE to use DBL_EPSILON
30806           correctly.
30808 Fri Mar 04 21:06:38 GMT 2005  Olly Betts <olly@survex.com>
30810         * tests/testdata/etext.txt: Stripped carriage returns.
30812 Fri Mar 04 21:04:25 GMT 2005  Olly Betts <olly@survex.com>
30814         * PLATFORMS: Assorted updates.
30816 Thu Mar 03 01:17:07 GMT 2005  Olly Betts <olly@survex.com>
30818         * bin/quartzcompact.cc: Fixed to allow compacting a single database.
30819           Fixed handling of very last term when merging postlists.
30821 Wed Mar 02 03:18:30 GMT 2005  Olly Betts <olly@survex.com>
30823         * backends/quartz/quartz_values.cc: Values are stored in sorted order
30824           so we can stop unpacking the list once we get to one after the one
30825           we're looking for.
30827 Wed Mar 02 02:59:23 GMT 2005  Olly Betts <olly@survex.com>
30829         * bin/quartzcheck.cc: Now checks the structure of all the tables, not
30830           just the postlist table, and cross-checks doclen values between
30831           termlist and postlist tables.  Recognises "--help" option.  Should
30832           now continue after an error (typically it would crash before), and
30833           counts the number of errors found.  Now exits with non-zero status
30834           if any errors were found.
30836 Tue Mar 01 18:48:25 GMT 2005  Olly Betts <olly@survex.com>
30838         * xapian.spec.in: '/usr/share' -> '%{_datadir}'.
30840 Tue Mar 01 16:21:07 GMT 2005  Olly Betts <olly@survex.com>
30842         * tests/api_db.cc: Fixed warning from Sun's C++ compiler.
30844 Tue Mar 01 02:02:15 GMT 2005  Olly Betts <olly@survex.com>
30846         * bin/quartzcompact.cc: Extended to allow merging several quartz
30847           databases to produce a single compact quartz database.  This
30848           allows for faster building - simple index in chunks, then merge
30849           the chunks.
30851 Tue Mar 01 00:08:12 GMT 2005  Olly Betts <olly@survex.com>
30853         * xapian.spec.in: Put the .so in the -devel package (it's only useful
30854           for linking to - the .so.* files are all that's needed at runtime).
30856 Tue Mar 01 00:05:25 GMT 2005  Olly Betts <olly@survex.com>
30858         * Makefile.am,xapian-config.in,xapian.spec.in,extra/.cvsignore,
30859           extra/Makefile.am: Eliminated the extra library for the queryparser
30860           - it's tiny compared to the main library and having it around just
30861           complicates things.
30863 Mon Feb 28 23:52:19 GMT 2005  Olly Betts <olly@survex.com>
30865         * tests/api_anydb.cc: More set_length() changes.
30867 Mon Feb 28 20:31:13 GMT 2005  Olly Betts <olly@survex.com>
30869         * net/socketclient.cc,net/socketserver.cc,api/omenquire.cc,
30870           api/omquery.cc,api/omqueryinternal.cc,common/,
30871           include/xapian/enquire.h,include/xapian/query.h,matcher/:
30872           Remove Query::set_length() in favour of an optional length
30873           parameter to Enquire::set_query().
30875 Mon Feb 28 15:32:32 GMT 2005  Olly Betts <olly@survex.com>
30877         * api/omqueryinternal.cc,common/Makefile.am,common/deleter_vector.h:
30878           Removed deleter_vector as it's no longer used anywhere.
30880 Mon Feb 28 15:27:42 GMT 2005  Olly Betts <olly@survex.com>
30882         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
30883           matcher/localmatch.cc,tests/api_anydb.cc,tests/api_nodb.cc:
30884           Eliminated Query::set_elite_set_size().
30886 Mon Feb 28 15:15:45 GMT 2005  Olly Betts <olly@survex.com>
30888         * HACKING: Note how to disable use of VALGRIND on the make check
30889           command line, or when using runtest directly.
30891 Mon Feb 28 13:36:07 GMT 2005  Olly Betts <olly@survex.com>
30893         * common/omqueryinternal.h: Removed out-of-date commented out version
30894           of Xapian::Query::Internal.
30896 Mon Feb 28 13:07:42 GMT 2005  Olly Betts <olly@survex.com>
30898         * backends/quartz/quartz_alltermslist.cc,tests/api_db.cc: Updated (C)
30899           dates for changes earlier this year.
30901 Mon Feb 28 13:04:41 GMT 2005  Olly Betts <olly@survex.com>
30903         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
30904           matcher/localmatch.cc,matcher/localmatch.h,tests/api_anydb.cc,
30905           tests/api_nodb.cc,tests/api_posdb.cc: Eliminated Query::set_window
30906           in favour of an optional parameter to the constructor, with the aim
30907           of making Query objects immutable once constructed.
30909 Mon Feb 28 12:32:26 GMT 2005  Olly Betts <olly@survex.com>
30911         * extra/queryparser.lemony: Updated 2 uses of Query::set_window().
30913 Mon Feb 28 04:43:20 GMT 2005  Olly Betts <olly@survex.com>
30915         * api/omquery.cc,api/omqueryinternal.cc,common/socketcommon.h,
30916           include/xapian/query.h,matcher/,tests/api_anydb.cc:
30917           Removed OP_WEIGHT_CUTOFF, since it doesn't actually seem to
30918           add useful functionality over using Enquire::set_cutoff().
30920 Mon Feb 28 04:31:58 GMT 2005  Olly Betts <olly@survex.com>
30922         * matcher/weightcutoffpostlist.cc: Fix updating of docid in
30923           WeightCutoffPostList - the current code works, but can end up doing
30924           lots (potentially millions) of pointless loop iterations.
30926 Mon Feb 28 02:57:29 GMT 2005  Olly Betts <olly@survex.com>
30928         * docs/queryparser.html: Note that + and - work on phrases and
30929           bracketed expressions.
30931 Fri Feb 25 17:06:23 GMT 2005  Olly Betts <olly@survex.com>
30933         * backends/quartz/quartz_alltermslist.cc: Fix skip_to on an allterms
30934           TermIterator to set the current term when the skip_to-ed term is
30935           in the database.
30936         * tests/api_db.cc: Add regression test for this (allterms5).
30938 Wed Feb 23 19:07:30 GMT 2005  Olly Betts <olly@survex.com>
30940         * configure.ac: Suppress 2 Intel C++ warnings which we can't easily
30941           code around, and enable -Werror automatically with
30942           --enable-maintainer-mode.
30943         * configure.ac: Check that the C++ compiler can actually link a
30944           program.  AC_LANG_CXX doesn't, and if it can't find a C++ compiler
30945           it'll just return "g++" which just leads to a later configure
30946           test failing in a confusing way.
30948 Tue Feb 22 13:39:07 GMT 2005  Olly Betts <olly@survex.com>
30950         * include/xapian/enquire.h: Improved documentation comments.
30951         * api/omenquire.cc,include/xapian/enquire.h: MSet::max_size() (which
30952           only exists so that MSet is an STL compiler) now returns
30953           MSet::size() and is inlined from the header.
30954         * include/xapian/enquire.h: Added ESet::max_size() (for STL
30955           compatibility).
30957 Tue Feb 22 00:18:33 GMT 2005  Olly Betts <olly@survex.com>
30959         * configure.ac: corrected "none known for yes" or "none known for no"
30960           to "none known for g++-3.2" or similar.
30961         * configure.ac: autoconf identifies Intel's C++ compiler as GCC, so
30962           probe for which it actually is.
30964 Mon Feb 21 21:54:29 GMT 2005  Olly Betts <olly@survex.com>
30966         * PLATFORMS: Updated.
30968 Mon Feb 21 16:06:32 GMT 2005  Olly Betts <olly@survex.com>
30970         * PLATFORMS: Added success report for Intel C++ 8.1 on ia64 Linux
30971           (and also GCC 3.2.3 on ia64 Linux).
30973 Mon Feb 21 05:33:46 GMT 2005  Olly Betts <olly@survex.com>
30975         * backends/multi/: Don't delare methods in headers if they're virtual
30976           or large.
30978 Mon Feb 21 04:11:23 GMT 2005  Olly Betts <olly@survex.com>
30980         * backends/inmemory/inmemory_database.cc,
30981           backends/inmemory/inmemory_database.h: Don't delare methods in
30982           headers if they're virtual or large.
30984 Sun Feb 20 21:13:40 GMT 2005  Olly Betts <olly@survex.com>
30986         * common/multimatch.h: Removed unused "class SocketServer;".
30988 Sun Feb 20 19:47:01 GMT 2005  Olly Betts <olly@survex.com>
30990         * net/socketserver.cc: Fixed typo in debug code.
30992 Sat Feb 19 18:44:17 GMT 2005  Olly Betts <olly@survex.com>
30994         * PLATFORMS: Added minimal testcase which fails to compile with
30995           Compaq's C++ compiler (cxx).
30997 Sat Feb 19 04:23:51 GMT 2005  Olly Betts <olly@survex.com>
30999         * backends/quartz/btree.cc,backends/quartz/btree.h: Change
31000           Btree::find_in_block to take a bool indicating if this is a leaf
31001           block rather than an offset to subtract when it is.
31003 Fri Feb 18 04:27:16 GMT 2005  Olly Betts <olly@survex.com>
31005         * HACKING: Added better description of how reference-counted API
31006           classes are structured.
31007         * include/xapian/postingiterator.h,include/xapian/termiterator.h:
31008           More (and better) documentation comments.
31010 Fri Feb 18 03:05:40 GMT 2005  Olly Betts <olly@survex.com>
31012         * backends/quartz/btree.cc: Made full compaction a tiny bit more
31013           compact.  Improved compaction by a few % in non-full case.
31014           Tighter bound on amount of memory to reserve to read the tag
31015           into.
31017 Fri Feb 18 00:47:41 GMT 2005  Olly Betts <olly@survex.com>
31019         * api/omenquire.cc: Removed duplicate "#include <xapian/enquire.h>".
31021 Thu Feb 17 01:33:01 GMT 2005  Olly Betts <olly@survex.com>
31023         * extra/queryparser_internal.h: Further Sun C++ fixes.
31025 Wed Feb 16 05:32:40 GMT 2005  Olly Betts <olly@survex.com>
31027         * extra/queryparser.lemony: Attempted fix for Sun's C++ compiler.
31029 Tue Feb 15 02:10:35 GMT 2005  Olly Betts <olly@survex.com>
31031         * extra/queryparser.cc,extra/queryparser.lemony,
31032           extra/queryparser_internal.h: Fixed namespace stuff to keep Sun's C++
31033           compiler happy.
31035 Mon Feb 14 21:21:08 GMT 2005  Olly Betts <olly@survex.com>
31037         * api/vectortermlist.h: Workaround a shortcoming in Sun's C++
31038           compiler.
31040 Mon Feb 14 21:16:05 GMT 2005  Olly Betts <olly@survex.com>
31042         * PLATFORMS: Results from upgraded sourceforge x86_64 box.
31044 Mon Feb 14 18:36:40 GMT 2005  Olly Betts <olly@survex.com>
31046         * extra/xapian/queryparser.h: Fixed compilation error.
31048 Mon Feb 14 18:00:12 GMT 2005  Olly Betts <olly@survex.com>
31050         * extra/xapian/queryparser.h: Added backward compatibility wrapper for
31051           old version of QueryParser::set_stemming_options().
31053 Mon Feb 14 17:50:47 GMT 2005  Olly Betts <olly@survex.com>
31055         * extra/xapian/queryparser.h: Added dummy QueryParser::set_database()
31056           (currently it ignores the parameter).
31058 Mon Feb 14 15:34:13 GMT 2005  Olly Betts <olly@survex.com>
31060         * extra/lemon.c: C90, not C99!
31062 Mon Feb 14 15:20:11 GMT 2005  Olly Betts <olly@survex.com>
31064         * extra/lemon.c: C, not C++.
31066 Mon Feb 14 05:49:50 GMT 2005  Olly Betts <olly@survex.com>
31068         * extra/: Tweak lemon so we can avoid generating files in builddir
31069           in a VPATH build.
31071 Mon Feb 14 02:44:17 GMT 2005  Olly Betts <olly@survex.com>
31073         * extra/Makefile.am: Update to reflect lempar.c -> queryparser.lt.
31075 Mon Feb 14 02:25:53 GMT 2005  Olly Betts <olly@survex.com>
31077         * extra/lempar.c,extra/queryparser.lt: Rename lemon template to .lt
31078           which is more sensible than calling it lempar.c and should work
31079           with VPATH builds.
31081 Mon Feb 14 02:12:51 GMT 2005  Olly Betts <olly@survex.com>
31083         * extra/Makefile.am: Fixes for VPATH builds.
31085 Mon Feb 14 01:43:59 GMT 2005  Olly Betts <olly@survex.com>
31087         * configure.ac: Need to AC_SUBST(CC_FOR_BUILD).
31089 Mon Feb 14 00:19:45 GMT 2005  Olly Betts <olly@survex.com>
31091         * extra/Makefile.am: Added dependency for building queryparser.h.
31093 Sun Feb 13 23:30:02 GMT 2005  Olly Betts <olly@survex.com>
31095         * extra/queryparser.cc,extra/queryparser_internal.h,
31096           extra/xapian/queryparser.h: Fixed to compile with GCC 3.3.
31098 Sun Feb 13 23:09:15 GMT 2005  Olly Betts <olly@survex.com>
31100         * configure.ac: Enhanced valgrind test to (a) see if --tool=memcheck
31101           is needed and (b) see if valgrind actually works (we don't want to
31102           try to use an x86 valgrind on an x86_64 box).
31104 Mon Jan 17 03:21:29 GMT 2005  Olly Betts <olly@survex.com>
31106         * api/vectortermlist.h,extra/,extra/xapian/queryparser.h: Rewritten
31107           QueryParser class.  Uses Lemon instead of Bison to generate the
31108           parser, which enables us to stop using static data, so this class
31109           is at last reentrant.  It now uses a PIMPL style with reference
31110           counted internals like most of the other Xapian classes.  And
31111           direct access to member variables has gone, which unfortunately
31112           forces an API change (bug #39).  The rewrite also supports more
31113           features than the original did.
31114         * HACKING,configure.ac: No longer need Bison.
31115         * configure.ac: Need CC_FOR_BUILD to compile Lemon with.
31117 Mon Jan 17 02:40:40 GMT 2005  Olly Betts <olly@survex.com>
31119         * PLATFORMS: IRIX + SGI C++ now compiles with just two warnings -
31120           unused variables in Snowball generated code.
31122 Sun Jan 16 03:19:56 GMT 2005  Olly Betts <olly@survex.com>
31124         * xapian.spec.in: Don't say "%makeinstall" in a comment since rpm
31125           tries to expand it and explodes.
31127 Sat Jan 15 03:30:33 GMT 2005  Olly Betts <olly@survex.com>
31129         * docs/Makefile.am: Clearer rules for making Postscript doxygen docs.
31131 Sat Jan 15 02:45:19 GMT 2005  Olly Betts <olly@survex.com>
31133         * HACKING: Note that '#include <limits>' isn't supported by GCC 2.95,
31134           and other assorted minor tweaks.
31136 Sat Jan 08 16:09:10 GMT 2005  Olly Betts <olly@survex.com>
31138         * api/maptermlist.h,backends/inmemory/inmemory_database.h,
31139           backends/quartz/quartz_postlist.h,common/,matcher/localmatch.h,
31140           matcher/mergepostlist.h,matcher/phrasepostlist.h,net/progclient.cc:
31141           Fixes for SGI C++ warnings.
31143 Fri Jan  7 13:02:49 GMT 2005  Richard Boulton <richard@tartarus.org>
31145         * common/positionlist.h: Correct out-of-date documentation comment.
31147 Tue Jan 04 03:05:26 GMT 2005  Olly Betts <olly@survex.com>
31149         * matcher/multimatch.cc: Removed unnecessary class declaration.
31151 Tue Jan 04 03:02:02 GMT 2005  Olly Betts <olly@survex.com>
31153         * configure.ac: Automatically enable ANSI C++ mode for SGI's compiler
31154           with '-LANG:std'; check that any automatically determined flags
31155           for ANSI C++ mode actually allow us to compile a trivial program
31156           - if they don't it probably means the compiler isn't the one we
31157           were expecting, but one installed with the same name, so we now
31158           drop the flags in this case.
31160 Thu Dec 30 00:50:58 GMT 2004  Olly Betts <olly@survex.com>
31162         * extra/queryparser.yy: QueryParser::parse_query() was failing to
31163           clear termlist and unstem.
31165 Fri Dec 24 00:07:28 GMT 2004  Olly Betts <olly@survex.com>
31167         * PLATFORMS: Updated from tinderbox.
31169 Thu Dec 23 21:13:46 GMT 2004  Olly Betts <olly@survex.com>
31171         * backends/quartz/btree.cc: Fixed GCC compilation warning.
31173 Thu Dec 23 17:22:15 GMT 2004  Olly Betts <olly@survex.com>
31175         * INSTALL,README: Updated.
31176         * README: Don't quote chunks of the GPL - just refer people to the
31177           full text in COPYING.
31179 Thu Dec 23 16:55:03 GMT 2004  Olly Betts <olly@survex.com>
31181         * NEWS,PLATFORMS,configure.ac: Updated for 0.8.5 release.
31183 Tue Dec 21 13:26:55 GMT 2004  Olly Betts <olly@survex.com>
31185         * docs/quickstart.html: Improved wording.
31187 Tue Dec 21 13:03:06 GMT 2004  Olly Betts <olly@survex.com>
31189         * HACKING: Updated to reflect extra jobs which cvs-tag-release now
31190           does.
31192 Mon Dec 20 16:25:21 GMT 2004  Olly Betts <olly@survex.com>
31194         * bin/Makefile.am: quartzcompact now uses getopt, so need to link
31195           it in our version to build on non-glibc platforms.
31197 Mon Dec 20 16:23:28 GMT 2004  Olly Betts <olly@survex.com>
31199         * backends/quartz/btree.cc: Added comment noting why we can't
31200           truncate separating keys at higher levels.
31202 Thu Dec 16 14:46:28 GMT 2004  Olly Betts <olly@survex.com>
31204         * HACKING: Fixed a typo, and improved wording.
31206 Mon Dec 13 02:52:52 GMT 2004  Olly Betts <olly@survex.com>
31208         * backends/multi/multi_postlist.cc: Updated (C) date.
31210 Mon Dec 13 02:50:44 GMT 2004  Olly Betts <olly@survex.com>
31212         * languages/: Added missing '#include <config.h>' to .cc files
31213           (probably harmless, but it should be included as the first thing any
31214           source file does).
31216 Mon Dec 13 02:21:28 GMT 2004  Olly Betts <olly@survex.com>
31218         * bin/quartzdump.cc: Mark the long options as const.
31220 Mon Dec 13 02:20:08 GMT 2004  Olly Betts <olly@survex.com>
31222         * bin/quartzcompact.cc: Tables sizes will always be a whole number of
31223           Kbytes, since the blocksize is, so report the size in K.  Also
31224           report the change in size as well as the before and after sizes.
31226 Mon Dec 13 02:11:59 GMT 2004  Olly Betts <olly@survex.com>
31228         * common/netutils.cc: Added missing '#include <config.h>' (probably
31229           harmless, but it should be included as the first thing any source
31230           file does).
31232 Mon Dec 13 01:39:53 GMT 2004  Olly Betts <olly@survex.com>
31234         * backends/quartz/btree.cc,backends/quartz/btree.h: Renamed
31235           Btree::compress() to Btree::compact() for consistency with
31236           "full_compaction" and "quartzcompact".  Also, "compress" is
31237           confusing since use "compact" and we use that term in the zlib
31238           patch.
31239         * backends/quartz/btree.cc: When full_compaction is enabled, don't
31240           fill the last few bytes of a block if that would mean we needed
31241           an extra item and the overhead for that item would use up more
31242           of the next block than we save.  This reduces the table size
31243           after full compaction by up to 0.2% in my tests!
31245 Mon Dec 13 01:39:02 GMT 2004  Olly Betts <olly@survex.com>
31247         * backends/multi/multi_postlist.cc: Fixed to build with AssertParanoid
31248           enabled.
31250 Mon Dec 13 00:41:28 GMT 2004  Olly Betts <olly@survex.com>
31252         * bin/quartzcompact.cc: Added missing '#include <config.h>' so that
31253           largefile support is enabled and we report compression statistics
31254           for tables > 2G.
31255         * bin/quartzcompact.cc: Added --no-full / -n option to disable full
31256           compaction.  This may be useful if you want to update the database
31257           after compacting it (need to test to see if this option is actually
31258           useful).
31260 Sun Dec 12 21:26:27 GMT 2004  Olly Betts <olly@survex.com>
31262         * xapian-config.in: Previous attempted fix to --libs output was wrong
31263           - made it actually work.
31265 Sun Dec 12 21:24:44 GMT 2004  Olly Betts <olly@survex.com>
31267         * xapian.spec.in: %makeinstall puts the wrong paths in the .la files
31268           so use "make DESTDIR=... install" instead.
31270 Wed Dec 08 15:59:44 GMT 2004  Olly Betts <olly@survex.com>
31272         * NEWS: Bumped the 0.8.4 release date.
31274 Wed Dec 08 15:32:46 GMT 2004  Olly Betts <olly@survex.com>
31276         * xapian-config.in: Make sure that --libs output doesn't include
31277           libxapian.la (from libxapianqueryparser.la's dependencies).
31279 Tue Dec 07 18:18:26 GMT 2004  Olly Betts <olly@survex.com>
31281         * backends/quartz/quartz_log.cc: Fixed to compile on mingw.
31283 Tue Dec 07 15:57:44 GMT 2004  Olly Betts <olly@survex.com>
31285         * NEWS: Updated.
31286         * api/omdatabase.cc,backends/database.cc,bin/omtcpsrv.cc,
31287           common/database.h,docs/,include/xapian/database.h,tests/api_db.cc:
31288           Added constructors to Database and WritableDatabase which fulfil the
31289           role that the Auto::open() factory functions currently do.
31290           Auto::open() is now deprecated.
31291         * api/,backends/inmemory/inmemory_database.cc,
31292           backends/quartz/quartz_database.cc,backends/quartz/quartz_postlist.h,
31293           common/expandweight.h,common/stats.h,include/xapian.h:
31294           #include <xapian.h> no longer pulls in xapian/output.h - this
31295           removes the external ability to write a Xapian object to an
31296           ostream directly, as it's little used and potentially dangerous
31297           ('cout << mset[i];' will compile, but you almost certainly meant
31298           'cout << *mset[i];').  You can get the old effect by writing
31299           'cout << obj->get_description();' instead of 'cout << obj;'.
31300           Adjusted all the library sources which relied on xapian/output.h
31301           pulling in various other xapian/ headers.
31302         * backends/muscat36/da_database.cc,backends/muscat36/db_database.cc:
31303           Debug output tweaks.
31304         * common/emptypostlist.h,matcher/mergepostlist.cc,matcher/multimatch.cc:
31305           Added EmptyPostList::get_maxweight() which always returns 0, so you
31306           no longer need to explicitly set a weighting scheme on an
31307           EmptyPostList.
31308         * common/omdebug.h: Only include omstringstream.h if
31309           XAPIAN_DEBUG_VERBOSE is in effect.
31310         * extra/Makefile.am: queryparsertest needs to link to libxapian.la
31311           explicitly.
31312         * net/progclient.cc: Whitespace tweak.
31313         * testsuite/: Eliminated barely used sources indexer.h,
31314           textfile_indexer.h, and textfile_indexer.cc.
31315         * testsuite/backendmanager.cc: Removed unused functions
31316           make_strvec() and index_file_to_database().
31318 Wed Dec 01 07:15:46 GMT 2004  Olly Betts <olly@survex.com>
31320         * PLATFORMS: SF CF x86_64 machine no longer needs --disable-shared.
31322 Tue Nov 30 21:53:33 GMT 2004  Olly Betts <olly@survex.com>
31324         * NEWS,PLATFORMS,configure.ac: Updated for 0.8.4 release.
31326 Tue Nov 30 03:07:43 GMT 2004  Olly Betts <olly@survex.com>
31328         * configure.ac,backends/database.cc,backends/quartz/bcursor.cc,
31329           backends/quartz/quartz_database.cc,
31330           backends/quartz/quartz_postlist.cc,common/omassert.h,
31331           common/omdebug.cc,common/omdebug.h,docs/doxygen_full_conf.in,
31332           matcher/localmatch.cc,matcher/multimatch.cc,matcher/stats.cc,
31333           tests/apitest.cc,tests/btreetest.cc,testsuite/backendmanager.cc,
31334           testsuite/backendmanager.h,testsuite/testsuite.cc: Rename all the
31335           MUS_xxx defines to XAPIAN_xxx.
31337 Tue Nov 30 02:36:33 GMT 2004  Olly Betts <olly@survex.com>
31339         * configure.ac,backends/quartz/btree.cc: Get configure to probe for
31340           the prototypes (if any) needed for pread and pwrite.
31342 Tue Nov 30 01:09:26 GMT 2004  Olly Betts <olly@survex.com>
31344         * backends/quartz/btree.cc: Instead of trying to coax pread/pwrite
31345           prototypes out of the system headers, let's try just providing our
31346           own!
31348 Mon Nov 29 19:51:13 GMT 2004  Olly Betts <olly@survex.com>
31350         * extra/Makefile.am: Moved -no-undefined to the right place, plus we
31351           also need to pass @ldflags@ and ../libxapian.la in
31352           libxapianqueryparser_la_LIBADD.
31354 Mon Nov 29 18:28:57 GMT 2004  Olly Betts <olly@survex.com>
31356         * AUTHORS: Updated.
31358 Mon Nov 29 18:27:12 GMT 2004  Olly Betts <olly@survex.com>
31360         * extra/Makefile.am: Added -no-undefined to
31361           libxapianqueryparser_la_LDFLAGS so it builds on mingw.
31363 Mon Nov 29 17:46:54 GMT 2004  Olly Betts <olly@survex.com>
31365         * tests/Makefile.am: Don't try to run "runtest" as a test - it just
31366           needs to be a dependency of the tests.
31368 Sat Nov 27 02:58:28 GMT 2004  Olly Betts <olly@survex.com>
31370         * backends/inmemory/dir_contents: Trimmed whitespace.
31372 Sat Nov 27 02:05:51 GMT 2004  Olly Betts <olly@survex.com>
31374         * NEWS: Updated ready for 0.8.4 release.
31376 Sat Nov 27 02:03:40 GMT 2004  Olly Betts <olly@survex.com>
31378         * tests/Makefile.am: Added a dependency so "make check" regenerates
31379           runtest if necessary.
31381 Sat Nov 27 02:02:58 GMT 2004  Olly Betts <olly@survex.com>
31383         * AUTHORS: Updated.
31385 Sat Nov 27 01:59:18 GMT 2004  Olly Betts <olly@survex.com>
31387         * README: Minor tweak.
31389 Sat Nov 27 01:58:53 GMT 2004  Olly Betts <olly@survex.com>
31391         * configure.ac: Improved a couple of comments.
31393 Sat Nov 27 01:42:32 GMT 2004  Olly Betts <olly@survex.com>
31395         * docs/: Trimmed trailing whitespace.
31397 Sat Nov 27 01:41:33 GMT 2004  Olly Betts <olly@survex.com>
31399         * docs/stemming.html: Reworded text from BrightStation times which
31400           talked about "the open source release".
31402 Fri Nov 26 17:32:55 GMT 2004  Olly Betts <olly@survex.com>
31404         * docs/indexerquickstart.html: Removed dead documentation.
31406 Fri Nov 26 17:11:19 GMT 2004  Olly Betts <olly@survex.com>
31408         * PLATFORMS: Updated with new cygwin report.
31410 Fri Nov 26 17:07:21 GMT 2004  Olly Betts <olly@survex.com>
31412         * tests/api_anydb.cc,tests/api_nodb.cc,docs/bm25.html,
31413           include/xapian/enquire.h,matcher/bm25weight.cc: Renamed BM25
31414           parameters to match standard naming in papers and elsewhere
31415           (A->k3, B->k1, C->k2, D->b), eliminated the extra factor of 2
31416           which our C had, and reordered the parameters to k1, k2, k3.
31417           This is an incompatible API change for BM25Weight(), so if
31418           you are using custom parameters for BM25 you'll need to
31419           update your code.
31421 Fri Nov 26 15:20:16 GMT 2004  Olly Betts <olly@survex.com>
31423         * tests/runtest.in: Allow VALGRIND environmental variable to override
31424           the value we got from configure.
31426 Fri Nov 26 03:50:36 GMT 2004  Olly Betts <olly@survex.com>
31428         * matcher/bm25weight.cc,matcher/tradweight.cc: termfreq is always
31429           exact for matching (we only approximate it for query expansion)
31430           so replace code to work around bad approximations with Assert() to
31431           make sure this never happens.
31433 Fri Nov 26 00:19:22 GMT 2004  Olly Betts <olly@survex.com>
31435         * matcher/expandweight.cc,matcher/tradweight.cc: If we estimate the
31436           term frequency, ensure it has a sane value (>= r and <= N - R + r)
31437           rather than bodging around the problem later on.
31439 Thu Nov 25 01:29:36 GMT 2004  Olly Betts <olly@survex.com>
31441         * backends/quartz/quartz_database.cc: Fixed recent cygwin change to
31442           actually compile.
31444 Thu Nov 25 01:06:03 GMT 2004  Olly Betts <olly@survex.com>
31446         * bin/quartzcompact.cc: Added --help and --version; Check that the
31447           source path and desitination path aren't the same; Report each table
31448           name when we start compacting it, and some simple stats on the
31449           compaction achieved when we finish.
31451 Tue Nov 23 16:19:09 GMT 2004  Olly Betts <olly@survex.com>
31453         * configure.ac: Fixed m4 quoting problem.
31455 Tue Nov 23 12:47:54 GMT 2004  Olly Betts <olly@survex.com>
31457         * configure.ac: Fix the test for GCC3 used to turn on -Werror with
31458           --enable-maintainer-mode.
31460 Mon Nov 22 03:08:10 GMT 2004  Olly Betts <olly@survex.com>
31462         * PLATFORMS: Assorted updates.
31464 Mon Nov 22 02:15:22 GMT 2004  Olly Betts <olly@survex.com>
31466         * tests/quartztest.cc: Test with DB_CREATE_OR_OPEN in writelock1.
31468 Mon Nov 22 01:37:13 GMT 2004  Olly Betts <olly@survex.com>
31470         * common/utils.cc: define NOMINMAX as a cleaner way to prevent
31471           windows.h from polluting the namespace and colliding with ANSI C++.
31473 Sat Nov 20 14:36:43 GMT 2004  Olly Betts <olly@survex.com>
31475         * tests/runtest.in: --logfile-fd was renamed to --log-fd in valgrind
31476           2.1.2 with no support for the old option name, so we must probe
31477           to decide which to use.
31479 Fri Nov 19 13:18:43 GMT 2004  Olly Betts <olly@survex.com>
31481         * backends/quartz/bcursor.cc,backends/quartz/bcursor.h: Eliminated
31482           Bcursor::get_tag() - it's an internal method only used from one
31483           other method, and it now just a trivial wrapper around
31484           Btree::read_tag().
31486 Fri Nov 19 04:20:39 GMT 2004  Olly Betts <olly@survex.com>
31488         * backends/quartz/bcursor.cc,backends/quartz/btree.cc,
31489           backends/quartz/btree.h: Factored out near identical code from
31490           Btree::find_tag() and Bcursor::get_tag() into Btree::read_tag().
31492 Thu Nov 18 03:27:52 GMT 2004  Olly Betts <olly@survex.com>
31494         * backends/quartz/btree.cc: Applied the Quartz "DANGEROUS" patch, but
31495           disabled for now.  This way it won't keep being broken by changes
31496           to the code.
31498 Tue Nov 16 04:29:25 GMT 2004  Olly Betts <olly@survex.com>
31500         * backends/quartz/btree.cc: Ah, it's __sun__/__sun/sun, not
31501           __solaris__ (at least for x86 Solaris 9).
31503 Tue Nov 16 02:56:44 GMT 2004  Olly Betts <olly@survex.com>
31505         * backends/quartz/btree.cc: Solaris defines __solaris__ not
31506           __SOLARIS__.
31508 Mon Nov 15 12:40:38 GMT 2004  Olly Betts <olly@survex.com>
31510         * tests/api_db.cc: Added new test userweight1 to test user defined
31511           matching schemes.
31513 Sun Nov 14 05:20:34 GMT 2004  Olly Betts <olly@survex.com>
31515         * backends/quartz/quartz_metafile.cc,
31516           backends/quartz/quartz_metafile.h: Removed unused
31517           QuartzMetaFile::erase() method.
31519 Sun Nov 14 04:55:05 GMT 2004  Olly Betts <olly@survex.com>
31521         * backends/quartz/quartz_database.cc: For cygwin, use the underlying
31522           MoveFile API call for locking, as link() doesn't work on FAT
31523           partitions.  And don't rely on HAVE_LINK to control whether we
31524           use link() otherwise - if the configure test somehow misfires, a
31525           compilation error is better than using rename() on Unix as that
31526           would cause a second writer to smash the lock of the first.
31528 Thu Nov 11 06:58:41 GMT 2004  Olly Betts <olly@survex.com>
31530         * backends/quartz/btree.cc: Removed superfluous statement.
31532 Tue Nov 09 23:50:10 GMT 2004  Olly Betts <olly@survex.com>
31534         * backends/quartz/btree.cc: Need to include sys/types.h to define
31535           ssize_t, size_t, and off_t before we prototype pread and pwrite
31536           for OSF.
31538 Tue Nov 09 22:39:00 GMT 2004  Olly Betts <olly@survex.com>
31540         * backends/quartz/btree.cc: Tweaked the pread/pwrite mess to try to
31541           get it to work on OSF and x86 Solaris while not breaking it
31542           elsewhere.
31544 Tue Nov 09 19:29:37 GMT 2004  Olly Betts <olly@survex.com>
31546         * backends/quartz/btree.cc,backends/quartz/btree.h: More refactoring.
31548 Tue Nov 09 17:13:10 GMT 2004  Olly Betts <olly@survex.com>
31550         * backends/quartz/: More refactoring.  Also rearranged the contents
31551           of the quartz and btree headers, eliminating btree_types.h in the
31552           process.
31554 Tue Nov 09 16:47:13 GMT 2004  Olly Betts <olly@survex.com>
31556         * backends/quartz/quartz_metafile.cc: Using fdcloser is less clear in
31557           trivial cases.
31559 Tue Nov 09 16:38:47 GMT 2004  Olly Betts <olly@survex.com>
31561         * backends/quartz/quartz_database.cc: Close the fd of the lock file
31562           before trying to rename it on Windows.
31564 Tue Nov 09 07:58:02 GMT 2004  Olly Betts <olly@survex.com>
31566         * backends/quartz/btree.cc,backends/quartz/btree.h,
31567           backends/quartz/btree_util.h: More refactoring.
31569 Tue Nov 09 03:24:59 GMT 2004  Olly Betts <olly@survex.com>
31571         * xapian-config.in: Added --swigflags option for use with SWIG.
31573 Mon Nov 08 22:54:55 GMT 2004  Olly Betts <olly@survex.com>
31575         * configure.ac,xapian-config.in: If flags are needed to select ANSI
31576           mode with the current compiler, then make xapian-config --cxxflags
31577           include them so that Xapian users don't have to jump through the
31578           same hoops we do.
31580 Mon Nov 08 04:49:21 GMT 2004  Olly Betts <olly@survex.com>
31582         * backends/inmemory/inmemory_database.cc,
31583           backends/inmemory/inmemory_database.h,backends/muscat36/,
31584           backends/net/net_database.cc,backends/quartz/quartz_database.cc,
31585           backends/quartz/quartz_database.h,common/database.h,
31586           common/net_database.h,matcher/localmatch.cc: If a database contains
31587           no positional information, change NEAR and PHRASE queries into AND
31588           queries (as otherwise they'd return no matches at all) (bug#56).
31589         * tests/api_wrdb.cc: Added feature test phraseorneartoand1.
31591 Mon Nov 08 04:09:04 GMT 2004  Olly Betts <olly@survex.com>
31593         * configure.ac,backends/quartz/btree.cc: Improved what we do to
31594           turn on pread and pwrite declarations in unistd.h so that it works
31595           on OSF and doesn't need the HAVE_GLIBC test, yet still works on
31596           OpenBSD.
31598 Mon Nov 08 03:55:51 GMT 2004  Olly Betts <olly@survex.com>
31600         * backends/quartz/,testsuite/btreecheck.cc: More refactoring.
31602 Sun Nov 07 20:42:32 GMT 2004  Olly Betts <olly@survex.com>
31604         * configure.ac: One more tweak.
31606 Sun Nov 07 18:18:19 GMT 2004  Olly Betts <olly@survex.com>
31608         * configure.ac,include/xapian/version.h.in: Another tweak to hopefully
31609           get version.h generation to work everywhere.
31611 Sun Nov 07 15:01:23 GMT 2004  Olly Betts <olly@survex.com>
31613         * configure.ac,include/xapian/version.h.in: Terminating lines with 'N'
31614           makes Sun's C++ unhappy.  Try ',' instead.
31616 Sun Nov 07 03:54:42 GMT 2004  Olly Betts <olly@survex.com>
31618         * tests/api_nodb.cc: Added test_weight1 which tests the built-in
31619           Xapian::Weight subclasses (bug#8).
31621 Sun Nov 07 03:36:19 GMT 2004  Olly Betts <olly@survex.com>
31623         * backends/quartz/btree.cc,backends/quartz/btree_util.h,
31624           testsuite/btreecheck.cc: More refactoring.
31626 Sun Nov 07 03:33:24 GMT 2004  Olly Betts <olly@survex.com>
31628         * matcher/bm25weight.cc,matcher/tradweight.cc: Fixed definitions to
31629           match declarations after recent change.
31631 Sun Nov 07 02:33:50 GMT 2004  Olly Betts <olly@survex.com>
31633         * configure.ac: Noted LIBRARY_VERSION_INFO which 0.8.4 will get.
31635 Sun Nov 07 02:28:38 GMT 2004  Olly Betts <olly@survex.com>
31637         * include/xapian/enquire.h: BoolWeight::unserialise() returns
31638           BoolWeight*, etc.  BoolWeight::clone() returns BoolWeight *.
31640 Sun Nov 07 02:24:17 GMT 2004  Olly Betts <olly@survex.com>
31642         * HACKING: Note that C++ style casts are preferable to C style casts;
31643           Improve wording in a few places.
31645 Sun Nov 07 01:05:58 GMT 2004  Olly Betts <olly@survex.com>
31647         * backends/quartz/btree.cc,backends/quartz/btree_util.h,
31648           testsuite/btreecheck.cc: Moved set_block_given_by()
31649           and block_given_by() into Item class.
31651 Sat Nov 06 21:16:15 GMT 2004  Olly Betts <olly@survex.com>
31653         * configure.ac,include/xapian/version.h.in: Fix generation of
31654           version.h to work with aCC -E which concatenates adjacent literal
31655           strings.
31657 Sat Nov 06 20:58:00 GMT 2004  Olly Betts <olly@survex.com>
31659         * backends/quartz/,testsuite/btreecheck.cc: Started to refactor the
31660           Btree manager by introducing Item and Key classes which take care
31661           of handling the on-disk format.
31663 Sat Nov 06 15:40:05 GMT 2004  Olly Betts <olly@survex.com>
31665         * xapian-config.in,m4/xapian.m4: Pass across ac_top_srcdir and use it
31666           if provided to say "configure.ac" or "configure.in" rather than
31667           "configure.in (or configure.ac)" in the "Add AC_PROG_LIBTOOL"
31668           error message.
31670 Sat Nov 06 14:49:05 GMT 2004  Olly Betts <olly@survex.com>
31672         * configure.ac: Updated comment - we now find SOURCEDOC in 2 goes (as
31673           there are no longer any C sources).
31675 Sat Nov 06 14:43:16 GMT 2004  Olly Betts <olly@survex.com>
31677         * configure.ac: Oops, STLPORT_CXXFLAGS *is* used (in xapian-config.in)
31678           so revert the change which removes it.
31680 Sat Nov 06 13:37:23 GMT 2004  Olly Betts <olly@survex.com>
31682         * include/xapian/enquire.h,matcher/bm25weight.cc,
31683           matcher/tradweight.cc: Move virtual methods of BM25Weight and
31684           TradWeight out of the header.
31686 Sat Nov 06 13:19:32 GMT 2004  Olly Betts <olly@survex.com>
31688         * configure.ac,include/xapian/version.h.in: Another rework of how
31689           include/xapian/version.h is generated - this time to make it work
31690           with Sun's C++ compiler again; XAPIAN_VERSION is now a string;
31691           Define XAPIAN_REVISION (which is 4 for version 0.8.4).
31693 Sat Nov 06 04:22:57 GMT 2004  Olly Betts <olly@survex.com>
31695         * configure.ac: Don't AC_SUBST(STLPORT_CXXFLAGS) as it is never used
31696           that way (it's included in AM_CXXFLAGS).
31698 Sat Nov 06 01:03:53 GMT 2004  Olly Betts <olly@survex.com>
31700         * testsuite/testsuite.h: Removed incorrect comment about how STRINGIZE
31701           is used.
31703 Fri Nov 05 14:41:59 GMT 2004  Olly Betts <olly@survex.com>
31705         * include/xapian/database.h: Removed a default parameter value from one
31706           variant of open_db so that there's only one candidate for
31707           open_db(string).
31709 Fri Nov 05 14:40:38 GMT 2004  Olly Betts <olly@survex.com>
31711         * backends/database.cc: Renamed parameter from keys to values to
31712           reflect current external naming.
31714 Fri Nov 05 14:38:07 GMT 2004  Olly Betts <olly@survex.com>
31716         * include/xapian/version.h.in,configure.ac: Fixed generation of
31717           include/xapian/version.h to work with aCC.
31719 Thu Nov 04 12:17:50 GMT 2004  Olly Betts <olly@survex.com>
31721         * configure.ac: Try "-std strict_ansi" for Compaq C++.
31723 Thu Nov 04 11:22:52 GMT 2004  Olly Betts <olly@survex.com>
31725         * configure.ac: Fourth argument to AC_CHECK_HEADERS must be non-empty
31726           to make a difference.
31728 Thu Nov 04 10:21:25 GMT 2004  Olly Betts <olly@survex.com>
31730         * configure.ac: Found clean fix for inttypes.h problem (previous bodge
31731           didn't work anyway).
31733 Thu Nov 04 01:18:55 GMT 2004  Olly Betts <olly@survex.com>
31735         * configure.ac: Eliminated use of \( \) in sed expression as it
31736           appears to cause problems on HP-UX.
31738 Thu Nov 04 00:54:11 GMT 2004  Olly Betts <olly@survex.com>
31740         * configure.ac: Added icky workaround to Compaq C++ oddness - cc can
31741           find inttypes.h but cxx can't.
31743 Wed Nov 03 23:58:48 GMT 2004  Olly Betts <olly@survex.com>
31745         * api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
31746           net/socketserver.cc: Tweaked to compile with Compaq C++.
31748 Wed Nov 03 22:55:04 GMT 2004  Olly Betts <olly@survex.com>
31750         * configure.ac: Need to put flags to select ANSI C++ mode in CXXFLAGS
31751           not AM_CXXFLAGS.
31753 Wed Nov 03 22:27:08 GMT 2004  Olly Betts <olly@survex.com>
31755         * api/omenquire.cc: Fixed typo.
31757 Wed Nov 03 21:58:53 GMT 2004  Olly Betts <olly@survex.com>
31759         * api/omenquire.cc: Added explicit cast to try to help Compaq C++
31760           build.
31762 Wed Nov 03 21:38:29 GMT 2004  Olly Betts <olly@survex.com>
31764         * configure.ac: Probe for C++ compiler switches for ANSI mode as early
31765           as possible.  With Compaq's C++, we need -D__USE_STD_IOSTREAM to
31766           successfully #include <streambuf>.
31768 Wed Nov 03 21:07:43 GMT 2004  Olly Betts <olly@survex.com>
31770         * configure.ac: Fixed snprintf configure test.
31772 Wed Nov 03 19:37:32 GMT 2004  Olly Betts <olly@survex.com>
31774         * common/utils.cc: Fixed typo.
31776 Wed Nov 03 19:27:22 GMT 2004  Olly Betts <olly@survex.com>
31778         * configure.ac,common/utils.cc: Improved snprintf checking.
31780 Wed Nov 03 15:43:54 GMT 2004  Olly Betts <olly@survex.com>
31782         * getopt/getopt.cc: Fixed to compile when not using glibc.
31784 Wed Nov 03 14:55:29 GMT 2004  Olly Betts <olly@survex.com>
31786         * bin/omtcpsrv.cc,bin/quartzdump.cc,common/Makefile.am,common/getopt.h,
31787           common/gnu_getopt.h,getopt/,testsuite/testsuite.cc: Major overhaul
31788           of getopt use.  Move from getopt(), getopt_long(), getopt_long_only()
31789           to gnu_getopt(), etc so we don't need to dance around avoiding
31790           clashes with getopt() stuff in system headers.  The new gnu_getopt.h
31791           header is cruft free and hopefully won't trip up assorted compilers
31792           or platforms.
31794 Wed Nov 03 14:53:39 GMT 2004  Olly Betts <olly@survex.com>
31796         * tests/Makefile.am: quartztest doesn't use getopt directly, so no
31797           need to link it.
31799 Wed Nov 03 12:56:56 GMT 2004  Olly Betts <olly@survex.com>
31801         * tests/stemtest.cc: Prune unused #includes.
31803 Wed Nov 03 03:47:46 GMT 2004  Olly Betts <olly@survex.com>
31805         * getopt/getopt.cc: Defining _NO_PROTO is a really bad idea for C++
31806           code!
31808 Wed Nov 03 03:34:06 GMT 2004  Olly Betts <olly@survex.com>
31810         * configure.ac: Removed AC_HEADER_STDC - Compaq's C++ compiler can't
31811           find inttypes.h, but their C compiler can!
31813 Wed Nov 03 02:48:04 GMT 2004  Olly Betts <olly@survex.com>
31815         * net/tcpclient.cc,net/tcpserver.cc: Use SOCKLEN_T for the type we
31816           need to pass to various socket calls, since HPUX defines socklen_t
31817           yet wants int in those calls.
31819 Wed Nov 03 02:43:26 GMT 2004  Olly Betts <olly@survex.com>
31821         * autoconf/type_socklen_t.m4,matcher/networkmatch.cc,net/: If
31822           __WIN32__ is defined, we want winsock2.h instead of sys/socket.h.
31823           Mingw doesn't seem to even have the latter, so I think previously
31824           we've been compiling by picking one up from somewhere random!
31826 Wed Nov 03 01:10:01 GMT 2004  Olly Betts <olly@survex.com>
31828         * autoconf/type_socklen_t.m4: Rewritten to work with HPUX which
31829           helpfully defines socklen_t but doesn't use it!
31831 Tue Nov 02 21:29:40 GMT 2004  Olly Betts <olly@survex.com>
31833         * getopt/getopt.cc: Fixes for Compaq C++.
31835 Tue Nov 02 18:51:43 GMT 2004  Olly Betts <olly@survex.com>
31837         * getopt/getopt.cc: Protect getopt definition for possible getopt
31838           macro declared in getopt.h.
31840 Tue Nov 02 16:52:21 GMT 2004  Olly Betts <olly@survex.com>
31842         * configure.ac: AM_CONFIG_HEADER -> AC_CONFIG_HEADERS; removed
31843           commented out AC_LANG_SAVE and AC_LANG_RESTORE.
31845 Tue Nov 02 15:56:02 GMT 2004  Olly Betts <olly@survex.com>
31847         * configure.ac: # comments -> dnl comments.
31849 Tue Nov 02 15:54:46 GMT 2004  Olly Betts <olly@survex.com>
31851         * configure.ac: $GCC -> $GXX; $CC -> $CXX.
31853 Tue Nov 02 15:38:21 GMT 2004  Olly Betts <olly@survex.com>
31855         * configure.ac,docs/Makefile.am: Removed SOURCEDOC_C_SRC.
31857 Tue Nov 02 06:51:39 GMT 2004  Olly Betts <olly@survex.com>
31859         * getopt/getopt.cc,getopt/getopt1.cc: Fixed function declarations to
31860           not use K&R C syntax.
31862 Tue Nov 02 05:31:57 GMT 2004  Olly Betts <olly@survex.com>
31864         * getopt/getopt.cc: Make _getopt_internal extern "C" too.
31866 Tue Nov 02 04:43:08 GMT 2004  Olly Betts <olly@survex.com>
31868         * Makefile.am,configure.ac,HACKING,PLATFORMS,backends/muscat36/,
31869           getopt/Makefile.am,getopt/getopt.cc,getopt/getopt1.cc,languages/:
31870           Change the few C sources to be C++.  This way we don't need to
31871           worry about configure choosing a mismatching pair of compilers,
31872           or about whether configure tests with the C compiler don't apply
31873           to the C++ compiler, or vice versa.
31875 Tue Nov 02 04:31:49 GMT 2004  Olly Betts <olly@survex.com>
31877         * backends/muscat36/: More C casts converted to C++ casts.
31879 Tue Nov 02 04:28:07 GMT 2004  Olly Betts <olly@survex.com>
31881         * matcher/bm25weight.cc,matcher/tradweight.cc: More C casts converted
31882           to C++ casts.
31884 Tue Nov 02 03:22:52 GMT 2004  Olly Betts <olly@survex.com>
31886         * backends/muscat36/: Removed unused test harness sources.
31888 Tue Nov 02 02:44:34 GMT 2004  Olly Betts <olly@survex.com>
31890         * languages/pool.c,languages/pool.h: Removed unused sources.
31892 Tue Nov 02 01:51:30 GMT 2004  Olly Betts <olly@survex.com>
31894         * configure.ac: AC_TYPE_SIZE_T causes problems with Compaq C++ when it
31895           fails to spot size_t (which is there) and the "#define size_t
31896           unsigned long" it adds to config.h breaks "using std::size_t;".
31897           Also removed AC_C_CONST as I don't believe that's needed either
31898           in a largely C++ library.  Both of these have been in configure.in
31899           since the very first version so I suspect autoscan decided we wanted
31900           them.
31902 Mon Nov 01 05:44:02 GMT 2004  Olly Betts <olly@survex.com>
31904         * matcher/multimatch.cc: Fixed compilation problem on alpha Linux.
31906 Mon Nov 01 03:16:36 GMT 2004  Olly Betts <olly@survex.com>
31908         * api/omqueryinternal.cc,api/omstem.cc,
31909           backends/inmemory/inmemory_database.h,
31910           backends/multi/multi_termlist.h,backends/quartz/,
31911           extra/queryparser.yy,matcher/,net/tcpserver.cc,tests/api_anydb.cc,
31912           tests/api_db.cc,tests/quartztest.cc,testsuite/backendmanager.cc,
31913           testsuite/btreecheck.cc,testsuite/testsuite.cc: Changed C style
31914           casts to C++ style.  The syntax is ugly, but they do make the intent
31915           clearer which is a good thing.
31917 Mon Nov 01 02:56:31 GMT 2004  Olly Betts <olly@survex.com>
31919         * configure.ac: Select ANSI iostream implementation for Compaq C++.
31921 Mon Nov 01 02:41:58 GMT 2004  Olly Betts <olly@survex.com>
31923         * configure.ac: Compaq's C++ compiler doesn't know snprintf, yet their
31924           C compiler does.  Let's try running *all* the configure checks with
31925           the C++ compiler, since that's what we compile most code with.
31927 Mon Nov 01 01:12:43 GMT 2004  Olly Betts <olly@survex.com>
31929         * common/netutils.cc: Fixed to compile.
31931 Mon Nov 01 01:06:13 GMT 2004  Olly Betts <olly@survex.com>
31933         * common/Makefile.am,common/netutils.cc,common/netutils.h:
31934           encode_tname() and decode_tname() aren't really sensible candidates
31935           for inlining so move them out of a header.
31937 Sun Oct 31 15:34:18 GMT 2004  Olly Betts <olly@survex.com>
31939         * configure.ac: Turn on -AA when compiling with HP's aCC.
31941 Sun Oct 31 15:10:02 GMT 2004  Olly Betts <olly@survex.com>
31943         * testsuite/testutils.cc: Fixed mset_range_is_same() and
31944           mset_range_is_same_weights() which were only comparing the
31945           first items in the range.  Luckily the tests still all pass
31946           so this wasn't hiding any bugs.
31948 Sat Oct 30 19:15:48 BST 2004  Olly Betts <olly@survex.com>
31950         * configure.ac: Disable pread/pwrite on HP-UX as they don't work when
31951           LFS in enabled, and we definitely want LFS.
31953 Sat Oct 30 16:42:24 BST 2004  Olly Betts <olly@survex.com>
31955         * backends/quartz/bcursor.cc: Fix Bcursor::del() which didn't always
31956           leave the cursor on the next item like it should.
31957         * backends/quartz/quartz_postlist.cc: If we're removing a posting
31958           list entirely, often there will only be one chunk, so avoid
31959           creating a Bcursor in this case.
31961 Sat Oct 30 16:55:19 BST 2004  Olly Betts <olly@survex.com>
31963         * languages/header.h: Removed unused #define MAXINT and MININT which
31964           were clashing with some header on HP-UX.
31966 Sat Oct 30 07:09:33 BST 2004  Olly Betts <olly@survex.com>
31968         * docs/bm25.html,docs/intro_ir.html: Reworked to talk about Xapian
31969           rather than Muscat.  Also improved the appearance of the formulae.
31971 Sat Oct 30 06:07:14 BST 2004  Olly Betts <olly@survex.com>
31973         * backends/quartz/btree.cc: Btree::read_block - debug log the value
31974           of p, not the irrelevant contents of the block it points to.
31976 Fri Oct 29 22:37:31 BST 2004  Olly Betts <olly@survex.com>
31978         * backends/quartz/quartz_postlist.cc: Improved comments.
31980 Fri Oct 29 05:10:02 BST 2004  Olly Betts <olly@survex.com>
31982         * backends/quartz/btree.cc: Fixed ultra-obscure bug in the code which
31983           finds a key suitable to discriminating between two blocks in a
31984           B-tree branch (discovered by reading the code).  Comparing the keys
31985           didn't consider the length of the second, so it is possible the code
31986           would miscompare.  But in reality this is extremely unlikely to
31987           happen, and even then would probably just mean that the
31988           discriminating key wouldn't be as short as it could be.
31990 Fri Oct 29 04:12:09 BST 2004  Olly Betts <olly@survex.com>
31992         * backends/quartz/btree.cc: Simplified Btree::compare_keys() by
31993           removing the last case which was dead code as it was covered by
31994           an earlier case.
31996 Wed Oct 27 21:17:12 BST 2004  Olly Betts <olly@survex.com>
31998         * HACKING,tests/runtest.in:
31999           Enhanced runtest to allow it to run test programs under valgrind
32000           and other tools (gdb was already supported).
32001         * testsuite/testsuite.cc: Point the user to the runtest script if
32002           srcdir can't be guessed.  And no longer look for the test program
32003           in the tests subdirectory of the current directory.
32004         * common/omdebug.cc: Removed compatibility code for checking
32005           OM_DEBUG_FILE and OM_DEBUG_TYPES.
32006         * HACKING: Document that %% in XAPIAN_DEBUG_LOG is substituted with
32007           the process-id, and that setting XAPIAN_DEBUG_FLAGS to -1 enables
32008           all debug messages.
32009         * HACKING: Valgrind now supports x86 FreeBSD and PowerPC Linux.
32010         * HACKING: Removed mentions of long-dead configure options
32011           --enable-profiling, --enable-purify and --enable-insure.
32013 Wed Oct 27 21:16:10 BST 2004  Olly Betts <olly@survex.com>
32015         * include/xapian/enquire.h: Document parameters of
32016           Enquire::register_match_decider().
32018 Wed Oct 27 21:14:32 BST 2004  Olly Betts <olly@survex.com>
32020         * PLATFORMS: Updated.
32022 Wed Oct 13 20:21:38 BST 2004  Olly Betts <olly@survex.com>
32024         * backends/quartz/btree.cc,backends/quartz/btree.h: Revert the
32025           previous change as runtime sized arrays are a g++ extension.
32026           Calling new and delete on every call to add_item() is probably
32027           unwise.
32029 Tue Oct 12 23:40:36 BST 2004  Olly Betts <olly@survex.com>
32031         * backends/quartz/btree.cc,backends/quartz/btree.h: split_p is only
32032           used by Btree::add_item(), so make it a temporary in that method
32033           rather than a class member variable which we need to take care to
32034           allocate and deallocate.
32036 Mon Oct 11 16:32:10 BST 2004  Olly Betts <olly@survex.com>
32038         * tests/btreetest.cc: Fix memory leaks in test_cursor1.
32040 Mon Oct 11 02:24:50 BST 2004  Olly Betts <olly@survex.com>
32042         * docs/quartzdesign.html: Use 5 tables in the example for how we keep
32043           revisions in step, since we use 5 tables in quartz.
32045 Thu Oct 07 22:51:28 BST 2004  Olly Betts <olly@survex.com>
32047         * backends/quartz/btree.cc: An interrupted update could cause any
32048           further updates to fail with "New revision too low" because the
32049           new revision was being calculated incorrectly - fixed.
32051 Wed Oct 06 15:42:31 BST 2004  Olly Betts <olly@survex.com>
32053         * backends/quartz/btree.cc,include/xapian/database.h: Check that any
32054           user specified block size is a power of 2.  And if the block size
32055           passed is invalid, use the default of 8192 rather than throwing an
32056           exception.
32058 Wed Oct 06 12:19:39 BST 2004  Olly Betts <olly@survex.com>
32060         * PLATFORMS: Updated from tinderbox.
32062 Wed Oct 06 01:10:46 BST 2004  Olly Betts <olly@survex.com>
32064         * backends/quartz/btree.cc,backends/quartz/quartz_document.cc,
32065           matcher/multimatch.cc,common/multimatch.h: Fix some warnings
32066           from Sun's C++ compiler.
32068 Thu Sep 30 22:16:37 BST 2004  Olly Betts <olly@survex.com>
32070         * common/utils.cc,common/utils.h: Fixes for win32 and sun's c++
32071           compiler.
32073 Thu Sep 30 18:24:20 BST 2004  Olly Betts <olly@survex.com>
32075         * common/utils.h,extra/queryparser.yy: Fixed bug which caused
32076           misparsing of certain prefixed queries, introduced by C_isXXXXX
32077           change.
32079 Thu Sep 30 11:09:17 BST 2004  Olly Betts <olly@survex.com>
32081         * tests/api_anydb.cc: Modified version of changequery1 fails - the
32082           fix is tricky, so just make it SKIP for now.
32084 Wed Sep 29 21:33:29 BST 2004  Olly Betts <olly@survex.com>
32086         * extra/Makefile.am: Fixed to work when srcdir != builddir.
32088 Wed Sep 29 18:52:04 BST 2004  Olly Betts <olly@survex.com>
32090         * PLATFORMS,docs/Makefile.am: Workaround odd latex problem.
32092 Wed Sep 29 17:10:00 BST 2004  Olly Betts <olly@survex.com>
32094         * configure.ac,docs/doxygen_api_conf.in,docs/doxygen_full_conf.in:
32095           Updated doxygen conf files for doxygen 1.3.8.
32097 Wed Sep 29 16:52:53 BST 2004  Olly Betts <olly@survex.com>
32099         * common/utils.cc,common/utils.h,extra/Makefile.am,
32100           extra/queryparser.yy,tests/api_anydb.cc,testsuite/index_utils.cc:
32101           Provide our own C_isalpha(), etc replacements for isalpha(), etc
32102           which always work in the C locale and avoid signed char problems.
32104 Tue Sep 28 00:04:11 BST 2004  Olly Betts <olly@survex.com>
32106         * common/utils.cc,common/utils.h: rmdir() isn't a sensible candidate
32107           for inlining so move it out of the header.
32109 Mon Sep 27 17:33:23 BST 2004  Olly Betts <olly@survex.com>
32111         * extra/queryparser.yy: Be smarter about when to add a ':' when adding
32112           a term prefix.
32114 Mon Sep 27 16:01:37 BST 2004  Olly Betts <olly@survex.com>
32116         * docs/scalability.html: Added note warning about benchmarking from
32117           cold.
32119 Mon Sep 27 15:20:13 BST 2004  Olly Betts <olly@survex.com>
32121         * HACKING: Note that we use doxygen 1.3.8 for snapshots and releases;
32122           Note that --enable-maintainer-mode now automatically enables -Werror
32123           with GCC 3.0 or newer.
32125 Wed Sep 22 16:49:20 BST 2004  Olly Betts <olly@survex.com>
32127         * matcher/: Pruned unneeded #include-s and other tidying, some
32128           enabled by the previous change.
32130 Wed Sep 22 14:04:27 BST 2004  Olly Betts <olly@survex.com>
32132         * common/positionlist.h,matcher/: Moved all of the implementations
32133           of the XXXPostList classes from the .h files into the .cc files.
32134           All the methods are virtual, so we aren't going to gain anything
32135           from being able to inline them.
32137 Wed Sep 22 02:58:59 BST 2004  Olly Betts <olly@survex.com>
32139         * configure.ac: Automatically add -Werror to CFLAGS and CXXFLAGS if
32140           maintainer mode is enabled and we're using GCC3 or newer.  Don't
32141           do this for older GCCs as GCC 2.95 issues spurious warnings.
32143 Wed Sep 22 02:41:41 BST 2004  Olly Betts <olly@survex.com>
32145         * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h:
32146           Introduced CASSERT_TYPE_UNSIGNED to replace the common use of
32147           CASSERT to assert at compile time that a type is unsigned.
32149 Tue Sep 21 15:58:05 BST 2004  Olly Betts <olly@survex.com>
32151         * PLATFORMS: Removed reports from versions prior to 0.7.0.  So much
32152           has changed that these are of little value.
32154 Mon Sep 20 15:24:27 BST 2004  Olly Betts <olly@survex.com>
32156         * NEWS,PLATFORMS,configure.ac: Version 0.8.3.
32158 Mon Sep 20 15:13:34 BST 2004  Olly Betts <olly@survex.com>
32160         * AUTHORS: Updated.
32162 Mon Sep 20 14:26:35 BST 2004  Olly Betts <olly@survex.com>
32164         * xapian.spec.in: Removed reference to xapian-examples' createdatabase
32165           (which is no longer in xapian-examples).
32167 Mon Sep 20 13:06:59 BST 2004  Olly Betts <olly@survex.com>
32169         * xapian.spec.in: Updated version from Fabrice Colin (incorporating
32170           changes from Alan Cox's RPM spec files): split off libs into a
32171           separate package to allow 32 and 64 bit versions to be installed
32172           concurrently; include binaries from xapian-examples; updated source
32173           URLs.
32175 Mon Sep 20 03:25:44 BST 2004  Olly Betts <olly@survex.com>
32177         * tests/api_anydb.cc: Added regression test for previous bug (test
32178           checkatleast1).
32180 Mon Sep 20 03:16:14 BST 2004  Olly Betts <olly@survex.com>
32182         * matcher/multimatch.cc: Fixed segfault with check_at_least when there
32183           were no matches.
32185 Sun Sep 19 17:54:52 BST 2004  Olly Betts <olly@survex.com>
32187         * api/omenquire.cc,common/omdebug.cc: Fixed to compile with debug
32188           tracing enabled.
32190 Sat Sep 18 19:02:54 BST 2004  Olly Betts <olly@survex.com>
32192         * tests/api_db.cc: Updated missed use of omprogsrv to xapian-progsrv.
32194 Tue Sep 14 18:09:19 BST 2004  Olly Betts <olly@survex.com>
32196         * xapian.spec.in,bin/.cvsignore,bin/Makefile.am,debian/control.in,
32197           debian/xapian-tools.install,docs/remote.html,tests/remotetest.cc,
32198           testsuite/backendmanager.cc: Rename omtcpsrv to xapian-tcpsrv and
32199           omprogsrv to xapian-progsrv.
32201 Tue Sep 14 16:25:06 BST 2004  Olly Betts <olly@survex.com>
32203         * xapian.spec.in: Fixed mangled URL in last checkin.
32205 Tue Sep 14 15:35:00 BST 2004  Olly Betts <olly@survex.com>
32207         * xapian.spec.in: Updated URL for tarball.
32209 Tue Sep 14 02:49:34 BST 2004  Olly Betts <olly@survex.com>
32211         * HACKING: Updated the "how to do a release" tasklist.
32213 Mon Sep 13 03:19:47 BST 2004  Olly Betts <olly@survex.com>
32215         * NEWS,PLATFORMS,configure.ac: Version 0.8.2.
32217 Sat Sep 11 16:39:08 BST 2004  Olly Betts <olly@survex.com>
32219         * include/xapian/version.h.in: GCC 3.1 reported the wrong value for
32220           __GXX_ABI_VERSION (100 not 101) so check 3.0 and 3.1 by version
32221           number, keeping the __GXX_ABI_VERSION check for newer versions.
32223 Sat Sep 11 02:57:48 BST 2004  Olly Betts <olly@survex.com>
32225         * backends/quartz/bcursor.cc: Fixed and reenabled Bcursor::prev()
32226           (not currently used, but it will be useful for running posting
32227           lists backwards!)
32229 Fri Sep 10 13:13:51 BST 2004  Olly Betts <olly@survex.com>
32231         * tests/Makefile.am: Need to ship test data for new test.
32233 Thu Sep 09 21:58:37 BST 2004  Olly Betts <olly@survex.com>
32235         * tests/api_db.cc: Extended feature test sortrel1 to check interaction
32236           with Enquire::set_sort_forward(false).
32238 Thu Sep 09 21:46:12 BST 2004  Olly Betts <olly@survex.com>
32240         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
32241           include/xapian/enquire.h,matcher/multimatch.cc,net/socketserver.cc,
32242           tests/api_db.cc,tests/testdata/apitest_sortrel.txt: You can now
32243           specify to sort by value, then relevance, then docid instead of
32244           by value then docid.
32246 Thu Sep 09 19:30:07 BST 2004  Olly Betts <olly@survex.com>
32248         * docs/todo.xml: Removed unused file - todo entries are now in
32249           bugzilla.
32251 Thu Sep 09 13:11:52 BST 2004  Olly Betts <olly@survex.com>
32253         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
32254           include/xapian/enquire.h,matcher/multimatch.cc,net/socketserver.cc:
32255           Added optional "checkatleast" parameter to Enquire::get_mset()
32256           which allows Omega's MIN_HITS functionality to be implemented
32257           in the matcher (a bit more efficient).
32259 Thu Sep 09 04:18:32 BST 2004  Olly Betts <olly@survex.com>
32261         * NEWS: Updated.
32263 Thu Sep 09 03:39:52 BST 2004  Olly Betts <olly@survex.com>
32265         * PLATFORMS: Updated from the tinderbox.  Sun's C++ compiler can
32266           now build Xapian on sparc!
32268 Thu Sep 09 02:19:43 BST 2004  Olly Betts <olly@survex.com>
32270         * tests/api_wrdb.cc: Added feature test for
32271           WritableDatabase::replace_document() and delete_document() with
32272           a unique term (apitest:uniqueterm1.
32273         * backends/inmemory/inmemory_alltermslist.cc,
32274           backends/inmemory/inmemory_database.cc,
32275           backends/inmemory/inmemory_database.h:
32276           Fixed bugs thrown up by the new test.
32278 Wed Sep 08 19:45:37 BST 2004  Olly Betts <olly@survex.com>
32280         * HACKING: Updated details of Solaris open workaround.
32282 Wed Sep 08 19:42:15 BST 2004  Olly Betts <olly@survex.com>
32284         * common/utils.h,backends/quartz/btree.cc,
32285           backends/quartz/quartz_database.cc,backends/quartz/quartz_log.cc:
32286           New version of the Solaris open dance - now we always pass in
32287           const char * for the filename, and we don't need the dance on
32288           new versions, so only dance if open is defined.
32290 Wed Sep 08 16:26:15 BST 2004  Olly Betts <olly@survex.com>
32292         * api/omquery.cc,include/xapian/query.h: Renamed Query::is_empty()
32293           to Query::empty() for consistency.  Keep Query::is_empty() for
32294           now as a deprecated alias.
32296 Wed Sep 08 16:24:44 BST 2004  Olly Betts <olly@survex.com>
32298         * tests/api_wrdb.cc: replace_doc -> replace_doc1; added new test
32299           replace_doc2 to test using replace_doc to add a document with
32300           a specified docid.
32302 Wed Sep 08 16:23:50 BST 2004  Olly Betts <olly@survex.com>
32304         * backends/inmemory/inmemory_database.h: Removed unused member
32305           variable "indexing".
32307 Wed Sep 08 16:14:47 BST 2004  Olly Betts <olly@survex.com>
32309         * backends/quartz/quartz_database.cc: If replace_document() is used
32310           to add a document with did greater than lastdocid, raise lastdocid
32311           so future calls to add_document() won't clash.
32313 Wed Sep 08 16:13:51 BST 2004  Olly Betts <olly@survex.com>
32315         * backends/inmemory/inmemory_database.cc: Fixed bug
32316           Database::replace_document() to work with a document id greater
32317           than lastdocid.
32319 Wed Sep 08 05:10:01 BST 2004  Olly Betts <olly@survex.com>
32321         * common/utils.h: The latest fcntl.h dance causes a compile error on
32322           mingw, so don't use it there.
32324 Wed Sep 08 03:38:20 BST 2004  Olly Betts <olly@survex.com>
32326         * common/utils.h: Use a namespace as an extra step in the Sun fcntl
32327           open64 dance.
32329 Tue Sep 07 02:33:50 BST 2004  Olly Betts <olly@survex.com>
32331         * tests/test.da: Another cruft file removed.
32333 Tue Sep 07 02:21:49 BST 2004  Olly Betts <olly@survex.com>
32335         * tests/btreetest.cc,tests/quartztest.cc: Moved overwrite1 from
32336           quartztest to btreetest.  Added const in a few places.
32338 Tue Sep 07 02:07:43 BST 2004  Olly Betts <olly@survex.com>
32340         * tests/quartztest.cc: Removed overwrite2 test.  Digging back in CVS
32341           it's been disabled since the day after it added.  After all this
32342           time it's hard to guess exactly what it was intended to test, so
32343           just removing it seems simplest.  We already have overwrite1 to test
32344           getting DatabaseModifiedError.
32346 Tue Sep 07 01:52:25 BST 2004  Olly Betts <olly@survex.com>
32348         * tests/btreetest.cc: Cleaned up paths to temporary Btrees.
32350 Mon Sep 06 17:51:27 BST 2004  Olly Betts <olly@survex.com>
32352         * tests/btreetest.cc,tests/quartztest.cc: Now that QuartzTable,
32353           QuartzDiskTable, QuartzBufferedTable, QuartzCursor,
32354           QuartzDiskCursor, and QuartzBufferedCursor are gone, move
32355           quartztest tests which now just use Btree and Bcursor to btreetest.
32356           This is more logical and should help make quartztest less of a
32357           monster to compile.
32359 Mon Sep 06 12:47:47 BST 2004  Olly Betts <olly@survex.com>
32361         * tests/Makefile.am: Ship testdata/apitest_allterms4.txt.
32363 Mon Sep 06 02:46:32 BST 2004  Olly Betts <olly@survex.com>
32365         * tests/quartztest.cc: Xapian::Database will create the directory for
32366           the database so there's no need to create it ourselves.
32368 Mon Sep 06 02:40:57 BST 2004  Olly Betts <olly@survex.com>
32370         * tests/,tests/testdata/apitest_allterms4.txt: Split off tests which
32371           require a writable database backend and tests which should work with
32372           any database backend from api_db.cc as it was getting rather large.
32373           Fixed simplequery2 to work with backends which don't return the
32374           document length (such as the muscat36 backends).  Fixed allterms4
32375           to work with muscat36 backends.
32377 Mon Sep 06 02:39:29 BST 2004  Olly Betts <olly@survex.com>
32379         * backends/muscat36/da_database.cc,backends/muscat36/db_database.cc:
32380           Fixed to compile now that internal_end_session() has gone.
32382 Mon Sep 06 00:59:36 BST 2004  Olly Betts <olly@survex.com>
32384         * tests/runtest.in: Added support for running gdb on a test program,
32385           automatically sorting out srcdir and libtool.
32387 Mon Sep 06 00:49:11 BST 2004  Olly Betts <olly@survex.com>
32389         * tests/apitest_parser.pm: Removed long unused file.
32391 Sun Sep 05 22:53:27 BST 2004  Olly Betts <olly@survex.com>
32393         * include/xapian/enquire.h: Tweaked documentation comment to stop
32394           doxygen parsing a hyphen as a single entry bullet point list.
32396 Sun Sep 05 20:20:01 BST 2004  Olly Betts <olly@survex.com>
32398         * testsuite/backendmanager.h: Added missing "std::" so code will
32399           compile with GCC >= 3.
32401 Sun Sep 05 13:54:58 BST 2004  Olly Betts <olly@survex.com>
32403         * testsuite/backendmanager.h: Removed superfluous "BackendManager::".
32405 Sun Sep 05 01:54:49 BST 2004  Olly Betts <olly@survex.com>
32407         * common/utils.cc,common/utils.h: Removed now unused files_exist()
32408           function.
32410 Sun Sep 05 01:50:35 BST 2004  Olly Betts <olly@survex.com>
32412         * tests/api_db.cc,tests/apitest.cc,tests/apitest.h,
32413           testsuite/backendmanager.cc,testsuite/backendmanager.h:
32414           Cleaned up BackendManager by removing complications only required
32415           by absentfile1 test, which can be implemented more directly anyway.
32417 Sun Sep 05 01:33:16 BST 2004  Olly Betts <olly@survex.com>
32419         * tests/quartztest.cc: Cleaned up rather odd code which is a hangover
32420           from when keys and tags weren't simply C++ strings.
32422 Sat Sep 04 12:35:12 BST 2004  Olly Betts <olly@survex.com>
32424         * HACKING: Updated details of which autotools we require.
32426 Fri Sep 03 17:51:59 BST 2004  Olly Betts <olly@survex.com>
32428         * configure.ac: Require autoconf 2.59.  Noted LIBRARY_VERSION_INFO
32429           which 0.8.2 will probably have.
32430         * Makefile.am: Require automake 1.8.5.
32432 Fri Sep 03 16:40:11 BST 2004  Olly Betts <olly@survex.com>
32434         * PLATFORMS: Updated with results from tinderbox.
32436 Fri Sep 03 14:34:00 BST 2004  Olly Betts <olly@survex.com>
32438         * autoconf/definedir.m4,autoconf/rjb_find_stlport.m4: Quote macro
32439           names to fix warning from newer aclocal.  Removed comments about
32440           future autodetection of stlport, as the user will always need to
32441           decide between the STL supplied with the compiler and stlport.
32443 Thu Sep 02 17:55:33 BST 2004  Olly Betts <olly@survex.com>
32445         * matcher/andpostlist.cc: Initialise lmax and rmax to 0.  Hopefully
32446           this will fix SIGFPE on apitest's qterminfo2 on alpha linux.
32448 Thu Sep 02 14:50:20 BST 2004  Olly Betts <olly@survex.com>
32450         * backends/quartz/quartz_database.cc: Not storing the document length
32451           and last docid on every add means that the magic key won't always
32452           exists when there are records and
32453           QuartzWritableDatabase::get_doccount() is sometimes off by one.  Fix
32454           crudely for now by making sure that the magic key does always exist.
32455           Longer term the magic key probably should be in the postlist table
32456           but that's an incompatible change.
32458 Wed Sep 01 16:15:23 BST 2004  Olly Betts <olly@survex.com>
32460         * backends/quartz/: Change QuartzWritableDatabase to store the total
32461           document length and the last docid itself rather than tallying added
32462           and removed document length and writing the last docid back every
32463           time a document is added.  This gives cleaner code and a small
32464           performance win.  Removed XAPIAN_FLUSH_THRESHOLD_LENGTH as we no
32465           longer tally the length changes, and made the default flush
32466           threshold 10000 documents (was 1000).
32468 Wed Sep 01 14:21:19 BST 2004  Olly Betts <olly@survex.com>
32470         * backends/quartz/btree.cc: Turn on previously commented-out code to
32471           make the first key null for blocks more than 1 away from the leaves.
32472           It saves disk space for a tiny CPU and RAM cost so is bound to be
32473           a win overall.
32475 Tue Aug 31 13:55:58 BST 2004  Olly Betts <olly@survex.com>
32477         * backends/quartz/btree.cc,backends/quartz/btree.h,
32478           backends/quartz/btree_util.h: Merged Btree::make_index_item() into
32479           Btree::enter_key().
32481 Tue Aug 31 01:07:19 BST 2004  Olly Betts <olly@survex.com>
32483         * NEWS: Updated in preparation for a release.
32485 Tue Aug 31 00:53:35 BST 2004  Olly Betts <olly@survex.com>
32487         * backends/quartz/btree.cc: Short-cutting Btree::cancel causes
32488           problems so disable that for the time being at least.
32490 Fri Aug 27 13:09:56 BST 2004  Olly Betts <olly@survex.com>
32492         * testsuite/btreecheck.cc: Fixed %% to % (presumably a hangover from
32493           converting printf to cout).
32495 Thu Aug 26 18:11:50 BST 2004  Olly Betts <olly@survex.com>
32497         * backends/quartz/quartz_postlist.cc: Reduce quartz postlist chunk
32498           threshold from 2048 to 2000 so that chunks won't get split by the
32499           Btree.
32501 Thu Aug 26 18:10:27 BST 2004  Olly Betts <olly@survex.com>
32503         * backends/quartz/quartz_record.cc: Throw DocNotFoundError if we
32504           try to delete a record which doesn't exist.
32506 Thu Aug 26 17:18:56 BST 2004  Olly Betts <olly@survex.com>
32508         * configure.ac: Don't define DATADIR - we no longer use it and clashes
32509           with more recent mingw headers.
32511 Wed Aug 25 22:47:06 BST 2004  Olly Betts <olly@survex.com>
32513         * docs/quartzdesign.html: Started section on quartzcompact.
32515 Wed Aug 25 22:45:48 BST 2004  Olly Betts <olly@survex.com>
32517         * api/omdatabase.cc,include/xapian/database.h: Changed new
32518           WritableDatabase::replace_document(term, doc) method to return
32519           the docid which the document was given.
32521 Tue Aug 24 13:45:52 BST 2004  Olly Betts <olly@survex.com>
32523         * api/omenquire.cc,include/xapian/enquire.h: Added new ESet methods
32524           swap(), back() and operator[].
32525         * include/xapian/enquire.h: Added documentation comments for
32526           MSet methods size(), empty(), swap(), begin(), end(), back().
32527         * include/xapian/enquire.h: Removed bogus documentation saying
32528           that some Enquire methods can throw DatabaseOpeningError.
32530 Tue Aug 24 10:24:30 BST 2004  Olly Betts <olly@survex.com>
32532         * HACKING: Noted automake 1.8 may be problematic.  Tweaked list of
32533           release tasks.
32535 Tue Aug 24 10:16:38 BST 2004  Olly Betts <olly@survex.com>
32537         * matcher/multimatch.cc: If a matchdecider is specified and no matches
32538           are requested, the lower bound on the number of matches must be 0
32539           (since the matchdecider could reject all the matches).
32541 Mon Aug 23 23:03:12 BST 2004  Olly Betts <olly@survex.com>
32543         * backends/quartz/btree.cc: Improved the "Db block overwritten"
32544           message.  The DatabaseCorruptError version now suggests multiple
32545           writers may be the cause, while the DatabaseModifiedError version
32546           uses less alarming wording and says to call Database::reopen().
32548 Sun Aug 22 14:07:35 BST 2004  Olly Betts <olly@survex.com>
32550         * indexer/: Removed the old XML-based indexer framework.  It's not
32551           worked for ages, and nobody seems interested in ressurecting it.
32552           If anyone ever is, they can fetch it back from CVS, but otherwise
32553           it's just bulking up CVS checkouts.
32555 Sun Aug 22 13:02:25 BST 2004  Olly Betts <olly@survex.com>
32557         * Makefile.am,configure.ac,extra/Makefile.am: Moved the older library
32558           version information into configure.ac.
32560 Sun Aug 22 12:58:21 BST 2004  Olly Betts <olly@survex.com>
32562         * HACKING,configure.in,configure.ac,backends/Makefile.am,
32563           docs/Makefile.am: Renamed configure.in to configure.ac.
32565 Sun Aug 22 12:47:43 BST 2004  Olly Betts <olly@survex.com>
32567         * xapian-config.in: Add "(or configure.ac)" in message telling the
32568           user to add a line to their configure.in.
32570 Sun Aug 22 11:38:55 BST 2004  Olly Betts <olly@survex.com>
32572         * backends/quartz/btree.cc,backends/quartz/btree_util.h: Adjusted
32573           some Asserts to check c is within blocksize rather than
32574           65536.  Added a FIXME for those which can't be trivially changed.
32576 Sun Aug 22 10:56:56 BST 2004  Olly Betts <olly@survex.com>
32578         * backends/quartz/quartz_database.cc: No need to force a flush on
32579           QuartzWritableDatabase::open_document() (the document will read
32580           things lazily from the database, and that may trigger a forced
32581           flush).
32582         * backends/quartz/quartz_database.cc,
32583           backends/quartz/quartz_database.h: Eliminated
32584           QuartzDatabase::open_post_list_internal() and
32585           QuartzDatabase::open_term_list_internal().
32587 Sun Aug 22 01:33:05 BST 2004  Olly Betts <olly@survex.com>
32589         * backends/quartz/quartz_database.cc,backends/quartz/quartz_record.cc,
32590           backends/quartz/quartz_record.h: WritableDatabase::get_avlength()
32591           no longer forces pending changes to be flushed.  This means you can
32592           now search a modified WritableDatabase without causing a flush
32593           unless the search includes a term whose postlist has pending
32594           modifications.
32596 Fri Aug 20 20:03:59 BST 2004  Olly Betts <olly@survex.com>
32598         * backends/quartz/btree_util.h,common/,docs/overview.html,
32599           docs/quickstart.html,include/xapian/enquire.h,
32600           matcher/branchpostlist.h,matcher/multimatch.cc,tests/api_db.cc:
32601           Corrected multiple occurrences of "an Xapian::XXX" to "a Xapian::XXX"
32602           (presumably these all resulted from replacing "Om" with "Xapian::").
32604 Fri Aug 20 17:38:15 BST 2004  Olly Betts <olly@survex.com>
32606         * backends/quartz/,bin/quartzcheck.cc,bin/quartzcompact.cc,
32607           bin/quartzdump.cc,tests/btreetest.cc,tests/quartztest.cc:
32608           Merged QuartzCursor into Bcursor.
32610 Fri Aug 20 13:43:04 BST 2004  Olly Betts <olly@survex.com>
32612         * NEWS,backends/quartz/: Fixed the problem with "lazy tag reading"
32613           in QuartzCursor and reenable that code.  The problem was with
32614           deleting the current key, so added QuartzCursor::del() which
32615           deletes the current key, leaving the cursor on the next item.
32617 Fri Aug 20 13:04:33 BST 2004  Olly Betts <olly@survex.com>
32619         * tests/api_db.cc: Reenabled test allterms2, but with the iterator
32620           copying parts removed - TermIterator is an input_iterator so
32621           that part was invalid.
32623 Thu Aug 19 19:19:48 BST 2004  Olly Betts <olly@survex.com>
32625         * NEWS: Updated from recent ChangeLog entries.
32627 Thu Aug 19 14:09:28 BST 2004  Olly Betts <olly@survex.com>
32629         * tests/api_db.cc: Added regression test for bug #37.
32631 Thu Aug 19 13:31:37 BST 2004  Olly Betts <olly@survex.com>
32633         * matcher/localmatch.cc: Fixed problems handling termweights in
32634           queries with the same term repeated (bug #37).
32636 Thu Aug 19 13:22:12 BST 2004  Olly Betts <olly@survex.com>
32638         * backends/quartz/quartz_table.cc: Disable the "lazy tag reading" in
32639           QuartzCursor for the time being - it seems to cause problems.
32641 Thu Aug 19 12:58:10 BST 2004  Olly Betts <olly@survex.com>
32643         * bin/quartzcheck.cc,bin/quartzdump.cc: Added calls to
32644           QuartzCursor::read_tag().
32646 Thu Aug 19 12:56:53 BST 2004  Olly Betts <olly@survex.com>
32648         * matcher/multimatch.cc: Removed superfluous clear() of a map.
32650 Thu Aug 19 12:56:08 BST 2004  Olly Betts <olly@survex.com>
32652         * tests/api_db.cc: Corrected a comment - a pure boolean query has all
32653           weights set to 0, not 1.
32655 Mon Aug 16 15:41:33 BST 2004  Olly Betts <olly@survex.com>
32657         * docs/: Removed unused and very out of date class diagrams in dia
32658           format.  Doxygen generates similar but up-to-date diagrams
32659           automatically anyway.
32661 Mon Aug 16 15:27:30 BST 2004  Olly Betts <olly@survex.com>
32663         * xapian.spec.in,debian/libxapianVERSION-dev.install,
32664           extra/.cvsignore,extra/Makefile.am,extra/omparsequery.h,
32665           include/Makefile.am,include/om/.cvsignore,include/om/dir_contents,
32666           include/om/om.h,m4/xapian.m4: Removed the compatibility layer which
32667           allowed programs written against the pre-0.7.0 API to be compiled.
32669 Mon Aug 16 15:08:08 BST 2004  Olly Betts <olly@survex.com>
32671         * backends/quartz/quartz_table.cc: Fixed QuartzCursor::find()
32672           to work again after the last change.
32674 Mon Aug 16 14:43:08 BST 2004  Olly Betts <olly@survex.com>
32676         * backends/quartz/,tests/quartztest.cc: QuartzCursor no longer
32677           automatically reads the tag - you have to call read_tag() to
32678           get it read.  This speeds up iterator over all the terms in
32679           a database.  Also commented out QuartzCursor::prev as it's
32680           unused and untested (at least in its latest form).
32682 Mon Aug 16 12:39:56 BST 2004  Olly Betts <olly@survex.com>
32684         * backends/quartz/btree_types.h: Made Bcursor.rewrite bool rather than
32685           int.
32687 Mon Aug 16 12:35:07 BST 2004  Olly Betts <olly@survex.com>
32689         * backends/quartz/btree.cc,backends/quartz/btree.h: Calculate and
32690           store the latest revision number, rather than storing the other
32691           one and working out which is newer every time we're asked.
32693 Mon Aug 16 12:32:59 BST 2004  Olly Betts <olly@survex.com>
32695         * docs/install.html: We haven't "only [...] UNIX" for ages, so don't
32696           claim we are.  We use libtool as well as autoconf and automake.
32697           Link to the CVS snapshots.  And also mention downloading omega.
32699 Mon Aug 16 12:20:04 BST 2004  Olly Betts <olly@survex.com>
32701         * docs/index.html: exaplains -> explains.
32703 Mon Aug 16 12:18:34 BST 2004  Olly Betts <olly@survex.com>
32705         * docs/overview.html: Removed references to "our company" (meaning
32706           BrightStation) and to the now defunct special parameters which
32707           the inmemory backend accepted to cause deliberate errors for
32708           testing.
32710 Sun Aug 15 23:48:20 BST 2004  Olly Betts <olly@survex.com>
32712         * tests/btreetest.cc: item_count -> get_entry_count(); revision_number
32713           -> get_open_revision_number().
32715 Sun Aug 15 23:15:34 BST 2004  Olly Betts <olly@survex.com>
32717         * backends/Makefile.am,backends/inmemory/Makefile.am: Fixed to compile
32718           with --disable-inmemory (bug #33).
32720 Sat Aug 14 18:56:06 BST 2004  Olly Betts <olly@survex.com>
32722         * Makefile.am: Improved library versioning comment.
32724 Sat Aug 14 18:55:17 BST 2004  Olly Betts <olly@survex.com>
32726         * docs/overview.html: Fixed om_queryop to Xapian::Query::op, and added
32727           missing OP_* codes to the list.
32729 Sat Aug 14 17:44:39 BST 2004  Olly Betts <olly@survex.com>
32731         * backends/quartz/bcursor.h,backends/quartz/btree.cc,
32732           backends/quartz/btree.h,bin/quartzcompact.cc,docs/quartzdesign.html:
32733           Updated quartz design docs to reflect recent changes.  Also pulled
32734           out the Btree and Bcursor API docs and slotted them in as doxygen
32735           documentation comments - this way they're much more likely to
32736           be kept up-to-date.
32738 Sat Aug 14 15:59:07 BST 2004  Olly Betts <olly@survex.com>
32740         * backends/quartz/btree.cc,backends/quartz/btree.h: Removed unused
32741           Btree default ctor.
32743 Sat Aug 14 15:45:28 BST 2004  Olly Betts <olly@survex.com>
32745         * backends/quartz/btree.cc,backends/quartz/btree.h: Don't redundantly
32746           store next_revision - it's always just revision_number + 1.
32748 Sat Aug 14 15:30:30 BST 2004  Olly Betts <olly@survex.com>
32750         * backends/quartz/btree.cc: Implemented Btree::cancel directly rather
32751           than closing and reopening the Btree.
32753 Sat Aug 14 14:46:43 BST 2004  Olly Betts <olly@survex.com>
32755         * backends/quartz/,bin/quartzcheck.cc,bin/quartzcompact.cc,
32756           bin/quartzdump.cc,tests/btreetest.cc,tests/quartztest.cc,
32757           testsuite/btreecheck.cc,testsuite/btreecheck.h: Eliminated
32758           QuartzTable which had become just a thin wrapper around Btree.
32760 Fri Aug 13 19:19:02 BST 2004  Olly Betts <olly@survex.com>
32762         * backends/quartz/quartz_postlist.cc:
32763           QuartzPostList::move_to_chunk_containing now calls next_chunk if
32764           required, rather than forcing the caller to do the fix-up.
32766 Fri Aug 13 17:54:53 BST 2004  Olly Betts <olly@survex.com>
32768         * backends/quartz/quartz_database.cc,
32769           backends/quartz/quartz_database.h: Added tunable flush thresholds
32770           - set XAPIAN_FLUSH_THRESHOLD=5000 to flush every 5000 documents
32771           or XAPIAN_FLUSH_THRESHOLD_LENGTH=1000000 to flush every 1000000
32772           total change in document length.  Set both to flush whichever is
32773           reached first.  Set neither and the default is to flush every
32774           1000 documents as before.
32776 Fri Aug 13 15:54:21 BST 2004  Olly Betts <olly@survex.com>
32778         * backends/quartz/: Removed no-longer-used Btree::erase and
32779           QuartzTable::erase methods.
32781 Fri Aug 13 15:37:15 BST 2004  Olly Betts <olly@survex.com>
32783         * backends/quartz/btree.cc,backends/quartz/quartz_database.cc:
32784           Changed Btree::create() to remove any pre-existing alternate base
32785           file, so we no longer need to call Btree::erase before
32786           Btree::create.
32788 Fri Aug 13 15:37:15 BST 2004  Olly Betts <olly@survex.com>
32790         * NEWS: Updated with changes since last release.
32792 Fri Aug 13 15:36:04 BST 2004  Olly Betts <olly@survex.com>
32794         * tests/api_posdb.cc,tests/quartztest.cc: Reworked quartztest's
32795           positionlist1 into a generic api test as apitest's poslist3.
32797 Thu Aug 12 16:26:42 BST 2004  Olly Betts <olly@survex.com>
32799         * backends/quartz/quartz_table.cc,backends/quartz/quartz_table.h,
32800           bin/quartzcheck.cc,bin/quartzdump.cc: QuartzCursor now has a
32801           Bcursor member, rather than an AutoPtr<Bcursor> member.
32803 Thu Aug 12 14:13:37 BST 2004  Olly Betts <olly@survex.com>
32805         * tests/btreetest.cc: Fixed up in line with the recent refactoring.
32807 Thu Aug 12 13:23:31 BST 2004  Olly Betts <olly@survex.com>
32809         * m4/xapian.m4: XO_LIB_XAPIAN now AC_SUBSTs XAPIAN_VERSION.
32811 Thu Aug 12 13:21:36 BST 2004  Olly Betts <olly@survex.com>
32813         * backends/quartz/,tests/quartztest.cc: Refactored, replacing
32814           Quartz*Manager with Quartz*Table.
32816 Thu Aug 12 02:00:58 BST 2004  Olly Betts <olly@survex.com>
32818         * backends/quartz/: Merged QuartzTableManager into QuartzDatabase.
32820 Wed Aug 11 23:40:34 BST 2004  Olly Betts <olly@survex.com>
32822         * backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h:
32823           Eliminated buffered_tables member of QuartzWritableDatabase.
32825 Wed Aug 11 21:26:35 BST 2004  Olly Betts <olly@survex.com>
32827         * backends/inmemory/inmemory_database.cc,
32828           backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
32829           docs/todo.xml: WritableDatabase::replace_document can now be used
32830           to add a document with a specific docid (to allow keeping docids
32831           in sync with numeric UIDs from another system).
32833 Wed Aug 11 20:09:15 BST 2004  Olly Betts <olly@survex.com>
32835         * api/omdatabase.cc,include/xapian/database.h: Added replace_document
32836           and delete_document variants which take a unique id term name rather
32837           than a document id.
32838         * include/xapian/database.h: Better documentation for replace_document
32839           and delete_document.
32841 Wed Aug 11 16:15:10 BST 2004  Olly Betts <olly@survex.com>
32843         * backends/quartz/,bin/quartzcheck.cc,bin/quartzdump.cc,
32844           tests/quartztest.cc: Eliminated QuartzBufferedTable.
32846 Wed Jun 30 20:34:08 BST 2004  Olly Betts <olly@survex.com>
32848         * NEWS: Fixed an unwrapped line.
32850 Wed Jun 30 20:32:31 BST 2004  Olly Betts <olly@survex.com>
32852         * HACKING: Added note about the cvs-tag-release script.
32854 Wed Jun 30 19:05:45 BST 2004  Olly Betts <olly@survex.com>
32856         * HACKING,NEWS,PLATFORMS,configure.in: Version 0.8.1.
32858 Wed Jun 30 14:23:20 BST 2004  Olly Betts <olly@survex.com>
32860         * AUTHORS,PLATFORMS: Updated.
32862 Tue Jun 29 23:24:59 BST 2004  Olly Betts <olly@survex.com>
32864         * tests/api_nodb.cc: Make emptyquery1 check that Query("") causes an
32865           InvalidArgumentError exception.
32867 Tue Jun 29 17:29:03 BST 2004  Richard Boulton <richard@tartarus.org>
32869         * Makefile.am: Remove Debian files from distribution tarballs,
32870           since there will often be multiple patch releases for each
32871           release.  Debian files will be available from an apt repository
32872           in future.
32874 Mon Jun 28 01:29:00 BST 2004  Olly Betts <olly@survex.com>
32876         * NEWS: Mostly updated for 0.8.1 release.
32878 Sun Jun 27 23:37:01 BST 2004  Olly Betts <olly@survex.com>
32880         * backends/quartz/quartz_postlist.cc: Fixed bug in postlist merging.
32882 Sat Jun 26 00:51:04 BST 2004  Olly Betts <olly@survex.com>
32884         * AUTHORS: Add Malcolm Baldridge (helped fix a problem with building
32885           the PHP bindings with newer versions of SWIG and PHP).
32887 Fri Jun 26 00:29:10 BST 2004  Olly Betts <olly@survex.com>
32889         * HACKING,api/ompositionlistiterator.cc,api/ompostlistiterator.cc,
32890           api/omtermlistiterator.cc,include/xapian/: MSetIterator and
32891           ESetIterator are now bidirectional iterators (rather than
32892           just input iterators);  Fixed post-increment forms of
32893           PostingIterator, TermIterator, PositionIterator, and ValueIterator
32894           so that *i++ works (as it must for them to be true input iterators).
32896 Thu Jun 24 18:03:46 BST 2004  Olly Betts <olly@survex.com>
32898         * PLATFORMS: Added success report for Slackware Linux 9.1.
32900 Mon Jun 21 16:33:16 BST 2004  Olly Betts <olly@survex.com>
32902         * backends/quartz/quartz_postlist.cc: Corrected -> to . so code
32903           compiles with debug enabled.
32905 Mon Jun 21 03:25:24 BST 2004  Olly Betts <olly@survex.com>
32907         * backends/quartz/btree.cc: Eliminated two calls to abort() - throw
32908           exceptions instead.
32910 Mon Jun 21 03:21:14 BST 2004  Olly Betts <olly@survex.com>
32912         * backends/quartz/quartz_postlist.cc: Finish backing out incorrect
32913           change from "Fri May 07 03:16:29 BST 2004" - failed to change two
32914           lines back before.
32916 Fri Jun 18 16:48:10 BST 2004  Richard Boulton <richard@tartarus.org>
32918         * configure.in: Fix typo (STLPORT_CXXLAGS -> STLPORT_CXXFLAGS)
32920 Thu Jun 17 03:46:32 BST 2004  Olly Betts <olly@survex.com>
32922         * backends/quartz/quartz_database.cc: Cleaned up code to track
32923           add vs delete vs modify of a posting list entry since we now
32924           force a flush if an entry is about to be retouched.
32926 Thu Jun 17 03:44:21 BST 2004  Olly Betts <olly@survex.com>
32928         * backends/quartz/quartz_postlist.cc: Back out incorrect change from
32929           "Fri May 07 03:16:29 BST 2004".  We do need to call get_or_make_tag
32930           in this case because we're modifying the tag.
32932 Wed Jun 16 15:40:21 BST 2004  Olly Betts <olly@survex.com>
32934         * backends/inmemory/inmemory_database.h: Implemented get_lastdocid()
32935           for InMemory backend.
32937 Wed Jun 16 02:39:41 BST 2004  Olly Betts <olly@survex.com>
32939         * configure.in: Note the value of LIBRARY_VERSION_INFO which 0.8.1
32940           would get if it were released now.
32942 Wed Jun 16 02:39:11 BST 2004  Robert Pollak <robert.pollak@fabasoft.com>
32944         * api/omdatabase.cc, include/xapian/database.h,
32945           backends/database.cc, common/database.h,
32946           backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h,
32947           backends/quartz/quartz_record.cc, backends/quartz/quartz_record.h:
32948           New method Database::get_lastdocid for re-synchronizing an old
32949           quartz index.
32951 Wed Jun 16 02:05:07 BST 2004  Richard Boulton <richard@tartarus.org>
32953         * matcher/multimatch.cc: When collapsing, keep track of the number
32954           of collapses performed, and use this information to modify the
32955           bounds and estimate of the number of matches.
32956         * tests/api_db.cc: Added tests for this.
32957         * include/xapian/enquire.h: Update documentation comments for
32958           MSet::get_matches_*() functions to make clear that collapsing and
32959           cutoffs are taken into account.  (Previously, the most likely
32960           interpretation of the comments was that they wouldn't be taken
32961           into account, but the implementation was that percentage cutoffs
32962           were taken into account.)  Due to this ambiguity, I think it is
32963           reasonable to say this isn't an API change.
32965 Wed Jun 16 01:55:29 BST 2004  Olly Betts <olly@survex.com>
32967         * matcher/multimatch.cc: Rearranged code so that the behaviour can
32968           be easily seen to be unchanged, but so that it's closer to the
32969           result of applying Richard's patch for bug #31.
32971 Wed Jun 16 01:27:09 BST 2004  Olly Betts <olly@survex.com>
32973         * matcher/multimatch.cc: Trimmed extra whitespace.
32975 Tue Jun 15 15:40:11 BST 2004  Olly Betts <olly@survex.com>
32977         * backends/quartz/quartz_postlist.cc: Fixed PostlistChunkReader to
32978           take a copy of the postlist data being read to avoid problems with
32979           reading data from a string that's been deleted.
32981 Tue Jun 15 15:26:54 BST 2004  Olly Betts <olly@survex.com>
32983         * HACKING: Updated the list of tasks required for a new release.
32985 Tue Jun 15 15:24:04 BST 2004  Olly Betts <olly@survex.com>
32987         * Makefile.am,configure.in,extra/Makefile.am: Unify the shlib version
32988           numbers (the small benefit of tracking them individually makes it
32989           hard to justify the extra work required, and having one version
32990           simplifies debian packaging too).
32992 Tue Jun 15 14:52:36 BST 2004  Robert Pollak <robert.pollak@fabasoft.com>
32994         * extra/xapian/queryparser.h: Fixed memory leaked upon QueryParser
32995           destruction.
32997 Fri Jun 11 02:18:35 BST 2004  Olly Betts <olly@survex.com>
32999         * backends/quartz/quartz_postlist.cc: Refactored a loop.
33001 Fri Jun 11 02:17:05 BST 2004  Olly Betts <olly@survex.com>
33003         * backends/quartz/quartz_postlist.cc: Fixed bug which meant we
33004           sometimes failed to remove a posting when deleting or replacing
33005           a document.
33007 Fri Jun 11 02:16:16 BST 2004  Olly Betts <olly@survex.com>
33009         * backends/quartz/quartz_postlist.cc,
33010           backends/quartz/quartz_postlist.h: Merged move_to() into skip_to().
33012 Fri Jun 11 02:14:56 BST 2004  Olly Betts <olly@survex.com>
33014         * backends/quartz/quartz_postlist.cc: Fixed typo in comment.
33016 Thu May 27 15:41:45 BST 2004  Olly Betts <olly@survex.com>
33018         * backends/quartz/btree.cc,backends/quartz/btree.h: Eliminated the
33019           split cursor - we only actually need a single block buffer to
33020           handle splitting blocks.
33022 Wed May 26 04:02:18 BST 2004  Olly Betts <olly@survex.com>
33024         * include/om/om.h,include/xapian/errortypes.h: Removed several unused
33025           Xapian::Error subclasses (these were used by the indexer framework
33026           which we decided was a failed experiment).
33028 Wed May 26 01:54:13 BST 2004  Olly Betts <olly@survex.com>
33030         * backends/quartz/btree.cc,backends/quartz/btree.h: More DEBUGCALL
33031           tracing added; split_root now uses level member rather than a
33032           parameter.
33034 Sun May 23 00:56:41 BST 2004  Olly Betts <olly@survex.com>
33036         * backends/quartz/btree.cc,backends/quartz/btree.h: Merge split_off()
33037           into add_item().
33039 Sat May 22 01:28:58 BST 2004  Olly Betts <olly@survex.com>
33041         * backends/quartz/btree.cc: Another DEBUGCALL.
33042         * backends/quartz/quartz_table.h: Improved comments.
33044 Fri May 21 23:17:01 BST 2004  Olly Betts <olly@survex.com>
33046         * backends/quartz/btree.cc: Removed unnecessary assignment which is
33047           a hangover from the shared level code we removed long ago.
33049 Fri May 21 20:31:56 BST 2004  Olly Betts <olly@survex.com>
33051         * backends/quartz/,docs/quartzdesign.html,testsuite/btreecheck.cc:
33052           Removed overwritten flag (unused as we throw an exception anyway).
33053           If Btree is writable, throw DatabaseCorruptError if we detect
33054           overwritten.  Make use of bool return types consistent.  Removed
33055           documentation of Btree error codes (the error codes themselves
33056           were removed a month ago).
33058 Thu May 20 03:50:46 BST 2004  Olly Betts <olly@survex.com>
33060         * include/xapian/database.h: Remove references to sessions in doxygen
33061           comments.
33063 Thu May 20 03:44:28 BST 2004  Olly Betts <olly@survex.com>
33065         * api/omdatabase.cc,backends/database.cc,
33066           backends/inmemory/inmemory_database.cc,
33067           backends/inmemory/inmemory_database.h,
33068           backends/muscat36/da_database.h,backends/muscat36/db_database.h,
33069           backends/net/net_database.cc,backends/quartz/quartz_database.cc,
33070           backends/quartz/quartz_database.h,common/database.h,
33071           common/net_database.h: Clean up the backend interface.
33073 Thu May 20 03:18:30 BST 2004  Olly Betts <olly@survex.com>
33075         * backends/database.cc,backends/inmemory/inmemory_database.cc,
33076           backends/inmemory/inmemory_database.h,backends/muscat36/,
33077           backends/net/net_database.cc,backends/quartz/quartz_database.cc,
33078           backends/quartz/quartz_database.h,common/database.h:
33079           Stripped out the session machinery - all that is actually required
33080           is to ensure that any unflushed changes are flushed when the dtor
33081           runs.
33083 Mon May 17 01:04:17 BST 2004  Olly Betts <olly@survex.com>
33085         * backends/quartz/btree.cc,backends/quartz/btree.h,
33086           backends/quartz/btree_types.h: Reworked split_p and split_n
33087           members of Cursor into a separate C_split cursor.  This
33088           reduces the memory overhead of each Bcursor (and hence each
33089           QuartzPostList).
33091 Sat May 15 01:29:40 BST 2004  Olly Betts <olly@survex.com>
33093         * docs/quickstart.html: Corrected lingering reference to "om.h" and
33094           note that we need <iostream>.
33095         * docs/quickstartindex.cc.html,docs/quickstartexpand.cc.html,
33096           docs/quickstartsearch.cc.html: Add <iostream>.
33097         * AUTHORS: Add John Ward for pointing out the above problems.
33099 Fri May 14 00:59:51 BST 2004  Olly Betts <olly@survex.com>
33101         * HACKING: Added the start of a list of subtasks when doing a release.
33102           Currently it's always me that does this, but it may not always be
33103           and anyhow it'll help me to have a list to run through.
33105 Fri May 14 00:59:21 BST 2004  Olly Betts <olly@survex.com>
33107         * docs/todo.xml: Updated.
33109 Thu May 13 17:14:18 BST 2004  Olly Betts <olly@survex.com>
33111         * extra/queryparser.yy: When stripping non-alphanums prior to
33112           reparsing, keep dots ('.').
33113         * extra/queryparsertest.cc: Pruned near-duplicate queryparsertest
33114           testcases.
33116 Thu May 13 12:09:19 BST 2004  Olly Betts <olly@survex.com>
33118         * docs/quartzdesign.html: "interger" -> "integer".
33120 Thu May 13 11:20:44 BST 2004  Olly Betts <olly@survex.com>
33122         * Makefile.am: Removed bogus extra line added by last change.
33124 Thu May 13 11:11:31 BST 2004  Olly Betts <olly@survex.com>
33126         * configure.in,Makefile.am,autoconf/.cvsignore,autoconf/Makefile.am,
33127           m4/.cvsignore,m4/Makefile.am: Removed trivial m4/Makefile.am and
33128           and autoconf/Makefile.am and do the work from the top level
33129           Makefile.am instead.  It's easy to see the structure this way, and
33130           it also removes a couple of recursive make invocations.
33132 Thu May 13 09:32:22 BST 2004  Olly Betts <olly@survex.com>
33134         * backends/quartz/btree.cc,backends/quartz/btree.h: Added DEBUGCALL
33135           tracing;  Stripped out C_ parameters where they are always the
33136           internal cursor C.
33138 Thu May 13 00:05:45 BST 2004  Olly Betts <olly@survex.com>
33140         * extra/queryparser.yy,extra/queryparsertest.cc: If we fail to parse
33141           a query, try stripping out non-alphanumerics and reparsing.
33143 Wed May 12 14:32:54 BST 2004  Olly Betts <olly@survex.com>
33145         * common/omtime.h: Corrected file description.
33147 Wed May 12 02:08:44 BST 2004  Olly Betts <olly@survex.com>
33149         * backends/quartz/btree.cc: Fixed typos in comment.
33151 Tue May 11 20:55:56 BST 2004  Olly Betts <olly@survex.com>
33153         * xapian-config.in: Added comment saying why we filter out
33154           -I/usr/include; Removed no longer used "optarg" stuff; Added licence
33155           boilerplate text (with (C) dates mined from CVS).
33157 Tue May 11 13:42:38 BST 2004  Olly Betts <olly@survex.com>
33159         * backends/quartz/bcursor.cc,backends/quartz/btree.cc: Added lots
33160           of assertions.
33162 Tue May 11 09:29:51 BST 2004  Richard Boulton <richard@tartarus.org>
33164         * debian/: Added basic Debian packaging.
33166 Mon May 10 17:17:45 BST 2004  Olly Betts <olly@survex.com>
33168         * docs/quartzdsign.html: Corrected various pieces of out of date
33169           information.
33171 Mon May 10 01:30:35 BST 2004  Olly Betts <olly@survex.com>
33173         * backends/quartz/btree.h: Removed unused forward declaration of
33174           class BtreeCheck.
33176 Mon May 10 01:30:24 BST 2004  Olly Betts <olly@survex.com>
33178         * backends/quartz/btree.cc: Fixed typo.
33180 Sat May 08 20:14:40 BST 2004  Olly Betts <olly@survex.com>
33182         * backends/quartz/: Pruned some #include-s which were unused, or could
33183           be replaced by forward class declarations.
33185 Fri May 07 14:38:10 BST 2004  Olly Betts <olly@survex.com>
33187         * backends/quartz/quartz_postlist.cc: Slight efficiency tweak to the
33188           "deleting the whole posting list" case.
33190 Fri May 07 03:16:29 BST 2004  Olly Betts <olly@survex.com>
33192         * backends/quartz/quartz_postlist.cc: Removed another unnecessary use
33193           of QuartzBufferedTable::get_or_make_tag().
33195 Fri May 07 02:56:22 BST 2004  Olly Betts <olly@survex.com>
33197         * backends/quartz/btree.cc: Initialise prev_ptr and next_ptr at open
33198           time for a writable Btree.
33200 Fri May 07 02:46:53 BST 2004  Olly Betts <olly@survex.com>
33202         * backends/quartz/quartz_postlist.cc: Remove unneeded call to
33203           QuartzBufferedTable::get_or_make_tag() in a case when we're using a
33204           cursor which has already fetched the tag.
33206 Thu May 06 23:30:12 BST 2004  Olly Betts <olly@survex.com>
33208         * backends/quartz/btree.cc: Improved a comment.
33210 Thu May 06 22:20:43 BST 2004  Olly Betts <olly@survex.com>
33212         * backends/quartz/btree.cc: Added a few more assertions.
33214 Thu May 06 02:25:33 BST 2004  Olly Betts <olly@survex.com>
33216         * backends/quartz/quartz_positionlist.cc,
33217           backends/quartz/quartz_utils.h: Added SON_OF_QUARTZ define to
33218           disable incompatible changes to database formats by default, and
33219           use it to control the docid encoding for keys such that we're always
33220           inserting at the end of the table when added new documents.
33222 Thu May 06 02:23:02 BST 2004  Olly Betts <olly@survex.com>
33224         * backends/quartz/quartz_postlist.cc: Improved a FIXME comment.
33226 Thu May 06 00:32:17 BST 2004  Olly Betts <olly@survex.com>
33228         * extra/queryparsertest.cc: Added test case for `term NOT "a phrase'.
33230 Thu May 06 00:28:32 BST 2004  Olly Betts <olly@survex.com>
33232         * common/omdebug.cc,common/omdebug.h: Renamed OmTimer class used
33233           internally by the --enable-debug=profile code to
33234           Xapian::Internal::Timer.
33236 Wed May 05 13:59:47 BST 2004  Olly Betts <olly@survex.com>
33238         * docs/scalability.html: Reworded to remove use of first person.
33240 Mon May 03 21:42:05 BST 2004  Olly Betts <olly@survex.com>
33242         * Makefile.am: Improved wording of a FIXME comment.
33244 Sun May 02 10:18:55 BST 2004  Olly Betts <olly@survex.com>
33246         * backends/quartz/btree.cc: Improved a couple of comments.
33248 Sat May 01 04:42:43 BST 2004  Olly Betts <olly@survex.com>
33250         * backends/quartz/btree.cc,backends/quartz/btree.h,
33251           backends/quartz/quartz_table.cc: Reopening the readonly version
33252           of a writable Btree is now more efficient.
33254 Sat May 01 01:41:24 BST 2004  Olly Betts <olly@survex.com>
33256         * PLATFORMS: Added up-to-date success reports for x86-openbsd and
33257           x86-solaris.
33259 Fri Apr 30 04:05:15 BST 2004  Olly Betts <olly@survex.com>
33261         * backends/quartz/: Don't delete and reload the Btree_base just after
33262           saving it - instead reuse the existing Btree_base object.
33264 Fri Apr 30 02:41:50 BST 2004  Olly Betts <olly@survex.com>
33266         * backends/quartz/btree.cc: Clean up new code in Btree::commit()
33267           from last change.
33269 Thu Apr 29 22:41:05 BST 2004  Olly Betts <olly@survex.com>
33271         * backends/quartz/btree.cc,backends/quartz/quartz_table.cc: Don't
33272           close and reopen the database table file descriptors every time
33273           we flush changes.
33275 Thu Apr 29 22:40:36 BST 2004  Olly Betts <olly@survex.com>
33277         * docs/quartzdesign.html: Improved wording in a couple of places.
33279 Thu Apr 29 16:50:45 BST 2004  Olly Betts <olly@survex.com>
33281         * backends/quartz/bcursor.cc: Removed references to Btree::error
33282           from debug code since Btree::error was removed a week ago.
33284 Tue Apr 27 20:46:25 BST 2004  Olly Betts <olly@survex.com>
33286         * backends/quartz/btree.cc,configure.in: Added configure test for
33287           glibc, because otherwise we need to include a header before we
33288           can check for glibc in order to define something we should be
33289           defining before we include any headers!
33291 Tue Apr 27 17:45:51 BST 2004  Olly Betts <olly@survex.com>
33293         * backends/quartz/btree.cc: Only defined _XOPEN_SOURCE if __GLIBC__
33294           is defined.  OpenBSD seems to do the opposite to Linux and *disable*
33295           pread and pwrite if this is defined!
33297 Tue Apr 27 14:35:47 BST 2004  Olly Betts <olly@survex.com>
33299         * api/omenquire.cc,tests/api_db.cc: Need to adjust index by firstitem
33300           when indexing into items (bug#28).
33302 Mon Apr 26 23:45:15 BST 2004  Olly Betts <olly@survex.com>
33304         * PLATFORMS: Successfully built with gcc-3.5-20040327 snapshot on x86
33305           linux.
33307 Fri Apr 23 11:26:07 BST 2004  Olly Betts <olly@survex.com>
33309         * PLATFORMS: Successfully built and tested on arm linux.
33311 Fri Apr 23 11:24:23 BST 2004  Olly Betts <olly@survex.com>
33313         * tests/remotetest.cc: Use 127.0.0.1 instead of localhost so that
33314           tcpmatch1 doesn't fail just because the network setup is broken.
33316 Thu Apr 22 00:54:58 BST 2004  Olly Betts <olly@survex.com>
33318         * backends/quartz/: Stripped out Btree_errors as it's almost
33319           totally unused now.  Fixed up the last few uses.
33320         * backends/quartz/quartz_table.cc: Fixed another case where read
33321           and write Btrees should share fds.
33323 Wed Apr 21 02:51:08 BST 2004  Olly Betts <olly@survex.com>
33325         * backends/quartz/btree.cc: Check the return value of
33326           fdatasync()/fsync()/_commit() and raise an error.  They aren't
33327           likely to fail harmlessly.
33329 Wed Apr 21 02:45:28 BST 2004  Olly Betts <olly@survex.com>
33331         * backends/quartz/btree.cc,backends/quartz/btree.h,
33332           backends/quartz/quartz_table.cc: Share file descriptors between
33333           the read and write Btree objects so that a quartz WritableDatabase
33334           now uses 5 fds rather than 10.
33336 Wed Apr 21 02:37:38 BST 2004  Olly Betts <olly@survex.com>
33338         * docs/scalability.html: Removed the reference to the Quartz update
33339           bottleneck "currently being addressed for Xapian 0.8" as it's now
33340           been addressed!
33342 Wed Apr 21 00:24:08 BST 2004  Olly Betts <olly@survex.com>
33344         * backends/quartz/btree.cc: Corrected a comment.
33346 Mon Apr 19 14:42:06 BST 2004  Olly Betts <olly@survex.com>
33348         * NEWS: Final update for 0.8.0.
33350 Mon Apr 19 14:02:33 BST 2004  Olly Betts <olly@survex.com>
33352         * AUTHORS: Added people who've contributed build reports for the
33353           PLATFORMS file.
33355 Mon Apr 19 14:01:38 BST 2004  Olly Betts <olly@survex.com>
33357         * PLATFORMS: More updates from tinderbox and elsewhere.
33359 Sat Apr 17 02:24:11 BST 2004  Olly Betts <olly@survex.com>
33361         * PLATFORMS: Lots of updates from tinderbox and mailing list.
33363 Sat Apr 17 00:13:26 BST 2004  Olly Betts <olly@survex.com>
33365         * HACKING: Added notes about using "using", and pointers to a couple
33366           of useful C++ web resources.
33368 Mon Apr 12 00:56:04 BST 2004  Olly Betts <olly@survex.com>
33370         * Makefile.am,NEWS,configure.in,extra/Makefile.am: Version 0.8.0.
33372 Mon Apr 12 00:31:15 BST 2004  Olly Betts <olly@survex.com>
33374         * NEWS: Updated for 0.8.0.
33376 Sun Apr 11 21:18:47 BST 2004  Olly Betts <olly@survex.com>
33378         * extra/queryparser.yy,extra/queryparsertest.cc: Don't use a raw term
33379           for a term which starts with a digit.
33381 Sat Apr 10 17:20:23 BST 2004  Olly Betts <olly@survex.com>
33383         * AUTHORS: "Open Muscat" not "OmSee"; Updated the list of contributors
33384           (more work needed...)
33386 Sat Apr 10 16:41:28 BST 2004  Olly Betts <olly@survex.com>
33388         * m4/xapian.m4: Make XO_LIB_XAPIAN with no arguments do what most
33389           users will want: check for Xapian and fail if it's not found,
33390           or AC_SUBST XAPIAN_CXXFLAGS and XAPIAN_LIBS if it is.  Those
33391           will unusual needs can supply one or both arguments as at
33392           present.
33394 Sat Apr 10 15:00:28 BST 2004  Olly Betts <olly@survex.com>
33396         * docs/todo.xml: Updated.
33398 Sat Apr 10 00:32:07 BST 2004  Olly Betts <olly@survex.com>
33400         * PLATFORMS: Added success report for GCC 3.4 (prerelease).
33402 Sat Apr 10 00:27:58 BST 2004  Olly Betts <olly@survex.com>
33404         * extra/xapian/queryparser.h: Added doxygen documentation comments.
33406 Sat Apr 10 00:23:13 BST 2004  Olly Betts <olly@survex.com>
33408         * testsuite/testsuite.cc: Removed a now superfluous line.
33410 Sat Apr 10 00:21:15 BST 2004  Olly Betts <olly@survex.com>
33412         * testsuite/testsuite.cc: Give a more accurate message if valgrind
33413           spots a test doing something dodgy (e.g. free() of memory allocated
33414           with new).
33416 Thu Apr 08 17:22:20 BST 2004  Olly Betts <olly@survex.com>
33418         * net/.cvsignore: No longer need to ignore readquery.cc.
33420 Thu Apr 08 17:19:43 BST 2004  Olly Betts <olly@survex.com>
33422         * include/xapian/base.h: Note in doxygen comment why the ref_count
33423           is mutable.
33425 Thu Apr 08 15:33:16 BST 2004  Olly Betts <olly@survex.com>
33427         * testsuite/testsuite.cc: valgrinding code needs errno.h too.
33429 Thu Apr 08 15:28:44 BST 2004  Olly Betts <olly@survex.com>
33431         * include/xapian/enquire.h: Make Xapian::Weight::Weight() protected
33432           rather than private as we want to be able to call it from derived
33433           classes (GCC 3.4 flags this, other compilers seem to miss it).
33435 Tue Apr 06 03:32:39 BST 2004  Olly Betts <olly@survex.com>
33437         * net/omerr_string.cc,include/xapian/error.h,
33438           include/xapian/errortypes.h,include/xapian/output.h:
33439           Fixed some doxygen warnings.
33441 Mon Apr 05 17:21:06 BST 2004  Olly Betts <olly@survex.com>
33443         * README: There never was an Omsee release - the last BrightStation
33444           release was "OpenMuscat 0.4.1".
33446 Mon Apr 05 17:19:38 BST 2004  Olly Betts <olly@survex.com>
33448         * backends/quartz/quartz_database.cc,
33449           backends/quartz/quartz_database.h: Make the flush criterion 1000
33450           documents changed (added, removed, or replaced) as that seems to
33451           perform much better over a wide variety of document sizes.
33453 Thu Apr 01 01:04:17 BST 2004  Olly Betts <olly@survex.com>
33455         * tests/quartztest.cc: Fixed temporary directory used (a slash was
33456           missing).
33458 Thu Apr 01 00:39:59 BST 2004  Olly Betts <olly@survex.com>
33460         * docs/todo.xml: Updated.
33462 Fri Mar 26 22:33:30 GMT 2004  Olly Betts <olly@survex.com>
33464         * backends/quartz/quartz_database.cc: Fix problems with termfreq and
33465           collfreq in postlist getting out of step when a recently modified
33466           or deleted document is deleted or remodified.
33468 Fri Mar 26 12:31:24 GMT 2004  Olly Betts <olly@survex.com>
33470         * configure.in: Fixed check for --enable-runtime-pseudo-reloc.
33472 Fri Mar 26 12:31:00 GMT 2004  Olly Betts <olly@survex.com>
33474         * bin/Makefile.am: Removed spurious "-lz" from quartzdump_LDADD.
33476 Thu Mar 25 00:22:13 GMT 2004  Olly Betts <olly@survex.com>
33478         * bin/quartzcheck.cc: Check the structure with the postlist Btree
33479           as well as the Btree structures themselves.
33481 Sun Mar 21 00:00:59 GMT 2004  Olly Betts <olly@survex.com>
33483         * backends/quartz/quartz_table_manager.cc: Fix for building on mingw.
33485 Sat Mar 20 23:04:27 GMT 2004  Olly Betts <olly@survex.com>
33487         * include/xapian/positioniterator.h,include/xapian/postingiterator.h:
33488           Add doxygen comments in front of PostingIterator and
33489           PositionListIterator classes so that doxygen pulls out the
33490           existing documentation for their methods.
33492 Sat Mar 20 16:23:13 GMT 2004  Olly Betts <olly@survex.com>
33494         * configure.in,backends/quartz/quartz_table_manager.cc,common/utils.h:
33495           Added configure test for link() to avoid infinite loop on mingw!
33497 Thu Mar 18 12:20:18 GMT 2004  Olly Betts <olly@survex.com>
33499         * configure.in: Improved the --enable-runtime-pseudo-reloc check.
33501 Thu Mar 18 00:45:15 GMT 2004  Olly Betts <olly@survex.com>
33503         * bin/Makefile.am,tests/Makefile.am: Pass the magic mingw/cygwin flag
33504           when linking the programs in bin and tests.
33506 Thu Mar 18 00:33:22 GMT 2004  Olly Betts <olly@survex.com>
33508         * configure.in,xapian-config.in: mingw and cygwin both need
33509           -Wl,--enable-runtime-pseudo-reloc passing when linking.
33510           Arrange for xapian-config to include this, and check that
33511           the ld installed is a new enough version (or at least that
33512           it was at configure time).
33514 Tue Mar 16 01:40:43 GMT 2004  Olly Betts <olly@survex.com>
33516         * docs/matcherdesign.html: Merged in more details from a message I
33517           sent to the mailing list.
33519 Mon Mar 15 20:39:21 GMT 2004  Olly Betts <olly@survex.com>
33521         * tests/quartztest.cc: Fail the test if there's still a directory after
33522           rmdir(), or there isn't a directory after mkdir().  Close a
33523           QuartzDatabase or QuartzWritableDatabase before trying to overwrite
33524           it - cygwin doesn't allow use to delete open/locked files...
33526 Mon Mar 15 20:38:11 GMT 2004  Olly Betts <olly@survex.com>
33528         * backends/database.cc: Database::Internal::Internal::keep_alive()
33529           should be Database::Internal::keep_alive().
33531 Mon Mar 15 17:20:58 GMT 2004  Olly Betts <olly@survex.com>
33533         * include/xapian/base.h: Returning a void result makes SGI's compiler
33534           complain - don't!
33536 Mon Mar 15 14:34:44 GMT 2004  Olly Betts <olly@survex.com>
33538         * common/omdebug.cc: Only use O_SYNC (on the debug log) if we have it.
33540 Sun Mar 14 17:48:52 GMT 2004  Olly Betts <olly@survex.com>
33542         * tests/runtest.in: Mark with @configure_input@.
33544 Thu Mar 11 23:53:43 GMT 2004  Olly Betts <olly@survex.com>
33546         * common/database.h,common/termlist.h,include/xapian/database.h,
33547           include/xapian/enquire.h: Attempted fixes for warnings given by
33548           SGI's MIPSpro C++ compiler.
33550 Thu Mar 11 23:51:10 GMT 2004  Olly Betts <olly@survex.com>
33552         * configure.in: GCC 2.95 supported -Wno-long-long and is our minimum
33553           recommended version, so unconditionally use -Wno-long-long with
33554           GCC, and don't test for it on other compilers (the test incorrectly
33555           decided to use it with SGI's compiler leading to a warning for
33556           every file compiled).
33558 Thu Mar 11 17:29:24 GMT 2004  Olly Betts <olly@survex.com>
33560         * docs/intro_ir.html: Added a link to "Information Retrieval"
33561           by Keith v.R. which can be read on his website!
33563 Thu Mar 11 17:12:35 GMT 2004  Olly Betts <olly@survex.com>
33565         * PLATFORMS: Added IRIX success reports from Jim Lynch.
33567 Thu Mar 11 12:17:21 GMT 2004  Olly Betts <olly@survex.com>
33569         * backends/quartz/quartz_database.cc: Fixes for Sun C++'s fussy
33570           template matching.
33572 Thu Mar 11 12:12:46 GMT 2004  Olly Betts <olly@survex.com>
33574         * include/xapian/enquire.h: Another friend fix for Sun's C++.
33576 Thu Mar 11 01:56:19 GMT 2004  Olly Betts <olly@survex.com>
33578         * include/xapian/query.h: Another fix for Sun's C++.
33580 Tue Mar 09 21:02:08 GMT 2004  Olly Betts <olly@survex.com>
33582         * include/xapian/document.h: string -> std::string.
33584 Tue Mar 09 19:04:48 GMT 2004  Olly Betts <olly@survex.com>
33586         * api/omdocument.cc,common/document.h,include/xapian/document.h,
33587           tests/api_db.cc,tests/api_posdb.cc: Renamed
33588           Xapian::Document::add_term_nopos to Xapian::Document::add_term
33589           (with forwarding wrapper method for compatibility with existing
33590           code).
33592 Sat Mar 06 02:32:58 GMT 2004  Olly Betts <olly@survex.com>
33594         * docs/: Updated the quickstart tutorial and removed the warning
33595           that "this document isn't up to date".
33597 Sat Mar 06 01:56:17 GMT 2004  Olly Betts <olly@survex.com>
33599         * api/omenquire.cc: Another tweak for Sun's C++ compiler.
33601 Sat Mar 06 01:31:29 GMT 2004  Olly Betts <olly@survex.com>
33603         * common/omenquireinternal.h: Tweaked friend class declarations a
33604           bit so Sun's C++ compiler can cope.
33606 Thu Mar 04 23:58:17 GMT 2004  Olly Betts <olly@survex.com>
33608         * PLATFORMS: Updated with results from the tinderbox.
33610 Thu Mar 04 23:29:28 GMT 2004  Olly Betts <olly@survex.com>
33612         * tests/btreetest.cc,tests/quartztest.cc: NetBSD mkdir() doesn't cope
33613           with a trailing / on the path - fixed our code to cope with this.
33615 Wed Mar 03 19:14:09 GMT 2004  Olly Betts <olly@survex.com>
33617         * docs/todo.xml: Updated.
33619 Fri Feb 13 23:56:44 GMT 2004  Olly Betts <olly@survex.com>
33621         * api/omquery.cc,tests/api_nodb.cc: Throw error when an empty query is
33622           used to build in the binary operator Query ctor.  Added regression
33623           test.
33625 Fri Feb 13 15:08:09 GMT 2004  Olly Betts <olly@survex.com>
33627         * HACKING: XAPIAN_DEBUG_TYPES should be XAPIAN_DEBUG_FLAGS.
33629 Sat Feb 07 14:26:54 GMT 2004  Olly Betts <olly@survex.com>
33631         * docs/queryparser.html: Grammar fixes.
33633 Fri Jan 16 02:06:53 GMT 2004  Olly Betts <olly@survex.com>
33635         * backends/quartz/quartz_postlist.cc: Fixed bug flagged up by deldoc4.
33637 Thu Jan 15 01:00:48 GMT 2004  Olly Betts <olly@survex.com>
33639         * backends/quartz/quartz_termlist.cc: Use Xapian::doccount instead of
33640           unsigned int in set_entries().
33642 Thu Jan 15 00:56:47 GMT 2004  Olly Betts <olly@survex.com>
33644         * backends/quartz/btree.cc,backends/quartz/btree.h,
33645           testsuite/btreecheck.cc: Made some static functions into static
33646           member functions of Btree so we can avoid duplicating code in
33647           btreecheck.cc.  Also tweaked compare_keys to use memcmp and
33648           special case when the keys are the same length (each of these
33649           changes gives a very small speed gain).
33651 Thu Jan 15 00:54:47 GMT 2004  Olly Betts <olly@survex.com>
33653         * api/maptermlist.h: Removed a FIXME which already had been fixed.
33654           Removed a couple of asserts from a function which should never be
33655           called (and so had `Assert(false)' anyway).
33657 Mon Jan 12 00:32:37 GMT 2004  Olly Betts <olly@survex.com>
33659         * bin/quartzdump.cc: Backslash escape space and backslash in output
33660           rather than hex encoding them; renamed start-term and end-term to
33661           start-key and end-key; removed rather pointless "Calling next"
33662           message; if there's an error, write it to stderr not stdout, and
33663           exit with return code 1.
33665 Sun Jan 11 03:23:17 GMT 2004  Olly Betts <olly@survex.com>
33667         * backends/quartz/quartz_termlist.cc: When possible, pack the wdf into
33668           the same byte as the reuse length - doing so typically makes the
33669           termlist 14% smaller!  This change is backward compatible.
33671 Sat Jan 10 03:04:22 GMT 2004  Olly Betts <olly@survex.com>
33673         * backends/quartz/quartz_postlist.cc: Fixed bug in new postlist
33674           chunking code.
33676 Sat Jan 10 00:45:04 GMT 2004  Olly Betts <olly@survex.com>
33678         * backends/quartz/quartz_termlist.cc: Removed unused
33679           OLD_TERMLIST_FORMAT code.
33681 Fri Jan 09 21:54:34 GMT 2004  Olly Betts <olly@survex.com>
33683         * backends/quartz/quartz_postlist.cc: Fix incorrect code which just
33684           happens to build and work with GCC 2.95.
33686 Fri Jan 09 14:40:00 GMT 2004  Olly Betts <olly@survex.com>
33688         * backends/quartz/quartz_postlist.cc: Tidied the initial call to
33689           get_chunk() out of the merge loop (gives ~4% speedup!)
33691 Fri Jan 09 01:31:05 GMT 2004  Olly Betts <olly@survex.com>
33693         * backends/quartz/quartz_postlist.cc: Implement chunking of postlists
33694           once again.
33696 Thu Jan 08 21:06:37 GMT 2004  Olly Betts <olly@survex.com>
33698         * backends/quartz/quartz_postlist.cc: Shortcut the very common case
33699           of appending to a posting list (which happens when we're just
33700           adding new documents).  Declare small helper functions as "inline".
33702 Wed Jan 07 23:21:59 GMT 2004  Olly Betts <olly@survex.com>
33704         * backends/quartz/quartz_database.cc: Set threshold for flushing to
33705           a saner value for the value we are now using.
33706         * backends/quartz/: Use freq_deltas to update the stats in the first
33707           chunk of each postlist.
33709 Mon Jan 05 16:00:07 GMT 2004  Olly Betts <olly@survex.com>
33711         * include/xapian/enquire.h: Made the TradWeight constructor explicit.
33712           This is technically an API change as before you could pass a
33713           double where a Xapian::Weight was required - now you must pass
33714           Xapian::TradWeight(2.0) instead of 2.0.  That seems desirable, and
33715           it's unlikely any existing code will be affected.
33717 Mon Jan 05 15:08:26 GMT 2004  Olly Betts <olly@survex.com>
33719         * include/xapian/: Added "explicit" qualifier to internal ctors
33720           which take a single parameter.
33722 Mon Jan 05 15:04:12 GMT 2004  Olly Betts <olly@survex.com>
33724         * include/xapian/base.h: Assigning a normal pointer to a RefCntPtr no
33725           longer creates a temporary RefCntPtr from it.
33727 Thu Dec 25 05:49:03 GMT 2003  Olly Betts <olly@survex.com>
33729         * backends/quartz/quartz_postlist.cc: Changed to merge a batch of
33730           changes into a posting list in one pass.
33732 Thu Dec 25 05:48:09 GMT 2003  Olly Betts <olly@survex.com>
33734         * docs/quartzdesign.html: Some minor improvements.
33736 Thu Dec 25 05:39:57 GMT 2003  Olly Betts <olly@survex.com>
33738         * tests/api_db.cc: Check returned docids are the expected values in a
33739           couple more cases.  Improved wording of a comment.
33741 Thu Dec 25 05:38:43 GMT 2003  Olly Betts <olly@survex.com>
33743         * backends/quartz/quartz_utils.h: Updated explanation of string
33744           encoding.
33746 Thu Dec 25 05:37:36 GMT 2003  Olly Betts <olly@survex.com>
33748         * backends/quartz/quartz_values.cc: Fixed problem with dereferencing
33749           a pointer to the end of a string in debug output.
33751 Sun Dec 21 23:35:49 GMT 2003  Olly Betts <olly@survex.com>
33753         * backends/quartz/quartz_postlist.cc: Refactor recently relocated code
33754           to reduce duplication.
33756 Sun Dec 21 21:44:07 GMT 2003  Olly Betts <olly@survex.com>
33758         * backends/quartz/quartz_postlist.cc: Renamed
33759           skip_and_check_tname_in_key() to check_tname_in_key() as it doesn't
33760           do any sort of skipping!
33762 Sun Dec 21 14:54:49 GMT 2003  Olly Betts <olly@survex.com>
33764         * backends/quartz/quartz_postlist.cc,backends/quartz/quartz_postlist.h,
33765           tests/quartztest.cc: Subsumed QuartzPostList::add_entry and
33766           QuartzPostList::delete_entry into QuartzPostList::merge_changes.
33768 Sun Dec 21 03:21:42 GMT 2003  Olly Betts <olly@survex.com>
33770         * backends/quartz/quartz_database.cc,
33771           backends/quartz/quartz_postlist.cc,
33772           backends/quartz/quartz_postlist.h: Move merging on postlist changes
33773           into QuartzPostList in preparation for an efficient
33774           reimplementation.
33776 Sun Dec 21 01:47:07 GMT 2003  Olly Betts <olly@survex.com>
33778         * backends/quartz/quartz_postlist.h,
33779           backends/quartz/quartz_table_entries.h: Fixed typos and incorrect
33780           comments.
33782 Sat Dec 20 22:11:26 GMT 2003  Olly Betts <olly@survex.com>
33784         * backends/quartz/: Removed several needless inclusions of
33785           quartz_table_entries.h.
33787 Sat Dec 20 16:31:46 GMT 2003  Olly Betts <olly@survex.com>
33789         * backends/quartz/,docs/quartzdesign.html: Removed all the quartz
33790           lexicon code and docs.  It's been disabled for ages, and we've
33791           not missed it.
33793 Sat Dec 20 01:21:47 GMT 2003  Olly Betts <olly@survex.com>
33795         * backends/quartz/quartz_database.h: Added doxygen comments for the
33796           QuartzWritableDatabase members we use to buffer changes.
33798 Sat Dec 20 01:19:10 GMT 2003  Olly Betts <olly@survex.com>
33800         * backends/quartz/quartz_database.cc: Trigger autoflush on
33801           totlen_added + totlen_removed rather than specially tracking the
33802           number of document add/delete/replace operations.
33804 Fri Dec 19 22:51:26 GMT 2003  Olly Betts <olly@survex.com>
33806         * backends/quartz/: Buffer up changes to the postlists and apply them
33807           all at once (at present they're applied inefficiently, but this is
33808           change enables us to apply them with an efficient merge).
33809         * tests/api_db.cc,tests/quartztest.cc: Added a couple of tests, and
33810           commented out some test lines which fail in debug builds.
33812 Sun Dec 14 03:38:55 GMT 2003  Olly Betts <olly@survex.com>
33814         * common/omdebug.cc: Open debug log with flag O_WRONLY so that we can
33815           actually write to it!
33817 Mon Dec 08 01:53:24 GMT 2003  Olly Betts <olly@survex.com>
33819         * HACKING: Update to mention that building from CVS requires
33820           ./configure --enable-maintainer-mode (or use bootstrap).
33822 Mon Dec 01 19:03:00 GMT 2003  Olly Betts <olly@survex.com>
33824         * configure.in: Fixed the "fixed" valgrind test.
33826 Sun Nov 30 23:42:52 GMT 2003  Olly Betts <olly@survex.com>
33828         * configure.in,testsuite/testsuite.cc: Fix test for valgrind - it
33829           wasn't working correctly when valgrind was installed but was too
33830           a version to support VALGRIND_COUNT_ERRORS and VALGRIND_COUNT_LEAKS.
33832 Wed Nov 26 16:31:19 GMT 2003  Olly Betts <olly@survex.com>
33834         * Makefile.am,extra/Makefile.am: Updated libtool -version-info
33835           parameters for 0.7.5.
33837 Wed Nov 26 15:32:45 GMT 2003  Olly Betts <olly@survex.com>
33839         * NEWS,PLATFORMS,configure.in: Version 0.7.5.
33841 Wed Nov 26 15:31:56 GMT 2003  Olly Betts <olly@survex.com>
33843         * extra/queryparser.yy: Special case stemming language "none".
33845 Tue Nov 25 04:37:50 GMT 2003  Olly Betts <olly@survex.com>
33847         * api/ompositionlistiterator.cc,api/ompostlistiterator.cc,
33848           include/xapian/positioniterator.h,include/xapian/postingiterator.h,
33849           tests/api_db.cc: Added missing default ctors for PostingIterator and
33850           PositionIterator classes; fixed PositionIterator assignment operator.
33852 Tue Nov 25 03:40:11 GMT 2003  Olly Betts <olly@survex.com>
33854         * tests/btreetest.cc: Fixed 2 compiler warnings.
33856 Tue Nov 25 02:47:16 GMT 2003  Olly Betts <olly@survex.com>
33858         * common/,include/xapian/: Fixed incorrect doxygen comments which
33859           resulted in some missing text in the collated API and internal
33860           classes documentation.
33862 Fri Nov 21 03:23:57 GMT 2003  Olly Betts <olly@survex.com>
33864         * Makefile.am,include/xapian/termiterator.h,api/omtermlistiterator.cc:
33865           TermIterator::TermIterator() fix which actually works!
33867 Fri Nov 21 01:14:23 GMT 2003  Olly Betts <olly@survex.com>
33869         * HACKING,configure.in,docs/Makefile.am,extra/Makefile.am: Change to
33870           using AM_MAINTAINER_MODE.  If you're doing development work on
33871           Xapian, you should configure with "--enable-maintainer-mode" and
33872           ideally use GNU make.
33874 Fri Nov 21 01:13:25 GMT 2003  Olly Betts <olly@survex.com>
33876         * include/xapian/termiterator.h,tests/api_nodb.cc: Added TermIterator
33877           default ctor which had disappeared somehow.  Added regression test.
33879 Thu Nov 20 03:19:37 GMT 2003  Olly Betts <olly@survex.com>
33881         * configure.in: Fixed test for fdatasync to work (I suspect a change
33882           in a recent autoconf broke it as it relied on autoconf internal
33883           naming).
33885 Tue Nov 18 17:53:29 GMT 2003  Olly Betts <olly@survex.com>
33887         * extra/Makefile.am: Tweaked workaround for FreeBSD make in VPATH
33888           builds.
33890 Tue Nov 18 17:53:01 GMT 2003  Olly Betts <olly@survex.com>
33892         * extra/queryparsertest.cc: Added another testcase.
33894 Tue Nov 18 17:37:20 GMT 2003  Olly Betts <olly@survex.com>
33896         * docs/: Added first cut of documentation for Xapian::QueryParser
33897           query syntax.
33898         * docs/scalability.html: Fixed typo.
33900 Fri Oct 31 18:17:13 GMT 2003  Olly Betts <olly@survex.com>
33902         * extra/queryparser.yy,extra/queryparsertest.cc: Added support for
33903           term prefixes on phrases and expressions (e.g. author:(twain OR poe)
33904           subject:"space flight").
33906 Tue Oct 28 15:03:01 GMT 2003  Olly Betts <olly@survex.com>
33908         * api/omenquire.cc: Added FIXME comment.
33910 Tue Oct 28 15:01:14 GMT 2003  Olly Betts <olly@survex.com>
33912         * docs/todo.xml: Removed Java from list of language bindings we'd
33913           like to support, as we should have up-to-date Java bindings soon.
33915 Sun Oct 26 20:18:24 GMT 2003  Olly Betts <olly@survex.com>
33917         * bin/quartzcompact.cc: Fix the name that the meta file gets copied
33918           to (was /path/to/dbdirmeta rather than /path/to/dbdir/meta).
33920 Tue Oct 21 22:26:51 BST 2003  Olly Betts <olly@survex.com>
33922         * extra/Makefile.am: Backed out previous change - the original rule
33923           does work, but the build machine had a generated file which stopped
33924           the symlink being generated.
33926 Tue Oct 21 22:14:22 BST 2003  Olly Betts <olly@survex.com>
33928         * extra/Makefile.am: Tweaked rule to symlink queryparser.cc.
33930 Tue Oct 21 17:31:10 BST 2003  Olly Betts <olly@survex.com>
33932         * extra/Makefile.am: Added rule to symlink queryparser.cc from source
33933           tree to build tree - otherwise FreeBSD's make insists on
33934           regenerating it...
33936 Wed Oct 08 14:04:44 BST 2003  Olly Betts <olly@survex.com>
33938         * backends/quartz/.cvsignore,tests/Makefile.am,testsuite/.cvsignore:
33939           Updated to reflect move of libbtreecheck.la from backends/quartz
33940           to testsuite.
33942 Wed Oct 08 13:22:08 BST 2003  Olly Betts <olly@survex.com>
33944         * backends/quartz/btree.cc: Don't pass mode argument to open when we
33945           aren't specifying O_CREAT.
33947 Thu Oct 02 15:29:38 BST 2003  Olly Betts <olly@survex.com>
33949         * NEWS: Another entry for omega for 0.7.4.
33951 Thu Oct 02 14:57:25 BST 2003  Olly Betts <olly@survex.com>
33953         * configure.in,extra/Makefile.am: Version 0.7.4.
33955 Thu Oct 02 14:56:36 BST 2003  Olly Betts <olly@survex.com>
33957         * HACKING: Improved wording in a few places.
33959 Thu Oct 02 14:39:49 BST 2003  Olly Betts <olly@survex.com>
33961         * NEWS: Updated.
33963 Thu Oct 02 13:35:46 BST 2003  Olly Betts <olly@survex.com>
33965         * xapian.spec.in: Don't hardcode the shared library versioning info.
33967 Wed Oct 01 13:51:15 BST 2003  Olly Betts <olly@survex.com>
33969         * PLATFORMS: Updated - Solaris 8 + Sun Workshop C++ doesn't actually
33970           pass "make check" (I forgot the tinderbox builds omega before "make
33971           check").
33973 Tue Sep 30 21:39:20 BST 2003  Olly Betts <olly@survex.com>
33975         * configure.in: Another stab at fixing the test for -lsocket.
33977 Tue Sep 30 18:29:31 BST 2003  Olly Betts <olly@survex.com>
33979         * configure.in: Quote arguments to test in a couple of places.
33981 Tue Sep 30 11:20:09 BST 2003  Olly Betts <olly@survex.com>
33983         * configure.in: Fixed test for -lsocket.
33985 Tue Sep 30 10:17:09 BST 2003  Olly Betts <olly@survex.com>
33987         * PLATFORMS: Updated - Solaris 8 + Sun Workshop C++ builds and passes
33988           "make check" (but Omega fails to build).
33990 Mon Sep 29 00:41:19 BST 2003  Olly Betts <olly@survex.com>
33992         * configure.in: Fixed dependency libs for libxapian.
33994 Sun Sep 28 23:55:49 BST 2003  Olly Betts <olly@survex.com>
33996         * Makefile.am,backends/quartz/Makefile.am,
33997           backends/quartz/btreecheck.cc,backends/quartz/btreecheck.h,
33998           bin/Makefile.am,testsuite/Makefile.am,testsuite/btreecheck.cc,
33999           testsuite/btreecheck.h: libbtreecheck.la now has an explicit
34000           dependency on libxapian.la.
34002 Sun Sep 28 17:29:55 BST 2003  Olly Betts <olly@survex.com>
34004         * Makefile.am,configure.in: Tell libtool about any libraries which
34005           libxapian needs to depend on.
34007 Fri Sep 26 09:39:29 BST 2003  Olly Betts <olly@survex.com>
34009         * bin/Makefile.am: Swap order of libbtreecheck.la and libxapian.la
34010           when linking quartzcheck to see if that gets it to work with
34011           Sun's CC.
34013 Thu Sep 25 17:25:17 BST 2003  Olly Betts <olly@survex.com>
34015         * xapian-config.in: Fixed stupid mistake in previous check-in.
34017 Thu Sep 25 16:50:00 BST 2003  Olly Betts <olly@survex.com>
34019         * xapian-config.in: Link with libxapianqueryparser before libxapian,
34020           since that's the dependency order.
34022 Thu Sep 25 16:43:20 BST 2003  Olly Betts <olly@survex.com>
34024         * include/om/om.h: Updated comment about why we `#include <iostream>'.
34026 Thu Sep 25 13:13:37 BST 2003  Olly Betts <olly@survex.com>
34028         * api/omqueryinternal.cc,backends/database.cc,common/omdebug.cc,
34029           common/omstringstream.h,include/xapian/output.h: Removed or replaced
34030           uses of <iostream> and <iosfwd> - we don't need or want the library
34031           to pull in cin and friends.
34033 Thu Sep 25 13:12:31 BST 2003  Olly Betts <olly@survex.com>
34035         * Makefile.am: Improved several comments.
34037 Thu Sep 25 11:57:03 BST 2003  Olly Betts <olly@survex.com>
34039         * api/omqueryinternal.cc: Removed `#include <iostream>' left over from
34040           debugging; changed to `using namespace std;'.
34042 Mon Sep 15 00:41:10 BST 2003  Olly Betts <olly@survex.com>
34044         * extra/queryparser.yy: Fixed to build with Sun's C++ compiler.
34046 Thu Sep 11 03:35:29 BST 2003  Olly Betts <olly@survex.com>
34048         * dummy.c,dummy.cc,Makefile.am: Change the default file to be C++ so
34049           that automake tells libtool that this is a C++ library.
34050         * Makefile.am: Pass -no-undefined to libtool so that it will build
34051           a DLL on MS Windows.
34053 Wed Sep 10 02:53:46 BST 2003  Olly Betts <olly@survex.com>
34055         * docs/scalability.html: Fixed oops (32GB should be 32TB);  Added
34056           note about Linux 2.4 and ext2 filesize limits.
34058 Tue Sep 09 03:36:05 BST 2003  Olly Betts <olly@survex.com>
34060         * backends/quartz/quartz_database.cc: don't start the document's
34061           TermIterator from scratch on every iteration in replace_document().
34062           Should be a small performance win.
34064 Sun Sep 07 22:17:27 BST 2003  Olly Betts <olly@survex.com>
34066         * configure.in: Fixed check for socketpair - we were automatically
34067           disabling the remote backend on platforms where socketpair is
34068           in libsocket (such as Solaris).
34070 Sun Sep 07 19:56:57 BST 2003  Olly Betts <olly@survex.com>
34072         * PLATFORMS: Added success report for cygwin from Eric B. Ridge.
34074 Sun Sep 07 03:53:48 BST 2003  Olly Betts <olly@survex.com>
34076         * testsuite/testsuite.cc: Also need to rerun test if it "probably
34077           leaked".
34079 Sun Sep 07 03:51:37 BST 2003  Olly Betts <olly@survex.com>
34081         * tests/api_db.cc: Use x & (x - 1) trick to check for x being a power
34082           of 2, rather than an elaborate loop with shifting; use Xapian::docid
34083           rather than "int" and "unsigned int".
34085 Sun Sep 07 02:24:06 BST 2003  Olly Betts <olly@survex.com>
34087         * api/omenquire.cc: Fixed small memory leak if
34088           Xapian::Enquire::set_query() is called more than once.
34090 Sun Sep 07 02:12:47 BST 2003  Olly Betts <olly@survex.com>
34092         * common/omenquireinternal.h,include/xapian/enquire.h: Fixed
34093           Xapian::ESet to have reference counted internals
34094         * Makefile.am: bumped libxapian version-info to 1:0:0 because of this.
34096 Sun Sep 07 02:09:50 BST 2003  Olly Betts <olly@survex.com>
34098         * testsuite/testsuite.cc: Delete any buffered test output before
34099           asking valgrind to check for leaks, as otherwise the buffered
34100           output may be reported as a leak; also fixed |= to != in several
34101           places - a cosmetic bug which lead to extra newlines after test
34102           output.
34104 Sun Sep 07 00:09:32 BST 2003  Olly Betts <olly@survex.com>
34106         * testsuite/testsuite.cc: Actually open temporary file for valgrind
34107           to log to.
34109 Sat Sep 06 20:50:58 BST 2003  Olly Betts <olly@survex.com>
34111         * configure.in,testsuite/testsuite.cc: Fixed up detection of valgrind
34112           and testsuite code to use it.
34114 Sat Sep 06 20:48:17 BST 2003  Olly Betts <olly@survex.com>
34116         * tests/btreetest.cc: Reinstated non-superfluous `/'s which I had
34117           overeagerly removed!
34119 Sat Sep 06 17:28:00 BST 2003  Olly Betts <olly@survex.com>
34121         * matcher/Makefile.am: Ship networkmatch.cc even if "make dist" is run
34122           from a tree with the remote backend disabled.
34124 Thu Aug 28 00:01:22 BST 2003  Olly Betts <olly@survex.com>
34126         * tests/btreetest.cc: Removed superfluous `/'s from constructed paths.
34128 Fri Aug 15 15:12:24 BST 2003  Olly Betts <olly@survex.com>
34130         * PLATFORMS: Updated with current testsuite results for mingw build.
34132 Fri Aug 15 15:10:59 BST 2003  Olly Betts <olly@survex.com>
34134         * backends/quartz/btree.cc: Use O_BINARY for database I/O if it
34135           exists.
34137 Fri Aug 15 15:10:30 BST 2003  Olly Betts <olly@survex.com>
34139         * common/utils.h: mkdir() only takes one argument on mingw.
34141 Fri Aug 15 01:26:22 BST 2003  Olly Betts <olly@survex.com>
34143         * common/utils.h,testsuite/backendmanager.cc: Touch file using
34144           open() rather than system().
34146 Fri Aug 15 01:06:06 BST 2003  Olly Betts <olly@survex.com>
34148         * common/utils.h: Fixed parameter name of system from "filename" to
34149           "command" (cosmetic change).
34151 Thu Aug 14 22:31:23 BST 2003  Olly Betts <olly@survex.com>
34153         * net/progclient.cc: Tidied a little.
34155 Tue Aug 12 12:50:19 BST 2003  Olly Betts <olly@survex.com>
34157         * backends/quartz/quartz_database.cc: Pass 0 for the lexicon/postlist
34158           table when creating a termlist just to find the doc length.
34160 Tue Aug 12 02:08:50 BST 2003  Olly Betts <olly@survex.com>
34162         * api/maptermlist.h,api/omdocument.cc,common/documentterm.h:
34163           Removed unused OmDocumentTerm::termfreq member variable.
34165 Tue Aug 12 00:53:02 BST 2003  Olly Betts <olly@survex.com>
34167         * api/omdocument.cc,common/documentterm.h: OmDocumentTerm ctor now
34168           takes wdf, and replaced set_wdf() with inc_wdf() and dec_wdf().
34170 Mon Aug 11 16:11:26 BST 2003  Olly Betts <olly@survex.com>
34172         * backends/quartz/quartz_table_entries.cc: Removed rather unnecessary
34173           use of const_cast.
34175 Mon Aug 11 16:11:05 BST 2003  Olly Betts <olly@survex.com>
34177         * backends/quartz/quartz_table.cc: Removed unused variable.
34179 Mon Aug 11 16:09:57 BST 2003  Olly Betts <olly@survex.com>
34181         * backends/quartz/quartz_postlist.cc: Fixed typo in comment.
34183 Mon Aug 11 15:51:20 BST 2003  Olly Betts <olly@survex.com>
34185         * tests/quartztest.cc: adddoc2 now checks that there weren't any extra
34186           values created.
34188 Mon Aug 11 12:55:49 BST 2003  Olly Betts <olly@survex.com>
34190         * configure.in: Sorted out tests for gethostbyname and gethostbyaddr
34191           using standard autoconf macros.
34193 Mon Aug 11 12:05:13 BST 2003  Olly Betts <olly@survex.com>
34195         * common/match.h,matcher/: Removed unused open_document() method from
34196           SubMatch and derived classes; calls made by the matcher to
34197           Document::Internal::open_document() now use the lazy flag provided
34198           for precisely this purpose, but apparently never used - this should
34199           give quite a speed boost to any matcher options which use values
34200           (e.g. sort, collapse).
34202 Sun Aug 10 02:25:59 BST 2003  Olly Betts <olly@survex.com>
34204         * PLATFORMS: Out of curiosity, I tried to build with a Linux->DJGPP
34205           cross-compiler I had to hand.  It built (just had to disable the
34206           remote backend if socketpair isn't found and add the workaround for
34207           not having snprintf).
34209 Sun Aug 10 01:38:17 BST 2003  Olly Betts <olly@survex.com>
34211         * common/utils.cc: Fixed to compile if snprintf isn't available.
34213 Sun Aug 10 01:37:44 BST 2003  Olly Betts <olly@survex.com>
34215         * backends/quartz/btree.cc: Fixed "initialisation reordered" warning.
34217 Sun Aug 10 01:26:58 BST 2003  Olly Betts <olly@survex.com>
34219         * acinclude.m4: Updated in line with previous change.
34221 Sun Aug 10 01:00:08 BST 2003  Olly Betts <olly@survex.com>
34223         * configure.in: If fork is found, but socketpair isn't, automatically
34224           disable the remote backend rather than configure dying with an
34225           error.
34226         * autoconf/: Removed various unused autoconf macros.
34228 Sat Aug 09 23:57:44 BST 2003  Olly Betts <olly@survex.com>
34230         * backends/quartz/btree.h: Made "overwritten" protected.
34232 Sat Aug 09 23:45:26 BST 2003  Olly Betts <olly@survex.com>
34234         * docs/quartzdesign.html: Wrapped an overlong line.
34236 Sat Aug 09 23:31:30 BST 2003  Olly Betts <olly@survex.com>
34238         * backends/quartz/btree.cc,backends/quartz/btree.h,
34239           backends/quartz/quartz_table.cc,docs/quartzdesign.html:
34240           Improved class Btree's encapsulation.
34242 Sat Aug 09 22:30:13 BST 2003  Olly Betts <olly@survex.com>
34244         * NEWS: Fixed a few typos.
34246 Sat Aug 09 22:29:52 BST 2003  Olly Betts <olly@survex.com>
34248         * PLATFORMS: Updated with results from the Tinderbox.
34250 Sat Aug 09 22:19:12 BST 2003  Fabrice Colin
34252         * xapian.spec.in: Updated RPM packaging to reflect changes in 0.7.3.
34254 Fri Aug 08 01:38:40 BST 2003  Olly Betts <olly@survex.com>
34256         * Makefile.am,configure.in,extra/Makefile.am: Version 0.7.3.
34258 Fri Aug 08 01:35:04 BST 2003  Olly Betts <olly@survex.com>
34260         * NEWS: Updated.
34262 Fri Aug 08 01:34:29 BST 2003  Olly Betts <olly@survex.com>
34264         * PLATFORMS: Updated with more tinderbox results.
34266 Wed Aug 06 16:27:34 BST 2003  Olly Betts <olly@survex.com>
34268         * HACKING: Noted that libtool 1.5 is the first version to actually
34269           support linking C++ libraries properly.
34271 Wed Aug 06 16:25:15 BST 2003  Olly Betts <olly@survex.com>
34273         * api/omenquire.cc,net/socketcommon.cc,common/omenquireinternal.h:
34274           Moved rset serialisation into a method of RSet::Internal, so
34275           omrset_to_string() is now just glue code.  This eliminates the
34276           need for it to be a friend of RSet::Internal which Sun's C++
34277           compiler didn't seem to be able to cope with.
34279 Wed Aug 06 01:57:11 BST 2003  Olly Betts <olly@survex.com>
34281         * api/omenquire.cc: Applied patch from Olivier Galibert to fix
34282           MSetIterator::get_document() when get_mset() was called with
34283           first != 0.
34284         * tests/api_db.cc: Added regression test (msetiterator3).
34286 Mon Aug 04 12:40:25 BST 2003  Olly Betts <olly@survex.com>
34288         * languages/Makefile.am: Fixed compilation for compilers other than
34289           GCC.
34291 Wed Jul 30 17:03:14 BST 2003  Olly Betts <olly@survex.com>
34293         * common/getopt.h: Another try - the previous one failed on FreeBSD.
34295 Wed Jul 30 15:07:58 BST 2003  Olly Betts <olly@survex.com>
34297         * common/getopt.h: Another iteration of the getopt C++ prototype fix
34298           as the previous one failed on Solaris.
34300 Wed Jul 30 02:38:47 BST 2003  Olly Betts <olly@survex.com>
34302         * testsuite/backendmanager.cc: Fixed breakage caused by remotetest
34303           cleanup.
34305 Tue Jul 29 13:22:20 BST 2003  Olly Betts <olly@survex.com>
34307         * tests/remotetest.cc: Cleaned up uses of
34308           BackendManager::get_database() to pass a string rather than a vector
34309           with one string in.
34311 Tue Jul 29 11:58:21 BST 2003  Olly Betts <olly@survex.com>
34313         * testsuite/testutils.cc: Added output of const vector<unsigned int>
34314           for platforms which use our internal stringstream implementation.
34316 Tue Jul 29 11:42:54 BST 2003  Olly Betts <olly@survex.com>
34318         * PLATFORMS: Updated with results from the tinderbox.
34320 Tue Jul 29 01:21:53 BST 2003  Olly Betts <olly@survex.com>
34322         * testsuite/testsuite.cc,testsuite/testsuite.h: Only use \r in test
34323           output if the output is a tty.
34325 Mon Jul 28 23:56:10 BST 2003  Olly Betts <olly@survex.com>
34327         * xapian-config.in: Fixed fix of --cxxflags for uninstalled VPATH
34328           builds.
34330 Mon Jul 28 23:37:15 BST 2003  Olly Betts <olly@survex.com>
34332         * testsuite/backendmanager.cc: Increased default timeout used by
34333           tests running on the remote backend from 10 seconds to 5 minutes
34334           to avoid tests failing just because the machine running them is
34335           slow and/or busy.
34337 Mon Jul 28 15:41:12 BST 2003  Olly Betts <olly@survex.com>
34339         * testsuite/testutils.h: Fixed check for broken exception handling
34340           - we were getting "Xapian::" prefixed to one version and not on the
34341           other.
34343 Mon Jul 28 15:34:54 BST 2003  Olly Betts <olly@survex.com>
34345         * tests/runtest.in: Set srcdir if it isn't already to make it easy
34346           to manually run test programs from a VPATH build.
34348 Mon Jul 28 10:38:04 BST 2003  Olly Betts <olly@survex.com>
34350         * xapian-config.in: Fixed --cxxflags for uninstalled VPATH builds.
34352 Mon Jul 28 10:37:17 BST 2003  Olly Betts <olly@survex.com>
34354         * PLATFORMS: Updated FreeBSD success report.
34356 Sun Jul 27 16:01:25 BST 2003  Olly Betts <olly@survex.com>
34358         * configure.in: Explicitly remove include/xapian/version.h from
34359           APIDOC_SRC to avoid us trying to run doxygen unnecessarily.
34361 Sun Jul 27 14:31:36 BST 2003  Olly Betts <olly@survex.com>
34363         * docs/todo.xml: Assorted updates.
34365 Sun Jul 27 13:02:36 BST 2003  Olly Betts <olly@survex.com>
34367         * extra/.cvsignore: We still create libomqueryparser.la for backward
34368           compatibility.
34370 Sun Jul 27 04:56:40 BST 2003  Olly Betts <olly@survex.com>
34372         * xapian-config.in,m4/xapian.m4: Added --from-xo-lib-xapian option
34373           to xapian-config for use by XO_LIB_XAPIAN to allow us to give a
34374           more helpful error message if asked to link an uninstalled
34375           libxapian.
34377 Sun Jul 27 04:46:48 BST 2003  Olly Betts <olly@survex.com>
34379         * xapian-config.in: Fixed --cxxflags in non-installed case.
34380           Tidied up --help output and error messages.
34382 Sun Jul 27 01:40:39 BST 2003  Olly Betts <olly@survex.com>
34384         * tests/api_db.cc: Check termfreq in allterms4.
34386 Sun Jul 27 01:39:57 BST 2003  Olly Betts <olly@survex.com>
34388         * extra/queryparsertest.cc: Fixed for relocated queryparser.h.
34390 Sun Jul 27 00:59:56 BST 2003  Olly Betts <olly@survex.com>
34392         * .cvsignore,backends/quartz/.cvsignore,extra/.cvsignore: Updated.
34394 Sun Jul 27 00:19:11 BST 2003  Olly Betts <olly@survex.com>
34396         * tests/Makefile.am: Oops, failed to remove btreecheck.cc reference
34397           in previous check-in.
34399 Sat Jul 26 23:36:01 BST 2003  Olly Betts <olly@survex.com>
34401         * backends/quartz/Makefile.am,bin/Makefile.am,tests/Makefile.am:
34402           Hopefully fixed "make dist" in VPATH builds.
34404 Sat Jul 26 22:58:27 BST 2003  Olly Betts <olly@survex.com>
34406         * backends/quartz/Makefile.am: Need to distribute btreecheck.cc.
34408 Sat Jul 26 20:05:47 BST 2003  Olly Betts <olly@survex.com>
34410         * xapian-config.in,extra/Makefile.am,extra/queryparser.h,
34411           extra/queryparser.yy,extra/xapian/queryparser.h: Sorted out
34412           xapian-config so it handles using QueryParser too.
34414 Sat Jul 26 19:03:04 BST 2003  Olly Betts <olly@survex.com>
34416         * xapian-config.in: Updated logic in --libs and --cxxflags in line
34417           with recent change in --ltlibs.
34419 Sat Jul 26 18:31:11 BST 2003  Olly Betts <olly@survex.com>
34421         * xapian-config.in: Reworked logic for finding libxapian.la in
34422           --ltlibs - it may not yet exist in the non-installed case.
34423         * m4/xapian.m4: Don't pass --libs when checking if xapian-config
34424           works as it will fail in the non-installed case.
34426 Sat Jul 26 01:25:46 BST 2003  Olly Betts <olly@survex.com>
34428         * NEWS: Updated.
34430 Fri Jul 25 10:20:18 BST 2003  Olly Betts <olly@survex.com>
34432         * NEWS: Updated in preparation for 0.7.3 release.
34434 Thu Jul 24 23:20:14 BST 2003  Olly Betts <olly@survex.com>
34436         * backends/quartz/quartz_alltermslist.cc,
34437           backends/quartz/quartz_alltermslist.h,tests/api_db.cc:
34438           Fixed allterms TermIterator to not give duplicate terms with a
34439           quartz database when a posting list is chunked; added regression
34440           test (allterms4).
34442 Mon Jul 21 15:06:59 BST 2003  Richard Boulton <richard@tartarus.org>
34444         * include/xapian/enquire.h: Fix incorrect documentation comment
34445           for Enquire::set_set_forward().  (Looked like a cut&paste error)
34447 Mon Jul 21 01:10:55 BST 2003  Olly Betts <olly@survex.com>
34449         * docs/install.html,m4/xapian.m4: Added XO_LIB_XAPIAN to replace
34450           OM_PATH_XAPIAN.  XO_LIB_XAPIAN will automagically enable use of
34451           "xapian-config --ltlibs" if A[CM]_PROG_LIBTOOL is used in
34452           configure.in.
34454 Sun Jul 20 16:00:43 BST 2003  Olly Betts <olly@survex.com>
34456         * .cvsignore,Makefile.am,configure.in,xapian-config.in,
34457           xapian-config.nodep.in: Reworked xapian-config so that it
34458           now supports linking with libtool - using libtool means that the
34459           run-time library path is set and that you can now link with an
34460           uninstalled libxapian.  Also xapian-config will now work
34461           once configure is run, rather than only after "make all".
34463 Thu Jul 17 01:42:47 BST 2003  Olly Betts <olly@survex.com>
34465         * backends/quartz/bcursor.cc,backends/quartz/btree.cc: Check for
34466           EINTR when reading or writing blocks and retry the operation.
34468 Thu Jul 17 00:56:35 BST 2003  Olly Betts <olly@survex.com>
34470         * COPYING: Updated FSF address, and reinstated missing section: "How
34471           to Apply These Terms to Your New Programs"
34473 Thu Jul 17 00:48:40 BST 2003  Olly Betts <olly@survex.com>
34475         * HACKING,bootstrap: Removed bootstrap in favour of top-level
34476           bootstrap.
34478 Mon Jul 14 23:36:14 BST 2003  Olly Betts <olly@survex.com>
34480         * PLATFORMS: Updated some linux results: RH7.3 on x86, and Debian on
34481           alpha and arm.
34483 Mon Jul 14 23:33:17 BST 2003  Olly Betts <olly@survex.com>
34485         * configure.in,Makefile.am,extra/Makefile.am: Added versioning
34486           information to libxapian and libomqueryparser.
34488 Mon Jul 14 23:32:15 BST 2003  Olly Betts <olly@survex.com>
34490         * bin/quartzdump.cc,testsuite/testsuite.cc: Added long option support
34491           to quartzdump, and to the testsuite programs.
34493 Mon Jul 14 22:45:53 BST 2003  Olly Betts <olly@survex.com>
34495         * tests/internaltest.cc: Changed test exception1 to actually test
34496           something (hopefully what was originally intended!)
34498 Mon Jul 14 17:15:28 BST 2003  Olly Betts <olly@survex.com>
34500         * common/getopt.h: #include <stdlib.h> before defining getopt as a
34501           macro - hopefully that'll avoid problems with clobbering prototypes
34502           of getopt() in system headers.
34504 Sat Jul 12 09:15:26 BST 2003  Olly Betts <olly@survex.com>
34506         * bin/quartzcompact.cc: Need stdio.h for rename().
34508 Sat Jul 12 01:11:54 BST 2003  Olly Betts <olly@survex.com>
34510         * HACKING: Noted another reason why libtool 1.5 is needed.
34512 Sat Jul 12 01:11:08 BST 2003  Olly Betts <olly@survex.com>
34514         * docs/mkdoc.pl: Don't choke on a comment at the end of the
34515           DIST_SUBDIRS line in a Makefile.am.
34517 Fri Jul 11 22:00:36 BST 2003  Olly Betts <olly@survex.com>
34519         * HACKING: Added note about additional tools needed for building a
34520           distribution.
34522 Fri Jul 11 15:13:08 BST 2003  Olly Betts <olly@survex.com>
34524         * NEWS,PLATFORMS,configure.in: Version 0.7.2.
34526 Fri Jul 11 12:36:18 BST 2003  Olly Betts <olly@survex.com>
34528         * NEWS: Updated in preparation for 0.7.2.
34530 Fri Jul 11 12:12:40 BST 2003  Olly Betts <olly@survex.com>
34532         * configure.in: Fixed test for snprintf.
34534 Fri Jul 11 09:37:14 BST 2003  Olly Betts <olly@survex.com>
34536         * testsuite/testsuite.cc: Fixed dereference of a NULL pointer which
34537           was happening when a test threw an unexpected exception.
34539 Fri Jul 11 09:31:40 BST 2003  Olly Betts <olly@survex.com>
34541         * testsuite/backendmanager.cc: Backed out incorrect hunk of previous
34542           patch which was causing test failures.
34544 Fri Jul 11 01:48:21 BST 2003  Olly Betts <olly@survex.com>
34546         * backends/quartz/quartz_table_manager.cc,tests/quartztest.cc,
34547           testsuite/backendmanager.cc: Tidying up around directory creation.
34549 Fri Jul 11 00:57:12 BST 2003  Olly Betts <olly@survex.com>
34551         * include/xapian/database.h: Document that the directory is created.
34553 Fri Jul 11 00:53:59 BST 2003  Olly Betts <olly@survex.com>
34555         * backends/quartz/quartz_table_manager.cc: When asked to create a
34556           quartz database, try to create the directory if it doesn't already
34557           exist.  Then we don't have to do it in every single Xapian program
34558           which wants to create a database...
34560 Fri Jul 11 00:36:00 BST 2003  Olly Betts <olly@survex.com>
34562         * common/getopt.h: Removed space between \ and newline.
34564 Fri Jul 11 00:32:40 BST 2003  Olly Betts <olly@survex.com>
34566         * PLATFORMS: Added MacOS X 10.2 success report.
34568 Thu Jul 10 20:05:58 BST 2003  Olly Betts <olly@survex.com>
34570         * common/getopt.h: Fixed to work better with C++ compilers on
34571           non-glibc platforms.
34573 Thu Jul 10 19:21:00 BST 2003  Olly Betts <olly@survex.com>
34575         * backends/quartz/btree.cc: Modified setting of _XOPEN_SOURCE to
34576           actually work!
34578 Thu Jul 10 19:19:30 BST 2003  Olly Betts <olly@survex.com>
34580         * backends/quartz/btree.cc: Defined _XOPEN_SOURCE=500 for GLIBC
34581           so we get pread() and pwrite().
34583 Thu Jul 10 00:28:25 BST 2003  Olly Betts <olly@survex.com>
34585         * HACKING,Makefile.am,configure.in,bindings/.cvsignore,
34586           bindings/Makefile.am,bindings/dir_contents,bindings/guile/.cvsignore,
34587           bindings/guile/Makefile.am,bindings/php4/.cvsignore,
34588           bindings/php4/ABOUT,bindings/php4/Makefile.am,bindings/python/,
34589           bindings/swig/,bindings/tcl8/.cvsignore,bindings/tcl8/Makefile.am,
34590           docs/todo.xml: Removed bindings - they'll shortly reappear in a
34591           separate module named xapian-bindings.
34593 Thu Jul 10 00:03:04 BST 2003  Olly Betts <olly@survex.com>
34595         * bindings/swig/om_util_perl5.i: Removed.
34597 Wed Jul 09 15:35:56 BST 2003  Olly Betts <olly@survex.com>
34599         * bindings/guile/Makefile.am,bindings/php4/Makefile.am,
34600           bindings/python/Makefile.am,bindings/swig/,
34601           bindings/tcl8/Makefile.am: Removed omtypes.i and merged omstem.i
34602           into xapian.i; added forward declaration for upwrapped classes
34603           to xapian.i.
34605 Wed Jul 09 15:34:11 BST 2003  Olly Betts <olly@survex.com>
34607         * bindings/java/,bindings/java/com/muscat/om/,bindings/java/native/:
34608           Removed old Java bindings - we'll do them using SWIG instead.
34610 Wed Jul 09 14:51:51 BST 2003  Olly Betts <olly@survex.com>
34612         * bindings/php4/Makefile.am,bindings/php4/xapian/.cvsignore: More
34613           work on the php4 bindings.
34615 Wed Jul 09 03:00:17 BST 2003  Olly Betts <olly@survex.com>
34617         * bindings/guile/Makefile.am,bindings/python/Makefile.am,
34618           bindings/tcl8/Makefile.am: Worked towards getting guile and tcl8
34619           bindings up-to-date.
34620         * bindings/php4/.cvsignore: Ignore the whole xapian subdirectory.
34622 Wed Jul 09 02:37:12 BST 2003  Olly Betts <olly@survex.com>
34624         * bindings/perl5/: Removed remaining files.
34626 Wed Jul 09 02:30:55 BST 2003  Olly Betts <olly@survex.com>
34628         * configure.in,bindings/Makefile.am,bindings/php4/Makefile.am:
34629           Working towards getting the php4 bindings functional again.
34631 Wed Jul 09 01:27:39 BST 2003  Olly Betts <olly@survex.com>
34633         * bindings/swig/om_util_php4.i: om_termname -> std::string.
34635 Wed Jul 09 01:25:11 BST 2003  Olly Betts <olly@survex.com>
34637         * docs/overview.html,include/xapian/base.h,include/xapian/database.h:
34638           Improvements to doxygen-generated documentation.
34640 Wed Jul 09 01:23:55 BST 2003  Olly Betts <olly@survex.com>
34642         * configure.in,docs/todo.xml: Added check for SWIG version (require
34643           at least 1.3.14).
34645 Tue Jul  8 20:59:08 2003  James Aylett  <james@tartarus.org>
34647         * common/utils.h: missing #include <ctype.h>
34649 Tue Jul  8 18:06:23 2003  James Aylett  <james@tartarus.org>
34651         * bindings/swig/xapian.i: over-enthusiastic automatic
34652           conversion of termname to std::string
34654 Tue Jul 08 17:45:16 BST 2003  Olly Betts <olly@survex.com>
34656         * common/utils.h: Improved mingw implementation of rmdir().
34658 Tue Jul 08 17:43:21 BST 2003  Olly Betts <olly@survex.com>
34660         * NEWS,PLATFORMS,configure.in: Version 0.7.1.
34662 Sun Jul 06 21:35:08 BST 2003  Olly Betts <olly@survex.com>
34664         * backends/quartz/btree.cc: Minor tweak.
34666 Sun Jul 06 21:34:30 BST 2003  Olly Betts <olly@survex.com>
34668         * common/utils.h: Compile fixes for mingw.
34670 Sun Jul 06 17:59:26 BST 2003  Olly Betts <olly@survex.com>
34672         * docs/scalability.html: Fixed typo.
34674 Sun Jul 06 13:02:09 BST 2003  Olly Betts <olly@survex.com>
34676         * docs/scalability.html: Fixed typo.
34678 Sun Jul 06 12:56:08 BST 2003  Olly Betts <olly@survex.com>
34680         * docs/Makefile.am,docs/index.html,docs/scalability.html: Added new
34681           document on Xapian's scalability.
34683 Sun Jul 06 12:15:34 BST 2003  Olly Betts <olly@survex.com>
34685         * backends/quartz/: Made quartz block count unsigned, which should
34686           nearly double the size of database for a given block size.
34688 Sun Jul 06 11:47:46 BST 2003  Olly Betts <olly@survex.com>
34690         * backends/quartz/: Use BLK_UNUSED rather than literal -1.
34692 Sun Jul 06 11:47:14 BST 2003  Olly Betts <olly@survex.com>
34694         * common/utils.h: Fixed last check-in to compile.
34696 Sun Jul 06 11:01:03 BST 2003  Olly Betts <olly@survex.com>
34698         * common/utils.h,tests/btreetest.cc,tests/quartztest.cc,
34699           testsuite/backendmanager.cc: Replaced system("rm -rf ...") with
34700           rmdir() function and added two ms windows implementations for
34701           Sam to try.
34703 Sat Jul 05 10:37:35 BST 2003  Olly Betts <olly@survex.com>
34705         * getopt/getopt.c: Suppress "unused variable" warnings from getopt.c.
34707 Sat Jul 05 02:21:11 BST 2003  Olly Betts <olly@survex.com>
34709         * docs/todo.xml: Updated.
34711 Sat Jul 05 02:09:06 BST 2003  Olly Betts <olly@survex.com>
34713         * configure.in,backends/quartz/btree.cc: Use pread() and pwrite() if
34714           available - this avoids one syscall per block read/write.
34716 Fri Jul 04 22:05:14 BST 2003  Olly Betts <olly@survex.com>
34718         * PLATFORMS: Added results from building 0.7.0 on my Linux dev box.
34720 Fri Jul 04 18:52:07 BST 2003  Olly Betts <olly@survex.com>
34722         * extra/Makefile.am: Distribute symboltab.h.
34724 Fri Jul 04 18:04:53 BST 2003  Olly Betts <olly@survex.com>
34726         * common/Makefile.am: Distribute documentterm.h.
34728 Fri Jul 04 15:30:28 BST 2003  Olly Betts <olly@survex.com>
34730         * configure.in: Disabled guile, tcl8, and php4 here as well as in
34731           bindings/Makefile.am.
34733 Fri Jul  4 11:27:53 2003  James Aylett  <james@tartarus.org>
34735         * bindings/Makefile.am: change commenting so mkdoc.pl doesn't
34736           choke
34738 Fri Jul  4 10:51:04 2003  James Aylett  <james@tartarus.org>
34740         * bootstrap: add missing ';;' as case pattern delimiter
34742 Thu Jul 03 23:46:14 BST 2003  Olly Betts <olly@survex.com>
34744         * bindings/Makefile.am,bindings/python/Makefile.am: Fixed to work with
34745           "make dist".
34747 Thu Jul 03 23:29:06 BST 2003  Olly Betts <olly@survex.com>
34749         * NEWS,PLATFORMS,configure.in: Version 0.7.0.
34751 Thu Jul 03 22:57:22 BST 2003  Olly Betts <olly@survex.com>
34753         * PLATFORMS: Updated (Linux GCC 2.95 and Linux to mingw cross).
34755 Thu Jul 03 22:55:54 BST 2003  Olly Betts <olly@survex.com>
34757         * extra/queryparser.yy,extra/queryparsertest.cc: Allow more than one
34758           adjacent phrase generating character.
34760 Thu Jul 03 22:12:18 BST 2003  Olly Betts <olly@survex.com>
34762         * extra/queryparser.yy,extra/queryparsertest.cc: Always ignore phrase
34763           generating characters at start and end of query.
34765 Thu Jul 03 21:02:10 BST 2003  Olly Betts <olly@survex.com>
34767         * extra/Makefile.am: Fixed for mingw compile.
34769 Thu Jul 03 19:24:50 BST 2003  Olly Betts <olly@survex.com>
34771         * buildall,docs/OMAims: Removed unwanted old files.
34773 Thu Jul 03 19:18:41 BST 2003  Olly Betts <olly@survex.com>
34775         * backends/quartz/runquartztest: Obsolete, so removed.
34777 Thu Jul 03 01:26:03 BST 2003  Olly Betts <olly@survex.com>
34779         * common/omenquireinternal.h: Fix for building with GCC 3.3.
34781 Thu Jul 03 01:02:54 BST 2003  Olly Betts <olly@survex.com>
34783         * NEWS: Updated.
34785 Wed Jul 02 22:18:07 BST 2003  Olly Betts <olly@survex.com>
34787         * backends/quartz/bcursor.cc,backends/quartz/bcursor.h:
34788           Made Bcursor::get_key(string * key) const.
34790 Wed Jul 02 21:51:43 BST 2003  Olly Betts <olly@survex.com>
34792         * backends/quartz/: Workaround for shared_level problem turns out to
34793           be arguably the better approach, so made it permanent and tidied up
34794           code.
34796 Mon Jun 23 21:39:50 BST 2003  Olly Betts <olly@survex.com>
34798         * NEWS: Updated in preparation for 0.7.0 release.
34800 Mon Jun 23 21:18:23 BST 2003  Olly Betts <olly@survex.com>
34802         * extra/omparsequery.h: Corrected include protection token comment on
34803           #endif to match that used in the #ifdef.
34805 Mon Jun 23 21:10:33 BST 2003  Olly Betts <olly@survex.com>
34807         * bootstrap: Check for Bison 1.875 which doesn't work with Xapian.
34809 Mon Jun 23 21:08:35 BST 2003  Olly Betts <olly@survex.com>
34811         * HACKING: Automake 1.7 works reliably with Xapian; CFLAGS=-Werror can
34812           now be used as we suppress the warnings from the Snowball generated
34813           C code.
34815 Mon Jun 23 16:55:54 BST 2003  Olly Betts <olly@survex.com>
34817         * api/,backends/inmemory/inmemory_database.cc,
34818           backends/inmemory/inmemory_database.h,backends/quartz/,
34819           bindings/swig/om_util_python.i,bindings/swig/xapian.i,common/,
34820           include/Makefile.am,include/xapian.h,include/om/om.h,include/xapian/,
34821           matcher/localmatch.h,matcher/phrasepostlist.h,tests/api_db.cc,
34822           tests/api_posdb.cc,tests/quartztest.cc:
34823           Xapian::Xapian::PostListIterator -> Xapian::PostingIterator;
34824           Xapian::PositionListIterator -> Xapian::PositionIterator;
34825           xapian/postlistiterator.h -> xapian/postingiterator.h;
34826           xapian/positionlistiterator.h -> xapian/positioniterator.h.
34828 Mon Jun 23 15:31:30 BST 2003  Olly Betts <olly@survex.com>
34830         * backends/database.cc,backends/inmemory/inmemory_database.h,
34831           backends/muscat36/,backends/quartz/,bindings/python/Makefile.am,
34832           bindings/swig/om_util.i,bindings/swig/omstem.i,docs/quickstart.html,
34833           docs/todo.xml,include/xapian/database.h,include/xapian/enquire.h,
34834           include/xapian/errortypes.h,tests/api_db.cc,tests/quartztest.cc,
34835           testsuite/backendmanager.cc,testsuite/textfile_indexer.cc:
34836           Xapian::OpeningError renamed to Xapian::DatabaseOpeningError.
34837         * include/om/om.h: OmOpeningError now maps to
34838           Xapian::DatabaseOpeningError.
34840 Mon Jun 23 01:44:45 BST 2003  Olly Betts <olly@survex.com>
34842         * api/,backends/inmemory/inmemory_database.cc,
34843           backends/muscat36/da_database.cc,backends/muscat36/db_database.cc,
34844           backends/net/net_database.cc,backends/net/net_termlist.cc,
34845           backends/net/net_termlist.h,backends/quartz/,bin/omprogsrv.cc,
34846           bin/quartzdump.cc,common/,include/xapian/error.h,
34847           include/xapian/errorhandler.h,matcher/emptymatch.h,net/,
34848           tests/quartztest.cc,tests/stemtest.cc,testsuite/testsuite.cc,
34849           testsuite/textfile_indexer.cc: Use '#include <...>' for headers
34850           in include/.
34852 Thu Jun 19 17:55:07 BST 2003  Olly Betts <olly@survex.com>
34854         * common/netserver.h,common/socketserver.h,matcher/localmatch.cc,
34855           matcher/multimatch.cc,net/socketserver.cc: Removed unused header
34856           inclusion; pass Stats and Xapian::Database by const reference, not
34857           value.
34859 Thu Jun 19 14:50:49 BST 2003  Olly Betts <olly@survex.com>
34861         * extra/queryparser.yy,extra/symboltab.h: Force control characters to
34862           spaces; Added note that accent normalisation is perhaps done at the
34863           wrong time...
34865 Thu Jun 19 14:40:36 BST 2003  Olly Betts <olly@survex.com>
34867         * extra/queryparsertest.cc: Added test for control characters.
34869 Thu Jun 19 14:31:12 BST 2003  Olly Betts <olly@survex.com>
34871         * extra/queryparsertest.cc: Added checks for weird whitespace in
34872           queries.
34874 Wed Jun 18 19:02:14 BST 2003  Olly Betts <olly@survex.com>
34876         * extra/queryparser.yy: Reworked parsing of boolean operators to
34877           improve error reporting.
34878         * extra/queryparsertest.cc: Added 2 more testcases and fixed to better
34879           handle tests for expected errors.
34881 Wed Jun 18 19:00:55 BST 2003  Olly Betts <olly@survex.com>
34883         * extra/queryparser.yy: Trim leading and trailing whitespace before
34884           attempting to parse the query.
34886 Wed Jun 18 17:58:56 BST 2003  Olly Betts <olly@survex.com>
34888         * extra/queryparser.yy: `using namespace Xapian;'
34890 Fri Jun 06 01:33:33 BST 2003  Olly Betts <olly@survex.com>
34892         * docs/quartzdesign.html: Commented out the section on the Lexicon,
34893           which we no longer use.
34895 Thu Jun 05 22:40:21 BST 2003  Olly Betts <olly@survex.com>
34897         * bindings/python/.cvsignore,bindings/python/Makefile.am,
34898           bindings/python/dothemake.txt,bindings/swig/om_util_python.i:
34899           Cleaned up building of python bindings by making better use of
34900           automake.
34902 Thu Jun 05 22:17:40 BST 2003  Olly Betts <olly@survex.com>
34904         * languages/Makefile.am: Reenable standard warnings apart from the
34905           -Wunused.
34907 Thu Jun 05 20:21:08 BST 2003  Olly Betts <olly@survex.com>
34909         * api/omqueryinternal.cc: Fixed a couple of problems with the new
34910           query serialisation.
34912 Thu Jun 05 17:55:21 BST 2003  Olly Betts <olly@survex.com>
34914         * HACKING,configure.in: Flex is no longer used, so removed configure
34915           tests and note in HACKING.
34917 Thu Jun 05 17:53:30 BST 2003  Olly Betts <olly@survex.com>
34919         * tests/remotetest.cc: In test netexpand1, use TEST() rather than
34920           Assert() so that the check is made in non-debug builds too.
34922 Thu Jun 05 17:52:17 BST 2003  Olly Betts <olly@survex.com>
34924         * api/omqueryinternal.cc,common/socketcommon.h,docs/todo.xml,
34925           include/xapian/query.h,net/: Reworked query serialisation so that
34926           the code is now all in api/omqueryinternal.cc.  Serialisation is
34927           now rather more compact and no longer relies on flex for parsing.
34929 Thu Jun 05 17:45:00 BST 2003  Olly Betts <olly@survex.com>
34931         * bin/Makefile.am: omprogsrv depends on libtest.la, so it need to be
34932           in check_PROGRAMS.
34934 Thu Jun 05 17:09:10 BST 2003  Olly Betts <olly@survex.com>
34936         * Makefile.am: Moved bindings after extra in SUBDIRS - the bindings
34937           wrap Xapian::QueryParser so they need to be built after it.
34939 Thu Jun 05 01:28:01 BST 2003  Olly Betts <olly@survex.com>
34941         * bindings/python/Makefile.am: Use $(SWIG) (as detected by configure).
34943 Thu Jun 05 00:46:16 BST 2003  Olly Betts <olly@survex.com>
34945         * configure.in,bindings/Makefile.am,bindings/python/Makefile.am:
34946           Check for python and find the correct paths for building python
34947           bindings; Added dependencies for building _xapian.so.
34949 Wed Jun  4 17:19:37 2003  James Aylett  <james@tartarus.org>
34951         * configure.in, Makefile.am, bindings: build system will build
34952           bindings as part of normal build process.  No longer build
34953           Perl or Java bindings; for Perl, use Search::Xapian; Java will
34954           be replaced with SWIG-based bindings.
34956         * bindings: bindings now use Xapian:: namespace names rather than
34957           the old Om* ones. Almost all of the API should now be wrapped.
34959 Wed Jun 04 02:52:38 BST 2003  Olly Betts <olly@survex.com>
34961         * docs/overview.html: Added start of "Design Principles" section.
34962         * docs/todo.xml: Added a couple more items.
34964 Wed Jun 04 02:51:56 BST 2003  Olly Betts <olly@survex.com>
34966         * Makefile.am: Build testsuite later - it now doesn't need to be built
34967           until just before tests.
34969 Wed Jun 04 02:43:08 BST 2003  Olly Betts <olly@survex.com>
34971         * backends/muscat36/: Split up spec into comments in the appropriate
34972           header files; fixed to build after recent Om -> Xapian changes.
34974 Wed Jun 04 01:56:46 BST 2003  Olly Betts <olly@survex.com>
34976         * HACKING: Bison 1.75 and 1.875a both checked with parsequery.yy
34977           - no problems found.
34979 Mon Jun 02 20:14:22 BST 2003  Olly Betts <olly@survex.com>
34981         * ChangeLog.0: Fixed 2 typos.
34983 Mon Jun 02 20:09:01 BST 2003  Olly Betts <olly@survex.com>
34985         * NEWS: Updated in preparation for 0.7.0 release.
34987 Mon Jun 02 16:25:18 BST 2003  Olly Betts <olly@survex.com>
34989         * configure.in: Fix m4 quoting so that MINOR_VERSION is set correctly.
34991 Mon Jun  2 15:22:30 2003  James Aylett  <james@tartarus.org>
34993         * bindings/swig/xapian.i: move QueryParser wrapping to use
34994           the new namespace location, and fix include so it can work
34995           out of the build directory rather than just the installed
34996           library
34998 Mon Jun 02 14:15:14 BST 2003  Olly Betts <olly@survex.com>
35000         * Makefile.am,configure.in,bindings/Makefile.am,docs/todo.xml:
35001           Added --enable-bindings to configure - if this is specified and
35002           swig is detected, try to build the language bindings.
35004 Mon Jun 02 12:46:18 BST 2003  Olly Betts <olly@survex.com>
35006         * backends/database.cc: Fixed parsing of port number in remote stub
35007           databases.
35009 Sat May 31 15:03:47 BST 2003  James Aylett  <james@tartarus.org>
35011         * bindings/swig: update so can build Python bindings against
35012           latest Xapian; untested, and other languages are likely to
35013           fail
35015 Fri May 30 02:59:48 BST 2003  Olly Betts <olly@survex.com>
35017         * extra/queryparser.yy,extra/queryparsertest.cc: Embedded '.' is
35018           now a phrase maker; Ignore `""' in query; Ignore ')' at start
35019           of query.
35021 Fri May 30 01:22:49 BST 2003  Olly Betts <olly@survex.com>
35023         * extra/queryparsertest.cc: Added another 405 queries which fail to
35024           parse (courtesy of Arjen van der Meijden).
35026 Thu May 29 19:08:28 BST 2003  Olly Betts <olly@survex.com>
35028         * docs/todo.xml,extra/queryparsertest.cc: Extracted two more
35029           queryparser testcases which need fixing from the old todo list.
35031 Thu May 29 17:14:04 BST 2003  Olly Betts <olly@survex.com>
35033         * extra/queryparser.yy,extra/queryparsertest.cc: A phrasemaker isn't
35034           a phrasemaker unless it's preceded by an alphanumeric, "+", or "-";
35035           If a single term is in (), ignore the ().
35037 Thu May 29 16:45:39 BST 2003  Olly Betts <olly@survex.com>
35039         * extra/queryparser.yy,extra/queryparsertest.cc: Improved handling
35040           of various odd queries encountered in real life applications.
35042 Thu May 29 01:50:51 BST 2003  Olly Betts <olly@survex.com>
35044         * docs/todo.xml: Updated more.
35046 Thu May 29 01:26:50 BST 2003  Olly Betts <olly@survex.com>
35048         * api/,backends/database.cc,backends/inmemory/,backends/multi/,
35049           backends/muscat36/,backends/net/,backends/quartz/,common/,
35050           docs/overview.html,docs/quickstart.html,
35051           docs/quickstartexpand.cc.html,extra/queryparser.yy,include/om/om.h,
35052           include/xapian/,matcher/,net/,tests/api_db.cc,tests/api_posdb.cc,
35053           tests/quartztest.cc,testsuite/: Converted remaining om_xxx types
35054           to Xapian::xxx.
35056 Wed May 28 23:06:18 BST 2003  Olly Betts <olly@survex.com>
35058         * docs/todo.xml: Updated.
35060 Wed May 28 22:59:17 BST 2003  Olly Betts <olly@survex.com>
35062         * tests/api_db.cc: Spelling correction: accross -> across.
35064 Wed May 28 20:24:32 BST 2003  Olly Betts <olly@survex.com>
35066         * extra/: OmQueryParser -> Xapian::QueryParser, etc.
35068 Wed May 28 20:03:48 BST 2003  Olly Betts <olly@survex.com>
35070         * api/omdocument.cc: Removed include of defunct header
35071           modifieddocument.h.
35073 Wed May 28 20:00:56 BST 2003  Olly Betts <olly@survex.com>
35075         * api/maptermlist.h,api/omdocument.cc,api/omvalueiterator.cc,
35076           backends/inmemory/inmemory_document.cc,
35077           backends/inmemory/inmemory_document.h,backends/muscat36/,
35078           backends/net/net_document.cc,backends/net/net_document.h,
35079           backends/quartz/quartz_document.cc,backends/quartz/quartz_document.h,
35080           common/Makefile.am,common/document.h,common/modifieddocument.h,
35081           include/xapian/document.h,tests/api_db.cc: Fixed bug in refactored
35082           Xapian::Document when modifying a copy.  Added regression test.
35084 Wed May 28 19:23:26 BST 2003  Olly Betts <olly@survex.com>
35086         * common/omenquireinternal.h,include/xapian/database.h,
35087           include/xapian/enquire.h,include/xapian/query.h: Where possible,
35088           declare classes rather than including headers (in public headers).
35090 Wed May 28 17:32:14 BST 2003  Olly Betts <olly@survex.com>
35092         * include/xapian/document.h: Just declare "class TermIterator;" rather
35093           than including <xapian/termiterator.h>.
35095 Tue May 27 16:59:34 BST 2003  Olly Betts <olly@survex.com>
35097         * common/progserver.h,common/socketserver.h,net/socketserver.cc:
35098           Reduced needless header inclusion.
35100 Tue May 27 16:53:40 BST 2003  Olly Betts <olly@survex.com>
35102         * bin/omprogsrv.cc,tests/api_db.cc: Use variable name "dbs" in
35103           preference to "dbgrp".  OmDatabaseGroup hasn't existed for
35104           years!
35106 Tue May 27 16:51:30 BST 2003  Olly Betts <olly@survex.com>
35108         * Makefile.am: Fixed typo: "bin" should be "net" in remote_subdirs.
35110 Tue May 27 02:43:32 BST 2003  Olly Betts <olly@survex.com>
35112         * backends/quartz/Makefile.am: Removed -I referencing testsuite
35113           directory.
35115 Tue May 27 02:39:43 BST 2003  Olly Betts <olly@survex.com>
35117         * backends/quartz/,docs/tests.html,tests/: Moved quartztest and
35118           btreetest to tests/ directory.
35120 Tue May 27 02:03:07 BST 2003  Olly Betts <olly@survex.com>
35122         * Makefile.am,configure.in,xapian.spec.in,backends/quartz/,bin/,
35123           docs/remote.html,netprogs/,tests/api_db.cc,tests/remotetest.cc,
35124           testsuite/backendmanager.cc,testsuite/testsuite.cc: Sorted out
35125           the source tree structure so that programs which aren't tests which
35126           were previously built by "make check" are now be built by "make".
35128 Tue May 27 01:01:40 BST 2003  Olly Betts <olly@survex.com>
35130         * autoconf/dir_contents,backends/dir_contents,
35131           backends/inmemory/dir_contents,backends/multi/dir_contents,
35132           backends/muscat36/dir_contents,backends/net/dir_contents,
35133           backends/quartz/dir_contents,bindings/dir_contents,
35134           common/dir_contents,docs/dir_contents,include/om/dir_contents,
35135           include/xapian/dir_contents,include/dir_contents,
35136           indexer/dir_contents,indexer/indexgraph/dir_contents,
35137           languages/dir_contents,m4/dir_contents,tests/dir_contents:
35138           Updated all the dir_contents files - many were out-of-date.
35140 Tue May 27 00:42:54 BST 2003  Olly Betts <olly@survex.com>
35142         * Makefile.am: Filter any .la files out of dependency_libs.
35144 Tue May 27 00:11:18 BST 2003  Olly Betts <olly@survex.com>
35146         * netprogs/.cvsignore,netprogs/Makefile.am,netprogs/nettest.cc,
35147           tests/.cvsignore,tests/Makefile.am,tests/remotetest.cc:
35148           netprogs/nettest -> tests/remotetest.
35150 Mon May 26 23:49:49 BST 2003  Olly Betts <olly@survex.com>
35152         * netprogs/nettest.cc: Removed test tcpclient1 - the functionality it
35153           tests is also tested by tcpmatch1, and it introduces dependencies on
35154           internal headers.
35156 Mon May 26 22:00:01 BST 2003  Olly Betts <olly@survex.com>
35158         * backends/quartz/quartz_table_manager.cc: Give a better error message
35159           if asked to open a pre-0.6 Quartz database.
35161 Mon May 26 20:43:21 BST 2003  Olly Betts <olly@survex.com>
35163         * HACKING,Makefile.am,backends/Makefile.am,docs/mkdoc.pl,
35164           net/Makefile.am: Fixed to never leave partial files in place of the
35165           expected output if a build is interrupted.
35167 Mon May 26 16:50:59 BST 2003  Olly Betts <olly@survex.com>
35169         * HACKING: Added note adapted from an old email noting why compile-time
35170           options are generally best avoided.
35172 Mon May 26 12:03:29 BST 2003  Olly Betts <olly@survex.com>
35174         * testsuite/backendmanager.cc,testsuite/textfile_indexer.cc: Corrected
35175           odd uses of std::string::erase() (instead of `str = str.erase(n, m)'
35176           just use `str.erase(n,m)').
35178 Sun May 25 22:59:44 BST 2003  Olly Betts <olly@survex.com>
35180         * PLATFORMS: Updated.
35182 Sun May 25 22:58:28 BST 2003  Olly Betts <olly@survex.com>
35184         * languages/Makefile.am: Suppress "unused" warnings in Snowball
35185           generated C code.
35187 Sun May 25 21:43:34 BST 2003  Olly Betts <olly@survex.com>
35189         * api/omtermlistiterator.cc: Removed iostream.h include left over from
35190           debugging.
35192 Sun May 25 12:27:11 BST 2003  Olly Betts <olly@survex.com>
35194         * docs/,extra/omparsequery.h,extra/parsequery.yy,include/Makefile.am,
35195           include/xapian.h,include/om/om.h,tests/,testsuite/backendmanager.cc,
35196           testsuite/backendmanager.h,testsuite/testutils.h: Created xapian.h
35197           header and changed everything to use it.
35199 Sat May 24 23:35:46 BST 2003  Olly Betts <olly@survex.com>
35201         * api/,backends/inmemory/inmemory_database.cc,
35202           backends/inmemory/inmemory_document.h,
35203           backends/quartz/quartz_database.cc,backends/quartz/quartztest.cc,
35204           common/,include/Makefile.am,include/om/om.h,
35205           include/om/omvalueiterator.h,include/xapian/,
35206           testsuite/backendmanager.cc: OmValueIterator -> Xapian::ValueIterator
35207           etc.
35209 Fri May 23 15:32:29 BST 2003  Olly Betts <olly@survex.com>
35211         * api/,backends/database.cc,backends/inmemory/,backends/muscat36/,
35212           backends/net/net_database.cc,backends/net/net_document.cc,
35213           backends/net/net_document.h,backends/quartz/,common/,docs/,
35214           include/Makefile.am,include/om/om.h,include/om/omdocument.h,
35215           include/om/omvalueiterator.h,include/xapian/,indexer/omindexer.h,
35216           matcher/,net/,netprogs/nettest.cc,tests/api_db.cc,tests/api_posdb.cc,
35217           tests/internaltest.cc,testsuite/: OmDocument -> Xapian::Document, etc.
35218         * include/Makefile.am: Fixed library headers to install in xapian and
35219           om subdirectories as they should.
35221 Fri May 23 15:31:05 BST 2003  Olly Betts <olly@survex.com>
35223         * backends/quartz/btree.cc: Consistently use int4 for block number -
35224           it really should be unsigned and this is a first step.
35226 Mon May 19 13:20:46 BST 2003  Olly Betts <olly@survex.com>
35228         * configure.in: Create include/xapian if it doesn't exist so that
35229           VPATH builds work.
35231 Mon May 19 13:17:16 BST 2003  Olly Betts <olly@survex.com>
35233         * Makefile.am: Disabled exported symbol regex for now.
35235 Tue May 13 05:08:54 BST 2003  Olly Betts <olly@survex.com>
35237         * api/,backends/database.cc,backends/dir_contents,backends/inmemory/,
35238           backends/multi/,backends/muscat36/,backends/net/,backends/quartz/,
35239           common/,docs/,extra/omparsequery.h,include/,matcher/,net/,netprogs/,
35240           tests/: OmDatabase -> Xapian::Database, etc.
35242 Tue May 13 05:07:41 BST 2003  Olly Betts <olly@survex.com>
35244         * NEWS: Corrected spelling: "maintainance" to "maintenance".
35246 Tue May 13 00:40:47 BST 2003  Olly Betts <olly@survex.com>
35248         * ChangeLog.0,NEWS,backends/inmemory/inmemory_database.h,
35249           backends/muscat36/da_database.h,backends/muscat36/db_database.h,
35250           backends/quartz/quartz_postlist.h,
35251           indexer/indexgraph/omstopwordnode.cc: Spelling correction:
35252           "occurence" should be "occurrence".
35254 Mon May 12 22:39:27 BST 2003  Olly Betts <olly@survex.com>
35256         * api/ompositionlistiteratorinternal.h,
35257           include/om/ompositionlistiterator.h: Removed unused files.
35259 Mon May 12 20:51:03 BST 2003  Olly Betts <olly@survex.com>
35261         * api/omdatabaseinternal.cc,backends/database.cc: Moved database
35262           factory functions from api to backends.
35264 Fri May 09 04:02:29 BST 2003  Olly Betts <olly@survex.com>
35266         * common/expandweight.h: Removed cruft.
35268 Fri May 09 03:50:36 BST 2003  Olly Betts <olly@survex.com>
35270         * common/rset.h: Removed unused RSetI ctor variant.
35272 Fri May 09 02:00:03 BST 2003  Olly Betts <olly@survex.com>
35274         * api/omenquire.cc,common/,docs/overview.html,include/om/om.h,
35275           include/xapian/enquire.h,include/xapian/output.h,matcher/,
35276           net/socketclient.cc,net/socketcommon.cc,net/socketserver.cc,
35277           netprogs/nettest.cc,tests/api_db.cc: OmRSet -> Xapian::RSet.
35279 Fri May 09 01:06:32 BST 2003  Olly Betts <olly@survex.com>
35281         * api/omenquire.cc: Fixed MSet::Internal::get_description() to include
35282           class name.
35284 Fri May 09 01:04:12 BST 2003  Olly Betts <olly@survex.com>
35286         * common/rset.h,matcher/expand.cc,matcher/rset.cc: RSetI now uses
35287           set<Xapian::docid> (as OmRSet::Internal) rather than
35288           vector<RSetItem>.
35290 Fri May 09 00:41:20 BST 2003  Olly Betts <olly@survex.com>
35292         * api/omenquire.cc,common/,docs/quickstartexpand.cc.html,matcher/:
35293           RSet internal class renamed to RSetI to aid upcoming OmRSet ->
35294           Xapian::RSet change.  RSetI looks like it can be eliminated
35295           later.
35297 Thu May 08 23:54:44 BST 2003  Olly Betts <olly@survex.com>
35299         * tests/: Removed make_dbgrp() helper function from apitest as it
35300           makes the test code less clear without making it easier to write.
35302 Thu May 08 01:24:53 BST 2003  Olly Betts <olly@survex.com>
35304         * api/ompostlistiterator.cc,docs/overview.html,tests/api_db.cc:
35305           Fixed OmWeight and OmMatchDecider in comments, docs, and
35306           testsuite.
35308 Thu May 08 01:16:30 BST 2003  Olly Betts <olly@survex.com>
35310         * api/omenquire.cc,backends/multi/multi_postlist.h,common/,
35311           include/om/om.h,include/xapian/enquire.h,matcher/,
35312           net/socketclient.cc,net/socketserver.cc: OmMatchDecider ->
35313           Xapian::MatchDecider; OmWeight -> Xapian::Weight; BoolWeight,
35314           TradWeight, BM25Weight -> Xapian::.
35316 Wed May 07 23:06:47 BST 2003  Olly Betts <olly@survex.com>
35318         * backends/quartz/btreetest.cc,backends/quartz/quartztest.cc,
35319           configure.in,netprogs/nettest.cc,tests/,testsuite/: Minor overhaul
35320           of testsuite.
35322 Wed May 07 17:54:34 BST 2003  Olly Betts <olly@survex.com>
35324         * backends/,common/document.h,matcher/Makefile.am,matcher/document.cc:
35325           Removed do_ wrappers for Document methods get_value(),
35326           get_all_values() and get_data().  The wrappers used to perform
35327           thread locking, but now they're just pointless overhead.
35329 Wed May 07 17:24:00 BST 2003  Olly Betts <olly@survex.com>
35331         * HACKING: Started section of API structure.
35333 Wed May 07 02:16:03 BST 2003  Olly Betts <olly@survex.com>
35335         * api/omenquire.cc,common/expand.h,common/omenquireinternal.h,
35336           common/omstringstream.h,docs/quickstart.html,include/om/om.h,
35337           include/xapian/enquire.h,include/xapian/output.h,matcher/expand.cc,
35338           matcher/multimatch.cc,net/socketcommon.cc,netprogs/nettest.cc,
35339           tests/api_db.cc,testsuite/testutils.cc: OmMSet -> Xapian::MSet,
35340           similarly for OmMSetIterator, OmESet, and OmESetIterator.
35342 Tue May 06 19:31:42 BST 2003  Olly Betts <olly@survex.com>
35344         * include/xapian/query.h: New file I failed to checkin on Friday.
35346 Tue May 06 14:16:41 BST 2003  Olly Betts <olly@survex.com>
35348         * HACKING,configure.in,tests/.cvsignore,tests/Makefile.am,
35349           tests/runtest.in,testsuite/testsuite.cc: Sorted out autodetection
35350           of valgrind for running testsuite.
35351         * HACKING: Added note about how to run gdb on dynamically linked
35352           binaries built using libtool.
35353         * HACKING: Recommend libtool 1.5 as in 1.4.2 libtool --mode=execute
35354           doesn't seem to handle programs with arguments.
35356 Tue May 06 00:25:03 BST 2003  Olly Betts <olly@survex.com>
35358         * PLATFORMS: Updated.
35360 Fri May 02 16:58:15 BST 2003  Olly Betts <olly@survex.com>
35362         * configure.in: Improved check that LEX is flex - it will now accept
35363           "flex" with a path and/or prefix.
35365 Fri May 02 16:12:46 BST 2003  Olly Betts <olly@survex.com>
35367         * api/,common/,include/,matcher/,net/,netprogs/nettest.cc,
35368           netprogs/omtcpsrv.cc,tests/api_db.cc,tests/api_posdb.cc,
35369           testsuite/testutils.cc,testsuite/testutils.h: OmEnquire ->
35370           Xapian::Enquire, OmQuery -> Xapian::Query, etc.
35372 Fri May 02 03:14:28 BST 2003  Olly Betts <olly@survex.com>
35374         * tests/internaltest.cc: Reenabled tests for leak checking and fixed
35375           them up to work with valgrind.
35377 Fri May 02 02:14:28 BST 2003  Olly Betts <olly@survex.com>
35379         * testsuite/testsuite.cc,testsuite/testsuite.h: If a testsuite program
35380           is run using "valgrind --logfile-fd=255 ./footest" then the harness
35381           will show valgrind's output for tests which fail because valgrind
35382           spotted errors or leaks (untested under valgrind).
35384 Thu May 01 21:25:01 BST 2003  Olly Betts <olly@survex.com>
35386         * api/omenquire.cc,api/omquery.cc,api/omqueryinternal.cc,common/,
35387           docs/overview.html,docs/quickstart.html,extra/omparsequery.h,
35388           extra/parsequery.yy,extra/parsequerytest.cc,include/,matcher/,
35389           net/,netprogs/nettest.cc,tests/api_db.cc,tests/api_nodb.cc,
35390           tests/api_posdb.cc: OmQuery -> Xapian::Query, etc.  For now
35391           I've had to expose Xapian::Query::Internal in xapian/query.h
35392           which isn't ideal.
35394 Wed Apr 30 20:37:27 BST 2003  Olly Betts <olly@survex.com>
35396         * api/omenquire.cc,common/omenquireinternal.h,include/:
35397           typedefs om_* -> Xapian::*, but not changed all internal uses yet.
35399 Wed Apr 30 03:51:52 BST 2003  Olly Betts <olly@survex.com>
35401         * api/,backends/,common/,extra/omparsequery.h,extra/parsequery.yy,
35402           include/,matcher/localmatch.h,matcher/orpostlist.h,tests/api_db.cc:
35403           OmPostListIterator -> Xapian::PostListIterator, etc.
35405 Wed Apr 30 02:13:31 BST 2003  Olly Betts <olly@survex.com>
35407         * docs/matcherdesign.html,include/om/omenquire.h: Merged docs
35408           discussing OmMSetIterator::get_collapse_count() into the doxygen
35409           documentation comments - they're docs aimed at the API user so
35410           really don't belong in the internal matcher design docs.
35412 Wed Apr 30 01:08:39 BST 2003  Olly Betts <olly@survex.com>
35414         * .cvsignore: Added config.guess.
35416 Tue Apr 29 21:08:40 BST 2003  Olly Betts <olly@survex.com>
35418         * include/om/om.h,include/xapian/base.h,include/xapian/error.h,
35419           include/xapian/errorhandler.h,include/xapian/expanddecider.h,
35420           include/xapian/positionlistiterator.h,include/xapian/stem.h,
35421           include/xapian/termiterator.h: OM_HGUARD_* -> XAPIAN_INCLUDED_*.
35423 Tue Apr 29 20:37:01 BST 2003  Olly Betts <olly@survex.com>
35425         * api/,backends/,common/,include/,indexer/omnodeinstanceiterator.h,
35426           indexer/ompaditerator.h,net/readquery.h,testsuite/indexer.h:
35427           om/omoutput.h -> xapian/output.h; om/omtypes.h -> xapian/types.h.
35429 Tue Apr 29 18:28:27 BST 2003  Olly Betts <olly@survex.com>
35431         * api/,backends/,common/,include/,matcher/,net/socketserver.cc,tests/,
35432           testsuite/backendmanager.cc,testsuite/testsuite.cc: OmTermIterator
35433           -> Xapian::TermIterator, etc.
35435 Tue Apr 29 17:39:34 BST 2003  Olly Betts <olly@survex.com>
35437         * common/omdebug.cc: Setting XAPIAN_DEBUG_LOG caused an exception
35438           (with GCC 3.0 at least) unless the value contained %% - fixed.
35440 Tue Apr 29 14:29:36 BST 2003  Olly Betts <olly@survex.com>
35442         * api/ompositionlistiterator.cc: Fixed to compile in debug mode.
35444 Tue Apr 29 01:06:02 BST 2003  Olly Betts <olly@survex.com>
35446         * xapian.spec.in: Removed %changelog - it hasn't been reliably updated
35447           and only really makes sense when the packaging is done by a third
35448           party anyway.
35450 Tue Apr 29 01:03:20 BST 2003  Fabrice Colin
35452         * xapian.spec.in: Fixed packaging of docs.
35454 Tue Apr 29 00:33:21 BST 2003  Olly Betts <olly@survex.com>
35456         * HACKING,testsuite/testsuite.cc,testsuite/testsuite.h: valgrind is
35457           now mostly hooked into the testsuite.
35458         * HACKING: Bison 1.875 doesn't work but Bison 1.875a probably does;
35459           suggest CXXFLAGS=-Werror, not CFLAGS.
35461 Tue Apr 29 00:14:00 BST 2003  Olly Betts <olly@survex.com>
35463         * INSTALL: Updated.
35465 Wed Apr 23 14:31:51 BST 2003  Olly Betts <olly@survex.com>
35467         * api/omtermlistiterator.cc,api/omtermlistiteratorinternal.h,
35468           api/omvalueiteratorinternal.h,backends/inmemory/inmemory_database.cc,
35469           backends/inmemory/inmemory_positionlist.cc,
35470           common/inmemory_positionlist.h: Added InMemoryPositionList ctor
35471           which takes the positions data to avoid needing to construct and
35472           immediately call set_data().
35474 Wed Apr 23 14:14:34 BST 2003  Olly Betts <olly@survex.com>
35476         * api/,backends/,common/,include/,matcher/: OmPositionListIterator
35477           -> Xapian::PositionListIterator, etc.
35479 Wed Apr 23 13:47:49 BST 2003  Olly Betts <olly@survex.com>
35481         * xapian.spec.in: Minor tweaks.
35483 Sun Apr 20 22:55:04 BST 2003  Olly Betts <olly@survex.com>
35485         * extra/omparsequery.h,include/xapian/stem.h,tests/api_db.cc,
35486           tests/api_nodb.cc,tests/api_posdb.cc,testsuite/backendmanager.cc:
35487           OmStem -> Xapian::Stem; OmExpandDecider -> Xapian::ExpandDecider.
35489 Sun Apr 20 22:52:42 BST 2003  Olly Betts <olly@survex.com>
35491         * configure.in,api/omenquire.cc,common/expand.h,
35492           common/omenquireinternal.h,docs/overview.html,include/,
35493           matcher/expand.cc,tests/api_db.cc: OmExpandDecider ->
35494           Xapian::ExpandDecider, etc.
35496 Sun Apr 20 22:42:32 BST 2003  Olly Betts <olly@survex.com>
35498         * PLATFORMS,api/,backends/,common/,docs/,include/,matcher/,net/,
35499           netprogs/,tests/,testsuite/: OmError -> Xapian::Error, etc.
35501 Fri Apr 18 22:40:31 BST 2003  Sam Liddicott <sam@liddicott.com>
35503         * matcher/multimatch.cc: Fixed so that it updates the OmMSetItem in
35504           the MSet with the collapse_count from the OmMSetItem twin in
35505           collapse_tab or we lose collapse_count if newer collapsing hits are
35506           less relevant than the hits they collapse over.  I think we need
35507           collapse_tab maybe to keep a reference to the item in the mset?  But
35508           this works for now.
35509         * xapian.spec.in: Fixed to also install include/xapian stuff
35511 Fri Apr 18 19:17:56 BST 2003  Olly Betts <olly@survex.com>
35513         * configure.in,include/Makefile.am,include/om/.cvsignore,
35514           include/om/Makefile.am,include/om/om.h,include/om/om.h.in,
35515           include/xapian/.cvsignore,include/xapian/Makefile.am,
35516           include/xapian/dir_contents,include/xapian/version.h.in:
35517           C++ ABI version checking is now done by xapian/version.h.
35519 Fri Apr 18 17:57:21 BST 2003  Olly Betts <olly@survex.com>
35521         * configure.in,api/omstem.cc,include/Makefile.am,include/om/om.h.in,
35522           include/om/omstem.h,include/xapian/.cvsignore,
35523           include/xapian/Makefile.am,include/xapian/base.h,
35524           include/xapian/stem.h: Reworked OmStem to use reference counted
35525           internals; renamed OmStem to Xapian::Stem and added a #define for
35526           compatibility with existing code.
35528 Fri Apr 18 17:02:56 BST 2003  Olly Betts <olly@survex.com>
35530         * api/,backends/,common/,docs/overview.html,docs/quickstart.html,
35531           docs/quickstartexpand.cc.html,extra/,include/om/,matcher/,net/,
35532           tests/,testsuite/: Use std::string instead of typedef-ing it as
35533           om_termname.  The typedef doesn't really buy us anything.  Keep
35534           a typedef for compatibility with existing code for now.
35536 Fri Apr 18 16:12:32 BST 2003  Olly Betts <olly@survex.com>
35538         * PLATFORMS: GCC 3.2.2 on Redhat 7.1 works with CXXFLAGS=-Werror
35540 Thu Apr 10 20:05:27 BST 2003  Olly Betts <olly@survex.com>
35542         * common/Makefile.am,common/indexer.h,testsuite/Makefile.am,
35543           testsuite/indexer.h: Moved indexer.h from common to testsuite
35544           and altered it to use iosfwd instead of iostream and to
35545           declare OmDocument as a class instead of include omdocument.h.
35547 Thu Apr 10 18:55:55 BST 2003  Olly Betts <olly@survex.com>
35549         * xapian-config.nodep.in: Removed --prefix and --exec-prefix - you
35550           can't reliably install Xapian with a different prefix to the one
35551           it was configured with, yet these options give the impression you
35552           can.
35554 Thu Apr 10 18:53:53 BST 2003  Olly Betts <olly@survex.com>
35556         * .cvsignore: Added config.sub.
35558 Thu Apr 10 02:41:50 BST 2003  Olly Betts <olly@survex.com>
35560         * NEWS,configure.in: Updated for 0.6.5 release.
35562 Thu Apr 10 02:29:12 BST 2003  Olly Betts <olly@survex.com>
35564         * docs/doxygen_api_footer.html_tmpl,docs/doxygen_full_footer.html_tmpl,
35565           docs/overview.html: Use http://www.doxygen.org/ as URL for doxygen.
35566         * docs/overview.html: Fixed bad link to our own website!
35568 Thu Apr 10 02:12:00 BST 2003  Olly Betts <olly@survex.com>
35570         * Makefile.am,backends/Makefile.am,backends/net/.cvsignore,
35571           backends/net/Makefile.am,netprogs/.cvsignore: Renamed libnetdb.la
35572           to libremote.la, and LIB_REMOTE1 to LIBNET_LA.
35574 Thu Apr 10 02:08:24 BST 2003  Olly Betts <olly@survex.com>
35576         * PLATFORMS: Updated mingw notes to reflect the change to
35577           automatically disable the remote backend when fork() isn't
35578           available.
35580 Thu Apr 10 01:56:34 BST 2003  Olly Betts <olly@survex.com>
35582         * docs/mkdoc.pl: Fixed to only look at directories listed in
35583           DIST_SUBDIRS.
35585 Thu Apr 10 00:23:28 BST 2003  Olly Betts <olly@survex.com>
35587         * configure.in: Automatically disable the remote backend if we don't
35588           have fork() since the remote backend requires it in several places;
35589           AM_CONDITIONAL ENABLE_SHARED isn't used anywhere so commented it
35590           out.
35592 Wed Apr 09 22:48:20 BST 2003  Olly Betts <olly@survex.com>
35594         * NEWS: Updated with recent changes.
35596 Wed Apr 09 22:43:31 BST 2003  Olly Betts <olly@survex.com>
35598         * docs/remote_protocol.html: Talk about Server/Client rather than
35599           ProgServer/ProgClient; reworked first paragraph.
35601 Wed Apr 09 13:23:05 BST 2003  Olly Betts <olly@survex.com>
35603         * docs/Makefile.am: Install docs in /usr/share/doc/xapian-core to be
35604           FHS compliant.
35605         * xapian.spec.in: Package quartzcheck and quartzcompact too; sorted
35606           out docs so they all install in the right place.
35608 Wed Apr 09 01:16:11 BST 2003  Olly Betts <olly@survex.com>
35610         * configure.in,backends/quartz/quartz_log.cc,
35611           backends/quartz/quartz_table_manager.cc,common/omdebug.cc,
35612           common/omdebug.h: Don't use HAVE_GETPID - if it's not set we assume
35613           GetCurrentProcessId() works, so it's cleaner to test with
35614           #ifdef WIN32 instead.
35616 Tue Apr 08 19:56:57 BST 2003  Olly Betts <olly@survex.com>
35618         * PLATFORMS: Updated with the results of many test builds.
35620 Tue Apr 08 19:55:15 BST 2003  Olly Betts <olly@survex.com>
35622         * configure.in,backends/quartz/Makefile.am,backends/quartz/btree.cc,
35623           netprogs/nettest.cc,common/getopt.h,common/omtime.h,common/utils.cc,
35624           common/utils.h,tests/Makefile.am,tests/api_db.cc: Now builds with
35625           Linux to mingw cross-compiler.
35626         * tests/Makefile.am: don't include findheaders.pl in the tarball -
35627           it's no longer used.
35628         * tests/internaltest.cc: removed "#include <dlfcn.h>" and disabled
35629           code which used to use it.
35630         * testsuite/backendmanager.cc,testsuite/backendmanager.h: fixed to
35631           work if any backends are disabled.
35633 Tue Apr 08 16:09:11 BST 2003  Olly Betts <olly@survex.com>
35635         * backends/quartz/btree.cc,backends/quartz/quartz_log.cc,
35636           backends/quartz/quartz_table_manager.cc,testsuite/testsuite.cc:
35637           Some fixes for building with Linux to mingw cross-compiler.
35639 Tue Apr 08 02:26:51 BST 2003  Olly Betts <olly@survex.com>
35641         * backends/quartz/btreetest.cc: If we don't have <sstream> and so are
35642           using our own stringstream implementation, we can't pass it as an
35643           ostream reference so BtreeCheck::check() can't be run in btreetest.
35644           This is only an issue on old compilers (for GCC <= 2.95.2 it seems)
35645           so just disable the checking in that case - it's probably not worth
35646           the effort of trying to make our stringstream a subclass of ostream.
35648 Tue Apr 08 01:20:36 BST 2003  Olly Betts <olly@survex.com>
35650         * testsuite/testsuite.cc: Updated unfinished hooks to use valgrind in
35651           the test harness.
35653 Fri Apr 04 03:12:27 BST 2003  Olly Betts <olly@survex.com>
35655         * api/omenquire.cc,api/omstem.cc,common/omdebug.cc: Fixed to compile
35656           when configure-d with --enable-debug-verbose --enable-debug=full.
35658 Fri Apr 04 03:10:53 BST 2003  Olly Betts <olly@survex.com>
35660         * common/omstringstream.h: Removed unused code for writing
35661           vector<string> to our own implementation of om_ostringstream.
35663 Fri Apr 04 03:08:35 BST 2003  Olly Betts <olly@survex.com>
35665         * api/ompostlistiterator.cc: Use "using namespace std;"; replaced
35666           gratuitous use of om_ostringstream.
35668 Fri Apr 04 03:07:05 BST 2003  Olly Betts <olly@survex.com>
35670         * tests/api_nodb.cc: Use "using namespace std;"; removed stray cout
35671           debug line.
35673 Wed Apr 02 16:54:50 BST 2003  Olly Betts <olly@survex.com>
35675         * tests/internaltest.cc: More Sun C++ fixes.
35676         * PLATFORMS: Updated.
35678 Wed Apr 02 16:39:48 BST 2003  Olly Betts <olly@survex.com>
35680         * tests/api_db.cc,net/tcpserver.cc,common/tcpserver.h: More Sun C++
35681           fettling.
35683 Wed Apr 02 15:42:54 BST 2003  Olly Betts <olly@survex.com>
35685         * matcher/emptymatch.h,tests/api_db.cc: More fixes for Sun C++.
35687 Wed Apr 02 15:13:58 BST 2003  Olly Betts <olly@survex.com>
35689         * api/omenquire.cc,api/omqueryinternal.cc,
35690           backends/inmemory/inmemory_database.h,common/document.h,
35691           common/netclient.h,common/netserver.h,common/networkstats.h,
35692           common/omlinebuf.h,common/stats.h,include/om/omerror.h,
35693           include/om/omerrorhandler.h,indexer/indexgraph/nodetest.cc,
35694           indexer/indexgraph/omindexerbuilder.cc,
35695           indexer/indexgraph/omindexerinternal.h,
35696           indexer/indexgraph/omstopwordnode.cc,
35697           indexer/indexgraph/regexcommon.h,indexer/indexgraph/toposort.h,
35698           tests/api_db.cc,tests/api_nodb.cc,testsuite/backendmanager.h:
35699           More fixes for Sun C++; removed many superfluous ";" after "}".
35701 Wed Apr 02 03:45:42 BST 2003  Olly Betts <olly@survex.com>
35703         * api/omdocument.cc,api/omenquire.cc,api/omtermlistiteratorinternal.h,
35704           backends/inmemory/inmemory_database.h,backends/quartz/btree.cc,
35705           backends/quartz/btree.h,common/alltermslist.h,common/expandweight.h,
35706           common/getopt.h,common/utils.h,include/om/omenquire.h,
35707           matcher/expandweight.cc,matcher/multimatch.cc,
35708           testsuite/backendmanager.h: Resolved various issues so that
35709           libxapian now builds with Sun's C++ compiler.  However
35710           libomqueryparser and the test programs don't yet.
35712 Tue Apr 01 02:52:57 BST 2003  Olly Betts <olly@survex.com>
35714         * backends/quartz/quartz_types.h: use "unsigned int" rather than
35715           "unsigned long int" so that quartz_tablesize_t matches om_doccount
35716           on 64 bit machines.
35718 Mon Mar 31 19:34:54 BST 2003  Olly Betts <olly@survex.com>
35720         * AUTHORS,xapian.spec.in: Merged in changes to RPM packaging from
35721           Fabrice Colin and reworked further.
35723 Fri Mar 28 20:04:04 GMT 2003  Olly Betts <olly@survex.com>
35725         * NEWS: Updated.
35727 Fri Mar 28 19:53:59 GMT 2003  Olly Betts <olly@survex.com>
35729         * README: Removed out-of-date sourceforge references; tidied up
35730           wording in places.
35732 Fri Mar 28 19:52:11 GMT 2003  Olly Betts <olly@survex.com>
35734         * HACKING: Removed out-of-date sourceforge references; tidied up
35735           wording in places; docs/tests.txt is now docs/tests.html .
35737 Fri Mar 28 17:35:15 GMT 2003  Olly Betts <olly@survex.com>
35739         * NEWS: Wrote most of the entries for the next release.
35741 Fri Mar 28 17:34:57 GMT 2003  Olly Betts <olly@survex.com>
35743         * docs/todo.xml: Updated.
35745 Thu Mar 27 05:42:41 GMT 2003  Olly Betts <olly@survex.com>
35747         * .cvsignore,Makefile.am,configure.in,docs/.cvsignore,docs/Makefile.am,
35748           docs/index.html,docs/todo2html.pl: removed machinery to generate
35749           TODO, TODO.release, docs/todo.html, and docs/todo-release.html from
35750           docs/todo.xml - bug and todo items will be tracked in bugzilla
35751           instead.
35753 Thu Mar 27 05:25:12 GMT 2003  Olly Betts <olly@survex.com>
35755         * docs/todo.xml: Removed completed items and those already fed into
35756           bugzilla.
35758 Thu Mar 27 05:17:05 GMT 2003  Olly Betts <olly@survex.com>
35760         * api/omstem.cc,include/om/omstem.h: Added default OmStem ctor,
35761           and "none" language.  Both of these give a stemmer object which
35762           leaves terms unchanged which should allow for simpler logic
35763           in programs using Xapian.  The default ctor also removes the
35764           need to mess with pointers in some cases.
35766 Thu Mar 27 04:52:27 GMT 2003  Olly Betts <olly@survex.com>
35768         * NEWS: Started to prepare for next release.
35770 Thu Mar 27 04:49:52 GMT 2003  Olly Betts <olly@survex.com>
35772         * include/om/omenquire.h,include/om/omerror.h: Improved documentation
35773           comments.
35775 Thu Mar 27 01:09:04 GMT 2003  Olly Betts <olly@survex.com>
35777         * docs/todo.xml,tests/api_db.cc: Added regression test for Quartz
35778           bug which caused problems with long terms on machines with signed
35779           chars.
35781 Wed Mar 26 20:30:18 GMT 2003  Olly Betts <olly@survex.com>
35783         * matcher/multimatch.cc: fixed interaction of collapsing and
35784           sort_bands == 1.
35786 Wed Mar 26 01:04:30 GMT 2003  Olly Betts <olly@survex.com>
35788         * matcher/multimatch.cc: Fixed sort_bands == 1 bug which would
35789           incorrectly reject many documents with a low score.
35791 Thu Mar 06 13:04:06 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35793         * docs/matcherdesign.html: Add writeup about document collapsing.
35795 Thu Mar 06 11:32:05 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35797         * Add collapse_count threshold checking to ensure that most
35798           relevant collapsed-away hit is more relevant than threshold
35799           (if specified)
35801 Mon Mar 03 14:04:56 GMT 2003  Olly Betts <olly@survex.com>
35803         * docs/quartzdesign.html: Corrected 2kB to 2KB.
35805 Fri Feb 28 10:11:04 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35807         * Add get_collapse_count() to OmMSetIterator
35808         * Add collapse_count to OmMSetItem
35809         * Add collapse_count tracking to get_mset()
35811 Thu Feb 27 15:28:08 GMT 2003  Olly Betts <olly@survex.com>
35813         * common/match.h,common/multimatch.h,matcher/multimatch.cc: Optimise
35814           the common sort_bands == 1 case better.
35815         * tests/api_db.cc: sortbands2 now tests 1 sortband as well as 10.
35817 Wed Feb 26 09:58:01 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35819         * bootstrap: Fix success message when building in non-src dir
35820           as configure is written to the src dir.
35822 Mon Feb 24 10:33:52 GMT 2003  Olly Betts <olly@survex.com>
35824         * matcher/multimatch.cc: Disabled (for now) sort_bands
35825           optimisation which is misbehaving.  Fixed forward ordered boolean
35826           optimisation broken by last check-in.
35827         * tests/api_db.cc: Added test_sortbands2 based on James' test code.
35829 Sun Feb 23 20:28:47 GMT 2003  Olly Betts <olly@survex.com>
35831         * matcher/multimatch.cc: Fixed problem with sort_bands when asking
35832           for an m-set which didn't start with the first match.
35834 Sun Jan 05 22:20:33 GMT 2003  Olly Betts <olly@survex.com>
35836         * testsuite/index_utils.cc: Handling of ^x was just downright wrong
35837           due to a typo.
35839 Sun Jan 05 22:19:56 GMT 2003  Olly Betts <olly@survex.com>
35841         * backends/quartz/.cvsignore: Ignore quartzcompact binary.
35843 Sun Jan 05 22:18:57 GMT 2003  Olly Betts <olly@survex.com>
35845         * extra/parsequerytest.cc: Fixed to build with GCC 2.95.
35847 Tue Dec 24 20:21:03 GMT 2002  Olly Betts <olly@survex.com>
35849         * NEWS: Added omega 0.6.4 changes.
35851 Tue Dec 24 19:53:10 GMT 2002  Olly Betts <olly@survex.com>
35853         * NEWS,PLATFORMS,configure.in: Version 0.6.4.
35855 Tue Dec 24 19:29:27 GMT 2002  Olly Betts <olly@survex.com>
35857         * backends/quartz/quartz_database.cc,backends/quartz/quartz_table.cc:
35858           Don't bother checking is position_list is empty - just delete it and
35859           let the layer below handle not having anything to delete.
35860         * backends/quartz/quartz_termlist.cc,docs/todo.xml: Fixed unpacking
35861           of termlist on platforms where char is signed.
35863 Tue Dec 24 05:48:06 GMT 2002  Olly Betts <olly@survex.com>
35865         * backends/quartz/quartz_database.cc: Fixed double setting of position
35866           list when updating a document with term position information.  The
35867           behaviour before was correct, just inefficient.
35869 Mon Dec 23 04:44:46 GMT 2002  Olly Betts <olly@survex.com>
35871         * docs/todo.xml: Updated.
35873 Mon Dec 23 03:22:19 GMT 2002  Olly Betts <olly@survex.com>
35875         * extra/parsequery.yy: If a stemmed form with a "." is in the query,
35876           include the "." on the form in the unstem multimap.
35878 Sun Dec 22 21:44:06 GMT 2002  Olly Betts <olly@survex.com>
35880         * extra/omparsequery.h,extra/parsequery.yy,extra/parsequerytest.cc:
35881           Added support for searching probabilistic fields (using
35882           <field>:<term>).
35884 Sat Dec 21 01:38:59 GMT 2002  Olly Betts <olly@survex.com>
35886         * configure.in: Don't include "om.h" in APIDOC_SRC, otherwise
35887           people building from source will need to regenerate the source
35888           docs which will require them to have doxygen installed.
35890 Fri Dec 20 15:39:51 GMT 2002  James Aylett  <james@tartarus.org>
35892         * Bindings build using SWIG 1.3.14u-20020706-1222, with very
35893           basic functionality tested with the Python target.
35895 Fri Dec 20 12:38:26 GMT 2002  James Aylett  <tartarus@users.sourceforge.net>
35897         * Tidied up some bindings-related issues, including changes to
35898           the Python bindings to work with Python 2.2. This probably won't
35899           compile as it stands, but it's disabled anyway.
35901 Sun Dec 15 18:23:42 GMT 2002  Olly Betts <olly@survex.com>
35903         * api/omdatabase.cc,backends/muscat36/da_database.cc,
35904           backends/muscat36/db_database.cc,matcher/phrasepostlist.cc:
35905           Muscat 3.6 DA and DB databases don't have word position information.
35906           Instead of throwing an exception when this information is requested,
35907           return an empty position list (i.e. behave as a quartz database with
35908           no position information would).
35910 Sun Dec 15 03:08:28 GMT 2002  Olly Betts <olly@survex.com>
35912         * backends/muscat36/: DADatabase and DBDatabase ctors need to public
35913           so that they can called from the database factory functions.
35914         * api/omenquire.cc,backends/muscat36/,backends/quartz/btree.cc,
35915           tests/api_db.cc: Fixed compilation warnings.
35917 Sat Dec 14 23:02:55 GMT 2002  Olly Betts <olly@survex.com>
35919         * docs/quartzdesign.html,docs/todo.xml: Updated.
35921 Sat Dec 14 22:57:41 GMT 2002  Olly Betts <olly@survex.com>
35923         * backends/quartz/Makefile.am,backends/quartz/quartzcheck.cc,
35924           backends/quartz/quartzcompact.cc,backends/quartz/quartzdump.cc:
35925           Enhanced quartzcheck to check all the btrees in a quartz database
35926           if passed a directory name.  It also default to "v" rather than
35927           "+" which is more appropriate for an end user checking if tables
35928           in a non-trivial sized database are corrupt.  Added quartzcompact
35929           utility to make a copy of a quartz database with full compaction
35930           turned on - this results in a smaller database which is faster to
35931           search.  The next update will result in a lot of block splitting
35932           though (since all blocks are as full as possible).
35934 Sat Dec 14 16:28:11 GMT 2002  Olly Betts <olly@survex.com>
35936         * NEWS: Updated for 0.6.3 release.
35938 Sat Dec 14 04:28:16 GMT 2002  Olly Betts <olly@survex.com>
35940         * PLATFORMS,configure.in: Version 0.6.3.
35942 Sat Dec 14 03:54:08 GMT 2002  Olly Betts <olly@survex.com>
35944         * extra/omparsequery.h,extra/parsequery.yy: Create an "unstem" multimap
35945           so users can convert the stemmed terms back into their query
35946           representation.
35948 Sat Dec 14 03:48:27 GMT 2002  Olly Betts <olly@survex.com>
35950         * docs/todo.xml: Updated.
35952 Sat Dec 14 02:37:41 GMT 2002  Olly Betts <olly@survex.com>
35954         * docs/todo.xml: Updated.
35956 Sat Dec 14 02:26:29 GMT 2002  Olly Betts <olly@survex.com>
35958         * docs/remote_protocol.html,net/socketclient.cc,net/socketserver.cc:
35959           Updated remote protocol description.
35961 Sat Dec 14 02:05:59 GMT 2002  Olly Betts <olly@survex.com>
35963         * docs/: Updated.
35965 Fri Dec 13 23:43:23 GMT 2002  Olly Betts <olly@survex.com>
35967         * include/om/om.h.in: Removed bogus // in the middle of a comment.
35969 Fri Dec 13 22:17:41 GMT 2002  Olly Betts <olly@survex.com>
35971         * configure.in,testsuite/testsuite.cc: Added hooks for using valgrind
35972           to find leaks in the test suite.  Just need to sort out suitable
35973           hooks in valgrind now!
35975 Fri Dec 13 19:57:23 GMT 2002  Olly Betts <olly@survex.com>
35977         * docs/: OmSettings removal updates.
35979 Fri Dec 13 19:44:23 GMT 2002  Olly Betts <olly@survex.com>
35981         * bindings/: Made a start updating bindings for OmSettings removal.
35983 Fri Dec 13 19:13:36 GMT 2002  Olly Betts <olly@survex.com>
35985         * api/omenquire.cc,common/omenquireinternal.h,include/om/omenquire.h,
35986           net/socketclient.cc,tests/api_db.cc: Finished removal of OmSettings
35987           - all tests now pass once more!
35989 Fri Dec 13 16:35:12 GMT 2002  Olly Betts <olly@survex.com>
35991         * api/,backends/quartz/quartz_table_manager.h,common/,docs/,include/,
35992           matcher/,net/,tests/internaltest.cc: Removed last use of OmSettings.
35993           Just a check-point check in - the code compiles, but doesn't pass
35994           tests yet.
35996 Fri Dec 13 12:53:01 GMT 2002  Olly Betts <olly@survex.com>
35998         * netprogs/nettest.cc: Updated disabled code to use new database
35999           factory functions; Added "using namespace std;".
36001 Thu Dec 12 23:52:32 GMT 2002  Olly Betts <olly@survex.com>
36003         * docs/todo.xml: Tidied my desk and converted lots of scraps of paper
36004           to todo entries.
36006 Thu Dec 12 16:43:22 GMT 2002  Olly Betts <olly@survex.com>
36008         * backends/quartz/btree.cc: Added workaround for shared_level problem;
36009           Improved error reporting.
36011 Thu Dec 12 01:05:00 GMT 2002  Olly Betts <olly@survex.com>
36013         * docs/overview.html: Updated docs on stub databases.
36015 Wed Dec 11 20:49:11 GMT 2002  Olly Betts <olly@survex.com>
36017         * api/omdatabaseinternal.cc,include/om/omdatabase.h,tests/api_db.cc:
36018           Reimplemented stub databases in the new scheme of things.
36019         * backends/inmemory/: fully disabled inmemory_errornext and
36020           inmemory_abortnext code.
36022 Tue Dec 10 13:47:44 GMT 2002  Olly Betts <olly@survex.com>
36024         * HACKING: Added note that Bison 1.50 seems to work with Xapian's
36025           .yy files.
36027 Mon Dec 09 20:13:00 GMT 2002  Olly Betts <olly@survex.com>
36029         * api/omenquire.cc,common/omenquireinternal.h,docs/todo.xml,
36030           include/om/omenquire.h,tests/api_db.cc: OmEnquire::get_eset()
36031           now takes a flags argument of bit constants |-ed together
36032           instead of 2 bools.
36034 Mon Dec 09 12:52:38 GMT 2002  Olly Betts <olly@survex.com>
36036         * backends/quartz/btree.cc,backends/quartz/btree.h: Applied patch
36037           from Martin Porter with better fix for sequential addition bug.
36039 Mon Dec 09 09:57:42 GMT 2002  Olly Betts <olly@survex.com>
36041         * docs/todo.xml: Updated.
36043 Mon Dec 09 07:32:46 GMT 2002  Olly Betts <olly@survex.com>
36045         * backends/quartz/quartztest.cc: Corrected name of database used
36046           by test adddoc2 (was using testdb_adddoc1!)
36048 Mon Dec 09 05:10:09 GMT 2002  Olly Betts <olly@survex.com>
36050         * backends/quartz/quartz_postlist.cc,backends/quartz/quartz_table.cc:
36051           More fettling.
36053 Mon Dec 09 04:48:39 GMT 2002  Olly Betts <olly@survex.com>
36055         * backends/quartz/: Minor code fettle.
36057 Mon Dec 09 03:32:11 GMT 2002  Olly Betts <olly@survex.com>
36059         * backends/quartz/quartz_postlist.cc: Gratuitous layout fettling.
36061 Mon Dec 09 03:30:27 GMT 2002  Olly Betts <olly@survex.com>
36063         * docs/quartzdesign.html: Improved wording and punctuation in 3
36064           places.
36066 Mon Dec 09 03:25:09 GMT 2002  Olly Betts <olly@survex.com>
36068         * common/,docs/todo.xml,include/om/omenquire.h,matcher/,
36069           net/socketclient.cc,net/socketserver.cc,netprogs/omprogsrv.cc,
36070           netprogs/omtcpsrv.cc: Fixed the remote backend to handle non-default
36071           weighting schemes.  You can now even implement your own weighting
36072           scheme and use it with the remote backend provided you register it
36073           with SocketServer at runtime.
36075 Sat Dec 07 21:18:39 GMT 2002  Olly Betts <olly@survex.com>
36077         * PLATFORMS: Updated.
36079 Sat Dec 07 21:09:52 GMT 2002  Olly Betts <olly@survex.com>
36081         * NEWS,PLATFORMS,configure.in: Version 0.6.2.
36083 Sat Dec 07 20:24:46 GMT 2002  Olly Betts <olly@survex.com>
36085         * NEWS: Updated.
36087 Sat Dec 07 20:21:41 GMT 2002  Olly Betts <olly@survex.com>
36089         * docs/quickstart.html: Fixed parameters passed to OmQuartz__open().
36091 Sat Dec 07 20:17:42 GMT 2002  Olly Betts <olly@survex.com>
36093         * backends/quartz/quartztest.cc: Fixed parameters passed to
36094           OmQuartz__open().
36096 Sat Dec 07 16:41:25 GMT 2002  Olly Betts <olly@survex.com>
36098         * docs/tests.html,testsuite/testsuite.cc: The testsuite won't install
36099           its signal handler if XAPIAN_SIG_DFL is set.
36101 Sat Dec 07 16:39:01 GMT 2002  Olly Betts <olly@survex.com>
36103         * HACKING: OM_DEBUG_XXX -> XAPIAN_DEBUG_YYY.
36105 Sat Dec 07 04:48:37 GMT 2002  Olly Betts <olly@survex.com>
36107         * backends/quartz/btree.cc: max_item_size wasn't being set due to
36108           some over-zealous code pruning.  It was defaulting to 0, and
36109           was causing the code to write off the end of allocated memory
36110           blocks.
36112 Sat Dec 07 03:22:05 GMT 2002  Olly Betts <olly@survex.com>
36114         * backends/inmemory/,matcher/multimatch.cc: Minor code tidying.
36115         * backends/quartz/btree.cc: Added Assert in Btree::add() to detect
36116           running off end of buffer.
36118 Sat Dec 07 03:20:52 GMT 2002  Olly Betts <olly@survex.com>
36120         * matcher/localmatch.cc: fixed handling of wtscheme() - we were
36121           trying to use it for the extra weights, and then double
36122           deleting it!
36124 Fri Dec 06 23:05:22 GMT 2002  Olly Betts <olly@survex.com>
36126         * api/omstem.cc,backends/quartz/,common/omdebug.cc,common/utils.h,
36127           matcher/tradweight.cc,net/socketcommon.cc,net/tcpclient.cc,
36128           tests/api_db.cc: Fixed to build with configure --enable-debug=full.
36130 Fri Dec 06 23:01:08 GMT 2002  Olly Betts <olly@survex.com>
36132         * common/omdebug.cc,common/omdebug.h: Fixed permissions on newly
36133           created log file (was getting 000!); Simplified class internals;
36134           Renamed env vars: OM_DEBUG_FILE is now XAPIAN_DEBUG_LOG,
36135           OM_DEBUG_TYPES is now XAPIAN_DEBUG_FLAGS (old versions still work
36136           for now).
36138 Fri Dec 06 22:58:57 GMT 2002  Olly Betts <olly@survex.com>
36140         * testsuite/testsuite.cc: Fixed so running "gdb .libs/apitest"
36141           finds srcdir (for an in-tree build at least).
36143 Fri Dec 06 03:51:35 GMT 2002  Olly Betts <olly@survex.com>
36145         * common/,include/om/omenquire.h,matcher/localmatch.h,matcher/rset.cc,
36146           matcher/stats.cc: Fixed to compile with GCC 3.0.
36148 Thu Dec 05 23:28:29 GMT 2002  Olly Betts <olly@survex.com>
36150         * include/om/omdatabase.h: Added missing "std::".
36152 Thu Dec 05 23:27:57 GMT 2002  Olly Betts <olly@survex.com>
36154         * docs/remote.html: Updated from OmSettings to factory functions.
36156 Thu Dec 05 23:26:42 GMT 2002  Olly Betts <olly@survex.com>
36158         * PLATFORMS: ixion is actually Linux 2.2.
36160 Thu Dec 05 04:32:40 GMT 2002  Olly Betts <olly@survex.com>
36162         * testsuite/backendmanager.cc: Fixed BackendManager::do_getdb_quartz()
36163           and do_getwritedb_quartz() to work correctly and so resolved some
36164           test failures.
36166 Wed Dec 04 03:35:12 GMT 2002  Olly Betts <olly@survex.com>
36168         * api/omdatabaseinternal.cc,backends/quartz/,docs/todo.xml,
36169           include/om/omdatabase.h: Replace create and allow_overwrite
36170           boolean flags with OM_DB_XXX constants.  And we now support
36171           OM_DB_CREATE_OR_OPEN which is a common action to want to
36172           perform, but was fiddly to achieve before.
36174 Tue Dec 03 23:59:30 GMT 2002  Olly Betts <olly@survex.com>
36176         * docs/todo.xml: Updated.
36178 Tue Dec 03 23:26:27 GMT 2002  Olly Betts <olly@survex.com>
36180         * api/omenquire.cc,backends/quartz/quartz_postlist.h,common/,
36181           docs/omsettings,docs/todo.xml,include/om/omenquire.h,matcher/,
36182           net/socketcommon.cc,net/socketserver.cc,tests/api_db.cc,
36183           tests/api_posdb.cc: Weighting schemes are now specified by passing
36184           in a weighting object, rather than via OmSetttings.  The weight
36185           class can be sub-classed by the library user to allow them to
36186           specify their own weighting scheme).  Everything works apart
36187           from the remote backend where the weighting scheme type and
36188           parameters aren't passed across the link.
36190 Mon Dec 02 20:12:31 GMT 2002  Olly Betts <olly@survex.com>
36192         * NEWS: Updated with changes since 0.6.1.
36194 Mon Dec 02 19:44:37 GMT 2002  Olly Betts <olly@survex.com>
36196         * api/ompostlistiterator.cc,backends/multi/multi_postlist.h,
36197           common/irweight.h,common/leafpostlist.h,matcher/: IRWeight
36198           renamed to OmWeight in preparation for making it externally
36199           visible.
36201 Mon Dec 02 18:10:55 GMT 2002  Olly Betts <olly@survex.com>
36203         * matcher/bm25weight.cc,matcher/irweight.cc,matcher/tradweight.cc,
36204           matcher/tradweight.h: Started to rework weighting scheme code.
36206 Mon Dec 02 17:36:21 GMT 2002  Olly Betts <olly@survex.com>
36208         * api/omdatabaseinternal.cc,backends/quartz/quartz_table_manager.cc:
36209           Tidying up after the recent backend reworking.
36211 Mon Dec 02 03:59:39 GMT 2002  Olly Betts <olly@survex.com>
36213         * matcher/: Changed BoolWeight ctor not to take an OmSettings
36214           parameter which is simply ignored.
36216 Mon Dec 02 01:35:41 GMT 2002  Olly Betts <olly@survex.com>
36218         * include/om/omdatabase.h: Added documentation comments for all of
36219           the database factory functions.
36221 Sun Dec 01 21:45:49 GMT 2002  Olly Betts <olly@survex.com>
36223         * include/om: Added \file documentation comments so doxygen
36224           extracts documentation for functions too.
36225         * docs/: Made a start on updating for the new database factory
36226           functions.
36228 Sun Dec 01 15:38:10 GMT 2002  Olly Betts <olly@survex.com>
36230         * api/,backends/,common/,docs/omsettings,docs/todo.xml,
36231           include/om/omdatabase.h,netprogs/,tests/,testsuite/backendmanager.cc,
36232           testsuite/backendmanager.h: No longer use OmSettings to specify
36233           parameters for constructing databases.  Instead there's a factory
36234           function for each database type - temporary naming scheme is
36235           OmXxx__open(), mostly because it's easy to grep for later.  At
36236           present stub databases and the machinery in InMemory to allow
36237           the multierrhandler1 test aren't working.  Everything else should
36238           be.
36240 Thu Nov 28 20:15:47 GMT 2002  Olly Betts <olly@survex.com>
36242         * api/omenquire.cc,common/omenquireinternal.h,docs/omsettings,
36243           docs/overview.html,include/om/omenquire.h,tests/api_db.cc:
36244           No longer use OmSettings in OmEnquire::get_eset(); fixed
36245           reversed sense of use_query_terms (and fixed reversed sense
36246           test in apitest which meant this wasn't spotted).
36248 Thu Nov 28 20:14:54 GMT 2002  Olly Betts <olly@survex.com>
36250         * docs/index.html: Link to annotated class lists in doxygen generated
36251           documentation rather than rather empty index page.
36253 Thu Nov 28 02:23:33 GMT 2002  Olly Betts <olly@survex.com>
36255         * configure.in,NEWS: Version 0.6.1.
36257 Thu Nov 28 01:38:05 GMT 2002  Olly Betts <olly@survex.com>
36259         * PLATFORMS: Updated.
36261 Thu Nov 28 01:33:25 GMT 2002  Olly Betts <olly@survex.com>
36263         * backends/quartz/: Fixed to compile with GCC 3.0.
36265 Thu Nov 28 01:32:31 GMT 2002  Olly Betts <olly@survex.com>
36267         * PLATFORMS: Updated with test results from 0.5.4 release.
36269 Wed Nov 27 22:11:38 GMT 2002  Olly Betts <olly@survex.com>
36271         * backends/quartz/btree.h: fixed "public:" bodge added during
36272           factoring-out of BtreeCheck.
36274 Wed Nov 27 05:01:14 GMT 2002  Olly Betts <olly@survex.com>
36276         * NEWS,PLATFORMS,configure.in: Updated for 0.6.0 release.
36278 Wed Nov 27 05:00:39 GMT 2002  Olly Betts <olly@survex.com>
36280         * AUTHORS,HACKING: Removed or replaced sourceforge.net URLs.
36282 Wed Nov 27 04:58:29 GMT 2002  Olly Betts <olly@survex.com>
36284         * docs/quartzdesign.html: Reworded "under development" warning;
36285           Updated Btree::check(), which is now BtreeCheck::check().
36287 Wed Nov 27 01:36:26 GMT 2002  Olly Betts <olly@survex.com>
36289         * backends/quartz/btreecheck.cc,backends/quartz/btreecheck.h,
36290           backends/quartz/btreetest.cc: Tidied up BtreeCheck - btreetest now
36291           sends check output to tout so it's only displayed if the check fails
36292           (or btreetest is run with -v).
36294 Tue Nov 26 19:47:24 GMT 2002  Olly Betts <olly@survex.com>
36296         * backends/quartz/: Split the btree checking code out into a separate
36297           file, so it's not linked in when we don't need it.
36299 Tue Nov 26 05:47:32 GMT 2002  Olly Betts <olly@survex.com>
36301         * backends/quartz/btree.cc: Suppress all output from a successful
36302           Btree::Check() is no options are specified, so that btreetest
36303           generates clean output when all tests pass.
36305 Tue Nov 19 02:08:30 GMT 2002  Olly Betts <olly@survex.com>
36307         * NEWS: Updated.
36309 Tue Nov 19 01:46:35 GMT 2002  Olly Betts <olly@survex.com>
36311         * backends/quartz/btree.cc,backends/quartz/btree.h,
36312           backends/quartz/btreetest.cc,backends/quartz/quartztest.cc,
36313           docs/quartzdesign.html: Quartz B-tree minimum blocksize is
36314           now 2048 bytes (as was in fact documented already).  This
36315           means the max term length is now always 252 bytes.
36317 Mon Nov 18 22:16:57 GMT 2002  Olly Betts <olly@survex.com>
36319         * api/omenquire.cc,matcher/expand.cc,matcher/expandweight.cc:
36320           Bit of an expand tidy up.
36322 Mon Nov 18 19:49:09 GMT 2002  Olly Betts <olly@survex.com>
36324         * backends/quartz/quartz_termlist.cc: I'd put the new termlist stuff
36325           in the disabled branch of a "#ifdef" so it wasn't being used!  Fixed
36326           this and made it actually compile as an encore.
36328 Mon Nov 18 02:51:55 GMT 2002  Olly Betts <olly@survex.com>
36330         * docs/todo.xml: Retargetted 0.6 tasks for 0.7 or 0.8; updated a few
36331           entries.
36333 Mon Nov 18 02:28:55 GMT 2002  Olly Betts <olly@survex.com>
36335         * docs/quartzdesign.html,backends/quartz/: We can just store the term
36336           name raw in position list key, since we know its length from the key
36337           length; tweaked storing of deltas to store (delta - 1) as 0 is
36338           invalid.
36340 Mon Nov 18 00:47:54 GMT 2002  Olly Betts <olly@survex.com>
36342         * backends/quartz/quartz_termlist.cc: First cut of compressed term
36343           lists.
36345 Sun Nov 17 20:19:23 GMT 2002  Olly Betts <olly@survex.com>
36347         * backends/quartz/quartz_lexicon.cc,backends/quartz/quartz_values.cc:
36348           Use new pack_uint_last() and unpack_uint_last() where appropriate.
36350 Sun Nov 17 20:03:24 GMT 2002  Olly Betts <olly@survex.com>
36352         * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h:
36353           Added a more compact integer packing for the last integer in
36354           a key or tag.
36356 Sun Nov 17 18:54:05 GMT 2002  Olly Betts <olly@survex.com>
36358         * backends/quartz/btree.cc,backends/quartz/btree.h: more
36359           int -> bool changes.
36360         * backends/quartz/btree_base.cc: Clarified comments.
36362 Sun Nov 17 14:19:30 GMT 2002  Olly Betts <olly@survex.com>
36364         * docs/quartzdesign.html: Updated to reflect removal of Btree_item.
36366 Sun Nov 17 14:12:12 GMT 2002  Olly Betts <olly@survex.com>
36368         * backends/quartz/: Eliminate Btree_item - wherever it's used we
36369           only actually want the tag or key, so it's cleaner and clearer
36370           to just pass a pointer to a string.
36372 Sun Nov 17 13:34:08 GMT 2002  Olly Betts <olly@survex.com>
36374         * backends/quartz/,docs/quartzdesign.html: Quartz mini-overhaul:
36375           Removed Btree::Bcursor_create() and just made Bcursor's ctor
36376           public - now you can just create a Bcursor on the stack rather
36377           than being forced to use AutoPtr; removed valid_handle - the
36378           code is clearer without it; sys_close now inlined from header;
36379           changed int/char to bool where appropriate; changed some methods
36380           which now always throw on error to return void not bool; moved
36381           quartztest's test_btree1 to btreetest as test_simple1; changed
36382           a few remaining uses of "struct Btree" to just plain "Btree";
36383           brought the btree docs in quartzdesign.html up-to-date, apart
36384           from the error handling section.
36386 Sat Nov 16 01:45:28 GMT 2002  Olly Betts <olly@survex.com>
36388         * backends/inmemory/inmemory_database.cc,
36389           backends/inmemory/inmemory_database.h,
36390           backends/quartz/quartz_table.cc: Tidying up odds and ends.
36392 Fri Nov 15 17:46:38 GMT 2002  Olly Betts <olly@survex.com>
36394         * NEWS: Updated ready for 0.6.0 with changes made so far.
36396 Fri Nov 15 17:06:58 GMT 2002  Olly Betts <olly@survex.com>
36398         * testsuite/testsuite.cc: Avoid double debug output if we get a
36399           signal inside the testsuite code itself.
36401 Fri Nov 15 17:00:15 GMT 2002  Olly Betts <olly@survex.com>
36403         * backends/quartz/btree_api.txt,docs/Makefile.am,docs/index.html,
36404           docs/quartzdesign.html,docs/remote_protocol.html,
36405           net/README_progprotocol.txt: Converted Btree API documentation
36406           to HTML and add it to the quartz design document; converted the
36407           (seriously out of date) remote protocol document to HTML, moved it
36408           into docs/, and linked it in.
36410 Fri Nov 15 13:05:06 GMT 2002  Olly Betts <olly@survex.com>
36412         * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h,
36413           docs/quartzdesign.html: Changed encoding of keys for quartz record
36414           and termlist tables.
36416 Fri Nov 15 12:54:39 GMT 2002  Olly Betts <olly@survex.com>
36418         * backends/quartz/quartz_table_entries.cc: Fixed
36419           QuartzTableEntries::empty() which would never return true before.
36421 Fri Nov 15 03:08:49 GMT 2002  Olly Betts <olly@survex.com>
36423         * backends/quartz/btree_api.txt: Fixed typos.
36425 Fri Nov 15 03:06:41 GMT 2002  Olly Betts <olly@survex.com>
36427         * backends/quartz/quartztest.cc,backends/quartz/btreetest.cc:
36428           added another test (btreetest: emptykey1) and added extra
36429           checks to existing tests.
36431 Thu Nov 14 01:59:06 GMT 2002  Olly Betts <olly@survex.com>
36433         * matcher/multimatch.cc,tests/api_db.cc,docs/todo.xml:
36434           match_sort_bands code fettled, and added regression test for the
36435           >100% problem (test_sortbands1).
36437 Tue Nov 12 00:00:44 GMT 2002  Olly Betts <olly@survex.com>
36439         * backends/inmemory/inmemory_database.h,backends/quartz/,
36440           include/om/omtypes.h: Pushed average length calc down into
36441           QuartzRecordManager; removed unnecessary types om_totlength
36442           and om_termid.
36444 Mon Nov 11 18:10:23 GMT 2002  Olly Betts <olly@survex.com>
36446         * docs/index.html: Fixed broken link.
36448 Mon Nov 11 18:07:41 GMT 2002  Olly Betts <olly@survex.com>
36450         * backends/quartz/,docs/quartzdesign.html: Store next free docid
36451           and total doc length in the same tag in QuartzRecord.
36453 Wed Nov 06 22:38:40 GMT 2002  Olly Betts <olly@survex.com>
36455         * backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h:
36456           Eliminated QuartzDatabase::get_doccount_internal() and
36457           QuartzDatabase::get_avlength_internal() - now the thread
36458           locking code has gone, the indirection serves no purpose.
36460 Wed Nov 06 17:50:12 GMT 2002  Olly Betts <olly@survex.com>
36462         * backends/quartz/: Removed QuartzBufferedTable::write() (unused and
36463           unimplemented), and merged QuartzBufferedTable::write_internal()
36464           into QuartzBufferedTable::write_internal().
36466 Wed Nov 06 01:56:41 GMT 2002  Olly Betts <olly@survex.com>
36468         * backends/quartz/: disable quartz lexicon table unless USE_LEXICON
36469           is defined.
36471 Wed Nov 06 01:54:30 GMT 2002  Olly Betts <olly@survex.com>
36473         * docs/overview.html: Corrected link to API docs on website.
36475 Mon Nov 04 02:35:22 GMT 2002  Olly Betts <olly@survex.com>
36477         * include/om/omerror.h,net/omerr_string.cc,netprogs/omprogsrv.cc,
36478           netprogs/omtcpsrv.cc,testsuite/testsuite.cc: don't use typeid().
36480 Mon Nov 04 01:31:47 GMT 2002  Olly Betts <olly@survex.com>
36482         * testsuite/testsuite.cc: Catch by const reference.
36484 Mon Nov 04 01:18:53 GMT 2002  Olly Betts <olly@survex.com>
36486         * HACKING: Added note about use of various C++ features.  Also
36487           tidied up various odds and ends.
36489 Sun Nov 03 22:59:34 GMT 2002  Olly Betts <olly@survex.com>
36491         * api/omdatabaseinternal.cc: Eliminated entirely superfluous use of
36492           dynamic_cast.
36494 Sun Nov 03 22:46:34 GMT 2002  Olly Betts <olly@survex.com>
36496         * matcher/multimatch.cc,common/database.h,common/net_database.h:
36497           Replace Database::is_network() with Database::as_networkdatabase()
36498           which returns a pointer or NULL.  This eliminates the need to use
36499           dynamic_cast in MultiMatch.
36501 Wed Oct 23 05:24:14 BST 2002  Olly Betts <olly@survex.com>
36503         * docs/todo.xml: Resolved TODO entry by consulting Stroustrup
36504           (it is safe to throw and catch an exception in a destructor,
36505           even when that destructor is being called during a stack unwind
36506           caused by an exception being thrown).
36508 Wed Oct 16 20:05:39 BST 2002  Olly Betts <olly@survex.com>
36510         * backends/quartz/btreetest.cc: Suppress (most) output from
36511           Btree::check unless verbose (-v) is enabled.
36513 Mon Oct 14 15:13:18 BST 2002  Olly Betts <olly@survex.com>
36515         * testsuite/testsuite.cc: Fixed compilation problem with std:: on
36516           GCC 3.2.
36518 Mon Oct 14 15:07:03 BST 2002  Olly Betts <olly@survex.com>
36520         * api/omstem.cc: French and Finnish stemmers were switched!
36522 Mon Oct 14 02:49:12 BST 2002  Olly Betts <olly@survex.com>
36524         * backends/quartz/quartz_utils.h: change sort preserving packing for
36525           strings.  This one does better provided the strings being packed
36526           don't contain many zero bytes (which is true of the termnames which
36527           we pack with this).
36529 Mon Oct 14 02:45:20 BST 2002  Olly Betts <olly@survex.com>
36531         * tests/stemtest.cc: Updated to reflect new naming of stemming test
36532           data.
36534 Sun Oct 13 17:06:26 BST 2002  Olly Betts <olly@survex.com>
36536         * docs/todo.xml: Updated.
36538 Sun Oct 13 16:40:24 BST 2002  Olly Betts <olly@survex.com>
36540         * api/omstem.cc,backends/quartz/,common/,extra/omparsequery.h,matcher/,
36541           net/socketclient.cc: Added private copy ctors and assignment
36542           operators to classes with pointer members (which shouldn't be
36543           copied).
36545 Sun Oct 13 15:12:40 BST 2002  Olly Betts <olly@survex.com>
36547         * docs/todo.xml: Updated.
36549 Sun Oct 13 02:33:57 BST 2002  Olly Betts <olly@survex.com>
36551         * .cvsignore: Added install-sh.
36553 Sun Oct 13 02:16:31 BST 2002  Olly Betts <olly@survex.com>
36555         * backends/quartz/{quartz_lexicon.cc,quartz_lexicon.h}: key to lexicon
36556           is now simply the termname - no need to encode the length there too
36557           since the Btree knows how long the key is.
36558         * backends/quartz/{quartz_table_manager.cc,quartz_values.cc}: finished
36559           the terminology change from "attribute" to "value" (including
36560           renaming the btree files, which is why it wasn't done before).
36562 Sun Oct 13 02:09:00 BST 2002  Olly Betts <olly@survex.com>
36564         * tests/api_db.cc: Snowball stems "this" to "this" rather than "thi",
36565           so update apitest source to reflect this.
36567 Sun Oct 13 01:03:04 BST 2002  Olly Betts <olly@survex.com>
36569         * configure.in: Removed references to languages/*/Makefile.
36571 Sun Oct 13 00:50:01 BST 2002  Olly Betts <olly@survex.com>
36573         * docs/indexerquickstart.html,docs/quartzdesign.html: Updated.
36575 Sat Oct 12 23:34:52 BST 2002  Olly Betts <olly@survex.com>
36577         * languages/{api.c,api.h,header.h,utilities.c}: 4 new files.
36579 Sat Oct 12 23:29:50 BST 2002  Olly Betts <olly@survex.com>
36581         * languages/: removed all the old .cvsignore files.
36583 Sat Oct 12 22:34:01 BST 2002  Olly Betts <olly@survex.com>
36585         * api/omstem.cc,docs/stemming.html,docs/todo.xml,languages/: Replaced
36586           our stemmers with those from Snowball.  Note that these give better
36587           results, but this also means that existing databases won't work
36588           quite correctly if they contain stemmed terms.
36590 Sat Oct 12 17:17:26 BST 2002  Olly Betts <olly@survex.com>
36592         * configure.in,NEWS: Version 0.5.3.
36594 Sat Oct 12 16:49:50 BST 2002  Olly Betts <olly@survex.com>
36596         * PLATFORMS,api/omvalueiteratorinternal.h,extra/parsequery.yy,
36597           include/om/omdocument.h: Fixed std:: namespace issues to
36598           allow compilation with GCC 3 once again.
36600 Sat Oct 12 15:43:22 BST 2002  Olly Betts <olly@survex.com>
36602         * docs/todo.xml: Updated.
36604 Fri Oct 11 02:14:47 BST 2002  Olly Betts <olly@survex.com>
36606         * backends/quartz/Makefile.am: Include test data for btreetest
36607           in distribution tarball.
36609 Fri Oct 11 01:43:03 BST 2002  Olly Betts <olly@survex.com>
36611         * backends/quartz/{z_note,z_sequence,z_Cversion/,z_make/,z_test/}:
36612           Removed all the unused old C btree stuff.
36614 Thu Oct 10 17:32:10 BST 2002  Olly Betts <olly@survex.com>
36616         * backends/quartz/{btree.cc,btree.h}: More Btree tidying.
36618 Thu Oct 10 17:14:28 BST 2002  Olly Betts <olly@survex.com>
36620         * backends/quartz/{bcursor.cc,btree.cc,btree.h}: Btree::prev* and
36621           Btree::next* are no longer static methods.
36622         * backends/quartz/btree.h: Tweaked comments so doxygen will
36623           understand them.
36625 Thu Oct 10 16:12:29 BST 2002  Olly Betts <olly@survex.com>
36627         * backends/quartz/quartz_postlist.cc: return docids rather
36628           than passing in a pointer to fill in.
36630 Thu Oct 10 16:08:22 BST 2002  Olly Betts <olly@survex.com>
36632         * backends/quartz/quartzcheck.cc: Fixed #include-d files;
36633           Example in usage message now uses the directory where
36634           omega looks for its database by default.
36636 Thu Oct 10 15:25:10 BST 2002  Olly Betts <olly@survex.com>
36638         * backends/quartz/btree.cc,backends/quartz/btree.h: More comment
36639           improvements; Removed superfluous Cursor parameter from
36640           Btree::add_kt() - it always gets passed the C member of Btree
36641           which we have available anyway.
36643 Thu Oct 10 14:49:11 BST 2002  Olly Betts <olly@survex.com>
36645         * backends/quartz/btree.cc: Removed "struct" from in front of
36646           Btree and Cursor; Updated and reformatted many comments.
36648 Thu Oct 10 03:45:56 BST 2002  Olly Betts <olly@survex.com>
36650         * testsuite/backendmanager.cc: Reworded comment to make it clearer.
36652 Thu Oct 10 03:29:52 BST 2002  Olly Betts <olly@survex.com>
36654         * docs/todo.xml: Updated.
36656 Wed Oct 09 14:05:07 BST 2002  Olly Betts <olly@survex.com>
36658         * backends/quartz/{quartz_alltermslist.cc,quartz_alltermslist.h,
36659           quartz_database.cc}: Implemented
36660           QuartzAllTermsList::get_approx_size().
36662 Wed Oct 09 10:46:42 BST 2002  Olly Betts <olly@survex.com>
36664         * extra/omparsequery.h,include/om/omvalueiterator.h: Don't use
36665           "using std::foo;" in externally visible headers.
36667 Wed Oct 09 10:26:05 BST 2002  Olly Betts <olly@survex.com>
36669         * extra/omparsequery.h: fixed unused parameter warning.
36671 Tue Oct 08 20:32:46 BST 2002  Olly Betts <olly@survex.com>
36673         * tests/stemtest.cc: Added missing space to output.
36675 Tue Oct 08 20:10:35 BST 2002  Olly Betts <olly@survex.com>
36677         * With GCC, add warning flags "-Wall -W" rather than "-Wall -Wunused"
36678           (-Wall implies -Wunused anyway).  Fixed all the warnings this throws
36679           up, except in languages/ (that code is to be replaced with Snowball
36680           soon).
36682 Tue Oct 08 19:57:03 BST 2002  Olly Betts <olly@survex.com>
36684         * testsuite/: Disable colour test output if stdout isn't a terminal;
36685           reworked check for broken exception handling as the previous
36686           version never seemed to fire; added "using" for all the things
36687           we want from std::; improved how signal handlers are set and
36688           unset; report exception class for exceptions derived from OmError
36689           rather than a blanket "OMEXCEPT"; added private copy ctor and
36690           assignment to test_driver to prevent copying.
36692 Tue Oct 08 19:53:02 BST 2002  Olly Betts <olly@survex.com>
36694         * include/om/Makefile.am: remove include/om/om.h on "make distclean",
36695           not "make clean".  Otherwise "./configure ; make clean ; make"
36696           fails which is wrong.
36698 Sun Oct 06 18:37:39 BST 2002  Olly Betts <olly@survex.com>
36700         * PLATFORMS: Updated.
36701         * docs/: Removed Martin's paper - background information for stemmers
36702           is best left to the Snowball documentation.
36704 Sat Oct 05 20:31:55 BST 2002  Olly Betts <olly@survex.com>
36706         * NEWS,configure.in: 0.5.2 release.
36708 Sat Oct 05 03:01:49 BST 2002  Olly Betts <olly@survex.com>
36710         * PLATFORMS: Updated.
36712 Sat Oct 05 02:09:35 BST 2002  Olly Betts <olly@survex.com>
36714         * docs/todo.xml: Updated.
36716 Fri Oct 04 22:34:12 BST 2002  Olly Betts <olly@survex.com>
36718         * PLATFORMS,testsuite/testutils.h: Code to spot mishandled exceptions
36719           doesn't always work - noted this in PLATFORMS, and tweaked the code
36720           a little.
36722 Fri Oct 04 19:08:08 BST 2002  Olly Betts <olly@survex.com>
36724         * backends/quartz/.cvsignore: Added quartzcheck.
36726 Fri Oct 04 18:24:55 BST 2002  Olly Betts <olly@survex.com>
36728         * docs/: converted all text docs to HTML (except omsettings which will
36729           has odd markup (LaTeX?) and will probably soon be obsolete anyway).
36730         * docs/todo.xml: updated.
36732 Fri Oct 04 17:18:33 BST 2002  Olly Betts <olly@survex.com>
36734         * net/socketcommon.cc: Fixed handling of timeouts in the past.
36736 Fri Oct 04 13:51:39 BST 2002  Olly Betts <olly@survex.com>
36738         * PLATFORMS,testsuite/testutils.h: Use typeid() to spot when GCC 2.95
36739           mishandles an exception, and don't count this as a test failure.
36741 Fri Oct 04 03:59:29 BST 2002  Olly Betts <olly@survex.com>
36743         * api/omdatabaseinternal.cc,backends/multi/multi_termlist.h,
36744           matcher/multimatch.cc,matcher/networkmatch.cc,matcher/networkmatch.h:
36745           pulled uses of dynamic_cast<> to higher up in the code.
36747 Fri Oct 04 03:53:44 BST 2002  Olly Betts <olly@survex.com>
36749         * PLATFORMS,backends/quartz/{btree.cc,quartz_metafile.cc}: Fixed quartz
36750           problems on platforms where sizeof(long) != 4.
36751         * PLATFORMS: Updated in the light of investigations into test failures
36752           on x86 Redhat Linux - only multierrhandler1 with the remote backend
36753           is actually a problem.
36755 Wed Oct 02 16:32:48 BST 2002  Olly Betts <olly@survex.com>
36757         * NEWS: Updated for 0.5.1 release.
36759 Wed Oct 02 16:01:50 BST 2002  Olly Betts <olly@survex.com>
36761         * PLATFORMS,configure.in: 0.5.1 release.
36763 Tue Oct 01 13:34:24 BST 2002  Olly Betts <olly@survex.com>
36765         * docs/: tweaked navigation links in index.html; converted bm25
36766           text document to HTML and linked it in; added todo entry to
36767           locate the "illusion of control" paper.
36769 Tue Oct 01 12:48:41 BST 2002  Olly Betts <olly@survex.com>
36771         * docs/: renamed intro.html to install.html, and userman.html to
36772           overview.html; changed navbar on index.html.
36774 Tue Oct 01 12:37:20 BST 2002  Olly Betts <olly@survex.com>
36776         * bootstrap: fixed adding of directory with xapian.m4 in to
36777           ACLOCAL_FLAGS; added trap to tell user if bootstrapping failed.
36779 Tue Oct 01 12:33:38 BST 2002  Olly Betts <olly@survex.com>
36781         * HACKING,Makefile.am,bootstrap,buildall,xapian.spec.in,
36782           autoconf/dir_contents,docs/todo.xml: Added bootstrap script as a
36783           replacement for buildall (buildall left in place for now until
36784           bootstrap receives wider testing).
36786 Tue Oct 01 12:19:32 BST 2002  Olly Betts <olly@survex.com>
36788         * HACKING,Makefile.am,configure.in,PLATFORMS: require automake 1.6.3
36789           (and hence autoconf 2.54) to fix problem building tests/internaltest
36790           with Solaris make.
36792 Mon Sep 30 20:30:42 BST 2002  Olly Betts <olly@survex.com>
36794         * PLATFORMS: Improved wording about bogus OMEXCEPT failures);
36795           Added results for OpenBSD 3.0 and Solaris 8 on x86 (both work).
36797 Mon Sep 30 20:25:03 BST 2002  Olly Betts <olly@survex.com>
36799         * docs/: Pruned .cvsignore; removed cvs.html (link to CVS info
36800           on website directly); removed using_stemmers.html - those
36801           wishing to use the C API to the stemmers ought to look at
36802           Snowball instead; include HTML versions of quickstart*.cc
36803           in tarballs; improved wording in various places.
36805 Mon Sep 23 19:33:31 BST 2002  Olly Betts <olly@survex.com>
36807         * net/Makefile.am: Fixed building of readquery.cc from readquery.ll.
36809 Sun Sep 22 03:57:20 BST 2002  Olly Betts <olly@survex.com>
36811         * PLATFORMS: Updated.
36813 Fri Sep 20 15:09:25 BST 2002  Olly Betts <olly@survex.com>
36815         * PLATFORMS: Added note about bogus OMEXCEPT test failures with
36816           GCC 2.95.
36818 Fri Sep 20 01:36:35 BST 2002  Olly Betts <olly@survex.com>
36820         * NEWS,PLATFORMS,configure.in: 0.5.0 release!
36822 Fri Sep 20 01:01:52 BST 2002  Olly Betts <olly@survex.com>
36824         * Makefile.am: Perl module we need to process todo.xml is XML::Parser
36825           not XML, so corrected error message.
36826         * configure.in: Commented out MSG_WARN() when Perl modules XML::Parser
36827           or Text::Format aren't found.  In a release tarball, this only
36828           matters if you modify docs/todo.xml, and the warning message(s) may
36829           alarm those building the software.
36831 Thu Sep 19 00:57:23 BST 2002  Olly Betts <olly@survex.com>
36833         * .cvsignore: Added depcomp, missing, mkinstalldirs.
36835 Thu Sep 19 00:49:01 BST 2002  Olly Betts <olly@survex.com>
36837         * HACKING: Added note about safe way to generate files in make rules.
36839 Thu Sep 19 00:45:51 BST 2002  Olly Betts <olly@survex.com>
36841         * PLATFORMS: Tested on Solaris 7 with GCC 2.95.3 (works) and Solaris 8
36842           Sun Workshop C++ compiler (fails to compile).
36844 Thu Sep 19 00:41:53 BST 2002  Olly Betts <olly@survex.com>
36846         * ar-wrapper-solaris,ltconfig,Makefile.am: libtool 1.4 doesn't use
36847           ltconfig, and that's the only thing that uses ar-wrapper-solaris,
36848           so removed both.  Fairly sure the problem they address was fixed
36849           in libtool so time ago.  Xapian doesn't build with Sun's C++
36850           compiler at the moment anyway, so it's moot for the release.
36852 Thu Sep 19 00:26:37 BST 2002  Olly Betts <olly@survex.com>
36854         * docs/todo2html.pl: Handle release "*" specially - it indicates
36855           tasks to be done for each release.
36857 Thu Sep 19 00:05:40 BST 2002  Olly Betts <olly@survex.com>
36859         * configure.in,include/om/om.h.in: Tweaked how generation of om.h
36860           works to avoid problems with Sun's C++ compiler.
36862 Wed Sep 18 19:21:47 BST 2002  Olly Betts <olly@survex.com>
36864         * net/Makefile.am,net/readquery.ll: #include <config.h>
36865           must be included before any other headers, but that seems to be
36866           impossible to arrange in lex/flex so we use echo and cat in the
36867           Makefile to arrange this.
36869 Wed Sep 18 17:35:00 BST 2002  Olly Betts <olly@survex.com>
36871         * include/om/Makefile.am: We want to install om/om.h, but not
36872           distribute it or people with a different compiler to whoever
36873           ran "make dist" will get the "ABI mismatch" error.
36875 Wed Sep 18 13:16:14 BST 2002  Richard Boulton <richard@tartarus.org>
36877         * docs/.cvsignore: Add docs/doxygen_full_warnings.
36878         * include/om/.cvsignore: Add include/om/om.h.
36880 Wed Sep 18 11:06:12 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36882         * include/om/Makefile.am: We really should install om/om.h, or
36883           applications can't build against us.
36885 Wed Sep 18 05:10:24 BST 2002  Richard Boulton <richard@tartarus.org>
36887         * docs/doxygen_{api,full}_header.html_tmpl: Remove meta robots tag -
36888           why shouldn't this be indexed?  Now the omega I set up pointing
36889           at copies of this should actually index something.
36891 Wed Sep 18 04:52:20 BST 2002  Olly Betts <olly@survex.com>
36893         * configure.in: Merged two sed invocations into one - we don't want
36894           configure to run any slower than it has to.
36896 Wed Sep 18 04:17:58 BST 2002  Richard Boulton <richard@tartarus.org>
36898         * configure.in: Don't put confdefs.h into SOURCEDOC_H_SRC - this
36899           file only exists during the configure run.  Fixes failure of
36900           "make doxygen_docs" in docs/
36902 Tue Sep 17 13:07:39 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36904         * Updated PLATFORMS file.
36906 Mon Sep 16 19:40:02 BST 2002  Olly Betts <olly@survex.com>
36908         * docs/todo.xml: Updated.
36910 Mon Sep 16 18:09:29 BST 2002  Olly Betts <olly@survex.com>
36912         * tests/api_db.cc: don't run consistency1 test on the remote backend
36913           - it's particularly slow with that, and testing it there doesn't
36914           actually improve the test coverage really.
36916 Mon Sep 16 17:15:46 BST 2002  Olly Betts <olly@survex.com>
36918         * configure.in,docs/Makefile.am: Added workaround for pattern length
36919           limits in Solaris sed.
36921 Mon Sep 16 17:13:20 BST 2002  Olly Betts <olly@survex.com>
36923         * include/om/om.h.in: Added explanatory comments for developers.
36925 Mon Sep 16 14:22:48 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36927         * om/om.h needs to be in CLEANFILES or make distcheck fails
36929 Mon Sep 16 13:37:04 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36931         * Now om/om.h is built from om/om.h.in, it may be in the build
36932           directly. Consequently, we need to add that to the include path
36933           for VPATH builds. Plus (also for VPATH), om/om.h needs to be
36934           output after AC_OUTPUT, because otherwise the destination
36935           directory may not exist.
36937 Mon Sep 16 04:19:54 BST 2002  Olly Betts <olly@survex.com>
36939         * configure.in,docs/todo.xml,include/om/Makefile.am,include/om/om.h,
36940           include/om/om.h.in: When building the library with GCC, generate
36941           include/om/om.h with preprocessor code to check that any version
36942           of GCC used to build applications has a matching C++ ABI.
36944           This means that users get a nice explanatory error message rather
36945           than a confusing link failure (or worse a program which builds
36946           but crashes).  Another benefit is that the check happens near the
36947           start of compilation of the first source file which uses Xapian
36948           in the user's application, rather than during the first attempt
36949           to link with Xapian.
36951 Sun Sep 15 01:42:19 BST 2002  Olly Betts <olly@survex.com>
36953         * net/tcpserver.cc: Solved std mystery - "using namespace std;" was
36954           inside a #ifdef which wasn't enabled!
36956 Sun Sep 15 01:21:34 BST 2002  Richard Boulton <richard@tartarus.org>
36958         * tests/tcpserver.cc: Hacky fix to compile with gcc-3.2 snapshot in
36959           Debian unstable - add a FIXME to work out why this is needed.
36960         * todo: add entry about checking ABI versions using
36961           __GXX_ABI_VERSION macro.
36963 Sat Sep 14 22:39:11 BST 2002  Olly Betts <olly@survex.com>
36965         * configure.in,tests/Makefile.am,tests/internaltest.cc: It turns out
36966           that internaltest *does* need -fno-access-control, so put it back.
36967           Not quite sure how I missed this.  Changed to skip refcnt tests
36968           when -fno-access-control isn't available (rather than omitting them
36969           entirely).
36971         * tests/api_db.cc: Fixed compile problem.
36973 Sat Sep 14 21:44:34 BST 2002  Olly Betts <olly@survex.com>
36975         * internaltest: doesn't actually need -fno-access-control these
36976           days, so removed it and the configure tests for it.
36978         * stemtest: recoded to be all in C++ and removed use of intermediate
36979           files for random data tests - now runs ~15% faster; no longer need
36980           HAVE_PERL so removed from configure.
36982         * apitest: use C++ streams rather than stdio; stubdb1 now cleans up
36983           the temporary file it creates.
36985 Sat Sep 14 12:54:52 BST 2002  Olly Betts <olly@survex.com>
36987         * docs/Makefile.am: fix "mv apidoc/latex/refman.ps avidoc.ps" which
36988           fails after recent change.
36990 Sat Sep 14 11:15:33 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36992         * Renamed simple* programs in quickstart docs to quickstart* to
36993           avoid confusion with the simple* programs in xapian-examples.
36994           (Thanks to Alex Bowley for pointing out the confusion.)
36996 Sat Sep 14 10:00:35 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36998         * configure.in: returned AC_CONDITIONAL for HAVE_PERL
37000 Sat Sep 14 09:29:08 BST 2002  Richard Boulton <richard@tartarus.org>
37002         * buildall: change to srcdir before testing for necessary tools
37003           so that scripts which guess which autotools version to use have more
37004           information available to guess with: for example, the Debian
37005           autoconf version guessing script looks for "configure.ac" as a sign
37006           that autoconf 2.50+ is required.
37008 Sat Sep 14 02:50:23 BST 2002  Olly Betts <olly@survex.com>
37010         * docs/distributed.txt,docs/quartzdesign.html,docs/todo.xml: assorted
37011           documentation updates.
37013 Sat Sep 14 02:10:12 BST 2002  Olly Betts <olly@survex.com>
37015         * PLATFORMS: removed note about VPATH problems.
37017 Sat Sep 14 02:02:58 BST 2002  Olly Betts <olly@survex.com>
37019         * btree.cc,btree.h: rearranged Btree::del() so control flow is clearer.
37021 Sat Sep 14 01:56:44 BST 2002  Olly Betts <olly@survex.com>
37023         * HACKING,docs/Makefile.am: added evil hack to allow VPATH builds to
37024           work with BSD make.
37026 Wed Sep 11 11:29:07 BST 2002  Olly Betts <olly@survex.com>
37028         * backends/database_builder.cc: Quartz is fairly mature - change
37029           comment which suggests that the btree names will change.
37031 Wed Sep 11 11:13:43 BST 2002  Olly Betts <olly@survex.com>
37033         * configure.in: Don't double quote `$MISSING foo' as autoconf adds them
37034         * docs/Makefile.am: Use `test a = b' rather than `test a == b'
37036 Tue Sep 10 14:50:16 BST 2002  Olly Betts <olly@survex.com>
37038         * configure.in: tweaked test for perl modules - stderr is now
37039           fully suppressed on sh (which behaves slightly differently to bash).
37041 Tue Sep 10 14:27:15 BST 2002  Richard Boulton <richard@tartarus.org>
37043         * backend_manager.cc: Fix stub database code so that it doesn't use
37044           the gnu extension "getline()".
37046 Tue Sep 10 13:51:20 BST 2002  Olly Betts <olly@survex.com>
37048         * quartz_table.cc: don't form tag when we just want to check if a
37049           key is present before calling Btree::del().  Working out why
37050           we can't call Btree::del() would still be worthwhile though.
37052 Tue Sep 10 13:02:04 BST 2002  Olly Betts <olly@survex.com>
37054         * quartztest.cc: removed unused #include-s; describe valid options
37055           in usage message.
37057 Tue Sep 10 02:07:29 BST 2002  Olly Betts <olly@survex.com>
37059         * remote backend: implemented term_exists() and get_termfreq();
37060           added test to check they work.
37062 Mon Sep  9 12:59:15 BST 2002  Richard Boulton <richard@tartarus.org>
37064         * Add stub databases: if backend type is auto, and auto_dir points
37065           to a file, read in settings from the file (overwriting the
37066           existing ones), and then use them to open the database.
37067           This allows, for example, omega to open a remote database by
37068           putting in a stub database file in the omega directory.
37069           Updated documentation for opening databases in userman.html.
37070         * apitest: Added test for stub databases.
37072 Mon Sep 09 02:26:36 BST 2002  Olly Betts <olly@survex.com>
37074         * Documentation updates: move suggested books into intro_ir.html
37075           and added URL for citeseer reference Richard posted to mailing
37076           list recently; clarified wording in a couple of places.
37078 Sat Sep  7 12:52:12 2002  James Aylett  <tartarus@users.sourceforge.net>
37080         * docs: fixed references to OmDocumentContents (now OmDocument)
37081           which had clearly been broken for a while. Also fixed get_data()
37082           and set_data() example usage so it reflects reality (I hope).
37084 Wed Sep 04 22:46:17 BST 2002  Olly Betts <olly@survex.com>
37086         * Corrected min_item.wt to min_wt in two assertions.
37088 Thu Aug 15 11:42:20 BST 2002  Richard Boulton <richard@tartarus.org>
37090         * buildall: Only add the directory derived from xapian-config
37091           to ACLOCAL_FLAGS if it actually exists.
37093 Mon Aug 12 01:13:55 BST 2002  Richard Boulton <richard@tartarus.org>
37095         * quartz_table.cc: Check that a key exists before calling
37096           Btree::del() - there seems to be a bug in the btree code
37097           causing a failure when deleting keys if they don't exist.
37098           This work around appears to make things work correctly, but
37099           won't be terribly efficient.
37101 Mon Aug 12 00:09:21 BST 2002  Richard Boulton <richard@tartarus.org>
37103         * quartz_table_manager.cc: When unable to apply modifications,
37104           call cancel on the buffered table after reopening disk table
37105           at old revision - otherwise, the entry count gets messed up.
37106         * quartz_table.cc, quartz_database.cc: Improve debugging and
37107           error reporting: I'm trying to work out why the failure Olly
37108           reported is occurring.
37110 Sat Aug 10 15:12:42 2002  James Aylett  <tartarus@users.sourceforge.net>
37112         * Fixed missing include in quartzcheck.cc
37114 Sat Aug 10 14:57:17 2002  James Aylett  <tartarus@users.sourceforge.net>
37116         * Fixed typo in quartzcheck.cc
37118 Tue Jul 23 22:12:34 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37120         * Added a note to the effect that the indexgraph stuff isn't
37121           really considered useful to the HTML document introducing it.
37123 Tue Jul 23 22:09:39 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37125         * Added some comments in quartztest test_create1(), in case anyone
37126           else who didn't write it needs to understand it.
37128         * Added Olly as an active participant to the AUTHORS file :)
37130 Tue Jul 23 21:59:50 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37132         * Reworded quickstart document so it does not refer to the example
37133           code (it was never actually in sync).
37135 Mon Jul 22 14:07:18 BST 2002  Sam Liddicott <sam@ananova.com>
37137         * Forgot to actually add the quartzcheck.cc file last time
37139 Mon Jul 22 13:28:09 BST 2002  Sam Liddicott <sam@ananova.com>
37141         * Add buildprereq to package
37142           Add quartzcheck which runs btree::check to backends
37144 Tue Jul 16 09:44:56 BST 2002  Sam Liddicott <sam@ananova.com>
37146         * Fix banding problem; bands are now based on the percentage
37147           not the weight, and using integer maths to avoid problems
37148           with ceil() rounding up supposed integers which are really
37149           slightly larger due to precision errors
37151 Thu Jul 11 00:16:22 BST 2002  Olly Betts <olly@survex.com>
37153         * configure.in, docs/Makefile.am: configure fixes for Solaris - clear
37154           cached result for fdatasync since it may be wrong if we decide we
37155           need to link librt; split SOURCEDOC_SRC into two to avoid hitting
37156           4096 char line length in Solaris sed.
37158 Tue Jul 09 17:47:31 BST 2002  Olly Betts <olly@survex.com>
37160         * PLATFORMS, tests/Makefile.am: improved internaltest.cc automake rules
37161           - they should now work in VPATH builds with Solaris make.
37163 Tue Jul 09 03:30:41 BST 2002  Olly Betts <olly@survex.com>
37165         * configure.in, docs/Makefile.am: Fixed up apidoc and sourcedoc
37166           dependencies so that they work correctly in VPATH builds.  Also
37167           only use portable find arguments to generate SOURCEDOC_SRC.
37169 Sat Jul 06 13:53:27 BST 2002  Olly Betts <olly@survex.com>
37171         * xapian.spec.in: Updated in preparation for release.
37173 Sat Jul 06 13:04:45 BST 2002  Olly Betts <olly@survex.com>
37175         * docs/Makefile.am: Run latex twice to get forward references resolved.
37177 Fri Jul 05 18:23:08 BST 2002  Olly Betts <olly@survex.com>
37179         * matcher/multimatch.cc: better (perhaps even completely correct) fix
37180           for sorting into bands.
37182         * matcer/localmatch.cc: removed entirely bogus comment from over-eager
37183           cut-and-paste.
37185         * tests/api_db.cc: added otherwise pointless statement to deldoc3
37186           which seems to fix occasional miscompilation by GCC 2.95.
37188 Fri Jul 05 16:37:12 BST 2002  Olly Betts <olly@survex.com>
37190         * docs/Makefile.am: "make dist" now fails if dot (part of graphviz)
37191           isn't installed.
37193 Fri Jul 05 08:54:33 BST 2002  Sam Liddicott <sam@ananova.com>
37195         * bindings/: removed some typemap hacks as swig has better typemaps now
37197 Fri Jul 05 08:46:06 BST 2002  Sam Liddicott <sam@ananova.com>
37199         * matcher/multimatch.cc: Quick hack to stop 100% being in a band all on
37200           its own.  The real problem is that bands need to include the integer
37201           at the upper end of the range, rather than the lower end.
37203 Thu Jul 04 16:23:52 BST 2002  Olly Betts <olly@survex.com>
37205         * docs/mkdoc.pl: Fixed to work in VPATH builds.
37207 Thu Jul 04 12:42:06 BST 2002  Olly Betts <olly@survex.com>
37209         * configure.in, docs/Makefile.am: use "missing" to give more helpful
37210           errors when we don't find tools we need.
37212 Wed Jul 03 12:39:15 BST 2002  Olly Betts <olly@survex.com>
37214         * NEWS: incorporated recent changes into provisional version.
37216         * docs/: sorted out make rules for running doxygen; don't tell doxygen
37217           to build man pages which we aren't using.
37219 Tue Jul 02 16:36:54 BST 2002  Olly Betts <olly@survex.com>
37221         * docs/: run through ispell; fixed OM_MOP to OmQuery::OP; other
37222           corrections.
37224 Fri Jun 28 02:59:49 BST 2002  Olly Betts <olly@survex.com>
37226         * Backend "auto" now works when creating an OmWritableDatabase which
37227           doesn't already exist - it'll pick a backend which supports writing
37228           and is compiled in (currently this means quartz).
37230 Thu Jun 27 20:31:13 BST 2002  Richard Boulton <richard@tartarus.org>
37232         * backends/quartz/btreetest.cc (sequent1): Add regression test for
37233           recently fixed bug with sequential addition.
37234         * backends/quartz/z_data/ordnum[+-]: Data files for new test.
37236 Thu Jun 27 13:13:37 BST 2002  Olly Betts <olly@survex.com>
37238         * Documentation fettling: removed docs/Notes and
37239           docs/coding_policy.txt moving relevant content into HACKING,
37240           common/postlist.h, docs/todo.xml, and include/om/omtypes.h; install
37241           docs as PostScript rather than DVI; include text docs in tarball and
37242           install them; "make dist" will now fail if a tool needed to build
37243           docs is missing; removed last vestiges of Doc++ support;
37244           doc/Makefile no longer uses include (include isn't portable);
37245           improved doc/tests.txt.
37247 Thu Jun 27 12:10:37 BST 2002  Olly Betts <olly@survex.com>
37249         * apitest: doesn't directly use anything from utils.h, so don't
37250           #include it.
37252 Thu Jun 27 12:05:53 BST 2002  Olly Betts <olly@survex.com>
37254         * Removed includetest - it was useful early in development, but isn't
37255           really now.
37257 Wed Jun 26 22:09:57 BST 2002  Olly Betts <olly@survex.com>
37259         * apitest: deldoc2 and deldoc3 now pass when the library is compiled
37260           with --enable-debug.
37262 Wed Jun 26 19:35:56 BST 2002  Olly Betts <olly@survex.com>
37264         * Removed code which causes quartztest to fail with an --enable-debug
37265           build.
37267 Wed Jun 26 13:55:11 BST 2002  Olly Betts <olly@survex.com>
37269         * todo.xml: added note to fix 100% being in its own sort band.
37271 Wed Jun 26 13:46:02 BST 2002  Richard Boulton <richard@tartarus.org>
37273         * btree.cc: Fix splitting of blocks in sequential mode to ensure
37274           that split happens no earlier than the midpoint.
37276 Wed Jun 26 12:32:47 BST 2002  Richard Boulton <richard@tartarus.org>
37278         * btree.cc: Asserts to check that add_item in sequential mode
37279           when splitting a block is not trying to add to the wrong block,
37280           or to add to a new block which is not empty (or containing more
37281           than one item).
37283 Tue Jun 25 17:53:19 BST 2002  Olly Betts <olly@survex.com>
37285         * Assert that the value of c is sane in GETINT1, etc.
37287 Tue Jun 25 16:30:09 BST 2002  Olly Betts <olly@survex.com>
37289         * btreetest.cc: use C++ IO rather than C stdio; removed commented out
37290           LFSinsertdelete1 test (it was never written and a test suite which
37291           creates 2G files is probably a bit too resource hungry).
37293 Tue Jun 25 13:56:01 BST 2002  Olly Betts <olly@survex.com>
37295         * btree/quartz: More use of const pointers; more use of C++ strings.
37297 Wed Jun 19 08:56:00 BST 2002  Sam Liddicott <sam@ananova.com>
37299         * Fixed spec file to build for prefix=/usr not just install there
37301 Fri Jun 14 16:35:04 BST 2002  Olly Betts <olly@survex.com>
37303         * docs/todo.xml: added 4 new tasks.
37305 Fri Jun 14 16:33:08 BST 2002  Olly Betts <olly@survex.com>
37307         * backends/quartz/quartz_database.cc: Cosmetic changes.
37309 Wed Jun 12 16:31:11 BST 2002  Olly Betts <olly@survex.com>
37311         * QuartzDbKey, QuartzDbTag: just use a string instead of a string
37312           wrapped in a structure.  We've stopped inflicting this on external
37313           developers (OmData, OmKey/OmValue) so why inflict it on ourselves?
37315 Wed Jun 12 12:26:04 BST 2002  Olly Betts <olly@survex.com>
37317         * Btree_item: use C++ strings rather than trying to reimplement them.
37319         * Fix a few warnings about unused parameters.
37321 Wed Jun 12 02:53:16 BST 2002  Olly Betts <olly@survex.com>
37323         * Btree_full_compaction, Btree_close: removed - they just wrap methods
37324           of Btree.
37326 Wed Jun 12 02:28:30 BST 2002  Olly Betts <olly@survex.com>
37328         * Btree_item_create and Btree_item_lose subsumed into Btree_item
37329           and ~Btree_item.
37331         * Pass C++ strings rather than const char * into various Btree open
37332           methods.
37334         * Removed pointless wrapper functions for Btree open methods.
37336         * Btree_quit removed (just use delete directly).
37338         * Btree_create removed (just use Btree::create directly).
37340 Wed Jun 12 00:48:52 BST 2002  Olly Betts <olly@survex.com>
37342         * form_key is now a method of Btree; more passing of strings rather
37343           than pointer/length pairs); buffer overrun check added to btreetest.
37345 Tue Jun 11 18:04:08 BST 2002  Olly Betts <olly@survex.com>
37347         * More C++ like interfaces (e.g. bool returns, strings rather than
37348           pointer/length pairs).
37350 Tue Jun 11 16:40:08 BST 2002  Richard Boulton <richard@tartarus.org>
37352         * quartz/btree.cc: Fix so that it compiles when BTREE_FULL_DEBUG is on,
37353           and added a couple of Assert()s.
37355 Tue Jun 11 13:09:39 BST 2002  Olly Betts <olly@survex.com>
37357         * Removed a number of btree functions which were simply wrappers for
37358           calling methods on their first parameter, and most of which weren't
37359           even used!
37361         * btree_api.txt: updated to better reflect the object-ized API.
37363 Tue Jun 11 02:01:53 BST 2002  Olly Betts <olly@survex.com>
37365         * Btree::make_index_item(): Added check for buffer overflow.
37367 Tue Jun 11 01:49:51 BST 2002  Olly Betts <olly@survex.com>
37369         * Still more...
37371 Tue Jun 11 01:08:03 BST 2002  Olly Betts <olly@survex.com>
37373         * More btree and quartz tidying.
37375 Mon Jun 10 20:33:24 BST 2002  Olly Betts <olly@survex.com>
37377         * btree.cc,btree.h: cleaned up further.
37379 Mon Jun 10 15:54:49 BST 2002  Olly Betts <olly@survex.com>
37381         * Further btree and quartz cleanups.
37383 Mon Jun 10 14:46:00 BST 2002  Olly Betts <olly@survex.com>
37385         * Fixed typo in recent quartzdump change.
37387 Mon Jun 10 13:20:20 BST 2002  Olly Betts <olly@survex.com>
37389         * Quartz clean-ups - especially QuartzTermList.
37391 Mon Jun 10 12:18:40 BST 2002  Olly Betts <olly@survex.com>
37393         * Bcursor_create made a method of class Btree as suggested by a FIXME.
37395 Mon Jun 10 01:57:53 BST 2002  Olly Betts <olly@survex.com>
37397         * More btree fixes and tidying.  Fixed bug introduced by typo in
37398           previous change which causes tests to fail.
37400 Sun Jun 09 17:50:28 BST 2002  Olly Betts <olly@survex.com>
37402         * btree_util.h: use inlines rather than macros.
37404         * Fix CompileTimeAssert() to avoid potential clashes.
37406 Sun Jun 09 12:46:25 BST 2002  Olly Betts <olly@survex.com>
37408         * btree.cc,btree.h: fixed bug caused by local variable masking member
37409           variable with same name.  Tidied up a lot.
37411 Wed Jun  5 12:22:57 BST 2002  Sam Liddicott <sam@ananova.com>
37413         * Fix OmQuery::op enum handling.
37415 Mon May 27 14:28:06 BST 2002  Sam Liddicott <sam@ananova.com>
37417         * Add crash-protected next() to OmMSetIterator
37419         * Add ->valid() method to iterator which returns FALSE if
37420           the iterator has reached the end
37422         * Added namespace fixes for latest cvs swig to be released next month
37424 Fri May 24 15:28:18 BST 2002  Sam Liddicott <sam@ananova.com>
37426         * Took out the string typemaps as swig now has them in stl.i
37428         * Added om_percent to omtypes.i - I wonder if we might just
37429           read omtypes.h instead, as swig can
37431         * Added OmMSetIterator and made changes to OmMSet
37433 Fri May 24 11:46:50 BST 2002  Sam Liddicott <sam@ananova.com>
37435         * Now support get_matching_terms via swig
37436           I'm not sure how to generally map iterators to php but in
37437           cases where we know only a small number of items exist
37438           to be iterated over it makes sense to return them as a
37439           php array
37441 Tue May 21 15:28:40 BST 2002  Richard Boulton <richard@tartarus.org>
37443         * multi_postlist.cc (get_doclength):  Get the document length from
37444           the appropriate sub-postlist, rather than from the database.
37445           This causes a huge speedup in some cases, since it avoids having
37446           to go to the termlist database for every document considered for
37447           an mset to get the document length.
37448           Added an AssertParanoid to check that the value from the postlist
37449           is the same as that from the database.
37450           This problem was noticed because "delve -v" was running several
37451           orders of magnitude slower than without -v - it is now of
37452           comparable speed.
37454 Tue May 21 15:27:37 BST 2002  Richard Boulton <richard@tartarus.org>
37456         * quartz_values.cc: Small fixes to enable it to compile with debug
37457           turned on.
37459 Fri May 17 14:52:45 BST 2002  Olly Betts <olly@survex.com>
37461         * OmQueryParser::set_database() method added.
37463         * Added disabled code to search for a keyword used in the query.
37465         * Added ' and * to the list of "phrase making characters".
37467         * To make a phrase, a phrase-maker must be followed by an alphanumeric
37468           rather than just a non-space.
37470 Fri May 17 14:49:54 BST 2002  Olly Betts <olly@survex.com>
37472         * INSTALL: GCC 3.1 release version works, so noted this.
37474         * HACKING: Added note about warning-free compilation being desirable
37475           and suggesting using "./configure CFLAGS=-Werror" to promote this.
37477         * NEWS: Minor updates.
37479 Thu May 16 16:57:42 BST 2002  Olly Betts <olly@survex.com>
37481         * Minor tweaks to get a warning-less compile with GCC 3.1.
37483 Thu May 16 13:36:19 BST 2002  Sam Liddicott <sam@ananova.com>
37485         * Clean up the spec file
37487 Thu May 16 12:20:09 BST 2002  Olly Betts <olly@survex.com>
37489         * Documented match_sort_key.
37491 Thu May 16 10:42:47 BST 2002  Sam Liddicott <sam@ananova.com>
37493         * A few quick tips from Olly, now the tarfile name and version no.
37494           stuff comes from autoconf so the spec file won't need tweaking
37495           each time the version number changes
37497 Wed May 15 15:48:42 BST 2002  Sam Liddicott <sam@ananova.com>
37499         * This can build RPM packages.
37500           Get the make-dist tarball and do:
37501           rpm -ta xapian-core-0.4.1-cvs.tar.gz
37502           and it will make source and binary rpms
37503           It doesn't build bindings packages yet but this will come when I
37504           build them
37506 Wed May 15 13:27:21 BST 2002  Richard Boulton <richard@tartarus.org>
37508         * buildall: Allow use of automake 1.6.1 and later, and CVS
37509           automake (versions 1.6[a-z])
37511 Wed May 15 11:40:58 BST 2002  Sam Liddicott <sam@ananova.com>
37513         * SWIG cvs (php4) now writes all output files to the same directory as
37514           the main output file, so need for hacks to move these, also no more
37515           clobbering our source files when building in the checkout dir
37517 Tue May 14 21:54:02 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37519         * Updated PLATFORMS file.
37521 Tue May 14 16:48:07 BST 2002  Olly Betts <olly@survex.com>
37523         * Removed multiple-include protection from config.h - if it's
37524           included more than once it's now a bug and we want to know!
37526 Tue May 14 15:25:05 BST 2002  Olly Betts <olly@survex.com>
37528         * OmQueryParser: parse acronyms as a single term (so "E.T." -> "ET"
37529           and "N.A.T.O" -> "NATO").
37531 Tue May 14 15:23:20 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37533         * Fixed config.h includes: source definition (ie not header) files
37534           #include <config.h> as their first action.
37536 Tue May 14 14:47:00 BST 2002  Olly Betts <olly@survex.com>
37538         * Updated todo.
37540         * extra/parsequery.yy: Fettled indentation.
37542 Tue May 14 13:14:51 BST 2002  Olly Betts <olly@survex.com>
37544         * Added test case for new "embedded &" rule, and fix problem bug it
37545           revealed.
37547 Tue May 14 13:10:33 BST 2002  Olly Betts <olly@survex.com>
37549         * OmQueryParser: Parse <word>&<word> as a single term (e.g. AT&T,
37550           M&S, A&P).
37552 Tue May 14 11:50:03 BST 2002  Olly Betts <olly@survex.com>
37554         * When including config.h, always specify it as <config.h>, not
37555           "config.h", and always do it first.  Both are recommended by
37556           the autoconf documentation.
37558 Mon May 13 17:17:13 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37560         * missing fallback rule all-local in docs/Makefile.am was failing
37561           the build on Solaris
37563 Mon May 13 15:50:31 BST 2002  Sam Liddicott <sam@ananova.com>
37565         * Use new %extends notation for swig.
37567         * Update for new omValue usage
37569         * Add omqueryparser support
37571 Mon May 13 15:12:30 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37573         * shipped getopt will now build in absence of system getopt
37575 Mon May 13 15:09:17 BST 2002  Olly Betts <olly@survex.com>
37577         * configure.in: Moved AH_TOP/AH_BOTTOM to more logical place.
37579         * docs/todo.xml: Updated.
37581 Mon May 13 14:13:27 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37583         * added getopt to DIST_SUBDIRS so distributions work
37585 Fri May 10 14:54:06 BST 2002  Olly Betts <olly@survex.com>
37587         * getopt/: Checked in files I missed last time.
37589 Fri May 10 14:35:52 BST 2002  Olly Betts <olly@survex.com>
37591         * Make sure GNU getopt is linked to everything which might need it so
37592           we build in non-glibc environments.
37594 Fri May 10 13:42:59 BST 2002  Olly Betts <olly@survex.com>
37596         * Replaced second match_sort_key optimisation with one which is
37597           faster and not flawed.
37599 Thu May 09 18:27:30 BST 2002  Olly Betts <olly@survex.com>
37601         * match_sort_key now runs at a sensible speed (approx. 20x speed
37602           up on my test case).
37604 Thu May 09 16:58:11 BST 2002  Olly Betts <olly@survex.com>
37606         * Added another optimisation for match_sort_key - my test case
37607           is now 25% faster (still slow though).
37609 Thu May 09 11:57:59 BST 2002  Olly Betts <olly@survex.com>
37611         * NEWS, PLATFORMS, README: Updated to something approximating what we
37612           want for a release.
37614         * docs/todo.xml: Updated.
37616 Thu May 09 10:57:59 BST 2002  Olly Betts <olly@survex.com>
37618         * Removed references to match_max_or_terms (which was replaced
37619           by OmQuery::OP_ELITE_SET long, long ago).
37621 Wed May 08 17:38:50 BST 2002  Olly Betts <olly@survex.com>
37623         * Improved api documentation comments.
37625 Wed May 08 17:09:14 BST 2002  Olly Betts <olly@survex.com>
37627         * Include findheaders.pl in tarball.
37629 Wed May 08 16:09:14 BST 2002  Olly Betts <olly@survex.com>
37631         * Killed off acconfig.h.
37633 Wed May 08 15:53:11 BST 2002  Olly Betts <olly@survex.com>
37635         * Added autom4te-*.cache to .cvsignore.
37637 Wed May 08 15:50:56 BST 2002  Olly Betts <olly@survex.com>
37639         * Rebuild docs on "make", not just "make dist" or "make install".
37641 Wed May 08 15:07:01 BST 2002  Olly Betts <olly@survex.com>
37643         * Added workaround for problems with <fcntl.h> on Solaris when LFS
37644           is enabled.
37646 Wed May 08 13:44:10 BST 2002  Olly Betts <olly@survex.com>
37648         * Matcher can now sort on a key.  Can be rather slow at present...
37650 Wed May 08 13:15:21 BST 2002  Olly Betts <olly@survex.com>
37652         * Updated todo.
37654 Wed May 08 12:22:53 BST 2002  Olly Betts <olly@survex.com>
37656         * Removed ltmain.sh-s from CVS.
37658 Wed May 08 12:21:32 BST 2002  Olly Betts <olly@survex.com>
37660         * buildall: run libtoolize; stripped out unnecessary stuff.
37662 Wed May 08 09:44:45 BST 2002  Olly Betts <olly@survex.com>
37664         * matcher/msetpostlist.cc: Removed bogus comment cut and pasted from
37665           matcher/mergepostlist.cc.
37667 Tue May 07 17:51:57 BST 2002  Olly Betts <olly@survex.com>
37669         * It's "m4_include", not "m4include".
37671 Tue May 07 17:52:36 BST 2002  Olly Betts <olly@survex.com>
37673         * Added autoconf/type_socklen_t macro.
37675 Tue May 07 16:50:20 BST 2002  Olly Betts <olly@survex.com>
37677         * Now require autoconf 2.50, which allows us to clean up some of the
37678           more unpleasant parts of the build system.
37680 Tue May 07 14:55:37 BST 2002  Olly Betts <olly@survex.com>
37682         * Added "match_sort_bands" option to sort results within relevance
37683           bands.  Currently the sort within each band is by document id, which
37684           isn't really very useful.  The plan is to allow sorting by a key.
37686 Tue May 07 14:54:12 BST 2002  Olly Betts <olly@survex.com>
37688         * Sorted out tests/findheaders.pl wrt last change.
37690 Tue May 07 13:12:23 BST 2002  Olly Betts <olly@survex.com>
37692         * Run perl scripts from Makefiles explicitly with $(PERL) rather than
37693           having them as generated files in AC_OUTPUT.
37695 Mon May  6 16:04:37 2002  James Aylett  <tartarus@users.sourceforge.net>
37697         * Distribution fixes: make clean should now clear up all
37698           required files.
37700 Mon May  6 14:42:46 2002  James Aylett  <tartarus@users.sourceforge.net>
37702         * Don't include dlfcn.h since we don't use it (and doesn't exist
37703           on some target platforms).
37705 Mon May  6 14:07:24 2002  James Aylett  <tartarus@users.sourceforge.net>
37707         * Minor documentation corrections.
37709 Fri May 03 18:14:14 BST 2002  Olly Betts <olly@survex.com>
37711         * Changed autoconf/automake project name to xapian-core, and updated
37712           the documentation to reflect this.
37714         * Disabled the bindings from being included in distribution tarballs.
37716 Fri May 03 18:13:43 BST 2002  Olly Betts <olly@survex.com>
37718         * Updated todo list.
37720 Fri May  3 18:02:06 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37722         * Overloading ambiguity resolutions for linux/alpha build on CF
37724 Fri May 03 17:13:36 BST 2002  Olly Betts <olly@survex.com>
37726         * buildall: Don't run configure or make; removed --no-make and --quiet.
37728 Fri May  3 16:52:01 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37730         * tests/testdata/etext.txt needs to be included in the distribution
37732 Fri May 03 16:18:38 BST 2002  Olly Betts <olly@survex.com>
37734         * Removed OmValue in favour of simply using a string (analogous to
37735           recent OmData change).
37737 Fri May 03 14:52:04 BST 2002  Olly Betts <olly@survex.com>
37739         * Removed unused om_docname typedef.
37741 Fri May 03 14:42:31 BST 2002  Olly Betts <olly@survex.com>
37743         * Terminology change - a "key" (in the OmKey sense) is now a "value".
37745 Fri May  3 14:31:57 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37747         * Fixed up todo list and HTML generation script to cope with
37748           items without an assigned priority.
37750 Fri May 03 14:29:58 BST 2002  Olly Betts <olly@survex.com>
37752         * It's HACKING (not INSTALL) that has details of developer tools.
37754 Thu May 02 15:57:48 BST 2002  Olly Betts <olly@survex.com>
37756         * Removed OmData - just return and take a string instead.
37758 Thu May 02 14:40:21 BST 2002  Olly Betts <olly@survex.com>
37760         * docs/.cvsignore: updated.
37762 Thu May 02 14:38:36 BST 2002  Olly Betts <olly@survex.com>
37764         * Removed assorted references to pthread locking; updated HACKING.
37766 Thu May 02 14:15:47 BST 2002  Olly Betts <olly@survex.com>
37768         * Stripped out OmBatchEnquire stuff, as it's unlikely to get sorted
37769           out any time soon, and it can be extracted from CVS when someone
37770           wants it.
37772 Thu May 02 13:50:04 BST 2002  Olly Betts <olly@survex.com>
37774         * Check for bison >= 1.35 in buildall.
37776 Wed May 01 17:39:57 BST 2002  Olly Betts <olly@survex.com>
37778         * Removed lingering references to Omsee and OpenMuscat.
37780 Wed May 01 16:34:13 BST 2002  Olly Betts <olly@survex.com>
37782         * Removed unused methods from NetClient (read_data and write_data).
37784 Wed May 01 14:01:12 BST 2002  Olly Betts <olly@survex.com>
37786         * Added test consistency1 to check matcher optimisations don't
37787           result in inconsistent results (i.e. that same matches and
37788           weights are returned regardless of size of mset asked for).
37790 Wed May 01 11:48:10 BST 2002  Olly Betts <olly@survex.com>
37792         * Fixed mismatched tags in todo.xml.
37794 Wed May 01 11:46:42 BST 2002  Olly Betts <olly@survex.com>
37796         * Updated todo.
37798 Wed May 01 11:40:47 BST 2002  Olly Betts <olly@survex.com>
37800         * Corrected configure warning message - it's XML::Parser not XML.
37802 Wed May 01 11:34:49 BST 2002  Olly Betts <olly@survex.com>
37804         * Tweaks to get queryparser building cleanly.
37806 Tue Apr 30 17:44:48 BST 2002  Olly Betts <olly@survex.com>
37808         * Updated query parser in extra from the updated one in omega,
37809           and fettled it to cope better with multiple instantiations
37810           (though it's a long way from being reentrant at the moment).
37812 Tue Apr 30 11:03:44 BST 2002  Olly Betts <olly@survex.com>
37814         * Updated todo.
37816 Mon Apr 29 19:28:04 BST 2002  Olly Betts <olly@survex.com>
37818         * More string.c_str() tidying.
37820 Mon Apr 29 17:41:33 BST 2002  Olly Betts <olly@survex.com>
37822         * Tidied up some uses of string.c_str().
37824         * Cleaned up todo list.
37826 Mon Apr 29 16:08:21 BST 2002  Olly Betts <olly@survex.com>
37828         * Updated buildall to check various tools have the required version
37829           numbers.
37831 Mon Apr 29 15:58:57 BST 2002  Olly Betts <olly@survex.com>
37833         * Tweaked use of HAVE_STREAMBUF
37835 Fri Apr 26 14:41:09 BST 2002  Sam Liddicott <sam@ananova.com>
37837         * Swig is now modified so it can build config.m4 and Makefile.in
37838           for php modules so I removed these from bindings/php4
37840 Tue Apr 23 18:21:03 BST 2002  Olly Betts <olly@survex.com>
37842         * Tried compiling with GCC 3.1 prerelease snapshot and fixed various
37843           STL-related warnings (mostly uses of istrstream).
37845         * Fixed usage of AM_CFLAGS and AM_CXXFLAGS.
37847 Tue Apr 23 15:48:36 BST 2002  Olly Betts <olly@survex.com>
37849         * Updated buildall (and had to tweak it again, sigh).
37851 Tue Apr 23 14:21:01 BST 2002  Sam Liddicott <sam@ananova.com>
37853         * Added typemap conversion to generate OmSettings from php hash
37854         * Changed order of classes in interface file
37856 Tue Apr 23 14:20:05 BST 2002  Olly Betts <olly@survex.com>
37858         * Revamped xapian-config and xapian.m4.  Important change - it's now
37859           "xapian-config --cxxflags" and XAPIAN_CXXFLAGS, not --cflags and
37860           _CFLAGS.
37862 Mon Apr 22 17:58:56 BST 2002  Olly Betts <olly@survex.com>
37864         * Removed leak checker.
37866 Mon Apr 22 13:40:01 BST 2002  Olly Betts <olly@survex.com>
37868         * Tiny code tweak.
37870 Mon Apr 22 13:11:32 BST 2002  Olly Betts <olly@survex.com>
37872         * Write debug log using unbuffered IO and O_APPEND which should prevent
37873           the log file becoming garbled when used from applications which use
37874           Xapian objects in multiple threads.
37876 Mon Apr 22 12:19:18 BST 2002  Olly Betts <olly@survex.com>
37878         * Updated copyright notices for last change.
37880 Mon Apr 22 11:20:28 BST 2002  Olly Betts <olly@survex.com>
37882         * Removed thread locks.
37884 Fri Apr 19 17:38:23 BST 2002  Olly Betts <olly@survex.com>
37886         * Removed completed tasks from todo list.
37888 Fri Apr 19 17:26:23 BST 2002  Olly Betts <olly@survex.com>
37890         * Removed placeholder code for OmQuery::OP_PERCENT_CUTOFF - it's
37891           actually impossible to implement since we started rescaling
37892           percentages so that 100% is attainable.
37894 Fri Apr 19 16:42:42 BST 2002  Olly Betts <olly@survex.com>
37896         * Tracked down and fixed the bug in the quartz backend which was making
37897           test poslist2 fail.
37899 Fri Apr 19 16:06:39 BST 2002  Olly Betts <olly@survex.com>
37901         * Fixed some compilation problems which I somehow failed to notice
37902           before the last check-in.
37904 Fri Apr 19 15:04:13 BST 2002  Olly Betts <olly@survex.com>
37906         * Added more RETURN(...) wrappers.
37908 Fri Apr 19 14:46:19 BST 2002  Olly Betts <olly@survex.com>
37910         * Added more DEBUGCALL tracing to quartz.
37912 Fri Apr 19 13:29:57 BST 2002  Olly Betts <olly@survex.com>
37914         * Minor tweaks to quartz_database.cc.
37916 Fri Apr 19 13:07:50 BST 2002  Olly Betts <olly@survex.com>
37918         * Moved test poslist1 into correct place and renamed it to poslist2
37919           since there's already a poslist1...
37921 Fri Apr 19 11:19:15 BST 2002  Olly Betts <olly@survex.com>
37923         * poslist1 (when actually run!) reveals that Quartz fails to throw
37924           errors in this case.  Disabled test for now, as I can't see why it
37925           fails to throw...
37927 Thu Apr 18 17:44:56 BST 2002  Olly Betts <olly@survex.com>
37929         * Added poslist1 test as suggested by a TODO entry.
37931 Thu Apr 18 14:17:24 BST 2002  Olly Betts <olly@survex.com>
37933         * buildall: Removed search for GNU make (as of automake
37934           1.5 it's not needed for automake and we aim to have portable
37935           makefiles).  Made buildall more portable.
37937 Thu Apr 18 14:16:18 BST 2002  Olly Betts <olly@survex.com>
37939         * xapian-config.nodep is a generated file, so don't look for it in
37940           srcdir.
37942 Thu Apr 18 12:45:04 BST 2002  Olly Betts <olly@survex.com>
37944         * Added bindings/php4/xapian/.cvsignore.
37946 Thu Apr 18 12:36:53 BST 2002  Olly Betts <olly@survex.com>
37948         * Minor tweaks to "Makefile" section in HACKING.
37950 Thu Apr 18 12:26:21 BST 2002  Olly Betts <olly@survex.com>
37952         * Yet more Makefile portability fixes; added section to HACKING
37953           summarising my recent experiences.
37955 Thu Apr 18 11:26:37 BST 2002  Olly Betts <olly@survex.com>
37957         * Corrected the sense of the test in the previous check-in.
37959 Thu Apr 18 11:08:04 BST 2002  Olly Betts <olly@survex.com>
37961         * Use case instead of echo/sed to replace dirname.
37963 Thu Apr 18 10:19:01 BST 2002  Olly Betts <olly@survex.com>
37965         * Another Makefile portability tweak.
37967 Wed Apr 17 16:07:02 BST 2002  Olly Betts <olly@survex.com>
37969         * bindings/php4/Makefile.am: Fixed a couple of problems with
37970           recent changes.
37972 Wed Apr 17 15:32:44 BST 2002  Olly Betts <olly@survex.com>
37974         * Makefile portability improvements.
37976 Wed Apr 17 14:29:21 BST 2002  Olly Betts <olly@survex.com>
37978         * Replaced uses of GNU make specific features with more portable
37979           ones.
37981 Wed Apr 17 12:43:07 BST 2002  Olly Betts <olly@survex.com>
37983         * Update todo list.
37985 Wed Apr 17 12:41:03 BST 2002  Olly Betts <olly@survex.com>
37987         * Removed BrightStation's logo from the documentation.
37989 Wed Apr 17 12:27:07 BST 2002  Olly Betts <olly@survex.com>
37991         * xapian-config: Removed --uninst support - it's very hard to make it
37992           work reliably and we're better off directing our efforts towards
37993           improving the library than trying to get it working and keep it
37994           working.
37996 Wed Apr 17 10:39:02 BST 2002  Olly Betts <olly@survex.com>
37998         * Fixed btreetest code to use new names "ord+" and "ord-" for
37999           datafiles; disabled LFSinsertdelete1 test as it's exactly the
38000           same as insertdelete1 (despite the comment above which suggests
38001           it tests files >2G).
38003 Mon Apr 15 17:14:22 BST 2002  Olly Betts <olly@survex.com>
38005         * Fix a few OmDatabase::InternalInterface uses I'd somehow missed.
38007 Mon Apr 15 16:08:20 BST 2002  Olly Betts <olly@survex.com>
38009         * Mark internal classes as @internal for doxygen; removed all uses
38010           of OmDatabase::InternalInterface as it's no longer needed.
38012 Mon Apr 15 15:42:47 BST 2002  Olly Betts <olly@survex.com>
38014         * Updated TODO list.
38016 Mon Apr 15 2002  Sam Liddicott <sam@ananova.com>
38018         * Hacked around bindings and bindings/php to remove some SWIG
38019           workarounds.  SWIG cvs + some new non-committed patches is need still.
38021 Mon Apr 15 12:12:05 BST 2002  Olly Betts <olly@survex.com>
38023         * stemtest: getopt fix.
38025         * stemtest.pl.in: output now: less verbose by default and coloured.
38027 Mon Apr 15 11:18:58 BST 2002  Olly Betts <olly@survex.com>
38029         * Updated HACKING to say that automake 1.5 is required, and note that
38030           automake 1.6.1 is better than 1.6.
38032 Sat Apr 13 20:35:51 2002  James Aylett  <tartarus@users.sourceforge.net>
38034         * Fixed stemtest getopt usage so it works again.
38036 Sat Apr 13 20:20:52 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
38038         * Fixed omtcpsrv getopt usage so it works again.
38040 Fri Apr 12 16:24:06 BST 2002  Olly Betts <olly@survex.com>
38042         * Require automake 1.5.
38044 Fri Apr 12 12:11:57 BST 2002  Olly Betts <olly@survex.com>
38046         * omtcpsrv: Namespace fixes.
38048 Fri Apr 12 12:25:42 BST 2002  Olly Betts <olly@survex.com>
38050         * Fixed everything to use getopt rather than icky handparsing of
38051           options.
38053 Fri Apr 12 11:26:57 BST 2002  Olly Betts <olly@survex.com>
38055         * Removed delve - it's going to be an example program.
38057 Thu Apr 11 18:09:35 BST 2002  Olly Betts <olly@survex.com>
38059         * Command line argument improvements - added FIXMEs where getopt
38060           should be used.
38062 Thu Apr 11 17:01:44 BST 2002  Richard Boulton <richard@tartarus.org>
38064         * Fixes to work with automake 1.6.1.
38065           I recommend using 1.6.1 rather than 1.6, since this fixes many
38066           bugs in 1.6.  I havn't tested with 1.6 recently, but it is likely
38067           to report problems.
38069 Thu Apr 11 17:25:37 BST 2002  Olly Betts <olly@survex.com>
38071         * Use GNU getopt.
38073 Thu Apr 11 15:06:15 BST 2002  Olly Betts <olly@survex.com>
38075         * Updated to recommend automake 1.5, noting problem with automake 1.4
38076           and that we'll probably soon insist on 1.5, and later autoconf 2.50.
38077           Also added notes on recommended and usable GCC versions.
38079 Thu Apr 11 14:23:44 BST 2002  Olly Betts <olly@survex.com>
38081         * Cleaning up build system.
38083 Thu Apr 11 13:18:23 BST 2002  Olly Betts <olly@survex.com>
38085         * Use AndPostList with boolean weights on the RHS instead of
38086           FilterPostList - this appears to fix a bug, but I suspect it's
38087           actually just moving it around.  Will investigate later.
38089 Thu Apr 11 10:11:11 BST 2002  Olly Betts <olly@survex.com>
38091         * Sorted out automake for php4 bindings.
38093 Wed Apr 10 14:44:50 BST 2002  Olly Betts <olly@survex.com>
38095         * Removed a superfluous DEBUGLINE.
38097 Tue Apr  9 19:02:09 BST 2002  Richard Boulton <richard@tartarus.org>
38099         * Fix some DEBUGLINE() macros in the matcher which had
38100           the first parameter missing.
38102 Tue Apr 09 17:50:44 BST 2002  Olly Betts <olly@survex.com>
38104         * Removed stray bit of debug code.
38106 Tue Apr 09 17:05:09 BST 2002  Olly Betts <olly@survex.com>
38108         * More debug tracing added.
38110 Tue Apr 09 10:48:42 BST 2002  Olly Betts <olly@survex.com>
38112         * Disabled pthread support by default.
38114 Sat Apr  6 20:45:21 2002  James Aylett  <tartarus@users.sourceforge.net>
38116         * Reordered some output generation in configure so it won't
38117           complain about directories not existing. (I don't understand
38118           what the problem is, but this does fix it.)
38120 Sat Apr 06 20:27:57 BST 2002  Olly Betts <olly@survex.com>
38122         * Moved a few lingering traces of XML indexer stuff to indexer
38123           subdirectory.
38125 Sat Apr 06 17:37:02 BST 2002  Olly Betts <olly@survex.com>
38127         * Removed -pedantic (read the gcc docs - it's doesn't turn on
38128           useful warnings) and fixed all the remaining compilation
38129           warnings in a non-debug build.
38131 Fri Apr 05 10:21:28 BST 2002  Olly Betts <olly@survex.com>
38133         * Removed --enable-profiling, --enable-purify, and --enable-insure.
38134           They don't do anything which can't be achieved by passing
38135           environment variables and switches to configure (now documented
38136           in HACKING).  Adding a separate switch for every profiling and
38137           code-quality tool out there isn't a sensible approach.
38139 Thu Apr 04 20:37:12 BST 2002  Olly Betts <olly@survex.com>
38141         * Updated .cvsignore files.
38143 Thu Apr 04 20:25:41 BST 2002  Olly Betts <olly@survex.com>
38145         * PTHREAD_CFLAGS was only being used for compiling C, not C++, which
38146           was causing builds to fail unless threading was disabled.  This
38147           problem has been there a long time, but until recently was hidden
38148           by the check for fdatasync erroneously linking in -lrt which pulls
38149           in pthreads anyway (at least this is the situation on Linux).
38151 Thu Apr 04 20:06:00 BST 2002  Olly Betts <olly@survex.com>
38153         * Removed XML indexer stuff from the main xapian library.  All the
38154           removed bits are now in the indexer subdirectory, ready to be
38155           reassembled into a supplementary library.
38157 Thu Apr 04 15:43:43 BST 2002  Olly Betts <olly@survex.com>
38159         * More debug tracing in the matcher.
38161 Thu Apr 04 14:17:10 BST 2002  Olly Betts <olly@survex.com>
38163         * Added debug tracing to most of the matcher.
38165 Thu Mar 28 17:21:16 GMT 2002  Olly Betts <olly@survex.com>
38167         * Give up trying to make internals private or protected in the
38168           header files in include - the consequences are just too ugly, and
38169           it's clear enough that they shouldn't be messed with except by the
38170           library itself.
38172 Wed Mar 27 10:24:26 GMT 2002  Olly Betts <olly@survex.com>
38174         * Don't add "-lrt" to the link line unless it's actually needed for
38175           fdatasync().
38177 Wed Mar 27 10:11:09 GMT 2002  Olly Betts <olly@survex.com>
38179         * Fixed two problems in the matcher which were respectively causing
38180           problems with boolean filters, and with situations where OR or
38181           ANDMAYBE decayed to AND.
38183 Fri Jan 11 18:00:44 GMT 2002  James Aylett  <tartarus@users.sourceforge.net>
38185         * Various build fixes for libxml2: define CHAR as needed,
38186           --enable-validation (off by default), check for and discard
38187           'blank' text/cdata nodes as we encounter them
38189 Fri Jan 11 15:40:50 GMT 2002  Sam Liddicott <sam@ananova.com>
38191         * Added Large File Support in the same way it was added to GNU tar.
38192           (If it's good enough for them...)
38193           This is by means of autoconf/ac_sys_largefile which I'm told is
38194           built in to later versions of autoconf, and may possibly give us
38195           trouble redefining it for those versions...  But we'll see about
38196           that when/if it happens.
38198           It seems to work fine here on some DB's which I had to stop growing
38199           cos they got too big; I'm now past the 2G boundary with no problems
38201           I guess we should still add overflow detection for 2^31 blocks.
38202           Ideas?
38204           I need some help on the btreetest.cc as I haven't yet worked out
38205           what it does; so while I've added a test, it doesn't yet test
38206           what it says it does.  I have changed btreetest.cc so you can
38207           tell it where to dump the test DB
38209 Fri Dec 21 17:48:09 GMT 2001  Olly Betts <olly@survex.com>
38211         * Fixed halflife calculation in OmBiasFunctor.
38213 Fri Dec 21 15:24:58 GMT 2001  Olly Betts <olly@survex.com>
38215         * Added a temporary API to allow use of OmBiasFunctor.
38217 Fri Dec 21 12:58:23 GMT 2001  Olly Betts <olly@survex.com>
38219         * Disable conversion of OR to AND/ANDMAYBE in matcher tree - there's
38220           a bug which sometimes manifests when there's a date filter and a
38221           threshold cutoff in omega, and results in just one match when there
38222           should be more.  I don't believe the bug is actually in OrPostList
38223           but I've been tracking it for 4 days without success and turning off
38224           this optimisation seems to stop it occurring so will have to do for
38225           now.
38227 Thu Dec 20 17:41:04 GMT 2001  Olly Betts <olly@survex.com>
38229         * matcher/multimatch.cc: added more percent_cutoff assertions.
38231 Thu Dec 20 13:41:41 GMT 2001  Olly Betts <olly@survex.com>
38233         * Fixed incorrectly classified debug message; fixed compiler warning;
38234           more comments about matches_* with a percent_cutoff.
38236 Thu Dec 20 13:09:51 GMT 2001  Olly Betts <olly@survex.com>
38238         * Better OmPostListIterator::get_description() (call get_description
38239           on internal->postlist).
38241 Thu Dec 20 12:42:55 GMT 2001  Olly Betts <olly@survex.com>
38243         * Fixed assorted problems with omtcpsrv and co from recent change.
38245 Thu Dec 20 10:41:57 GMT 2001  Richard Boulton <richard@tartarus.org>
38247         * In ./configure --help, correctly report muscat36 backend as
38248           defaulting to off.
38250 Thu Dec 20 10:36:18 GMT 2001  Olly Betts <olly@survex.com>
38252         * Don't delete internal in ~OmWritableDatabase - ~OmDatabase
38253           does that for us (internal was zeroed after delete, so this
38254           was probably harmless)
38256         * Tweaked OmEnquire::get_description() and
38257           OmPostListIterator::get_description() to do less - there's a
38258           debug related bug somewhere and get_description() should be a
38259           non-intrusive method...
38261 Thu Dec 20 10:32:56 GMT 2001  Richard Boulton <richard@tartarus.org>
38263         * Fix a couple of misquoted messages in configure.in.
38265 Tue Dec 18 23:22:00 2001  James Aylett  <tartarus@users.sourceforge.net>
38267         * Use xapian.org where appropriate in documentation references
38269 Tue Dec 18 14:32:32 2001  James Aylett  <tartarus@users.sourceforge.net>
38271         * Use xapian.org not sourceforge for schemas
38273 Mon Dec 17 18:47:08 GMT 2001  Olly Betts <olly@survex.com>
38275         * Cured problems with string('x') caused by overzealous search
38276           and replace on my part.
38278 Mon Dec 17 16:44:31 GMT 2001  Olly Betts <olly@survex.com>
38280         * Improved matches_estimated when a percent_cutoff is in effect.
38282 Sun Dec 16 18:09:28 GMT 2001  Olly Betts <olly@survex.com>
38284         * You can now register a match decider functor by name with an
38285           OmEnquire object.  It's not yet used for anything though.
38287 Sun Dec 16 17:31:08 GMT 2001  Olly Betts <olly@survex.com>
38289         * omtcpsrv: simplified arguments - just list database directories and
38290           they'll be opened with the auto backend.  Removed --im as it didn't
38291           work as advertised and nobody's noticed (as actually implemented it
38292           was useless).
38294 Sat Dec 15 14:10:32 GMT 2001  Olly Betts <olly@survex.com>
38296         * Minor update to todo.xml.
38298 Sat Dec 15 13:43:47 GMT 2001  Olly Betts <olly@survex.com>
38300         * More fettling of OmBiasFunctor stuff - still not ready for use yet...
38302 Tue Dec 11 13:06:08 GMT 2001  Olly Betts <olly@survex.com>
38304         * Don't work out probabilistic weights for boolean bits of the query
38305           (rhs of FILTER and AND_NOT) which fixes incorrect percentage weights
38306           in filtered queries.
38308 Tue Dec 11 12:26:44 GMT 2001  Olly Betts <olly@survex.com>
38310         * Added test singlesubq1 to keep an eye on can_replace_by_single_subq.
38312 Mon Dec 10 16:58:21 GMT 2001  Olly Betts <olly@survex.com>
38314         * can_replace_by_single_subq shouldn't return true for OP_ELITE_SET
38315           since you can't call set_elite_set_size() on an arbitrary subquery.
38317 Thu Dec  6 15:02:05 GMT 2001  Richard Boulton <richard@tartarus.org>
38319         * (omqueryinternal.cc, omtermlistiteratorinternal.h)
38320           Fix some compiler warnings (when compiling with no debug) due
38321           to methods which should return a value but simply contain
38322           "Assert(false);".  Throw an exception in such methods instead
38323           (after the Assert).
38325 Mon Dec 03 11:20:42 GMT 2001  Olly Betts <olly@survex.com>
38327         * New BiasPostList - not yet enabled as it needs more work.
38329 Mon Dec 03 11:16:44 GMT 2001  Olly Betts <olly@survex.com>
38331         * quartzdump: give syntax error if no tables specified.
38333 Thu Nov 29 14:10:43 GMT 2001  Olly Betts <olly@survex.com>
38335         * ExtraWeightPostlist wasn't handling prune correctly.
38337 Thu Nov 22 13:46:59 GMT 2001  Olly Betts <olly@survex.com>
38339         * Fixed segfault when percentage_cutoff emptied the proto-mset.
38341 Thu Nov 22 12:27:49 GMT 2001  Olly Betts <olly@survex.com>
38343         * Enhanced test emptyquery1.
38345 Fri Nov 16 15:32:09 GMT 2001  Olly Betts <olly@survex.com>
38347         * Added OmQuery::is_empty() method.
38349 Thu Nov 15 15:36:07 GMT 2001  Olly Betts <olly@survex.com>
38351         * Updated todo list.
38353 Thu Nov 15 13:03:05 GMT 2001  Olly Betts <olly@survex.com>
38355         * Fixed percent_cutoff problems.
38357 Wed Nov 14 12:05:44 GMT 2001  Olly Betts <olly@survex.com>
38359         * Empty OmQuery() now matches no documents (rather than causing an
38360           exception).
38362 Thu Nov 08 18:23:21 GMT 2001  Olly Betts <olly@survex.com>
38364         * SIGSTKFLT isn't portable, so added #ifdef checks for it.
38366 Wed Nov 07 15:34:29 GMT 2001  Olly Betts <olly@survex.com>
38368         * Fixed 2 GCC 3.0 warnings in muscat36 backend.
38370 Wed Nov 07 14:21:47 GMT 2001  Olly Betts <olly@survex.com>
38372         * Made doc counts returned from percentage cutoff matches more
38373           accurate.
38375 Wed Nov 07 12:30:32 GMT 2001  Olly Betts <olly@survex.com>
38377         * GCC 3.0 fixes.
38379 Tue Nov 06 11:16:42 GMT 2001  Olly Betts <olly@survex.com>
38381         * Matcher now calculates percentages like Omega does (or did as I'm
38382           about to remove that code from Omega), rather than as a percentage
38383           of the theoretical maximum possible weight.  The old way generally
38384           gives disappointingly low values, and by pushing the percentage
38385           code down into the matcher, it can be used to optimise the query.
38387 Tue Nov 06 11:13:06 GMT 2001  Olly Betts <olly@survex.com>
38389         * Quick fix for problems with null OmQuery-s.
38391 Mon Nov 05 15:52:55 GMT 2001  Olly Betts <olly@survex.com>
38393         * Added signal handling to testsuite - if a testcase generates a
38394           signal it is caught and reported, then the testsuite continues
38395           with further testcases.
38397 Wed Oct 31 14:26:59 GMT 2001  Olly Betts <olly@survex.com>
38399         * Removed needless complications in matcher when a weight threshold
38400           has been set.
38402 Tue Oct 30 16:50:46 GMT 2001  Olly Betts <olly@survex.com>
38404         * Removed superfluous lines from configure.in; fixed warning from
38405           automake 1.5.
38407 Mon Oct 29 11:54:36 GMT 2001  Olly Betts <olly@survex.com>
38409         * Changed matcher to form proto-mset using a min-heap (as described
38410           in "Managing Gigabytes", 2nd ed., pp 211-213).  Compared to the
38411           previous "nth-element" approach, this uses about half the memory,
38412           allows the min-weight based matcher optimisations to work sooner,
38413           and should be inherently faster (not yet benchmarked though).  The
38414           code's slightly simpler too.
38416 Mon Oct 29 11:53:38 GMT 2001  Olly Betts <olly@survex.com>
38418         * Fixed remote backend to pass match_cutoff setting across.
38420 Fri Oct 26 13:43:08 BST 2001  Olly Betts <olly@survex.com>
38422         * Reserve size needed for mset vector.
38424 Thu Oct 25 18:00:54 BST 2001  Olly Betts <olly@survex.com>
38426         * Fixed a couple of stray references to the old sleepycat backend.
38428 Tue Oct 23 18:19:32 BST 2001  Olly Betts <olly@survex.com>
38430         * More cleaning up of MultiMatch.
38432 Tue Oct 23 16:14:27 BST 2001  Olly Betts <olly@survex.com>
38434         * Removed RemotePostList - it was an experimental idea which proved
38435           to be too slow even on a fast network.  Cleaned up code where hooks
38436           were bodged in for it.
38438 Tue Oct 23 13:27:12 2001  James Aylett  <tartarus@users.sourceforge.net>
38440         * Added documentation of the test system (albeit brief). Also
38441           mentioned the autotools book in HACKING.
38443 Tue Oct 23 12:07:59 BST 2001  Olly Betts <olly@survex.com>
38445         * Updated .cvsignore files.
38447 Tue Oct 23 11:29:47 BST 2001  Olly Betts <olly@survex.com>
38449         * Code tidying while investigating sporadic fails from quartztest.
38451 Mon Oct 22 17:42:30 BST 2001  Olly Betts <olly@survex.com>
38453         * Minor fettles to quartztest: fixed warnings, whitespace tidying,
38454           use mkdir(...) rather than system("mkdir ...")
38456 Mon Oct 22 16:41:12 2001  James Aylett  <tartarus@users.sourceforge.net>
38458         * Renamed project to Xapian.
38460 Mon Oct 22 14:22:00 BST 2001  Olly Betts <olly@survex.com>
38462         * Fixed non-ISO C++ code so Xapian will compile under GCC 3.0
38463           (and also RedHat's "GCC 2.96").
38465 Mon Oct 22 11:21:45 2001  James Aylett  <tartarus@users.sourceforge.net>
38467         * Altered omseek-config and the AC m4 macro to make uninst
38468           executables link to the right version of the library
38470 Mon Oct 22 10:38:20 2001  James Aylett  <tartarus@users.sourceforge.net>
38472         * Minor fixes to enable build (and test) under Solaris.
38474 Fri Jun 22 13:24:59 2001  Sam Liddicott <sam@ananova.com>
38476         * Added some explicit type casts in xmlindexer and quartz backend
38477           to help gcc2.96 compile.
38479 Thu Jun 21 11:05:31 2001  James Aylett  <tartarus@users.sourceforge.net>
38481         * HACKING updated to (a) remove inaccurate statements about
38482           copyright assignment, and (b) talk about developer write
38483           access to CVS.
38485 Mon Jun 11 13:24:43 2001  James Aylett  <tartarus@users.sourceforge.net>
38487         * pthread support detected using an automake macro. Should
38488           be more portable as a result.
38490         * We need GNU make: buildall now tries to find it.
38492 Mon Jun 11 12:07:00 2001  Hein Ragas <hragas@users.sourceforge.net>
38494         * Modified QuartzWritableDatabase::do_add_document and
38495           QuartzWritableDatabase::do_replace_document to leave the PositionList
38496           empty for a term with no positions associated with it.
38498 Mon May 29 12:17:00 2001  Hein Ragas <hragas@users.sourceforge.net>
38500         * Modified QuartzPostList::add_entry to allow for adding of entries
38501           in the middle of the postlist, not only at the end.
38503 Mon May 28 12:00:00 2001  Hein Ragas <hragas@users.sourceforge.net>
38505         * Fixed a bug in replace_document for Quartz, added a test to
38506           ensure proper working of the fix.
38508 Fri Apr 27 15:16:10 2001  James Aylett  <tartarus@users.sourceforge.net>
38510         * Project name change to Omseek.
38512 Wed Apr 11 09:06:37 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38514         * Implemented deleting of items from postlists, and added some
38515           tests to check that it works properly.
38517         * Fixed a potential memory leak in QuartzPostList if an exception
38518           was thrown from the constructor.
38520         * BackendManager now sets the quartz_logfile setting, to make
38521           the logs available from the testsuite.
38523         * Added mention of quartz_logfile to docs/omsettings
38525         * Removed a bad assert from InMemoryDatabase::get_doclength()
38527 Mon Apr  9 21:48:18 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38529         * Added #include <cmath> to testutils.cc
38531 Fri Mar 30 17:37:24 BST 2001 Olly Betts
38533         * Added extra/.cvsignore
38535 Fri Mar 30 17:22:13 BST 2001 Olly Betts
38537         * Disabled allocation checking of new[] and delete[] since some STL
38538           implementations use them which leads to leaks being reported where
38539           none exist.  This is addressable longer term...
38541 Thu Mar 29 19:05:46 BST 2001  Richard Boulton <richard.boulton@omsee.com>
38543         * Add "extra" directory to om source tree, to hold extra libraries
38544           for use with omsee, which aren't part of the core.
38546         * Put a query parser into "extra".  This is roughly the parser
38547           from omega.  Needs some work: in particular, it needs to be
38548           made reentrant.
38550         * Added extra/ directory to top level Makefile.am and configure.in.
38551           Added AC_PROG_YACC to Makefile.am
38553         * Add includes of required header files to omquery.h.
38555 Wed Mar 28 17:15:22 BST 2001  Richard Boulton <richard.boulton@omsee.com>
38557         * Modifications to OmQuery.  Remove the isbool flag: there is
38558           no longer any need for the concept of a "pure boolean query".
38559           The same effect as was obtained by setting isbool can be
38560           obtained by setting the match_weighting_scheme parameter to
38561           bool.
38563         * Also, undefined queries may no longer be used when
38564           building up composite queries; the correct behaviour for this
38565           is hard to define and implement and harder to document, and
38566           removing this removes lots of special case code.
38568         * Updated network query passing code.
38570         * Remove special cases for bool weighting in localmatch and irweight.
38572         * Updated omsettings docs.  Updated comments in omsetting.h.
38574         * Updated todo.xml
38576         * Incremented network protocol version.
38578         * Added test_emptyop1, which checks what happens when an attempt is
38579           made to use an empty list of subqueries to build up a query, and
38580           then use the query.
38582         * Remove test_boolsubq1: no such thing as a boolean query now, so
38583           no need to test what happens when one is used.
38585         * Updated testsuite to use "match_weighting_scheme" setting, rather
38586           than calling OmQuery::set_bool().
38588 Wed Mar 28 15:05:46 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38590         * Fixes to InMemoryDatabase:
38591           + do_open_post_list returns an EmptyPostList rather than an
38592             assertion error if the term doesn't exist
38593           + Fixed doccount(), which wasn't decrementing on delete_doc()
38594           + Remove terms from the database when they have no more postings.
38595           + Implement collection frequencies, and run collfreq tests for
38596             inmemory.
38598 Wed Mar 28 14:24:38 BST 2001  Richard Boulton <richard.boulton@omsee.com>
38600         * Set elite set size to max(10, sqrt(number of subqueries)) by
38601           default.  This is rather more useful than the old default of 0.
38603 Wed Mar 28 10:25:35 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38605         * QuartzDatabase now implements replace_document(), and
38606           delete_document() now removes keys/attributes as well.
38607           However, postlist entries are not yet correctly removed,
38608           so this will cause problems.
38610         * Added a test for deleting/replacing documents, which passes.
38612 Tue Mar 27 17:31:58 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38614         * QuartzAttributes now has a method to delete a document's
38615           attributes, and QuartzRecordManager has a replace_ method.
38616           (But the code which uses these isn't in this commit).
38618 Thu Mar 22 15:58:08 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38620         * Change definition of OmQuery::is_defined(), so that elite set
38621           queries are undefined until a size is specified for the set.
38623 Wed Mar 21 14:29:04 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38625         * Implemented delete_document and replace_document in inmemory
38626           database.
38628 Wed Mar 21 12:39:13 GMT 2001 Olly Betts
38630         * Tweak to docs/quickstart.html.
38632 Wed Mar 21 02:50:19 GMT 2001 Olly Betts
38634         * Entirely removed sleepcat backend and all references to it.
38636         * Disable muscat36 backend by default.
38638 Tue Mar 20 18:47:12 GMT 2001 Olly Betts
38640         * open_document() now takes a lazy flag - if not set we need to check
38641           that the docid given actually exists.
38643         * heavy_duty flag now a bool instead of an int.
38645 Mon Mar 19 19:16:34 GMT 2001 Olly Betts
38647         * Added test getdoc1 to check exceptions are thrown for out-of-range
38648           docids (currently they aren't for quartz and muscat36 backends).
38650 Mon Mar 19 17:17:31 GMT 2001 Olly Betts
38652         * New simpler implementation of leak detection in testsuite.
38653           Currently doesn't support malloc/calloc/realloc/free.
38655 Mon Mar 19 16:46:16 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38657         * Further small modification to omsee-config: will now look in
38658           .libs subdirectories, too.
38660 Mon Mar 19 15:57:18 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38662         * Update omsee-config to work when a prefix is specified that
38663           points directly to the directory with the library, rather than
38664           expecting the library to be in a subdir "libs/".  (libs/ is
38665           still used if it exists).
38667         * Update omsee.m4, to use omsee-config even when using an
38668           uninstalled version of omsee.  This in turn fixes problems using
38669           uninstalled versions of omsee with STLport.
38671 Fri Mar 16 18:14:52 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38673         * Updated licenses, to include year 2001.
38675 Fri Mar 16 15:40:49 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38677         * Fix up small bug in quartztest causing it to fail for lack of an
38678           expected exception.  Initialise values in quartz_positionlist.cc
38679           when position list is not present.
38681 Thu Mar 15 17:40:38 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38683         * Make timeout absolute, rather than cumulative, when fetching
38684           multiple documents from database: if two nodes fail, the total
38685           timeout should still be that specified, not twice it.
38687         * Make the timeout set by SocketClient::set_query() get reset
38688           correctly if an exception happens (which used to prevent
38689           SocketClient::get_mset() ever getting called).
38691 Thu Mar 15 17:06:51 GMT 2001 Olly Betts
38693         * Oops, checked in too much - backing out the wrong stuff.
38695 Thu Mar 15 16:30:14 GMT 2001 Olly Betts
38697         * Include autoconf/definedir.m4 in tarball.
38699 Thu Mar 15 16:06:02 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38701         * Updated network protocol number to reflect change adding
38702           OP_ELITE_SET.
38704 Thu Mar 15 15:31:35 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38706         * QuartzPositionList should no longer complain if positional
38707           information isn't available for a particular term / document
38708           combination.
38710         * Updated todo.
38712 Thu Mar 15 13:55:53 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38714         * Removed OmDocument::set_wdf() and OmDocument::add_term().
38715           Replaced with OmDocument::add_term_nopos(), which adds a term
38716           without specifying positional information, taking an optional
38717           wdfinc parameter.  Updated testsuite correspondingly.
38719 Thu Mar 15 13:14:10 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38721         * Update TODO
38723 Wed Mar 14 17:51:40 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38725         * Added new operator OP_ELITE_SET, which replaces match_max_or_terms
38726           option.  Can now specify exactly which terms to apply max_or_terms
38727           to.  max_or_terms is obsolete: an error will be thrown if an
38728           attempt is made to use it.
38730 Wed Mar 14 15:56:20 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38732         * Added test for and implementation of multiple XOR queries.
38734         * Fix small bugs with get_termfreq_est() for xor and andnot
38735           postlists.
38737 Mon Mar  5 16:08:01 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38739         * Catch exceptions within the loop in SocketServer - exceptions
38740           should normally not kill the server.  This means that that a
38741           client still works after eg an OmDocNotFoundError, which was
38742           causing problems before.
38744 Fri Mar  2 18:15:47 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38746         * Add a new query operator, OP_WEIGHT_CUTOFF, which returns only
38747           those documents from a query which have a weight greater than a
38748           specified cutoff value.  Also added OP_PERCENT_CUTOFF, but this
38749           is not yet implemented.
38751         * Added test of new cutoff function, cutoff2.
38753         * Updated network protocol to pass new queries.  Increased protocol
38754           version number (to 10).
38756         * Added set_cutoff() function to OmQuery, to set cutoff parameter.
38758         * Updated TODO.
38760         * Remove unused member "PostList * postlist" of LocalSubMatch.
38762 Thu Mar  1 12:04:53 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38764         * Updates to HACKING.
38766 Wed Feb 28 18:42:47 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38768         * Fixes to neaten up configure output, and to test for the Perl
38769           Text::Format module, thanks to James Aylett (patch slightly
38770           modified, so if it doesn't work it's probably my fault).
38772         * configure.in checks for presence of ftime() and gettimeofday()
38774         * Added OmTime, a class to deal with times to an accuracy of
38775           microseconds, or whatever the best accuracy the system supports
38776           is.
38778         * Use OmTime in network code instead of time(NULL).
38780 Wed Feb 28 14:23:11 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38782         * Merge common code from OmSocketLineBuf::wait_for_data() and
38783           OmSocketLineBuf::do_readline() into
38784           OmSocketLineBuf::attempt_to_read(), and thus fix bug in
38785           wait_for_data() when 0 bytes returned from read().
38787 Tue Feb 27 18:40:33 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38789         * Fixes to remote matcher code to cope better with failure of
38790           submatchers:
38791           - Timeout for all submatches now correctly start at same time.
38793         * Added more extensive testing of above code, involving adding
38794           new parameters to inmemory to cause abort()s at various stages of
38795           the match.
38797         * Remove obsolete (and unused) method
38798           SocketServer::read_global_stats()
38800         * Errors are now generated from strings by using omerrortypes.h with
38801           suitable #defines before including it.  Updated todo accordingly.
38803         * Extend scope of try{} clause in socketserver, so that
38804           SocketServerFinished exception never escapes.
38806         * Default timeout in progserver increased to 30000.
38808         * Default timeout in tcpserver increased to 15000.
38810 Mon Feb 26 23:51:23 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38812         * Split query generation into stages: make new query, add subqueries,
38813           then finalise.  Add private methods to OmQuery reflecting this, and
38814           convert constructors into template methods, allowing any iterator
38815           to be used for constructing queries.  Removed reference to
38816           <vector> from omquery.h
38818         * Add omqueryinternal.cc, containing implementation of query
38819           internals. (surprise!)
38821         * OmQuery::Internal now has some helper functions to determine the
38822           properties of each particular query.  These should be converted
38823           into a lookup table, and the remaining hard-coded properties (for
38824           AND_MAYBE, AND_NOT and FILTER) factored out.
38826         * window property removed from constructor.  This can now be set by a
38827           separate call, to "OmQuery::set_window()"
38829         * Added a deleter_vector class, to store subquery pointers in a more
38830           exception-safe way.
38832         * Represent undefined queries by the new OP_UNDEF operation, rather
38833           than a dedicated flag - cleaned up some logic.
38835         * Some modifications to XOR handling: should now behave like OR and
38836           AND - doesn't need to be binary.  (*untested*)
38838         * Fixes to serialisation code in socketcommon.cc to work with new
38839           OmQuery::Internals - this should really be done in
38840           OmQuery::Internal.
38842         * One tiny fix in tcpclient.cc - an &fdset was missed for exception
38843           conditions in a select() call.
38845         * Testsuite modified and expanded to check changes to OmQuery.
38847 Mon Feb 26 18:20:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38849         * Fixed some compiler warnings reported by James Aylett.
38851 Mon Feb 26 14:27:09 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38853         * Avoid waiting for a timeout when closing a SocketClient.
38855 Fri Feb 23 14:38:09 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38857         * Updated todo.xml
38859 Thu Feb 22 18:14:41 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38861         * OmRegexFilterNode has an output for non-matching strings as
38862           well as matching.  "out" output renamed to "matching".
38864 Thu Feb 22 16:56:33 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38866         * Fixed a bug in the fetch() bits: requesting documents at the
38867           same time from different OmMSet instances could cause a
38868           document to disappear from the cache at the wrong moment.
38870 Thu Feb 22 15:39:49 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38872         * Updated todo.
38874 Thu Feb 22 12:14:12 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38876         * Some small changes in quartz to improve exception safety and
38877           error checking.
38879         * Remove unwanted OmExpandWeight::get_expand_k() method.
38881 Wed Feb 21 19:02:44 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38883         * Overhauled the OmMSet::fetch() etc. methods.  Documents are
38884           requested when fetch() is called, but are only fetched (all
38885           at once) when the first get_document() is called.
38887 Wed Feb 21 19:30:20 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38889         * Add an errorhandler member to MultiMatch, and remove it from
38890           various calls which used to pass it about.
38892         * Add an EmptyMatch object, which always returns an emptypostlist.
38894         * Implement errorhandlers at start of query for initially down
38895           nodes.  Improve test for errorhandlers to cover many more cases.
38897         * Add many debug messages to error handling code.
38899 Wed Feb 21 14:33:50 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38901         * Use a deque<> directly instead of a queue, due to conflict
38902           with Solaris headers.
38904         * Split the collect_doc loop into a separate function
38906         * SocketClient should be more robust against request_doc() being
38907           used without collect_doc().
38909 Tue Feb 20 18:01:13 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38911         * SocketClient implements a queue/cache system which means that
38912           collect_doc() doesn't need to be called in the same order as
38913           request_doc().
38915 Mon Feb 19 15:43:49 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38917         * Converted btree code to use new/delete instead of [mc]alloc/free.
38919 Mon Feb 19 13:52:23 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38921         * Added new test collapsekey2 designed to work with muscat36
38922           databases, which have different key handling.  Added two new
38923           categories of tests to cope with this.
38925         * Adjusted BackendManager's key generation, and updated
38926           test_specialterms1() accordingly.
38928 Fri Feb 16 17:26:59 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38930         * Implemented a test for keep-alives
38932         * Added "-tNNNN" option to omprogsrv to pass a timeout value in.
38934         * Added get_network_database() in apitest to set the timeout.
38936 Fri Feb 16 16:13:47 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38938         * Incremented the remote protocol version, since a new message
38939           type has been added.
38941 Fri Feb 16 15:55:31 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38943         * Added an OmDatabase keep_alive() method to gently prod any
38944           remote databases.  Applications can use it to avoid the remote
38945           servers timing out between queries.  Not properly tested yet...
38947 Thu Feb 15 19:05:24 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38949         * The remote server now supports a separate timeout used while
38950           idle, rather than actually servicing a request from the client.
38951           Options --idle-timeout and --active-timeout added to omtcpsrv,
38952           and --timeout sets both timeouts.
38954         * Added a documentation comment or two.
38956 Wed Feb 14 18:43:00 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38958         * In Muscat3.6 backends, don't read the key from the keyfile unless
38959           keyno is 0.
38961 Tue Feb 13 13:57:34 GMT 2001 Andy MacFarlane <andym@omsee.com>
38963         * Added parameter expand_k in omsettings in order to change
38964           value of weighting in expand process.
38966 Tue Feb 13 13:25:45 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38968         * Network timeouts now apply to write() operations as well
38969           as read().
38971         * SocketLineBuf::do_writeline() now correctly deals with EAGAIN.
38973         * SocketServer has new method writeline() which handles write
38974           access to the OmLineBuf.
38976 Mon Feb 12 12:35:41 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38978         * Make OmPositionListIterators and any other appropriate iterators
38979           (postlist, termlist) have a default constructor allowing them to
38980           be declared uninitialised.
38982 Mon Feb 12 10:51:41 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38984         * Updated todo.xml
38986 Thu Feb  8 17:59:44 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38988         * Moved omnodepad.h from include/om to indexer/indexgraph/
38990         * Updated todo.xml
38992 Thu Feb  8 17:35:45 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38994         * Updated todo.xml
38996 Thu Feb  8 17:00:02 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38998         * Quartz now has a metafile which for now has a magic string
38999           and a version number.
39001         * sys_open_to_read() and delete_file() exported from btree.cc.
39002           The latter was renamed to sys_unlink_if_exists().
39004         * Include btree_types.h from btree_util.h
39006 Wed Feb  7 17:33:00 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39008         * Fix to InMemory databases: terms can be added even if they
39009           don't have any positions.  (Was causing adddoc2 to fail).
39011 Tue Feb  6 18:06:13 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39013         * Rename OmMSet::fetch_items() to fetch().  Add an overloaded
39014           fetch() method taking a single iterator, to fetch a single item.
39016         * Fix some documentation comments.
39018 Mon Feb  5 19:16:45 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39020         * Update TODO
39022 Mon Feb  5 19:12:39 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39024         * Test behaviour of OmDocument methods add_term(), set_wdf(),
39025           remove_posting() and remove_term().  Fails for inmemory databases.
39027 Mon Feb  5 17:46:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39029         * Modified the behaviour of timeouts during a match.  Internally,
39030           an absolute timeout time is set from start_match().  Now remote
39031           nodes should timeout at NOW + remote_timeout, rather than
39032           waiting remote_timeout milliseconds for each read().  Needs
39033           some more testing.
39035 Mon Feb  5 17:21:52 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39037         * Fix a missing #include in socketcommon.h
39039 Mon Feb  5 17:15:46 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39041         * Sort generated todo lists.
39043 Fri Feb  2 17:44:54 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39045         * Add an OmDocument::add_term() method.
39047         * Remove an unwanted check that wdf's are greater than 0: wdf of 0
39048           _is_ allowed.
39050 Fri Feb  2 15:04:08 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39052         * Hopefully, a fix for segfaults/assertions when network errors
39053           happen halfway through a match, when handled by OmErrorHandler
39054           objects: give the place-holder EmptyTermLists weighting objects.
39056 Thu Feb  1 19:03:10 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39058         * Fixes to OmDocument interface: add parameters specifying the
39059           changes to be made to the wdf to add_posting and remove_posting,
39060           properly implement remove_posting and remove_term, including
39061           throwing of exceptions, and add a set_wdf() method to set the wdf
39062           to an absolute value.  Corresponding modifications to
39063           OmDocumentTerm.
39065         * Fix commented out errorhandler code in multimatch.cc, so it still
39066           compiles.
39068         * Add a check to avoid division by zero in bm25weight.cc
39070 Thu Feb  1 15:59:30 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39072         * Add a missed #include to omqueryinternal.h
39074 Thu Feb  1 14:44:04 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39076         * Add some error handler code, with a "#if 0"ed out comment,
39077           to multimatch.cc
39079 Wed Jan 31 15:45:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39081         * Remote servers should close down more gracefully when the
39082           client closes down in the middle of a request.
39084 Tue Jan 30 16:52:05 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39086         * Removed unneeded #includes of STL headers from API headers.
39088         * All #includes of files which are not installed use "" rather than
39089           <>.  This means all #includes of OM files except for those which
39090           are in example programs (and hence might be compiled against the
39091           installed library).  "" search paths are a superset of <> search
39092           paths: hence this should ensure that the om headers work however
39093           they are used.
39095         * Moved supplied OmExpandDecider subclasses into
39096           include/om/omexpanddecider.h
39098         * Remove om_termname_list from API: not used except by code which
39099           displays it, and in testsuite.
39101 Tue Jan 30 12:45:22 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39103         * Removed #include <vector> from omstem.h
39105 Tue Jan 30 11:09:29 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39107         * OmStem::get_available_languages() now returns a string
39108           rather than a vector.  Languages are space-separated.
39109           Updated apitest.
39111         * Added definition of RTLD_DEFAULT to internaltest.cc
39113 Mon Jan 29 16:11:15 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39115         * OmIndexerMessage's copy-on-write slightly more careful.
39117         * Improved debugging in OmIndexerNode
39119         * Fixed a bug in the termlistadd node - it tried to append to a
39120           non-vector.
39122 Fri Jan 26 16:21:09 GMT 2001 Olly Betts
39124         * indexerxml.cc: Removed some dead code.
39126 Fri Jan 26 16:11:13 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39128         * Added omindexerdescinternal.h to the Makefile
39130 Fri Jan 26 15:50:32 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39132         * Move OmQuery definition into a separate header file.
39134 Fri Jan 26 15:46:42 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39136         * Move OmQuery::OP_LEAF out of public visibility, by taking it out
39137           of the enum, making it a static const member of OmQuery::Internal,
39138           and introducing an OmQuery::Internal::op_t to store query
39139           operators in internally.  We lose the ability for the compiler to
39140           warn us if we forget to check for a particular operator in a
39141           switch statement, but this can't really be avoided.
39143 Fri Jan 26 13:49:33 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39145         * Added get_output_{node,pad} to OmIndexerDesc
39147         * Implemented and testes OmNodeInstanceIterator
39149         * Implemented OmIndexerBuilder::build_from_desc, which somehow
39150           hadn't been.  indextest now uses it.
39152 Thu Jan 25 18:47:08 GMT 2001 Olly Betts
39154         * Fixed various .cvsignore files (omus -> omsee, and
39155           bindings/java/.cvsignore which seemed to have been copied from
39156           the top level one at some point).
39158         * Fixed bug in OrPostList when used in a pure boolean context
39159           (uninitialised variables).
39161         * tests/internaltest.cc: removed unused reference to getopt.h.
39163         * tests/stemtest.pl.in: removed lots of bogus semicolons after
39164           closing braces.
39166 Thu Jan 25 17:53:08 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39168         * Turn debugging messages (OM_DEBUG_TYPES) off by default.
39170         * Add todo items for release to pages generated for website.
39172 Thu Jan 25 15:11:14 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39174         * Add a couple of documentation comments: we need many more of
39175           these.  No method, and certainly no class, in the API should be
39176           without an explanatory comment (not least so that they're
39177           accessible from the doxygen browser).
39179 Thu Jan 25 14:51:55 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39181         * Hide the internals of OmIndexerDesc, and adding member functions
39182           to do all the necessary operations (not all yet implemented).
39184         * Indexer internals mostly deal with OmIndexerDesc::Internal
39186         * Removed '#include <vector>' from omindexerdesc.h
39188 Thu Jan 25 13:45:49 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39190         * When setting up an RSet, allow documents to be referenced by
39191           OmMSetIterator, for convenience.
39193         * Allow OmMSetIterators and OmESetIterators to be created without
39194           initialising, also for convenience.
39196         * Include CFLAGS for STLPORT in the flags produced by omsee-config.
39198         * Change several more missed "omus"s to omsee.
39200 Thu Jan 25 13:50:06 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39202         * Changed a mention of libomus in netprogs/Makefile.am to libomsee
39204 Thu Jan 25 12:33:46 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39206         * Build only the API docs when making dist / install.  Full source
39207           docs only get built if explicitly asked for.
39209 Thu Jan 25 11:36:39 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39211         * Project name changed to Omsee.
39213           Ramifications from a technical viewpoint are:
39215           - library name changed from libomus.* to libomsee.*
39216           - libomus-config renamed to omsee-config
39217           - Autoconf macro file libomus.m4 renamed to omsee.m4,
39218             macro name OM_PATH_LIBOMUS changed to OM_PATH_OMSEE
39219             and macro now defines OMSEE_CFLAGS and OMSEE_LIBS rather
39220             than LIBOMUS_CFLAGS and LIBOMUS_LIBS.  configure arguments
39221             changed name, also.
39223 Wed Jan 24 15:57:10 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39225         * Improve test of OmMSetIterators equality comparisons.
39227         * Update TODO
39229 Wed Jan 24 15:11:11 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39231         * Renamed OmNodeConnection to OmNodePad.  The old name was
39232           confusing.
39234         * Added OmPadIterator, and OmNodeDescriptor::{in,out}puts_{begin,end}.
39235           Also implemented OmNodeDescriptor::get_type()
39237         * Added output function for OmPadIterator
39239         * Added test for OmPadIterators
39241 Tue Jan 23 19:01:29 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39243         * Remove OmBatchEnquire from system: it may return at a later date,
39244           but for now it is simply out of date and a maintenance liability,
39245           and gives no significant advantage.  Code now exists in
39246           ombatchenquire.h in CVS, but is not part of build process.
39248         * Make OmEnquire and OmMSet have reference counted internals: this
39249           introduces a further layer of indirection, but tidies up things
39250           greatly.
39252         * Remove get_docs() and get_doc() methods from OmEnquire.
39253           get_doc(docid) is catered for by OmDatabase::get_document(docid).
39254           Added OmMSetIterator::get_document() to replace get_doc on a
39255           MSetIterator.  Added OmMSet::fetch_items() to replace get_docs():
39256           it prefetches the documents (or just those specified by some
39257           MSetIterators into a cache in the Mset).
39259         * OmMSet internals now have a reference to the creating OmEnquire
39260           object: this is set up after the mset returns from the matcher.
39261           If the reference is null, the Mset was created standalone, and
39262           get_doc methods will fail.
39264         * OmMSetIterators now have a reference to the MSet, instead of a
39265           percent_factor stored.  This allows the percent_factor to be
39266           lazily calculated, and also allows get_doc to work.
39268         * Add get_rank() method to OmMSetIterators.
39270         * Improve introspection on OmDocument, and fix a bug with assignment
39271           of OmDocument (wasn't assigning most of the internals).
39273         * Add a missing std:: on a string in omstopwordnode.
39275         * Fixed several documentation comments.
39277         * Add some more debugging to quartz.
39279         * Update TODO.
39281         * Add test_fetchdocs1 to apitest.  Disable test_batchquery1.
39283         * Remove sign comparison error in VectorTermList.
39285 Tue Jan 23 16:24:04 GMT 2001 Olly Betts
39287         * No longer compile with -ansi under gcc - it causes problems by
39288           preventing Linux system headers defining various functions we need.
39290         * testsuite/testsuite.cc: when reporting exceptions, display
39291           exception's errno value if set.
39293 Tue Jan 23 15:13:58 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39295         * Killed OmIndexerBuilder::NodeType.  Now use OmNodeDescriptor
39296           in its place, getting rid of another vector usage in the API.
39298         * OmNodeDescriptor adjusted for its new role: internals are
39299           refcounted, and some query as well as setting functions.
39301         * Cast the fourth argument to getsockopt() to void *.  On Solaris
39302           that argument is char *.
39304 Tue Jan 23 11:24:13 GMT 2001 Olly Betts
39306         * Tiny tweak to da_document.cc.
39308 Fri Jan 19 18:36:15 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39310         * Removed get/set vector methods from OmSettings
39312         * Remote/prog arguments now passed in a string separated be spaces,
39313           not a vector.
39315         * split_words() moved from netutils.h to utils.{h,cc}
39317         * Some unnecessary #include <vector> lines removed from API headers
39319         * Removed get_config_vector() from OmIndexerNode
39321         * OmConstantNode no longer handles vector values, and
39322           OmStopWordNode and OmSelectItemsNode use space-separated
39323           values instead.
39325 Thu Jan 18 17:31:55 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39327         * Removed mentions of std::vector from OmIndexerMessage, and
39328           updated the relevant bits.
39330         * Fixed a bug with the copy-on-write parts of OmIndexerMessage.
39332 Thu Jan 18 17:09:43 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39334         * Fix to btreetest.cc: shouldn't fail if test data files are not
39335           available.
39337         * Fix to multimatch.cc: clamp hits values to number of documents
39338           matched after collapsing and match functors, rather than before.
39340 Thu Jan 18 14:13:21 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39342         * Fix error messages thrown by quartz when a database doesn't exist /
39343           already exists and isn't to be overwritten.
39345         * Make quartz clean up an old database directory, if
39346           database_allow_overwrite is specified, so that old base files don't
39347           confuse things.
39349 Wed Jan 17 18:18:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39351         * Added all used toplevel directories to DIST_SUBDIRS
39353 Wed Jan 17 18:13:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39355         * Martin committed changes to btree.cc which should fix some random
39356           problems experienced with quartz.
39358         * Added in a test framework for the btree code, which exhibited the
39359           bug fixed by martin until updating to his fixed version.
39361 Wed Jan 17 16:10:02 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39363         * Moved the socklen_t definition so that tcpclient.cc could see
39364           it.
39366 Tue Jan 16 20:35:18 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39368         * Fix creation of quartz databases in backendmanager: all tests should
39369           now pass.
39371 Tue Jan 16 20:28:46 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39373         * Fix quartztest so that the tables / databases get created.
39374           Implement new test "create1" to check that creation of databases
39375           works as specified.
39377         * Fix test for whether we are allowed to overwrite a database.
39379         * Implement much better logging from quartz when making new databases.
39381         * Clean up an error message from btree.cc
39383 Tue Jan 16 19:24:49 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39385         * Don't display messages about allocation failures in the first
39386           iteration: if the failures go away when repeating, we're not
39387           interested.
39389 Tue Jan 16 18:28:03 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39391         * Add two new OmSettings, for use when opening databases:
39392           database_create and database_allow_overwrite.  The idea is that
39393           databases will only be created if database_create is specified,
39394           and that when they are being created an exception will be thrown
39395           if there's an existing database unless database_allow_overwrite
39396           is specified.
39398         * Implemented database_create and database_allow_overwrite for
39399           Quartz, which is the only relevant type for now.  Note that this
39400           breaks the testsuite, quite badly.
39402         * Add OmDatabaseCreateError, which is thrown when creating a database
39403           fails.
39405 Tue Jan 16 17:08:47 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39407         * Fixed a typo in -ldl detection
39409 Tue Jan 16 15:15:30 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39411         * Remove OmNeedRecoveryError, and quartz's quartz_perform_recovery
39412           parameter.  Quartz now always performs recovery if needed: there
39413           is no need for this added complication.
39415         * Update TODO
39417 Tue Jan 16 14:25:03 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39419         * Changed references to SIGCLD to SIGCHLD as it's more portable.
39421 Tue Jan 16 14:02:34 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39423         * Added check for whether -ldl is necessary.
39425 Tue Jan 16 11:51:25 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39427         * Added compatibility bits for early libxml1 versions.
39429 Mon Jan 15 18:18:01 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39431         * Removed use of hstrerror, which isn't portable.
39433 Mon Jan 15 18:02:42 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39435         * Fix assertion which was the wrong way round in multimatch.cc
39437 Mon Jan 15 17:46:13 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39439         * Fix initialisation of Btree_base::sequential when creating database.
39441 Mon Jan 15 15:43:46 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39443         * Renamed some uses of XML node structure for libxml2 compatibility.
39445 Mon Jan 15 15:35:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39447         * Add some fixes to sequential access to btrees from Martin.
39449 Mon Jan 15 12:23:02 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39451         * Set matches_* to the known value of the number of hits if we have
39452           been unable to return as many hits as were requested, and therefore
39453           know the exact number.
39455         * Update test_matches1() to check this works correctly.  Passes.
39457 Fri Jan 12 17:45:27 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39459         * Implement get_doclength() for QuartzDatabase
39461         * Remove unused parameter from QuartzRecordManager::add_record()
39463 Fri Jan 12 17:14:16 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39465         * Fixed MultiAllTermsList, which had stopped working.
39467 Fri Jan 12 15:32:34 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39469         * Add test to apitest (postlist6) that doclengths got from postlists
39470           are the same as those from databases.  Fails for Quartz for the
39471           moment.
39473         * Add test to quartztest (disktable3) to try and bring out a bug in
39474           adding to tables.
39476 Fri Jan 12 15:20:09 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39478         * Fix STLport macro so that it will accept an STLport installation
39479           with foo/include/stlport and foo/lib instead of foo/stlport and
39480           foo/lib.
39482 Fri Jan 12 14:04:37 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39484         * Fixed buglet in configure.in which produced a bogus warning
39485           about regex libraries.
39487         * Added an AC_MSG_RESULT corresponding to an AC_MSG_CHECKING
39488           for the libxml flags
39490 Fri Jan 12 13:18:07 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39492         * Fixed skip_to() in QuartzAllTermsList
39494 Fri Jan 12 12:52:57 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39496         * Turn debugging off in btree.cc: accidentally committed a version
39497           with lots of verbose debugging on.
39499 Fri Jan 12 11:16:17 GMT 2001 Olly Betts
39501         * glibc 2.2 needs `#define _GNU_SOURCE' to give us RTLD_NEXT.
39503         * C++ comments changed to C comments in malloccheck.c.
39505 Thu Jan 11 16:42:07 GMT 2001 Olly Betts
39507         * Removed unnecessary `#include "alltermslist.h"' from
39508           d[ab]_database.h.
39510 Wed Jan 10 14:28:10 GMT 2001 Olly Betts
39512         * Updated various .cvsignore files.
39514 Tue Jan 09 19:03:12 GMT 2001 Olly Betts
39516         * Tidied up dead code from OmAllTermIterator.
39518 Tue Jan 09 18:41:21 GMT 2001 Olly Betts
39520         * OmAllTermsIterator merged into OmTermIterator.
39522         * When iterating over all terms, skip_to() doesn't set at_end()
39523           when it skips off the end.  Fixed except for quartz and added
39524           regression test (allterms3).
39526 Tue Jan  9 18:14:04 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39528         * Add some extra debugging code into btree code in quartz.
39530 Tue Jan  9 17:22:12 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39532         * Make skip_to() work (ie, do nothing) on OmTermIterators, when the
39533           term iterator is at_end() already.
39535 Tue Jan  9 13:32:08 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39537         * Updates to make the quartzdump utility more useful.
39539         * Added new test to test cursor behaviour in quartz.
39541 Tue Jan  9 11:31:26 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39543         * Remove an item from TODO
39545 Tue Jan  9 10:27:35 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39547         * Add a missing \ in tests/Makefile.am
39549 Mon Jan  8 19:03:42 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39551         * Increment format number in quartz/btree_base.cc.  This isn't
39552           actually due to a change in the btree format, but to ensure that
39553           some databases which were causing problems are rebuilt.
39555           We need to add quartz format numbers, separate from the btree format
39556           numbers, to check this kind of thing.
39558 Mon Jan  8 15:13:04 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39560         * Add some debugging, and fix a test data file.
39562 Mon Jan  8 13:49:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39564         * Fix failure to initialise OmMSet::Internal::have_percent_factor.
39566 Thu Jan  4 17:21:24 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39568         * Add new test for a postlist with many documents, designed to fail
39569           and exhibit the bug andy has found.  So far doesn't fail.
39571 Wed Jan  3 19:30:30 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39573         * Add get_percent method to OmMSetIterator.  Untested.
39575         * Add om_percent type to om_types.
39577         * Add test of sort order of terms in get_matching_terms.
39579 Tue Jan  2 15:05:53 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39581         * Move documentation of parameters for OmSettings out of omsettings.h
39582           and into docs/.  Not in distribution at the moment: it is awaiting
39583           placement into a permanent home (I think the user manual is the
39584           correct place).
39586         * Add a bm25weight_min_normlen parameter: this specifies a cutoff
39587           on the minimum value that can be used for a normalised document
39588           length: smaller values will be forced up to this cutoff.  This
39589           prevents very small documents getting a huge bonus weight.
39591 Wed Dec 20 16:54:41 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39593         * Fix warning in QuartzTable
39595 Wed Dec 20 15:13:05 GMT 2000 Olly Betts
39597         * OmTermListIterator merged into OmTermIterator.
39599         * Added OmRSet::contains() - checks if an RSet contains a given
39600           docid.
39602         * Methods returning `const om_termname' now just return
39603           `om_termname'.
39605 Tue Dec 19 16:55:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39607         * Implemented AllTermsIterator for DA and Multi databases.
39608           Added a test which actually uses a multidatabase, but
39609           disabled it as it currently fails for both Quartz and DA.
39611 Tue Dec 19 12:14:05 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39613         * Adjusted TODO
39615 Tue Dec 19 20:06:43 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39617         * Escaping for termnames in remote database communication modified
39618           to use only characters in range 33 to 126.  Should now work on all
39619           architectures.
39621         * Increased OM_SOCKET_PROTOCOL_VERSION to 8.
39623 Mon Dec 18 17:23:48 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39625         * Added "match_cutoff" option to get_mset OmSettings.
39627         * Added test for "match_cutoff" to apitest.
39629         * Updated todo.xml
39631 Mon Dec 18 17:19:40 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39633         * Implemented opening positionlists from inmemory databases.  Added
39634           a testcase as well, which is run for quartz and inmemory.
39636 Mon Dec 18 15:48:16 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39638         * Implemented AllTermsIterator for quartz.  Interaction with
39639           QuartzPostList needs to be cleaned up.
39641         * Added new functions [un]pack_string_preserving_sort(), which
39642           pack a string in a way which preserves sort order.  Added a
39643           testcase to quartztest.
39645         * Now use [un]pack_string_preserving_order() on postlist keys, so
39646           that we can get at terms in sorted order.  (And get_tname_from_key()
39647           added to separate out the term-unpacking as well as the packing)
39649         * Enabled test_allterms1 in apitest, but put it in a group of
39650           tests only run for inmemory and quartz.  This should be extended
39651           to other backends.
39653 Mon Dec 18 14:33:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39655         * Implemented tests of msetiterator and esetiterator copying and
39656           assignment.
39658         * Fix segfault when assigning to [me]setiterator to end.
39660         * Updated todo.xml
39662 Mon Dec 18 13:52:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39664         * Move creation of first key in a quartz postlist into a named
39665           function (was scattered through the code).
39667 Mon Dec 18 11:19:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39669         * Update todo.xml
39671 Mon Dec 18 10:47:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39673         * Remove const from reverse_iterators in api_db.cc, so get around
39674           brokenness of egcs 1.1.2
39676 Mon Dec 18 09:41:54 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39678         * Added apitest_space.txt to the Makefile.am
39680 Sun Dec 17 16:15:03 GMT 2000 Olly Betts
39682         * Replaced all API uses of om_termname_list with OmTermIterator.
39684 Fri Dec 15 18:54:10 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39686         * Implemented OmAllTermsIterator interface in API.  It works for
39687           inmemory - the rest haven't been implemented yet.  The test
39688           is commented out.
39690 Fri Dec 15 15:47:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39692         * Updated TODO.
39694         * database returns positionlists as AutoPtrs; this neatens some of
39695           the code from the previous changelog entry, and makes explicit the
39696           ownership of the pointer.  postlists and termlists should be
39697           AutoPtrs, likewise.
39699 Fri Dec 15 14:59:41 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39701         * Make OmPositionListIterators retrieved from OmPostListIterators
39702           valid indefinitely (were only valid until OmPostListIterator was
39703           moved).  This makes them consistent with OmPositionListIterators
39704           retrieved from OmDatabases.
39706         * Renamed PostList::get_position_list() to read_position_list.
39707           Added PostList::open_position_list() which opens a new positionlist
39708           and returns it as an AutoPtr.
39710 Fri Dec 15 13:09:51 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39712         * Make TODO.release file, containing TODO items for next release.
39714 Fri Dec 15 12:06:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39716         * QuartzDatabases now autoflush after 1000 changes.
39718 Fri Dec 15 11:40:37 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39720         * Fix segfault in quartz_table
39722 Fri Dec 15 11:23:15 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39724         * Removed begin/end_session() from quartztest
39726 Thu Dec 14 19:19:40 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39728         * Done todo item: For writable databases, make the behaviour currently
39729           obtained by calling begin_session() and later end_session() the
39730           default behaviour.  If users want the changes to be applied
39731           immediately following a change, they should call flush().
39733 Thu Dec 14 17:48:27 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39735         * Fix problem with recalc_maxweight() not being called before a
39736           get_maxweight() in multimatch.cc if a node prunes at the top level,
39737           since recalculate_w_max wasn't being checked at this point.
39738           Introduced helper function getorrecalc_maxweight() to tidy this up.
39740         * Tidy up Asserts in common/netutils.h.
39742 Thu Dec 14 17:11:17 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39744         * Adjusted todo.xml
39746 Thu Dec 14 16:21:27 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39748         * Removed handling of OmDatabaseModifiedError in the API - it's
39749           up to the users to know what to do.  Disabled quartzoverwrite2
39750           as it's now inappropriate.
39752         * Added OmDatabase::reopen() to help them do so.
39754         * Adjusted todo.xml
39756 Thu Dec 14 14:38:39 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39758         * Added another quoting regression test.
39760 Thu Dec 14 14:36:53 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39762         * Fixed the quoting _again_, since it broke with backslashes.
39764 Thu Dec 14 12:49:58 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39766         * Fix problems with recalculation of maxweight in postlists, causing
39767           AssertParanoid at multimatch.cc:393.  When a prune was happening,
39768           recalc_maxweight flag was not always being set, because some
39769           {next,skip_to}_handling_prune() methods weren't being passed the
39770           matcher, and a default argument of 0 was being used.  I've now
39771           removed the default argument and pass the matcher always.
39773           Sometimes the recalc could perhaps be avoided, but this is
39774           certainly safer for now.
39776 Thu Dec 14 12:30:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39778         * Sleepcat is now disabled by default.
39780         * Fixed a problem with tabs not being quoted in the remote case.  All
39781           control characters are now quoted.  Incremented the protocol ver
39782           number.
39784 Thu Dec 14 11:54:17 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39786         * Added regression test to check that all characters can be
39787           are safe to exist in document keys.
39789         * Fixed OmDebug so that it can display messages containing zero bytes
39790           (use fwrite instead for fprintf)
39792 Wed Dec 13 18:43:40 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39794         * Add regression tests to apitest to check that OmMSet and OmESet
39795           begin() and end() iterators compare equal if the mset is empty.
39796           Fix matchfunctor used in test_matchfunctor1 so that it works for
39797           Muscat3.6 databases.
39799 Wed Dec 13 18:35:05 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39801         * Fixed bugs in OmMSet and OmESet iterators: begin() when the set
39802           was empty produced an invalid iterator, and the assignment
39803           operators would have failed when end iterators were involved.
39805         * Added a check in test_matchfunctor1() that the mset returned is
39806           not empty.
39808 Wed Dec 13 18:18:09 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39810         * Turn off tests involving terms with newlines or zero bytes in terms
39811           with Muscat3.6 backends; these can't be expected to work.
39813 Wed Dec 13 18:06:29 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39815         * Uncommented the code in pctcutoff1 - test now passes.
39817 Wed Dec 13 17:53:19 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39819         * Fix: m36_key_file parameter wasn't being set with DA flimsy
39820           databases (thanks to Mark Hagger).
39822         * indextest.cc changed to use "\n" instead of endl - compiles
39823           with STLport again.
39825 Wed Dec 13 17:27:17 GMT 2000 Olly Betts
39827         * OmMSet is now an STL compatible container.
39829         * Om*Iterator::difference_type was unsigned - now signed.
39831         * net/readquery.ll: fixed compiler warning.
39833         * Remote backend was defaulting to collapse on key 0.
39835 Wed Dec 13 16:48:49 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39837         * Add handling of DatabaseModified to OmEnquire::get_mset()
39839 Wed Dec 13 16:28:47 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39841         * Escape zero bytes in the network protocol, since these were
39842           breaking things when being passed across as part of keys.
39844         * Add test of having zero bytes in the collapse keys.
39846         * In testsuite, only display the context of errors if there is one
39847           present.
39849 Wed Dec 13 14:44:46 GMT 2000 Olly Betts
39851         * Implemented OmMSet::operator[]().
39853 Wed Dec 13 14:30:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39855         * Added support for handling overwritten database conditions.
39856           Currently works for OmDocument::get_{data,key}().
39858 Wed Dec 13 13:20:45 GMT 2000 Olly Betts
39860         * Elaborated API hitlist in todo.xml.
39862 Wed Dec 13 12:28:18 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39864         * Fix to BackendManager to stop it removing tables prematurely.
39866 Wed Dec 13 11:49:53 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39868         * Apply the stemmer to query terms used in spaceterms1.  (Not doing
39869           so caused the test to fail spuriously on local databases, since the
39870           terms are stemmed at index time).  The test still fails with da and
39871           db databases.
39873         * Fixed a problem when stats were unpacked from the network stream,
39874           where term names were not correctly unquoted.  This led to double
39875           quoting of global statistics.
39877 Wed Dec 13 02:49:05 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39879         * Implement copy and assignment methods for OmPositionListIterator.
39881 Wed Dec 13 02:37:14 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39883         * ESet and MSet iterators now cope with being copied / assigned when
39884           the internals are null.
39886         * Added copy method to OmPositionListIterator interface.  No
39887           implementation for this yet though, or for the already existing
39888           assignment method.
39890         * Added a couple of easy items to the todo list to check regarding
39891           iterators.
39893 Wed Dec 13 02:19:50 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39895         * Fix small bug in mset_range_is_same{,_weights}()
39897 Wed Dec 13 02:07:59 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39899         * And add copy and assignment for OmESet, similarly.
39901 Wed Dec 13 01:58:38 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39903         * Add copy and assignment operators to OmMSet so that the internals
39904           get copied (rather than just the pointer to them).  Really want a
39905           small internals class, holding a refcount to the real internals, or
39906           else to use refcntptrs for the members of OmMSet::Internal which are
39907           potentially large (eg, items)
39909 Wed Dec 13 01:05:44 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39911         * Add Asserts to api/omdatabaseinternal.cc to ensure that there is at
39912           least one database present when opening termlists, etc.  This should
39913           really be done by throwing errors.
39915         * Add destructor to OmMSet, deleting internals.
39917         * Implement getting positionlists from QuartzDatabases.
39919         * Fix bug in copy constructor of OmDocument::Internal - some fields
39920           were not being copied.
39922         * Fix api_db.cc so it compiles: code referring to mset by subscripting
39923           temporarily commented out.
39925 Tue Dec 12 20:05:10 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39927         * Fix bug with truncation of intermediate keys in btrees.
39929 Tue Dec 12 18:33:12 GMT 2000 Olly Betts
39931         * OmMSet::get_docs() now takes sane parameters.
39933         * Various test programs updated to nearly work with new OmMSet
39934           interface.
39936 Tue Dec 12 17:18:33 GMT 2000 Olly Betts
39938         * Finished cleaning up OmMSet; updated TODO to reflect this.
39940 Tue Dec 12 17:16:02 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39942         * Fix bug with sorting keys in btrees.
39944         * Various fixes to quartzdump.
39946 Tue Dec 12 15:40:28 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39948         * Nettest compiles with new OmMSet interface.
39950 Tue Dec 12 15:09:14 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39952         * Fixed an endless loop in QuartzWritableDatabase::do_delete_document.
39954 Tue Dec 12 15:07:39 GMT 2000 Olly Betts
39956         * OmMSetItem replaced by OmMSetIterator.
39958         * Added OmESet::empty().
39960         * Fixed == on OmESetIterator.
39962 Tue Dec 12 14:16:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39964         * Renamed arguments to compare_keys()
39966 Tue Dec 12 12:05:24 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39968         * Added quartzdump utility to dump the contents of a quartz table.
39970 Tue Dec 12 10:54:44 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39972         * Added constructors and destructor to OmRSet.
39974 Mon Dec 11 16:32:07 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39976         * Remove caching of average length in OmDatabaseInternal, was breaking
39977           asking for the average length of a database which was being
39978           modified.
39980 Mon Dec 11 16:03:46 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39982         * If no documents in database, don't divide by zero in
39983           omdatabaseinternal.cc
39985         * If a document object doesn't come from the database, when iterating
39986           through its termlist don't open postlists from the nonexistent
39987           database; open them from the DocumentTerm objects in the document
39988           instead.
39990         * Remove old unused and undefined method
39991           OmDocument::Internal::add_posting()
39993 Mon Dec 11 13:53:18 GMT 2000 Olly Betts
39995         * omenquire.h: Removed superfluous declaration of OmMSetCmp.
39997 Mon Dec 11 13:38:12 GMT 2000 Olly Betts
39999         * Updated TODO list.
40001 Mon Dec 11 13:24:45 GMT 2000 Olly Betts
40003         * OmRSet internals encapsulated.
40005 Mon Dec 11 12:42:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40007         * OmIndexerMessage::get_element and ...::operator[] now have
40008           non-const versions.  Fixes const-warning in omstemmernode.cc.
40010 Mon Dec 11 12:17:32 GMT 2000 Olly Betts
40012         * Better typedef-s for Om*Iterator::difference_type.
40014 Sun Dec 10 17:51:41 GMT 2000 Olly Betts
40016         * Corrected various typedef-s for Om*Iterator.
40018 Sun Dec 10 17:28:59 GMT 2000 Olly Betts
40020         * Updated TODO to reflect OmESet being cleaned up.
40022         * Term position argument to OmDocument::add_posting() is now
40023           optional (as it was for OmDocumentContents).
40025 Sun Dec 10 16:55:17 GMT 2000 Olly Betts
40027         * OmESetItem is dead - long live OmESetIterator!
40029         * net/socketclient.cc: fixed compiler warning.
40031         * net/socketserver.cc: fixed compiler warning.
40033 Sun Dec 10 13:29:15 GMT 2000 Olly Betts
40035         * Started to encapsulate OmESet/OmESetItem interface.  Interface is
40036           close, but currently implementation is exposed in omenquire.h.
40038         * apitest wasn't running puncterms1 or spaceterms1 - fixed.
40040 Sun Dec 10 11:34:39 GMT 2000 Olly Betts
40042         * om/autoptr.h -> autoptr.h in lots of places.
40044 Fri Dec  8 17:20:04 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40046         * Updated indextest to not use AutoPtr<OmIndexer>
40048 Fri Dec  8 17:14:09 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40050         * Oops - removed one too many #include "autoptr.h"
40052 Fri Dec 08 16:50:42 GMT 2000 Olly Betts
40054         * Updated TODO.
40056 Fri Dec  8 16:44:26 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40058         * IndexerBuilder now returns OmIndexer objects instead of
40059           AutoPtr<OmIndexer>.  OmIndexer's internals are reference
40060           counted.
40062         * Moved autoptr.h from include/om to common/, since it's no
40063           longer used in the API.
40065 Fri Dec  8 16:22:48 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40067         * Fixed omstemmer node bug and made debug slightly more verbose
40068           in indextest.cc.
40070 Fri Dec  8 16:13:36 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40072         * Added a test for OmIndexerMessage to indextest
40074         * Added output operator for OmIndexerMessage
40076         * Fixed a bug introduced into omvectorsplit node
40078         * Changed couts in indextest.cc to touts.
40080 Fri Dec 08 14:53:24 GMT 2000 Olly Betts
40082         * quartztest: removed OmDocumentTerm reference so that it'll
40083           compile (tests fail though).
40085 Fri Dec  8 14:42:46 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40087         * OmIndexerMessage is now a class by itself, replacing OmIndexerData
40088           and the typedef to AutoPtr<OmindexerData>.  It's now a copy-on-write
40089           object.
40091         * The indexer stuff all changed.
40093 Fri Dec 08 14:24:02 GMT 2000 Olly Betts
40095         * omindexdoc.{cc,h}: no longer used so removed.
40097         * Pushed OmDocumentTerm from API level into the internals of the
40098           library.
40100         * Updated TODO.
40102 Fri Dec 08 12:08:49 GMT 2000 Olly Betts
40104         * delve: if just given a database (or list of databases), report the
40105           number of documents and average document length.
40107 Thu Dec  7 20:39:24 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40109         * Fix bug: Om*Iterators which were created over empty lists didn't
40110           have null internals, causing them not to compare equal to end
40111           iterators.
40113         * Added many asserts to iterator code.
40115 Thu Dec  7 20:02:43 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40117         * Removed OmTermListIteratorMap - OmTermListIterator can now be
40118           across either a map or an actual termlist.
40120         * Om*Iterator classes all now delete internals when reaching end,
40121           freeing resources sooner and making the comparison operators much
40122           simpler.
40124 Thu Dec  7 18:33:03 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40126         * Updates to TODO
40128 Thu Dec  7 18:32:39 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40130         * Implementation of write locks for Quartz
40132 Thu Dec  7 18:28:55 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40134         * Fix to backendmanager which doesn't return writable databases
40135           unnecessarily (which breaks things when there are write locks)
40137 Thu Dec  7 18:25:50 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40139         * Added test for Quartz write locks
40141 Thu Dec  7 17:56:19 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40143         * Add OmDocument::set_data() method which takes a string, instead of
40144           an OmData object.  This allows, implicitly, use of const char *'s
40145           as well.
40147         * Further fixes to quartztest.  It now compiles (though I've not
40148           tried linking it yet...)  :)
40150 Thu Dec  7 17:49:50 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40152         * Fixed omkeylistiterator return types.
40154 Thu Dec  7 17:27:57 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40156         * Moved get_document() from OmWritableDatabase to OmDatabase.
40158         * Added -> operator to OmKeyListIterator.  Fixed return values
40159           and constness of Om*Iterator::operator *() methods.
40161         * Some fixes to quartztest.cc, but not enough to get it compiling.
40163 Thu Dec 07 16:21:28 GMT 2000 Olly Betts
40165         * Some work on getting quartztest working.
40167 Thu Dec 07 16:10:00 GMT 2000 Olly Betts
40169         * The library now builds, but "make check" still fails.
40171 Thu Dec  7 15:39:19 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40173         * Fixes to testsuite/index_utils.cc to not segfault.
40175 Thu Dec  7 14:31:56 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40177         * Fixes to api_db.cc so that it compiles.
40179 Wed Dec  6 18:50:48 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40181         * Add test for terms with spaces, newlines, zero bytes, or
40182           backslashes.
40184         * Updates to TODO
40186 Wed Dec 06 18:18:16 GMT 2000 Olly Betts
40188         * Woohoo!  Now builds with just --disable-indexer!
40189           (still doesn't pass any tests).
40191 Wed Dec 06 17:24:19 GMT 2000 Olly Betts
40193         * Minor fix.  Now builds with --disable-indexer
40194           --disable-quartz-backend (but doesn't pass any tests).
40196 Wed Dec 06 16:35:34 GMT 2000 Olly Betts
40198         * Fixed up lots of build errors.
40200 Wed Dec 06 14:56:59 GMT 2000 Olly Betts
40202         * Begin the long job of replacing OmDocumentContents with
40203           OmDocument.  Won't currently build - expect the tree to be broken
40204           for a few days.  As usual, if you want a working build, use the
40205           "snapshot_latest" tag.
40207 Wed Dec  6 12:03:44 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40209         * Backed out yesterday's overwritten-handling stuff.
40211 Wed Dec  6 11:36:55 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40213         * Increase sleep in tcpclient1 to 3 (did tcpmatch1 last time, duh!)
40215 Tue Dec  5 17:13:38 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40217         * QuartzDocument now has a QuartzTableManager pointer rather than
40218           two QuartzTable pointers.
40220         * QuartzDatabase::do_get_document_internal() copes with Btree
40221           overwritten conditions.
40223         * QuartzDocument methods cope with Btree overwritten conditions
40225         * New method QuartzTableManager::reopen_tables_because_overwritten()
40226           for helping with the above.
40228         * New test in quartztest for testing overwritten problems from the
40229           API rather than just internally to Quartz.
40231         * Fixed a typo in omsettings.h comment (quartz_dir used to refer to
40232           a sleepycat database)
40234 Tue Dec  5 16:53:46 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40236         * Update todo.
40238         * Fix undesirable assert in stats.h
40240 Tue Dec  5 15:41:40 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40242         * Replace OmMSet::docs_considered with
40243           OmMSet::matches_{lower_bound,estimated,upper_bound}, giving more
40244           useful information.
40246         * PostLists now have get_termfreq_{min,est,max}(), instead of
40247           get_termfreq(), so the postlist tree can be used to calculate
40248           the matches_* values for the mset.  Implemented for all the
40249           postlist subclasses.
40251           LeafPostList's still has a virtual get_termfreq() method,
40252           and implements get_termfreq_* in terms of it, so database postlists
40253           don't need to be modified.
40255         * Passing of MSets across network modified to pass the new
40256           information.
40258         * PendingMSet uses the values from the mset to return the values
40259           of get_termfreq_*().  This assumes that recalc_maxweight has been
40260           called first, which is has been.
40262         * Muscat36 databases get_termfreq() methods fixed to use a
40263           LeafPostList rather than a PostList.
40265         * Renamed test docs_considered1 to matches1, and add several
40266           more cases to it.
40268 Tue Dec 05 15:38:27 GMT 2000 Olly Betts
40270         * Added tests/testdata/apitest_punc.txt to distribution.
40272 Tue Dec 05 15:07:26 GMT 2000 Olly Betts
40274         * Oops, failed to add new file `tests/testdata/apitest_punc.txt'
40275           with last check-in.
40277 Tue Dec 05 14:34:04 GMT 2000 Olly Betts
40279         * OmTermListIterator implemented for an OmDocument with terms stored
40280           in a map rather than coming from a Document.
40282         * Fixes to remote protocol so solve problems with terms with
40283           punctuation in (regression test punc_terms1).
40285 Mon Dec  4 15:02:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40287         * Makefile tweak in docs/
40289 Mon Dec 04 14:13:05 GMT 2000 Olly Betts
40291         * More OmDocument work.
40293 Mon Dec  4 11:43:46 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40295         * Renamed OmMSet::mbound to docs_considered.
40297 Mon Dec  4 10:11:11 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40299         * Added some more std:: prefixes for STLport.
40301 Fri Dec  1 17:45:01 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40303         * Increase the sleep after the server is started by tcpclient1 to 3
40304           seconds so that the server is more likely to have started when
40305           then test ran.  This seems to be what was causing the test to
40306           randomly fail.  Really, we want a better solution to this (such as
40307           the server picking a port and writing it out on stdout once it is
40308           listening.)
40310 Fri Dec  1 17:27:02 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40312         * Swapped the ports used by tcpclient1 and tcpmatch1 to see if the
40313           random failures follow suit.
40315 Fri Dec  1 17:21:07 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40317         * Another minor fix to work with STLport.
40319 Fri Dec  1 17:01:02 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40321         * Add std::'s and similar to fix compilation with STLport.
40323         * Fix bug in expander due to nth_element being called on the wrong
40324           element.  This is the counterpoint of the bug fixed on Nov 24th
40325           with the matcher.
40327 Fri Dec  1 16:30:26 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40329         * Minor tweaks in error strings.
40331 Fri Dec 01 12:57:59 GMT 2000 Olly Betts
40333         * Corrected erroneous documentation comment.
40335 Thu Nov 30 18:50:16 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40337         * OmSettings no longer throws exceptions internally (at the cost of
40338           slightly more code duplication).
40340 Thu Nov 30 18:05:39 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40342         * Add a few std::'s to strings which had been missed.
40344 Thu Nov 30 16:41:11 GMT 2000 Olly Betts
40346         * OmDocument::Internal now knows its OmDatabase.
40348 Thu Nov 30 16:40:33 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40350         * Add context to network errors thrown from OmSocketLineBuf.
40352 Thu Nov 30 16:21:47 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40354         * Added a quartz test for largish bitmaps.
40356         * Fixed the code so that the above test would pass.
40358 Thu Nov 30 16:10:37 GMT 2000 Olly Betts
40360         * OmDocument::add_posting() pretty much done.
40362 Thu Nov 30 15:51:46 GMT 2000 Olly Betts
40364         * More work on OmDocument::add_posting().
40366         * Added OmTermListIterator::positionlist_begin() and
40367           OmTermListIterator::positionlist_end().
40369 Thu Nov 30 14:16:28 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40371         * Fixed a prototype bug introduced with the last commit.
40373 Thu Nov 30 13:23:14 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40375         * Bcursor::find_key now more const-correct.
40377         * Bcursor_create now returns an AutoPtr.  The resultant changes
40378           fixed a memory leak.
40380         * New exception: OmDatabaseModifiedError.  Thrown when an open
40381           revision of a table is no longer valid due to multiple updates.
40383         * quartzoverwrite1 test re-enabled, and passes.
40385 Thu Nov 30 13:23:27 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40387         * nettest now uses quartz backend: should always run all tests now
40388           (apart from tcpdead1, which doesn't work).
40390 Wed Nov 29 19:46:22 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40392         * In testsuite, report the context of Om exceptions as well as their
40393           type and message.
40395 Wed Nov 29 18:30:10 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40397         * Add "remote_connect_timeout" parameter to be supplied when opening
40398           a remote database, to specify a separate timeout for the connect
40399           operation to that used once the connection has been opened.
40401         * Add setting of the context of errors thrown by tcpclient or
40402           progclient, so that the node which failed can be determined.
40404 Wed Nov 29 17:50:03 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40406         * Reworked Btree_base::read() a bit so that it's hopefully more
40407           readable.
40409         * Hopefully fixed a bug when the bitmap approaches 1k.
40411         * Fix to catch problems re-opening databases after an apply in
40412           Quartz.
40414 Wed Nov 29 17:30:26 GMT 2000 Olly Betts
40416         * Added OmDocument::termlist_begin() and OmDocument::termlist_end()
40418 Wed Nov 29 16:53:13 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40420         * Comment out quartzoverwrite1 test so that it doesn't cause problems
40421           for other developers.
40423 Wed Nov 29 16:27:19 GMT 2000 Olly Betts
40425         * docid now in Document class rather than subclasses.
40427 Wed Nov 29 14:54:13 GMT 2000 Olly Betts
40429         * leafdocument.cc renamed to document.cc
40431         * Document class now has a pointer to the associated Database class
40432           so we can open termlists, etc.
40434 Wed Nov 29 14:03:43 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40436         * Add quartztest to test for case when a database block gets
40437           overwritten.  Currently, this fails because an exception doesn't
40438           get thrown when it should.
40440 Wed Nov 29 13:18:24 GMT 2000 Olly Betts
40442         * LeafDocument class renamed to Document.
40444 Wed Nov 29 12:35:49 GMT 2000 Olly Betts
40446         * Added OmDocument::remove_posting(), OmDocument::remove_term(),
40447           and OmDocument::clear_terms()
40449 Wed Nov 29 12:31:22 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40451         * Added another revision number in the middle of the base file,
40452           before the bitmap.  Also now check that there isn't any extra
40453           data at the end after we finish reading it.  Incremented the
40454           database format.
40456 Wed Nov 29 11:55:03 GMT 2000 Olly Betts
40458         * Added OmDocument::remove_key() and OmDocument::clear_keys()
40460 Tue Nov 28 18:34:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40462         * Btree bitmap now merged with base - one object, one file.
40464 Tue Nov 28 17:13:56 GMT 2000 Olly Betts
40466         * Added OmDocument::set_data()
40468 Tue Nov 28 16:47:06 GMT 2000 Olly Betts
40470         * Started to alter OmDocument to be a general purpose document class
40471           which includes the functionality currently in OmDocumentContents.
40473 Tue Nov 28 15:08:38 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40475         * Added OmSplitOnCharsNode, which does a subset of OmRegexSplitNode
40476           but less slowly.
40478         * Modified RegexSplit node and regexcommon so that less copying
40479           of strings is needed.
40481 Tue Nov 28 13:42:41 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40483         * Moved the Btree's bitmap into a separate object.
40485 Tue Nov 28 13:06:36 GMT 2000 Olly Betts
40487         * Eliminated OmDocumentParams.
40489         * Removed unnecessary mutex from OmDocument::Internal.
40491 Mon Nov 27 18:45:27 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40493         * Implement get_position_list() on databases.  Untested.  Also needs
40494           some work to make consistent with open_position_list() on posting
40495           lists: see todo list.
40497 Mon Nov 27 18:29:00 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40499         * Change #define LEVEL ... to #define GET_LEVEL ... in btree_util.h:
40500           fixes problem reported by includetest
40502 Mon Nov 27 18:20:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40504         * Added a set of modifications to the todo.xml.  Also, add a
40505           "release" field, recording the release that the work must be
40506           performed by.
40508 Mon Nov 27 18:08:35 GMT 2000 Olly Betts
40510         * A RefCntPtr now copes with being assigned to itself (used to
40511           delete the underlying object if the reference count was 1).  Added
40512           regression test (refcnt2).
40514         * Now overwrite pointer inside RefCntPtr before deleting the pointed
40515           to object so there's no window where another thread can access the
40516           pointer and get the just-deleted object.
40518 Mon Nov 27 14:36:59 GMT 2000 Olly Betts
40520         * OmError class now optionally stores an errno value.
40522 Mon Nov 27 13:04:18 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40524         * Quartztest builds its test databases in a subdirectory, which
40525           is now in .cvsignore, so we shouldn't get cvs complaining about
40526           so many unknown files any more.
40528 Mon Nov 27 12:53:16 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40530         * Another TODO item.
40532 Mon Nov 27 12:15:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40534         * Added a couple of new items to the todo list.
40536 Fri Nov 24 19:23:56 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40538         * Quartztests now deletes all old tables, so that database formats
40539           don't cause problems.
40541 Fri Nov 24 19:03:59 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40543         * Added std:: prefix to lots of strings which didn't have it.
40544           I've probably added some where they shouldn't be: there were rather
40545           a lot of cases of this.
40547 Fri Nov 24 18:27:06 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40549         * Major bug fix!  When removing elements, matcher was performing
40550           nth_element() on the first element to be thrown away, rather than
40551           the lowest element to keep.  This meant that, after throwing away
40552           low scoring items, items.back() was a random item rather than the
40553           lowest scoring item.  This caused the min weight for getting into
40554           the mset to go up faster than it should have done, and generally
40555           broke everything.
40557           It will be interesting to compare evaluation measures before and
40558           after this fix.
40560 Fri Nov 24 15:34:17 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40562         * Declare this to be version 0.4.1