api/omenquire.cc,api/omenquireinternal.h,
[xapian.git] / xapian-core / ChangeLog
blob63318fdd36ff9374af4b635d6164a3917110a7ab
1 Fri Jun 05 12:08:02 GMT 2015  Olly Betts <olly@survex.com>
3         * api/omenquire.cc,api/omenquireinternal.h,
4           backends/remote/remote-database.cc,backends/remote/remote-database.h,
5           include/xapian/matchspy.h,matcher/,net/remoteserver.cc,
6           tests/api_none.cc: Add support for optional reference counting of
7           MatchSpy objects.
9 Fri Jun 05 02:55:54 GMT 2015  Olly Betts <olly@survex.com>
11         * backends/remote/remote-database.h: Correct doxygen comment for
12           internal method.
14 Thu Jun 04 12:44:00 GMT 2015  Olly Betts <olly@survex.com>
16         * examples/quest.cc: Prefer pre-increment ++.
18 Thu Jun 04 12:42:49 GMT 2015  Olly Betts <olly@survex.com>
20         * tests/api_compact.cc,tests/api_posdb.cc: Remove unused variables.
22 Thu Jun 04 12:42:04 GMT 2015  Olly Betts <olly@survex.com>
24         * tests/api_backend.cc: Fix compilation in case where S_ISSOCK() isn't
25           defined.
27 Thu Jun 04 12:41:31 GMT 2015  Olly Betts <olly@survex.com>
29         * languages/compiler/generator.c: Remove redundant assignment.
31 Thu Jun 04 12:40:52 GMT 2015  Olly Betts <olly@survex.com>
33         * languages/compiler/generator.c: Remove extra "break;".
35 Thu Jun 04 12:39:51 GMT 2015  Olly Betts <olly@survex.com>
37         * include/xapian/query.h: Remove bogus extra "Query::" qualifier from
38           fake Query constructor prototypes provided for SWIG.
40 Thu Jun 04 12:38:36 GMT 2015  Olly Betts <olly@survex.com>
42         * api/documentvaluelist.h,api/leafpostlist.h,api/matchspy.cc,
43           include/xapian/,net/length.cc: Mark constructors taking a
44           single argument as "explicit" to avoid unwanted implicit
45           conversions.
47 Mon Jun 01 13:11:02 GMT 2015  Olly Betts <olly@survex.com>
49         * NEWS.SKELETON: Remove section for "flint backend" from template.
51 Mon Jun 01 13:09:55 GMT 2015  Olly Betts <olly@survex.com>
53         * NEWS,configure.ac: Update for 1.3.3.
55 Mon May 25 04:33:15 GMT 2015  Olly Betts <olly@survex.com>
57         * NEWS: Update.
59 Sun May 24 12:52:47 GMT 2015  Olly Betts <olly@survex.com>
61         * tests/api_postingsource.cc: timer_create() seems to always fail on
62           AIX with EAGAIN, so just skip the matchtimelimit1 testcase there.
64 Sun May 24 11:48:30 GMT 2015  Olly Betts <olly@survex.com>
66         * net/tcpserver.cc: Under __WIN32__, inet_ntop()'s second parameter
67           is 'void*' (to POSIX says it should be 'const void*').
69 Sun May 24 11:46:25 GMT 2015  Olly Betts <olly@survex.com>
71         * common/safenetdb.h: Under __WIN32__, MSDN says that newer platforms
72           need <ws2def.h> for AI_* constants.  And mingw doesn't seem to
73           define AI_NUMERICSERV yet.
75 Sun May 24 10:41:39 GMT 2015  Olly Betts <olly@survex.com>
77         * common/safewindows.h,configure.ac: Under __WIN32__, we need to
78           specify Vista as the minimum supported version to get the
79           AI_ADDRCONFIG flag.  Older versions seem to all be out of support
80           anyway.
82 Sun May 24 06:46:15 GMT 2015  Olly Betts <olly@survex.com>
84         * net/tcpclient.cc: Add missing declaration of variable under
85           __WIN32__.
87 Sun May 24 06:39:56 GMT 2015  Olly Betts <olly@survex.com>
89         * tests/harness/testsuite.h: Simplify FAIL_TEST and SKIP_TEST
90           slightly.
92 Sat May 23 11:52:03 GMT 2015  Olly Betts <olly@survex.com>
94         * tests/harness/backendmanager_remotetcp.cc: Don't leave an extra fd
95           open when starting xapian-tcpsrv for remotetcp tests.
97 Sat May 23 10:12:31 GMT 2015  Olly Betts <olly@survex.com>
99         * tests/harness/backendmanager_remotetcp.cc: Add spaces between literal
100           strings and macros which expand to literal strings for C++11
101           compatibility in __WIN32__-specific code.
103 Fri May 22 03:22:03 GMT 2015  Olly Betts <olly@survex.com>
105         * NEWS: Update.
107 Wed May 20 14:24:03 GMT 2015  Olly Betts <olly@survex.com>
109         * include/xapian/version_h.cc: If old and new __GXX_ABI_VERSION are
110           both >= 1002 (which means GCC >= 3.4), then issue a warning about
111           mismatching versions instead of an error.  The changes in these
112           versions are bug fixes for corner cases, so there's a good chance of
113           things working - e.g. building xapian-bindings with GCC 5.1 (which
114           defaults to __GXX_ABI_VERSION 1008) against xapian-core built with
115           GCC 4.9 (1002) seems to work OK.  A warning is still useful as a
116           clue to what is going on if linking fails due to a missing symbol.
118 Wed May 20 13:47:50 GMT 2015  Olly Betts <olly@survex.com>
120         * net/serialise.cc: Don't use encode_length() on a bool - it's
121           overkill, and leads to a warning from GCC 5.1 (due to the
122           comparison (bool_value < 255) from the template expansion
123           always being true).
125 Wed May 20 01:49:18 GMT 2015  Olly Betts <olly@survex.com>
127         * api/matchspy.cc: Fix comparison function not to return true for two
128           equal elements, which fixes matchspy4 test failure with clang and
129           libc++.
131 Wed May 20 00:20:56 GMT 2015  Olly Betts <olly@survex.com>
133         * configure.ac: Disable "<FUNCTION> is expected to return a value"
134           warning from Sun's C++ compiler, as it fires even for functions we
135           end in a "throw" statement.  Genuine instances will be caught by
136           compilers with superior warning machinery.
138 Mon May 18 04:18:37 GMT 2015  Olly Betts <olly@survex.com>
140         * configure.ac: Arrange to pass command line option so that xlC
141           actually fails to compile the test code for typeid() when RTTI isn't
142           enabled.
144 Sun May 17 11:35:36 GMT 2015  Olly Betts <olly@survex.com>
146         * backends/glass/glass_version.cc: When reporting an error that the
147           glass format version doesn't match, don't append an uninitialised
148           char[] buffer to the error string (code accidentally left behind
149           by the previous change in this area).
151 Sat May 16 12:08:17 GMT 2015  Olly Betts <olly@survex.com>
153         * common/socket_utils.cc: Fix casts on the 4th argument of
154           setsockopt() so they compile on platforms which expect
155           char * or const char * there.
157 Fri May 15 13:24:55 GMT 2015  Olly Betts <olly@survex.com>
159         * configure.ac: Enhance the probe for whether the test harness can use
160           RTTI so that it works for xlC (which defaults to not generating
161           RTTI).
163 Fri May 15 12:28:32 GMT 2015  Olly Betts <olly@survex.com>
165         * common/debuglog.h: Remove commented out STATIC_ASSERT() which
166           is conceptually flawed.
168 Fri May 15 12:27:45 GMT 2015  Olly Betts <olly@survex.com>
170         * common/omassert.h,common/pack.h,tests/api_wrdb.cc,
171           tests/internaltest.cc: Replace STATIC_ASSERT() with C++11's
172           static_assert().
174 Fri May 15 11:34:47 GMT 2015  Olly Betts <olly@survex.com>
176         * common/stringutils.cc: Use static_assert rather than an adhoc check
177           via a negative array size.
179 Fri May 15 11:16:18 GMT 2015  Olly Betts <olly@survex.com>
181         * common/io_utils.cc: Replace the code used on platforms without
182           F_DUPFD with simpler code which actually compiles.
184 Fri May 15 03:43:16 GMT 2015  Olly Betts <olly@survex.com>
186         * pkgconfig/xapian-core.pc.in: Include @ldflags@ in pkg-config .pc
187           file.
189 Fri May 15 03:33:40 GMT 2015  Olly Betts <olly@survex.com>
191         * pkgconfig/xapian-core.pc.in: Fix include directory reported by
192           pkg-config.
194 Fri May 15 03:31:43 GMT 2015  Olly Betts <olly@survex.com>
196         * configure.ac,pkgconfig/xapian-core.pc.in,xapian-config.in: When
197           compiling with xlC on AIX, _LARGE_FILES gets defined by
198           AC_SYS_LARGEFILE to enable large file support, and defining this
199           changes the ABI of std::string, so include it in xapian-config
200           --cxxflags and the pkg-config equivalent.
202 Fri May 15 02:52:10 GMT 2015  Olly Betts <olly@survex.com>
204         * tests/Makefile.am,tests/perftest/Makefile.mk: Use $(NO_INSTALL)
205           rather than @NO_INSTALL@ to allow make-time overriding.
207 Fri May 15 02:33:11 GMT 2015  Olly Betts <olly@survex.com>
209         * tests/soaktest/Makefile.mk: Use -no-fast-install instead of
210           -no-install for linking soaktest on platforms where libtool issues
211           a warning for -no-install, like we already do for all the other test
212           programs.
214 Fri May 15 02:14:16 GMT 2015  Olly Betts <olly@survex.com>
216         * examples/simpleexpand.cc,examples/simpleindex.cc,
217           examples/simplesearch.cc: '#include <config.h>' in the examples, as
218           when compiling with xlC on AIX, _LARGE_FILES gets defined by
219           AC_SYS_LARGEFILE to enable large file support, and defining this
220           changes the ABI of std::string, so it also needs to be defined when
221           compiling code using Xapian.
223 Thu May 14 03:17:28 GMT 2015  Olly Betts <olly@survex.com>
225         * backends/chert/chert_cursor.cc: Correct delete to delete [].
227 Tue May 12 14:33:28 GMT 2015  Olly Betts <olly@survex.com>
229         * docs/deprecation.rst: Add deprecation of --preserve-nonduplicates
230           which happened in 1.2.4.
232 Tue May 12 07:38:12 GMT 2015  Olly Betts <olly@survex.com>
234         * Makefile.am: Actually use $(NO_UNDEFINED).
236 Tue May 12 06:40:38 GMT 2015  Olly Betts <olly@survex.com>
238         * configure.ac: Only pass -no-undefined when linking the library if
239           it's actually required for the current platform.  Sun C++ doesn't
240           link the C++ runtime libraries to shared objects, so the build
241           fails with -no-undefined.
243 Tue May 12 06:39:26 GMT 2015  Olly Betts <olly@survex.com>
245         * INSTALL,configure.ac: Fix comment and doc typos.
247 Tue May 12 03:49:38 GMT 2015  Olly Betts <olly@survex.com>
249         * configure.ac: Add workaround for odd <cmath> issue with Sun C++.
251 Tue May 12 03:49:15 GMT 2015  Olly Betts <olly@survex.com>
253         * configure.ac: On Solaris, inet_ntop() needs -lnsl.
255 Tue May 12 03:48:48 GMT 2015  Olly Betts <olly@survex.com>
257         * api/keymaker.cc: Fix error compiling with Sun C++.
259 Tue May 12 03:07:06 GMT 2015  Olly Betts <olly@survex.com>
261         * include/xapian/attributes.h: Fix typo in definition of
262           XAPIAN_NOTHROW() definition for C++11 compilers other than GCC and
263           MSVC.
265 Tue May 12 01:48:19 GMT 2015  Olly Betts <olly@survex.com>
267         * exception_data.pm: Fix not to parse mentions of XAPIAN_THROW() in
268           comments.
270 Mon May 11 14:16:22 GMT 2015  Olly Betts <olly@survex.com>
272         * HACKING: libtool 2.4.6 is now used for snapshots and releases.
274 Mon May 11 14:14:04 GMT 2015  Olly Betts <olly@survex.com>
276         * common/str.cc,expand/bo1eweight.cc,geospatial/geoencode.cc,
277           matcher/multiandpostlist.cc,net/remoteconnection.cc,weight/:
278           Fixes for errors when compiling with Sun C++.
280 Mon May 11 10:53:47 GMT 2015  Olly Betts <olly@survex.com>
282         * common/log2.h,configure.ac: Change probe for log2() to check for a
283           declaration and '#include <cmath>' to get it to fix build on Solaris
284           with Sun C++.  C++11 compilers should all provide log2(), but let's
285           not rely on that just yet as it's easy to provide a fallback
286           implementation.
288 Mon May 11 07:04:06 GMT 2015  Olly Betts <olly@survex.com>
290         * common/getopt.cc,net/tcpserver.cc: Fix clang warnings on OS X.
291           Reported by Germán M. Bravo.
293 Mon May 11 06:29:42 GMT 2015  Olly Betts <olly@survex.com>
295         * api/constinfo.cc,docs/doxygen_api.conf.in,
296           docs/doxygen_source.conf.in,include/xapian/: C++11's noexcept
297           needs to be on definitions as well as declarations, but GCC
298           function attributes must only be on declarations, so split
299           XAPIAN_NOEXCEPT off from XAPIAN_NOTHROW.
301 Sun May 10 13:26:24 GMT 2015  Olly Betts <olly@survex.com>
303         * include/xapian/queryparser.h,queryparser/queryparser_internal.h,
304           tests/api_none.cc: Add support for optional reference counting of
305           FieldProcessor objects.
307 Sun May 10 11:07:36 GMT 2015  Olly Betts <olly@survex.com>
309         * include/xapian/intrusive_ptr.h,include/xapian/queryparser.h,
310           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
311           tests/api_none.cc: Add support for optional reference counting of
312           ValueRangeProcessor objects.
314 Thu May 07 12:42:11 GMT 2015  Olly Betts <olly@survex.com>
316         * bin/xapian-replicate.cc,common/socket_utils.cc,common/socket_utils.h,
317           net/replicatetcpclient.cc,net/replicatetcpclient.h: Set SO_KEEPALIVE
318           for xapian-replicate's connection to the master, and add command
319           line option to allow setting socket-level timeouts (SO_RCVTIMEO and
320           SO_SNDTIMEO) on platforms that support them.  Fixes #546, reported
321           by nkvoll.
323 Thu May 07 12:00:15 GMT 2015  Olly Betts <olly@survex.com>
325         * bin/xapian-replicate.cc: Fix connection timeout to be 10 seconds
326           rather than 10000 seconds which is has been since 1.2.3.
328 Tue May 05 02:38:37 GMT 2015  Olly Betts <olly@survex.com>
330         * net/tcpserver.cc: Use inet_ntop() instead of inet_ntoa() - the
331           latter isn't thread-safe.
333 Tue May 05 02:05:27 GMT 2015  Olly Betts <olly@survex.com>
335         * include/xapian/queryparser.h: Update documentation to reflect that
336           the database passed to QueryParser::set_database() is no longer
337           used to expand wildcards and partial terms.
339 Mon May 04 11:32:40 GMT 2015  Olly Betts <olly@survex.com>
341         * api/postlist.cc,api/postlist.h,common/remoteprotocol.h,matcher/,
342           net/serialise.cc,tests/api_backend.cc: Fix sort by value when
343           multiple databases are in use and one or more are remote.  Fixes
344           #674, reported by Dylan Griffith.
346 Sun May 03 12:41:58 GMT 2015  Olly Betts <olly@survex.com>
348         * docs/deprecation.rst,include/xapian/queryparser.h,
349           queryparser/queryparser.cc,queryparser/queryparser.lemony,
350           queryparser/queryparser_internal.h,tests/queryparsertest.cc:
351           Allow setting the expansion limits and types for wildcards
352           and partial terms in the QueryParser independently.  Partial
353           terms now default to the 100 most frequent matching terms.
354           Deprecate set_max_wildcard_expansion() in favour of new
355           set_max_expansion() method which can set expansion limits
356           for partial terms too.  Completes #608.
358 Sat May 02 09:20:30 GMT 2015  Olly Betts <olly@survex.com>
360         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
361           include/xapian/query.h,queryparser/queryparser.lemony,
362           tests/api_query.cc: Add a choice of ways to apply the limit on
363           wildcard expansion.  Fixes #608, reported by boomboo.
365 Fri May 01 14:53:16 GMT 2015  Olly Betts <olly@survex.com>
367         * tests/api_replicate.cc: Reenable replicate3 for glass, as it no
368           longer fails.
370 Fri May 01 13:38:48 GMT 2015  Olly Betts <olly@survex.com>
372         * common/autoptr.h: Just map AutoPtr to std::unique_ptr now we require
373           C++11.
375 Fri May 01 13:33:28 GMT 2015  Olly Betts <olly@survex.com>
377         * matcher/multimatch.cc,net/progclient.cc: IRIX is dead, so remove
378           lingering traces of support for SGI's compiler.
380 Fri May 01 08:59:13 GMT 2015  Olly Betts <olly@survex.com>
382         * HACKING,INSTALL: STLport was last released in 2008, so (a) it's no
383           longer actively developed and (b) it won't support C++11, so strip
384           out documentation which mentions it.
385         * configure.ac: For Sun's C++ compiler, -std=c++11 enables C++11
386           support, and is incompatible with -library=stlport, so remove code
387           to enable that later option.
389 Fri May 01 01:37:24 GMT 2015  Olly Betts <olly@survex.com>
391         * configure.ac: Tweak comment to match xapian-omega's configure.
393 Fri May 01 01:36:41 GMT 2015  Olly Betts <olly@survex.com>
395         * configure.ac: Set default value for AUTOM4TE before AC_OUTPUT so the
396           default will actually get used.
398 Fri May 01 01:36:05 GMT 2015  Olly Betts <olly@survex.com>
400         * configure.ac: Add explicit AC_CANONICAL_HOST.
402 Fri May 01 01:08:56 GMT 2015  Olly Betts <olly@survex.com>
404         * api/matchspy.cc,tests/api_nodb.cc: Eliminate needless uses of
405           AutoPtr.
407 Fri May 01 00:37:42 GMT 2015  Olly Betts <olly@survex.com>
409         * tests/internaltest.cc: Remove self-assignment check of AutoPtr as
410           that doesn't work under C++11 when AutoPtr is unique_ptr, and add
411           other checks of reassignment which should work for both.
413 Fri May 01 00:37:09 GMT 2015  Olly Betts <olly@survex.com>
415         * tests/api_postingsource.cc: Remove C++11 specific test which doesn't
416           actually work with C++11.
418 Fri May 01 00:33:43 GMT 2015  Olly Betts <olly@survex.com>
420         * tests/harness/backendmanager.cc,
421           tests/harness/backendmanager_remotetcp.cc,
422           tests/harness/testsuite.h,tests/harness/testutils.h: Add spaces
423           between literal strings and macros which expand to literal strings
424           for C++11 compatibility.
426 Thu Apr 30 14:41:59 GMT 2015  Olly Betts <olly@survex.com>
428         * backends/chert/chert_table.cc,backends/glass/glass_table.cc: Remove
429           duplicate includes of "omassert.h".
431 Thu Apr 30 14:41:31 GMT 2015  Olly Betts <olly@survex.com>
433         * backends/glass/glass_freelist.cc: Add missing explicit include of
434           "omassert.h",
436 Thu Apr 30 14:38:06 GMT 2015  Olly Betts <olly@survex.com>
438         * HACKING,backends/chert/chert_table.cc,
439           backends/chert/chert_version.cc,backends/glass/glass_table.cc,
440           common/omassert.h: Remove CompileTimeAssert() and just use
441           C++11's static_assert instead.
443 Thu Apr 30 14:28:10 GMT 2015  Olly Betts <olly@survex.com>
445         * backends/glass/glass_freelist.cc: Drop conditionals for GCC >= 3.4
446           as we now require >= 4.4.
448 Thu Apr 30 14:26:13 GMT 2015  Olly Betts <olly@survex.com>
450         * api/omdatabase.cc,include/xapian/queryparser.h,
451           tests/harness/backendmanager.h: Drop workarounds for ancient Sun
452           C++ compilers, as we now require a recent version for C++11 support.
454 Thu Apr 30 14:22:46 GMT 2015  Olly Betts <olly@survex.com>
456         * INSTALL: IRIX is past EOL so drop information about IRIX make.
458 Thu Apr 30 14:22:10 GMT 2015  Olly Betts <olly@survex.com>
460         * configure.ac: OS X >= 10.4 apparently supports symbol visibility, so
461           update comment.
463 Thu Apr 30 14:21:37 GMT 2015  Olly Betts <olly@survex.com>
465         * common/unordered_map.h: No longer relevant now we require C++11.
467 Thu Apr 30 13:59:16 GMT 2015  Olly Betts <olly@survex.com>
469         * HACKING,INSTALL,configure.ac,xapian-config.in: Require a C++
470           compiler - the minimum required GCC version is now probably GCC 4.4.
472 Thu Apr 30 13:48:54 GMT 2015  Olly Betts <olly@survex.com>
474         * xapian-config.in: Remove superfluous comment left over from code
475           refactoring.
477 Thu Apr 30 13:47:30 GMT 2015  Olly Betts <olly@survex.com>
479         * xapian-config.in: Fix the include directory reported by --swigflags
480           for an installed copy to include the "/xapian-1.3" component for
481           a development version.
483 Thu Apr 30 12:34:14 GMT 2015  Olly Betts <olly@survex.com>
485         * api/omenquire.cc: Fix for C++11 where AutoPtr is unique_ptr.
487 Thu Apr 30 12:20:22 GMT 2015  Olly Betts <olly@survex.com>
489         * api/replication.cc,backends/chert/chert_database.cc,
490           backends/chert/chert_table.cc,backends/chert/chert_version.cc,
491           backends/glass/,backends/remote/remote-database.cc,bin/,
492           examples/copydatabase.cc,examples/quest.cc,
493           examples/xapian-metadata.cc,net/tcpclient.cc,
494           queryparser/queryparser.lemony: Add spaces between literal strings
495           and macros which expand to literal strings for C++11 compatibility.
497 Thu Apr 30 12:17:17 GMT 2015  Olly Betts <olly@survex.com>
499         * bin/xapian-tcpsrv.cc: Use STRINGIZE() to include defaults literally
500           in string for --help.
502 Thu Apr 30 10:48:11 GMT 2015  Olly Betts <olly@survex.com>
504         * HACKING: Update URL.
506 Thu Apr 30 10:47:10 GMT 2015  Olly Betts <olly@survex.com>
508         * m4/ax_cxx_compile_stdcxx_11.m4: Add support for HP's aCC (untested
509           as I no longer have access to this compiler).
511 Thu Apr 30 05:30:13 GMT 2015  Olly Betts <olly@survex.com>
513         * m4/ax_cxx_compile_stdcxx_11.m4: Add macro from autoconf-archive to
514           detect any compiler options needed to enable C++11 support (not yet
515           used).
517 Thu Apr 30 05:14:56 GMT 2015  Olly Betts <olly@survex.com>
519         * common/posixy_wrapper.cc: O_RDONLY, etc are better described as
520           "POSIX" than "ANSI".
522 Thu Apr 30 05:12:33 GMT 2015  Olly Betts <olly@survex.com>
524         * configure.ac,xapian-config.in: Rename ANSI_CXXFLAGS to ISO_CXXFLAGS
525           and talk about ISO C++ in configure messages.
527 Thu Apr 30 05:10:40 GMT 2015  Olly Betts <olly@survex.com>
529         * .gitignore: Adjust for m4 subdirectory to only match files which
530           aren't in git.
532 Thu Apr 30 04:07:05 GMT 2015  Olly Betts <olly@survex.com>
534         * xapian-config.in: Fix typo so cached result of test in
535           is_uninstalled() is actually used on subsequent calls.  Fixes #676,
536           reported (with patch) by Ryan Schmidt.
538 Wed Apr 29 03:00:32 GMT 2015  Olly Betts <olly@survex.com>
540         * backends/chert/chert_database.cc,backends/glass/glass_database.cc:
541           Fix get_changeset_revisions() not to potentially read uninitialised
542           data if a changeset file is truncated.
544 Wed Apr 29 00:09:57 GMT 2015  Olly Betts <olly@survex.com>
546         * backends/chert/chert_databasereplicator.cc: Use return value of
547           get_message_chunk() rather than ignoring it and repeating the check
548           in the caller.
550 Tue Apr 28 22:22:01 GMT 2015  Olly Betts <olly@survex.com>
552         * bin/xapian-progsrv.cc: Fix comment typo.
554 Tue Apr 28 04:51:33 GMT 2015  Olly Betts <olly@survex.com>
556         * backends/chert/chert_cursor.cc,backends/chert/chert_table.cc,
557           backends/glass/glass_cursor.cc,backends/glass/glass_table.cc:
558           Potentially increment the cursor version on cancel() or when the
559           database is reopened, and flag the current cursor version as used
560           when a cursor is rebuilt.  Fixes #675, reported by Germán M. Bravo.
561         * tests/api_backend.cc: Add regression test cursorbug1 based on
562           reproducer supplied by Germán.
564 Thu Apr 23 05:25:48 GMT 2015  Olly Betts <olly@survex.com>
566         * matcher/exactphrasepostlist.cc: When matching an exact phrase, if a
567           term doesn't occur where we want, we can advance "term 0" using
568           skip_to() based on where the term does next occur rather than just
569           calling next() on it.
571 Thu Apr 23 05:03:28 GMT 2015  Olly Betts <olly@survex.com>
573         * matcher/nearpostlist.cc: Be lazier about opening PositionList
574           objects, as that causes a read of all the data for that
575           positionlist.
577 Thu Apr 23 04:11:30 GMT 2015  Olly Betts <olly@survex.com>
579         * matcher/nearpostlist.cc: Make code for scanning window for duplicate
580           positions a little clearer.
582 Wed Apr 22 13:52:55 GMT 2015  Olly Betts <olly@tartarus.org>
584         * matcher/nearpostlist.cc: Fix "/*" within comment.
586 Wed Apr 22 12:53:37 GMT 2015  Olly Betts <olly@survex.com>
588         * matcher/nearpostlist.cc,matcher/nearpostlist.h: Reimplement OP_NEAR
589           check.  The new implementation consistently requires the terms to
590           occur at different positions, and fixes some false negatives.
591         * tests/api_query.cc: Add regression tests as loosenear1.
593 Mon Apr 20 12:53:04 GMT 2015  Olly Betts <olly@survex.com>
595         * matcher/phrasepostlist.cc,matcher/phrasepostlist.h: Reimplement
596           OP_PHRASE check for loose phrases - the existing implementation was
597           buggy, giving both false positives and false negatives in rare
598           cases.  Fixes #653, reported by Jean-Francois Dockes.
599         * tests/api_query.cc: Add regression test loosephrase1.
601 Thu Apr 16 06:51:31 GMT 2015  Olly Betts <olly@survex.com>
603         * common/errno_to_string.cc: Fix to build with Sun's C++ compiler.
605 Thu Apr 16 06:43:40 GMT 2015  Olly Betts <olly@survex.com>
607         * configure.ac: Fix XAPIAN_TEST_CXXFLAGS macro to append to the
608           existing value of the variable, not its name.
610 Wed Apr 15 11:36:40 GMT 2015  Olly Betts <olly@tartarus.org>
612         * tests/api_wrdb.cc: Just #ifdef out the problematic part of the
613           adddoc5 testcase for clang.
615 Wed Apr 15 06:25:13 GMT 2015  Olly Betts <olly@survex.com>
617         * common/serialise-double.cc: Fix bug in recent fix.
618         * tests/unittest.cc: Extend serialise_double() to provide regression
619           test.
621 Thu Apr 09 00:40:24 GMT 2015  Olly Betts <olly@survex.com>
623         * net/remoteconnection.h: Avoid compiler warning from clang in new
624           getaddrinfo() code.
626 Wed Apr 08 11:59:00 GMT 2015  Olly Betts <olly@survex.com>
628         * common/serialise-double.cc: Add missing cast to unsigned char when
629           we check if the value will fit in the double type.  On machines with
630           IEEE-754 doubles (which is most current platforms), which change
631           makes no difference as we're checking if the value cast to a double
632           is > 255.<something> which is never the case.
634 Wed Apr 08 10:42:43 GMT 2015  Olly Betts <olly@survex.com>
636         * common/serialise-double.cc: Avoid reading one byte past the end of
637           the serialised value.  In practice this was harmless on most
638           platforms, as dbl_max_mantissa is 255 for IEEE-754 format doubles,
639           and at least GCC's std::string keeps the buffer nul-terminated.
640           Reported by Germán M. Bravo in github PR#67.
641         * tests/unittest.cc: Copy the serialised value to a temporary buffer
642           before calling unserialise_double() so that valgrind can detect if
643           we read one byte past the end.
645 Tue Apr 07 23:02:21 GMT 2015  Olly Betts <olly@survex.com>
647         * backends/chert/: Fix problems with get_unique_terms() on a modified
648           chert database.
649         * tests/: Add more test coverage for get_unique_terms().
651 Mon Apr 06 00:22:22 GMT 2015  Olly Betts <olly@survex.com>
653         * tests/harness/backendmanager_multi.cc,
654           tests/harness/backendmanager_remote.cc: Cleaner code for checking
655           the backend subtype.
657 Mon Mar 30 03:22:29 GMT 2015  Olly Betts <olly@survex.com>
659         * backends/flint_lock.cc: If available, use F_DUPFD to dup to a file
660           descriptor which is >= 2.
662 Mon Mar 30 01:16:06 GMT 2015  Olly Betts <olly@survex.com>
664         * api/error.cc,common/safenetdb.h,configure.ac,generate-exceptions,
665           net/remoteconnection.h,net/tcpclient.cc,net/tcpserver.cc: Use
666           getaddrinfo() instead of gethostbyname(), as a step towards
667           IPv6 support (currently we still only look for IPv4 addresses).
668           See #374.
670 Sun Mar 29 03:56:12 GMT 2015  Olly Betts <olly@survex.com>
672         * Makefile.am,docs/Makefile.am: Add missing quoting.
674 Mon Mar 23 06:33:39 GMT 2015  Olly Betts <olly@survex.com>
676         * backends/chert/chert_table.cc,backends/glass/glass_table.cc,
677           common/io_utils.cc,common/io_utils.h,tests/api_backend.cc:
678           Avoid using fds < 3 for writable database tables, as it risks
679           corruption is some code in the same process tries to write to stdout
680           or stderr without realising it is closed.  (Partly addresses #651)
682 Sat Mar 21 22:11:53 GMT 2015  Olly Betts <olly@survex.com>
684         * backends/glass/glass_cursor.cc: Add comment warning that B can't be
685           used in GlassCursor's destructor.
687 Tue Mar 17 03:51:00 GMT 2015  Olly Betts <olly@survex.com>
689         * matcher/exactphrasepostlist.cc: Fixed reversed conditonal for
690           picking the shorter position list for an exact phrase of two terms.
691           The difference this fix makes isn't dramatic, but can be measured
692           (at least with cachegrind).  Thanks to kbwt for spotting this.
694 Fri Mar 13 11:21:37 GMT 2015  Olly Betts <olly@survex.com>
696         * backends/chert/chert_compact.cc: Make sure we open all the tables of
697           a database at the same revision when compacting.  (Fixes #649)
699 Thu Mar 12 04:09:07 GMT 2015  Olly Betts <olly@survex.com>
701         * examples/xapian-metadata.cc: Add 'list' subcommand to list all the
702           metadata keys.
704 Mon Mar 09 03:08:14 GMT 2015  Olly Betts <olly@survex.com>
706         * include/xapian/constants.h,include/xapian/queryparser.h: Doxygen
707           comment wording tweaks.
709 Mon Mar 09 03:07:36 GMT 2015  Olly Betts <olly@survex.com>
711         * include/xapian/constants.h,include/xapian/queryparser.h,
712           include/xapian/weight.h: Doxygen comment formatting tweaks.
714 Sat Mar 07 11:27:23 GMT 2015  Olly Betts <olly@tartarus.org>
716         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Extend the
717           set of characters allowed in the start of a range to be anything
718           except for '(' and characters <= ' '.  This better matches what's
719           accepted for a range end (anything except for ')' and characters <=
720           ' ').  Reported by Jani Nikula.
722 Thu Mar 05 11:13:56 GMT 2015  Olly Betts <olly@survex.com>
724         * backends/dbcheck.cc: When checking a single table, handle the
725           ".glass" extension on glass database tables, and use the extension
726           to guide the decision of which backend the table is from.
728 Thu Mar 05 04:38:21 GMT 2015  Olly Betts <olly@survex.com>
730         * backends/dbcheck.cc: Don't hard-code string length as number.
732 Mon Feb 23 04:48:24 GMT 2015  Olly Betts <olly@survex.com>
734         * api/emptypostlist.cc,api/emptypostlist.h: Fix handling of
735           OP_WILDCARD which expands to no terms when used under OP_SYNONYM.
736         * tests/api_query.cc: Regression test dualprefixwildcard1.
738 Mon Feb 23 04:26:52 GMT 2015  Olly Betts <olly@survex.com>
740         * tests/harness/testsuite.cc: Fix compilation issue with previous
741           change.
743 Thu Feb 19 08:04:17 GMT 2015  Olly Betts <olly@survex.com>
745         * tests/api_anydb.cc,tests/api_nodb.cc,tests/harness/testrunner.cc,
746           tests/harness/testsuite.cc,tests/stemtest.cc: Use std::string's
747           assign() or construct from substring rather than assigning or
748           initialising with the result of calling substr().
750 Tue Feb 17 18:31:25 GMT 2015  Olly Betts <olly@survex.com>
752         * include/Makefile.mk: Ship new file from previous commit.
754 Tue Feb 17 05:14:02 GMT 2015  Olly Betts <olly@survex.com>
756         * api/Makefile.mk,api/constinfo.cc,api/version.cc,include/xapian.h,
757           include/xapian/constinfo.h,include/xapian/stem.h,languages/stem.cc:
758           Put the list of stemmers into the vinfo struct and renamed it to
759           const_info.
761 Mon Feb 16 10:18:51 GMT 2015  Olly Betts <olly@survex.com>
763         * configure.ac,languages/: Merge generate-allsnowballheaders script
764           into collate-sbl.
766 Mon Feb 16 04:15:46 GMT 2015  Olly Betts <olly@survex.com>
768         * backends/chert/chert_check.cc: Fix xapian-check on a single table.
770 Fri Feb 13 10:18:45 GMT 2015  Olly Betts <olly@survex.com>
772         * generate-exceptions: Note that the change to not negate
773           WSAGetLastError() values internally was backported for 1.2.20.
775 Fri Feb 13 05:57:13 GMT 2015  Olly Betts <olly@survex.com>
777         * api/,common/remoteprotocol.h,exception_data.pm,
778           include/xapian/query.h,include/xapian/queryparser.h,matcher/,
779           queryparser/queryparser.lemony,tests/api_qpbackend.cc,
780           tests/queryparsertest.cc,weight/weightinternal.cc,
781           weight/weightinternal.h: Add new OP_WILDCARD query operator, which
782           expands wildcards lazily, so now we create the PostList tree for a
783           wildcard directly, rather than creating an intermediate Query tree.
784           See ticket#48.
786 Wed Feb 11 22:45:26 GMT 2015  Olly Betts <olly@survex.com>
788         * backends/glass/glass_table.cc: mid_point() should never fail to find
789           a split point, but just in case it does, return a usable answer.
791 Wed Feb 11 22:44:35 GMT 2015  Olly Betts <olly@survex.com>
793         * backends/chert/chert_table.cc: mid_point() should never fail to find
794           a split point, but just in case it does, return a usable answer.
796 Mon Feb 09 02:56:54 GMT 2015  Olly Betts <olly@survex.com>
798         * api/queryinternal.cc,matcher/localsubmatch.cc,
799           matcher/localsubmatch.h,matcher/queryoptimiser.h,tests/api_query.cc:
800           Don't convert an unweighted term which indexes all docs to an all
801           docs postlist if we need positional data for it.
803 Sun Jan 25 23:48:34 GMT 2015  Olly Betts <olly@survex.com>
805         * configure.ac: Check for declaration of fdatasync() first, as OS X
806           has a dummy implementation in the library which is not prototyped in
807           any header.  Reported by Vlad Shablinsky.
809 Fri Jan 09 05:19:20 GMT 2015  Olly Betts <olly@survex.com>
811         * backends/glass/glass_freelist.cc: Fix freelist handling to allow for
812           the newly loaded first block of the freelist being already used up.
814 Fri Jan 09 04:38:03 GMT 2015  Olly Betts <olly@survex.com>
816         * common/debuglog.cc: Add '#include "errno_to_string.h"'.
818 Thu Jan 08 05:59:01 GMT 2015  Olly Betts <olly@survex.com>
820         * backends/glass/glass_compact.cc: Fix compaction of position tables
821           for the change in key format.
823 Tue Jan 06 02:22:37 GMT 2015  Olly Betts <olly@survex.com>
825         * HACKING: Now using automake 1.15 and libtool 2.4.4.
827 Mon Jan 05 08:39:47 GMT 2015  Olly Betts <olly@survex.com>
829         * Makefile.am: Remove the generated .pc file on "make distclean".
831 Mon Jan 05 04:43:35 GMT 2015  Olly Betts <olly@survex.com>
833         * backends/glass/glass_table.cc: In enter_key(), we know the insertion
834           point will be the position after the current cursor position, so
835           there's no need to call find_in_block() to locate it.
837 Mon Jan 05 04:42:17 GMT 2015  Olly Betts <olly@survex.com>
839         * backends/glass/glass_table.cc: More assertions that c is valid.
841 Mon Jan 05 01:52:54 GMT 2015  Olly Betts <olly@survex.com>
843         * backends/chert/chert_dbcheck.cc,backends/glass/glass_dbcheck.cc:
844           Cross-check the position and postlist tables and report positional
845           data for non-existent documents.
847 Mon Jan 05 01:28:28 GMT 2015  Olly Betts <olly@survex.com>
849         * backends/glass/glass_dbcheck.cc: Fix decoding of positionlist keys -
850           this hadn't been updated for the key format change.
852 Mon Jan 05 01:25:17 GMT 2015  Olly Betts <olly@survex.com>
854         * backends/glass/glass_check.cc: Check that dir_end is odd.
856 Tue Dec 23 21:26:49 GMT 2014  Olly Betts <olly@survex.com>
858         * backends/chert/chert_table.cc: More assertions about c.
860 Tue Dec 23 04:26:38 GMT 2014  Olly Betts <olly@survex.com>
862         * backends/chert/chert_table.cc: Fix assertion to allow for c being
863           DIR_START - D2 in leaf blocks.
865 Tue Dec 23 04:01:54 GMT 2014  Olly Betts <olly@survex.com>
867         * backends/chert/chert_table.cc: Add more assertions that c has
868           suitable values.
870 Tue Dec 23 03:58:00 GMT 2014  Olly Betts <olly@survex.com>
872         * backends/chert/chert_table.cc: In enter_key(), we know the insertion
873           point will be the position after the current cursor position, so
874           there's no need to call find_in_block() to locate it.
876 Tue Dec 23 03:11:12 GMT 2014  Olly Betts <olly@survex.com>
878         * backends/chert/chert_check.cc: Add check that dir_end is odd.
880 Mon Dec 22 23:28:54 GMT 2014  Olly Betts <olly@survex.com>
882         * backends/chert/chert_table.cc: Document situations in which the
883           cursor can be left pointing before DIR_START.
885 Mon Dec 22 03:39:14 GMT 2014  Olly Betts <olly@survex.com>
887         * backends/glass/glass_freelist.cc: Add more freelist assertions.
889 Mon Dec 22 03:15:50 GMT 2014  Olly Betts <olly@survex.com>
891         * backends/glass/glass_freelist.cc: Allow restricting the number of
892           freelist entries per block by setting GLASS_FREELIST_SIZE.
894 Sun Dec 21 20:55:47 GMT 2014  Olly Betts <olly@survex.com>
896         * include/xapian/weight.h: Document the enum stat_flags values.
898 Sun Dec 21 20:51:47 GMT 2014  Olly Betts <olly@survex.com>
900         * include/xapian/weight.h: Fix indentation.
902 Sat Dec 20 10:40:44 GMT 2014  Sébastien Debrard <sebastien.debrard@gmail.com>
904         * Makefile.am,configure.ac,pkgconfig/,xapian-core.spec.in: Generate a
905           file for pkg-config.  (Fixes#540)
907 Fri Dec 19 22:30:39 GMT 2014  Olly Betts <olly@survex.com>
909         * common/errno_to_string.cc: Need stdlib.h under mingw.
911 Fri Dec 19 04:38:56 GMT 2014  Olly Betts <olly@survex.com>
913         * backends/glass/glass_check.cc: Distinguish between a block in use
914           and in the freelist, and a block in the freelist more than once.
916 Fri Dec 19 04:37:14 GMT 2014  Olly Betts <olly@survex.com>
918         * backends/glass/glass_freelist.cc,backends/glass/glass_freelist.h:
919           Avoid any mutual recursion between GlassFreeList::get_block() and
920           GlassFreeList::mark_block_unused().
922 Thu Dec 18 10:28:17 GMT 2014  Olly Betts <olly@survex.com>
924         * common/safesyssocket.h: Include safeerrno.h when we use errno.
926 Thu Dec 18 06:17:18 GMT 2014  Olly Betts <olly@survex.com>
928         * net/tcpclient.cc: Use POSIX O_NONBLOCK in preference to O_NDELAY
929           which has different semantics on BSD and System V.
931 Wed Dec 17 02:59:54 GMT 2014  Olly Betts <olly@survex.com>
933         * configure.ac: Drop probe for gethostbyaddr() - we've not used it for
934           over 8.5 years (since e33972a5).
936 Wed Dec 17 02:33:36 GMT 2014  Olly Betts <olly@survex.com>
938         * common/internaltypes.h: Take CHAR_BIT into account when choosing
939           types for uint2, uint4 and uint8.
941 Wed Dec 17 02:30:14 GMT 2014  Olly Betts <olly@survex.com>
943         * api/error.cc,backends/chert/chert_btreebase.cc,
944           backends/chert/chert_table.cc,backends/flint_lock.cc,
945           backends/glass/glass_table.cc,common/,configure.ac,
946           net/remoteconnection.cc: Add errno_to_string() function which is
947           thread-safe where a suitable alternative to strerror() exists.
949 Tue Dec 16 06:54:32 GMT 2014  Olly Betts <olly@survex.com>
951         * configure.ac: Add missing m4 quoting.  Generated configure file is
952           unchanged.
954 Tue Dec 16 06:28:21 GMT 2014  Olly Betts <olly@survex.com>
956         * configure.ac: Don't check for strerror - it's specified by C89, and
957           we weren't using the result of the check anyway.
959 Tue Dec 16 03:59:39 UTC 2014  Sébastien Debrard <sebastien.debrard@gmail.com>
961         * api/omenquire.cc,backends/multi/multi_postlist.cc,
962           tests/api_anydb.cc,tests/api_db.cc: Prefer ++x to x++.
964 Tue Dec 16 03:50:41 GMT 2014  Olly Betts <olly@survex.com>
966         * configure.ac: Define MINGW_HAS_SECURE_API under mingw to get
967           _putenv_s() declared in stdlib.h.
969 Sun Dec 14 09:42:01 GMT 2014  Olly Betts <olly@survex.com>
971         * api/omdatabase.cc,include/xapian/database.h: Make overloaded forms of
972           Database::allterms_begin() and Database::allterms_end() use default
973           parameters instead.
975 Sat Dec 13 02:48:10 GMT 2014  Olly Betts <olly@survex.com>
977         * api/error.cc,generate-exceptions,net/remoteconnection.h: On
978           Windows, avoid defining EADDRINUSE, etc if they're already defined,
979           and use WSAE* constants un-negated, as they start from a high value
980           so won't collide with E* constants.
982 Fri Dec 12 03:41:02 GMT 2014  Olly Betts <olly@survex.com>
984         * backends/glass/glass_freelist.cc: Avoid infinite recursion when we
985           hit the end of the freelist block we're reading and the end of the
986           block we're writing at the same time.
988 Thu Dec 11 20:45:28 GMT 2014  Olly Betts <olly@survex.com>
990         * backends/glass/glass_version.cc: Use str() rather than sprintf().
992 Thu Dec 11 03:21:46 GMT 2014  Olly Betts <olly@survex.com>
994         * net/tcpserver.cc: Fix comment.
996 Thu Dec 11 03:20:56 GMT 2014  Olly Betts <olly@survex.com>
998         * api/compactor.cc,api/error.cc,api/replication.cc,
999           backends/chert/chert_databasereplicator.cc,
1000           backends/chert/chert_table.cc,
1001           backends/glass/glass_databasereplicator.cc,
1002           backends/glass/glass_table.cc: Remove unnecessary includes of
1003           <cstdio> in files which used to need it for rename() but no longer
1004           do.
1006 Fri Dec 05 11:30:05 GMT 2014  Olly Betts <olly@survex.com>
1008         * ChangeLog,ChangeLog.0,ChangeLog.examples,
1009           backends/chert/chert_btreebase.cc,backends/chert/chert_database.h,
1010           languages/compiler/driver.c,languages/turkish.sbl: Fix typos reported
1011           by Veres Lajos.
1013 Thu Dec 04 02:17:46 GMT 2014  Olly Betts <olly@survex.com>
1015         * configure.ac: Fix detection of fdatasync(), which appears to have
1016           been broken practically forever - this means we've probably been
1017           using fsync() instead, which probably isn't a big additional
1018           overhead.
1020 Wed Dec 03 09:38:24 GMT 2014  Olly Betts <olly@survex.com>
1022         * docs/Makefile.am: Quote png filenames we run through pngcrush to
1023           avoid problems if there's an oddly-named extra PNG file in the
1024           directory.
1026 Tue Dec 02 02:58:59 GMT 2014  Olly Betts <olly@survex.com>
1028         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
1029           backends/chert/chert_databasereplicator.cc,backends/,
1030           backends/glass/glass_compact.cc,backends/glass/glass_database.cc,
1031           backends/glass/glass_databasereplicator.cc,
1032           backends/remote/remote-database.cc,backends/remote/remote-database.h,
1033           include/xapian/constants.h,include/xapian/database.h,
1034           include/xapian/dbfactory.h,net/,tests/api_backend.cc: Add new flag
1035           Xapian::DB_RETRY_LOCK which allows opening a database for writing
1036           to wait until it can get a write lock.  (fixes#275)
1038 Tue Dec 02 02:55:33 GMT 2014  Olly Betts <olly@survex.com>
1040         * backends/glass/glass_database.h: Document parameter to internal
1041           method
1043 Sun Nov 30 15:55:20 GMT 2014  James Aylett <james@tartarus.org>
1045         * HACKING: improve OS X docs build information.
1047 Thu Nov 27 04:00:38 GMT 2014  Olly Betts <olly@survex.com>
1049         * backends/dbcheck.cc,backends/flint_lock.cc,backends/flint_lock.h,
1050           examples/copydatabase.cc,tests/api_backend.cc: Drop support code for
1051           building on OS/2 with EMX - EMX was last updated in 2001 and comes
1052           with GCC 3.2.1, which pre-dates C++11 and we're going to require
1053           a compiler with good C++11 support in the near future.
1055 Thu Nov 27 03:15:51 GMT 2014  Olly Betts <olly@survex.com>
1057         * HACKING: Rename svn-ci to xapian-commit (see #621).
1059 Thu Nov 27 03:05:18 GMT 2014  Olly Betts <olly@survex.com>
1061         * backends/flint_lock.cc: Use F_OFD_SETLK where available, which
1062           avoids having to fork() a child process to hold the lock.  This
1063           currently requires Linux kernel >= 3.15, but it has been submitted
1064           to POSIX so hopefully will be widely supported eventually.  Thanks
1065           to Austin Clements for pointing out this now exists.
1067 Wed Nov 26 04:03:45 GMT 2014  Olly Betts <olly@survex.com>
1069         * include/xapian/geospatial.h: Drop documentation of parameter which
1070           the method doesn't actually take.
1072 Wed Nov 26 04:03:24 GMT 2014  Olly Betts <olly@survex.com>
1074         * include/xapian/enquire.h: Fix incorrect parameter name in doxygen
1075           comment.
1077 Wed Nov 26 03:29:28 GMT 2014  Olly Betts <olly@survex.com>
1079         * docs/doxygen_source.conf.in: @MAKEINDEX@ isn't substituted, so just
1080           use literal 'makeindex'.
1082 Wed Nov 26 03:28:32 GMT 2014  Olly Betts <olly@survex.com>
1084         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Update to
1085           avoid warnings about obsolete tags from newer doxygen.
1087 Tue Nov 25 21:13:51 GMT 2014  Olly Betts <olly@survex.com>
1089         * configure.ac: Update link to cygwin FAQ.
1091 Tue Nov 25 01:55:17 GMT 2014  Olly Betts <olly@survex.com>
1093         * HACKING: Update details of building Xapian packages.
1095 Tue Nov 25 01:48:44 GMT 2014  Olly Betts <olly@survex.com>
1097         * HACKING: Update for SVN to git migration.
1099 Mon Nov 24 19:50:32 GMT 2014  Olly Betts <olly@survex.com>
1101         * NEWS,configure.ac: Update for 1.3.2.
1103 Mon Nov 24 03:59:02 GMT 2014  Olly Betts <olly@survex.com>
1105         * languages/Makefile.mk: Add missing '\' at end of line in previous
1106           commit.
1108 Mon Nov 24 03:14:22 GMT 2014  Olly Betts <olly@survex.com>
1110         * languages/: Install the stopword lists as
1111           ${pkgdatadir}/stopwords/LANG.list.
1113 Sun Nov 23 23:56:02 GMT 2014  Olly Betts <olly@survex.com>
1115         * HACKING,INSTALL,NEWS,NEWS.SKELETON,api/compactor.cc,
1116           api/replication.cc,backends/Makefile.mk,backends/brass/,
1117           backends/databasereplicator.cc,backends/dbcheck.cc,
1118           backends/dbfactory.cc,backends/glass/,bin/Makefile.mk,
1119           common/Makefile.mk,common/pack.h,common/pretty.h,configure.ac,docs/,
1120           include/xapian/,net/replication_protocol.rst,tests/,tests/harness/:
1121           Rename 'brass' backend to 'glass'.
1123 Sun Nov 23 22:23:00 GMT 2014  Olly Betts <olly@survex.com>
1125         * backends/brass/brass_freelist.cc,backends/brass/brass_freelist.h:
1126           Set the revision in BrassFreeList::write_block().
1128 Thu Nov 20 21:36:35 GMT 2014  Olly Betts <olly@survex.com>
1130         * backends/brass/brass_freelist.h: Reset flw_appending when we unpack
1131           a freelist.
1133 Thu Nov 20 21:36:15 GMT 2014  Olly Betts <olly@survex.com>
1135         * backends/brass/brass_freelist.cc: Fix comment typo.
1137 Thu Nov 20 03:53:32 GMT 2014  Olly Betts <olly@survex.com>
1139         * backends/brass/brass_freelist.cc: Fix end-of-block condition when
1140           walking the freelist during database consistency checking.
1142 Thu Nov 20 02:32:37 GMT 2014  Olly Betts <olly@survex.com>
1144         * backends/brass/brass_freelist.cc: Wrap comment line.
1146 Thu Nov 20 02:31:54 GMT 2014  Olly Betts <olly@survex.com>
1148         * matcher/exactphrasepostlist.cc: Straighten out confusing comments.
1150 Sun Nov 16 23:49:38 GMT 2014  Olly Betts <olly@survex.com>
1152         * NEWS: Update.
1154 Thu Nov 13 20:35:25 GMT 2014  Olly Betts <olly@survex.com>
1156         * backends/brass/brass_freelist.cc: Wrap comment line.
1158 Tue Nov 11 22:17:48 GMT 2014  Olly Betts <olly@survex.com>
1160         * api/queryinternal.cc,api/queryinternal.h: Move all the get_op()
1161           definitions out of the header as they're virtual and there's not
1162           much scope for devirtualisation.
1164 Tue Nov 11 02:58:05 GMT 2014  Olly Betts <olly@survex.com>
1166         * exception_data.pm: Just have one copy of the licence boilerplate.
1168 Sun Nov 09 22:38:04 GMT 2014  Olly Betts <olly@survex.com>
1170         * NEWS: Update.
1172 Fri Nov 07 00:49:22 GMT 2014  Olly Betts <olly@survex.com>
1174         * queryparser/lemon.c: Sync change from upstream: "Modify the
1175           %nonassoc directive in lemon so that it generates a run-time error
1176           rather than a parsing conflict. This changes is due to a bug report
1177           on the mailing list. SQLite does not use the %nonassoc directive in
1178           its grammar so this change does not affect SQLite."  Generated code
1179           is identical.
1181 Fri Nov 07 00:44:57 GMT 2014  Olly Betts <olly@survex.com>
1183         * queryparser/lemon.c: Sync change from upstream: "Fix harmless
1184           compiler warning in LEMON."  Generated code is identical.
1186 Fri Nov 07 00:39:44 GMT 2014  Olly Betts <olly@survex.com>
1188         * queryparser/lemon.c: Sync change from upstream: "In LEMON, limit the
1189           size of the grammar file to 100MB. This ensures that the program
1190           will never experience integer overflow. To be doubly sure, use
1191           calloc() instead of malloc() when allocating arrays." Generated code
1192           is identical.
1194 Fri Nov 07 00:34:26 GMT 2014  Olly Betts <olly@survex.com>
1196         * queryparser/lemon.c: Sync change from upstream: "Add the
1197           "%token_class" directive to the LEMON parser generator. This opens
1198           up the possibility of simplifying the parser. Also remove all calls
1199           to sprintf(), strcpy(), and strcat() from LEMON to avoid compiler
1200           warnings on OpenBSD. (Aside: It is this change to avoid harmless
1201           compiler warnings that was the cause of the reason spat of bugs.)"
1202           Generated code is identical aside from whitespace changes in
1203           queryparser_token.h.
1205 Fri Nov 07 00:17:18 GMT 2014  Olly Betts <olly@survex.com>
1207         * queryparser/lemon.c: Sync change from upstream: "In Lemon, when
1208           comparing the output to the *.h file to see if it has changed, make
1209           sure that the proposed new output and the preexisting output are the
1210           same size before deciding that they are the same".  Generated code
1211           is identical, but this will fix misbehaviour in a build from a
1212           non-clean tree if new tokens get appended to queryparser_token.h.
1214 Thu Nov 06 22:23:27 GMT 2014  Olly Betts <olly@survex.com>
1216         * HACKING: Now using doxygen 1.8.8.
1218 Thu Nov 06 04:18:32 GMT 2014  Olly Betts <olly@survex.com>
1220         * HACKING: Now using libtool 2.4.3.
1222 Wed Nov 05 21:38:45 GMT 2014  Olly Betts <olly@survex.com>
1224         * backends/chert/chert_check.cc: Handle DBCHECK_FIX for a zero sized
1225           .DB file.
1227 Wed Nov 05 21:02:21 GMT 2014  Olly Betts <olly@survex.com>
1229         * backends/chert/chert_check.cc: After we successfully regenerate
1230           baseA, remove any empty baseB file to prevent it causing problems.
1231           Tracked down with help from Phil Hands.
1233 Wed Nov 05 20:58:27 GMT 2014  Olly Betts <olly@survex.com>
1235         * backends/chert/chert_check.cc: Fix DBCHECK_FIX to be able to find a
1236           level 0 root block (happens when a table has sufficiently little
1237           data in that it all fits in one block).
1239 Sun Nov 02 21:14:43 GMT 2014  Olly Betts <olly@survex.com>
1241         * docs/deprecation.rst: Fix typo.
1243 Tue Oct 28 23:35:10 GMT 2014  Olly Betts <olly@survex.com>
1245         * docs/replication.rst: Fix typo.
1247 Tue Oct 28 02:34:54 GMT 2014  Olly Betts <olly@survex.com>
1249         * docs/postingsource.rst: Use a modern class in postingsource example.
1250           (Noted by James Aylett)
1252 Mon Oct 27 21:06:55 GMT 2014  Olly Betts <olly@survex.com>
1254         * docs/,net/Makefile.mk,net/remote_protocol.rst,
1255           net/replication_protocol.rst: Move the protocol docs for the remote
1256           and replication protocols into the net/ subdirectory.
1258 Mon Oct 27 19:19:59 GMT 2014  Olly Betts <olly@survex.com>
1260         * Makefile.am,api/Makefile.mk,api/dir_contents,backends/Makefile.mk,
1261           backends/brass/Makefile.mk,backends/brass/dir_contents,
1262           backends/chert/Makefile.mk,backends/chert/dir_contents,
1263           backends/dir_contents,backends/inmemory/Makefile.mk,
1264           backends/inmemory/dir_contents,backends/multi/Makefile.mk,
1265           backends/multi/dir_contents,backends/remote/Makefile.mk,
1266           backends/remote/dir_contents,bin/Makefile.mk,bin/dir_contents,
1267           common/Makefile.mk,common/dir_contents,configure.ac,dir_contents,
1268           docs/,examples/Makefile.mk,examples/dir_contents,expand/Makefile.mk,
1269           expand/dir_contents,geospatial/Makefile.mk,geospatial/dir_contents,
1270           include/Makefile.mk,include/dir_contents,include/xapian/dir_contents,
1271           languages/Makefile.mk,languages/dir_contents,m4-macros/dir_contents,
1272           m4/dir_contents,matcher/Makefile.mk,matcher/dir_contents,
1273           net/Makefile.mk,net/dir_contents,preautoreconf,
1274           queryparser/Makefile.mk,queryparser/dir_contents,tests/Makefile.am,
1275           tests/dir_contents,tests/harness/Makefile.mk,
1276           tests/harness/dir_contents,tests/perftest/Makefile.mk,
1277           tests/perftest/dir_contents,tests/soaktest/Makefile.mk,
1278           tests/soaktest/dir_contents,unicode/Makefile.mk,unicode/dir_contents,
1279           weight/Makefile.mk,weight/dir_contents: Remove the dir_contents files
1280           and all the machinery to handle them.
1282 Sat Oct 25 19:25:06 GMT 2014  Olly Betts <olly@survex.com>
1284         * api/query.cc,api/queryinternal.cc,api/smallvector.h,
1285           include/xapian/query.h: Stop using a reference where we may end up
1286           passing *NULL, as that's invalid.  Thanks Nick Lewycky and ubsan
1287           for helping track this down.
1288         * tests/api_postingsource.cc: Fix testsuite to avoid passing literal
1289           NULL - pass nullptr for C++11 and don't bother with that part of
1290           the testcase for older C++.
1292 Sat Oct 25 19:05:07 GMT 2014  Olly Betts <olly@survex.com>
1294         * weight/dlhweight.cc,weight/dphweight.cc: Avoid dividing by zero when
1295           the collection size is 0.
1297 Fri Oct 24 23:04:24 GMT 2014  Gaurav Arora <gauravarora.daiict@gmail.com>
1299         * api/registry.cc,include/xapian/weight.h,tests/api_backend.cc,
1300           tests/api_nodb.cc,tests/api_weight.cc,weight/Makefile.mk,
1301           weight/lmweight.cc: Add Unigram LMWeight class.
1303 Tue Oct 21 19:19:32 GMT 2014  Olly Betts <olly@survex.com>
1305         * NEWS: Update for 1.2.19 release.
1307 Mon Oct 20 00:47:32 GMT 2014  Olly Betts <olly@survex.com>
1309         * .gitignore,docs/.gitignore,tests/.gitignore,unicode/.gitignore:
1310           Update to ignore new generated files.
1312 Sat Oct 18 06:15:52 GMT 2014  Olly Betts <olly@survex.com>
1314         * include/xapian/enquire.h: Don't provide a default expansion scheme
1315           name in Enquire::set_expansion_scheme().
1317 Fri Oct 17 00:33:55 GMT 2014  Olly Betts <olly@survex.com>
1319         * api/queryinternal.cc,matcher/: Split NearPostList out into separate
1320           source file and header.
1322 Wed Oct 15 04:33:31 GMT 2014  Olly Betts <olly@survex.com>
1324         * api/queryinternal.cc,matcher/exactphrasepostlist.cc: We never try to
1325           build an ExactPhrasePostList over 0 or 1 terms, so simply assert we
1326           don't, rather than having an explicit check for it in the code.
1328 Tue Oct 14 02:47:02 GMT 2014  Olly Betts <olly@survex.com>
1330         * matcher/phrasepostlist.cc,tests/api_backend.cc: If the anchor term
1331           for a phrase is the first or last, set the min or max to its
1332           position respectively.  Fixes the testcase in #657, but may not be
1333           a complete fix.
1335 Sun Oct 12 12:03:10 GMT 2014  Olly Betts <olly@survex.com>
1337         * NEWS: Update.
1339 Fri Oct 10 10:53:38 GMT 2014  Olly Betts <olly@survex.com>
1341         * backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc: The
1342           table is sync-ed after the base file, so it's the last table we want
1343           to full-sync, not the last base file.
1345 Thu Oct 09 02:39:00 GMT 2014  Olly Betts <olly@survex.com>
1347         * common/debuglog.h: Suppress unused typedef warnings from debugging
1348           logging macros, which occur in functions which always exit via
1349           throwing an exception.
1351 Thu Oct 09 01:45:00 GMT 2014  Olly Betts <olly@survex.com>
1353         * tests/harness/fdtracker.cc: Fix code typo in recent change to skip
1354           apparent leaks of /dev/urandom.
1356 Thu Oct 09 01:43:02 GMT 2014  Olly Betts <olly@survex.com>
1358         * common/pretty.h: Fix debug logging code to compile with clang.
1359           (fixes #657, reported by Germán M. Bravo)
1361 Wed Oct 08 04:43:05 GMT 2014  Olly Betts <olly@survex.com>
1363         * matcher/multimatch.cc: If an empty RSet is specified, just handle it
1364           as if no RSet were specified.
1366 Mon Oct 06 21:41:58 GMT 2014  Olly Betts <olly@survex.com>
1368         * tests/Makefile.am: Remove .replicatmp upon "make clean".
1370 Fri Sep 19 05:31:15 GMT 2014  Olly Betts <olly@survex.com>
1372         * include/xapian/enquire.h: Fix compilation with clang.  Reported by
1373           Germán M. Bravo.
1375 Fri Sep 12 17:54:34 GMT 2014  Olly Betts <olly@survex.com>
1377         * docs/overview.rst: Add missing database path to example of using
1378           xapian-progsrv in a stub database file.
1380 Thu Sep 11 21:33:49 GMT 2014  Olly Betts <olly@survex.com>
1382         * include/Makefile.mk,include/xapian/enquire.h,
1383           include/xapian/iterator.h: Add simple API to help with creating
1384           language-idiomatic iterator wrappers.
1386 Wed Sep 10 17:02:18 GMT 2014  Olly Betts <olly@survex.com>
1388         * api/queryinternal.cc: If we hit an unknown query serialisation,
1389           report the numeric code for it in the exception thrown.
1391 Wed Sep 10 16:59:20 GMT 2014  Olly Betts <olly@survex.com>
1393         * tests/queryparsertest.cc: Enable some disabled cases which actually
1394           work (in some cases with slightly tweaked expected answers which are
1395           equivalent to those that were shown).
1397 Fri Sep 05 17:41:53 GMT 2014  Olly Betts <olly@survex.com>
1399         * tests/harness/fdtracker.cc: Don't report apparent leaks of fds
1400           opened on /dev/urandom - at least on Linux, something in the C
1401           library seems to lazily open it, and the report of a possible leak
1402           followed by assurance that it's OK really is just noise we could
1403           do without.
1405 Fri Sep 05 14:06:08 GMT 2014  Olly Betts <olly@survex.com>
1407         * common/pretty.h: Add new brass-related types.
1409 Thu Sep 04 20:51:16 GMT 2014  Olly Betts <olly@survex.com>
1411         * backends/dbfactory.cc: Fix incorrect return type in logging
1412           annotations for InMemory::open().
1414 Thu Sep 04 20:48:37 GMT 2014  Olly Betts <olly@survex.com>
1416         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
1417           Fix logging annotations for get_freqs() to reflect that it now has
1418           void return type.
1420 Thu Sep 04 20:21:32 GMT 2014  Olly Betts <olly@survex.com>
1422         * api/,backends/brass/,backends/chert/,backends/dbfactory_remote.cc,
1423           matcher/mergepostlist.cc,matcher/remotesubmatch.cc,
1424           net/progclient.cc: Add missing RETURN() markup for debug logging,
1425           highlighted by warning from recent GCC.
1427 Thu Sep 04 18:02:38 GMT 2014  Olly Betts <olly@survex.com>
1429         * backends/brass/brass_freelist.cc,backends/brass/brass_freelist.h:
1430           Make the BrassTable parameter a const pointer.
1432 Thu Sep 04 17:13:57 GMT 2014  Olly Betts <olly@survex.com>
1434         * common/io_utils.cc: Reading or writing a block will almost always
1435           complete in one call, so streamline that case.
1437 Wed Sep 03 19:30:00 GMT 2014  Olly Betts <olly@survex.com>
1439         * common/internaltypes.h: Update comment to reflect C++11 now being
1440           out.
1442 Wed Sep 03 19:29:09 GMT 2014  Olly Betts <olly@survex.com>
1444         * common/internaltypes.h,configure.ac: Make uint2 available.
1446 Wed Sep 03 19:27:41 GMT 2014  Olly Betts <olly@survex.com>
1448         * backends/brass/brass_database.h: Remove method which is declared but
1449           never defined.
1451 Wed Sep 03 18:52:40 GMT 2014  Olly Betts <olly@survex.com>
1453         * generate-exceptions,include/xapian/: Use XAPIAN_IN_XAPIAN_H rather
1454           than XAPIAN_INCLUDED_XAPIAN_H in the direct inclusion of subheader
1455           checks.  Currently neither will catch the case of the user including
1456           a sub-header after <xapian.h> since the include guard for the
1457           subheader will stop us getting to the direct inclusion check, but
1458           XAPIAN_IN_XAPIAN_H will work if we move the check outside the
1459           include guard.
1461 Wed Sep 03 18:29:41 GMT 2014  Olly Betts <olly@survex.com>
1463         * include/xapian/constants.h: Hide internal constants from external
1464           users.
1466 Tue Sep 02 14:15:50 GMT 2014  Olly Betts <olly@survex.com>
1468         * backends/brass/brass_spellingwordslist.h: Explicit include
1469           brass_cursor.h since we actually use BrassCursor here.
1471 Mon Sep 01 22:03:11 GMT 2014  Olly Betts <olly@survex.com>
1473         * tests/api_backend.cc: New testcase readonlyparentdir1 to ensure that
1474           commit works with a read-only parent directory.
1476 Mon Sep 01 21:51:45 GMT 2014  Olly Betts <olly@survex.com>
1478         * tests/harness/testrunner.h: Drop "flint" flag - flint was removed
1479           from trunk some time ago.
1481 Mon Sep 01 21:42:31 GMT 2014  Olly Betts <olly@survex.com>
1483         * backends/brass/: Eliminate brass_doclen_t in favour of just using
1484           Xapian::termcount.
1486 Mon Sep 01 21:28:39 GMT 2014  Olly Betts <olly@survex.com>
1488         * backends/brass/brass_check.h: Tweak to ease upcoming big merge.
1490 Mon Sep 01 20:59:40 GMT 2014  Olly Betts <olly@survex.com>
1492         * backends/brass/,backends/dbcheck.cc: Only create a btree entry for
1493           the document data if it is non-empty.  The table is now lazily
1494           created, so won't exist if no documents have document data set.
1496 Mon Sep 01 16:54:44 GMT 2014  Olly Betts <olly@survex.com>
1498         * backends/brass/brass_record.cc,backends/brass/brass_record.h: Remove
1499           BrassRecordTable::get_doccount() as it is no longer used.
1501 Mon Sep 01 16:51:04 GMT 2014  Olly Betts <olly@survex.com>
1503         * backends/brass/: Track doccount in the database stats.
1505 Mon Sep 01 16:27:15 GMT 2014  Olly Betts <olly@survex.com>
1507         * backends/brass/brass_database.cc: Update comment and exception
1508           message not to talk about "consistent state", as that was to do
1509           with the base files.
1511 Mon Sep 01 14:57:02 GMT 2014  Olly Betts <olly@survex.com>
1513         * backends/brass/brass_database.cc: Explicitly include brass_defs.h.
1515 Mon Sep 01 14:48:01 GMT 2014  Olly Betts <olly@survex.com>
1517         * backends/brass/: Eliminate backends/brass/brass_types.h.
1519 Fri Aug 29 21:06:22 GMT 2014  Olly Betts <olly@survex.com>
1521         * backends/dbcheck.cc: Fix checking a single brass table.
1523 Thu Aug 28 16:04:59 GMT 2014  Olly Betts <olly@survex.com>
1525         * backends/brass/brass_check.cc,backends/chert/chert_check.cc,
1526           bin/xapian-check.cc,include/xapian/constants.h: Rename
1527           DBCHECK_SHOW_BITMAP to DBCHECK_SHOW_FREELIST.
1529 Tue Aug 26 22:31:32 GMT 2014  Olly Betts <olly@survex.com>
1531         * NEWS: Update.
1533 Fri Aug 22 09:09:52 GMT 2014  Gaurav Arora <gauravarora.daiict@gmail.com>
1535         * api/,backends/brass/,backends/chert/,
1536           backends/contiguousalldocspostlist.cc,
1537           backends/contiguousalldocspostlist.h,backends/database.h,
1538           backends/inmemory/inmemory_database.cc,
1539           backends/inmemory/inmemory_database.h,
1540           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
1541           backends/remote/,common/remoteprotocol.h,docs/sorting.rst,
1542           include/xapian/database.h,include/xapian/postingiterator.h,
1543           include/xapian/weight.h,matcher/,net/remoteserver.cc,
1544           net/remoteserver.h,tests/,weight/: Provide the number of distinct
1545           terms in the document to weighting schemes.  The current
1546           implementation for the disk-based backends is a bit inefficient as
1547           it has to look at the termlist table entry for the document.
1549 Thu Aug 21 12:29:57 GMT 2014  Olly Betts <olly@survex.com>
1551         * weight/weight.cc: Add missing parameter to debug logging for
1552           Weight::init_().
1554 Tue Aug 19 14:25:39 GMT 2014  Olly Betts <olly@survex.com>
1556         * backends/brass/brass_table.h: Don't sync handles for tables which
1557           aren't open.  Reported by Austin Clements.
1559 Fri Aug 15 13:13:43 GMT 2014  Olly Betts <olly@survex.com>
1561         * HACKING: freecode no longer accepts updates, so drop that item from
1562           the release checklist.
1564 Wed Aug 13 23:55:24 GMT 2014  Olly Betts <olly@survex.com>
1566         * backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc:
1567           Only full sync the final base file written.
1569 Mon Aug 11 05:30:20 GMT 2014  Olly Betts <olly@survex.com>
1571         * configure.ac: For Sun's C++ compiler, pass -library=Crun separately
1572           since libtool looks for " -library=stlport4 " (with the spaces).
1573           (fixes#650)
1575 Mon Aug 11 03:00:15 GMT 2014  Olly Betts <olly@survex.com>
1577         * configure.ac: Rename XAPIAN_TEST_CXXFLAGS_ to XAPIAN_TEST_CXXFLAGS
1578           (since the latter is never used) and make it take a variable to
1579           add the flags to.  Also, fix it to restore CXXFLAGS correctly if
1580           the success case contains "break".
1582 Wed Aug 06 10:49:46 GMT 2014  Olly Betts <olly@survex.com>
1584         * include/xapian/compactor.h: Fix formatting of doxygen comment.
1586 Wed Aug 06 10:49:20 GMT 2014  Olly Betts <olly@survex.com>
1588         * include/xapian/constants.h: Whitespace tweak.
1590 Wed Aug 06 10:08:09 GMT 2014  Olly Betts <olly@survex.com>
1592         * backends/brass/brass_version.cc,common/io_utils.h,
1593           include/xapian/constants.h: Add DB_FULL_SYNC flag - if this is set
1594           for a database, we use the Mac OS X F_FULL_SYNC instead of
1595           fdatasync()/fsync()/etc on the version file when committing.
1597 Mon Aug 04 05:58:13 GMT 2014  Olly Betts <olly@survex.com>
1599         * backends/brass/brass_compact.cc: Whitespace tweak.
1601 Mon Aug 04 05:57:27 GMT 2014  Olly Betts <olly@survex.com>
1603         * backends/brass/brass_compact.cc: When compacting, sync all the
1604           tables together at the end.
1606 Mon Aug 04 05:42:21 GMT 2014  Olly Betts <olly@survex.com>
1608         * backends/brass/brass_compact.cc,backends/brass/brass_version.cc:
1609           Clean up temporary file in BrassVersion::sync() in all failure
1610           cases.
1612 Mon Aug 04 05:21:02 GMT 2014  Olly Betts <olly@survex.com>
1614         * backends/brass/: In DB_DANGEROUS mode, update the version file
1615           in-place.
1617 Fri Aug 01 02:49:57 GMT 2014  Olly Betts <olly@survex.com>
1619         * backends/brass/brass_compact.cc: Lock the target database while
1620           we're compacting to it, which has the side effect of creating the
1621           'flintlock' file there.
1623 Fri Aug 01 02:35:35 GMT 2014  Olly Betts <olly@survex.com>
1625         * include/xapian/visibility.h: Add link to GCC Visibility wiki page.
1627 Thu Jul 31 02:54:40 GMT 2014  Olly Betts <olly@survex.com>
1629         * tests/api_weight.cc,weight/bb2weight.cc: Avoid calculating logs of 0
1630           or negative values by clamping the normalise wdf to at most one less
1631           than the collection frequency, and the collection size to at least
1632           2.
1634 Thu Jul 31 02:48:35 GMT 2014  Olly Betts <olly@survex.com>
1636         * tests/api_weight.cc,weight/bb2weight.cc: Fix upper bound for
1637           BB2Weight to not be scaled twice by wqf and factor.
1639 Wed Jul 30 05:48:46 GMT 2014  Olly Betts <olly@survex.com>
1641         * weight/bb2weight.cc: Fix comment typo, and capitalise "Stirling" in
1642           comments.
1644 Wed Jul 30 05:47:31 GMT 2014  Olly Betts <olly@survex.com>
1646         * weight/bb2weight.cc: Whitespace cleanup.
1648 Wed Jul 30 05:43:59 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1650         * include/xapian/weight.h,weight/bb2weight.cc: Optimise BB2Weight and
1651           fix incorrect upper bound in some cases.
1653 Tue Jul 29 07:20:57 GMT 2014  Olly Betts <olly@survex.com>
1655         * backends/brass/brass_version.cc: Remove assertion that table sizes
1656           are all the same, and redundant assertion that the unserialised
1657           blocksize is >= 2048.  Fixes set-but-not-used warning in
1658           non-assertion build.
1660 Mon Jul 28 06:35:45 GMT 2014  Olly Betts <olly@survex.com>
1662         * backends/brass/brass_databasereplicator.cc,
1663           backends/brass/brass_databasereplicator.h,
1664           backends/brass/brass_table.cc: Replace enum table_id with enum
1665           Brass::table_type.
1667 Mon Jul 28 04:28:12 GMT 2014  Olly Betts <olly@survex.com>
1669         * NEWS: Note the freelist implementation fixed #40.
1671 Mon Jul 28 04:26:07 GMT 2014  Olly Betts <olly@survex.com>
1673         * api/compactor.cc,backends/brass/,backends/dbcheck.cc,
1674           tests/api_wrdb.cc: Eliminate the base files, and instead store the
1675           root block and freelist pointers in the "iambrass" file.
1677 Mon Jul 28 03:22:22 GMT 2014  Olly Betts <olly@survex.com>
1679         * backends/brass/brass_databasereplicator.cc: Remove variable which is
1680           set but never used.
1682 Sun Jul 27 01:56:58 GMT 2014  Olly Betts <olly@survex.com>
1684         * backends/dbcheck.cc: Don't try to write output when no output stream
1685           is specified in the case where the database open fails and so we
1686           can't check changes files.
1688 Thu Jul 24 21:12:23 GMT 2014  Olly Betts <olly@survex.com>
1690         * NEWS: Update.
1692 Fri Jul 11 10:44:48 GMT 2014  Olly Betts <olly@survex.com>
1694         * weight/bm25weight.cc: Improve BM25 upper bound in the case when our
1695           wdf upper bound > our document length lower bound.  Thanks to
1696           Craig Macdonald for pointing out this trick.
1698 Thu Jul 10 13:29:50 GMT 2014  Olly Betts <olly@survex.com>
1700         * weight/bm25weight.cc: Pre-multiply termweight by (param_k1 + 1).
1702 Sat Jun 28 11:00:49 GMT 2014  Olly Betts <olly@survex.com>
1704         * languages/Makefile.mk: Sort the stop.list files (since loading a
1705           sorted list is likely to be more efficient) and remove any duplicate
1706           entries.
1708 Sat Jun 28 10:48:03 GMT 2014  Olly Betts <olly@survex.com>
1710         * languages/stopwords/finnish/stop.txt,
1711           languages/stopwords/norwegian/stop.txt: Remove duplicate entries.
1713 Sat Jun 28 10:38:56 GMT 2014  Olly Betts <olly@survex.com>
1715         * languages/stopwords/russian/stop.txt: Convert from KOI8-R to UTF-8.
1717 Mon Jun 23 02:26:24 GMT 2014  Olly Betts <olly@survex.com>
1719         * configure.ac: configure.ac: Add hints for which package to install
1720           for rst2html
1722 Mon Jun 23 00:54:05 GMT 2014  Olly Betts <olly@survex.com>
1724         * configure.ac: Use AS_MKDIR_P instead of test -d || mkdir.
1726 Sun Jun 22 07:32:11 GMT 2014  Olly Betts <olly@survex.com>
1728         * NEWS: Update.
1730 Sat Jun 21 03:45:19 GMT 2014  Olly Betts <olly@survex.com>
1732         * docs/Makefile.am: Use $(MKDIR_P) instead of test -d || mkdir 3
1733           times.
1735 Sat Jun 21 03:44:37 GMT 2014  Olly Betts <olly@survex.com>
1737         * languages/Makefile.mk: Generate the directories for the minimised
1738           stopword files in a VPATH build.
1740 Tue Jun 17 13:36:40 GMT 2014  Assem Chelli <assem.ch@gmail.com>
1742         * include/xapian/queryparser.h: Add the example of initializing
1743           SimpleStopper using a file as a doccomment.
1745 Tue Jun 17 13:30:09 GMT 2014  Olly Betts <olly@survex.com>
1747         * languages/Makefile.mk: Remove trailing whitespace (some of which
1748           breaks the parsing to get the lists of source files to pass to
1749           doxygen).
1751 Tue Jun 17 13:24:59 GMT 2014  Assem Chelli <assem.ch@gmail.com>
1753         * languages/: Add stopwords lists from Snowball plus an Arabic one.
1755 Tue Jun 17 11:48:12 GMT 2014  Olly Betts <olly@survex.com>
1757         * weight/dlhweight.cc: Fix comment typo.
1759 Tue Jun 17 11:46:40 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1761         * weight/dlhweight.cc: Improve the upper bound on DLH ~3-4 times.
1763 Tue Jun 17 11:32:22 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1765         * include/xapian/weight.h,weight/dphweight.cc: Combine factor into
1766           constants calculated in init().  Improve get_maxpart() a little
1767           in the (common) case where the wdf upper bound is less than half
1768           the document length upper bound.
1770 Tue Jun 17 03:42:36 GMT 2014  Olly Betts <olly@survex.com>
1772         * tests/api_unicode.cc,unicode/UnicodeData-README.txt,
1773           unicode/UnicodeData.txt: Update to Unicode 7.0.0.
1775 Mon Jun 16 14:13:18 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1777         * weight/dphweight.cc: Improved upper bound for DPH.
1779 Mon Jun 16 13:58:24 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1781         * include/xapian/weight.h,weight/ifb2weight.cc,weight/ineb2weight.cc,
1782           weight/inl2weight.cc: Include 'factor' in the constants we calculate
1783           in init_().
1785 Mon Jun 16 13:53:05 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1787         * include/xapian/weight.h,weight/dlhweight.cc: DLH optimization.
1789 Mon Jun 16 13:02:24 GMT 2014  Olly Betts <olly@survex.com>
1791         * HACKING: Need python3-sphinx to generate docs for python3.
1793 Mon Jun 16 12:37:13 GMT 2014  Assem Chelli <assem.ch@gmail.com>
1795         * HACKING: Note sphinx-doc now needed (for Python bindings API docs).
1797 Mon Jun 16 05:35:03 GMT 2014  Olly Betts <olly@survex.com>
1799         * HACKING,configure.ac,docs/Makefile.am,docs/doxygen_api.conf.in:
1800           Don't build, ship or install PDF versions of the API docs by
1801           default, but provide an easy way for people to build it for
1802           themselves if they want it.
1804 Mon Jun 16 04:20:40 GMT 2014  Olly Betts <olly@survex.com>
1806         * include/xapian/queryparser.h: Improve the descriptions of the
1807           stem_strategy values.  (Reported by "oilap" on #xapian)
1809 Fri Jun 13 07:52:53 GMT 2014  Olly Betts <olly@survex.com>
1811         * weight/dphweight.cc: Fix some comment typos.
1813 Fri Jun 13 07:47:32 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1815         * include/xapian/weight.h,weight/dphweight.cc: Optimized DPH code.
1817 Fri Jun 13 01:39:07 GMT 2014  Olly Betts <olly@survex.com>
1819         * examples/quest.cc: Fix ordering of "bm25" and "bool" in allegedly
1820           sorted list, so that --weight bm25 and --weight bool work.
1822 Thu Jun 12 13:49:19 GMT 2014  Olly Betts <olly@survex.com>
1824         * matcher/extraweightpostlist.h: Add an assertion that get_sumextra()
1825           returns a weight contribution which is <= the upper bound which
1826           get_maxextra() returns.
1828 Thu Jun 12 13:30:55 GMT 2014  Olly Betts <olly@survex.com>
1830         * api/leafpostlist.cc,matcher/synonympostlist.cc: Add assertions that
1831           get_sumpart() returns a weight contribution which is <= the upper
1832           bound which get_maxpart() returns.
1834 Wed Jun 11 05:34:16 GMT 2014  Olly Betts <olly@survex.com>
1836         * languages/hungarian.sbl: Fix incorrect Unicode codepoints for
1837           o-double-acute and u-double-acute in Hungarian Snowball stemmer.
1838           Reported by Tom Lane to snowball-discuss.
1840 Tue Jun 10 10:59:18 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1842         * include/xapian/weight.h,weight/ineb2weight.cc: Optimized IneB2:
1843           Reduced number of calculations in get_sumpart and tightened upper
1844           bound.
1846 Tue Jun 10 10:23:09 GMT 2014  Olly Betts <olly@survex.com>
1848         * weight/ineb2weight.cc: Fix closing brace indentation.
1850 Tue Jun 10 09:58:18 GMT 2014  Olly Betts <olly@survex.com>
1852         * examples/quest.cc: Rework the weight name lookup to use a table like
1853           the other lookups.  Change the weight names not to include "weight".
1855 Tue Jun 10 08:15:18 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1857         * include/xapian/weight.h,weight/ifb2weight.cc: Optimized
1858           upper bound and weighting formula in IfB2Weight.
1860 Tue Jun 10 05:34:52 GMT 2014  Aarsh Shah <aarshkshah1992@gmail.com>
1862         * include/xapian/weight.h,weight/inl2weight.cc: Optimized
1863           upper bound and weighting formula in InL2Weight.
1865 Tue Jun 10 05:09:08 GMT 2014  Olly Betts <olly@survex.com>
1867         * examples/quest.cc: Add --weight option to allow the weighting scheme
1868           to be specified.
1870 Thu Jun 05 03:42:51 GMT 2014  Olly Betts <olly@survex.com>
1872         * api/omdatabase.cc,tests/api_backend.cc: Fix
1873           Database::get_wdf_upper_bound("") not to fail with an assertion.
1875 Tue Jun 03 22:59:10 GMT 2014  Olly Betts <olly@survex.com>
1877         * matcher/localsubmatch.cc: Use RETURN() instead of return in methods
1878           with LOGCALL annotations.
1880 Mon Jun 02 13:15:36 GMT 2014  Olly Betts <olly@survex.com>
1882         * docs/Makefile.am: Actually ship, process and install geospatial.rst.
1884 Mon Jun 02 11:40:27 GMT 2014  Olly Betts <olly@survex.com>
1886         * languages/Makefile.mk: Ship collate-sbl script.
1888 Thu May 29 12:13:06 GMT 2014  Olly Betts <olly@survex.com>
1890         * HACKING: Replace a link to the outdated autotools "goat book" with a
1891           link to the "Portable Shell" chapter of the autoconf manual.
1893 Thu May 29 03:31:10 GMT 2014  Olly Betts <olly@survex.com>
1895         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Allow
1896           the user to specify how long a snippet they want.  Only add "..." if
1897           the sample was actually truncated.
1899 Wed May 28 12:52:26 GMT 2014  Olly Betts <olly@survex.com>
1901         * include/xapian/snipper.h: Add the standard guards to prevent user
1902           code from including this header directly.
1904 Tue May 27 04:19:12 GMT 2014  Olly Betts <olly@survex.com>
1906         * include/Makefile.mk: Ship include/xapian/snipper.h in tarball.
1908 Tue May 27 04:03:09 GMT 2014  Olly Betts <olly@survex.com>
1910         * api/snipper.cc,include/xapian/snipper.h,
1911           tests/generate-api_generated: Add missing assignment operator to
1912           Xapian::Snipper class.
1914 Tue May 27 03:43:03 GMT 2014  Olly Betts <olly@survex.com>
1916         * include/xapian/snipper.h: Add missing doxygen comments.
1918 Tue May 27 03:41:08 GMT 2014  Olly Betts <olly@survex.com>
1920         * include/xapian/snipper.h,tests/api_snipper.cc: Whitespace tweaks.
1922 Tue May 27 03:36:19 GMT 2014  Olly Betts <olly@survex.com>
1924         * api/snipper.cc,include/xapian/snipper.h,tests/api_snipper.cc: Remove
1925           getters for obtaining info about the relevance model, and instead
1926           add a get_description() method which includes all such info in the
1927           returned description.
1929 Tue May 27 03:06:36 GMT 2014  Olly Betts <olly@survex.com>
1931         * api/snipper.cc: Use an iterator instead of subscripting.
1933 Tue May 27 03:03:33 GMT 2014  Olly Betts <olly@survex.com>
1935         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Use
1936           appropriate named types rather than "int" or "unsigned int".
1938 Tue May 27 03:02:48 GMT 2014  Olly Betts <olly@survex.com>
1940         * api/snipperinternal.h: Remove constants which are no longer used.
1942 Tue May 27 02:48:44 GMT 2014  Olly Betts <olly@survex.com>
1944         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h:
1945           Rework Snipper methods set_smoothing_coef() and set_window_size() as
1946           optional parameters of generate_snippet().
1948 Tue May 27 02:33:39 GMT 2014  Olly Betts <olly@survex.com>
1950         * api/snipper.cc,api/snipperinternal.h: Just pass rm_docno through to
1951           Snipper::Internal::calculate_rm() as a parameter rather than storing
1952           it in a member variable.
1954 Tue May 27 02:25:41 GMT 2014  Olly Betts <olly@survex.com>
1956         * api/snipper.cc: Use clear() method to empty a container.
1958 Tue May 27 02:22:37 GMT 2014  Olly Betts <olly@survex.com>
1960         * tests/api_snipper.cc: Drop unused <algorithm>.
1962 Tue May 27 02:21:53 GMT 2014  Olly Betts <olly@survex.com>
1964         * api/snipper.cc: Eliminate ret_value variable.
1966 Tue May 27 02:20:25 GMT 2014  Olly Betts <olly@survex.com>
1968         * api/snipper.cc: Avoid unnecessary substr operations.
1970 Tue May 27 02:17:32 GMT 2014  Olly Betts <olly@survex.com>
1972         * api/snipper.cc: Prefer ++i to i++ in loops.
1974 Tue May 27 02:16:14 GMT 2014  Olly Betts <olly@survex.com>
1976         * api/snipper.cc: Use TermIterator::positionlist_count().
1978 Tue May 27 02:14:52 GMT 2014  Olly Betts <olly@survex.com>
1980         * api/snipper.cc,api/snipperinternal.h,include/xapian/snipper.h: Fix
1981           typos in comments and variable names in new snipper code.
1983 Tue May 27 02:13:09 GMT 2014  Olly Betts <olly@survex.com>
1985         * tests/Makefile.am: Hook up new Snipper API tests to actually be
1986           used.
1988 Tue May 27 02:09:49 GMT 2014  Mihai Bivol <mm.bivol@gmail.com>
1990         * tests/api_snipper.cc: Add Snipper API tests.
1992 Tue May 27 02:04:26 GMT 2014  Olly Betts <olly@survex.com>
1994         * api/snipper.cc: Add missing #include <config.h>.
1996 Tue May 27 02:00:32 GMT 2014  Mihai Bivol <mm.bivol@gmail.com>
1998         * api/Makefile.mk,api/snipper.cc,api/snipperinternal.h,
1999           include/xapian.h,include/xapian/snipper.h: Add Xapian::Snipper
2000           class.
2002 Mon May 26 05:52:22 GMT 2014  Olly Betts <olly@survex.com>
2004         * api/omdatabase.cc,backends/brass/brass_postlist.h,
2005           backends/chert/chert_postlist.h,backends/database.h: Fix comment
2006           typos.
2008 Fri May 23 11:59:26 GMT 2014  Olly Betts <olly@survex.com>
2010         * api/matchspy.cc: Pass std::string by const reference.
2012 Thu May 22 06:31:12 GMT 2014  Olly Betts <olly@survex.com>
2014         * matcher/localsubmatch.cc: Fix the check for a term which matches all
2015           documents to use the sub-db termfreq, not the combined db termfreq.
2017 Thu May 22 06:00:47 GMT 2014  Olly Betts <olly@survex.com>
2019         * matcher/localsubmatch.cc: If a term matches all documents and its
2020           weight doesn't depend on its wdf, we can optimise it to MatchAll
2021           (the previous requirement that maxpart == 0 was unnecessarily
2022           strict).
2024 Thu May 22 05:52:15 GMT 2014  Olly Betts <olly@survex.com>
2026         * matcher/localsubmatch.cc,tests/api_percentages.cc: When we optimise
2027           a postlist for a term which matches all documents to use MatchAll,
2028           we still need to set a weight object on it to get percentages
2029           calculated correctly.
2031 Thu May 22 04:08:35 GMT 2014  Olly Betts <olly@survex.com>
2033         * api/queryinternal.cc,matcher/localsubmatch.cc,
2034           matcher/localsubmatch.h,matcher/queryoptimiser.h: Refactor to group
2035           most of the code to create a postlist for a term and set its weight
2036           into one place.
2038 Mon May 19 00:08:04 GMT 2014  Olly Betts <olly@survex.com>
2040         * backends/brass/brass_freelist.cc,tests/api_backend.cc: When we start
2041           to write a new freelist block, set the revision on the old one we
2042           write out correctly, and don't "-1" out the next block pointer
2043           before we write out the block in this case.  New regression testcase
2044           newfreelistblock1.
2045         * backends/brass/brass_freelist.cc: Add assertions that the freelist
2046           block has a next pointer when fl_end is a different block to fl.
2048 Fri May 16 04:35:21 GMT 2014  Olly Betts <olly@survex.com>
2050         * backends/brass/brass_freelist.h: Fix BrassFreeList::swap() to also
2051           swap the flw_appending members.
2053 Thu May 15 12:51:15 GMT 2014  Olly Betts <olly@survex.com>
2055         * HACKING: Add checking config/config.* are up to date to the 
2056           release checklist.
2058 Thu May 15 12:47:28 GMT 2014  Olly Betts <olly@survex.com>
2060         * HACKING: Now using automake 1.14.1 to bootstrap snapshots and
2061           1.3.x releases.
2063 Wed May 14 03:18:37 GMT 2014  Olly Betts <olly@survex.com>
2065         * api/queryinternal.cc: Only serialise parameter where it is actually
2066           used.
2068 Fri May 09 01:56:48 GMT 2014  Olly Betts <olly@survex.com>
2070         * HACKING: Now using doxygen 1.8.7 to bootstrap tarballs.
2072 Mon May 05 05:37:32 GMT 2014  Olly Betts <olly@survex.com>
2074         * backends/chert/chert_check.cc,backends/chert/chert_dbcheck.cc,
2075           backends/dbcheck.cc: Improve DBCHECK_FIX - if fixing a whole
2076           database, we now take the revision from the first table we
2077           successfully look at, which should be correct in most cases,
2078           and is definitely better than trying to determine the revision
2079           of each broken table independently.
2081 Fri May 02 02:36:05 GMT 2014  Olly Betts <olly@survex.com>
2083         * matcher/valuestreamdocument.cc,matcher/valuestreamdocument.h: Put
2084           the docid in the sub-database into the ValueStreamDocument object as
2085           that's what Xapian::Document::get_docid() is documented to return.
2086           (fixes#636, reported by Jeff Rand).
2088 Thu May 01 13:25:35 GMT 2014  Olly Betts <olly@survex.com>
2090         * api/omdatabase.cc,include/xapian/database.h,
2091           matcher/valuestreamdocument.cc: Eliminate
2092           Database::get_document_lazily_() completely.
2094 Thu May 01 11:48:00 GMT 2014  Olly Betts <olly@survex.com>
2096         * backends/database.cc,backends/slowvaluelist.cc,
2097           backends/slowvaluelist.h: Don't wrap the subdatabase object in a
2098           Xapian::Database for SlowValueList, which mean we can just call
2099           open_document(did, true) on it instead of having to use
2100           Xapian::Database::get_document_lazily_().
2102 Wed Apr 30 00:31:52 GMT 2014  Olly Betts <olly@survex.com>
2104         * api/omdatabase.cc: Explicitly '#include <algorithm>' for std::max(),
2105           fixing build with VS2013.  (fixes#641)
2107 Tue Apr 29 04:28:06 GMT 2014  Olly Betts <olly@survex.com>
2109         * common/append_filename_arg.h,net/remoteconnection.h: Comment tweaks.
2111 Tue Apr 29 04:26:26 GMT 2014  Olly Betts <olly@survex.com>
2113         * tests/harness/unixcmds.cc: Drop code supporting Microsoft Windows 9x
2114           which reached EOL in 2006.
2116 Thu Apr 17 05:06:21 GMT 2014  Olly Betts <olly@survex.com>
2118         * common/autoptr.h: Under C++11, use unique_ptr for AutoPtr.
2120 Wed Apr 09 22:16:37 GMT 2014  Olly Betts <olly@survex.com>
2122         * api/documentterm.h,api/omdocument.cc: Don't store the termname in
2123           OmDocumentTerm - we were only using it in get_description() output
2124           and an exception message.  Speeds up indexing etext.txt using
2125           simpleindex by 0.4%, and should reduce memory usage a bit too.
2126           (Change inspired by comments from Vishesh Handa on xapian-devel).
2128 Wed Apr 09 05:17:58 GMT 2014  Olly Betts <olly@survex.com>
2130         * backends/brass/brass_btreebase.cc,backends/brass/brass_table.cc:
2131           Remove comment references to using bitmaps for freespace tracking.
2133 Tue Apr 08 04:20:00 GMT 2014  Olly Betts <olly@survex.com>
2135         * bin/xapian-delve.cc: Add -A <prefix> option to list all terms with
2136           a particular prefix.
2138 Mon Apr 07 05:45:06 GMT 2014  Olly Betts <olly@survex.com>
2140         * api/omdatabase.cc,backends/brass/,backends/chert/,
2141           backends/database.cc,backends/database.h,
2142           backends/inmemory/inmemory_database.cc,
2143           backends/inmemory/inmemory_database.h,
2144           backends/remote/remote-database.cc,backends/remote/remote-database.h,
2145           common/remoteprotocol.h,matcher/const_database_wrapper.cc,
2146           matcher/const_database_wrapper.h,net/remoteserver.cc,
2147           net/remoteserver.h,weight/weightinternal.cc: Fetch termfreq and
2148           collection frequency in a single call - shaves ~0.3% off a test
2149           search.
2151 Thu Apr 03 23:40:45 GMT 2014  Olly Betts <olly@survex.com>
2153         * net/serialise.cc,weight/weightinternal.h: Make Weight::Internal
2154           track if any max_part values are set, so we don't need to
2155           serialise them when they've not been set.
2157 Thu Apr 03 05:50:13 GMT 2014  Olly Betts <olly@survex.com>
2159         * weight/weightinternal.cc: Enhance
2160           Weight::Internal::get_description() to report TermFreqs.
2162 Thu Apr 03 05:46:44 GMT 2014  Olly Betts <olly@survex.com>
2164         * api/omenquire.cc,api/omenquireinternal.h,common/submatch.h,matcher/,
2165           net/remoteserver.cc,net/serialise.cc,weight/weight.cc,
2166           weight/weightinternal.cc,weight/weightinternal.h: Eliminate the
2167           map<string, TermFreqAndWeight> in MSet::Internal, and instead just
2168           preserve the Weight::Internal object there as that holds all the
2169           information we need.
2171 Thu Apr 03 04:40:09 GMT 2014  Olly Betts <olly@survex.com>
2173         * backends/remote/remote-database.cc,net/remoteserver.cc,
2174           net/serialise.cc,net/serialise.h: Avoid returning
2175           Xapian::Weight::Internal by value from unserialise_stats().
2177 Tue Apr 01 22:41:16 GMT 2014  Olly Betts <olly@survex.com>
2179         * matcher/localsubmatch.cc,weight/weight.cc,weight/weightinternal.cc,
2180           weight/weightinternal.h: Replace Weight::Internal methods to get
2181           termfreq, reltermfreq and colltermfreq with a single inlined
2182           get_stats() method, which only needs to search the map once.
2183           Shaves ~1.6% off the time to do a wildcard query with a lot of
2184           terms.
2186 Tue Apr 01 22:11:52 GMT 2014  Olly Betts <olly@survex.com>
2188         * matcher/localsubmatch.cc: Don't refetch the termfreq if we already
2189           have it.
2191 Sun Mar 30 22:54:22 GMT 2014  Anish Kanchan <anishgkanchan@gmail.com>
2193         * include/xapian/termgenerator.h: Make TermGenerator flags an
2194           anonymous enum, and typedef TermGenerator::flags to int for backward
2195           compatibility with existing user code which uses it.  (fixes #616)
2197 Thu Mar 27 05:45:14 GMT 2014  Liu Chi <liuchi09@gmail.com>
2199         * include/xapian/stem.h,languages/Makefile.mk,
2200           languages/earlyenglish.sbl,languages/stem.cc,tests/api_stem.cc:
2201           Add an early english stemmer.
2203 Wed Mar 19 02:42:00 GMT 2014  Olly Betts <olly@survex.com>
2205         * weight/weightinternal.cc: Fix comment typo.
2207 Fri Mar 14 09:53:22 GMT 2014  Olly Betts <olly@survex.com>
2209         * HACKING: MacTeX seems to be the best option if using homebrew.
2211 Fri Mar 07 23:17:43 GMT 2014  Olly Betts <olly@survex.com>
2213         * matcher/maxpostlist.cc: More fixes for --enable.log.
2215 Fri Mar 07 23:01:45 GMT 2014  Olly Betts <olly@survex.com>
2217         * matcher/maxpostlist.cc: Fix compilation error with --enable-log on.
2218           Reported by Anurag Soni.
2220 Fri Mar 07 00:39:11 GMT 2014  Olly Betts <olly@survex.com>
2222         * HACKING: Fix typo and RST markup.
2224 Fri Mar 07 00:21:16 GMT 2014  VcamX <vcamx3@gmail.com>
2226         * HACKING: Note packages to install from homebrew on Mac OS X.
2228 Fri Mar 07 00:17:01 GMT 2014  VcamX <vcamx3@gmail.com>
2230         * backends/dbcheck.cc,common/pack.h: Fix warnings with clang 5.0.
2232 Tue Mar 04 04:25:11 GMT 2014  Olly Betts <olly@survex.com>
2234         * api/queryinternal.cc,api/queryinternal.h: Only simplify OP_SYNONYM
2235           with a single subquery if that subquery is a term or MatchAll.
2237 Tue Mar 04 04:12:58 GMT 2014  Olly Betts <olly@survex.com>
2239         * tests/api_none.cc: Test OPs with a single MatchAll subquery.
2241 Mon Mar 03 22:59:55 GMT 2014  Mayank Chaudhary <mayankchaudhary.iitr@gmail.com>
2243         * docs/Makefile.am,docs/bm25.rst,docs/intro_ir.rst: Convert equations
2244           in rst docs to use LaTeX via the math role and directive.
2246 Fri Feb 28 06:12:36 GMT 2014  Olly Betts <olly@survex.com>
2248         * backends/brass/brass_positionlist.h,
2249           backends/chert/chert_positionlist.h: Remove next_internal() methods
2250           which were declared but not defined or used (left-overs from flint).
2251           Reported by "Hurricane Tong".
2253 Wed Feb 26 01:33:50 GMT 2014  Olly Betts <olly@survex.com>
2255         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
2256           examples/quest.cc,include/xapian/query.h,matcher/Makefile.mk,
2257           matcher/maxpostlist.cc,matcher/maxpostlist.h,
2258           queryparser/queryparser.cc,tests/api_none.cc,tests/api_opsynonym.cc:
2259           Implement new OP_MAX query operator, which returns the maximum
2260           weight of any of its subqueries.  (see #360)
2262 Wed Feb 26 00:48:23 GMT 2014  Olly Betts <olly@survex.com>
2264         * matcher/localsubmatch.cc,matcher/synonympostlist.cc,
2265           matcher/synonympostlist.h: In SynonymPostList, avoid fetching the
2266           doclength if the weighting scheme doesn't need it and the calculated
2267           wdf for the synonym in <= doclength_lower_bound for the current
2268           subdatabase.  (fixes #360)
2270 Wed Feb 26 00:12:22 GMT 2014  Olly Betts <olly@survex.com>
2272         * backends/brass/brass_changes.cc: Fix compilation without
2273           --enable-assertions.
2275 Tue Feb 25 02:33:14 GMT 2014  Olly Betts <olly@survex.com>
2277         * examples/quest.cc: Add --default-op option.
2279 Tue Feb 25 01:56:34 GMT 2014  Olly Betts <olly@survex.com>
2281         * examples/quest.cc: Whitespace tweak.
2283 Mon Feb 24 06:33:37 GMT 2014  Olly Betts <olly@survex.com>
2285         * tests/api_opsynonym.cc: Refactor symonym1 so that the test data is
2286           specified by an array, rather than built up by code, so that the
2287           actual testcases can be more easily seen.
2289 Sun Feb 23 01:22:56 GMT 2014  Olly Betts <olly@survex.com>
2291         * common/bitstream.cc,common/bitstream.h: Add comments to better
2292           document BitReader and BitWriter. (fixes#252)
2294 Sun Feb 23 00:35:17 GMT 2014  Olly Betts <olly@survex.com>
2296         * HACKING: Stop trying to explicitly list compilers which support
2297           __builtin_expect (LLVM does too, others may as well).
2299 Fri Feb 21 01:34:59 GMT 2014  Olly Betts <olly@survex.com>
2301         * backends/brass/,backends/dbcheck.cc,common/,
2302           docs/replication_protocol.rst,tests/api_backend.cc,
2303           tests/api_replicate.cc: Keep track of unused blocks in the Btrees
2304           using freelists rather than bitmaps.
2306 Fri Feb 21 01:21:45 GMT 2014  Olly Betts <olly@survex.com>
2308         * tests/api_wrdb.cc: Expand crashrecovery1 to check that the expected
2309           base files exist and ones which shouldn't exist don't.
2311 Thu Feb 20 00:34:47 GMT 2014  Olly Betts <olly@survex.com>
2313         * HACKING: makeindex is now in Debian package texlive-binaries.
2315 Wed Feb 19 06:50:58 GMT 2014  Olly Betts <olly@survex.com>
2317         * docs/sorting.rst: Fix incorrect parameter types in Xapian::Weight
2318           subclass example.
2320 Tue Feb 18 23:34:19 GMT 2014  Olly Betts <olly@survex.com>
2322         * api/replication.cc: Fix conditional for enabling replication code
2323           - if chert is disabled but brass isn't, we should still enable it.
2325 Tue Feb 18 01:33:28 GMT 2014  Olly Betts <olly@survex.com>
2327         * tests/api_replicate.cc: Move comment to in front of the function it
2328           is actually talking about.
2330 Sun Feb 16 04:53:57 GMT 2014  Olly Betts <olly@survex.com>
2332         * xapian-config.in: Add some missing shell quoting identified by
2333           shellcheck.
2335 Sun Feb 16 00:53:01 GMT 2014  Olly Betts <olly@survex.com>
2337         * docs/quickstart.rst: Split --cxxflags and --libs for portability
2338           (noted by "Hurricane Tong" on xapian-devel).
2340 Sat Feb 15 04:59:37 GMT 2014  Olly Betts <olly@survex.com>
2342         * docs/glossary.rst: Add definition of "collection frequency".
2344 Fri Feb 14 22:24:26 GMT 2014  Olly Betts <olly@survex.com>
2346         * NEWS: Update.
2348 Fri Jan 17 03:50:44 GMT 2014  Olly Betts <olly@survex.com>
2350         * backends/brass/brass_databasereplicator.cc,
2351           backends/brass/brass_table.cc,
2352           backends/chert/chert_databasereplicator.cc,
2353           backends/chert/chert_table.cc,common/io_utils.cc,common/io_utils.h:
2354           Add io_read_block() and io_write_block() as wrappers around pread()
2355           and pwrite() (or lseek() plus read() and lseek() plus write()).
2357 Sat Jan 11 06:32:19 GMT 2014  Olly Betts <olly@survex.com>
2359         * configure.ac: Sun C++ seems to explicitly need Crun now.
2361 Sat Jan 11 02:23:06 GMT 2014  Olly Betts <olly@survex.com>
2363         * configure.ac: Fix checks for Sun C++.
2365 Fri Jan 10 22:38:01 GMT 2014  Olly Betts <olly@survex.com>
2367         * matcher/multimatch.cc: timer_create() doesn't handle CLOCK_MONOTONIC
2368           on Solaris, so use CLOCK_REALTIME there instead.
2370 Fri Jan 10 11:22:37 GMT 2014  Olly Betts <olly@survex.com>
2372         * configure.ac: Improve handling of Sun's C++ compiler - trick libtool
2373           into not adding -library=Cstd, and prefer -library=stdcxx4 if
2374           supported.
2376 Fri Jan 10 11:16:15 GMT 2014  Olly Betts <olly@survex.com>
2378         * configure.ac: Add XAPIAN_TEST_CXXFLAGS macro, and use it to check
2379           the flags to cxx actually work.
2381 Fri Jan 10 10:56:17 GMT 2014  Olly Betts <olly@survex.com>
2383         * configure.ac: Apply missing functional part of previous change.
2385 Fri Jan 10 10:46:53 GMT 2014  Olly Betts <olly@survex.com>
2387         * configure.ac: Avoid using grep -e as /usr/bin/grep on Solaris
2388           doesn't support it.
2390 Fri Jan 10 03:30:10 GMT 2014  Olly Betts <olly@survex.com>
2392         * backends/brass/brass_databasereplicator.cc: Whitespace tweak.
2394 Thu Jan 09 11:06:05 GMT 2014  Olly Betts <olly@survex.com>
2396         * backends/brass/brass_cursor.h,backends/brass/brass_database.cc,
2397           backends/chert/chert_database.cc,
2398           backends/chert/chert_databasereplicator.cc,
2399           backends/inmemory/inmemory_database.h,common/log2.h,
2400           common/realtime.h,matcher/multimatch.cc,weight/pl2weight.cc,
2401           weight/tradweight.cc: Fix compilations issues with Sun's C++
2402           compiler (mostly missing library headers).
2404 Thu Jan 09 06:00:03 GMT 2014  Olly Betts <olly@survex.com>
2406         * backends/dbcheck.cc: Skip absent lazily created tables in the case
2407           where out == NULL too.
2409 Thu Jan 09 05:31:40 GMT 2014  Olly Betts <olly@survex.com>
2411         * tests/api_wrdb.cc: Use Xapian::Database::check() in cursordelbug1.
2412           (partly addresses #238)
2414 Thu Jan 09 05:30:45 GMT 2014  Olly Betts <olly@survex.com>
2416         * include/xapian/database.h: Make second and third parameters to
2417           Xapian::Database::check() optional, defaulting to a quiet check.
2419 Thu Jan 09 02:52:54 GMT 2014  Olly Betts <olly@survex.com>
2421         * backends/brass/,backends/chert/,backends/dbcheck.cc,
2422           bin/xapian-check.cc,include/xapian/database.h: Alter
2423           Database::check() to take its "out" parameter as a pointer to
2424           std::ostream instead of a reference, and make passing NULL means "do
2425           not produce output".  Remove the form without the "out" parameter,
2426           which used to mean "send output to stdout" - if you want this, just
2427           pass "&std::cout" in.
2429 Thu Jan 09 01:50:14 GMT 2014  Olly Betts <olly@survex.com>
2431         * include/xapian/database.h: OS X SDK check() macro takes one
2432           argument, so there's no need to protect check() methods with
2433           more than one argument.
2434         * include/xapian/valueiterator.h: Protect the one check() method in
2435           our API which does take one argument.
2437 Wed Jan 08 11:48:58 GMT 2014  Olly Betts <olly@survex.com>
2439         * api/smallvector.cc,api/smallvector.h: Include cstddef rather than
2440           cstring for std::size_t, as it's a simpler header.  Don't assume
2441           size_t will be available unqualified.  Add SmallVector::size_type
2442           typedef.
2444 Mon Jan 06 11:54:53 GMT 2014  Olly Betts <olly@survex.com>
2446         * net/progclient.cc: Fix xlC warning.
2448 Mon Jan 06 00:31:19 GMT 2014  Olly Betts <olly@survex.com>
2450         * backends/brass/brass_table.cc,backends/chert/chert_table.cc:
2451           Validate dir_end when reading a block.  (fixes #592)
2453 Wed Jan 01 01:20:46 GMT 2014  Olly Betts <olly@survex.com>
2455         * docs/Makefile.am: Fix handling of MAINTAINER_NO_DOCS.
2457 Mon Dec 30 05:33:59 GMT 2013  Olly Betts <olly@survex.com>
2459         * tests/api_unicode.cc: Add regression test for incorrect results
2460           from Unicode::tolower() for 4 code points (U+01C5, U+01C8, U+01CB,
2461           U+01F2) with Xapian 1.2.16 and earlier.
2463 Sun Dec 29 05:46:14 GMT 2013  Olly Betts <olly@survex.com>
2465         * docs/postingsource.rst: Clarify a couple of points (reported by
2466           "vHanda" on IRC).
2468 Tue Dec 24 02:00:26 GMT 2013  Olly Betts <olly@survex.com>
2470         * tests/Makefile.am,tests/perftest/Makefile.mk: Actually use
2471           @NO_INSTALL@.
2473 Tue Dec 24 01:59:05 GMT 2013  Olly Betts <olly@survex.com>
2475         * configure.ac: Use -no-fast-install on platforms where -no-install
2476           causes libtool to emit a warning.
2478 Mon Dec 23 04:17:35 GMT 2013  Olly Betts <olly@survex.com>
2480         * HACKING: Drop note about needing git-svn if you're using git -
2481           bootstrap now only uses git-svn if your Xapian tree was checked out
2482           using git-svn.
2484 Mon Dec 23 04:16:58 GMT 2013  Olly Betts <olly@survex.com>
2486         * HACKING: Note that Tcl is now needed to generate
2487           unicode/unicode-data.cc.
2489 Mon Dec 23 04:01:05 GMT 2013  Olly Betts <olly@survex.com>
2491         * tests/api_unicode.cc: Add a test that a character due to be added in 
2492           Unicode 7.0.0 is categorised as "unassigned".
2494 Mon Dec 23 03:50:37 GMT 2013  Olly Betts <olly@survex.com>
2496         * unicode/Makefile.mk,unicode/uniParse.tcl: Adjust to not need a
2497           symlink.  Give the generated file a new name, since the "tcl" prefix
2498           doesn't make much sense here, and it avoids issues with
2499           transitioning from a file in version control to one which is
2500           generated.
2502 Mon Dec 23 03:32:40 GMT 2013  Olly Betts <olly@survex.com>
2504         * unicode/: Add the source data file and scripts to generate
2505           tclUniData.cc.
2507 Mon Dec 23 02:20:57 GMT 2013  Olly Betts <olly@survex.com>
2509         * NEWS: Update from ChangeLog.
2511 Mon Dec 23 01:04:26 GMT 2013  Olly Betts <olly@survex.com>
2513         * include/xapian/enquire.h: Note that 1.2.17 is required for the
2514           correct sense of the reverse parameter to Enquire methods
2515           set_sort_by_relevance_then_value() and
2516           set_sort_by_relevance_then_key().
2518 Mon Dec 23 00:30:53 GMT 2013  Olly Betts <olly@survex.com>
2520         * backends/brass/brass_btreebase.cc: Fix comment documenting what's in
2521           the base file (the sequential flag was missing).
2523 Fri Dec 20 03:47:56 GMT 2013  Olly Betts <olly@survex.com>
2525         * backends/brass/brass_termlisttable.h,include/xapian/constants.h,
2526           tests/api_backend.cc: Add Xapian::DB_NO_TERMLIST flag to allow
2527           creating a database without a termlist (see #181).
2529 Fri Dec 20 03:04:51 GMT 2013  Olly Betts <olly@survex.com>
2531         * include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
2532           character database to 6.3.0.
2533         * tests/api_unicode.cc: Add tests for U+061C, added in 6.3.0.
2535 Fri Dec 20 00:20:01 GMT 2013  Olly Betts <olly@survex.com>
2537         * backends/dbfactory.cc: Clear any backend flag passed in before
2538           passing the flags when opening stub databases, fixing test failure
2539           in replicate1 caused by recent change adding
2540           Xapian::DB_BACKEND_STUB.
2542 Thu Dec 19 23:11:32 GMT 2013  Olly Betts <olly@survex.com>
2544         * tests/api_backend.cc: Simplify database creation in testcase
2545           blocksize1.
2547 Thu Dec 19 23:10:37 GMT 2013  Olly Betts <olly@survex.com>
2549         * backends/dbfactory.cc: Tweak conditionals around $XAPIAN_PREFER_BRASS
2550           check.
2552 Thu Dec 19 23:09:30 GMT 2013  Olly Betts <olly@survex.com>
2554         * api/replication.cc,backends/dbfactory.cc,docs/deprecation.rst,
2555           docs/overview.rst,include/xapian/constants.h,
2556           include/xapian/dbfactory.h,tests/api_backend.cc,tests/api_db.cc:
2557           Add Xapian::DB_BACKEND_STUB and deprecate Xapian::Auto::open_stub().
2559 Thu Dec 19 06:46:15 GMT 2013  Olly Betts <olly@survex.com>
2561         * docs/deprecation.rst: Update example version to a more recent one.
2563 Thu Dec 19 04:01:31 GMT 2013  Olly Betts <olly@survex.com>
2565         * docs/deprecation.rst,include/xapian/dbfactory.h,tests/api_db.cc,
2566           tests/harness/: Deprecate Xapian::Brass::open() and
2567           Xapian::Chert::open() in favour of the new Xapian::DB_BACKEND_BRASS
2568           and Xapian::DB_BACKEND_CHERT flags.
2570 Thu Dec 19 01:17:02 GMT 2013  Olly Betts <olly@survex.com>
2572         * api/compactor.cc,backends/brass/,backends/chert/chert_database.cc,
2573           backends/chert/chert_database.h,backends/database.h,
2574           backends/dbcheck.cc,backends/dbfactory.cc,include/xapian/constants.h,
2575           include/xapian/database.h,include/xapian/dbfactory.h: Add flags
2576           which can be bitwise OR-ed into the second argument when opening a
2577           writable datase: DB_NO_SYNC (to disable use of fsync, etc) and
2578           DB_DANGEROUS (to enable in-place updates).  WritableDatabase
2579           can now be constructed from just a filename (defaulting to opening
2580           the database with DB_CREATE_OR_OPEN).
2582 Thu Dec 19 00:11:26 GMT 2013  Olly Betts <olly@survex.com>
2584         * tests/harness/backendmanager_multi.cc: Fix comment typo.
2586 Wed Dec 18 23:52:49 GMT 2013  Olly Betts <olly@survex.com>
2588         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
2589           tests/api_backend.cc: Fix handling of invalid block sizes - the
2590           size gets fixed as documented, but the uncorrected size was passed
2591           to the base file.  Also, abort() was called on 0.
2593 Wed Dec 18 22:48:18 GMT 2013  Olly Betts <olly@survex.com>
2595         * api/replication.cc,backends/brass/brass_check.cc,
2596           backends/brass/brass_database.cc,backends/chert/chert_check.cc,
2597           backends/chert/chert_database.cc,backends/database.h,
2598           backends/dbcheck.cc,bin/xapian-tcpsrv.cc,include/Makefile.mk,
2599           include/xapian.h,include/xapian/database.h,net/remoteserver.cc:
2600           Move Xapian::DB_* and Xapian:DBCHECK_* constants into
2601           xapian/constants.h.
2603 Wed Dec 18 22:30:23 GMT 2013  Olly Betts <olly@survex.com>
2605         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
2606           Include xapian/*.h with "" not <> inside the library.
2608 Wed Dec 18 22:17:15 GMT 2013  Olly Betts <olly@survex.com>
2610         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
2611           Include only the needed xapian/*.h headers (rather than xapian.h) to
2612           reduce inter-file dependencies within the library.
2614 Wed Dec 18 03:24:22 GMT 2013  Olly Betts <olly@survex.com>
2616         * tests/runtest.in: Report if a test is being run under eatmydata,
2617           like we do for running under valgrind.
2619 Wed Dec 18 02:43:47 GMT 2013  Olly Betts <olly@survex.com>
2621         * backends/brass/brass_version.h,backends/chert/chert_version.h:
2622           Comment out unused set_uuid() and set_uuid_string() methods - they
2623           may be useful in future, but we aren't currently using them.  Also
2624           make set_uuid() take a const pointer.
2626 Wed Dec 18 02:40:18 GMT 2013  Olly Betts <olly@survex.com>
2628         * HACKING,configure.ac,tests/runtest.in: Automatically probe for and
2629           hook in eatmydata to the testsuite using the wrapper script it now
2630           includes.
2632 Wed Dec 18 01:21:07 GMT 2013  Olly Betts <olly@survex.com>
2634         * HACKING: Update website update info.
2636 Sat Dec 14 06:01:33 GMT 2013  Olly Betts <olly@survex.com>
2638         * weight/dlhweight.cc,weight/dphweight.cc: Whitespace tweak.
2640 Fri Dec 13 21:06:28 GMT 2013  Olly Betts <olly@survex.com>
2642         * backends/brass/brass_cursor.cc,backends/brass/brass_cursor.h,
2643           backends/brass/brass_table.cc: Reference count blocks in the
2644           btree cursor, so cursors can cheaply share blocks.  This can
2645           significantly reduce the amount of memory used for cursors
2646           for queries which contain a lot of terms (e.g. wildcards which
2647           expand to a lot of terms).
2649 Thu Dec 12 22:37:22 GMT 2013  Olly Betts <olly@survex.com>
2651         * backends/brass/brass_btreebase.cc: Add assertions that we don't read
2652           beyond the end of the freespace bitmap.
2654 Thu Dec 12 22:25:04 GMT 2013  Olly Betts <olly@survex.com>
2656         * matcher/msetcmp.cc: Fix sense of reverse parameter to
2657           Enquire::set_sort_by_relevance_then_value.  Reported by "boomboo" on
2658           IRC.
2659         * tests/api_db.cc: Fix testcase sortrel1.
2661 Thu Dec 12 19:47:46 GMT 2013  Olly Betts <olly@survex.com>
2663         * backends/brass/: Make Brass::Cursor members n and p private.
2665 Thu Dec 12 19:46:23 GMT 2013  Olly Betts <olly@survex.com>
2667         * backends/brass/brass_check.cc,backends/brass/brass_table.cc: Add
2668           const to a few pointers we only read through.
2670 Thu Dec 12 09:04:13 GMT 2013  Olly Betts <olly@survex.com>
2672         * configure.ac: Improve reporting of GCC version.
2674 Thu Dec 12 09:01:26 GMT 2013  Olly Betts <olly@survex.com>
2676         * tests/api_query.cc,unicode/description_append.cc: Escape \x7f in
2677           object descriptions.
2679 Wed Dec 11 23:40:37 GMT 2013  Olly Betts <olly@survex.com>
2681         * api/leafpostlist.cc,api/leafpostlist.h,backends/brass/,
2682           matcher/localsubmatch.cc,matcher/localsubmatch.h,
2683           matcher/queryoptimiser.h: Under brass, optimise the turning of a
2684           query into a postlist to copy the cursor blocks for the previous
2685           term's postlist.  This is particularly effective for wildcard
2686           queries which expand to a lot of terms.
2688 Wed Dec 11 22:05:34 GMT 2013  Olly Betts <olly@survex.com>
2690         * backends/brass/brass_postlist.h: We don't have a
2691           BrassModifiedPostList class, so we don't need protected members in
2692           BrassPostList for it to use.
2694 Wed Dec 11 04:46:58 GMT 2013  Olly Betts <olly@survex.com>
2696         * weight/bm25weight.cc: Fix case where (k1 == 0 || b == 0) but k2 != 0.
2697           Reported by "boomboo" on IRC.
2698         * tests/api_weight.cc: Add regression test bm25weight5.
2700 Wed Dec 04 05:44:29 GMT 2013  Olly Betts <olly@survex.com>
2702         * NEWS: Update from 1.2.16 and ChangeLog.
2704 Mon Dec 02 02:34:43 GMT 2013  Olly Betts <olly@survex.com>
2706         * configure.ac: Clarify version of MSVCRT which we require for mingw.
2708 Fri Nov 29 04:21:46 GMT 2013  Olly Betts <olly@survex.com>
2710         * configure.ac: Fix typo in previous commit.
2712 Fri Nov 29 03:48:24 GMT 2013  Olly Betts <olly@survex.com>
2714         * configure.ac: Report GCC version.
2716 Wed Nov 27 04:06:32 GMT 2013  Olly Betts <olly@survex.com>
2718         * Backport change from brass:
2719         * backends/chert/chert_table.cc: Check if the block we want is in the
2720           internal cursor for a read-only table too - it isn't needed for
2721           correctness in this case, but it is more efficient not to reload a
2722           block which we already have.
2724 Sun Nov 24 23:05:37 GMT 2013  Olly Betts <olly@survex.com>
2726         * NEWS: Update from ChangeLog.
2728 Fri Nov 22 20:18:43 GMT 2013  Olly Betts <olly@survex.com>
2730         * backends/brass/brass_databasereplicator.cc,
2731           backends/brass/brass_databasereplicator.h: compression_stream.h
2732           isn't used in brass_databasereplicator.h, so move include to
2733           brass_databasereplicator.cc.
2735 Fri Nov 22 01:22:32 GMT 2013  Olly Betts <olly@survex.com>
2737         * queryparser/queryparser.lemony: Minor tweak to structuring of tests
2738           in check_infix().
2740 Sat Nov 09 08:51:27 GMT 2013  Olly Betts <olly@survex.com>
2742         * backends/brass/brass_table.cc: Check if the block we want is in the
2743           internal cursor for a read-only table too - it isn't needed for
2744           correctness in this case, but it is more efficient not to reload a
2745           block which we already have.
2747 Sat Nov 09 08:48:02 GMT 2013  Olly Betts <olly@survex.com>
2749         * backends/brass/: Use a separate cursor for each position list - now
2750           we're ordering the position B-tree by term first, phrase matching was
2751           causing the cursor to cycle between disparate areas of the B-tree,
2752           and it would have to reread the same blocks over and over.
2754 Fri Nov 08 09:57:52 GMT 2013  Olly Betts <olly@survex.com>
2756         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Add
2757           check for the database being closed in read_block(), which fixes
2758           pythontest.py testcase valuemods.
2760 Fri Nov 08 08:58:48 GMT 2013  Olly Betts <olly@survex.com>
2762         * api/maptermlist.h,api/termlist.cc,api/termlist.h,backends/brass/:
2763           Avoid two vector copies when storing term positions in most common
2764           cases.
2766 Fri Nov 08 08:57:07 GMT 2013  Olly Betts <olly@survex.com>
2768         * configure.ac: Bump LIBRARY_VERSION_INFO.
2770 Thu Nov 07 16:14:23 GMT 2013  Olly Betts <olly@survex.com>
2772         * backends/brass/brass_database.cc,
2773           backends/brass/brass_positionlist.cc,
2774           backends/brass/brass_positionlist.h: There's no need to pass around
2775           an end PositionIterator, and it's actually slightly more efficient
2776           not to.
2778 Thu Nov 07 16:11:27 GMT 2013  Olly Betts <olly@survex.com>
2780         * backends/brass/: Batch up positionlist changes in memory and write
2781           them out in key order.
2783 Thu Nov 07 15:30:48 GMT 2013  Olly Betts <olly@survex.com>
2785         * backends/brass/brass_positionlist.h,backends/brass/brass_version.cc:
2786           Change positionlist keys to be ordered by term first rather than
2787           docid first, which helps phrase searching significantly.
2789 Wed Nov 06 17:12:29 GMT 2013  Olly Betts <olly@survex.com>
2791         * backends/brass/brass_values.cc,backends/brass/brass_values.h,
2792           backends/chert/chert_values.cc,backends/chert/chert_values.h: Reuse
2793           a cursor for reading values from valuestreams rather than creating
2794           a new one each time.  This can dramatically reduce the number of
2795           blocks redundantly reread when sorting by value.  The rereads will
2796           generally get served from VM cache, but there's still an overhead
2797           to that.
2799 Tue Nov 05 16:28:08 GMT 2013  Olly Betts <olly@survex.com>
2801         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
2802           include/xapian/query.h,tests/api_query.cc: Having a separate 'type'
2803           enum seems to just make for clumsier code, so merged the LEAF_*
2804           values into the 'op' enum, add LEAF_MATCH_ALL and LEAF_MATCH_NOTHING
2805           and return when appropriate, and add test coverage.
2807 Tue Nov 05 15:20:15 GMT 2013  Olly Betts <olly@survex.com>
2809         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
2810           include/xapian/query.h: Add methods to allow introspection on
2811           Query objects - currently you can read the type/operator, how many
2812           subqueries there are, and get a particular subquery.  For a
2813           query which is a term, Query::get_terms_begin() allows you to
2814           get read the term.  (see #159)
2816 Mon Nov 04 19:06:38 GMT 2013  Olly Betts <olly@survex.com>
2818         * examples/quest.cc: Add --check-at-least option to quest.
2820 Thu Oct 24 04:38:52 GMT 2013  Olly Betts <olly@survex.com>
2822         * configure.ac,tests/soaktest/soaktest.cc: If srandom() and random()
2823           aren't available, use srand() and rand() instead.
2825 Thu Oct 24 02:34:06 GMT 2013  Olly Betts <olly@survex.com>
2827         * common/safewindows.h: Define WINVER to 0x0500 if not otherwise set,
2828           so we get new interfaces like MEMORYSTATUSEX under mingw.
2830 Thu Oct 24 02:11:36 GMT 2013  Olly Betts <olly@survex.com>
2832         * tests/harness/backendmanager_remotetcp.cc: Need cstdlib for free
2833           under mingw.
2835 Thu Oct 24 02:11:05 GMT 2013  Olly Betts <olly@survex.com>
2837         * configure.ac,tests/api_replicate.cc,tests/queryparsertest.cc,
2838           tests/termgentest.cc: Probe for _putenv_s() in configure as mingw
2839           doesn't provide it.
2841 Thu Oct 24 01:23:14 GMT 2013  Olly Betts <olly@survex.com>
2843         * configure.ac: Don't unset CC as it's used by libtool under mingw.
2845 Thu Oct 24 01:17:07 GMT 2013  Olly Betts <olly@survex.com>
2847         * net/tcpserver.cc: Fix mingw build error.
2849 Thu Oct 24 01:00:18 GMT 2013  Olly Betts <olly@survex.com>
2851         * common/omassert.h: Suppress "unused local typedef" warnings from
2852           GCC 4.8.
2854 Wed Oct 23 20:00:05 GMT 2013  Olly Betts <olly@survex.com>
2856         * common/realtime.h: Rework RealTime::to_timeval() under __WIN32__ to
2857           avoid having to pull in safewinsock2.h,
2859 Wed Oct 23 12:39:53 GMT 2013  Olly Betts <olly@survex.com>
2861         * common/realtime.h: Under __WIN32__, we need safewinsock2.h for
2862           struct timeval.
2864 Wed Oct 23 10:21:02 GMT 2013  Olly Betts <olly@survex.com>
2866         * common/omassert.h: If the compiler supports C++11, use
2867           static_assert to implement CompileTimeAssert.
2869 Wed Oct 23 10:02:50 GMT 2013  Olly Betts <olly@survex.com>
2871         * common/realtime.h,net/tcpclient.cc: Fix mingw build errors.
2873 Wed Oct 23 09:50:00 GMT 2013  Olly Betts <olly@survex.com>
2875         * common/win32_uuid.cc: Fix mingw compiler warning.
2877 Wed Oct 23 04:19:05 GMT 2013  jiangwen jiang <jiangwen127@gmail.com>
2879         * api/omdocument.cc,api/query.cc: Add more LOGCALL annotations.
2881 Tue Oct 22 03:09:48 GMT 2013  Olly Betts <olly@survex.com>
2883         * HACKING: Note we now use doxygen 1.8.5 for 1.3.x snapshots and
2884           releases.
2886 Mon Oct 21 01:55:48 GMT 2013  Olly Betts <olly@survex.com>
2888         * queryparser/lemon.c: Sync change from upstream: "Fix a harmless
2889           compiler warning in lemon.c."  Generated code is identical, at least
2890           on x86-64 Debian wheezy.
2892 Mon Oct 21 01:52:12 GMT 2013  Olly Betts <olly@survex.com>
2894         * queryparser/lemon.c: Sync change from upstream: "In the lemon parser
2895           generator, change all hashes to unsigned to avoid potential problems
2896           with signed integer overflow."  Generated code is identical, at
2897           least on x86-64 Debian wheezy.
2899 Sat Oct 19 06:38:48 GMT 2013  Olly Betts <olly@survex.com>
2901         * backends/flint_lock.cc: Under cygwin, use cygwin_conv_path() if
2902           using a new enough cygwin version, rather than the now deprecated
2903           cygwin_conv_to_win32_path().  Reported by "Haroogan" on the
2904           xapian-devel mailing list.
2906 Sat Oct 19 00:36:06 GMT 2013  Olly Betts <olly@survex.com>
2908         * configure.ac: Simplify test for uuid_unparse_lower().  (see #626)
2910 Sat Oct 19 00:21:37 GMT 2013  Olly Betts <olly@survex.com>
2912         * Makefile.am,configure.ac: Split XAPIAN_LIBS out of XAPIAN_LDFLAGS.
2913           (fixes#626)
2915 Fri Oct 18 11:51:40 GMT 2013  Olly Betts <olly@survex.com>
2917         * geospatial/geoencode.cc: Use lround() instead of round(), since we
2918           want the result as an int.  GCC 4.4.3 seems to optimise to use
2919           lround() anyway, but other compilers may not.
2921 Fri Oct 18 11:44:10 GMT 2013  Olly Betts <olly@survex.com>
2923         * geospatial/geoencode.cc: Include <math.h> for round() (fixes #628).
2925 Tue Oct 15 03:16:04 GMT 2013  Olly Betts <olly@survex.com>
2927         * include/xapian/enquire.h,include/xapian/unicode.h: Mark internal
2928           methods which are public for implementation convenience as
2929           "@private" for doxygen where they weren't already.
2931 Mon Oct 14 09:45:13 GMT 2013  Olly Betts <olly@survex.com>
2933         * include/xapian.h: Mark vinfo struct and get_vinfo_() function as
2934           @private for doxygen.
2936 Thu Oct 10 10:36:45 GMT 2013  Olly Betts <olly@survex.com>
2938         * include/xapian/: Methods and functions which take a string to
2939           unserialise now consistently call that parameter "serialised".
2941 Mon Oct 07 04:08:14 GMT 2013  Olly Betts <olly@survex.com>
2943         * tests/zlib-vg.c: Fix two warnings when compiled with clang.
2945 Fri Oct 04 19:46:16 GMT 2013  Olly Betts <olly@survex.com>
2947         * backends/brass/brass_check.cc,backends/chert/chert_check.cc: Correct
2948           failure message which talks above the root block when it's actually
2949           testing a leaf key.
2951 Fri Oct 04 04:51:39 GMT 2013  Olly Betts <olly@survex.com>
2953         * backends/brass/brass_check.cc,backends/chert/chert_check.cc: Escape
2954           invalid UTF-8 data in keys and tags reported by xapian-check, using
2955           the same code we use to clean up string in object descriptions.
2957 Fri Oct 04 04:50:52 GMT 2013  Olly Betts <olly@survex.com>
2959         * backends/brass/brass_check.cc,backends/chert/chert_check.cc: Fix
2960           xapian-check to report block numbers correctly for links within the
2961           B-tree.
2963 Thu Oct 03 07:35:44 GMT 2013  Olly Betts <olly@survex.com>
2965         * backends/brass/brass_dbcheck.cc,backends/chert/chert_dbcheck.cc: If
2966           the METAINFO key is missing, only report it once per table.
2968 Sat Sep 28 09:27:51 GMT 2013  Olly Betts <olly@survex.com>
2970         * include/xapian.h: Hide struct vinfo and get_vinfo_() from SWIG and
2971           doxygen.
2973 Sat Sep 28 06:25:44 GMT 2013  Olly Betts <olly@survex.com>
2975         * api/version.cc,include/xapian.h: Reimplement version functions to
2976           use a single function in libxapian which returns a pointer to a
2977           static const struct containing the version information, with inline
2978           wrappers in the API header which call this.  This means we only need
2979           one relocation instead of 4.
2980         * tests/api_none.cc: New testcase version1 to provide coverage for the
2981           version API functions.
2983 Fri Sep 27 22:53:15 GMT 2013  Olly Betts <olly@survex.com>
2985         * api/omenquire.cc,include/xapian/enquire.h,tests/api_anydb.cc: Fix
2986           backwards compatibility get_eset() wrapper to allow for the optional
2987           parameters which were supported before.  Also, just inline it from
2988           the API header.
2990 Fri Sep 27 11:19:50 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
2992         * api/omenquire.cc,api/omenquireinternal.h,expand/,
2993           include/xapian/enquire.h,tests/api_anydb.cc: Add support for the Bo1
2994           query expansion scheme.
2996 Thu Sep 26 04:11:49 GMT 2013  Olly Betts <olly@survex.com>
2998         * tests/api_weight.cc: Don't pass integer arguments to log() to avoid
2999           ambiguity errors with some compilers.  (fixes #627)
3001 Thu Sep 26 02:02:24 GMT 2013  Olly Betts <olly@survex.com>
3003         * backends/brass/,backends/chert/,backends/dbcheck.cc: Fix database
3004           consistency checking to always open all the tables at the same
3005           revision, which could lead to false errors being reported after
3006           a commit interrupted by the process being killed or the machine
3007           crashing.  Reported by Joey Hess in http://bugs.debian.org/724610
3009 Wed Sep 25 02:21:29 GMT 2013  Olly Betts <olly@survex.com>
3011         * tests/queryparsertest.cc: Add testcase for FieldProcessor on boolean
3012           prefix with quoted contents.
3014 Wed Sep 25 02:16:55 GMT 2013  Olly Betts <olly@survex.com>
3016         * queryparser/queryparser.lemony: Fix comment typo.
3018 Wed Sep 25 02:13:20 GMT 2013  Olly Betts <olly@survex.com>
3020         * api/: Split QueryVector into a template SmallVector class and then
3021           'typedef SmallVector<Query> QueryVector;', as it would be good to
3022           use the same approach for Database internals.
3024 Tue Sep 24 09:59:05 GMT 2013  Olly Betts <olly@survex.com>
3026         * .gitignore,xapian-core.spec.in: Update two references to .tar.gz
3027           files.
3029 Tue Sep 24 09:54:42 GMT 2013  Olly Betts <olly@survex.com>
3031         * docs/install.rst: Fix typo (bogus extra 'and');
3033 Tue Sep 24 09:54:01 GMT 2013  Olly Betts <olly@survex.com>
3035         * configure.ac,docs/install.rst: Compress source tarballs with xz
3036           instead of gzip.
3038 Mon Sep 23 12:58:23 GMT 2013  Olly Betts <olly@survex.com>
3040         * common/realtime.h,configure.ac,matcher/multimatch.cc: Implement
3041           RealTime::sleep() using nanosleep() where it's available, since
3042           it has a simpler API and a finer granularity than select().
3044 Mon Sep 23 12:27:37 GMT 2013  Olly Betts <olly@survex.com>
3046         * common/realtime.h,net/remoteconnection.cc,net/tcpclient.cc: Add
3047           RealTime::to_timeval() helper function to break a time interval
3048           as a double into a struct timeval.  This uses modf() which gives
3049           more compact and faster code than using fmod() as we previously
3050           did.
3052 Mon Sep 23 08:20:03 GMT 2013  Olly Betts <olly@survex.com>
3054         * common/realtime.h,configure.ac: Use clock_gettime() to implement
3055           RealTime::now() where it's available.
3057 Mon Sep 16 11:53:28 GMT 2013  Olly Betts <olly@survex.com>
3059         * api/,backends/brass/brass_postlist.cc,
3060           backends/remote/net_postlist.cc,backends/slowvaluelist.cc,
3061           expand/esetinternal.cc,include/xapian/unicode.h,
3062           matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
3063           tests/api_query.cc,tests/queryparsertest.cc,unicode/: Fix all
3064           get_description() methods to always return UTF-8 text.  (fixes #620)
3066 Mon Sep 16 11:47:16 GMT 2013  Olly Betts <olly@survex.com>
3068         * include/xapian/unicode.h: Document how Utf8Iterator handles invalid
3069           UTF-8.
3071 Mon Sep 16 11:19:48 GMT 2013  Olly Betts <olly@survex.com>
3073         * tests/queryparsertest.cc: Add test coverage for explicit synonym of
3074           a term with a prefix (e.g. ~foo:search).
3076 Fri Sep 06 07:11:29 GMT 2013  Olly Betts <olly@survex.com>
3078         * api/valueiterator.cc,tests/api_backend.cc: Don't segfault is
3079           skip_to() or check() are called on a ValueIterator which is already
3080           at_end().
3082 Fri Sep 06 06:52:49 GMT 2013  Olly Betts <olly@survex.com>
3084         * api/positioniterator.cc,api/postingiterator.cc,api/termiterator.cc,
3085           tests/api_backend.cc: Don't segfault if skip_to() is called on an
3086           iterator which is already at_end().  Reported by David Bremner.
3088 Wed Sep 04 04:52:50 GMT 2013  Olly Betts <olly@survex.com>
3090         * weight/weightinternal.cc: TermFreqs now tracks collection frequency,
3091           so make TermFreqs::get_description() report it.
3093 Thu Aug 29 01:30:45 GMT 2013  Olly Betts <olly@survex.com>
3095         * matcher/andmaybepostlist.cc,matcher/multiandpostlist.h: Fix
3096           assertion failure for when an OrPostList decays to an AndPostList
3097           - the ordering of the subqueries by estimated termfreq may not be
3098           the same as it was when the OrPostList was constructed, as the
3099           subqueries may themselves have decayed.  Reported by Michel
3100           Pelletier.
3102 Fri Aug 23 03:17:33 GMT 2013  Olly Betts <olly@survex.com>
3104         * m4-macros/xapian-1.3.m4: Handle empty or unset XAPIAN_CONFIG
3105           correctly.
3107 Mon Jul 15 12:01:17 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3109         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3110           tests/api_weight.cc,weight/Makefile.mk,weight/dphweight.cc: Add an
3111           implementation of DfR weighting scheme DPH.
3113 Sun Jul 14 07:39:37 GMT 2013  Olly Betts <olly@survex.com>
3115         * include/xapian/weight.h,weight/pl2weight.cc: Optimise PL2Weight to
3116           only calculate 2 logs per call to get_sumpart() instead of 4 by
3117           precalculating three document-independent values in init().
3119 Sun Jul 14 07:04:52 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3121         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3122           tests/api_weight.cc,weight/Makefile.mk,weight/pl2weight.cc: Add an
3123           implementation of DfR weighting scheme PL2.
3125 Sat Jul 13 11:24:20 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3127         * weight/tfidfweight.cc: Explicitly cast argument of log() to double,
3128           as xlC doesn't manage to chose an overloaded form to call otherwise.
3130 Sat Jul 13 07:29:25 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3132         * include/xapian/weight.h,tests/api_weight.cc,
3133           tests/generate-api_generated,weight/: Fix new weighting schemes to
3134           work with OP_SCALE_WEIGHT.
3136 Wed Jul 10 12:57:01 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3138         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3139           tests/api_weight.cc,weight/Makefile.mk,weight/dlhweight.cc: Add an
3140           implementation of DfR weighting scheme DLH.
3142 Wed Jul 10 07:38:15 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3144         * expand/expandweight.h: Track collection_freq and totlen restricted
3145           to the RSet in preparation for supporting DfR query expansion
3146           schemes.
3148 Mon Jul 08 06:27:05 GMT 2013  Olly Betts <olly@survex.com>
3150         * weight/Makefile.mk: Normalise whitespace in BB2 change.
3152 Sun Jul 07 12:29:48 GMT 2013  Olly Betts <olly@survex.com>
3154         * weight/bb2weight.cc: New file for BB2Weight which I failed to
3155           commit.
3157 Sun Jul 07 11:51:45 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3159         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3160           tests/api_weight.cc,weight/Makefile.mk: Add implementation of DfR
3161           weighting scheme BB2.
3163 Sat Jul 06 02:07:13 GMT 2013  Olly Betts <olly@survex.com>
3165         * api/omdatabase.cc: Fix add_document() to always use exactly the next
3166           docid after get_lastdocid() in the multidatabase case.
3168 Fri Jul 05 06:19:55 GMT 2013  Olly Betts <olly@survex.com>
3170         * backends/dbfactory.cc: Allow open a stub database containing
3171           multiple subdatabases as a WritableDatabase.
3173 Thu Jul 04 06:29:56 GMT 2013  Olly Betts <olly@survex.com>
3175         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc,
3176           tests/harness/index_utils.h: Simplify the FileIndexer class.
3178 Thu Jul 04 06:09:06 GMT 2013  Olly Betts <olly@survex.com>
3180         * tests/harness/backendmanager_multi.cc,tests/harness/index_utils.cc,
3181           tests/harness/index_utils.h: Make use of the new writable
3182           multidatabase feature to simplify the multi-database handling in the
3183           test harness.
3185 Wed Jul 03 13:58:46 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3187         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3188           tests/api_weight.cc,weight/Makefile.mk,weight/ineb2weight.cc: Add
3189           implementation of DfR weighting scheme IneB2.
3191 Wed Jul 03 13:39:11 GMT 2013  Olly Betts <olly@survex.com>
3193         * include/xapian/weight.h: "please refer:" -> "please refer to:"
3195 Wed Jul 03 13:31:59 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3197         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3198           tests/api_weight.cc,weight/Makefile.mk,weight/ifb2weight.cc: Add
3199           implementation of DfR weighting scheme IfB2.
3201 Wed Jul 03 12:42:23 GMT 2013  Olly Betts <olly@survex.com>
3203         * common/safeuuid.h: Make a few tweaks to support AIX.
3205 Wed Jul 03 12:33:40 GMT 2013  Olly Betts <olly@survex.com>
3207         * common/safeuuid.h: Remove bogus take-address-of from uuid handling
3208           code for netbsd and openbsd.
3210 Wed Jul 03 11:56:05 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3212         * api/registry.cc,include/xapian/weight.h,tests/api_nodb.cc,
3213           tests/api_weight.cc,weight/Makefile.mk,weight/inl2weight.cc: Add
3214           implementation of DfR weighting scheme InL2.
3216 Wed Jul 03 08:20:26 GMT 2013  Olly Betts <olly@survex.com>
3218         * api/error.cc,common/Makefile.mk,common/safenetdb.h,net/tcpclient.cc,
3219           net/tcpserver.cc: AIX needs _USE_IRS defined for hstrerror, so
3220           create safenetdb.h to take care of that.
3222 Wed Jul 03 07:34:13 GMT 2013  Olly Betts <olly@survex.com>
3224         * common/safeuuid.h: Add missing '#include <cstdlib>' and qualify free
3225           with std.
3227 Tue Jul 02 23:44:48 GMT 2013  Olly Betts <olly@survex.com>
3229         * api/omdatabase.cc: Add support for WritableDatabase with multiple
3230           subdatabases.
3232 Tue Jul 02 23:40:08 GMT 2013  Olly Betts <olly@survex.com>
3234         * api/omdatabase.cc,tests/api_none.cc: Trying to perform operations on
3235           a database with no subdatabases now throws InvalidOperationError not
3236           DocNotFoundError.
3238 Tue Jul 02 13:22:31 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3240         * tests/api_weight.cc: Extend checkstatsweight1 to check that
3241           Weight::get_collection_freq() returns the same number as
3242           Database::get_collection_freq().
3244 Tue Jul 02 05:00:30 GMT 2013  Olly Betts <olly@survex.com>
3246         * api/omenquire.cc,api/omenquireinternal.h,
3247           backends/remote/remote-database.cc,backends/remote/remote-database.h,
3248           common/remoteprotocol.h,configure.ac,docs/remote_protocol.rst,
3249           include/xapian/enquire.h,matcher/multimatch.cc,matcher/multimatch.h,
3250           net/remoteserver.cc,tests/api_postingsource.cc: Add
3251           Enquire::set_time_limit() method which sets a timelimit after which
3252           check_at_least will be disabled.
3254 Mon Jul 01 23:42:33 GMT 2013  Olly Betts <olly@survex.com>
3256         * tests/Makefile.am: Fix to actually removed cached databases before
3257           "make check".
3259 Mon Jul 01 22:21:41 GMT 2013  Olly Betts <olly@survex.com>
3261         * NEWS,api/queryinternal.cc,matcher/valuestreamdocument.h: Revert
3262           changes accidentally included in r17373.
3264 Sat Jun 29 12:39:10 GMT 2013  Olly Betts <olly@survex.com>
3266         * include/xapian/unicode.h,unicode/tclUniData.cc: Change
3267           Xapian::Unicode::Internal::get_character_info() to simply return
3268           Xapian::Unicode::UNASSIGNED for character outside unicode (ch >=
3269           0x110000) which avoids a special check for such values before
3270           we call get_character_info().
3272 Sat Jun 29 09:31:12 GMT 2013  Olly Betts <olly@survex.com>
3274         * tests/api_serialise.cc: Remove code from registry* testcases which
3275           tries to test the consequences of throwing an exception from a
3276           destructor - it's complex to ensure we don't leak memory while doing
3277           this (it seems GCC doesn't release the object in this case, but
3278           clang does), and it's generally frowned upon, plus C++11 makes
3279           destructors noexcept by default.
3281 Thu Jun 27 02:36:02 GMT 2013  Olly Betts <olly@survex.com>
3283         * weight/weightinternal.h: Initialise total_term_count to zero.
3284           Fixes failure of qp_flag_wildcard3 under valgrind in buildbot.
3286 Wed Jun 26 05:48:21 GMT 2013  Olly Betts <olly@survex.com>
3288         * backends/dbfactory.cc: '# if defined' -> '#ifdef' to match
3289           surrounding code better.
3291 Wed Jun 26 05:47:38 GMT 2013  Olly Betts <olly@survex.com>
3293         * backends/dbfactory.cc: Fix 'unused label' warning when chert backend
3294           is disabled.
3296 Wed Jun 26 05:40:29 GMT 2013  Olly Betts <olly@survex.com>
3298         * tests/queryparsertest.cc: Fix previous change to compile.
3300 Wed Jun 26 05:34:25 GMT 2013  Olly Betts <olly@survex.com>
3302         * tests/queryparsertest.cc: Change qp_scale1 to time 5 repetitions of
3303           the large query to help average out variations.
3305 Wed Jun 26 04:52:33 GMT 2013  Olly Betts <olly@survex.com>
3307         * configure.ac: Tweak to simplify diff against similar code in
3308           xapian-omega.
3310 Wed Jun 26 03:56:14 GMT 2013  Olly Betts <olly@survex.com>
3312         * api/matchspy.cc: Fix get_description() to work on a
3313           ValueCountMatchSpy with NULL internals - fixes matchspy5 testcase
3314           with remote backends when configured with --enable-log.
3315         * api/matchspy.cc: Add assertions that internal is non-NULL before
3316           using it.
3317         * include/xapian/matchspy.h: If internal is NULL, make
3318           ValueCountMatchSpy::get_total() return 0 rather than dereferencing
3319           NULL.
3321 Wed Jun 26 03:10:58 GMT 2013  Olly Betts <olly@survex.com>
3323         * tests/harness/testsuite.cc,tests/harness/testsuite.h: If
3324           -v/--verbose is specified more than once, show the diagnostic output
3325           for passing tests as well as failing/skipped ones.
3327 Wed Jun 26 03:08:08 GMT 2013  Olly Betts <olly@survex.com>
3329         * tests/api_scalability.cc: Change querypairwise1_helper to repeat the
3330           query build 100 times, as with a fast modern machine we were
3331           sometimes trying to so many subqueries that we would run out of
3332           stack.
3334 Wed Jun 26 02:55:20 GMT 2013  Olly Betts <olly@survex.com>
3336         * weight/tfidfweight.cc: Wrap long lines.
3338 Wed Jun 26 02:00:12 GMT 2013  Olly Betts <olly@survex.com>
3340         * configure.ac,m4-macros/xapian-1.3.m4: Fix stripping of _git suffix
3341           from snapshot versions not to relying of sed having support for \|
3342           as it doesn't on OS X.
3344 Tue Jun 25 13:21:44 GMT 2013  Olly Betts <olly@survex.com>
3346         * weight/tfidfweight.cc: Merge "impossible" cases in switch statements
3347           into possible ones which contain the same code, adding assertions
3348           that the "impossible" hasn't happened.  More robust and improves
3349           test coverage.
3351 Tue Jun 25 06:28:00 GMT 2013  Olly Betts <olly@survex.com>
3353         * m4-macros/xapian-1.3.m4: XO_LIB_XAPIAN now handles the user
3354           specifying a relative path in XAPIAN_CONFIG, e.g.: "./configure
3355           XAPIAN_CONFIG=../xapian-core/xapian-config"
3357 Tue Jun 25 05:34:41 GMT 2013  Olly Betts <olly@survex.com>
3359         * m4-macros/xapian-1.3.m4: Fix comment typo.
3361 Tue Jun 25 05:33:54 GMT 2013  Olly Betts <olly@survex.com>
3363         * configure.ac: Use AC_PATH_PROG instead of AC_PATH_PROG when there's
3364           only one name for the program to look for.
3366 Sun Jun 23 13:12:54 GMT 2013  Olly Betts <olly@survex.com>
3368         * configure.ac: clang doesn't support -Wstrict-null-sentinel or
3369           -Wlogical-op, so don't pass it these options.
3371 Sat Jun 22 13:40:40 GMT 2013  Olly Betts <olly@survex.com>
3373         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
3374           Fix failure when built with -D_GLIBCXX_DEBUG - we were modifying
3375           the top() element of a heap before calling pop(), such that the
3376           heap comparison operation (which is called when -D_GLIBCXX_DEBUG
3377           is on to verify the heap is valid) would read off the end of the
3378           data.  In a normal build, this issue would likely never manifest.
3380 Sat Jun 22 11:21:22 GMT 2013  Olly Betts <olly@survex.com>
3382         * common/bitstream.cc: Fix assertion in BitReader::decode().
3384 Sat Jun 22 09:13:13 GMT 2013  Olly Betts <olly@survex.com>
3386         * matcher/localsubmatch.cc: Fix assertion failure when built with
3387           --enable-assertions.  The behaviour when built without assertions
3388           happened to be correct.
3390 Fri Jun 21 13:10:53 GMT 2013  Olly Betts <olly@survex.com>
3392         * tests/unittest.cc: Add simple test for log2().
3394 Fri Jun 21 13:09:09 GMT 2013  Olly Betts <olly@survex.com>
3396         * common/Makefile.mk,common/log2.h,configure.ac: Add log2.h header
3397           which provides an implementation of log2() if it isn't available in
3398           the standard libraries.
3400 Fri Jun 14 13:20:58 GMT 2013  Olly Betts <olly@survex.com>
3402         * common/fd.h: Add missing header include guards.
3404 Fri Jun 14 13:19:44 GMT 2013  Olly Betts <olly@survex.com>
3406         * common/append_filename_arg.h,geospatial/geoencode.h: Fix header
3407           include guard names which don't match our naming conventions.
3409 Fri Jun 14 13:18:40 GMT 2013  Olly Betts <olly@survex.com>
3411         * backends/brass/brass_dbcheck.h,backends/chert/chert_dbcheck.h,
3412           backends/multi/multi_alltermslist.h: Fix header include guard macro
3413           names which don't match the source file names.
3415 Fri Jun 14 12:48:14 GMT 2013  Olly Betts <olly@survex.com>
3417         * common/compression_stream.h: Whitespace tweak.
3419 Thu Jun 13 13:58:14 GMT 2013  Olly Betts <olly@survex.com>
3421         * backends/chert/chert_positionlist.cc: Remove 'Assert(rd);' since rd
3422           is no longer a pointer.
3424 Thu Jun 13 13:28:43 GMT 2013  Olly Betts <olly@survex.com>
3426         * tests/harness/utestsuite.cc: Add missing GPL boilerplate and
3427           copyright statements.
3429 Thu Jun 13 13:26:07 GMT 2013  Olly Betts <olly@survex.com>
3431         * common/compression_stream.cc,common/compression_stream.h: Add
3432           missing GPL boilerplate and copyright statements.
3434 Thu Jun 13 13:24:34 GMT 2013  Olly Betts <olly@survex.com>
3436         * common/compression_stream.cc,common/compression_stream.h: Remove
3437           unused header includes; don't use "using namespace std;" in a
3438           header.
3440 Thu Jun 13 08:30:26 GMT 2013  Olly Betts <olly@survex.com>
3442         * backends/brass/brass_positionlist.cc: Remove 'Assert(rd);' since rd
3443           is no longer a pointer.
3445 Thu Jun 13 05:07:27 GMT 2013  Olly Betts <olly@survex.com>
3447         * common/compression_stream.h: Update include guard to match source
3448           file name.
3450 Thu Jun 13 02:38:20 GMT 2013  Olly Betts <olly@survex.com>
3452         * common/,net/length.h,net/serialise.h: Fix @file markup which wasn't
3453           actually in a doxygen comment.
3455 Thu Jun 13 02:14:22 GMT 2013  Olly Betts <olly@survex.com>
3457         * preautoreconf: Remove needless use of perl prototype.
3459 Tue Jun 11 00:40:37 GMT 2013  Olly Betts <olly@survex.com>
3461         * common/remoteprotocol.h,docs/remote_protocol.rst: Bump
3462           remote protocol version to 38.o.
3464 Tue Jun 11 00:37:01 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3466         * api/leafpostlist.cc,matcher/,net/serialise.cc,weight/weight.cc,
3467           weight/weightinternal.cc,weight/weightinternal.h: Make collection
3468           frequency available to Xapian::Weight subclasses.  Extracted from
3469           Gaurav Arora's LM branch.
3471 Wed May 22 10:04:25 GMT 2013  Olly Betts <olly@survex.com>
3473         * configure.ac: When generating ABI compatibility checks in
3474           xapian/version.h, pass $CXXFLAGS and $CPPFLAGS to $CXXCPP as they
3475           could contain options which affect the ABI (such as -fabi-version
3476           for GCC).  (Fixes #622)
3478 Wed May 22 04:20:39 GMT 2013  Olly Betts <olly@survex.com>
3480         * common/win32_uuid.cc: Microsoft GUIDs in binary form have reversed
3481           byte order in the first three components compared to standard UUIDs,
3482           so the same database would report a different UUID on Windows to
3483           on other platforms.  With this fix, the UUIDs of existing databases
3484           will appear to change on Windows (except in rare "palindronic" cases).
3486 Fri May 17 05:52:43 GMT 2013  Olly Betts <olly@survex.com>
3488         * docs/overview.rst: Correct documentation for stub files specifying
3489           "prog" remote databases.
3491 Thu May 16 05:47:40 GMT 2013  Olly Betts <olly@survex.com>
3493         * backends/chert/chert_dbcheck.cc: Code tweak for clarity.
3495 Thu May 16 05:46:42 GMT 2013  Olly Betts <olly@survex.com>
3497         * backends/chert/chert_dbcheck.cc: Fix database check that first docid
3498           in each doclength chunk is more than the last docid in the previous
3499           chunk - previously this didn't actually work.
3501 Thu May 16 05:45:04 GMT 2013  Olly Betts <olly@survex.com>
3503         * common/bitstream.h: Fix database check not to falsely report
3504           "position table: Junk after position data" whenever there are 7
3505           unused bits (7 is OK, *more* than 7 isn't).
3507 Tue May 14 12:42:11 GMT 2013  Olly Betts <olly@survex.com>
3509         * m4-macros/xapian-1.3.m4: Adjust XO_LIB_XAPIAN to strip _gitNNN
3510           suffix from snapshot versions.
3512 Sun May 12 06:11:36 GMT 2013  Olly Betts <olly@survex.com>
3514         * configure.ac: Simplify previous change.
3516 Sun May 12 06:06:47 GMT 2013  Olly Betts <olly@survex.com>
3518         * configure.ac: Handle git snapshot naming when calculating REVISION.
3520 Wed May 08 11:56:27 GMT 2013  Olly Betts <olly@survex.com>
3522         * HACKING,INSTALL,Makefile.am,README,docs/Makefile.am,docs/install.rst,
3523           docs/stemming.rst,languages/Makefile.mk,queryparser/Makefile.mk,
3524           tests/Makefile.am,tests/perftest/perftest.cc: SVN -> git.
3526 Wed May 08 08:51:22 GMT 2013  Olly Betts <olly@survex.com>
3528         * backends/brass/brass_version.cc,backends/chert/chert_version.cc:
3529           Remove unused '#include <cstdio>'.
3531 Mon May 06 11:10:25 GMT 2013  Olly Betts <olly@survex.com>
3533         * api/omenquire.cc,configure.ac,include/xapian/enquire.h: Merge two
3534           Enquire::get_eset() overloaded forms into one with a default value
3535           for parameter min_wt.
3537 Thu May 02 12:05:28 GMT 2013  Olly Betts <olly@survex.com>
3539         * NEWS,configure.ac: Update for 1.3.1.
3541 Thu May 02 11:13:30 GMT 2013  Olly Betts <olly@survex.com>
3543         * include/xapian/weight.h,tests/api_nodb.cc,tests/api_weight.cc,
3544           weight/tfidfweight.cc: Use lowercase letters for the TfIdfWeight
3545           descriptions to match what SMART uses.
3547 Wed May 01 05:13:07 GMT 2013  Olly Betts <olly@survex.com>
3549         * include/xapian/database.h: Work around Apple's OS X SDK defining a
3550           check() macro.
3552 Tue Apr 30 13:51:53 GMT 2013  Olly Betts <olly@survex.com>
3554         * NEWS: Update from ChangeLog.
3556 Mon Apr 29 03:09:16 GMT 2013  Olly Betts <olly@survex.com>
3558         * backends/brass/brass_dbcheck.cc,backends/chert/chert_dbcheck.cc:
3559           Use decode_interpolative_next() when checking database consistency.
3560           We also now complain about any junk after the position data.
3561         * common/bitstream.cc,common/bitstream.h: Remove the old version of
3562           decode_interpolative() which unpacks into a std::vector.
3564 Mon Apr 29 02:16:54 GMT 2013  Olly Betts <olly@survex.com>
3566         * backends/chert/chert_positionlist.cc,
3567           backends/chert/chert_positionlist.h: Backport positionlist changes
3568           from brass.
3570 Mon Apr 29 01:58:59 GMT 2013  Olly Betts <olly@survex.com>
3572         * backends/brass/brass_positionlist.cc: No need to initialise the
3573           BitReader object in the single-entry position list case.
3575 Mon Apr 29 01:58:10 GMT 2013  Olly Betts <olly@survex.com>
3577         * backends/brass/brass_positionlist.cc: Fix bug when reaching the last
3578           positionlist entry in skip_to().
3580 Mon Apr 29 00:46:10 GMT 2013  Olly Betts <olly@survex.com>
3582         * tests/api_posdb.cc: Fix comment typos.
3584 Mon Apr 29 00:27:42 GMT 2013  Olly Betts <olly@survex.com>
3586         * backends/brass/brass_positionlist.cc: Fix handling of single-entry
3587           position lists.
3589 Sun Apr 28 23:45:02 GMT 2013  Olly Betts <olly@survex.com>
3591         * backends/brass/brass_positionlist.cc: Fix BrassPositionList for case
3592           when there's no positional information for a term.
3594 Sun Apr 28 10:29:59 GMT 2013  Olly Betts <olly@survex.com>
3596         * backends/brass/brass_positionlist.cc: Simplify setting of
3597           have_started in BrassPositionList::skip_to().
3599 Sun Apr 28 10:19:52 GMT 2013  Olly Betts <olly@survex.com>
3601         * backends/brass/brass_positionlist.cc,
3602           backends/brass/brass_positionlist.h,common/bitstream.h: Make the
3603           BitReader object a member of BrassPositionList rather than tracking
3604           a pointer to it.
3606 Sun Apr 28 07:22:07 GMT 2013  Olly Betts <olly@survex.com>
3608         * backends/brass/brass_positionlist.cc,common/bitstream.h: Reuse the
3609           same BitReader object for each document rather than deleting the old
3610           one and creating a new one.
3612 Sun Apr 28 07:06:12 GMT 2013  Olly Betts <olly@survex.com>
3614         * backends/brass/brass_positionlist.cc: Move check for reaching the
3615           end after the next() in the loop in skip_to(), as we know we aren't
3616           at the end on the first iteration, and we've now handled the case of
3617           termpos == last before we get here.
3619 Sun Apr 28 07:04:54 GMT 2013  Olly Betts <olly@survex.com>
3621         * backends/brass/brass_positionlist.cc: We know what the last entry in
3622           the position list is, so special case skip_to(last_entry) to just
3623           move there rather than calling next() a lot of times.
3625 Sun Apr 28 07:03:57 GMT 2013  Olly Betts <olly@survex.com>
3627         * common/bitstream.h: We don't need to stack pos_j when doing lazy
3628           interpolative decoding.
3630 Sun Apr 28 06:48:01 GMT 2013  Olly Betts <olly@survex.com>
3632         * common/bitstream.h: Store j and k before pos_j and pos_k as it's
3633           fractionally more efficient.
3635 Sun Apr 28 06:44:32 GMT 2013  Olly Betts <olly@survex.com>
3637         * backends/brass/brass_positionlist.cc,
3638           backends/brass/brass_positionlist.h,common/bitstream.cc,
3639           common/bitstream.h: Hook up BrassPositionList to the new lazy
3640           interpolative decoder.
3642 Fri Apr 26 02:09:38 GMT 2013  Marius Tibeica <mtibeica@gmail.com>
3644         * common/bitstream.cc,common/bitstream.h: Support reading entries from
3645           an interpolative coded list one by one.
3647 Thu Apr 25 10:57:02 GMT 2013  Olly Betts <olly@survex.com>
3649         * docs/remote_protocol.rst: Correct error in documentation of
3650           REPLY_DOCDATA message.
3652 Thu Apr 25 10:44:56 GMT 2013  Marius Tibeica <mtibeica@gmail.com>
3654         * common/bitstream.cc: renamed my_fls to highest_order_bit.
3656 Thu Apr 25 06:49:48 GMT 2013  Olly Betts <olly@survex.com>
3658         * backends/remote/remote-database.cc,common/remoteprotocol.h,
3659           docs/remote_protocol.rst,net/remoteserver.cc: Prefix compress
3660           list of terms and metadata keys in the remote protocol.  
3661           This requires a remote protocol major version bump.
3663 Wed Apr 24 23:14:47 GMT 2013  Olly Betts <olly@survex.com>
3665         * queryparser/lemon.c,queryparser/queryparser.lt: Fix comment typos.
3667 Wed Apr 24 06:27:26 GMT 2013  Olly Betts <olly@survex.com>
3669         * include/xapian.h: Add catch for Wt defining a macro called slots,
3670           like we already do for Qt.
3672 Wed Apr 24 03:40:13 GMT 2013  Olly Betts <olly@survex.com>
3674         * NEWS: Update.
3676 Tue Apr 23 12:34:23 GMT 2013  Olly Betts <olly@survex.com>
3678         * backends/brass/brass_table.cc: Use a block's revision number to
3679           check if it was newly allocated in the current revision, and
3680           assert that the base file shows it block_free_at_start (previously
3681           the check and assertion were the other way around).
3683 Tue Apr 23 12:11:21 GMT 2013  Olly Betts <olly@survex.com>
3685         * HACKING: Note macports needed for development work.
3687 Tue Apr 23 11:41:17 GMT 2013  Olly Betts <olly@survex.com>
3689         * include/xapian/version_h.cc: Fix typo in doc comment.
3691 Tue Apr 23 11:39:30 GMT 2013  Olly Betts <olly@survex.com>
3693         * include/xapian/version_h.cc: Disable error for direct inclusion
3694           of xapian/version.h for now.
3696 Sun Apr 21 07:49:38 GMT 2013  Olly Betts <olly@survex.com>
3698         * include/xapian/version_h.cc: Fix quotes in new #error in version.h.
3700 Sun Apr 21 06:25:57 GMT 2013  Olly Betts <olly@survex.com>
3702         * configure.ac,generate-exceptions,include/xapian/: Give an error if
3703           user code tries to include API headers other than xapian.h directly.
3705 Sat Apr 20 10:12:23 GMT 2013  Olly Betts <olly@survex.com>
3707         * languages/compiler/generator.c: Generate '#include <config.h>' at
3708           the start of the stemmer code.
3710 Fri Apr 19 23:36:25 GMT 2013  Olly Betts <olly@survex.com>
3712         * configure.ac: Remove empty default cases.
3714 Wed Apr 17 03:06:57 GMT 2013  Olly Betts <olly@survex.com>
3716         * NEWS: Update from 1.2.15 and ChangeLog.
3718 Thu Apr 11 22:17:44 GMT 2013  Olly Betts <olly@survex.com>
3720         * backends/brass/brass_version.cc,backends/chert/chert_version.cc:
3721           Call io_sync() on the version file when we create it.
3723 Tue Apr 09 11:02:35 GMT 2013  Olly Betts <olly@survex.com>
3725         * bin/xapian-delve.cc: If -v is specified more than once, show even
3726           more info in some cases.
3728 Tue Apr 09 09:40:02 GMT 2013  Olly Betts <olly@survex.com>
3730         * tests/Makefile.am: Force automake to use the serial test driver,
3731           which requires automake 1.12 (to recognise the serial-tests driver).
3733 Mon Apr 08 06:30:40 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3735         * weight/: Added tfidfweight.cc containing the implementation of the
3736           TfIdfWeight class.
3738         * include/xapian/weight.h: Added TfIdfWeight class for the tf-idf
3739           weighting scheme.
3741         * tests/api_weight.cc: Added tests for TfIdfWeight.
3743         * tests/api_nodb.cc: Added simple tests for TfIdfWeight.
3745 Sat Apr 06 00:21:34 GMT 2013  Olly Betts <olly@survex.com>
3747         * m4-macros/xapian-1.3.m4: XO_LIB_XAPIAN now handles the user
3748           specifying XAPIAN_CONFIG without a path - e.g.: "./configure
3749           XAPIAN_CONFIG=xapian-config-1.3"
3751 Thu Apr 04 12:02:36 GMT 2013  Olly Betts <olly@survex.com>
3753         * common/Makefile.mk: Remove random comment.
3755 Thu Apr 04 10:06:53 GMT 2013  Olly Betts <olly@survex.com>
3757         * Makefile.am,configure.ac,tests/Makefile.am: Remove support for
3758           'configure --enable-quiet', 'make QUIET=' and 'make QUIET=y' -
3759           automake now supports 'configure --enable-silent-rules', 'make V=1'
3760           and 'make V=0' which are broadly equivalent and more standard.
3762 Thu Apr 04 09:58:35 GMT 2013  Olly Betts <olly@survex.com>
3764         * HACKING: Update to note that automake 1.12.2 is now a hard
3765           requirement.
3767 Tue Apr 02 10:22:44 GMT 2013  Olly Betts <olly@survex.com>
3769         * queryparser/lemon.c: Comment typo fixes.
3771 Tue Apr 02 09:47:14 GMT 2013  Olly Betts <olly@survex.com>
3773         * queryparser/lemon.c,queryparser/queryparser.lt: Sync with latest
3774           upstream version of lemon.  The only notable change is a bug fix for
3775           platforms where sizeof(long) < sizeof(void*) (LLP64 model).
3777 Tue Apr 02 05:51:12 GMT 2013  Olly Betts <olly@survex.com>
3779         * HACKING: Tell vim to syntax highlight as rst.
3781 Tue Apr 02 05:50:26 GMT 2013  Olly Betts <olly@survex.com>
3783         * HACKING: Update for recent changes to bootstrap.  In particular, we
3784           now bootstrap snapshots with automake 1.13.1.
3786 Fri Mar 29 05:18:11 GMT 2013  Olly Betts <olly@survex.com>
3788         * net/tcpclient.cc: Fix __WIN32__ conditional, accidentally broken in
3789           last change to this file.
3791 Thu Mar 28 04:19:26 GMT 2013  jiangwen jiang <jiangwen127@gmail.com>
3793         * api/expanddecider.cc,include/xapian/expanddecider.h,
3794           tests/api_anydb.cc,tests/api_nodb.cc: Add ExpandDeciderFilterPrefix
3795           class to only return terms with a particular prefix.  (fixes #467)
3797 Thu Mar 21 23:55:26 GMT 2013  Olly Betts <olly@survex.com>
3799         * tests/queryparsertest.cc: Add test coverage for change to
3800           QueryParser CJK handling in previous commit.
3802 Thu Mar 21 07:21:30 GMT 2013  Greg Banks <gnb@fastmail.fm>
3804         * queryparser/cjk-tokenizer.cc,queryparser/termgenerator_internal.cc,
3805           tests/termgentest.cc: Some CJK codepoints are also punctuation and
3806           hence not word characters, and should not really be used as fodder
3807           for generating N-grams.  Also fixes a pre-existing bug where every
3808           second sequence of N-grammable CJK characters in the text failed to
3809           generate the first 2-gram.
3811 Sun Mar 17 20:45:48 GMT 2013  Olly Betts <olly@survex.com>
3813         * common/pretty.h: Restore space after comma in output.
3815 Sun Mar 17 03:59:52 GMT 2013  Dan Colish <dcolish@gmail.com>
3817         * common/pretty.h: Correct recursion issue.
3819 Sun Mar 17 02:58:52 GMT 2013  Dan Colish <dcolish@gmail.com>
3821         * common/pretty.h: Resolve ambiguity by moving operator| to a member
3822           function of PrettyOStream
3824 Sat Mar 16 21:43:32 GMT 2013  Olly Betts <olly@survex.com>
3826         * queryparser/queryparser.lemony: std::less provides a total order over
3827           pointers, so we can just use that to implement
3828           filter_group_id::operator<() - we only need a consistent order so we
3829           can use it as the key to a std::map.
3831 Fri Mar 15 06:36:32 GMT 2013  Dan Colish <dcolish@gmail.com>
3833         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
3834           common/pretty.h: Avoid needlessly casting away const-ness in
3835           debug logging.
3837 Fri Mar 15 06:31:32 GMT 2013  Olly Betts <olly@survex.com>
3839         * matcher/multiandpostlist.cc,matcher/multixorpostlist.cc: Add a
3840           couple more LOGCALL annotations.
3842 Fri Mar 15 06:27:42 GMT 2013  Dan Colish <dcolish@gmail.com>
3844         * api/registry.cc,common/pretty.h: Fix incorrect LOGCALL return value.
3846 Fri Mar 15 06:24:11 GMT 2013  Olly Betts <olly@survex.com>
3848         * api/registry.cc,common/Makefile.mk,common/registryinternal.h:
3849           common/registryinternal.h is only included by api/registry.cc so
3850           just inline its contents.
3852 Fri Mar 15 06:11:14 GMT 2013  Olly Betts <olly@survex.com>
3854         * api/registry.cc: No need to explicitly default initialise std::map
3855           members or the base class.
3857 Fri Mar 08 04:05:31 GMT 2013  Olly Betts <olly@survex.com>
3859         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc: Fix
3860           multipass compaction not to damage document values, and to merge the
3861           database stats correctly.  (fixes #615)
3862         * tests/api_compact.cc: Add regression test compactmultipass1.
3864 Thu Mar 07 00:34:46 GMT 2013  Aarsh Shah <aarshkshah1992@gmail.com>
3866         * tests/api_anydb.cc: Added tradweight4 testcase to test TradWeight
3867           with an RSet for weighting documents.
3869 Wed Mar 06 08:55:12 GMT 2013  Olly Betts <olly@survex.com>
3871         * HACKING: gs package has been replaced by ghostscript package in
3872           current Debian and Ubuntu releases.
3874 Tue Feb 19 04:17:19 GMT 2013  Olly Betts <olly@survex.com>
3876         * common/Tokeniseise.pm: Add the ability to append lines to the
3877           header.
3879 Fri Feb 15 05:37:09 GMT 2013  Olly Betts <olly@survex.com>
3881         * common/realtime.h: Fix RealTime::sleep() to calculate the delta to
3882           the time we want to sleep to the right way round.  Previously we
3883           wouldn't sleep if we were before the deadline, but would sleep if
3884           the deadline had already passed (and by the amount the deadline had
3885           passed)!  And on Windows, fix the sleep to be for the delta rather
3886           than 43+ years (the time elapsed since the start of 1970).  (Fixes
3887           #472)
3889 Fri Feb 15 04:09:28 GMT 2013  Olly Betts <olly@survex.com>
3891         * api/queryinternal.cc: Need <functional> for mem_fun().
3893 Fri Feb 15 03:56:32 GMT 2013  Olly Betts <olly@survex.com>
3895         * tests/harness/testsuite.cc: Don't provide explicit template types to
3896           make_pair - it isn't useful, and breaks with C++11.  Fixes build
3897           error with MSVC2012.
3899 Thu Jan 31 23:39:08 GMT 2013  Olly Betts <olly@survex.com>
3901         * common/Tokeniseise.pm: Put the binary chop tables with the larger
3902           ones last, so the offsets to the start of them are more likely to
3903           fit into a byte.
3905 Wed Jan 30 04:17:07 GMT 2013  Olly Betts <olly@survex.com>
3907         * common/Makefile.mk,common/Tokeniseise.pm,languages/Makefile.mk,
3908           languages/collate-sbl: Factor out the generic code to create a
3909           string-to-enum mapping table into a perl module so we can reuse
3910           it elsewhere.
3912 Mon Jan 28 01:44:53 GMT 2013  Olly Betts <olly@survex.com>
3914         * examples/quest.cc: Fix to build with Sun Studio 12 compiler.
3915           (ticket#611)
3917 Thu Jan 24 22:40:12 GMT 2013  Olly Betts <olly@survex.com>
3919         * common/Makefile.mk,common/keyword.cc,common/keyword.h: Commit new
3920           keyword lookup function needed by previous commit.
3922 Thu Jan 24 22:26:19 GMT 2013  Olly Betts <olly@survex.com>
3924         * languages/: Generate a compact and efficient table to convert
3925           language names to enum codes, which we can then use a C switch
3926           statement to dispatch.  The table first checks the token length,
3927           and then does a binary chop on tokens of the same length.  This
3928           is both faster and smaller than the approach we were using, with
3929           the benefit that the table is auto-generated.
3931 Wed Jan 23 00:51:42 GMT 2013  Olly Betts <olly@survex.com>
3933         * matcher/selectpostlist.cc,matcher/selectpostlist.h: Check document
3934           matches weight threshold before checking positional information,
3935           which speeds up slow phrase searches (tweaked version of
3936           positional-query-weight-check-first.patch from #394).
3938 Thu Jan 17 06:48:41 GMT 2013  Olly Betts <olly@survex.com>
3940         * tests/api_stem.cc: Extend stem2 to ensure description of the stemmer
3941           isn't the same as the description of Stem("none").  Fix description
3942           of testcase stemlangs2.
3944 Thu Jan 17 02:32:31 GMT 2013  Olly Betts <olly@survex.com>
3946         * HACKING: Update link to new home of autotools tutorial.
3948 Wed Jan 16 02:40:20 GMT 2013  Olly Betts <olly@survex.com>
3950         * HACKING,Makefile.am: Rename CHK_SOURCES to check_sources - variables
3951           ending _SOURCES usually have a special meaning in automake, so it's
3952           confusing to have one which doesn't.
3954 Wed Jan 16 01:55:50 GMT 2013  Olly Betts <olly@survex.com>
3956         * api/omenquire.cc: Don't cache documents retrieved by
3957           MSet::get_document() unless they were requested with fetch().  This
3958           avoids using a lot of memory when many MSet entries are retrieved.
3959           (Fixes #604)
3961 Wed Jan 09 11:49:58 GMT 2013  Olly Betts <olly@survex.com>
3963         * NEWS: Update from ChangeLog and 1.2 branch.
3965 Fri Jan 04 23:14:33 GMT 2013  Olly Betts <olly@survex.com>
3967         * net/progclient.cc: Fix typo so we actually use SOCK_CLOEXEC.
3969 Fri Jan 04 23:14:01 GMT 2013  Olly Betts <olly@survex.com>
3971         * common/safesyssocket.h: We need the same workaround for socket() too.
3973 Fri Jan 04 04:41:17 GMT 2013  Olly Betts <olly@survex.com>
3975         * common/safesyssocket.h: On Linux at least, sometimes SOCK_CLOEXEC is
3976           defined but the kernel doesn't handle it in socketpair(), so add a
3977           wrapper which will retry without SOCK_CLOEXEC in this case.  Noticed
3978           on Ubuntu precise.
3980 Sat Dec 29 17:53:30 GMT 2012  Olly Betts <olly@survex.com>
3982         * docs/quickstart.rst: Fix seriously outdated statement that Xapian
3983           doesn't create the database directory - that changed in 0.7.2
3984           (release 2003-07-11), pointed out by aarsh on #xapian.
3986 Thu Dec 27 06:06:30 GMT 2012  Olly Betts <olly@survex.com>
3988         * queryparser/queryparser.lemony: Adjust handling of Unicode
3989           opening/closing double quotes - if a quoted boolean term was started
3990           with ASCII double quote, then only ASCII double quote can end it, as
3991           otherwise it's impossible to quote a term containing Unicode double
3992           quotes.
3993         * tests/queryparsertest.cc: Update testcases.
3995 Sun Dec 23 18:16:52 GMT 2012  Olly Betts <olly@survex.com>
3997         * configure.ac: Fix typo in previous commit.
3999 Sun Dec 23 18:06:45 GMT 2012  Olly Betts <olly@survex.com>
4001         * configure.ac: Use the new flock()-based flint-compatible locking
4002           under DJGPP, and remove special cases to disable chert and brass
4003           under DJGPP (untested, as I no longer have a DJGPP setup or
4004           cross-compiler).
4006 Sun Dec 23 17:51:36 GMT 2012  Olly Betts <olly@survex.com>
4008         * backends/flint_lock.cc,backends/flint_lock.h: Add flock() based
4009           locking implementation, which is much simpler than using fcntl() due
4010           to saner semantics around releasing locks when closing other
4011           descriptors on the same file (at least on platforms where flock()
4012           isn't just a compatibility wrapper around fcntl()).  We can't simply
4013           switch to this without breaking locking compatibility with previous
4014           releases, though it might be useful for porting to platforms without
4015           fcntl() locking.  Also, flock() apparently doesn't work over NFS -
4016           perhaps that's OK, but we should at least check the failure mode.
4018 Sat Dec 22 06:29:23 GMT 2012  Olly Betts <olly@survex.com>
4020         * backends/flint_lock.cc: Only set close-on-exec on the lockfile fd if
4021           we are able to clear it in the child process, and clear it in the
4022           child process if we set it when we opened it.
4024 Sat Dec 22 06:14:40 GMT 2012  Olly Betts <olly@survex.com>
4026         * backends/flint_lock.cc,net/progclient.cc: Use SOCK_CLOEXEC with
4027           socketpair(), and then clear the close-on-exec flag for child process
4028           end of the pair before we call exec.
4030 Sat Dec 22 06:13:44 GMT 2012  Olly Betts <olly@survex.com>
4032         * net/progclient.cc: Remove O_CLOEXEC where we open stderr on /dev/null
4033           before calling exec as we want that fd to survive the exec!
4035 Sat Dec 22 05:53:12 GMT 2012  Olly Betts <olly@survex.com>
4037         * HACKING,backends/flint_lock.cc,common/Makefile.mk,
4038           common/safesyssocket.h,net/progclient.cc,net/tcpclient.cc,
4039           net/tcpserver.cc,tests/harness/backendmanager_remotetcp.cc:
4040           Use SOCK_CLOEXEC where available, and try FD_CLOEXEC if SOCK_CLOEXEC
4041           isn't available.
4043 Sat Dec 22 04:09:23 GMT 2012  Olly Betts <olly@survex.com>
4045         * backends/brass/,backends/chert/,backends/flint_lock.cc,
4046           common/debuglog.cc,common/replicate_utils.cc,common/safefcntl.h,
4047           net/progclient.cc,net/remoteconnection.cc,
4048           tests/harness/testsuite.cc: If O_CLOEXEC is supported, pass it to
4049           open() so fds we open are closed if the application using us calls
4050           exec().
4052 Fri Dec 21 03:48:36 GMT 2012  Olly Betts <olly@survex.com>
4054         * configure.ac: Don't autodisable the remote backend if we fail to find
4055           a required function.  It's more likely the user needs to pass
4056           LIBS=-lfoo and it's more helpful to error out so they can do that, or
4057           pass --disable-backend-remote if they really don't want it, rather
4058           than having them not notice the automatic disabling until after
4059           they've built.  This also matches what we do for the disk based
4060           backends.
4062 Fri Dec 21 03:48:11 GMT 2012  Olly Betts <olly@survex.com>
4064         * configure.ac: Expand comment about DJGPP.
4066 Fri Dec 21 03:47:13 GMT 2012  Olly Betts <olly@survex.com>
4068         * configure.ac: Update comment - we've supported the prog backend on
4069           Windows for more than 5 years now!
4071 Fri Dec 21 03:32:13 GMT 2012  Olly Betts <olly@survex.com>
4073         * tests/api_replicate.cc: Use O_BINARY in replication tests.
4075 Fri Dec 21 03:24:37 GMT 2012  Olly Betts <olly@survex.com>
4077         * common/replicate_utils.cc: Make posixy_open() always use O_BINARY.
4078         * backends/brass/brass_btreebase.cc,backends/brass/brass_database.cc,
4079           backends/brass/brass_databasereplicator.cc,
4080           backends/chert/chert_btreebase.cc,
4081           backends/chert/chert_databasereplicator.cc,common/posixy_wrapper.cc:
4082           Don't pass O_BINARY to posixy_open() in the places where we were
4083           (which wasn't everywhere, probably causing replication bugs under
4084           __WIN32__).
4086 Fri Dec 21 02:57:56 GMT 2012  Olly Betts <olly@survex.com>
4088         * net/remoteconnection.cc,net/remoteconnection.h: Only "outline"
4089           RemoteConnection dtor under __WIN32__.
4091 Fri Dec 21 02:56:28 GMT 2012  Olly Betts <olly@survex.com>
4093         * backends/remote/remote-database.cc: Make the UnimplementedError for a
4094           MatchSpy which doesn't implement name() clearer that it's this
4095           particular subclass which can't be used remotely, not all MatchSpy
4096           objects.
4098 Thu Dec 20 22:27:40 GMT 2012  Olly Betts <olly@survex.com>
4100         * configure.ac: Use user-specified LIBS for configure tests, which is
4101           what's expected, and provides a way for the user to tell configure
4102           where to find library functions which configure can't find for
4103           itself.
4105 Thu Dec 20 22:07:19 GMT 2012  Olly Betts <olly@survex.com>
4107         * api/compactor.cc,api/replication.cc,backends/brass/,backends/chert/,
4108           common/,net/remoteconnection.cc: Rename msvc_posix_rename(), etc to
4109           posixy_rename() (avoid a posix_ prefix as that's used by some library
4110           functions, and these aren't necessarily 100% POSIX compatible), and
4111           provide macro versions on Unix, so we can avoid a #ifdef at every
4112           call site.
4114 Thu Dec 20 20:57:18 GMT 2012  Olly Betts <olly@survex.com>
4116         * configure.ac: socketpair() needs -lnetwork on Haiku.
4118 Thu Dec 20 02:30:12 GMT 2012  Olly Betts <olly@survex.com>
4120         * backends/brass/brass_databasereplicator.cc,
4121           backends/chert/chert_databasereplicator.cc: Simplify how we open the
4122           .DB file on the replication slave to just call open() once with
4123           O_CREAT, rather than once without, than stat() if that fails, and
4124           then again with O_CREAT|O_TRUNC if stat() doesn't show an ordinary
4125           file exists.
4127 Thu Dec 20 02:05:12 GMT 2012  Olly Betts <olly@survex.com>
4129         * api/compactor.cc,common/,languages/compiler/syswords2.h,
4130           tests/api_compact.cc: Remove extra blank lines at end of files.
4132 Thu Dec 20 01:54:47 GMT 2012  Olly Betts <olly@survex.com>
4134         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
4135           Fix "if (fd > 0)" tests to be "if (fd >= 0)" in code related to
4136           replication.  In practice this is unlikely to actually have caused
4137           problems in real world cases.
4139 Sun Dec 16 23:10:13 GMT 2012  Olly Betts <olly@survex.com>
4141         * bin/Makefile.mk: INCLUDES is always used, AM_CPPFLAGS isn't if there
4142           are per-executable CPPFLAGS, so add AM_CPPFLAGS explicitly when we
4143           use per-executable CPPFLAGS.
4145 Fri Dec 14 21:25:58 GMT 2012  Olly Betts <olly@survex.com>
4147         * Makefile.am,languages/Makefile.mk,queryparser/Makefile.mk,
4148           tests/Makefile.am: In automake, INCLUDES is now deprecated in favour
4149           of AM_CPPFLAGS so update to use the latter.
4151 Tue Nov 27 05:39:30 GMT 2012  Olly Betts <olly@survex.com>
4153         * examples/quest.cc: Need <algorithm> for lower_bound().
4155 Mon Nov 26 23:46:43 GMT 2012  Olly Betts <olly@survex.com>
4157         * examples/quest.cc: Align option descriptions in --help output, and
4158           make the initial letter of such descriptions consistently lowercase.
4160 Mon Nov 26 19:52:50 GMT 2012  Olly Betts <olly@survex.com>
4162         * examples/quest.cc: Add --flags command line option to allow setting
4163           arbitrary QueryParser flags.
4165 Mon Nov 26 03:02:03 GMT 2012  Olly Betts <olly@survex.com>
4167         * api/valuerangeproc.cc: Move 3 declarations to where we first use the
4168           variables.
4170 Mon Nov 26 02:59:41 GMT 2012  Olly Betts <olly@survex.com>
4172         * matcher/multimatch.cc: We no longer use the highest weighted
4173           MSet entry to calculate percentages, so stop searching for it.
4174           (Spotted by cppcheck)
4176 Mon Nov 26 02:59:02 GMT 2012  Olly Betts <olly@survex.com>
4178         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
4179           Remove unused variables (spotted by cppcheck).
4181 Mon Nov 26 02:12:19 GMT 2012  Olly Betts <olly@survex.com>
4183         * api/maptermlist.h,api/matchspy.cc,api/omdatabase.cc,
4184           backends/inmemory/inmemory_database.cc,
4185           backends/inmemory/inmemory_positionlist.cc,
4186           backends/multi/multi_postlist.cc,backends/remote/net_termlist.cc,
4187           bin/xapian-delve.cc,matcher/exactphrasepostlist.cc,
4188           matcher/mergepostlist.cc,matcher/phrasepostlist.cc,
4189           tests/harness/backendmanager.cc: Prefer ++i to i++.
4191 Fri Nov 23 03:38:39 GMT 2012  Olly Betts <olly@survex.com>
4193         * HACKING,Makefile.am: With lcov 1.10, we no longer need any of our
4194           hacky workarounds, so make this a requirement and simplify the rules
4195           in the makefile.
4197 Thu Nov 22 23:34:09 GMT 2012  Olly Betts <olly@survex.com>
4199         * Makefile.am: Pass -f to lcov, which should avoid the need for the
4200           patch we've been applying to lcov.
4202 Thu Nov 22 01:34:05 GMT 2012  Olly Betts <olly@survex.com>
4204         * backends/flint_lock.cc: Close excess file handles before we get the
4205           fcntl() lock, just in case one of those file handles is open on the
4206           lock file.
4207         * tests/api_backend.cc: Add regression test lockfilealreadyopen1.
4209 Thu Nov 22 00:35:51 GMT 2012  Olly Betts <olly@survex.com>
4211         * common/closefrom.cc,configure.ac: On platforms with the F_MAXFD
4212           fcntl but without closefrom(), we were failing to close the highest
4213           numbered open fd in our closefrom() replacement.  We now also work
4214           around valgrind not hiding some extra fds it has open, but then
4215           complaining if we try to close them.
4217 Wed Nov 21 22:50:21 GMT 2012  Olly Betts <olly@survex.com>
4219         * tests/harness/testsuite.cc: When reporting valgrind error, skip any
4220           warnings.
4222 Tue Nov 20 07:26:24 GMT 2012  Olly Betts <olly@survex.com>
4224         * tests/api_anydb.cc: msetweights1 makes multidb1 and multidb2
4225           redundant, so remove them.
4227 Tue Nov 20 07:21:46 GMT 2012  Olly Betts <olly@survex.com>
4229         * tests/api_backend.cc: Extend msetweights1 to test the case where
4230           only even docids match, so in the multi_* case, only docids from
4231           one subdatabase match.
4233 Tue Nov 20 07:04:55 GMT 2012  Olly Betts <olly@survex.com>
4235         * tests/api_backend.cc: Add testcase msetweights1 which checks we
4236           get the weights we expect for a two term query.
4238 Mon Nov 19 21:17:33 GMT 2012  Olly Betts <olly@survex.com>
4240         * queryparser/termgenerator.cc: TermGenerator internal member can
4241           never be NULL, so drop NULL test.
4243 Sat Nov 17 20:54:50 GMT 2012  Olly Betts <olly@survex.com>
4245         * tests/harness/testsuite.cc: Remove compatibility code for valgrind <
4246           3.3.0, since we reject such old versions at configure time.
4248 Sat Nov 17 00:05:36 GMT 2012  Olly Betts <olly@survex.com>
4250         * matcher/localsubmatch.cc: Optimise an unweighted query term which
4251           matches all the documents in a subdatabase to use the "MatchAll"
4252           postlist.  (ticket#387)
4254 Fri Nov 16 23:36:34 GMT 2012  Olly Betts <olly@survex.com>
4256         * tests/api_weight.cc: New testcase checkstatsweight1 which checks a
4257           weight subclass gets the correct values for all the stats.
4259 Fri Nov 16 07:30:18 GMT 2012  Olly Betts <olly@survex.com>
4261         * include/xapian/version_h.cc: Generate a check for compatible _DEBUG
4262           settings if built with MSVC.  (ticket#389)
4264 Fri Nov 16 01:28:55 GMT 2012  Olly Betts <olly@survex.com>
4266         * queryparser/queryparser.lemony: Improve a couple of comments.
4268 Fri Nov 16 01:25:28 GMT 2012  Olly Betts <olly@survex.com>
4270         * queryparser/queryparser.lemony: Implicitly close any unclosed brackets
4271           at the end of the query string.  Patch from Sehaj Singh Kalra.
4272         * tests/queryparsertest.cc: Adjust existing testcases and feature tests.
4274 Thu Nov 15 23:57:10 GMT 2012  Olly Betts <olly@survex.com>
4276         * tests/api_query.cc: Add testcase xor3 to ensure that XOR handles all
4277           remaining subqueries running out at the same time.
4279 Thu Nov 15 10:57:32 GMT 2012  Olly Betts <olly@survex.com>
4281         * tests/api_query.cc: One test here does need a backend, and it seems
4282           a more useful category, so drop the "don't need a backend" part from
4283           the @brief documentation comment.
4285 Thu Nov 15 09:29:47 GMT 2012  Olly Betts <olly@survex.com>
4287         * matcher/multimatch.cc: Fix calculation of 0.0/0.0 in some cases.
4288           This then got used as a minimum weight, but it seems this gives -nan
4289           (at least on x86-64 Linux) so it may have been harmless in practice.
4291 Thu Nov 15 05:39:47 GMT 2012  Olly Betts <olly@survex.com>
4293         * tests/api_anydb.cc: Eliminate workarounds for egcs 1.1.2 (certainly
4294           we no longer support a compiler that old, but maybe some newer
4295           compilers have the same issue, so I've rewritten the code to iterate
4296           backwards over one MSet, which is a useful feature to have coverage
4297           for).
4299 Thu Nov 15 05:28:40 GMT 2012  Olly Betts <olly@survex.com>
4301         * tests/api_anydb.cc: Fix reversebool1 and reversebool2 to actually
4302           use the result when they check an MSetIterator against end().
4304 Thu Nov 15 01:55:15 GMT 2012  Olly Betts <olly@survex.com>
4306         * bin/xapian-replicate.cc: Add --quiet option to xapian-replicate, and
4307           be a little more verbose by default.
4309 Thu Nov 15 01:54:14 GMT 2012  Olly Betts <olly@survex.com>
4311         * bin/xapian-replicate.cc: xapian-replicate --force-copy now only
4312           forces a single copy, and then attempts to replicate incrementally.
4314 Thu Nov 15 00:51:50 GMT 2012  Olly Betts <olly@survex.com>
4316         * bin/xapian-replicate.cc: Tweak code layout.
4318 Wed Nov 14 21:40:45 GMT 2012  Olly Betts <olly@survex.com>
4320         * net/remoteconnection.cc: Allow files > 32G to be be copied by
4321           replication.
4323 Tue Nov 13 03:44:03 GMT 2012  Olly Betts <olly@survex.com>
4325         * tests/api_replicate.cc: Pass 'true' or 'false' for 'bool' parameter,
4326           not '0' or '1' (especially confusing as the two previous parameters
4327           were integers which were often 0 or 1...)
4329 Tue Nov 13 03:34:42 GMT 2012  Olly Betts <olly@survex.com>
4331         * bin/xapian-replicate.cc,net/replicatetcpclient.cc,
4332           net/replicatetcpclient.h: Add --full-copy option to xapian-replicate.
4333         * tests/api_replicate.cc: New testcase replicate6 which tests the same
4334           code path used by 'xapian-replicate --full-copy'.
4336 Tue Nov 13 02:55:44 GMT 2012  Olly Betts <olly@survex.com>
4338         * tests/api_replicate.cc: Use '++' instead of '+= 1'.  Drop superfluous
4339           'return;' at end of function returning void.
4341 Tue Nov 13 01:12:33 GMT 2012  Olly Betts <olly@survex.com>
4343         * tests/harness/unixcmds.cc: Tweak to avoid default initialisation of
4344           string.
4346 Mon Nov 12 23:25:14 GMT 2012  Olly Betts <olly@survex.com>
4348         * include/xapian/unicode.h: GCC 4.6.3 doesn't optimise the asr idion
4349           either.  Add links to the PR I filed and the GCC documentation that
4350           signed right shift does sign extension.
4352 Mon Nov 12 10:21:19 GMT 2012  Olly Betts <olly@survex.com>
4354         * include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
4355           character database to 6.2.0.
4356         * tests/api_unicode.cc: Add tests for U+20BA, added in 6.2.0.
4358 Sat Nov 10 05:39:16 GMT 2012  Olly Betts <olly@survex.com>
4360         * api/leafpostlist.cc,matcher/multiandpostlist.cc: Improved fix for
4361           #590 - count all matching LeafPostList objects with a Weight object
4362           rather than trying to prune at the MultiAndPostList level based on
4363           max_wt (if wdf is always zero for a term, BM25 gives max_wt of 0,
4364           which leads to us never counting that subquery.
4365         * tests/api_percentages.cc: Add regression test topercent7.
4367 Fri Nov 09 04:25:32 GMT 2012  Olly Betts <olly@survex.com>
4369         * tests/api_percentages.cc: Note bug number in regression test for
4370           #590.
4372 Tue Nov 06 22:42:31 GMT 2012  Olly Betts <olly@survex.com>
4374         * backends/brass/brass_table.cc: Restore two missing lines in database
4375           checking where we report a block with the wrong level.
4377 Tue Oct 16 11:19:42 GMT 2012  Olly Betts <olly@survex.com>
4379         * api/compactor.cc,backends/dbcheck.cc,backends/dbfactory.cc,
4380           common/Makefile.mk: Fix to build when configured with
4381           --disable-backend-brass --disable-backend-chert.  (ticket#586)
4383 Mon Oct 15 04:07:30 GMT 2012  Olly Betts <olly@survex.com>
4385         * HACKING: automake 1.12.4 is now used to generate snapshots and
4386           releases.
4388 Sat Oct 13 09:34:21 GMT 2012  Olly Betts <olly@survex.com>
4390         * weight/weightinternal.h: Revert addition of "#include <config.h>" in
4391           r16820.
4392         * HACKING: Document that we don't include <config.h> from header
4393           files, and the reason why.
4395 Sat Oct 13 09:00:23 GMT 2012  Olly Betts <olly@survex.com>
4397         * include/xapian/queryparser.h: Fix documentation comment typos:
4398           "covert" -> "convert".
4400 Thu Oct 11 12:28:30 GMT 2012  Olly Betts <olly@survex.com>
4402         * docs/valueranges.rst: Update documentation to reflect change in
4403           Xapian 1.1.2 - DateValueRangeProcessor and StringValueRangeProcessor
4404           now support a prefix or suffix.
4406 Mon Oct 01 05:05:54 GMT 2012  Olly Betts <olly@survex.com>
4408         * HACKING: Try to make it clearer we're looking for a dual-licence
4409           on submitted patches.
4411 Tue Sep 25 08:09:08 GMT 2012  Olly Betts <olly@survex.com>
4413         * common/Makefile.mk,common/append_filename_arg.h,
4414           tests/harness/unixcmds.cc: Split out append_filename_argument() into
4415           its own file so it can be used elsewhere.
4417 Tue Sep 25 06:46:03 GMT 2012  Olly Betts <olly@survex.com>
4419         * include/xapian/enquire.h: Mark MSetIterator::at_end() and
4420           ESetIterator::at_end() as @private @internal so that they don't
4421           appear in the API docs.
4423 Tue Sep 25 06:45:07 GMT 2012  Olly Betts <olly@survex.com>
4425         * include/xapian/enquire.h: Remove FIXMEs about converting MSetIterator
4426           and ESetIterator to use Internal classes - as HACKING notes, the
4427           current implementation is that way for performance reasons.
4429 Tue Sep 25 06:36:37 GMT 2012  Olly Betts <olly@survex.com>
4431         * tests/harness/unixcmds.cc: Escape filenames on POSIX platforms by
4432           wrapping in single quotes and specially handling single quotes in
4433           the filename - previously newlines in filenames got eaten by the
4434           shell.
4436 Tue Sep 25 06:32:36 GMT 2012  Olly Betts <olly@survex.com>
4438         * tests/harness/unixcmds.cc: Protect filenames which start with '-' on
4439           MS Windows like we already do on other platforms.  The built-in
4440           commands generally only interpret '/' as the character introducing a
4441           command line option (which we already convert to '\'), but many
4442           ported programs understand '-' too/instead.
4444 Sat Aug 25 16:09:50 GMT 2012  Dan Colish <dcolish@gmail.com>
4446         * include/xapian/enquire.h: Add function to test MSetIterator and
4447           ESetIterator exhaustion against the size of the underlying interee
4448           since comparison against an empty Itor is not suitable for an
4449           exhaustion test. Add FIXME that these Iterators should use an Internal
4450           class. 
4452 Thu Aug 09 21:50:52 GMT 2012  Dan Colish <dcolish@gmail.com>
4454         * weight/weightinternal.h: Include config.h since macros are used
4455           from it. 
4457 Wed Aug 08 15:40:38 GMT 2012  Dan Colish <dcolish@gmail.com>
4459         * api/queryvector.h: Backout previous fix. When compiling with -O0,
4460           increase the stack limit to > 8M when running scalability tests.
4462 Wed Aug 08 02:10:21 GMT 2012  Dan Colish <dcolish@gmail.com>
4464         * api/queryvector.h: Fix SIGBUS when clearing QueryVectors
4466 Wed Aug 01 15:25:25 GMT 2012  Dan Colish <dcolish@gmail.com>
4468         * HACKING,Makefile.am,tests/Makefile.am: Fix non-portable warnings
4469         from automake, add HACKING doc for check-syntax make target
4471 Wed Aug 01 04:54:18 GMT 2012  Dan Colish <dcolish@gmail.com>
4473         * Makefile.am,api/Makefile,backends/Makefile,backends/brass/Makefile,
4474           backends/chert/Makefile,backends/inmemory/Makefile,
4475           backends/multi/Makefile,backends/remote/Makefile,bin/Makefile,
4476           common/Makefile,examples/Makefile,expand/Makefile,
4477           geospatial/Makefile,include/Makefile,include/xapian/Makefile,
4478           languages/Makefile,matcher/Makefile,net/Makefile,
4479           queryparser/Makefile,tests/harness/Makefile,unicode/Makefile,
4480           weight/Makefile: Add check-syntax target to Makefiles to support
4481           editor syntax checks
4483 Sun Jul 29 15:32:00 GMT 2012  Olly Betts <olly@survex.com>
4485         * configure.ac: Bump LIBRARY_VERSION_INFO so I can package a snapshot
4486           cleanly.
4488 Tue Jul 24 01:35:17 GMT 2012  Olly Betts <olly@survex.com>
4490         * include/xapian/queryparser.h,queryparser/queryparser.cc,
4491           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
4492           tests/queryparsertest.cc: Add FieldProcessor class (ticket#128) -
4493           currently marked as an experimental API while we sort out how best
4494           to sort out exactly how it interacts with other QueryParser features.
4496 Tue Jul 24 01:19:03 GMT 2012  Olly Betts <olly@survex.com>
4498         * include/xapian/queryparser.h: Add extra DateValueRangeProcessor
4499           constructor overloaded form so that in DateValueRangeProcessor(1,
4500           "date:"), the const char * gets interpreted as std::string rather
4501           than bool.
4502         * tests/queryparsertest.cc: Add regression test.
4504 Thu Jul 19 05:32:04 GMT 2012  Olly Betts <olly@survex.com>
4506         * backends/brass/brass_dbcheck.h,
4507           backends/inmemory/inmemory_alltermslist.cc,bin/xapian-delve.cc: Fix
4508           filenames in comments which mismatch actual name of file.
4510 Thu Jul 19 05:27:38 GMT 2012  Olly Betts <olly@survex.com>
4512         * queryparser/termgenerator_internal.cc: Remove "FIXME: Add API to
4513           allow control of how stemming is used?", as we have now added such
4514           an API.
4516 Thu Jul 19 05:24:49 GMT 2012  Olly Betts <olly@survex.com>
4518         * include/xapian/termgenerator.h,queryparser/termgenerator.cc,
4519           queryparser/termgenerator_internal.cc,
4520           queryparser/termgenerator_internal.h,tests/termgentest.cc: Add new
4521           method TermGenerator::set_max_word_length() to allow this limit to
4522           be adjusted by the user.
4524 Mon Jul 16 03:34:27 GMT 2012  Olly Betts <olly@survex.com>
4526         * include/xapian/enquire.h: Clarify that the "reverse" parameter of
4527           set_sort_by_relevance_then_value() and
4528           set_sort_by_relevance_then_key() only affects the ordering of the
4529           value/key part of the sort.
4531 Fri Jul 13 04:55:26 GMT 2012  Dan Colish <dcolish@gmail.com>
4533         * matcher/multimatch.cc: Remove duplicate import
4535 Thu Jul 12 05:13:57 GMT 2012  Olly Betts <olly@survex.com>
4537         * common/debuglog.cc: Preserve errno over debug logging calls, so they
4538           can safely be added to code which expects errno not to change.
4540 Mon Jul 02 05:27:43 GMT 2012  Dan Colish <dcolish@gmail.com>
4542         * backends/brass/brass_databasereplicator.cc: Use new/delete to avoid
4543           variable length array gcc extension and comply with c++98
4545 Mon Jul 02 05:02:14 GMT 2012  Dan Colish <dcolish@gmail.com>
4547         * api/omdatabase.cc,tests/api_wrdb.cc: Prefer container.empty() to
4548           container.size() == 0.
4550 Sun Jul 01 10:46:19 GMT 2012  Olly Betts <olly@survex.com>
4552         * NEWS: Update from ChangeLog, 1.2.11 and 1.2.12.
4554 Fri Jun 29 15:32:11 GMT 2012  Dan Colish <dcolish@>
4556         * tests/harness/testsuite.cc: Add safeunistd.h unconditionally for
4557           isatty, required by GCC 4.7
4559 Wed Jun 27 10:45:13 GMT 2012  Olly Betts <olly@survex.com>
4561         * AUTHORS: Add GSoC students.
4563 Tue Jun 26 08:45:03 GMT 2012  Olly Betts <olly@survex.com>
4565         * include/xapian.h: Add check for Qt headers being included before us
4566           and defining 'slots' as a macro - if they are, give a clear error
4567           advising how to work around this.
4569 Thu Jun 14 23:48:15 GMT 2012  Olly Betts <olly@survex.com>
4571         * docs/admin_notes.rst: Correction - we don't "create a lock file", we
4572           "lock a file".
4574 Tue Jun 12 13:08:58 GMT 2012  Olly Betts <olly@survex.com>
4576         * tests/api_replicate.cc: Make sure XAPIAN_MAX_CHANGESETS gets unset
4577           after testcases which set it, so further testcases don't waste time
4578           generating changesets.
4580 Tue Jun 12 12:11:51 GMT 2012  Olly Betts <olly@survex.com>
4582         * docs/replication.rst: The value of XAPIAN_MAX_CHANGESETS does now
4583           actually determine how many changesets we keep.
4585 Tue Jun 12 01:20:59 GMT 2012  Olly Betts <olly@survex.com>
4587         * configure.ac: Force link_all_deplibs_CXX=no for Solaris.
4589 Tue Jun 12 01:08:17 GMT 2012  Olly Betts <olly@survex.com>
4591         * xapian-config.in: Don't interpret a missing .la file as meaning that
4592           we only have static libraries.
4594 Sun Jun 10 12:57:16 GMT 2012  Olly Betts <olly@survex.com>
4596         * backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
4597           backends/brass/brass_check.cc: Remove is_empty(), tweak
4598           calculate_last_block() to calculate the bit map size correctly in
4599           the case of an empty table, and use the bit map size instead of
4600           is_empty() in xapian-check.
4601         * backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h,
4602           backends/chert/chert_check.cc: Make equivalent changes for chert.
4604 Sun Jun 10 11:27:52 GMT 2012  Olly Betts <olly@survex.com>
4606         * backends/brass/brass_table.cc,backends/brass/brass_table.h: We don't
4607           need the workaround for existing tables which were built with a 32
4608           bit item count for brass, since that bug was fixed in 1.1.4, which
4609           is the same version which brass was added in.
4611 Sun Jun 10 11:20:58 GMT 2012  Olly Betts <olly@survex.com>
4613         * backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
4614           backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h:
4615           Remove unused copy constructors for BrassTable_base and
4616           ChertTable_base.
4618 Wed Jun 06 11:10:26 GMT 2012  Olly Betts <olly@survex.com>
4620         * include/xapian/queryparser.h: Note that STEM_ALL_Z was added in
4621           1.2.11.  Change already made on 1.2 branch.
4623 Tue Jun 05 06:51:12 GMT 2012  Olly Betts <olly@survex.com>
4625         * common/compression_stream.cc,common/compression_stream.h: Move the
4626           default argument to the CompressionStream constructor to the header
4627           and mark the constructor as explicit, since it has a single argument
4628           form.
4630 Tue Jun 05 06:41:22 GMT 2012  Olly Betts <olly@survex.com>
4632         * api/queryvector.h: Fix somewhat dubious warning from clang.
4634 Tue Jun 05 06:33:09 GMT 2012  Olly Betts <olly@survex.com>
4636         * configure.ac: Overhaul handling of compilers which pretend to be GCC,
4637           using a simple "case" on the preprocessed output of '__INTEL_COMPILER
4638           __clang__' to tell which is in use.  We now explicitly check for
4639           clang, and only pass it warning flags it actually understands.  GCC
4640           4.0 is now lumped in with 3.*, since we handle it exactly the same.
4641           Enable -Wdouble-promotion for GCC >= 4.6.  Check for symbol
4642           visibility support under any GCC-alike (which means we now run the
4643           test with Intel's compiler).  Move the check for -Bsymbolic-functions 
4644           to be run for all compilers.
4646 Mon Jun 04 06:21:02 GMT 2012  Olly Betts <olly@survex.com>
4648         * backends/dbfactory.cc: Test if we fail to open a stub database file
4649           in Xapian::Auto::open_stub() and throw an exception if so.
4650         * tests/api_backend.cc: Add regression test stubdb7.
4652 Sun Jun 03 11:43:44 GMT 2012  Olly Betts <olly@survex.com>
4654         * include/xapian/query.h: Add second fake specialised form of the
4655           templated iterator Query constructor, for use in the Java bindings.
4657 Sat Jun 02 12:15:11 GMT 2012  Olly Betts <olly@survex.com>
4659         * docs/scalability.rst: Update gmane size, fix a typo, tweak wording.
4661 Sat Jun 02 12:10:55 GMT 2012  Olly Betts <olly@survex.com>
4663         * Makefile.am,api/omdocument.cc,api/omenquire.cc,backends/brass/,
4664           backends/chert/,bin/xapian-delve.cc,common/getopt.cc,configure.ac,
4665           docs/,m4-macros/xapian-1.3.m4,matcher/multimatch.cc,preautoreconf,
4666           tests/Makefile.am,tests/api_db.cc,tests/harness/testsuite.h,
4667           tests/harness/testutils.h: Change `...' quoting in prose to '...'.
4669 Fri Jun 01 07:40:48 GMT 2012  Olly Betts <olly@survex.com>
4671         * HACKING,Makefile.am: If you run "make coverage-check" by hand, the
4672           default of compressed HTML is unhelpful, so don't default to passing
4673           --html-gzip to genhtml, but instead add support for GENHTML_ARGS.
4675 Thu May 31 11:41:19 GMT 2012  Olly Betts <olly@survex.com>
4677         * tests/api_weight.cc: Add test that init() is now called for the
4678           term-independent weight contribution.
4680 Thu May 31 11:23:05 GMT 2012  Olly Betts <olly@survex.com>
4682         * weight/bm25weight.cc: Avoid use of undefined values when k1 or b are
4683           zero.
4685 Wed May 30 21:50:54 GMT 2012  Olly Betts <olly@survex.com>
4687         * tests/api_matchspy.cc: Use a cached generated database for matchspy2
4688           and matchspy4.
4690 Wed May 30 13:22:54 GMT 2012  Olly Betts <olly@survex.com>
4692         * include/xapian/weight.h,weight/weight.cc: We were failing to call
4693           init() for Weight objects providing the term-independent weight.
4694           These now get called with init(0.0).
4696 Wed May 30 13:13:03 GMT 2012  Olly Betts <olly@survex.com>
4698         * include/xapian/weight.h: Remove duplicate "need_stat(WDF);" calls,
4699           accidentally added by merge of opsynonym branch in r12609.
4701 Wed May 30 07:44:23 GMT 2012  Olly Betts <olly@survex.com>
4703         * weight/bm25weight.cc: Fix use of uninitialised value found by new
4704           bm25weight4 testcase.
4706 Wed May 30 05:38:58 GMT 2012  Olly Betts <olly@survex.com>
4708         * tests/api_weight.cc: Add tests for BM25 parameter combinations where
4709           doclen shouldn't affect the weights.
4711 Wed May 30 05:11:34 GMT 2012  Olly Betts <olly@survex.com>
4713         * tests/Makefile.am: Move api_geospatial.cc into alphabetical order.
4715 Wed May 30 05:07:51 GMT 2012  Olly Betts <olly@survex.com>
4717         * weight/bm25weight.cc,weight/tradweight.cc: Throw SerialisationError
4718           not NetworkError if unserialise() fails.
4719         * tests/.gitignore,tests/Makefile.am,tests/api_weight.cc: Add test
4720           coverage for this.
4722 Wed May 30 05:01:33 GMT 2012  Olly Betts <olly@survex.com>
4724         * weight/tradweight.cc: BM25Weight -> TradWeight in exception message.
4726 Wed May 30 04:28:43 GMT 2012  Olly Betts <olly@survex.com>
4728         * tests/queryparsertest.cc: Fix feature test added for STEM_ALL_Z.
4730 Tue May 29 07:29:01 GMT 2012  Olly Betts <olly@survex.com>
4732         * tests/harness/testutils.cc,tests/harness/testutils.h: Remove unused
4733           test helper mset_range_is_same_percents() (thanks, lcov!)
4735 Tue May 29 04:10:07 GMT 2012  Olly Betts <olly@survex.com>
4737         * tests/generate-api_generated: Test that the string returned by a
4738           get_description() method isn't empty.
4740 Tue May 29 03:54:15 GMT 2012  Olly Betts <olly@survex.com>
4742         * generate-exceptions: Use function attributes in generated error.h.
4744 Tue May 29 02:10:23 GMT 2012  Olly Betts <olly@survex.com>
4746         * configure.ac,tests/runsrv.in: In the testsuite, only run remote
4747           servers under valgrind if x87 FP instructions are in use.
4749 Tue May 29 00:24:42 GMT 2012  Olly Betts <olly@survex.com>
4751         * include/xapian/: Use the new function attributes on various API
4752           methods.
4753         * tests/api_wrdb.cc: get_termfreq() is now marked as pure, so the
4754           testsuite needs to actually use the return value to check its
4755           exception behaviour.
4757 Mon May 28 22:31:21 GMT 2012  Olly Betts <olly@survex.com>
4759         * api/query.cc,api/queryinternal.cc,api/queryinternal.h,
4760           include/xapian/query.h: Pass vector<pair<Xapian::termpos>, string> >&
4761           argument to Query::Internal::gather_terms() as a void* to avoid
4762           having to include <vector> in query.h.
4764 Mon May 28 05:07:02 GMT 2012  Olly Betts <olly@survex.com>
4766         * include/xapian/attributes.h: Remove unused XAPIAN_NOTHROW_API_METHOD
4767           as we're handling that a different way instead.
4769 Mon May 28 00:41:55 GMT 2012  Olly Betts <olly@survex.com>
4771         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Hide new
4772           function attribute macros from doxygen.
4774 Sun May 27 14:04:34 GMT 2012  Olly Betts <olly@survex.com>
4776         * include/xapian/query.h: Use "Internal" instead of "Query::Internal"
4777           in constructor prototype argument list for consistency with other
4778           cosntructors, and so this constructor gets ignored by SWIG.
4780 Sun May 27 07:38:56 GMT 2012  Olly Betts <olly@survex.com>
4782         * exception_data.pm: Fix typo to fix warning and so that XAPIAN_NOTHROW
4783           on a method will work.
4785 Sun May 27 01:43:30 GMT 2012  Olly Betts <olly@survex.com>
4787         * exception_data.pm,include/Makefile.mk,include/xapian.h,
4788           include/xapian/attributes.h,include/xapian/unicode.h: Add
4789           XAPIAN_CONST_FUNCTION, XAPIAN_PURE_FUNCTION, and XAPIAN_NOTHROW
4790           macros for marking functions and methods with those attributes.
4791           (tickets #151, #454)
4793 Fri May 25 06:42:35 GMT 2012  Olly Betts <olly@survex.com>
4795         * include/xapian/weight.h: Fix documentation comment typo ("k1" ->
4796           "k").
4798 Fri May 25 05:44:05 GMT 2012  Olly Betts <olly@survex.com>
4800         * backends/flint_lock.h: Mark FlintLock::throw_databaselockerror() as
4801           XAPIAN_NORETURN.
4803 Thu May 24 12:28:35 GMT 2012  Olly Betts <olly@survex.com>
4805         * include/xapian/termgenerator.h,queryparser/termgenerator.cc,
4806           queryparser/termgenerator_internal.cc,
4807           queryparser/termgenerator_internal.h: Add
4808           TermGenerator::set_stemming_strategy() method, with strategies which
4809           correspond to those of QueryParser.  Based on patch from Sehaj Singh
4810           Kalra, with some tweaks for adding term positions in more cases.
4811           (Fixes ticket#563)
4812         * tests/termgentest.cc: Add test coverage for the new features.
4814 Thu May 24 01:37:31 GMT 2012  Olly Betts <olly@survex.com>
4816         * include/xapian/queryparser.h: Add doc comment for stem_strategy
4817           typedef.
4819 Wed May 23 11:33:08 GMT 2012  Olly Betts <olly@survex.com>
4821         * include/xapian/queryparser.h,queryparser/queryparser.lemony:
4822           Add new QueryParser::STEM_ALL_Z stemming strategy, which stems all
4823           terms and adds a Z prefix.  (Patch from Sehaj Singh Kalra, fixes
4824           ticket#562)
4825         * tests/queryparsertest.cc: Add test coverage for
4826           QueryParser::STEM_ALL_Z.
4828 Wed May 23 05:37:20 GMT 2012  Olly Betts <olly@survex.com>
4830         * api/valuesetmatchdecider.cc,include/xapian/valuesetmatchdecider.h:
4831           "Limited" to "Ltd" in (C) two statements, for consistency (and with
4832           Charlie's agreement on IRC).
4834 Wed May 23 02:25:53 GMT 2012  Olly Betts <olly@survex.com>
4836         * api/,include/xapian/query.h: Rework QueryBranch to use a special
4837           QueryVector class rather than std::vector<Xapian::Query>.  The
4838           special class is no bigger than std::vector<Xapian::Query>, and
4839           handles up to two entries by holding them within the object (at
4840           least GCC's std::vector doesn't currently do this space optimisation)
4841           which significantly reduces the memory used by a pairwise operator,
4842           which is very desirable as we no longer flatten a tree of the same
4843           pairwise operator as we build the query.
4845 Tue May 22 06:25:10 GMT 2012  Olly Betts <olly@survex.com>
4847         * api/queryinternal.cc: Handle the left side of AND_NOT and
4848           AND_MAYBE being MatchNothing in add_subquery() rather than
4849           in done().
4851 Tue May 22 02:40:45 GMT 2012  Olly Betts <olly@survex.com>
4853         * api/queryinternal.cc: Handle QueryAndLike with a MatchNothing
4854           subquery in add_subquery() rather than done().
4856 Tue May 22 02:01:00 GMT 2012  Olly Betts <olly@survex.com>
4858         * api/queryinternal.cc,api/queryinternal.h: Drop MatchNothing
4859           subqueries in OR-like situations in add_subquery() rather than
4860           adding them and then handling it later.
4862 Sat May 19 00:27:23 GMT 2012  Olly Betts <olly@survex.com>
4864         * tests/runsrv.in: Add explanation of why we have this script.
4866 Sat May 19 00:27:10 GMT 2012  Olly Betts <olly@survex.com>
4868         * tests/runtest.in: Fix comment typo.
4870 Fri May 18 12:50:08 GMT 2012  Olly Betts <olly@survex.com>
4872         * backends/inmemory/inmemory_database.cc: Check if the database is
4873           closed when asked to iterate metadata keys.  Fixes recently added
4874           testcase closedb10 for inmemory.
4876 Fri May 18 12:34:24 GMT 2012  Olly Betts <olly@survex.com>
4878         * tests/Makefile.am: Pass -ldl last when compiling zlib-vg.so, as that
4879           seems to be needed on Ubuntu 12.04.
4881 Fri May 18 04:54:09 GMT 2012  Olly Betts <olly@survex.com>
4883         * tests/api_closedb.cc: We now test almost all methods of Database
4884           and WritableDatabase after calling close().  (ticket#337)
4886 Thu May 17 14:26:11 GMT 2012  Olly Betts <olly@survex.com>
4888         * backends/brass/,backends/chert/: After closing the database, methods
4889           which try to use the termlist would throw FeatureUnavailableError
4890           with message "Database has no termlist", assuming that the termlist
4891           table not being open meant it wasn't present.  Fix to check if the
4892           postlist_table is open to determine which case we're in.
4893         * tests/api_closedb.cc: Improve test coverage for closed databases.
4894           (ticket#337)
4896 Tue May 15 11:24:34 GMT 2012  Olly Betts <olly@survex.com>
4898         * NEWS: Update from ChangeLog and 1.2.10.
4900 Tue May 15 11:12:42 GMT 2012  Olly Betts <olly@survex.com>
4902         * backends/chert/chert_cursor.cc: Fix incorrect use of "delete" to
4903           "delete []".  The type is POD, so I suspect this mistake didn't
4904           actually cause any problems, and it only happens when a cursor
4905           gets rebuilt because the B-tree has gained a level, so it's
4906           a rather rare occurrence.
4908 Tue May 15 11:09:44 GMT 2012  Olly Betts <olly@survex.com>
4910         * backends/brass/brass_cursor.cc: Fix incorrect use of "delete" to
4911           "delete []".  The type is POD, so I suspect this mistake didn't
4912           actually cause any problems, and it only happens when a cursor
4913           gets rebuilt because the B-tree has gained a level, so it's
4914           a rather rare occurrence.
4916 Thu May 10 02:16:21 GMT 2012  Olly Betts <olly@survex.com>
4918         * HACKING: Update Debian/Ubuntu packaging instructions.
4920 Thu May 10 02:14:48 GMT 2012  Olly Betts <olly@survex.com>
4922         * HACKING: freshmeat -> freecode.
4924 Wed May 09 02:54:40 GMT 2012  Olly Betts <olly@survex.com>
4926         * tests/api_wrdb.cc: Add "safeunistd.h", required for GCC 4.7.
4928 Wed May 09 00:09:17 GMT 2012  Olly Betts <olly@survex.com>
4930         * api/query.cc: Construct MatchAll using constructor rather than
4931           assignment syntax.
4933 Wed May 09 00:08:29 GMT 2012  Olly Betts <olly@survex.com>
4935         * backends/brass/brass_cursor.h: Whitespace tweaks.
4937 Tue May 08 23:51:01 GMT 2012  Olly Betts <olly@survex.com>
4939         * docs/admin_notes.rst: Document xapian-check for fixing corrupted
4940           databases.
4942 Tue May 08 11:30:06 GMT 2012  Olly Betts <olly@survex.com>
4944         * common/fileutils.cc: Add safeunistd.h for mkdir, required by GCC
4945           4.7 (reported by Gaurav Arora).
4947 Wed May 02 03:44:25 GMT 2012  Olly Betts <olly@survex.com>
4949         * weight/weightinternal.cc: Using AssertEq() on NULL doesn't compile,
4950           at least with recent GCC.
4952 Wed May 02 02:58:37 GMT 2012  Olly Betts <olly@survex.com>
4954         * common/omassert.cc: Fix warning with GCC in build with assertions
4955           enabled.
4957 Wed May 02 02:55:54 GMT 2012  Olly Betts <olly@survex.com>
4959         * HACKING: We're now using automake 1.12 to generate snapshots and
4960           releases.
4962 Mon Apr 23 13:16:36 GMT 2012  Olly Betts <olly@survex.com>
4964         * tests/api_anydb.cc: Fix tradweight1 to test that TradWeight(0)
4965           means that wdf and doc length don't affect the weight of a term.
4967 Mon Apr 23 03:44:02 GMT 2012  Olly Betts <olly@survex.com>
4969         * backends/chert/,backends/dbcheck.cc,bin/xapian-check.cc,
4970           include/xapian/database.h: Add "fix" option to xapian-check, which
4971           currently will regenerate iamchert if it isn't valid, and will
4972           regenerate base files from the .DB files (only really tested on
4973           databases which have just been compacted).
4975 Mon Apr 23 03:40:35 GMT 2012  Olly Betts <olly@survex.com>
4977         * common/filetests.h: Add new function file_size() to get the size
4978           of a file from a path or file descriptor.
4979         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
4980           net/remoteconnection.cc,tests/api_replicate.cc: Use this new
4981           function.
4983 Wed Apr 18 01:35:21 GMT 2012  Olly Betts <olly@survex.com>
4985         * weight/bm25weight.cc,weight/tradweight.cc: Fix comment typo.
4987 Wed Apr 11 08:26:42 GMT 2012  Olly Betts <olly@survex.com>
4989         * HACKING: Update section on patches to mention git (git diff and git
4990           format-patch), and using "-r" with normal diff, and also that
4991           ptardiff offers a nice way to diff against an unpacked tarball.
4993 Wed Apr 04 02:22:04 GMT 2012  Olly Betts <olly@survex.com>
4995         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc:
4996           If the output database is empty, don't write a metainfo tag out.
4997           Take care not to divide by zero when computing the percentage
4998           size change for a table.
4999         * tests/api_compact.cc: Add new testcase compactempty1 to provide
5000           regression tests.
5002 Wed Apr 04 01:48:34 GMT 2012  Olly Betts <olly@survex.com>
5004         * backends/dbcheck.cc: If the database couldn't be opened, don't try
5005           to reserve space for cross-checking doclens, as that just results in
5006           us reporting a confusing warning about there being too many documents
5007           to cross-check doclens.
5009 Fri Mar 30 22:23:53 GMT 2012  Olly Betts <olly@survex.com>
5011         * backends/document.h: "An string" -> "A string" in internal doc
5012           comment.
5014 Fri Mar 30 22:20:11 GMT 2012  Olly Betts <olly@survex.com>
5016         * include/xapian/weight.h: Fix switched lower and upper in doc comments
5017           for Weight methods get_doclength_lower_bound() and
5018           get_doclength_upper_bound().  Correct maximum to minimum in
5019           get_doclength_lower_bound() comment and note that this excludes zero
5020           length documents.  Fix "An lower" to "A lower".
5022 Wed Mar 28 09:54:33 GMT 2012  Olly Betts <olly@survex.com>
5024         * NEWS: Fix typos in another old entry.
5026 Wed Mar 28 09:53:00 GMT 2012  Olly Betts <olly@survex.com>
5028         * NEWS: DatabaseCoruptError -> DatabaseCorruptError in old entries.
5030 Wed Mar 28 08:05:13 GMT 2012  Olly Betts <olly@survex.com>
5032         * tests/termgentest.cc: Add test coverage for discarding of terms > 64
5033           bytes by TermGenerator.
5035 Tue Mar 27 21:07:07 GMT 2012  Olly Betts <olly@survex.com>
5037         * include/xapian/database.h: Note when Database::close() was added.
5039 Tue Mar 27 13:03:22 GMT 2012  Olly Betts <olly@survex.com>
5041         * api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h,
5042           include/xapian/errorhandler.h: Deprecate Xapian::ErrorHandler.
5043           (ticket#3)
5045 Tue Mar 27 13:01:53 GMT 2012  Olly Betts <olly@survex.com>
5047         * HACKING,docs/deprecation.rst,docs/doxygen_api.conf.in,
5048           docs/doxygen_source.conf.in: Updates for addition of
5049           XAPIAN_DEPRECATED_EX() and XAPIAN_DEPRECATED_CLASS_EX.
5051 Tue Mar 27 10:11:23 GMT 2012  Olly Betts <olly@survex.com>
5053         * HACKING,include/xapian.h,include/xapian/deprecated.h: Add
5054           XAPIAN_DEPRECATED_EX() and XAPIAN_DEPRECATED_CLASS_EX macros which
5055           mark a feature as deprecated externally but not when building the
5056           library.
5058 Tue Mar 27 08:46:29 GMT 2012  Olly Betts <olly@survex.com>
5060         * api/compactor.cc: Include the xapian sub-headers we actually use
5061           rather than xapian.h, to avoid needless rebuilds.
5063 Tue Mar 27 08:33:28 GMT 2012  Olly Betts <olly@survex.com>
5065         * HACKING: Add example of deprecating a pure virtual method.
5067 Tue Mar 27 08:30:17 GMT 2012  Olly Betts <olly@survex.com>
5069         * NEWS: Update from ChangeLog.
5071 Sat Mar 24 12:33:44 GMT 2012  Olly Betts <olly@survex.com>
5073         * backends/brass/brass_databasereplicator.cc: Fix signed vs unsigned
5074           comparison warning with GCC 4.4.3.
5076 Sat Mar 24 12:26:13 GMT 2012  Olly Betts <olly@survex.com>
5078         * include/xapian/queryparser.h,queryparser/queryparser_internal.h:
5079           Change the default stemming strategy to STEM_SOME, to eliminate
5080           the API gotcha that setting a stemmer is ignored until you also
5081           set a strategy.
5082         * tests/queryparsertest.cc: Add testcase qp_defaultstrategysome1 to
5083           check that the default is STEM_SOME.
5085 Fri Mar 23 04:29:32 GMT 2012  Olly Betts <olly@survex.com>
5087         * tests/perftest/perftest.cc: Fix comment cut-and-paste error.
5089 Fri Mar 23 04:28:24 GMT 2012  Olly Betts <olly@survex.com>
5091         * Makefile.am: Use git commit hash in the title of a coverage report
5092           generated from a git tree.
5094 Thu Mar 22 04:29:38 GMT 2012  Olly Betts <olly@survex.com>
5096         * xapian-core.spec.in: Remove xapian-chert-update.
5098 Mon Mar 19 05:42:50 GMT 2012  Olly Betts <olly@survex.com>
5100         * matcher/multiandpostlist.cc: Don't count unweighted subqueries of
5101           MultiAndPostList for percentage calculations, as OP_FILTER maps to
5102           MultiAndPostList now.  (ticket#590)
5103         * tests/api_percentages.cc: Regression test topercent6.
5105 Sun Mar 18 23:24:04 GMT 2012  Dan Colish <dcolish@>
5107         * backends/brass/brass_databasereplicator.cc: size out buffer to the
5108           incoming blocksize
5110 Sun Mar 18 17:02:14 GMT 2012  Dan Colish <dcolish@>
5112         * .gitignore: ignore /.deps as well
5114 Sun Mar 18 16:46:45 GMT 2012  Dan Colish <dcolish@>
5116         * .gitignore:Update gitignore for bump to libxapian-1.3
5118 Sun Mar 18 04:37:37 GMT 2012  Olly Betts <olly@survex.com>
5120         * configure.ac: Set LIBRARY_VERSION_SUFFIX to -1.3.
5122 Sun Mar 18 00:48:05 GMT 2012  Dan Colish <dcolish@gmail.com>
5124         * backends/brass/,common/Makefile.mk, common/compression_stream.h,
5125           common/compression_stream.cc: Compress changesets in brass
5126           replication. Increments the changeset version. Ticket #348
5128 Sun Mar 18 00:39:23 GMT 2012  Dan Colish <dcolish@gmail.com>
5130         * tests/.gitignore,tests/soaktest/.gitignore: Add additional ignores
5131           for test artifacts
5133 Fri Mar 16 05:23:54 GMT 2012  Olly Betts <olly@survex.com>
5135         * common/Makefile.mk: Missing part of previous change.
5137 Fri Mar 16 04:59:53 GMT 2012  Olly Betts <olly@survex.com>
5139         * Makefile.am,m4-macros/xapian.m4: Rename libxapian to libxapian-1.3
5140           and xapian.m4 to xapian-1.3.m4.
5142 Wed Mar 14 04:58:55 GMT 2012  Olly Betts <olly@survex.com>
5144         * NEWS,tests/api_unicode.cc,unicode/tclUniData.cc: Update
5145           Unicode character database to 6.1.0.
5147 Wed Mar 14 02:23:27 GMT 2012  Olly Betts <olly@survex.com>
5149         * NEWS: Update for 1.3.0.
5151 Tue Mar 13 07:44:32 GMT 2012  Olly Betts <olly@survex.com>
5153         * NEWS: Update from 1.2.9 and ChangeLog.
5155 Tue Mar 13 00:28:58 GMT 2012  Olly Betts <olly@survex.com>
5157         * docs/geospatial.rst: Fix typo - it's LatLongCoords::append() not
5158           LatLongCoords::insert().
5160 Mon Mar 12 23:14:20 GMT 2012  Olly Betts <olly@survex.com>
5162         * docs/admin_notes.rst: Fix typo - need "1.2.x" not "1.0.x" to get
5163           both flint and chert support.
5165 Mon Mar 12 11:54:19 GMT 2012  Olly Betts <olly@survex.com>
5167         * docs/Makefile.am: doxygen no longer generates any GIF files, so
5168           stop trying to ship or install them.
5170 Thu Mar 08 10:21:51 GMT 2012  Olly Betts <olly@survex.com>
5172         * docs/index.rst: Add link to new "getting started" guide.
5174 Mon Mar 05 06:05:28 GMT 2012  Olly Betts <olly@survex.com>
5176         * tests/queryparsertest.cc: Fix curly double quote testcase.
5178 Mon Mar 05 00:36:33 GMT 2012  Olly Betts <olly@survex.com>
5180         * matcher/: Fix issue with AND, OR, and XOR queries against a database
5181           with no documents in it - this was causing a divide by zero, which led
5182           to MSet::get_matches_estimated() reporting 2147483648 on i386.
5183         * tests/api_backend.cc: Add regression test emptydb1.
5185 Sun Mar 04 23:05:17 GMT 2012  Olly Betts <olly@survex.com>
5187         * matcher/multimatch.cc: Fix comment typo.
5189 Fri Mar 02 04:00:19 GMT 2012  Olly Betts <olly@survex.com>
5191         * tests/harness/testsuite.cc: Address new warnings from GCC 4.6.
5193 Wed Feb 29 22:36:26 GMT 2012  Olly Betts <olly@survex.com>
5195         * include/xapian/database.h: Improve documentation of Database::close()
5196           and ~WritableDatabase().
5198 Thu Jan 26 03:49:24 GMT 2012  Olly Betts <olly@survex.com>
5200         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow
5201           Unicode curly double quote characters to start and/or end phrases.
5203 Sun Jan 22 13:28:30 GMT 2012  Olly Betts <olly@survex.com>
5205         * bin/xapian-delve.cc: Send errors to stderr not stdout.
5207 Sun Jan 22 13:16:21 GMT 2012  Olly Betts <olly@survex.com>
5209         * HACKING: Update details of versions of doxygen, automake and libtool
5210           used to bootstrap snapshots and releases.
5212 Fri Jan 20 21:35:38 GMT 2012  Olly Betts <olly@survex.com>
5214         * tests/Makefile.am: unittest needs getopt for non-glibc platforms.
5216 Fri Jan 20 21:33:59 GMT 2012  Olly Betts <olly@survex.com>
5218         * include/xapian/query.h: GCC 4.2.1 on Mac OS X seems to need a copy
5219           ctor for InvertedQuery_ - unclear why, but it's easy to add one.
5221 Wed Jan 18 13:13:07 GMT 2012  Olly Betts <olly@survex.com>
5223         * include/xapian/matchspy.h,include/xapian/postingsource.h,
5224           include/xapian/weight.h: Document that you can define a static
5225           operator delete method in your subclass if deallocation needs to be
5226           handled specially.  (Closes ticket#554)
5228 Wed Jan 18 12:27:20 GMT 2012  Olly Betts <olly@survex.com>
5230         * include/xapian/geospatial.h: Mark as experimental for now.
5232 Wed Jan 18 12:22:39 GMT 2012  Olly Betts <olly@survex.com>
5234         * docs/geospatial.rst: Say "haversine" rather than "Haversine"
5235           consistently.
5237 Wed Jan 18 12:01:28 GMT 2012  Olly Betts <olly@survex.com>
5239         * include/xapian/geospatial.h: Change empty() to return bool not
5240           size_t.
5242 Wed Jan 18 10:44:16 GMT 2012  Olly Betts <olly@survex.com>
5244         * docs/geospatial.rst: Fix minor typos in geospatial docs.
5246 Wed Jan 18 10:39:53 GMT 2012  Olly Betts <olly@survex.com>
5248         * Makefile.am,api/postingsource.cc,api/queryinternal.cc,
5249           api/registry.cc,common/output.h,common/registryinternal.h,
5250           docs/geospatial.rst,geospatial/,include/Makefile.mk,include/xapian.h,
5251           include/xapian/geospatial.h,include/xapian/postingsource.h,
5252           include/xapian/registry.h,tests/.gitignore,tests/Makefile.am,
5253           tests/api_geospatial.cc: Merge geotomerge2 branch from github.
5254           Closes ticket#481.
5256 Tue Jan 17 22:29:10 GMT 2012  Olly Betts <olly@survex.com>
5258         * api/errorhandler.cc: Reorder header includes.
5260 Mon Jan 16 22:59:02 GMT 2012  Olly Betts <olly@survex.com>
5262         * include/xapian/queryparser.h,queryparser/queryparser.lemony: Fix
5263           FLAG_AUTO_SYNONYMS not to enable auto multi-word synonyms too.
5264         * tests/queryparsertest.cc: Extend testcase qp_synonym1 to include a
5265           regression test for this bug.
5267 Sun Jan 15 12:41:35 GMT 2012  Olly Betts <olly@survex.com>
5269         * .gitignore,backends/Makefile.mk,backends/brass/,backends/chert/,
5270           backends/dbcheck.cc,bin/,common/bitstream.h,
5271           include/xapian/database.h: Add a (currently experimental) API for
5272           checking the integrity of databases (partly addresses ticket#238).
5273           This means we can remove XAPIAN_VISIBILITY_DEFAULT from a number of
5274           functions which aren't in the public API (partly addresses
5275           ticket#63).
5277 Fri Jan 13 12:07:39 GMT 2012  Olly Betts <olly@survex.com>
5279         * tests/stemtest.cc: Include <xapian.h> rather than <xapian/stem.h> -
5280           we're trying to test the public API, so including the public API
5281           header is better.
5283 Thu Jan 12 13:15:27 GMT 2012  Olly Betts <olly@survex.com>
5285         * tests/unittest.cc: Add new testcases simple_exceptions_work1 and
5286           class_exceptions_work1 which perform sanity tests of exception
5287           handling.
5288         * tests/internaltest.cc: Remove testcase test_except1 which is now
5289           redundant.
5291 Thu Jan 12 13:09:25 GMT 2012  Olly Betts <olly@survex.com>
5293         * common/str.cc: Special cases for 0 in tostring() templates aren't
5294           actually needed, but special casing single digit numbers may be
5295           worthwhile anyway, so change comments to FIXME ones about checking
5296           this.
5297         * tests/internaltest.cc: Test str() on unsigned 0, and some negative,
5298           signed positive, and unsigned positive single digits values.
5300 Wed Jan 11 13:03:54 GMT 2012  Olly Betts <olly@survex.com>
5302         * backends/multi/multi_alltermslist.h: Fix filename in @file.
5304 Wed Jan 11 12:53:44 GMT 2012  Olly Betts <olly@survex.com>
5306         * api/documentterm.h,api/maptermlist.h,api/omenquireinternal.h,
5307           backends/brass/,backends/chert/,backends/database.h,
5308           backends/document.h,backends/inmemory/inmemory_alltermslist.h,
5309           backends/inmemory/inmemory_database.h,
5310           backends/inmemory/inmemory_positionlist.h,
5311           backends/multi/multi_postlist.h,backends/multi/multi_termlist.h,
5312           backends/positionlist.h,backends/remote/net_termlist.h,
5313           backends/valuestats.h,common/,include/xapian/query.h,matcher/,
5314           queryparser/queryparser_internal.h,tests/harness/,
5315           tests/perftest/freemem.h,tests/perftest/runprocess.h: Convert
5316           comments at the start of files to @file and @brief doxygen comments.
5318 Wed Jan 11 11:36:55 GMT 2012  Olly Betts <olly@survex.com>
5320         * matcher/phrasepostlist.h: Remove lone "----START-LICENCE----" -
5321           the rest got removed ages ago.
5323 Wed Jan 11 11:23:04 GMT 2012  Olly Betts <olly@survex.com>
5325         * common/replicate_utils.h: Fix "@raises" to "@exception".
5327 Wed Jan 11 11:21:31 GMT 2012  Olly Betts <olly@survex.com>
5329         * matcher/multiandpostlist.h: Fix "@parameter" to "@param".
5331 Wed Jan 11 11:20:11 GMT 2012  Olly Betts <olly@survex.com>
5333         * common/debuglog.h: Fix "@msg" to "@a msg" in doxygen comment.
5335 Wed Jan 11 11:18:50 GMT 2012  Olly Betts <olly@survex.com>
5337         * matcher/multiandpostlist.h: Correct @exceptions to @exception.
5339 Wed Jan 11 10:48:05 GMT 2012  Olly Betts <olly@survex.com>
5341         * HACKING: We no longer have any uses of \ to introduce doxygen
5342           directives, so update HACKING to reflect that.
5344 Wed Jan 11 10:46:01 GMT 2012  Olly Betts <olly@survex.com>
5346         * api/omdatabase.cc: Change \todo to @todo.
5348 Wed Jan 11 10:09:29 GMT 2012  Olly Betts <olly@survex.com>
5350         * api/replication.h,api/valuesetmatchdecider.cc,
5351           common/output-internal.h,common/output.h,include/xapian/,
5352           tests/harness/testrunner.cc,tests/harness/testrunner.h,
5353           tests/perftest/perftest.cc,tests/perftest/perftest.h: Change the
5354           instances of \file and \brief in doxygen comments to @file and
5355           @brief.
5357 Wed Jan 11 10:08:19 GMT 2012  Olly Betts <olly@survex.com>
5359         * tests/internaltest.cc: Remove serialisedoc1 from the list of
5360           testcases to run too.
5362 Wed Jan 11 09:50:22 GMT 2012  Olly Betts <olly@survex.com>
5364         * matcher/multixorpostlist.h: Remove "using namespace std;" which we
5365           don't need here.
5367 Wed Jan 11 09:38:27 GMT 2012  Olly Betts <olly@survex.com>
5369         * common/filetests.h: Remove "using namespace std;" which we don't
5370           need here.
5372 Wed Jan 11 09:36:27 GMT 2012  Olly Betts <olly@survex.com>
5374         * common/filetests.h: Add documentation comments.
5376 Wed Jan 11 09:28:26 GMT 2012  Olly Betts <olly@survex.com>
5378         * tests/api_serialise.cc: Extend serialise_document1 to test
5379           serialising and unserialising an empty document, which is an
5380           interesting edge case.
5381         * tests/internaltest.cc: Remove testcase serialisedoc1, which
5382           now doesn't add useful additional coverage over serialise_document1.
5384 Wed Jan 11 08:29:04 GMT 2012  Olly Betts <olly@survex.com>
5386         * tests/internaltest.cc: Test document serialisation via the public
5387           API (which was added after the tests were).
5388         * net/serialise.h: Remove XAPIAN_VISIBILITY_DEFAULT from
5389           serialise_document() and unserialise_document().
5391 Wed Jan 11 05:57:14 GMT 2012  Olly Betts <olly@survex.com>
5393         * api/replication.cc,common/,tests/unittest.cc: Move removedir() from
5394           utils.{cc,h} to fileutils.{cc,h}, and remove the now empty
5395           utils.{cc,h}.
5397 Wed Jan 11 05:44:38 GMT 2012  Olly Betts <olly@survex.com>
5399         * tests/harness/unixcmds.cc: Check return values from system() calls
5400           and throw a std::string exception if non-zero.
5402 Wed Jan 11 05:20:30 GMT 2012  Olly Betts <olly@survex.com>
5404         * common/Makefile.mk,common/omassert.cc,common/omassert.h,
5405           common/utils.cc: Change the sense of the bool returned by
5406           within_DBL_EPSILON() to match what the name suggests instead of being
5407           the opposite, and change the use of it too.  Move
5408           within_DBL_EPSILON() implementation from utils.cc to new file
5409           omassert.cc, only compile it when assertions are on, and prototype it
5410           in omassert.h rather than utils.h.
5412 Wed Jan 11 05:09:39 GMT 2012  Olly Betts <olly@survex.com>
5414         * api/compactor.cc,api/replication.cc,backends/brass/,backends/chert/,
5415           backends/dbfactory.cc,common/utils.cc,common/utils.h,
5416           tests/api_backend.cc,tests/api_wrdb.cc,
5417           tests/harness/backendmanager.cc,tests/harness/unixcmds.cc: Remove
5418           std::string wrappers for C library functions from utils.h and just
5419           explicitly call c_str() when we need to.  These wrappers are
5420           problematic as they suppress warnings from _FORTIFY_SOURCE about
5421           ignored return values, and I can't see an easy way to avoid that.
5423 Wed Jan 11 03:35:35 GMT 2012  Olly Betts <olly@survex.com>
5425         * api/replication.cc,backends/brass/brass_databasereplicator.cc,
5426           backends/brass/brass_table.cc,
5427           backends/chert/chert_databasereplicator.cc,
5428           backends/chert/chert_table.cc,backends/databasereplicator.cc,
5429           backends/dbfactory.cc,common/utils.cc,common/utils.h: Use
5430           file_exists() and dir_exists() from common/filetests.h everywhere and
5431           remove the old versions in common/utils.h and common/utils.cc.
5433 Wed Jan 11 02:20:45 GMT 2012  Olly Betts <olly@survex.com>
5435         * common/utils.h: Remove XAPIAN_VISIBILITY_DEFAULT from old
5436           file_exists() and dir_exists().
5438 Wed Jan 11 02:19:58 GMT 2012  Olly Betts <olly@survex.com>
5440         * tests/api_compact.cc: Convert to use filetests.h.
5442 Wed Jan 11 02:14:07 GMT 2012  Olly Betts <olly@survex.com>
5444         * bin/xapian-check.cc,bin/xapian-inspect.cc: Convert to use
5445           filetests.h.
5447 Wed Jan 11 02:13:02 GMT 2012  Olly Betts <olly@survex.com>
5449         * common/filetests.h: Rename directory_exists() to dir_exists().
5451 Wed Jan 11 02:10:06 GMT 2012  Olly Betts <olly@survex.com>
5453         * common/Makefile.mk,common/filetests.h,tests/api_replicate.cc,
5454           tests/harness/backendmanager_multi.cc,tests/harness/testsuite.cc:
5455           Add new inline versions of file_exists() and directory_exists() and
5456           use these from the testsuite, as a step towards making these internal
5457           to the library.
5459 Tue Jan 10 23:37:36 GMT 2012  Olly Betts <olly@survex.com>
5461         * tests/api_serialise.cc: Change the rather odd "operator delete(p);"
5462           to the more natural "delete p;".
5464 Tue Jan 10 22:45:01 GMT 2012  Olly Betts <olly@survex.com>
5466         * tests/unittest.cc: Fix message typo in recent unittest change.
5468 Tue Jan 10 13:48:38 GMT 2012  Olly Betts <olly@survex.com>
5470         * common/safesysstat.h: The S_ISDIR and S_ISREG macros for MSVC are
5471           unlikely to work on other platforms (_S_IFMT vs S_IFMT, etc) so
5472           split them.  Tweak a few comments.
5474 Tue Jan 10 13:10:25 GMT 2012  Olly Betts <olly@survex.com>
5476         * net/: Split encode_length() and decode_length() out of
5477           serialise.{cc,h} into new file length.{cc,h}, and remove
5478           XAPIAN_VISIBILITY_DEFAULT from decode_length().
5479         * api/,backends/brass/brass_database.cc,
5480           backends/chert/chert_database.cc,backends/remote/net_postlist.cc,
5481           backends/remote/remote-database.cc,net/: Update headers which need
5482           to be included.
5483         * tests/internaltest.cc,tests/unittest.cc: Move serialiselength1 and
5484           serialiselength2 from internaltest to unittest.
5486 Mon Jan 09 02:16:22 GMT 2012  Olly Betts <olly@survex.com>
5488         * tests/api_compact.cc: Actually add test coverage for
5489           ByteLengthPrefixedStringItor - the previous attempt didn't cause
5490           merging of synonym lists to happen.
5492 Mon Jan 09 00:21:25 GMT 2012  Olly Betts <olly@survex.com>
5494         * tests/api_replicate.cc: Fix comment typo.
5496 Sun Jan 08 14:47:19 GMT 2012  Olly Betts <olly@survex.com>
5498         * tests/api_compact.cc: Add test coverage for
5499           ByteLengthPrefixedStringItor.
5501 Sun Jan 08 14:05:19 GMT 2012  Olly Betts <olly@survex.com>
5503         * common/fd.h,tests/api_db.cc,tests/harness/backendmanager.cc: Add
5504           missing explicit header includes, uncovered by compiling with
5505           STLport.
5507 Sat Jan 07 11:45:00 GMT 2012  Olly Betts <olly@survex.com>
5509         * INSTALL,configure.ac,m4/rjb_find_stlport.m4,xapian-config.in: Remove
5510           configure's --with-stlport and --with-stlport-compiler options, as
5511           they don't allow you to actually specify what you need (at least to
5512           use the Debian STLport package), and instead document what to pass
5513           to configure to enable building with STLport (though it seems to no
5514           longer be actively maintained, and the debug mode (which is probably
5515           the most interesting feature now) doesn't seem to work on Debian
5516           stable).
5518 Sat Jan 07 10:24:25 GMT 2012  Olly Betts <olly@survex.com>
5520         * HACKING: Update STLPort URL to point to the more active fork on
5521           SourceForge.
5523 Fri Jan 06 20:07:06 GMT 2012  Olly Betts <olly@survex.com>
5525         * tests/api_sorting.cc: Add check that NeverUseMeKeyMaker::operator()
5526           would actually cause a test failure if called.
5528 Fri Jan 06 20:01:27 GMT 2012  Olly Betts <olly@survex.com>
5530         * tests/api_stem.cc: Test get_description() on a user-implemented
5531           stemmer.
5533 Fri Jan 06 14:34:16 GMT 2012  Olly Betts <olly@survex.com>
5535         * tests/Makefile.am,tests/harness/,tests/queryparsertest.cc,
5536           tests/termgentest.cc,tests/unittest.cc: Make unittest use the test
5537           harness, so it gets all the valgrind and fd leak checks, and other
5538           handy features all the other tests have.  Currently this is done in
5539           a bit of a hacky way, but it's a starting point for abstracting out
5540           the Xapian-specific parts of the test harness.
5542 Fri Jan 06 08:42:26 GMT 2012  Olly Betts <olly@survex.com>
5544         * Makefile.am: Delete generated lcov directory before running genhtml.
5545           Pass --demangle-cpp and --html-gzip to genhtml.
5547 Fri Jan 06 08:14:05 GMT 2012  Olly Betts <olly@survex.com>
5549         * Makefile.am: Trim `pwd` off all paths in coverage report.
5551 Fri Jan 06 02:29:04 GMT 2012  Olly Betts <olly@survex.com>
5553         * common/pretty.h: Add support for AndContext and OrContext.
5555 Fri Jan 06 02:28:07 GMT 2012  Olly Betts <olly@survex.com>
5557         * common/pretty.h: Use XAPIAN_PRETTY_AS_CLASSNAME for classes in
5558           namespace Xapian::Internal too.
5560 Thu Jan 05 12:23:10 GMT 2012  Olly Betts <olly@survex.com>
5562         * tests/internaltest.cc,tests/unittest.cc: Move tests of
5563           serialise_double() and unserialise_double() from internaltest to
5564           unittest.
5565         * common/serialise-double.h: This means serialise_double() and
5566           unserialise_double() no longer need external visibility, so make
5567           them internal only.
5569 Thu Jan 05 12:08:15 GMT 2012  Olly Betts <olly@survex.com>
5571         * common/bitstream.h: BitWriter doesn't need public visibility.
5573 Thu Jan 05 10:53:23 GMT 2012  Olly Betts <olly@survex.com>
5575         * common/output-internal.h,common/pretty.h: Fix include paths for two
5576           cases which are only used in a logging build.
5578 Fri Dec 30 09:17:50 GMT 2011  Olly Betts <olly@survex.com>
5580         * tests/queryparsertest.cc: Update expected results (mostly because we
5581           no longer flatten groups of the same operator at Query construction
5582           time).
5584 Thu Dec 29 13:47:04 GMT 2011  Olly Betts <olly@survex.com>
5586         * api/Makefile.mk: Add missing backslash so various headers actually
5587           get shipped.
5589 Thu Dec 29 11:29:04 GMT 2011  Olly Betts <olly@survex.com>
5591         * include/xapian/query.h: Add fake templated ctor for SWIG.
5593 Thu Dec 29 00:23:25 GMT 2011  Olly Betts <olly@survex.com>
5595         * tests/api_scalability.cc: Add regression test querypairwise1 for
5596           ticket#273.
5598 Thu Dec 29 00:03:17 GMT 2011  Olly Betts <olly@survex.com>
5600         * api/,backends/remote/remote-database.cc,
5601           backends/remote/remote-database.h,docs/deprecation.rst,
5602           include/xapian/query.h,matcher/,net/remoteserver.cc,
5603           queryparser/queryparser.lemony,tests/,weight/weightinternal.h: Merge
5604           query-internal-reimplementation git branch which reimplements
5605           Query::Internal. (ticket#280).  These are the most notable changes:
5606           + Query objects are smaller and should be faster.
5607           + More readable format for Query::get_description().
5608           + More compact serialisation format for Query objects.
5609           + Query operators are no longer flattened as you build up a tree (but
5610             the query optimiser still combines groups of the same operator).
5611             This means that Query objects are truly immutable, and so we don't
5612             need to copy Query objects when composing them.  This should also
5613             fix a few O(n*n) cases when building up an n-way query pair-wise.
5614             (ticket#273)
5615           + The Query optimiser can do a few extra optimisations.
5617 Mon Dec 26 12:13:36 GMT 2011  Olly Betts <olly@survex.com>
5619         * include/xapian/queryparser.h,queryparser/queryparser.cc: Change
5620           QueryParser::set_default_op() to reject operators which don't make
5621           sense to set, and explicitly document all the operators which are
5622           allowed.
5623         * tests/queryparsertest.cc: Check that bad operators are rejected in
5624           existing testcase qp_default_op2.  Add new testcase qp_default_op3 to
5625           check that good operators can be set and work in a simple testcase.
5627 Mon Dec 26 09:12:09 GMT 2011  Olly Betts <olly@survex.com>
5629         * tests/harness/backendmanager_brass.h,
5630           tests/harness/backendmanager_chert.h: Remove superfluous "private:"
5631           access specifiers.
5633 Sat Dec 24 12:34:19 GMT 2011  Olly Betts <olly@survex.com>
5635         * HACKING: Recommend installing valgrind, ccache, and eatmydata.
5637 Sat Dec 24 12:28:44 GMT 2011  Olly Betts <olly@survex.com>
5639         * HACKING: Make it clear "Building from SVN" applies to git too, and
5640           mention that git-svn is needed when building from git.
5642 Thu Dec 22 11:18:17 GMT 2011  Olly Betts <olly@survex.com>
5644         * languages/compiler/generator.c: Initialise variable which can
5645           be used uninitialised.
5647 Thu Dec 22 03:14:02 GMT 2011  Olly Betts <olly@survex.com>
5649         * bin/Makefile.mk: Link $(libxapian_la) after libbrasscheck.la and
5650           libchertcheck.la to fix mingw build.  Probably closes ticket#567.
5652 Thu Dec 22 02:45:45 GMT 2011  Olly Betts <olly@survex.com>
5654         * include/xapian/query.h: Document that OP_ELITE_SET with non-term
5655           subqueries might pick subqueries which don't match anything.
5656           Closes ticket#49.
5658 Thu Dec 22 02:37:10 GMT 2011  Olly Betts <olly@survex.com>
5660         * include/xapian/query.h: Improve documentation of OP_ELITE_SET.
5662 Wed Dec 21 12:26:00 GMT 2011  Olly Betts <olly@survex.com>
5664         * api/errorhandler.cc: Rearrange code in ErrorHandler::operator() to
5665           be clearer.
5667 Wed Dec 21 11:23:28 GMT 2011  Olly Betts <olly@survex.com>
5669         * include/xapian/errorhandler.h: Fix typo: 'APU' -> 'API'.
5671 Wed Dec 21 09:57:32 GMT 2011  Olly Betts <olly@survex.com>
5673         * api/,backends/brass/brass_postlist.cc,
5674           backends/brass/brass_postlist.h,backends/chert/,
5675           backends/contiguousalldocspostlist.cc,
5676           backends/contiguousalldocspostlist.h,
5677           backends/inmemory/inmemory_database.cc,
5678           backends/inmemory/inmemory_database.h,
5679           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
5680           backends/remote/,docs/,expand/,include/xapian/,matcher/,
5681           net/remoteserver.cc,net/serialise.cc,tests/,weight/bm25weight.cc,
5682           weight/boolweight.cc,weight/tradweight.cc: Deprecate Xapian::weight
5683           typedef in favour of just using double, and make the replacement
5684           everywhere.  Closes ticket#560.
5686 Tue Dec 20 13:31:21 GMT 2011  Olly Betts <olly@survex.com>
5688         * net/remoteconnection.cc: Include "safesysstat.h" for fstat().
5690 Fri Dec 16 03:05:17 GMT 2011  Olly Betts <olly@survex.com>
5692         * backends/brass/brass_termlisttable.cc,
5693           backends/chert/chert_termlisttable.cc,
5694           backends/multi/multi_postlist.cc,net/replicatetcpclient.cc,
5695           net/serialise.cc,net/tcpserver.cc,tests/,
5696           tests/harness/backendmanager_remoteprog.cc,tests/queryparsertest.cc,
5697           tests/soaktest/soaktest_queries.cc,tests/termgentest.cc: Remove
5698           unnecessary includes on "utils.h".
5700 Fri Dec 16 02:57:49 GMT 2011  Olly Betts <olly@survex.com>
5702         * backends/brass/brass_btreebase.cc,backends/brass/brass_database.cc,
5703           backends/brass/brass_databasereplicator.cc,
5704           backends/chert/chert_btreebase.cc,backends/chert/chert_database.cc,
5705           backends/chert/chert_databasereplicator.cc,
5706           net/remoteconnection.cc,tests/api_replicate.cc: Replace uses of
5707           fdcloser class with new FD class.
5708         * common/utils.h: Remove fdcloser class.
5710 Fri Dec 16 00:56:45 GMT 2011  Olly Betts <olly@survex.com>
5712         * tests/api_replicate.cc: Use a const int rather than a #define for
5713           BUFSIZE.
5715 Fri Dec 16 00:50:57 GMT 2011  Olly Betts <olly@survex.com>
5717         * tests/api_replicate.cc: Avoid leaking fds on exceptions in
5718           truncated_copy().
5720 Fri Dec 16 00:42:11 GMT 2011  Olly Betts <olly@survex.com>
5722         * common/fd.h: Oops, fix to actually compile.
5724 Thu Dec 15 23:54:44 GMT 2011  Olly Betts <olly@survex.com>
5726         * common/Makefile.mk,common/fd.h: Add new FD class which wraps a file
5727           descriptor and ensures it gets released when we exit the scope.
5729 Thu Dec 15 22:44:16 GMT 2011  Olly Betts <olly@survex.com>
5731         * weight/Makefile: Add forwarding Makefile.
5733 Thu Dec 15 22:17:18 GMT 2011  Olly Betts <olly@survex.com>
5735         * weight/Makefile.mk: Ship dir_contents and Makefile.
5737 Tue Dec 13 10:33:21 GMT 2011  Olly Betts <olly@survex.com>
5739         * NEWS: Update from ChangeLog and branches/1.2.
5741 Fri Dec 09 10:33:25 GMT 2011  Olly Betts <olly@survex.com>
5743         * tests/soaktest/soaktest.cc,tests/soaktest/soaktest.h,
5744           tests/soaktest/soaktest_queries.cc: "boulton" -> "Boulton" in
5745           copyright statements.
5747 Fri Dec 09 10:31:18 GMT 2011  Olly Betts <olly@survex.com>
5749         * tests/soaktest/soaktest.cc: With Sun's compiler, random() and
5750           srandom() aren't in <cstdlib> so we need to use <stdlib.h> instead.
5752 Fri Dec 09 07:51:44 GMT 2011  Olly Betts <olly@survex.com>
5754         * include/xapian/types.h: Set BAD_VALUENO to 0xffffffff rather than
5755           static_cast<valueno>(-1) - it's the same value currently, but more
5756           robust to valueno being set a wider type.
5758 Fri Dec 09 07:49:07 GMT 2011  Olly Betts <olly@survex.com>
5760         * include/xapian/types.h: Explicitly document which value slot numbers
5761           are valid.  Fixes ticket#555.
5763 Sat Dec 03 09:32:55 GMT 2011  Olly Betts <olly@survex.com>
5765         * tests/api_opsynonym.cc: Fix typo in comment.
5767 Thu Dec 01 04:41:24 GMT 2011  Olly Betts <olly@survex.com>
5769         * include/xapian/database.h: Remove bogus paragraph in
5770           replace_document() documentation comment, cut and pasted from
5771           delete_document() documentation comment.  (Fixes bug#579)
5773 Tue Nov 08 01:50:25 GMT 2011  Olly Betts <olly@survex.com>
5775         * include/xapian/enquire.h: Add missing doxygen @param commands.
5777 Tue Nov 08 01:33:34 GMT 2011  Olly Betts <olly@survex.com>
5779         * include/xapian/database.h,include/xapian/document.h: Add missing
5780           doxygen @param commands.
5782 Mon Nov 07 10:31:04 GMT 2011  Olly Betts <olly@survex.com>
5784         * include/xapian/queryparser.h: Address doxygen warnings.
5786 Mon Nov 07 02:40:50 GMT 2011  Olly Betts <olly@survex.com>
5788         * include/xapian/postingsource.h: Document undocumented parameters,
5789           fixing doxygen warnings.
5790         * include/xapian/queryparser.h: Escape < and > in doxygen comments.
5792 Mon Nov 07 02:38:18 GMT 2011  Olly Betts <olly@survex.com>
5794         * include/xapian/enquire.h: Enquire::get_eset() doesn't take a min_wt
5795           parameter, so remove @param documentation for it.
5797 Mon Nov 07 01:59:54 GMT 2011  Olly Betts <olly@survex.com>
5799         * include/xapian/: Document lots of parameters, fixing doxygen
5800           warnings.
5802 Sun Nov 06 22:05:09 GMT 2011  Olly Betts <olly@survex.com>
5804         * generate-exceptions: Document all parameters to fix doxygen
5805           warnings.
5807 Sun Nov 06 22:03:50 GMT 2011  Olly Betts <olly@survex.com>
5809         * include/xapian/: Fix doxygen warnings.
5811 Sun Nov 06 21:00:08 GMT 2011  Olly Betts <olly@survex.com>
5813         * include/xapian/queryparser.h: Document value parameter of
5814           sortable_serialise() and sortable_unserialise().
5816 Sun Nov 06 17:53:31 GMT 2011  Olly Betts <olly@survex.com>
5818         * include/xapian/document.h: Improve Document get_data() and set_data()
5819           documentation comments.
5821 Sun Nov 06 17:14:39 GMT 2011  Olly Betts <olly@survex.com>
5823         * tests/Makefile.am: Add -I$(top_srcdir) so api/replication.h is found
5824           in a VPATH build.
5826 Sun Nov 06 16:06:52 GMT 2011  Olly Betts <olly@survex.com>
5828         * api/,backends/database.h,backends/document.h,
5829           backends/multi/multi_alltermslist.h,backends/positionlist.h,common/,
5830           tests/harness/: More more headers out of common.
5832 Sun Nov 06 14:55:25 GMT 2011  Olly Betts <olly@survex.com>
5834         * api/maptermlist.h,backends/inmemory/Makefile.mk,
5835           backends/inmemory/inmemory_positionlist.h,
5836           backends/remote/Makefile.mk,backends/remote/remote-database.cc,
5837           backends/remote/remote-database.h,common/Makefile.mk,
5838           common/inmemory_positionlist.h,common/remote-database.h,
5839           matcher/multimatch.cc,matcher/remotesubmatch.cc,
5840           matcher/remotesubmatch.h,net/progclient.h,net/remotetcpclient.h:
5841           Move two more headers out of common.
5843 Sun Nov 06 11:56:46 GMT 2011  Olly Betts <olly@survex.com>
5845         * tests/internaltest.cc: Fix for VPATH build.
5847 Sun Nov 06 11:26:18 GMT 2011  Olly Betts <olly@survex.com>
5849         * common/,tests/api_replicate.cc: Factor internal classes out of
5850           output.h into new output-internal.h to fix build failures in VPATH
5851           due to move of weightinternal.h out of common (since the test harness
5852           uses output.h).
5854 Sun Nov 06 00:49:45 GMT 2011  Olly Betts <olly@survex.com>
5856         * api/,backends/brass/,backends/chert/,backends/dbfactory_remote.cc,
5857           backends/inmemory/inmemory_database.cc,
5858           backends/multi/multi_termlist.cc,backends/remote/net_postlist.cc,
5859           backends/remote/net_termlist.h,backends/remote/remote-database.cc,
5860           bin/,common/,expand/,matcher/,net/,tests/internaltest.cc,
5861           weight/Makefile.mk,weight/weightinternal.h: Move even more headers
5862           out of common and next to their corresponding C++ file.
5864 Sat Nov 05 23:55:55 GMT 2011  Olly Betts <olly@survex.com>
5866         * api/replication.cc,backends/Makefile.mk,
5867           backends/brass/brass_databasereplicator.h,
5868           backends/chert/chert_databasereplicator.h,
5869           backends/databasereplicator.h,common/Makefile.mk,
5870           common/databasereplicator.h: Move databasereplicator.h from common to
5871           backends.
5873 Sat Nov 05 23:51:40 GMT 2011  Olly Betts <olly@survex.com>
5875         * backends/Makefile.mk: Fix sort order of noinst_HEADERS.
5877 Sat Nov 05 23:50:33 GMT 2011  Olly Betts <olly@survex.com>
5879         * api/documentvaluelist.h,api/omdatabase.cc,api/valueiterator.cc,
5880           backends/Makefile.mk,backends/brass/,backends/chert/,
5881           backends/inmemory/inmemory_database.cc,
5882           backends/multi/multi_valuelist.cc,backends/multivaluelist.h,
5883           backends/valuelist.h,backends/valuestats.h,bin/xapian-check-brass.cc,
5884           bin/xapian-check-chert.cc,common/,matcher/valuerangepostlist.h,
5885           matcher/valuestreamdocument.h: Move multivaluelist.h, valuelist.h and
5886           valuestats.h from common to backends.
5888 Sat Nov 05 23:40:49 GMT 2011  Olly Betts <olly@survex.com>
5890         * api/,backends/brass/brass_postlist.h,backends/chert/chert_postlist.h,
5891           backends/contiguousalldocspostlist.h,backends/database.cc,
5892           backends/inmemory/inmemory_database.h,
5893           backends/multi/multi_postlist.h,backends/remote/net_postlist.h,
5894           backends/remote/remote-database.cc,common/,matcher/: Move
5895           emptypostlist.h, leafpostlist.h and postlist.h from common to api.
5897 Sat Nov 05 23:31:14 GMT 2011  Olly Betts <olly@survex.com>
5899         * backends/Makefile.mk,backends/brass/brass_database.cc,
5900           backends/chert/chert_database.cc,
5901           backends/contiguousalldocspostlist.h,common/Makefile.mk,
5902           common/contiguousalldocspostlist.h: Move contiguousalldocspostlist.h
5903           from common to backends.
5905 Sat Nov 05 23:28:49 GMT 2011  Olly Betts <olly@survex.com>
5907         * api/omdatabase.cc,backends/Makefile.mk,backends/alltermslist.h,
5908           backends/brass/,backends/chert/,
5909           backends/inmemory/inmemory_alltermslist.h,common/Makefile.mk,
5910           common/alltermslist.h,common/multialltermslist.h: Move alltermslist.h
5911           from common to backends.
5913 Sat Nov 05 23:20:05 GMT 2011  Olly Betts <olly@survex.com>
5915         * common/safesysselect.h: Fix typo (FDSET -> FD_SET).
5917 Sat Nov 05 23:12:09 GMT 2011  Olly Betts <olly@survex.com>
5919         * common/safesysselect.h: Enhance to provide portability for __WIN32__
5920           too.
5921         * net/remoteconnection.cc,net/tcpclient.cc: Update to make use of this.
5923 Sat Nov 05 22:39:51 GMT 2011  Olly Betts <olly@survex.com>
5925         * common/safesysselect.h: Add wrapper around FD_SET() under __WIN32__
5926           which casts the fd parameter to unsigned to avoid a warning on mingw.
5927         * net/tcpclient.cc: Remove __WIN32__-specific case here which was
5928           working around this warning.
5930 Sat Nov 05 21:58:12 GMT 2011  Olly Betts <olly@survex.com>
5932         * bin/.gitignore,bin/Makefile.mk,bin/xapian-delve.cc,
5933           docs/admin_notes.rst,examples/,xapian-core.spec.in: Move delve from
5934           examples to bin and rename to xapian-delve.
5936 Sat Nov 05 15:18:37 GMT 2011  Olly Betts <olly@survex.com>
5938         * docs/overview.rst: Fix a few things which were out of date and
5939           improve wording in various places.
5941 Sat Nov 05 12:07:14 GMT 2011  Olly Betts <olly@survex.com>
5943         * docs/quickstart.rst: Fix some factual errors, and tweak .rst
5944           source layout a little (":\n::\n" -> "::\n").
5946 Thu Nov 03 20:53:49 GMT 2011  Richard Boulton <richard@tartarus.org>
5948         * common/msvc_posix_wrapper.cc,common/safe.cc,net/tcpclient.cc:
5949           Some fixes for warnings when cross-compiling with mingw; missing
5950           includes to get declarations of functions in windows support
5951           code, and change to use the windows SOCKET type to avoid a
5952           signed/unsigned comparison warning in tcpclient.
5954 Sun Oct 30 23:31:09 GMT 2011  Olly Betts <olly@survex.com>
5956         * NEWS: Update from ChangeLog.
5958 Sun Oct 30 13:16:12 GMT 2011  Olly Betts <olly@survex.com>
5960         * include/xapian/queryparser.h: List which flags FLAG_DEFAULT includes
5961           in the doxygen documentation comments.
5963 Sat Oct 29 14:47:04 GMT 2011  Olly Betts <olly@survex.com>
5965         * include/xapian/enquire.h: Add note to API docs to discourage use
5966           of percentage scores.
5968 Sat Oct 29 14:40:39 GMT 2011  Olly Betts <olly@survex.com>
5970         * docs/quickstart.rst,docs/quickstartexpand.cc.html,
5971           docs/quickstartsearch.cc.html,examples/quest.cc,
5972           examples/simpleexpand.cc,examples/simplesearch.cc: Use get_weight()
5973           instead of get_percent() in examples, since percentages are rather
5974           old fashioned and you probably don't want to use them in new
5975           applications.
5977 Sat Oct 29 13:29:37 GMT 2011  Olly Betts <olly@survex.com>
5979         * api/omenquire.cc,common/omenquireinternal.h,docs/deprecation.rst,
5980           include/xapian/enquire.h,include/xapian/types.h,tests/api_anydb.cc:
5981           Deprecate Xapian::percent and use int instead in the API and our
5982           own code.
5984 Sat Oct 29 12:30:05 GMT 2011  Olly Betts <olly@survex.com>
5986         * docs/quickstart.rst: Fix indentation of example code.
5988 Sat Oct 29 10:04:24 GMT 2011  Olly Betts <olly@survex.com>
5990         * docs/overview.rst: Fix typo in example code.
5992 Fri Oct 28 14:39:09 GMT 2011  Olly Betts <olly@survex.com>
5994         * include/xapian/database.h: Note that commit() was new in 1.1.0.
5996 Fri Oct 14 12:38:45 GMT 2011  Olly Betts <olly@survex.com>
5998         * common/realtime.h: Use safesysselect.h.
6000 Mon Oct 03 00:53:13 GMT 2011  Olly Betts <olly@survex.com>
6002         * queryparser/lemon.c: Incorporate changes from latest upstream
6003           version.  I'm failing to follow branch structure upstream to work
6004           out which changesets to merge so it's simpler to just compare the
6005           latest version with what we currently have.
6007 Sun Oct 02 23:31:52 GMT 2011  Olly Betts <olly@survex.com>
6009         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/d8bab8cf0b:
6010           'Added %expect directive, to consider a certain number of conflicts
6011           "correct." This has the side effect of changing the process exit
6012           code to never overflow.'
6014 Sun Oct 02 23:26:34 GMT 2011  Olly Betts <olly@survex.com>
6016         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/e6cbe1e5ee:
6017           "Added -T option, to specify a template filename on the command
6018           line.  The default is still "lempar.c", though."  Not currently
6019           useful to us, but trying to minimise differences with upstream
6020           lemon.
6022 Sun Oct 02 23:14:32 GMT 2011  Olly Betts <olly@survex.com>
6024         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/e22c090f35:
6025           "Another attempt at fixing the table generator in lemon. Again, this
6026           does not effect the SQLite grammar."  No change to generated grammar
6027           for QueryParser.
6029 Sun Oct 02 22:59:28 GMT 2011  Olly Betts <olly@survex.com>
6031         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/077a6bee2d:
6032           "Fix an issue with lemon generating incorrect grammars. This issue
6033           does not effect SQLite."  This means we now get the same tables
6034           generated as before the previous change.
6036 Sun Oct 02 22:25:54 GMT 2011  Olly Betts <olly@survex.com>
6038         * queryparser/lemon.c,queryparser/queryparser.lt: Merge
6039           http://www.sqlite.org/src/info/27d8e684db: Enhancements to lemon to
6040           generate more compact action tables and to avoid making array bounds
6041           tests that can never fail on action table calculations.  This
6042           reduces the size of QueryParser's tables a little.
6044 Sun Oct 02 21:47:36 GMT 2011  Olly Betts <olly@survex.com>
6046         * queryparser/lemon.c: Merge http://www.sqlite.org/src/info/d66a0f31eb:
6047           Adjust the lemon implementation so that it always computes the same
6048           PDA regardless of qsort() implementation on the host platform. In
6049           other words, make all sorts in lemon stable.
6051 Thu Sep 29 12:11:28 GMT 2011  Olly Betts <olly@survex.com>
6053         * tests/queryparsertest.cc: Add cases to ensure a quoted boolean
6054           prefix accepts an empty value or a single space.
6056 Wed Sep 14 04:48:57 GMT 2011  Olly Betts <olly@survex.com>
6058         * docs/quickstart.rst: Correct link which was to
6059           quickstartsearch.cc.html but should be to quickstartindex.cc.html.
6061 Tue Sep 13 08:51:34 GMT 2011  Olly Betts <olly@survex.com>
6063         * backends/flint_lock.cc: Fix comment typo.
6065 Thu Sep 01 12:50:43 GMT 2011  Olly Betts <olly@survex.com>
6067         * include/xapian/enquire.h: Clarify "sort by date" with BoolWeight
6068           example.
6070 Tue Aug 30 13:51:48 GMT 2011  Olly Betts <olly@survex.com>
6072         * docs/index.rst: Add link to apidoc.pdf.
6074 Wed Aug 24 14:12:05 GMT 2011  Olly Betts <olly@survex.com>
6076         * queryparser/queryparser.lemony: Fix memory leak (caught by existing
6077           testcase queryparser1 when run under valgrind).
6079 Wed Aug 24 12:47:49 GMT 2011  Olly Betts <olly@survex.com>
6081         * queryparser/,tests/queryparsertest.cc,tests/termgentest.cc: Add
6082           support for indexing and searching CJK text using n-grams.  Currently
6083           this is only enabled if environmental variable XAPIAN_CJK_NGRAM is
6084           set to a non-empty value.
6086 Tue Aug 23 03:49:27 GMT 2011  Olly Betts <olly@survex.com>
6088         * api/vectortermlist.cc,api/vectortermlist.h: Change so that p == NULL
6089           represents at_end, and p == data.data() means we've yet to start.
6091 Mon Aug 22 15:30:51 GMT 2011  Olly Betts <olly@survex.com>
6093         * api/vectortermlist.cc: Add new source file missed from last commit.
6095 Mon Aug 22 14:32:50 GMT 2011  Olly Betts <olly@survex.com>
6097         * api/,backends/brass/brass_synonym.cc,backends/chert/chert_synonym.cc,
6098           common/Makefile.mk,common/vectortermlist.h,
6099           queryparser/queryparser.cc: Reimplement VectorTermList to store the
6100           list of terms encoded into a single std::string, which is a lot more
6101           memory efficient that std::vector<std::string>.
6103 Mon Aug 22 12:22:49 GMT 2011  Olly Betts <olly@survex.com>
6105         * common/Makefile.mk,common/const_database_wrapper.cc,
6106           common/const_database_wrapper.h,matcher/Makefile.mk,
6107           matcher/const_database_wrapper.cc,matcher/const_database_wrapper.h:
6108           Move const_database_wrapper.h and const_database_wrapper.cc from
6109           common/ to matcher/.
6111 Sun Aug 21 12:43:38 GMT 2011  Olly Betts <olly@survex.com>
6113         * Makefile.am: Since we require GNU find for the coverage-check target,
6114           make use of its -delete option, so we no longer also need GNU xargs.
6116 Thu Aug 18 06:28:11 GMT 2011  Olly Betts <olly@survex.com>
6118         * queryparser/queryparser.lemony: Reorder header includes to be more
6119           standard.
6121 Thu Aug 18 01:06:00 GMT 2011  Olly Betts <olly@survex.com>
6123         * queryparser/queryparser.lemony: <cstring> not <string.h>.
6125 Tue Aug 16 04:56:20 GMT 2011  Olly Betts <olly@survex.com>
6127         * bin/xapian-check.cc: Throw Xapian::FeatureUnavailableError if
6128           backends are disabled, rather than const char *.
6130 Tue Aug 16 04:49:05 GMT 2011  Olly Betts <olly@survex.com>
6132         * backends/brass/brass_check.cc,backends/brass/brass_check.h,
6133           backends/chert/chert_check.cc,backends/chert/chert_check.h,
6134           bin/xapian-check.cc: Instead of giving cryptic numeric codes for
6135           B-tree errors and then throwing const char *, throw
6136           Xapian::DatabaseError() exceptions with string descriptions.
6138 Fri Aug 12 23:11:51 GMT 2011  Olly Betts <olly@survex.com>
6140         * NEWS: Update from 1.2.7 and ChangeLog.
6142 Fri Aug 12 06:38:45 GMT 2011  Olly Betts <olly@survex.com>
6144         * backends/remote/remote-database.cc: Factor out throw_bad_message().
6146 Fri Aug 12 06:22:14 GMT 2011  Olly Betts <olly@survex.com>
6148         * net/remoteconnection.cc: Factor out throw_database_closed().
6150 Fri Aug 12 06:17:43 GMT 2011  Olly Betts <olly@survex.com>
6152         * net/remoteserver.cc: Factor out throw_read_only() function.
6154 Fri Aug 12 06:17:01 GMT 2011  Olly Betts <olly@survex.com>
6156         * common/noreturn.h: Add comment showing how to use XAPIAN_NORETURN
6157           macro.
6159 Sat Aug 06 05:15:53 GMT 2011  Olly Betts <olly@survex.com>
6161         * api/positioniterator.cc,api/postingsource.cc,api/valueiterator.cc,
6162           common/serialise.h,include/xapian/positioniterator.h,
6163           include/xapian/postingsource.h: Fix new warnings from -Wshadow with
6164           GCC 4.6.  These warnings are when a variable name "shadows" a
6165           typename, which doesn't seem problematic in general, but the only
6166           alternative seems to be to disable -Wshadow entirely, and it is
6167           useful in other cases.
6169 Thu Aug 04 07:57:09 GMT 2011  Olly Betts <olly@survex.com>
6171         * backends/dbfactory_remote.cc,docs/deprecation.rst,
6172           include/xapian/dbfactory.h,include/xapian/types.h: Deprecate
6173           Xapian::timeout in favour of POSIX type useconds_t.
6175 Thu Aug 04 04:04:45 GMT 2011  Olly Betts <olly@survex.com>
6177         * include/xapian/termgenerator.h,
6178           queryparser/termgenerator_internal.cc: Rename weight parameter to
6179           wdf_inc, which much better describes what it does, and avoids a
6180           -Wshadow warning with GCC 4.6.
6182 Thu Aug 04 04:03:37 GMT 2011  Olly Betts <olly@survex.com>
6184         * api/registry.cc: Rename weight variable to weighting_scheme to avoid
6185           -Wshadow warning.
6187 Wed Aug 03 23:13:36 GMT 2011  Olly Betts <olly@survex.com>
6189         * configure.ac: -Wshadow gives bogus warnings with 4.0 (at least on Mac
6190           OS X), so disable it for GCC < 4.1 (like the comments suggest we
6191           already did!)
6193 Wed Aug 03 22:53:55 GMT 2011  Olly Betts <olly@survex.com>
6195         * configure.ac: Enable -fshow-column for GCC - things like vim's
6196           quickfix mode will then jump to the appropriate column for a
6197           compiler error or warning, not just the appropriate line.
6199 Wed Aug 03 22:13:26 GMT 2011  Olly Betts <olly@survex.com>
6201         * api/omdocument.cc,backends/brass/brass_database.cc,
6202           backends/chert/chert_database.cc,common/document.h: Document objects
6203           now track if term positions might have been modified, so we can avoid
6204           having to consider them at all if you take a document and add or
6205           remove a boolean filter term.  This gives an 18% speedup for adding
6206           tags in notmuch.
6208 Mon Aug 01 15:15:17 GMT 2011  Olly Betts <olly@survex.com>
6210         * api/Makefile.mk,api/ompostlistiterator.cc,api/postingiterator.cc,
6211           include/xapian/postingiterator.h,tests/api_db.cc: Redo
6212           PostingIterator based on TermIterator with efficient end iterator
6213           checks.
6215 Mon Aug 01 13:34:44 GMT 2011  Olly Betts <olly@survex.com>
6217         * api/,backends/brass/brass_database.cc,
6218           backends/chert/chert_database.cc,
6219           backends/inmemory/inmemory_database.cc,common/positionlist.h,
6220           examples/delve.cc,include/xapian/positioniterator.h,
6221           include/xapian/termiterator.h,include/xapian/valueiterator.h: Take
6222           the old SVN end-iterator-proxies branch and rework the TermIterator
6223           and PositionIterator reimplementations there to use the same
6224           approach as ValueIterator now uses.
6226 Sun Jul 31 15:24:55 GMT 2011  Olly Betts <olly@survex.com>
6228         * include/xapian/valueiterator.h: Fix comment typo.
6230 Sun Jul 31 14:45:46 GMT 2011  Olly Betts <olly@survex.com>
6232         * api/omenquire.cc,tests/api_anydb.cc: Previously,
6233           Enquire::get_matching_terms_begin() threw InvalidArgumentError if
6234           the query was empty.  Now we just return an end iterator, which is
6235           more consistent with how empty queries behave elsewhere.
6237 Sun Jul 31 13:44:06 GMT 2011  Olly Betts <olly@survex.com>
6239         * api/valueiterator.cc,include/xapian/valueiterator.h: Rename private
6240           ValueIterator::deref() method to decref() (since dereference has
6241           another meaning to the intended "remove a reference").
6243 Sun Jul 31 11:27:33 GMT 2011  Olly Betts <olly@survex.com>
6245         * api/valueiterator.cc,include/xapian/database.h,
6246           include/xapian/document.h,include/xapian/valueiterator.h: Don't use
6247           intrusive_ptr to reference count ValueIterator internals, but
6248           instead update the reference count in hand-written code.  This is
6249           less good in itself, but it means we can inline ValueIterator's
6250           default constructor and its destructor in the case where the
6251           internal is NULL, which should mean a comparison with the end
6252           iterator optimises to a NULL pointer check but without needing
6253           the ValueIteratorEnd_ class, which doesn't work as ValueIterator()
6254           would in templates or some cases of overload resolution.
6256 Sat Jul 30 12:07:52 GMT 2011  Olly Betts <olly@survex.com>
6258         * docs/doxygen_api.conf.in: Don't generate XML from doxygen for the
6259           bindings - the bindings now do this for themselves.  (ticket#262)
6261 Fri Jul 29 01:33:37 GMT 2011  Olly Betts <olly@survex.com>
6263         * include/xapian/enquire.h: Just forward declare "class KeyMaker"
6264           rather than including <xapian/keymaker.h>.
6266 Fri Jul 29 01:28:08 GMT 2011  Olly Betts <olly@survex.com>
6268         * api/omdatabase.cc,backends/slowvaluelist.cc,
6269           include/xapian/database.h,matcher/valuestreamdocument.cc: Change
6270           Database::get_document_lazily_() to return void* so we don't need
6271           to include xapian/document.h from xapian/database.h just to get
6272           Document::Internal declared.  This doesn't affect user code, but
6273           reduces the number of files which need to be rebuilt in the library
6274           when xapian/document.h changes.
6276 Wed Jul 27 05:59:32 GMT 2011  Olly Betts <olly@survex.com>
6278         * include/xapian/matchspy.h: Remove unnecessary header includes.
6280 Wed Jul 27 02:11:08 GMT 2011  Olly Betts <olly@survex.com>
6282         * docs/index.rst: Add links to Omega and bindings docs.
6284 Tue Jul 26 05:36:50 GMT 2011  Olly Betts <olly@survex.com>
6286         * docs/deprecation.rst: Add Omega's OLDP CGI parameter.
6288 Fri Jul 22 15:37:48 GMT 2011  Olly Betts <olly@survex.com>
6290         * include/xapian/queryparser.h: Reword documentation of
6291           add_boolean_prefix()'s exclusive parameter to talk about terms and
6292           prefixes rather than values and fields (which was confusing since
6293           "document value" has a particular meaning in Xapian).
6295 Thu Jul 21 03:37:49 GMT 2011  Olly Betts <olly@survex.com>
6297         * matcher/mergepostlist.cc: Another debug logging fix.
6299 Thu Jul 21 03:16:39 GMT 2011  Olly Betts <olly@survex.com>
6301         * api/omenquire.cc,api/ompostlistiterator.cc,
6302           backends/brass/brass_database.cc,
6303           backends/brass/brass_positionlist.cc,
6304           backends/brass/brass_postlist.cc,backends/chert/chert_database.cc,
6305           backends/chert/chert_positionlist.cc,
6306           backends/chert/chert_postlist.cc: More debug logging fixes.
6308 Thu Jul 21 02:55:00 GMT 2011  Olly Betts <olly@survex.com>
6310         * api/omdatabase.cc,api/omenquire.cc,api/replication.cc,
6311           backends/brass/brass_alldocspostlist.cc,
6312           backends/brass/brass_database.cc,
6313           backends/brass/brass_spellingwordslist.cc,backends/chert/,
6314           matcher/mergepostlist.cc,matcher/msetpostlist.cc,
6315           matcher/synonympostlist.cc: Fix various incorrect LOGCALL lines.
6317 Thu Jul 21 02:12:25 GMT 2011  Olly Betts <olly@survex.com>
6319         * backends/brass/brass_postlist.cc,backends/chert/chert_postlist.cc,
6320           common/documentterm.h,net/progclient.cc: Fix uses of LOGCALL_VOID
6321           which should be LOGCALL_CTOR.
6323 Wed Jul 20 07:00:48 GMT 2011  Olly Betts <olly@survex.com>
6325         * tests/api_matchspy.cc: Remove checks for remote dbtype in matchspy2
6326           and matchspy4 testcases - these were checking for values which would
6327           never match, and the testcases should and do work with remote
6328           backends.
6330 Wed Jul 20 01:19:46 GMT 2011  Olly Betts <olly@survex.com>
6332         * docs/facets.rst: Minor clarification.
6334 Wed Jul 20 00:22:38 GMT 2011  Olly Betts <olly@survex.com>
6336         * bin/xapian-check.cc: Document in --help that checking a whole
6337           database performs additional cross-checks between the tables.
6339 Tue Jul 19 18:29:51 GMT 2011  Richard Boulton <richard@tartarus.org>
6341         * docs/facets.rst: Expand descriptions for indexing and finding
6342           facets to hopefully be more helpful to newcomers.
6344 Tue Jul 19 17:52:25 GMT 2011  Richard Boulton <richard@tartarus.org>
6346         * docs/facets.rst: Fix example calls to add_matchspy() to be passed
6347           pointers, and example call to get_termfreq().
6349 Sat Jul 16 10:54:39 GMT 2011  Olly Betts <olly@survex.com>
6351         * tests/collate-test: Now understand use of "#if 0" to disable
6352           testcases.
6353         * tests/api_db.cc: Remove comment in front of
6354           "DEFINE_TESTCASE(multierrhandler1, [...]" which is no longer needed.
6356 Wed Jul 13 15:07:27 GMT 2011  Olly Betts <olly@survex.com>
6358         * include/xapian/database.h: Improve the documentation comment for
6359           Database::close().  (ticket#504)
6361 Sat Jul 09 14:00:08 GMT 2011  Olly Betts <olly@survex.com>
6363         * include/xapian/stem.h,languages/stem.cc: Stem::operator= now returns
6364           a reference to the assigned-to object.
6366 Sat Jul 09 07:08:03 GMT 2011  Olly Betts <olly@survex.com>
6368         * languages/compiler/analyser.c: Change reporting of line number for
6369           repeated string in among to use "FILE:LINE:" prefix.
6371 Sat Jul 09 01:04:18 GMT 2011  Olly Betts <olly@survex.com>
6373         * common/pretty.h: Don't dereference a NULL pointer.
6375 Fri Jul 08 14:28:42 GMT 2011  Olly Betts <olly@survex.com>
6377         * common/output.h,common/pretty.h: Fix invalid templates in pretty.h.
6379 Fri Jul 08 12:55:19 GMT 2011  Olly Betts <olly@survex.com>
6381         * common/pretty.h: Fix template for pretty printing a std::list.
6383 Thu Jul 07 10:40:53 GMT 2011  Olly Betts <olly@survex.com>
6385         * api/omenquire.cc: Add assertions that the index is in range when
6386           dereferencing MSetIterator and ESetIterator.
6388 Wed Jul 06 08:20:56 GMT 2011  Olly Betts <olly@survex.com>
6390         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Trust
6391           new to throw std::bad_alloc rather than returning NULL.
6393 Wed Jul 06 05:50:38 GMT 2011  Olly Betts <olly@survex.com>
6395         * tests/internaltest.cc: Remove testcase serialisequery1.
6396         * tests/api_serialise.cc: Extend serialise_query1 to cover equivalent
6397           cases via the API.
6399 Tue Jul 05 01:20:59 GMT 2011  Olly Betts <olly@survex.com>
6401         * common/debuglog.h: Add QUERY category for debug logging.
6403 Fri Jul 01 04:55:02 GMT 2011  Olly Betts <olly@survex.com>
6405         * common/unordered_map.h: Add my <unordered_map> portability wrapper
6406           which was used by the JNI java bindings.  It's not currently used
6407           here, but is likely to be useful (two of the GSoC projects are
6408           using unordered_map).
6410 Wed Jun 29 12:16:59 GMT 2011  Richard Boulton <richard@tartarus.org>
6412         * languages/compiler/tokeniser.c: Fix memory leak (of file name) in
6413           snowball compiler introduced by last commit.
6415 Wed Jun 29 07:49:36 GMT 2011  Olly Betts <olly@survex.com>
6417         * languages/compiler/: Report "FILE:LINE:" before each error so tools
6418           like vim's quickfix mode can parse this and bring up the line with
6419           the error automatically.
6421 Wed Jun 29 07:49:10 GMT 2011  Olly Betts <olly@survex.com>
6423         * languages/compiler/header.h: Add comments to note that struct input
6424           must be a prefix of struct tokeniser.
6426 Wed Jun 29 07:47:30 GMT 2011  Olly Betts <olly@survex.com>
6428         * languages/basque.sbl: Use stringdef instead of literal accented
6429           characters in the code.
6431 Wed Jun 29 07:13:30 GMT 2011  Olly Betts <olly@survex.com>
6433         * docs/stemming.rst,include/xapian/stem.h,languages/: Add stemmers
6434           for Armenian (hy), Basque (eu), and Catalan (ca).
6436 Mon Jun 27 08:16:55 GMT 2011  Olly Betts <olly@survex.com>
6438         * include/xapian/query.h: Add a fake specialised form of the templated
6439           ctor for SWIG.
6441 Sat Jun 25 11:27:00 GMT 2011  Olly Betts <olly@survex.com>
6443         * include/xapian/enquire.h: Fix doc comment typo which reversed the
6444           intended sense.
6446 Sat Jun 25 06:20:34 GMT 2011  Olly Betts <olly@survex.com>
6448         * api/omenquire.cc,common/omenquireinternal.h: Remove unused method
6449           Enquire::Internal::register_match_decider().
6451 Sat Jun 25 06:05:22 GMT 2011  Olly Betts <olly@survex.com>
6453         * include/xapian/enquire.h: MSet(MSet::Internal *) -> MSet(Internal *)
6454           for consistency with other classes.
6456 Fri Jun 24 16:15:00 GMT 2011  Olly Betts <olly@survex.com>
6458         * api/omdatabase.cc,backends/slowvaluelist.cc,
6459           include/xapian/database.h,matcher/valuestreamdocument.cc: Rename
6460           Database::get_document_lazily() to get_document_lazily_() to conform
6461           to our convention for naming methods for internal use which have
6462           "public" visibility.
6464 Wed Jun 22 23:51:15 GMT 2011  Richard Boulton <richard@tartarus.org>
6466         * configure.ac: Correct tiny typo in error message when zlib isn't
6467           found.
6469 Tue Jun 21 04:08:29 GMT 2011  Olly Betts <olly@survex.com>
6471         * common/autoptr.h: Update comment about why we have this file.  It's
6472           no longer a concern that we might need our own AutoPtr implementation
6473           but we are likely to want to be able to migrate to unique_ptr easily
6474           as C++0x features become more widely available.
6476 Tue Jun 21 02:26:36 GMT 2011  Olly Betts <olly@survex.com>
6478         * HACKING,common/pretty.h,configure.ac,tests/internaltest.cc: Fix a
6479           few lingering references to RefCntPtr and RefCntBase.
6481 Tue Jun 21 02:01:25 GMT 2011  Olly Betts <olly@survex.com>
6483         * api/,backends/brass/,backends/chert/,backends/database.cc,
6484           backends/inmemory/inmemory_alltermslist.h,
6485           backends/inmemory/inmemory_database.cc,
6486           backends/inmemory/inmemory_database.h,
6487           backends/multi/multi_alltermslist.cc,
6488           backends/multi/multi_valuelist.cc,backends/remote/,common/,
6489           docs/doxygen_api.conf.in,include/Makefile.mk,include/xapian/,
6490           matcher/msetpostlist.h,matcher/multimatch.cc,
6491           queryparser/queryparser_internal.h,
6492           queryparser/termgenerator_internal.h,tests/internaltest.cc: Convert
6493           to use xapian/intrusive_ptr.h instead of xapian/base.h.
6495 Mon Jun 20 23:55:10 GMT 2011  Olly Betts <olly@survex.com>
6497         * include/xapian/intrusive_ptr.h: Unmodified version of
6498           boost/smart_ptr/intrusive_ptr.hpp as of Boost 1.42 (committed to aid
6499           merging changes in the future).
6501 Mon Jun 20 12:46:47 GMT 2011  Olly Betts <olly@survex.com>
6503         * common/databasereplicator.h,languages/steminternal.h,tests/harness/:
6504           Remove inclusions of xapian/base.h from files which don't use
6505           RefCntPtr or RefCntBase.
6507 Mon Jun 20 11:33:03 GMT 2011  Olly Betts <olly@survex.com>
6509         * include/xapian/base.h: Remove unnecessary check for self-assignment
6510           as it isn't a common case and the current code copes gracefully with
6511           it anyway.
6513 Mon Jun 20 05:25:05 GMT 2011  Olly Betts <olly@survex.com>
6515         * backends/brass/brass_postlist.cc,backends/brass/brass_postlist.h,
6516           backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h:
6517           Reduce size of BrassPostList/ChertPostList objects by moving bool
6518           members together (168->160 bytes for ChertPostList on x86-64 Linux).
6520 Sun Jun 19 13:44:32 GMT 2011  Olly Betts <olly@survex.com>
6522         * tests/internaltest.cc: Fix typo in comment and verbose output.
6524 Sun Jun 19 12:23:43 GMT 2011  Olly Betts <olly@survex.com>
6526         * api/error.cc,generate-exceptions: Rearrange members of Xapian::Error
6527           to reduce its size (from 48 to 40 bytes on x86-64 Linux).
6529 Sun Jun 19 12:22:53 GMT 2011  Olly Betts <olly@survex.com>
6531         * common/pretty.h: Fix comment typo.
6533 Sun Jun 19 04:45:26 GMT 2011  Olly Betts <olly@survex.com>
6535         * INSTALL: Update GCC details - we now recommend 4.3 or newer (was 4.1)
6536           and note that while 3.1 is the hard minimum requirement, the oldest
6537           we've tested with at all recently was 3.3.
6539 Sat Jun 18 14:27:14 GMT 2011  Olly Betts <olly@survex.com>
6541         * queryparser/queryparser.lemony,
6542           queryparser/termgenerator_internal.cc: Fix warning from GCC 3.3.
6544 Sat Jun 18 06:27:03 GMT 2011  Olly Betts <olly@survex.com>
6546         * api/,expand/ortermlist.cc,include/xapian/: Use TermIterator() instead
6547           of TermIterator(NULL), and similarly for other Xapian iterator
6548           classes.
6550 Sat Jun 18 05:16:23 GMT 2011  Olly Betts <olly@survex.com>
6552         * tests/zlib-vg.so: Remove file committed accidentally.
6554 Sat Jun 18 05:07:56 GMT 2011  Olly Betts <olly@survex.com>
6556         * api/,include/xapian/positioniterator.h,
6557           include/xapian/termiterator.h: Reimplementations of PositionIterator
6558           and TermIterator from the end-iterator-proxies branch.  Assignment
6559           operators for these classes now return *this rather than void.
6561 Sat Jun 18 01:49:02 GMT 2011  Olly Betts <olly@survex.com>
6563         * tests/perftest/Makefile.mk: Make sure that perftest isn't run with
6564           libeatmydata preloaded.
6566 Fri Jun 17 07:39:35 GMT 2011  Olly Betts <olly@survex.com>
6568         * docs/deprecation.rst: Tabs to spaces.
6570 Fri Jun 17 07:38:06 GMT 2011  Olly Betts <olly@survex.com>
6572         * docs/deprecation.rst: Add flush() -> commit().
6574 Thu Jun 16 14:40:35 GMT 2011  Olly Betts <olly@survex.com>
6576         * tests/: Add TEST( ) or TEST(! ) around existing reopen() calls to
6577           check that we get true or false returned as we would expect.
6578           (ticket#548)
6580 Thu Jun 16 05:15:28 GMT 2011  Olly Betts <olly@survex.com>
6582         * README: Note licence is GPL *2+*.  Say "SVN/git".  Use trac URL for
6583           wiki.
6585 Wed Jun 15 23:31:03 GMT 2011  Olly Betts <olly@survex.com>
6587         * xapian-core/api/error.cc: Don't include the magic code byte at the
6588           start of Error::get_description()'s return value.
6590 Wed Jun 15 15:51:42 GMT 2011  Olly Betts <olly@survex.com>
6592         * exception_data.pm,generate-exceptions,net/serialise.cc: When
6593           propagating exceptions from a remote backend server, use a numeric
6594           code to represent which exception is being transferred rather than
6595           the name of the type as that can be turned back into an exception
6596           with a simple switch statement.  It's also less data to transfer.
6597           (ticket#471)
6599 Wed Jun 15 14:03:49 GMT 2011  Olly Betts <olly@survex.com>
6601         * backends/remote/remote-database.cc,common/remote-database.h,
6602           common/remoteprotocol.h,docs/remote_protocol.rst,net/remoteserver.cc:
6603           Propagate the return value of Database::reopen() across the link.
6604           (ticket#548)
6606 Wed Jun 15 13:03:56 GMT 2011  Olly Betts <olly@survex.com>
6608         * backends/remote/remote-database.cc,common/remote-database.h,
6609           common/remoteprotocol.h,docs/remote_protocol.rst,net/remoteserver.cc:
6610           Unify REPLY_GREETING and REPLY_UPDATE; send (last_docid - doccount)
6611           instead of last_docid; send (doclen_ubound - doclen_lbound) instead
6612           of doclen_ubound.  This requires a remote protocol major version
6613           bump.  Fix out of date documentation for what's in a REPLY_UPDATE
6614           message.
6616 Wed Jun 15 12:24:07 GMT 2011  Olly Betts <olly@survex.com>
6618         * backends/remote/remote-database.cc: Remove special check which gives
6619           a more helpful error message when a modern client is used against a
6620           remote server running Xapian <= 0.9.6.
6622 Wed Jun 15 11:07:19 GMT 2011  Olly Betts <olly@survex.com>
6624         * net/remoteserver.cc: Remove unnecessary call to reopen() - either we
6625           just called it or we're a writable database and it doesn't do
6626           anything.
6628 Wed Jun 15 09:03:06 GMT 2011  Olly Betts <olly@survex.com>
6630         * xapian-core/backends/remote/remote-database.cc,
6631           xapian-core/common/remote-database.h: Factor out the code to decode
6632           the returned stats into a new apply_stats_update() method.
6634 Wed Jun 15 08:57:12 GMT 2011  Olly Betts <olly@survex.com>
6636         * xapian-core/Makefile.am: Remove check-* from .PHONY as that doesn't
6637           work with a pattern rule.  Fix check-% pattern rule to actually work.
6639 Tue Jun 14 15:11:38 GMT 2011  Olly Betts <olly@survex.com>
6641         * docs/remote_protocol.rst: Fixed typo which reversed the intended
6642           sense.
6644 Tue Jun 14 02:01:42 GMT 2011  Olly Betts <olly@survex.com>
6646         * Makefile.am,configure.ac: Avoid portability warning from automake
6647           about GNU make %-style pattern rules.
6649 Tue Jun 14 01:42:01 GMT 2011  Olly Betts <olly@survex.com>
6651         * configure.ac: Add unnecessary AC_LANG_SOURCE wrapper to shut up
6652           autoconf warning.
6654 Tue Jun 14 01:18:54 GMT 2011  Olly Betts <olly@survex.com>
6656         * configure.ac: Reset LIBRARY_VERSION_INFO to 0:0:0 for the
6657           development series, since the library name is different (it has a
6658           -1.3 suffix).
6660 Mon Jun 13 16:24:20 GMT 2011  Olly Betts <olly@survex.com>
6662         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
6663           docs/deprecation.rst,include/xapian/enquire.h,matcher/multimatch.cc,
6664           net/remoteserver.cc,tests/api_backend.cc: Remove the deprecated
6665           old-style match spy approach of using a MatchDecider.
6667 Mon Jun 13 15:47:57 GMT 2011  Olly Betts <olly@survex.com>
6669         * api/keymaker.cc,docs/deprecation.rst,include/xapian/keymaker.h,
6670           tests/Makefile.am,tests/api_sortingold.cc: Remove deprecated Sorter
6671           class and MultiValueSorter subclass.
6672         * tests/Makefile.mk,tests/perftest/Makefile.mk,
6673           tests/soaktest/Makefile.mk: Make the generated "*_all.h" depend on
6674           the Makefile.am or Makefile.mk which contains the list of files it
6675           is generated from so that it gets regenerated when a file is
6676           removed from that list.
6678 Mon Jun 13 13:18:29 GMT 2011  Olly Betts <olly@survex.com>
6680         * common/omenquireinternal.h: Remove a FIXME - caching the Document
6681           object in MSetItem isn't a replacement for storing the sort_key
6682           now that sort_keys can be computed.
6684 Mon Jun 13 13:07:31 GMT 2011  Olly Betts <olly@survex.com>
6686         * include/xapian/queryparser.h,queryparser/queryparser.cc: Fold the
6687           two forms of QueryParser::add_boolean_prefix() into one method
6688           with a default parameter now that changing the ABI isn't a worry.
6690 Mon Jun 13 12:00:36 GMT 2011  Olly Betts <olly@survex.com>
6692         * docs/deprecation.rst: Non-pythonic iterators have been removed.
6693           (ticket#255)
6695 Mon Jun 13 10:40:30 GMT 2011  Olly Betts <olly@survex.com>
6697         * docs/deprecation.rst: Python Stem_get_available_languages() has now
6698           been removed.
6700 Mon Jun 13 10:38:49 GMT 2011  Olly Betts <olly@survex.com>
6702         * docs/deprecation.rst,include/xapian/enquire.h: Remove deprecated
6703           default value for second parameter to Enquire::set_sort_by_value()
6704           and friends.
6706 Mon Jun 13 09:30:15 GMT 2011  Olly Betts <olly@survex.com>
6708         * api/omdatabase.cc,backends/brass/brass_database.cc,
6709           backends/brass/brass_database.h,backends/chert/chert_database.cc,
6710           backends/chert/chert_database.h,backends/database.cc,
6711           backends/inmemory/inmemory_database.cc,
6712           backends/inmemory/inmemory_database.h,
6713           backends/remote/remote-database.cc,common/,
6714           include/xapian/database.h: Database::reopen() now returns true if
6715           the database may have been reopened.  (ticket#548)
6717 Mon Jun 13 09:01:33 GMT 2011  Olly Betts <olly@survex.com>
6719         * docs/admin_notes.rst: Add note about xapian-chert-update.
6721 Mon Jun 13 08:47:06 GMT 2011  Olly Betts <olly@survex.com>
6723         * bin/xapian-check-flint.cc,bin/xapian-check-flint.h: Remove two
6724           flint-specific files I missed.
6726 Mon Jun 13 08:42:11 GMT 2011  Olly Betts <olly@survex.com>
6728         * HACKING,INSTALL,Makefile.am,api/compactor.cc,api/replication.cc,
6729           backends/Makefile.mk,backends/brass/brass_compact.cc,
6730           backends/chert/chert_compact.cc,backends/databasereplicator.cc,
6731           backends/dbfactory.cc,backends/dir_contents,backends/flint/,
6732           backends/slowvaluelist.h,bin/,common/database.h,common/pretty.h,
6733           common/unaligned.h,configure.ac,docs/,include/xapian/dbfactory.h,
6734           include/xapian/valueiterator.h,include/xapian/version_h.cc,tests/,
6735           tests/harness/,tests/queryparsertest.cc,tests/termgentest.cc,
6736           tests/testdata/flint-0.9.9/,tests/testdata/flint-1.0.1/,
6737           tests/testdata/flint-1.0.2/: Remove flint backend.
6739 Mon Jun 13 06:09:29 GMT 2011  Olly Betts <olly@survex.com>
6741         * bin/Makefile.mk: Remove lingering reference to quartz (rules to
6742           generate man pages for quartzdump, etc).
6744 Mon Jun 13 05:46:00 GMT 2011  Olly Betts <olly@survex.com>
6746         * Makefile.am,tests/Makefile.am: Just use a GNU-make-specific pattern
6747           rules to forward check-* targets from the top level to the tests
6748           subdirectory.  It's clear we aren't keeping the explicit list of
6749           target forwarding rules up to date, and this is just a convenience
6750           so not worth a lot of maintenance effort.
6752 Mon Jun 13 05:01:33 GMT 2011  Olly Betts <olly@survex.com>
6754         * configure.ac: Update version to 1.3.0 and add -1.3 suffix for
6755           library and /xapian-1.3 suffix to include file installation
6756           directory.
6758 Mon Jun 13 04:56:13 GMT 2011  Olly Betts <olly@survex.com>
6760         * unicode/tclUniData.cc: Upgrade to Unicode 6.0.0 (ticket#497).
6761         * tests/api_unicode.cc: Extend testcases to check for assorted changes
6762           and additions in Unicode 6.0.0.
6764 Sun Jun 12 11:54:45 GMT 2011  Olly Betts <olly@survex.com>
6766         * NEWS: Final update for 1.2.6.
6768 Sat Jun 11 10:11:23 GMT 2011  Olly Betts <olly@survex.com>
6770         * api/omdocument.cc: Update LOGCALL(MATCH, ...) to LOGCALL(DB, ...).
6771           Convert LOGLINE() at start of method to LOGCALL().
6773 Sat Jun 11 09:57:00 GMT 2011  Olly Betts <olly@survex.com>
6775         * api/omdatabase.cc: Remove self-assignment check from
6776           Database::operator= since this is an uncommon code path and
6777           RefCntPtr ensures that self-assignment of the internals is
6778           safe.
6780 Sat Jun 11 08:48:10 GMT 2011  Olly Betts <olly@survex.com>
6782         * api/omdatabase.cc,backends/brass/brass_cursor.h,
6783           backends/chert/chert_cursor.h,backends/flint/flint_cursor.h,
6784           backends/flint/flint_table.cc,backends/flint/flint_values.cc,
6785           backends/inmemory/inmemory_database.cc,bin/xapian-check-brass.cc,
6786           bin/xapian-check-chert.cc,bin/xapian-chert-update.cc,
6787           matcher/queryoptimiser.cc,matcher/valuegepostlist.h: Use string() or
6788           std::string() rather than "".
6789         * common/remoteconnection.h,net/tcpserver.cc: Use 2 parameter form of
6790           Error subclass ctors when the context is "".
6791         * api/replication.cc,backends/flint/flint_database.cc,
6792           common/remoteconnection.h,net/replicatetcpclient.cc,
6793           net/replicatetcpserver.cc: Make context parameter of
6794           RemoteConnection ctor optional.
6795         * common/leafpostlist.h: Say 'empty' rather than '""' in a
6796           documentation comment.
6797         * examples/simpleindex.cc: Use '.resize(0)' rather than '= ""'.
6799 Sat Jun 11 07:01:41 GMT 2011  Olly Betts <olly@survex.com>
6801         * api/,backends/brass/,backends/chert/,backends/flint/,
6802           backends/remote/remote-database.cc,common/,include/xapian/,matcher/,
6803           net/remoteserver.cc,net/serialise.cc: Consistently use "slot" in
6804           variable names for value slots, rather than valueno, valno, valueid
6805           or value.  The only exception remaining is a protected member of
6806           Xapian::StringValueRangeProcessor since that's really part of the
6807           public API.
6809 Fri Jun 10 11:55:45 GMT 2011  Olly Betts <olly@survex.com>
6811         * NEWS,configure.ac: Update in preparation for 1.2.6.
6813 Fri Jun 10 09:05:38 GMT 2011  Olly Betts <olly@survex.com>
6815         * examples/NEWS,examples/TODO: Remove files which are unused since the
6816           examples were merged into xapian-core.
6818 Fri Jun 10 09:03:33 GMT 2011  Olly Betts <olly@survex.com>
6820         * Makefile.am: Ship ChangeLog.0 in the tarball.
6822 Fri Jun 10 05:19:24 GMT 2011  Olly Betts <olly@survex.com>
6824         * tests/Makefile.am: Actually include soaktest/Makefile.mk.
6826 Thu Jun 09 23:26:52 GMT 2011  Olly Betts <olly@survex.com>
6828         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Define
6829           XAPIAN_DEPRECATED_CLASS to empty for doxygen.
6831 Thu Jun 09 22:21:29 GMT 2011  Olly Betts <olly@survex.com>
6833         * docs/overview.rst: Document "remote" in stub databases.
6835 Thu Jun 09 15:23:12 GMT 2011  Olly Betts <olly@survex.com>
6837         * HACKING,docs/deprecation.rst,include/xapian/deprecated.h,
6838           include/xapian/keymaker.h: Add XAPIAN_DEPRECATED_CLASS macro
6839           for marking a class as deprecated, so we don't have to call
6840           XAPIAN_DEPRECATED() with no parameters.
6842 Thu Jun 09 14:03:17 GMT 2011  Olly Betts <olly@survex.com>
6844         * HACKING: Clarify wording about PATH.
6846 Thu Jun 09 13:04:53 GMT 2011  Olly Betts <olly@survex.com>
6848         * docs/queryparser.rst,include/xapian/queryparser.h,
6849           queryparser/queryparser.cc,queryparser/queryparser.lemony,
6850           queryparser/queryparser_internal.h,tests/queryparsertest.cc: Add
6851           QueryParser::set_max_wildcard_expansion() method to allow limiting
6852           the number of terms a wildcard can expand to.  Implementation mostly
6853           from a patch by Adam Sjøgren in ticket#350.
6855 Tue Jun 07 23:16:33 GMT 2011  Dan Colish <dcolish@gmail.com>
6857         * backends/brass/brass_changesetapplier.h,
6858           backends/chert/chert_changesetapplier.h,
6859           backends/flint/flint_changesetapplier.h: Remove dead code
6861 Thu Jun 02 13:21:28 GMT 2011  Olly Betts <olly@survex.com>
6863         * AUTHORS: Add recent bug reporters.
6865 Thu Jun 02 11:03:57 GMT 2011  Olly Betts <olly@survex.com>
6867         * queryparser/queryparser.lemony: If default_op is OP_NEAR or
6868           OP_PHRASE then disable stemming of the terms, since we don't index
6869           positional information for stemmed terms by default.
6870         * tests/queryparsertest.cc: Adjust near1 and phrase1 to act as
6871           regression tests for this fix.
6873 Thu Jun 02 02:58:58 GMT 2011  Olly Betts <olly@survex.com>
6875         * backends/brass/brass_spelling.cc,backends/brass/brass_spelling.h,
6876           backends/chert/chert_spelling.cc,backends/chert/chert_spelling.h,
6877           backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h:
6878           Fix bug Nikita Smetanin spotted with adding a word which has the
6879           same trigram in an even number of times.
6880         * tests/api_spelling.cc: Add regression test spell8.
6882 Wed Jun 01 14:11:38 GMT 2011  Olly Betts <olly@survex.com>
6884         * backends/flint_lock.cc: Kill the child process which holds the lock
6885           with SIGKILL as that can't be ignored, whereas SIGHUP can be in some
6886           cases it seems.
6888 Wed Jun 01 12:12:14 GMT 2011  Olly Betts <olly@survex.com>
6890         * docs/quickstartexpand.cc.html,docs/quickstartindex.cc.html,
6891           docs/quickstartsearch.cc.html: Reinstate the old HTML versions
6892           of these files.
6894 Wed Jun 01 12:09:55 GMT 2011  Olly Betts <olly@survex.com>
6896         * docs/queryparser.rst,docs/remote_protocol.rst: Fix literal hard
6897           spaces in input to just be spaces.
6899 Wed Jun 01 12:06:26 GMT 2011  Olly Betts <olly@survex.com>
6901         * docs/quickstart.rst: Fix sub-heading run in to previous paragraph.
6903 Wed Jun 01 12:04:52 GMT 2011  Olly Betts <olly@survex.com>
6905         * docs/remote.rst: Replace out-dated list of xapian-tcpsrv's command
6906           line options with a reference to --help and the man page.  Tweak
6907           wording in a few places.
6909 Wed Jun 01 11:54:37 GMT 2011  Olly Betts <olly@survex.com>
6911         * docs/overview.rst: Change omrset to rset.  Remove some bogus `` left
6912           over from fixing definition list formatting.
6914 Wed Jun 01 11:38:09 GMT 2011  Olly Betts <olly@survex.com>
6916         * docs/stemming.rst: Comment out bogus claim that there are stopword
6917           lists in xapian-data (the lack of stopword lists is already
6918           ticket#269).
6920 Wed Jun 01 11:29:58 GMT 2011  Olly Betts <olly@survex.com>
6922         * docs/matcherdesign.rst,docs/stemming.rst: Convert more arrows to
6923           Unicode.
6924         * docs/stemming.rst: Fix some missing paragraph breaks.
6926 Wed Jun 01 11:18:25 GMT 2011  Olly Betts <olly@survex.com>
6928         * docs/intro_ir.rst: Use Unicode right arrow.
6930 Wed Jun 01 10:38:27 GMT 2011  Olly Betts <olly@survex.com>
6932         * docs/: Revert quickstart*.cc.html to being HTML rather than .rst as
6933           the .rst version lose the syntax highlighting.  Update svn:ignore.
6935 Wed Jun 01 10:27:11 GMT 2011  Olly Betts <olly@survex.com>
6937         * docs/intro_ir.rst: Sort out the remaining formatting issues.
6939 Wed Jun 01 08:05:05 GMT 2011  Olly Betts <olly@survex.com>
6941         * docs/intro_ir.rst: More markup fixes.
6943 Wed Jun 01 06:16:56 GMT 2011  Olly Betts <olly@survex.com>
6945         * docs/tests.rst: Use generated contents list instead of manual one.
6947 Wed Jun 01 06:16:13 GMT 2011  Olly Betts <olly@survex.com>
6949         * docs/index.rst,docs/internals.rst: Centre links at top; Sort out
6950           <hr> to be full width.
6952 Wed Jun 01 03:23:20 GMT 2011  Olly Betts <olly@survex.com>
6954         * docs/bm25.rst: Sort out inline equations.
6956 Tue May 31 15:21:10 GMT 2011  Olly Betts <olly@survex.com>
6958         * docs/spelling.rst: Add link to Omega documentation.
6960 Tue May 31 07:52:19 GMT 2011  Olly Betts <olly@survex.com>
6962         * docs/overview.rst,docs/quickstart.rst,docs/remote_protocol.rst: More
6963           .rst formatting fixes.
6965 Tue May 31 05:02:48 GMT 2011  Olly Betts <olly@survex.com>
6967         * docs/overview.rst: More .rst fixes.
6969 Tue May 31 04:32:52 GMT 2011  Olly Betts <olly@survex.com>
6971         * docs/: More .rst fixes.
6973 Tue May 31 04:11:27 GMT 2011  Olly Betts <olly@survex.com>
6975         * docs/Makefile.am,docs/code_structure.rst: Revert code_structure.html
6976           conversion - this file is generated by a script.
6978 Tue May 31 03:56:39 GMT 2011  Olly Betts <olly@survex.com>
6980         * docs/install.rst,docs/stemming.rst,docs/tests.rst: Fix up some .rst
6981           conversion issues.
6983 Tue May 31 03:36:49 GMT 2011  Dan Colish <dcolish@gmail.com>
6985         * docs/remote_protocol.rst docs/quickstart.rst docs/remote.rst
6986         docs/internals.rst docs/scalability.rst
6987         docs/quickstartsearch.cc.rst
6988         docs/bm25.rst docs/install.rst docs/quickstartindex.cc.rst
6989         docs/index.rst docs/matcherdesign.rst docs/quickstartexpand.cc.rst
6990         docs/queryparser.rst docs/stemming.rst docs/intro_ir.rst
6991         docs/code_structure.rst docs/Makefile.am docs/tests.rst
6992         docs/overview.rst: Bulk port all remaining documentation to RST.
6994 Sun May 29 07:04:42 GMT 2011  Olly Betts <olly@survex.com>
6996         * docs/postingsource.rst: Add PostingSource example.  (ticket#503)
6998 Sun May 29 05:19:40 GMT 2011  Olly Betts <olly@survex.com>
7000         * include/xapian/database.h: Add @exception InvalidArgumentError for
7001           Database::get_document() (ticket#542).
7003 Fri May 27 05:36:28 GMT 2011  Olly Betts <olly@survex.com>
7005         * NEWS: Update from ChangeLog.
7007 Thu May 26 02:44:07 GMT 2011  Olly Betts <olly@survex.com>
7009         * include/xapian/queryparser.h: FIXME:1.1.3 -> FIXME:1.3.
7011 Wed May 25 14:58:37 GMT 2011  Olly Betts <olly@survex.com>
7013         * docs/queryparser.html: Document the precedence order of operators.
7015 Fri May 20 04:13:54 GMT 2011  Olly Betts <olly@survex.com>
7017         * examples/simpleindex.cc: Add short description to usage message.
7019 Tue May 17 21:44:55 GMT 2011  Olly Betts <olly@survex.com>
7021         * docs/scalability.html: Bring up-to-date.
7023 Wed May 11 01:34:34 GMT 2011  Olly Betts <olly@survex.com>
7025         * AUTHORS: Add Scott Zhang for mingw fixes.
7027 Wed May 11 01:30:54 GMT 2011  Olly Betts <olly@survex.com>
7029         * net/progclient.cc,net/tcpserver.cc: Need <cstdio> for sprintf on
7030           __WIN32__ and cygwin.
7032 Wed May 11 01:22:07 GMT 2011  Olly Betts <olly@survex.com>
7034         * configure.ac: Define __MSVCRT_VERSION__ to 0x0601 under mingw so
7035           we get _ftime64().
7037 Wed May 11 01:19:14 GMT 2011  Olly Betts <olly@survex.com>
7039         * common/closefrom.cc,common/closefrom.h: We don't need closefrom()
7040           under __WIN32__ currently, so disable it there as it doesn't
7041           compile under mingw.
7043 Mon May 09 20:13:17 GMT 2011  Olly Betts <olly@survex.com>
7045         * examples/delve.cc: Report has_positions().
7047 Thu Apr 07 05:38:36 GMT 2011  Dan Colish <dcolish@gmail.com>
7049         * matcher/phrasepostlist.cc, matcher/queryoptimiser.cc,
7050           matcher/exactphrasepostlist.cc, matcher/exactphrasepostlist.h,
7051           matcher/phrasepostlist.h: Remove temporary vector in queryoptimiser
7052           and replace with iterators.
7054 Wed Apr 06 10:27:41 GMT 2011  Richard Boulton <richard@tartarus.org>
7056         * docs/admin_notes.rst: Remove the word "also", which makes sense
7057           when read in context of the previous section, but is confusing if
7058           the paragraph is read standalone, and isn't necessary.
7060 Mon Apr 04 14:41:33 GMT 2011  Olly Betts <olly@survex.com>
7062         * NEWS: Final update for 1.2.5.
7064 Mon Apr 04 14:06:56 GMT 2011  Olly Betts <olly@survex.com>
7066         * backends/brass/brass_version.cc: Remove ? from comment - the brass
7067           version change is definitely going to be in 1.2.5.
7069 Mon Apr 04 13:57:23 GMT 2011  Olly Betts <olly@survex.com>
7071         * NEWS: Bump release date.
7073 Sat Mar 26 14:49:41 GMT 2011  Olly Betts <olly@survex.com>
7075         * INSTALL: Fix typo in previous commit.
7077 Sat Mar 26 14:03:15 GMT 2011  Olly Betts <olly@survex.com>
7079         * INSTALL: Note how to build for a non-default arch on a multi-arch
7080           platform.
7082 Sat Mar 26 13:22:49 GMT 2011  Olly Betts <olly@survex.com>
7084         * NEWS,configure.ac: Update for 1.2.5.
7086 Sat Mar 26 12:28:38 GMT 2011  Olly Betts <olly@survex.com>
7088         * AUTHORS: Update.
7090 Sat Mar 26 10:33:19 GMT 2011  Olly Betts <olly@survex.com>
7092         * backends/brass/brass_postlist.cc,backends/brass/brass_postlist.h,
7093           backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h,
7094           backends/inmemory/inmemory_database.h: Address issues highlighted
7095           by clang++ warnings.
7097 Fri Mar 25 05:36:41 GMT 2011  Olly Betts <olly@survex.com>
7099         * docs/tests.html: Slight tweak to improve up-to-date-ness, but more
7100           work would be useful.
7102 Fri Mar 25 05:30:56 GMT 2011  Olly Betts <olly@survex.com>
7104         * docs/matcherdesign.html: Update - quite a bit has changed in the
7105           matcher since this was last updated!
7107 Thu Mar 24 23:31:57 GMT 2011  Olly Betts <olly@survex.com>
7109         * api/replication.cc,common/replication.h: Pass reader_close_time as
7110           double everywhere, rather than truncating it to int.  Include
7111           reader_close_time parameters in debug logging.  Document
7112           reader_close_time in doxygen comments.
7114 Tue Mar 22 15:36:25 GMT 2011  Dan Colish <dcolish@gmail.com>
7116         * backends/brass/brass_database.h:
7117           Remove left over copyright.
7119 Tue Mar 22 04:54:12 GMT 2011  Dan Colish <dcolish@gmail.com>
7121         * backends/brass/brass_btreebase.cc,backends/chert/chert_btreebase.cc,
7122           backends/flint/flint_btreebase.cc:
7123           Correct comments for which revision is packed when writing base files
7125 Tue Mar 22 03:18:19 GMT 2011  Dan Colish <dcolish@gmail.com>
7127         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7128           backends/flint/flint_database.cc,include/xapian/database.h:
7129           Remove FIXME and comments for DB_OVERWRITE.
7131 Tue Mar 22 01:18:38 GMT 2011  Dan Colish <dcolish@gmail.com>
7133         * backends/brass/,backends/chert/chert_database.cc,
7134           backends/flint/flint_database.cc,tests/api_replicate.cc:
7135           Clean up changesets when replicating. Add test coverage for this
7136           feature. Allow XAPIAN_MAX_CHANGESETS to be altered without reopening
7137           the database. Closes Ticket #278.
7139 Mon Mar 21 01:50:41 GMT 2011  Olly Betts <olly@survex.com>
7141         * docs/bm25.html: Add a link to the 1976 Robertson/Sparck Jones paper.
7143 Wed Mar 16 05:56:58 GMT 2011  Dan Colish <dcolish@gmail.com>
7145         * bin/xapian-check-flint.cc: Initialize did and current_wdf to prevent
7146           uninitalized usage and compiler warnings.
7148 Mon Mar 14 03:20:18 GMT 2011  Olly Betts <olly@survex.com>
7150         * common/debuglog.cc,common/debuglog.h: Rename indent member to
7151           indent_level so it doesn't clash with indent() method.
7153 Mon Mar 14 02:44:24 GMT 2011  Olly Betts <olly@survex.com>
7155         * common/debuglog.cc,common/debuglog.h: Use an integer counter for the
7156           indent rather than a std::string which we add/remove spaces to/from.
7157           This is cleaner, but also there seems to be an issue with having a
7158           std::string member in a global static object on OS X.
7160 Fri Mar 11 01:12:04 GMT 2011  Olly Betts <olly@survex.com>
7162         * HACKING: Document using '{ }' rather than ';' for empty loop bodies.
7164 Fri Mar 11 01:02:47 GMT 2011  Olly Betts <olly@survex.com>
7166         * HACKING: Remove bogus ; after method definition in code example.
7168 Fri Mar 11 00:07:22 GMT 2011  Olly Betts <olly@survex.com>
7170         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7171           backends/flint/flint_database.cc: Factor out literal constant as
7172           MAX_OPEN_RETRIES.
7174 Wed Mar 09 14:54:06 GMT 2011  Olly Betts <olly@survex.com>
7176         * tests/api_anydb.cc: Improve the new testcases a bit.
7178 Wed Mar 09 14:11:59 GMT 2011  Olly Betts <olly@survex.com>
7180         * api/omenquire.cc,common/esetinternal.h,common/omenquireinternal.h,
7181           expand/esetinternal.cc,expand/expandweight.cc,
7182           include/xapian/enquire.h,tests/api_anydb.cc: Enquire::get_eset() now
7183           accepts a min_wt argument to allow the minimum wanted weight to be
7184           specified.  Default is 0, which gives the previous behaviour.
7186 Wed Mar 09 00:00:25 GMT 2011  Olly Betts <olly@survex.com>
7188         * include/xapian/termiterator.h: Fix misspelling in doc comment.
7190 Tue Mar 08 06:58:14 GMT 2011  Olly Betts <olly@survex.com>
7192         * backends/brass/brass_table.cc,backends/brass/brass_table.h,
7193           backends/chert/chert_table.cc,backends/chert/chert_table.h,
7194           backends/flint/flint_table.cc,backends/flint/flint_table.h: Use
7195           defined constant BLOCK_CAPACITY instead of hardcoded 4 (ticket#536).
7197 Tue Mar 08 05:56:42 GMT 2011  Olly Betts <olly@survex.com>
7199         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
7200           backends/flint/flint_table.cc: If we try to delete an old base file
7201           and it isn't there, just continue rather than throwing an exception.
7202           We wanted to get rid of it anyway, and it may be NFS issues telling
7203           us the wrong thing.  In particular, DatabaseCoruptError was rather
7204           a pessimistic assessment.
7206 Tue Mar 08 05:55:48 GMT 2011  Olly Betts <olly@survex.com>
7208         * common/io_utils.h: Note that io_unlink() may return false when it
7209           should have returned true on NFS.
7211 Sun Mar 06 23:25:47 GMT 2011  Olly Betts <olly@survex.com>
7213         * common/io_utils.cc,common/io_utils.h: Add io_unlink().
7214         * backends/brass/brass_database.cc,backends/brass/brass_table.cc,
7215           backends/chert/chert_database.cc,backends/chert/chert_table.cc,
7216           backends/flint/flint_database.cc,backends/flint/flint_table.cc:
7217           Use io_unlink() instead of sys_unlink_if_exists().
7219 Sun Mar 06 22:26:36 GMT 2011  Olly Betts <olly@survex.com>
7221         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7222           backends/flint/flint_database.cc: If DANGEROUS mode is turned on,
7223           then actually set the flag for this in replication changes files
7224           (the reader will currently throw an exception, but that's better
7225           than quietly handling them incorrectly).
7227 Sat Mar 05 12:58:31 GMT 2011  Olly Betts <olly@survex.com>
7229         * NEWS: Update from ChangeLog.
7231 Sat Mar 05 12:49:16 GMT 2011  Olly Betts <olly@survex.com>
7233         * NEWS: Fix a few typos.
7235 Sat Mar 05 06:19:25 GMT 2011  Olly Betts <olly@survex.com>
7237         * NEWS: Fix typo in old entry.
7239 Sat Mar 05 06:16:41 GMT 2011  Olly Betts <olly@survex.com>
7241         * common/remoteconnection.h: Internal doc comment improvements: Fix
7242           typo, finish truncated sentence, wrap lines to 80 columns.
7244 Sat Mar 05 02:59:35 GMT 2011  Olly Betts <olly@survex.com>
7246         * bin/xapian-replicate.cc: Make sure port number is specified.  Add
7247           "(required)" after --host and --port in help.
7249 Sat Mar 05 02:50:04 GMT 2011  Olly Betts <olly@survex.com>
7251         * docs/replication.rst: Mention new defaulting of -m.
7253 Sat Mar 05 02:44:37 GMT 2011  Olly Betts <olly@survex.com>
7255         * bin/xapian-replicate.cc: If --master isn't specified, default to
7256           DATABASE.
7258 Sat Mar 05 00:14:21 GMT 2011  Olly Betts <olly@survex.com>
7260         * bin/xapian-replicate.cc: Give an error if the host isn't set, rather
7261           than trying to connect to an empty hostname, which gives the error
7262           "Couldn't resolve host  (Unknown server error)", which might confuse
7263           if you fail to notice the double space and realise what it means.
7265 Fri Mar 04 17:20:13 GMT 2011  Richard Boulton <richard@tartarus.org>
7267         * docs/replication.rst: Update documentation to make it clear that
7268           users shouldn't try to create the destination directory for
7269           replication themselves.
7271 Thu Mar 03 11:10:10 GMT 2011  Olly Betts <olly@survex.com>
7273         * docs/intro_ir.html: Fix typo in author's name.
7275 Thu Mar 03 11:06:30 GMT 2011  Olly Betts <olly@survex.com>
7277         * docs/intro_ir.html: Update link to a paper.  Update text about book
7278           "to be published in 2008".
7280 Tue Mar 01 11:39:40 GMT 2011  Olly Betts <olly@survex.com>
7282         * NEWS: Update from ChangeLog.
7284 Mon Feb 28 12:40:24 GMT 2011  Olly Betts <olly@survex.com>
7286         * matcher/multimatch.cc: Avoid leaking postlist tree if an exception
7287           is thrown during the match.
7289 Wed Feb 23 15:26:56 GMT 2011  Olly Betts <olly@survex.com>
7291         * docs/Makefile.am,docs/index.html: Process collapsing.rst and link
7292           it into the documentation.
7294 Wed Feb 23 15:22:06 GMT 2011  Olly Betts <olly@survex.com>
7296         * docs/collapsing.rst: Add missing document (for some reason this file
7297           was empty in SVN, but present in my tree under a different name, and
7298           not checked in).
7300 Mon Feb 21 14:49:06 GMT 2011  Olly Betts <olly@survex.com>
7302         * docs/deprecation.rst: Deprecate MSet.items and ESet.items.
7304 Mon Feb 21 14:06:21 GMT 2011  Olly Betts <olly@survex.com>
7306         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
7307           backends/flint/flint_database.cc,common/remoteconnection.h,
7308           net/remoteconnection.cc: Pass a file descriptor to
7309           RemoteConnection::send_file() to avoid a race between the caller
7310           checking if a file exists and send_file() trying to open it to send
7311           it.
7313 Mon Feb 21 13:50:06 GMT 2011  Olly Betts <olly@survex.com>
7315         * queryparser/lemon.c: Fix issues detected by DACA cppcheck run on the
7316           Debian archive.
7318 Mon Feb 21 13:30:55 GMT 2011  Olly Betts <olly@survex.com>
7320         * tests/api_anydb.cc: Fix spaceterms1 which was never running one part
7321           of the testcase (and had been that way for years).  Fix an
7322           off-by-one error in the enabled code.
7324 Mon Feb 21 13:05:36 GMT 2011  Olly Betts <olly@survex.com>
7326         * tests/api_backend.cc: Add some test coverage for
7327           DatabaseModifiedError in get_mset().
7329 Mon Feb 21 12:03:35 GMT 2011  Olly Betts <olly@survex.com>
7331         * NEWS: Fix typo in old entry.
7333 Mon Feb 21 11:36:07 GMT 2011  Olly Betts <olly@survex.com>
7335         * examples/quest.cc: Report any spelling correction (requires the
7336           database contains spelling data of course).
7338 Wed Feb 16 13:11:03 GMT 2011  Olly Betts <olly@survex.com>
7340         * include/xapian/enquire.h: Add doxygen markup so alternative
7341           overloaded forms of Enquire::get_mset() appear in the API
7342           documentation.
7344 Wed Feb 09 14:24:57 GMT 2011  Olly Betts <olly@survex.com>
7346         * docs/admin_notes.rst: Up to darte for 1.2.5.  Minor wording
7347           improvements.  Mention copydatabase --no-renumber.
7349 Wed Feb 09 14:06:55 GMT 2011  Olly Betts <olly@survex.com>
7351         * examples/copydatabase.cc: Add --no-renumber option.
7353 Tue Feb 01 11:17:58 GMT 2011  Olly Betts <olly@survex.com>
7355         * configure.ac: -Wstrict-null-sentinel was added in GCC 4.0.1 so
7356           doesn't work with GCC 4.0.0.  For simplicity, only enable it for
7357           GCC >= 4.1.
7359 Tue Feb  1 08:22:52 GMT 2011  Olly Betts <olly@survex.com>
7361         * docs/deprecation.rst: Add $set{spelling,true}.
7363 Thu Jan 20 14:52:53 GMT 2011  Olly Betts <olly@survex.com>
7365         * backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h,
7366           backends/flint/flint_table.cc: Don't read the bitmaps from the base
7367           files when opening a database for reading (cross-port of equivalent
7368           change to chert).
7370 Thu Jan 20 14:37:10 GMT 2011  Olly Betts <olly@survex.com>
7372         * backends/brass/brass_btreebase.cc,backends/brass/brass_btreebase.h,
7373           backends/brass/brass_table.cc: Don't read the bitmaps from the base
7374           files when opening a database for reading (cross-port of equivalent
7375           change to chert).
7377 Thu Jan 20 14:21:10 GMT 2011  Olly Betts <olly@survex.com>
7379         * backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h,
7380           backends/chert/chert_table.cc: Don't read the bitmaps from the base
7381           files when opening a database for reading.
7383 Thu Jan 20 01:57:02 GMT 2011  Olly Betts <olly@survex.com>
7385         * backends/brass/brass_database.cc: Optimise not to update doclength
7386           when it hasn't changed (cross-port of equivalent change to chert).
7388 Thu Jan 20 01:36:51 GMT 2011  Olly Betts <olly@survex.com>
7390         * backends/chert/chert_database.cc: Optimise not to update doclength
7391           when it hasn't changed.
7393 Wed Jan 19 03:50:18 GMT 2011  Olly Betts <olly@survex.com>
7395         * tests/api_compact.cc: Close ofstream objects used to write out stub
7396           files for testing before we run the actual compaction, to avoid
7397           issues on Microsoft Windows (ticket#525).
7399 Wed Jan 19 01:01:38 GMT 2011  Olly Betts <olly@survex.com>
7401         * HACKING: Snapshots and releases are now bootstrapped with autoconf
7402           2.68 and libtool 2.4.  Prune information about reasons for needing
7403           really old autotools versions when there's a reason to need a newer
7404           version anyway.
7406 Sat Jan 15 11:10:26 GMT 2011  Olly Betts <olly@survex.com>
7408         * NEWS: Update from ChangeLog and 1.0.23.
7410 Sat Jan 15 10:28:10 GMT 2011  Olly Betts <olly@survex.com>
7412         * bin/xapian-chert-update.cc: Fix to handle value slot entries in the
7413           termlist table.
7415 Wed Jan 12 23:49:21 GMT 2011  Olly Betts <olly@survex.com>
7417         * bin/xapian-chert-update.cc: Adjust keys for doclength chunks too.
7419 Wed Jan 12 13:37:30 GMT 2011  Olly Betts <olly@survex.com>
7421         * AUTHORS,bin/xapian-chert-update.cc: Fix to also rewrite docids in
7422           value chunk keys (reported by Luca Barbieri on xapian-discuss).
7424 Tue Jan 11 08:41:02 GMT 2011  Olly Betts <olly@survex.com>
7426         * docs/deprecation.rst: Note removal of if idx in mset.
7428 Tue Jan 11 08:30:29 GMT 2011  Olly Betts <olly@survex.com>
7430         * docs/deprecation.rst: PostingSource now offers a replacement for
7431           Enquire::set_bias().
7433 Mon Jan 10 09:40:24 GMT 2011  Olly Betts <olly@survex.com>
7435         * api/compactor.cc: Add missing header <ctime> for time() (ticket#530).
7437 Sun Jan 09 23:14:02 GMT 2011  Olly Betts <olly@survex.com>
7439         * api/compactor.cc: Use msvc_posix_rename() under __WIN32__ to
7440           atomically update stub file after compaction (ticket#525).
7442 Thu Dec 23 13:00:43 GMT 2010  Olly Betts <olly@survex.com>
7444         * queryparser/queryparser.lemony: Whitespace consistency tweak.
7446 Thu Dec 23 11:01:26 GMT 2010  Olly Betts <olly@survex.com>
7448         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Handle
7449           NEAR/<offset> and ADJ/<offset> where offset isn't an integer the same
7450           way at the end of the query as in the middle.
7452 Tue Dec 21 10:28:08 GMT 2010  Olly Betts <olly@survex.com>
7454         * net/tcpserver.cc: If we can't bind to the specified port because it
7455           is a privileged one, exit with code 77 (EX_NOPERM) to make it easier
7456           to automatically handle failure when starting the server from a
7457           script.
7459 Tue Dec 21 07:43:52 GMT 2010  Olly Betts <olly@survex.com>
7461         * docs/index.html: Add link to main website.
7463 Tue Dec 21 07:40:57 GMT 2010  Olly Betts <olly@survex.com>
7465         * docs/index.html,docs/overview.html: Update links to wiki.xapian.org
7466           to point to trac.xapian.org/wiki instead.
7468 Mon Dec 20 10:02:06 GMT 2010  Richard Boulton <richard@tartarus.org>
7470         * docs/deprecation.rst: Add note about botched removal of python's
7471           Enquire.get_matching_terms (now fully removed).
7473 Sun Dec 19 12:40:12 GMT 2010  Olly Betts <olly@survex.com>
7475         * NEWS: Update release date.
7477 Sat Dec 18 13:17:52 GMT 2010  Olly Betts <olly@survex.com>
7479         * NEWS,configure.ac: Update for 1.2.4.
7481 Wed Dec 15 11:56:22 GMT 2010  Olly Betts <olly@survex.com>
7483         * NEWS: Update.
7485 Tue Dec 14 12:46:36 GMT 2010  Olly Betts <olly@survex.com>
7487         * HACKING,tests/runtest.in: Add XAPIAN_TESTSUITE_LD_PRELOAD hook to
7488           allow libeatmydata to easily be used when running the testsuite.
7490 Mon Dec 13 14:28:19 GMT 2010  Olly Betts <olly@survex.com>
7492         * include/xapian/: Make it more explicitly clear that PostingIterator,
7493           PositionIterator, and TermIterator's skip_to methods advance (and
7494           hence shouldn't be expected to allow you to "rewind" the stream).
7496 Mon Dec 13 14:18:18 GMT 2010  Olly Betts <olly@survex.com>
7498         * include/xapian/database.h: "network databases" -> "remote databases".
7500 Mon Dec 13 14:10:08 GMT 2010  Olly Betts <olly@survex.com>
7502         * net/remoteserver.cc: If the message parameter only contains a
7503           string then we can just use it as is.
7505 Mon Dec 13 13:34:30 GMT 2010  Olly Betts <olly@survex.com>
7507         * backends/remote/remote-database.cc,common/remote-database.h,
7508           common/remoteprotocol.h,common/remoteserver.h,
7509           docs/remote_protocol.html,net/remoteserver.cc,tests/api_metadata.cc:
7510           Add support for iterating metadata keys with the remote backend.
7511           This change necessitated a minor version bump in the remote protocol.
7513 Sun Dec 12 12:24:48 GMT 2010  Olly Betts <olly@survex.com>
7515         * weight/tradweight.cc: Fix calculation order to avoid inconsistent
7516           weights due to rounding for TradWeight(0).
7517         * tests/api_backend.cc: Add regression test tradweight2.
7519 Sat Dec 11 11:38:32 GMT 2010  Olly Betts <olly@survex.com>
7521         * AUTHORS: Update thanks list with bug reporters and patch submitters.
7523 Thu Dec 09 03:59:42 GMT 2010  Olly Betts <olly@survex.com>
7525         * NEWS: Update from ChangeLog.
7527 Thu Dec 09 03:58:20 GMT 2010  Olly Betts <olly@survex.com>
7529         * net/remoteconnection.cc: Add FIXME note about using sendfile() or
7530           similar.
7532 Tue Dec 07 10:16:31 GMT 2010  Olly Betts <olly@survex.com>
7534         * tests/queryparsertest.cc: Note 1.0.x version #515 was fixed in.
7536 Mon Dec 06 05:26:01 GMT 2010  Olly Betts <olly@survex.com>
7538         * net/replicatetcpclient.cc: Rearrange loop to avoid duplicating code.
7540 Mon Dec 06 01:39:23 GMT 2010  Olly Betts <olly@survex.com>
7542         * queryparser/queryparser.lemony: Fix typo so we test for OP_NEAR or
7543           OP_PHRASE, not twice for OP_NEAR, which fixes a bug with not setting
7544           the correct window size for default_op of OP_PHRASE in some cases.
7545           Factor out the "is_positional(op)" test into an inlined function to
7546           help avoid repeating this error.
7547         * tests/queryparsertest.cc: Add regression test coverage.
7549 Mon Dec 06 01:01:03 GMT 2010  Olly Betts <olly@survex.com>
7551         * tests/queryparsertest.cc: Add coverage for OP_PHRASE as default_op.
7553 Sun Dec 05 12:35:32 GMT 2010  Olly Betts <olly@survex.com>
7555         * weight/bm25weight.cc: Fix calculation order to avoid inconsistent
7556           weights due to rounding when BM25Weight is used with certain
7557           non-default parameter combinations.
7558         * tests/api_backend.cc: Add regression test bm25weight2.
7560 Sun Dec 05 12:10:36 GMT 2010  Olly Betts <olly@survex.com>
7562         * backends/chert/chert_compact.cc: Add FIXME comment regarding
7563           resolve_duplicate_metadata() getting called multiple times for the
7564           same key in multipass mode.
7566 Sun Dec 05 12:09:32 GMT 2010  Olly Betts <olly@survex.com>
7568         * include/xapian/compactor.h: Add documentation comments.
7570 Sun Dec 05 04:54:03 GMT 2010  Olly Betts <olly@survex.com>
7572         * HACKING: Omega now wants libmagic-dev (though it's optional
7573           currently).
7575 Wed Nov 17 10:56:10 GMT 2010  Olly Betts <olly@survex.com>
7577         * examples/quest.cc: Add command line options to allow prefixes to
7578           be specified for the QueryParser.
7580 Tue Nov 09 23:18:36 GMT 2010  Olly Betts <olly@survex.com>
7582         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
7583           backends/flint/flint_compact.cc: Fix access to empty priority_queue
7584           while merging synonyms (found with _GLIBCXX_DEBUG).
7586 Tue Nov 09 03:23:49 GMT 2010  Olly Betts <olly@survex.com>
7588         * HACKING: Drop list of platforms valgrind supports, as it takes
7589           effort to keep up to date.  People can check valgrind.org for an
7590           accurate list of currently supported platforms.
7592 Sun Nov 07 14:13:44 GMT 2010  Olly Betts <olly@survex.com>
7594         * api/compactor.cc,backends/brass/brass_compact.cc,
7595           backends/chert/chert_compact.cc,backends/flint/flint_compact.cc,
7596           bin/xapian-compact.cc,include/xapian/compactor.h:
7597           Compactor::resolve_duplicate_metadata() callback method is now passed
7598           an array of std::string plus the array length, which allows for more
7599           efficient merging that the series of pairwise merges which was
7600           required before.
7602 Mon Nov 01 14:47:37 GMT 2010  Richard Boulton <richard@tartarus.org>
7604         * matcher/multimatch.cc,matcher/multixorpostlist.cc,
7605           matcher/multixorpostlist.h: Add debugging to print out the
7606           postlist description after recalculation of maxweight, and to
7607           MultiXorPostList methods.  Fix problem shown by soaktest where
7608           the matcher was not told to recalculate the maxweight after a
7609           MultiXorPostList child reached end, which was causing an
7610           assertion failure in debug builds.  (This could also have been
7611           causing some performance problems, but I have not measurements.)
7613 Mon Nov 01 10:34:30 GMT 2010  Richard Boulton <richard@tartarus.org>
7615         * tests/soaktest/soaktest_queries.cc: Fix compilation: call c_str()
7616           on argument to atoi, now that util.h no longer defines a string
7617           wrapper.
7619 Sun Oct 31 10:51:12 GMT 2010  Olly Betts <olly@survex.com>
7621         * queryparser/queryparser.lemony: Don't delete this in TermGroup, etc
7622           until after we have successfully constructed the Query object to
7623           return to avoid a double free in the Query construction throws an
7624           exception.  Fixes ticket#515.
7626 Fri Oct 29 12:46:15 GMT 2010  Olly Betts <olly@survex.com>
7628         * tests/api_backend.cc: Fix comment typo in previous commit.
7630 Fri Oct 29 12:32:47 GMT 2010  Olly Betts <olly@survex.com>
7632         * matcher/multimatch.cc: Empty query now return MSet with firstitem
7633           set correctly.
7634         * tests/api_backend.cc: Extend msetfirst2 to be a regression test for
7635           this issue too.
7637 Fri Oct 29 12:13:51 GMT 2010  Olly Betts <olly@survex.com>
7639         * api/omenquire.cc: If first is larger than get_doccount() then clamp
7640           it to avid pointlessly trying to allocate far too much memory.
7641         * tests/api_backend.cc: Regression test msetfirst2.
7643 Thu Oct 21 09:38:44 GMT 2010  Richard Boulton <richard@tartarus.org>
7645         * tests/Makefile.am: Add zlib-vg.c to distribution tarballs.
7647 Wed Oct 20 11:38:13 GMT 2010  Olly Betts <olly@survex.com>
7649         * examples/delve.cc: Add '-z' option to count zero-length documents.
7651 Mon Oct 18 10:35:46 GMT 2010  Olly Betts <olly@survex.com>
7653         * bin/xapian-compact.cc: Add --quiet/-q option to suppress progress
7654           output.
7656 Thu Oct 14 03:51:02 GMT 2010  Olly Betts <olly@survex.com>
7658         * tests/api_unicode.cc: Fix typo in previous change.
7660 Thu Oct 14 01:16:31 GMT 2010  Olly Betts <olly@survex.com>
7662         * tests/api_unicode.cc: Expand tested cases to (hopefully) cover all
7663           conditional combinations in unicode/utf8itor.cc.
7665 Mon Oct 11 11:46:30 GMT 2010  Olly Betts <olly@survex.com>
7667         * Makefile.am: Remove xapian-config on "make distclean" rather than
7668           "make clean", since configure builds it.  Never remove man pages
7669           under "make clean".
7671 Mon Oct 11 11:41:32 GMT 2010  Olly Betts <olly@survex.com>
7673         * tests/Makefile.am: Fix typo - CLEAN_FILES should be CLEANFILES.
7674           This means that where zlib-vg.so is used, it now gets cleaned up.
7676 Sun Oct 10 11:00:31 GMT 2010  Olly Betts <olly@survex.com>
7678         * Makefile.am: Fix so coverage-reconfigure-maintainer-mode adds
7679           --enable-maintainer-mode rather than coverage-reconfigure!
7681 Sun Oct 10 10:45:38 GMT 2010  Olly Betts <olly@survex.com>
7683         * Makefile.am: Factor out COVERAGE_CONFIGURE to make future changes
7684           easier.
7686 Sun Oct 10 09:59:01 GMT 2010  Olly Betts <olly@survex.com>
7688         * Makefile.am: Add coverage-reconfigure-maintainer-mode target which
7689           is just like coverage-reconfigure except it also passes
7690           --enable-maintainer-mode.
7692 Sun Oct 10 07:29:23 GMT 2010  Olly Betts <olly@survex.com>
7694         * tests/api_nodb.cc: Check Stem("none") too.  Check
7695           Stem("").get_description().  No need to check a bogus language name
7696           here as stemlangs2 now does that.
7698 Sun Oct 10 07:22:41 GMT 2010  Olly Betts <olly@survex.com>
7700         * tests/api_stem.cc: Test an invalid languages name with each possible
7701           byte value at the start to improve coverage of the switch in
7702           api/stem.cc.
7704 Sun Oct 10 06:14:42 GMT 2010  Olly Betts <olly@survex.com>
7706         * unicode/utf8itor.cc: Correct comments and use bad_cont() in another
7707           place (no change to code once inlining is taken into account).
7709 Sun Oct 10 06:11:05 GMT 2010  Olly Betts <olly@survex.com>
7711         * tests/api_unicode.cc: Improve test coverage for
7712           Utf8Iterator::calculate_sequence_length().
7714 Sun Oct 10 00:33:49 GMT 2010  Olly Betts <olly@survex.com>
7716         * tests/api_unicode.cc: Tweak testcase utf8iterator2 to add coverage
7717           for Utf8Iterator(const char *).
7719 Fri Oct 08 13:10:08 GMT 2010  Olly Betts <olly@survex.com>
7721         * matcher/selectpostlist.cc,matcher/selectpostlist.h: Implement
7722           SelectPostList::check() so that check() on OP_NEAR and OP_PHRASE
7723           subqueries won't end up checking potentially huge numbers of
7724           documents.
7726 Fri Oct 08 12:29:50 GMT 2010  Olly Betts <olly@survex.com>
7728         * tests/api_backend.cc: Add testcase phrase3 to provide coverage for
7729           SelectPostList::skip_to().
7731 Fri Oct 08 10:36:18 GMT 2010  Olly Betts <olly@survex.com>
7733         * matcher/orpostlist.cc,matcher/orpostlist.h: Fix performance
7734           regression in some cases caused by the introduction of
7735           OrPostList::check().
7737 Thu Oct 07 03:53:11 GMT 2010  Olly Betts <olly@survex.com>
7739         * tests/api_anydb.cc: Clear tout before each iteration in scaleweight1.
7741 Wed Oct 06 14:30:34 GMT 2010  Olly Betts <olly@survex.com>
7743         * NEWS: Update from 1.0.22 and ChangeLog.
7745 Wed Oct 06 12:39:36 GMT 2010  Olly Betts <olly@survex.com>
7747         * tests/queryparsertest.cc: Add two more testcases for having a phrase
7748           generator between prefix and term.
7750 Wed Oct 06 12:37:32 GMT 2010  Olly Betts <olly@survex.com>
7752         * include/xapian/matchspy.h,include/xapian/postingsource.h: Remove
7753           "experimental" marker from PostingSource and ValueCountMatchSpy.
7755 Wed Oct 06 12:31:01 GMT 2010  Olly Betts <olly@survex.com>
7757         * docs/index.html: Add links to replication and facets documents, and
7758           fix typo in serialistion document link.
7760 Wed Oct 06 12:12:51 GMT 2010  Olly Betts <olly@survex.com>
7762         * docs/Makefile.am,docs/categorisation.rst,docs/facets.rst: Change the
7763           categorisation document to talk about facets, since that's the
7764           terminology that seems to be most widely used these days, and
7765           "categorisation" can also mean automatically assigning categories to
7766           documents.  Fix up references to features which were removed or
7767           changed during development.
7769 Wed Oct 06 12:11:21 GMT 2010  Olly Betts <olly@survex.com>
7771         * docs/internals.html: Add link to replication protocol.
7773 Wed Oct 06 08:36:50 GMT 2010  Olly Betts <olly@survex.com>
7775         * examples/simplesearch.cc: Fix cut and paste error in usage message.
7777 Wed Oct 06 00:12:40 GMT 2010  Olly Betts <olly@survex.com>
7779         * api/emptypostlist.cc,matcher/queryoptimiser.cc: In the query
7780           optimiser, use value range bounds to check for value ranges which
7781           must be empty.
7782         * tests/api_opvalue.cc: Add testcase valuerange5 to check this
7783           optimisation actually fires.
7785 Tue Oct 05 03:43:02 GMT 2010  Olly Betts <olly@survex.com>
7787         * examples/simplesearch.cc: Fix cut-and-paste error - --version now
7788           reports simplesearch not simpleexpand.
7790 Tue Oct 05 03:41:48 GMT 2010  Olly Betts <olly@survex.com>
7792         * docs/categorisation.rst: Update to use the current ValueCountMatchSpy
7793           API.
7795 Fri Oct 01 09:53:50 GMT 2010  Olly Betts <olly@survex.com>
7797         * configure.ac: Simplify defaulting enable_documentation a little.
7799 Fri Oct 01 09:29:03 GMT 2010  Olly Betts <olly@survex.com>
7801         * configure.ac: Default enable_sse to yes to fix build on x86.
7803 Fri Oct 01 09:10:34 GMT 2010  Olly Betts <olly@survex.com>
7805         * configure.ac: Fix typo in SSE handling code which stopped it
7806           defaulting as intended.
7808 Fri Oct 01 02:00:49 GMT 2010  Olly Betts <olly@survex.com>
7810         * NEWS: Update from ChangeLog.
7812 Fri Oct 01 01:54:41 GMT 2010  Olly Betts <olly@survex.com>
7814         * backends/Makefile.mk,backends/brass/brass_compact.cc,
7815           backends/byte_length_strings.h,backends/chert/chert_compact.cc,
7816           backends/flint/flint_compact.cc: Factor out 3 copies of
7817           ByteLengthPrefixedStringItor and ByteLengthPrefixedStringItorGt into
7818           their own file.
7820 Fri Oct 01 01:28:57 GMT 2010  Olly Betts <olly@survex.com>
7822         * backends/Makefile.mk,backends/brass/brass_compact.cc,
7823           backends/brass/brass_spelling.cc,backends/chert/chert_compact.cc,
7824           backends/chert/chert_spelling.cc,backends/flint/flint_compact.cc,
7825           backends/flint/flint_spelling.cc,
7826           backends/prefix_compressed_strings.h: Factor out 6 copies of
7827           PrefixCompressedStringItor and PrefixCompressedStringWriter and 3
7828           copies of PrefixCompressedStringItorGt into their own file.
7830 Thu Sep 30 15:28:49 GMT 2010  Olly Betts <olly@survex.com>
7832         * NEWS: Update from ChangeLog.
7834 Thu Sep 30 15:26:52 GMT 2010  Olly Betts <olly@survex.com>
7836         * api/compactor.cc: Need utils.h for stat with a std::string argument.
7838 Thu Sep 30 15:23:50 GMT 2010  Olly Betts <olly@survex.com>
7840         * tests/api_compact.cc: Remove unwanted check left over from cut and
7841           pasting code from a previous testcase.
7843 Thu Sep 30 15:21:02 GMT 2010  Olly Betts <olly@survex.com>
7845         * tests/api_compact.cc: Convert compaction tests to use the new API.
7847 Thu Sep 30 14:54:27 GMT 2010  Olly Betts <olly@survex.com>
7849         * backends/brass/brass_compact.cc,backends/chert/chert_compact.cc,
7850           backends/flint/flint_compact.cc: Correct filenames in @file doxygen
7851           comments.
7853 Thu Sep 30 14:46:02 GMT 2010  Olly Betts <olly@survex.com>
7855         * api/compactor.cc: Use the ChertVersion, etc classes to make sure that
7856           the new database has a new UUID rather than creating a "donor"
7857           database and then stealing its version/uuid file.
7859 Thu Sep 30 14:33:46 GMT 2010  Olly Betts <olly@survex.com>
7861         * api/Makefile.mk,api/compactor.cc,backends/brass/Makefile.mk,
7862           backends/brass/brass_compact.cc,backends/brass/brass_compact.h,
7863           backends/chert/Makefile.mk,backends/chert/chert_compact.cc,
7864           backends/chert/chert_compact.h,backends/flint/Makefile.mk,
7865           backends/flint/flint_compact.cc,backends/flint/flint_compact.h,bin/,
7866           include/Makefile.mk,include/xapian.h,include/xapian/compactor.h:
7867           Convert compaction code into a Xapian::Compactor class, and make
7868           xapian-compact a simple wrapper around this new class.  (ticket#175)
7870 Thu Sep 30 06:16:11 GMT 2010  Olly Betts <olly@survex.com>
7872         * bin/: Eliminate uses of <iostream> in bin/xapian-compact-*.cc.
7874 Thu Sep 30 05:44:06 GMT 2010  Olly Betts <olly@survex.com>
7876         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc,
7877           bin/xapian-compact-flint.cc: Fix indentation of table data
7878           arrays.
7880 Thu Sep 30 05:32:44 GMT 2010  Olly Betts <olly@survex.com>
7882         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Only
7883           skip producing an output table when there are only some inputs
7884           for the termlist - for spellings and synonyms, we want to produce
7885           an output in this case.
7886         * tests/api_compact.cc: Add regression test compactmissingtables1.
7888 Wed Sep 29 11:13:18 GMT 2010  Olly Betts <olly@survex.com>
7890         * common/document.h: Initialise docid to 0 when creating a document
7891           from scratch, as documented.
7892         * tests/api_none.cc: Add regression test document2.
7893         * include/xapian/document.h: Document that return value is unreliable
7894           in this case prior to the next 1.0 and 1.2 releases.
7896 Wed Sep 29 07:06:10 GMT 2010  Olly Betts <olly@survex.com>
7898         * configure.ac: FreeBSD and OpenBSD don't need explicit dependency
7899           libraries, so set link_all_deplibs_CXX=no there.
7901 Wed Sep 29 07:04:20 GMT 2010  Olly Betts <olly@survex.com>
7903         * xapian-config.in: Just check @link_all_deplibs_CXX@ which we adjust
7904           in configure rather than duplicating configure's list of platforms
7905           where explicit dependencies aren't required.
7907 Mon Sep 27 04:28:46 GMT 2010  Olly Betts <olly@survex.com>
7909         * bin/xapian-compact.cc: Convert error messages to stdout/stderr to
7910           exceptions, in preparation for turning this into an API class.
7912 Mon Sep 27 03:50:54 GMT 2010  Olly Betts <olly@survex.com>
7914         * bin/xapian-compact.cc: Add support for compacting to a stub database,
7915           which can be one of the inputs (for atomic update).
7916         * tests/api_compact.cc: Add testcases compactstub3 and compactstub4 as
7917           feature tests for this.
7919 Mon Sep 27 03:50:00 GMT 2010  Olly Betts <olly@survex.com>
7921         * tests/api_compact.cc: Suppress output from xapian-compact in
7922           compactstub2 (which I'd disabled for debugging).
7924 Sun Sep 26 13:59:20 GMT 2010  Olly Betts <olly@survex.com>
7926         * bin/xapian-compact.cc: Extend to work on stub database files too.
7927         * tests/api_compact.cc: Add feature test compactstub2.
7929 Sun Sep 26 13:28:45 GMT 2010  Olly Betts <olly@survex.com>
7931         * bin/xapian-compact.cc: Inputs can now be stub database directories,
7932           in which case the databases in the stub are used as inputs.
7933         * tests/api_compact.cc: Add feature test compactstub1.
7935 Sun Sep 26 11:11:49 GMT 2010  Olly Betts <olly@survex.com>
7937         * xapian-config.in: Add --static option which makes other options
7938           report values for static linking.
7940 Tue Sep 21 10:43:17 GMT 2010  Olly Betts <olly@survex.com>
7942         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow phrase
7943           generators between a probabilistic prefix and the term itself.
7945 Thu Sep 09 11:18:47 GMT 2010  Olly Betts <olly@survex.com>
7947         * INSTALL: Raise recommended GCC version from 3.3 to 4.1, since that's
7948           the oldest we regularly test with.
7950 Thu Sep 09 11:14:03 GMT 2010  Olly Betts <olly@survex.com>
7952         * HACKING: Debian etch was discontinued 6 months ago, so it's no longer
7953           useful to document packages for developing Xapian on it.
7955 Thu Sep 09 03:15:00 GMT 2010  Olly Betts <olly@survex.com>
7957         * docs/deprecation.rst: Actually write down our guidelines for
7958           supporting other software.
7960 Thu Sep 09 00:20:16 GMT 2010  Olly Betts <olly@survex.com>
7962         * docs/replication.rst: Adjust text to reflect conclusions about the
7963           issues in ticket#434.
7965 Thu Sep 09 00:10:03 GMT 2010  Olly Betts <olly@survex.com>
7967         * docs/replication.rst: Don't suggest using a symlink to switch between
7968           databases - a stub database is much better.
7970 Thu Sep 09 00:07:02 GMT 2010  Olly Betts <olly@survex.com>
7972         * docs/replication.rst: Assume xapian tools are installed on PATH not
7973           in the current directory for example commands.
7975 Thu Sep 09 00:05:22 GMT 2010  Olly Betts <olly@survex.com>
7977         * docs/replication.rst: Fix a typo.
7979 Mon Sep 06 07:10:02 GMT 2010  Olly Betts <olly@survex.com>
7981         * configure.ac: Add support for --enable-sse=sse and --enable-sse=sse2
7982           to allow control of which SSE instructions to use.
7984 Fri Sep 03 13:08:53 GMT 2010  Richard Boulton <richard@tartarus.org>
7986         * bin/xapian-replicate.cc: If a fullcopy was attempted, but was not
7987           put live, display an explanatory message (if verbose is true).
7989 Fri Sep 03 05:54:09 GMT 2010  Olly Betts <olly@survex.com>
7991         * backends/chert/chert_modifiedpostlist.h,
7992           backends/flint/flint_modifiedpostlist.h,tests/: Fixes required to
7993           build on OpenBSD 4.5 with GCC 3.3.5.
7995 Tue Aug 31 14:37:44 GMT 2010  Olly Betts <olly@survex.com>
7997         * include/xapian/queryparser.h: Document cases where FLAG_WILDCARD and
7998           FLAG_PARTIAL aren't currently supported.
8000 Mon Aug 30 06:27:46 GMT 2010  Olly Betts <olly@survex.com>
8002         * configure.ac: Actaully make autoconf 2.64 a hard minimum requirement
8003           (as HACKING already documented).
8004         * HACKING,NEWS,configure.ac: autoconf 2.67 is now used to bootstrap.
8006 Mon Aug 30 06:26:03 GMT 2010  Olly Betts <olly@survex.com>
8008         * NEWS: Update from ChangeLog.
8010 Mon Aug 30 06:04:13 GMT 2010  Olly Betts <olly@survex.com>
8012         * configure.ac: Enable use of SSE maths on x86 by default with Sun's
8013           compiler.
8015 Sat Aug 28 16:04:45 GMT 2010  Olly Betts <olly@survex.com>
8017         * api/omdatabase.cc,include/xapian/queryparser.h,
8018           tests/harness/backendmanager.h: None of the workarounds we have
8019           which are conditional on __SUNPRO_CC are needed with Sun C++
8020           version 5.8, so only enable them for older versions (which will
8021           mean we can drop these workarounds with confidence once older
8022           versions are dropped by Sun/Oracle, or once we can find out that
8023           they have been - currently all I've managed to discover is that
8024           version 5.0 reached "end of service life" in 6/2006).
8026 Sat Aug 28 15:33:14 GMT 2010  Olly Betts <olly@survex.com>
8028         * configure.ac,tests/api_replicate.cc: Solaris < 10 doesn't have
8029           setenv() so we have to use putenv() there.  And the value we set
8030           XAPIAN_MAX_CHANGESETS to is always constant currently, so set it
8031           using constant strings generated by a macro.
8033 Sat Aug 28 12:35:25 GMT 2010  Olly Betts <olly@survex.com>
8035         * configure.ac: Beef up the test for whether -lm is required and add
8036           a special case to force it to be for Sun's C++ compiler - there's
8037           some interaction with libtool and/or shared objects which means
8038           that the configure test doesn't think -lm is needed here when it
8039           is.
8041 Sat Aug 28 10:59:11 GMT 2010  Olly Betts <olly@survex.com>
8043         * api/matchspy.cc,common/const_database_wrapper.cc,net/tcpclient.cc,
8044           tests/api_replicate.cc,tests/harness/backendmanager_remotetcp.cc,
8045           tests/harness/testsuite.cc,tests/perftest/runprocess.cc,
8046           unicode/utf8itor.cc: Fix to compile with Sun C++.
8048 Sat Aug 28 10:30:08 GMT 2010  Olly Betts <olly@survex.com>
8050         * HACKING,PLATFORMS: Move PLATFORMS information to the wiki and replace
8051           with a pointer.
8053 Sat Aug 28 03:15:47 GMT 2010  Olly Betts <olly@survex.com>
8055         * matcher/queryoptimiser.cc: Need to avoid excess precision on m68k
8056           when targeting models 68010, 68020, 68030 as well as 68000.
8058 Tue Aug 24 05:54:27 GMT 2010  Olly Betts <olly@survex.com>
8060         * configure.ac: Update for 1.2.3.
8062 Tue Aug 24 05:52:47 GMT 2010  Olly Betts <olly@survex.com>
8064         * NEWS: Update from ChangeLog.
8066 Mon Aug 16 16:46:19 GMT 2010  Olly Betts <olly@survex.com>
8068         * common/closefrom.cc: Use /dev/fd on Mac OS X.
8070 Mon Aug 16 16:18:26 GMT 2010  Olly Betts <olly@survex.com>
8072         * common/closefrom.cc: Need safeerrno.h and safeunistd.h on non-Linux
8073           platforms too.
8075 Mon Aug 16 15:47:48 GMT 2010  Olly Betts <olly@survex.com>
8077         * backends/flint_lock.cc,common/Makefile.mk,common/closefrom.cc,
8078           common/closefrom.h,configure.ac,net/progclient.cc: Use closefrom()
8079           if available, otherwise provide our own implementation (optimised
8080           to some extent for many platforms).
8082 Sun Aug 15 12:43:04 GMT 2010  Olly Betts <olly@survex.com>
8084         * AUTHORS: Update.
8086 Sun Aug 15 12:11:26 GMT 2010  Olly Betts <olly@survex.com>
8088         * xapian-core.spec.in: Update BuildRequires to specify libuuid-devel
8089           instead of e2fsprogs-devel.
8091 Sun Aug 15 11:30:05 GMT 2010  Olly Betts <olly@survex.com>
8093         * HACKING,INSTALL,common/safeuuid.h,common/win32_uuid.cc,
8094           common/win32_uuid.h,configure.ac: libuuid moved from e2fsprogs to
8095           util-linux-ng about a year ago, so update documentation, comments,
8096           and configure error messages to reflect this.  Issue reported by
8097           David Jeske on xapian-devel list.
8099 Sun Aug 15 07:58:51 GMT 2010  Olly Betts <olly@survex.com>
8101         * tests/harness/backendmanager_remotetcp.cc: Under __WIN32__, we need
8102           <io.h> for _open_osfhandle() (ticket#495).
8104 Sun Aug 15 07:10:25 GMT 2010  Olly Betts <olly@survex.com>
8106         * common/realtime.h: MSVC doesn't cope with a prototype at function
8107           scope with a global namespace qualification (ticket#495).
8109 Wed Aug 04 10:44:08 GMT 2010  Olly Betts <olly@survex.com>
8111         * backends/flint_lock.cc,backends/multi/multi_alltermslist.cc,
8112           bin/xapian-chert-update.cc,queryparser/termgenerator.cc,
8113           queryparser/termgenerator_internal.cc: Fix more incorrect @file
8114           directives.
8116 Wed Aug 04 09:19:10 GMT 2010  Olly Betts <olly@survex.com>
8118         * matcher/localsubmatch.h,queryparser/termgenerator_internal.h: Fix
8119           incorrect @file doxygen directives.
8121 Tue Aug 03 14:42:56 GMT 2010  Olly Betts <olly@survex.com>
8123         * tests/harness/fdtracker.h: Fix filename in @file.
8125 Tue Aug 03 14:32:45 GMT 2010  Olly Betts <olly@survex.com>
8127         * common/contiguousalldocspostlist.h,common/unaligned.h: Fix include
8128           guards to match header filename (cosmetic issues only).
8130 Mon Aug 02 12:38:59 GMT 2010  Olly Betts <olly@survex.com>
8132         * backends/brass/brass_table.cc,backends/brass/brass_values.cc,
8133           backends/chert/chert_table.cc,backends/chert/chert_values.cc,
8134           backends/flint/flint_alldocspostlist.cc,
8135           backends/remote/remote-document.cc,matcher/multimatch.cc,
8136           matcher/remotesubmatch.cc,net/progclient.cc: Use new Literal()
8137           feature in debug logging of function calls.
8139 Mon Aug 02 12:08:42 GMT 2010  Olly Betts <olly@survex.com>
8141         * common/pretty.h: Add Literal() class to allow bypassing the pretty
8142           printer for interspersing literal strings.
8144 Sun Aug 01 10:19:38 GMT 2010  Olly Betts <olly@survex.com>
8146         * api/omdatabase.cc: Database::get_spelling_suggestion() will now
8147           suggest a correction even if the passed word is in the dictionary,
8148           provided the correction has at least the same frequency.  Partly
8149           addresses #225.
8150         * queryparser/queryparser.lemony: Check spelling even if term is in
8151           the database.
8152         * docs/spelling.rst: Update to reflect these changes.
8153         * tests/api_spelling.cc,tests/queryparsertest.cc: Add test coverage for
8154           these changes.
8156 Tue Jul 27 15:24:56 GMT 2010  Tim Brody <tdb2@ecs.soton.ac.uk>
8158         * xapian-core.spec.in: Add xapian-metadata and cmake related files to
8159           RPM packaging.
8161 Thu Jul 22 07:13:12 GMT 2010  Olly Betts <olly@survex.com>
8163         * net/remoteconnection.cc: Wrap line.
8165 Thu Jul 22 07:11:23 GMT 2010  Olly Betts <olly@survex.com>
8167         * common/remoteserver.h,net/remoteserver.cc: Pass 1.0 for the end time
8168           when relaying a NetworkTimeoutError, not RealTime::now() - any time
8169           in the past will do, we just want the operation to time out if it
8170           would block.  Removed related FIXME which is already resolved.
8172 Wed Jul 21 18:00:08 GMT 2010  Olly Betts <olly@survex.com>
8174         * unicode/tclUniData.cc: Fix comment - this is Unicode 5.2 data, not
8175           5.1.
8177 Thu Jul 15 13:45:05 GMT 2010  Olly Betts <olly@survex.com>
8179         * common/realtime.h:Explicitly specify global namespace for
8180           xapian_sleep_milliseconds prototype as MSVC seems to need this.
8182 Thu Jul 15 13:03:13 GMT 2010  Olly Betts <olly@survex.com>
8184         * queryparser/queryparser.lemony: Fix handling of groups of terms which
8185           are all stopwords - in situations where this causes a problem we now
8186           disable stopword checks for such groups.  (ticket#245)
8187         * tests/queryparsertest.cc: Add regression testcases.
8189 Thu Jul 15 08:13:03 GMT 2010  Olly Betts <olly@survex.com>
8191         * common/fileutils.cc: Fix reversed memcmp() test.
8193 Sun Jul 11 14:59:06 GMT 2010  Olly Betts <olly@survex.com>
8195         * common/fileutils.cc: Factor out UNCW path check into a helper
8196           function.
8198 Sun Jul 11 14:56:27 GMT 2010  Olly Betts <olly@survex.com>
8200         * common/fileutils.cc,tests/Makefile.am,tests/unittest.cc: Move the
8201           tests of resolve_relative_path() into a new "unittest" program so
8202           they actually are run by "make check".  (ticket#243)
8204 Sun Jul 11 13:14:24 GMT 2010  Olly Betts <olly@survex.com>
8206         * common/fileutils.cc: Support the \\?\ path syntax.
8208 Sat Jul 10 15:49:08 GMT 2010  Olly Betts <olly@survex.com>
8210         * common/fileutils.cc,common/fileutils.h: Fix resolve_relative_path()
8211           to handle UNC paths.
8213 Sat Jul 10 15:27:48 GMT 2010  Olly Betts <olly@survex.com>
8215         * common/fileutils.cc: -D__WIN32__ on the g++ command line works for
8216           testing on Linux, so no need to have that in the code.  Add a couple
8217           of UNC path test cases which pass, and a commented-out one which
8218           fails.
8220 Sat Jul 10 14:58:35 GMT 2010  Olly Betts <olly@survex.com>
8222         * common/fileutils.cc,common/fileutils.h: We use these routines to
8223           resolve a relative path (in a stub database file) in terms of a
8224           second path (the filename of that file), so just instead a
8225           routine to do exactly that, which is easier to code and more
8226           efficient.  The new implementation fixes several bugs with
8227           Microsoft Windows paths.  Some testcases (currently not used)
8228           are now present in fileutils.cc (ticket#243).
8229         * backends/dbfactory.cc: Use the new API.
8231 Fri Jul 09 07:42:31 GMT 2010  Olly Betts <olly@survex.com>
8233         * tests/perftest/perftest.cc: I missed a use of atoi() on std::string
8234           but just call .cstr() on the string instead of dragging in utils.h.
8236 Fri Jul 09 04:39:40 GMT 2010  Olly Betts <olly@survex.com>
8238         * common/utils.cc,common/utils.h: Remove unused std::string to const
8239           char * wrappers for standard functions, and remove the only use of
8240           rmdir()'s wrapper.
8242 Thu Jul 08 15:18:04 GMT 2010  Olly Betts <olly@survex.com>
8244         * api/omenquire.cc: Xapian::ESet is a reference counted handle, so it
8245           is efficient to return by value - remove FIXME which suggests we
8246           should avoid doing so.
8248 Thu Jul 08 15:17:20 GMT 2010  Olly Betts <olly@survex.com>
8250         * api/omqueryinternal.cc: Update FIXMEs - it's too late to fix stuff
8251           in 1.1.x!
8253 Thu Jul 08 15:13:47 GMT 2010  Olly Betts <olly@survex.com>
8255         * api/omenquire.cc: Remove FIXMEs about debug logging which have been
8256           addressed by the fairly recent debug logging improvements.
8258 Thu Jul 08 15:07:07 GMT 2010  Olly Betts <olly@survex.com>
8260         * api/keymaker.cc: Fix comment typos.
8262 Thu Jul 08 14:50:59 GMT 2010  Olly Betts <olly@survex.com>
8264         * api/replication.cc,backends/brass/,backends/chert/,
8265           backends/dbfactory_remote.cc,backends/flint/,
8266           backends/remote/remote-database.cc,bin/xapian-progsrv.cc,
8267           bin/xapian-tcpsrv.cc,common/,net/,tests/perftest/perftest.cc,
8268           tests/perftest/perftest.h: Replace use of OmTime with a double
8269           holding a count in seconds since the epoch.
8271 Thu Jul 08 12:35:40 GMT 2010  Olly Betts <olly@survex.com>
8273         * net/tcpclient.cc: Retry select() if it fails with EINTR while waiting
8274           for connect(), and discriminate cases with same failure message to
8275           aid debugging.
8277 Thu Jul 08 05:09:18 GMT 2010  Olly Betts <olly@survex.com>
8279         * queryparser/queryparser.lemony: Remove comment left over from the
8280           "boolean exclusive" work.
8282 Wed Jul 07 13:18:17 GMT 2010  Olly Betts <olly@survex.com>
8284         * include/xapian/types.h: Fix documentation comment for Xapian::timeout
8285           type - it holds a time interval in milliseconds not microseconds
8286           (the API docs for the methods which use it explicitly document this
8287           correctly).
8289 Tue Jul 06 15:17:09 GMT 2010  Olly Betts <olly@survex.com>
8291         * tests/queryparsertest.cc: Fix formatting.
8293 Tue Jul 06 14:13:03 GMT 2010  Olly Betts <olly@survex.com>
8295         * tests/perftest/perftest.cc: Use str(OmTime::as_double()) rather than
8296           trying to assemble a string of a floating point number from strings
8297           of the sec and usec values.
8299 Tue Jul 06 14:03:30 GMT 2010  Olly Betts <olly@survex.com>
8301         * common/debuglog.h,common/remote-database.h: Remove unused '#include
8302           "omtime.h"'.
8303         * backends/remote/remote-database.cc: Add explicit '#include
8304           "omtime.h"'.
8306 Mon Jul 05 11:40:42 GMT 2010  Olly Betts <olly@survex.com>
8308         * queryparser/queryparser.lemony: Restore iterator to start of
8309           where we tried to parse a range if we decide it might be a filter
8310           term instead.  Clear the error if we decide it is a filter.
8311         * tests/queryparsertest.cc: Fix expected test output from
8312           qp_value_range4 testcase.
8314 Mon Jul 05 06:46:16 GMT 2010  Olly Betts <olly@survex.com>
8316         * queryparser/queryparser.lemony: Fix to be smarter about handling a
8317           boolean filter term containing ".." in the presence of
8318           valuerangeprocessors.
8319         * tests/queryparsertest.cc: Add regression test qp_value_range4.
8321 Mon Jul 05 04:10:08 GMT 2010  Olly Betts <olly@survex.com>
8323         * queryparser/queryparser.lemony,queryparser/queryparser.lt: Clean up
8324           how value ranges are handled to do the checking of the range in the
8325           lexer, which then passes a single token (RANGE) to the parser
8326           (instead of a RANGE_START token which is always followed by a
8327           RANGE_END token).
8329 Fri Jul 02 12:32:37 GMT 2010  Olly Betts <olly@survex.com>
8331         * configure.ac: Don't pass -mtune=generic unless GCC >= 4.2 is in use
8332           (ticket#492).
8334 Wed Jun 30 10:54:15 GMT 2010  Olly Betts <olly@survex.com>
8336         * backends/brass/brass_postlist.cc: Remove unnecessary NULL check.
8337           Identified by Coverity's Scan.
8338         * backends/chert/chert_postlist.cc: Same change for chert.
8340 Tue Jun 29 12:17:16 GMT 2010  Olly Betts <olly@survex.com>
8342         * backends/brass/brass_chunkedlisttable.h,
8343           backends/chert/chert_chunkedlisttable.h: Remove unused files.
8345 Sun Jun 27 04:31:06 GMT 2010  Olly Betts <olly@survex.com>
8347         * NEWS: Update for 1.2.2.
8349 Sun Jun 27 04:22:28 GMT 2010  Olly Betts <olly@survex.com>
8351         * examples/delve.cc: Show the database's UUID.
8353 Sun Jun 27 03:30:16 GMT 2010  Olly Betts <olly@survex.com>
8355         * NEWS.SKELETON: Add "tools" section.
8357 Sun Jun 27 03:03:57 GMT 2010  Olly Betts <olly@survex.com>
8359         * configure.ac: Update for 1.2.2.
8361 Sat Jun 26 15:55:45 GMT 2010  Olly Betts <olly@survex.com>
8363         * NEWS: Create from ChangeLog.
8365 Sat Jun 26 15:36:37 GMT 2010  Olly Betts <olly@survex.com>
8367         * NEWS.SKELETON: Add template for NEWS entry.
8369 Sat Jun 26 11:09:03 GMT 2010  Olly Betts <olly@survex.com>
8371         * backends/brass/brass_table.cc: Sync the table right after the base
8372           file, which allows more time for the table changes to be written,
8373           and doing the sync together may be more efficient with some Linux
8374           kernel versions.
8375         * backends/chert/chert_table.cc: Same change for chert.
8377 Sat Jun 26 06:46:39 GMT 2010  Olly Betts <olly@survex.com>
8379         * HACKING: Reorder the release checklist.
8381 Thu Jun 24 08:03:18 GMT 2010  Olly Betts <olly@survex.com>
8383           bin/xapian-check.cc: Don't try to check doclengths are consistent
8384           between the postlist and termlist tables if it would use more than
8385           1GB of memory, and handle std::bad_alloc or std::length_error.  This
8386           issue affects sup users, as sup allocates docids such that they are
8387           sparse and large docids can easily occur.
8389 Wed Jun 23 15:38:25 GMT 2010  Olly Betts <olly@survex.com>
8391         * include/xapian/weight.h: Revert Xapian::Weight's copy ctor back
8392           to protected as GCC 4.1 fails to compile subclasses when it is
8393           private (this appears to be a compiler bug).
8395 Wed Jun 23 07:31:19 GMT 2010  Olly Betts <olly@survex.com>
8397         * AUTHORS: Thank people who reported bugs fixed in 1.2.1.
8399 Wed Jun 23 06:52:54 GMT 2010  Olly Betts <olly@survex.com>
8401         * xapian-core.spec.in: Update for 1.2.x - add e2fsprogs-devel to
8402           BuildRequires and add new files.
8404 Wed Jun 23 05:00:34 GMT 2010  Olly Betts <olly@survex.com>
8406         * HACKING: Wording tweak.
8408 Wed Jun 23 04:11:30 GMT 2010  Olly Betts <olly@survex.com>
8410         * tests/harness/testsuite.cc: Need <cstdio> for sprintf().  Fixes
8411           compilation error for some platforms and/or compilers (my guess would
8412           be GCC 4.5 - it builds OK with GCC 4.4).  (ticket#489)
8414 Tue Jun 22 14:45:37 GMT 2010  Olly Betts <olly@survex.com>
8416         * NEWS,configure.ac: Update for 1.2.1.
8418 Mon Jun 21 16:00:22 GMT 2010  Olly Betts <olly@survex.com>
8420         * NEWS: Sync with 1.0.21 and update from ChangeLog.
8422 Mon Jun 21 15:15:50 GMT 2010  Olly Betts <olly@survex.com>
8424         * tests/api_replicate.cc: Unix putenv() requires the buffer passed to
8425           remain valid, as it stores it directly in the environment.  It's
8426           unclear from MSDN if _putenv() does the same, but _putenv_s() must
8427           allocate a copy since it needs to have an '=' in, so use that
8428           instead.  It also has an interface much like setenv(), so the code
8429           looks more similar.
8431 Mon Jun 21 06:07:42 GMT 2010  Olly Betts <olly@survex.com>
8433         * queryparser/queryparser.cc: Add missing const.
8435 Mon Jun 21 05:21:32 GMT 2010  Olly Betts <olly@survex.com>
8437         * queryparser/queryparser.cc: Update to match header ABI fix.
8439 Mon Jun 21 03:52:41 GMT 2010  Olly Betts <olly@survex.com>
8441         * include/xapian/queryparser.h: QueryParser::add_boolean_prefix() now
8442           uses two overloaded forms instead of a default parameter so that we
8443           don't break the ABI.
8445 Fri Jun 18 16:56:59 GMT 2010  Olly Betts <olly@survex.com>
8447         * AUTHORS: Add 1.0.21 bug reporters.
8449 Fri Jun 18 05:52:00 GMT 2010  Olly Betts <olly@survex.com>
8451         * include/xapian/queryparser.h,queryparser/queryparser.cc,
8452           queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
8453           Add new optional parameter to QueryParser::add_boolean_prefix() to
8454           allow the user to indicate a prefix isn't "exclusive" and that
8455           OP_AND should be used to combine multiple instances.  Fixes
8456           ticket#402.  This change should also improve efficiency as it
8457           avoids copying the lists of prefixes and compares them more
8458           efficiently.
8460 Fri Jun 18 02:51:11 GMT 2010  Olly Betts <olly@survex.com>
8462         * include/xapian/queryparser.h: Fix doccomment typo.
8464 Thu Jun 17 14:04:35 GMT 2010  Olly Betts <olly@survex.com>
8466         * include/xapian/weight.h: Xapian::Weight's copy ctor is now
8467           private rather than protected.  This is an API and ABI compatible
8468           change since there's no definition so a subclass which tried to
8469           access it before would fail to link.
8471 Thu Jun 17 13:00:47 GMT 2010  Olly Betts <olly@survex.com>
8473         * queryparser/queryparser.lemony: Missing changes from previous commit.
8475 Thu Jun 17 11:37:30 GMT 2010  Olly Betts <olly@survex.com>
8477         * api/valuerangeproc.cc: Add support for open-ended ranges
8478           (ticket#480).
8479         * docs/queryparser.html,docs/valueranges.rst: Document.
8480         * tests/queryparsertest.cc: Add feature tests.
8482 Thu Jun 17 06:15:24 GMT 2010  Olly Betts <olly@survex.com>
8484         * queryparser/queryparser.lemony: Switch out of IN_GROUP mode when we
8485           emit a WILDCARD.  Fixeds bug#484.
8486         * tests/queryparsertest.cc: Add regression testcase to wildcard1.
8488 Thu Jun 17 02:42:16 GMT 2010  Olly Betts <olly@survex.com>
8490         * tests/api_backend.cc: Rename failedadd1 to failedreplace1 as it's the
8491           replace which fails really.  Add failedreplace2 which adds explicit
8492           coverage for the case of a failed replace when the database isn't
8493           empty to start with.
8495 Tue Jun 15 12:45:36 GMT 2010  Olly Betts <olly@survex.com>
8497         * include/xapian/queryparser.h: Note in the description of
8498           set_database() what the database is used for.
8500 Tue Jun 15 12:26:12 GMT 2010  Olly Betts <olly@survex.com>
8502         * include/xapian/queryparser.h: Fix formatting of bullet list.
8504 Mon Jun 14 17:02:10 GMT 2010  Olly Betts <olly@survex.com>
8506         * backends/brass/brass_table.cc,backends/chert/chert_table.cc,
8507           backends/flint/flint_table.cc: cancel() now marks the Btree as
8508           unmodified.
8509         * tests/api_backend.cc: Add regression test failedadd1.
8511 Sun Jun 13 16:07:49 GMT 2010  Olly Betts <olly@survex.com>
8513         * common/Makefile.mk,common/safeuuid.h,configure.ac: Fix mingw build to
8514           use __WIN32__ UUID API.
8516 Sun Jun 13 12:25:24 GMT 2010  Olly Betts <olly@survex.com>
8518         * tests/perftest/freemem.cc: Fix whitespace to match Omega's version.
8520 Sun Jun 13 11:52:24 GMT 2010  Olly Betts <olly@survex.com>
8522         * tests/perftest/freemem.cc: Merge in changes from omega's version.
8523           Clean up whitespace issues.  Put the __WIN32__ case last, as we
8524           tend to elsewhere (since most people reading the code probably
8525           want to see the other version).
8527 Sun Jun 13 11:32:30 GMT 2010  Olly Betts <olly@survex.com>
8529         * tests/perftest/perftest.cc: "MSWin32" isn't the OS name.  Also,
8530           prefer += to build up a string.
8532 Sat Jun 12 09:31:28 GMT 2010  Olly Betts <olly@survex.com>
8534         * tests/api_percentages.cc: Note that 1.0.x returned 4% for the top hit
8535           in topercent5, so checking it gets at least 50% is a regression test
8536           for that issue.
8538 Fri Jun 11 15:38:26 GMT 2010  Olly Betts <olly@survex.com>
8540         * configure.ac: -march=pentium4 doesn't seem to give a measurable
8541           speed-up or size reduction (from Richard's tests) and it carries a
8542           small risk of introducing instructions which don't work on some
8543           obscure CPU which implements SSE2, so drop it.
8545 Fri Jun 11 15:25:16 GMT 2010  Olly Betts <olly@survex.com>
8547         * weight/bm25weight.cc: Stop forcing the wdf_max value to be at least
8548           one in BM25Weight::get_maxpart() - this is no longer needed now we
8549           calculate percentages based on the number of matching subqueries, and
8550           it is more natural for a non-existent term to get zero weight (ditto
8551           for a term which always has wdf = 0.
8552         * tests/api_anydb.cc: Change qterminfo1 to check that a non-existent
8553           term gets zero weight (previously we checked that it got a non-zero
8554           weight, but really we want to ensure that it contributes to
8555           percentage calculations, which new test topercent5 now does).
8557 Fri Jun 11 15:19:29 GMT 2010  Olly Betts <olly@survex.com>
8559         * tests/api_percentages.cc: Add topercent5 testcase which checks that
8560           an OR search including an non-existent term doesn't get 100%, and
8561           that the non-existent term doesn't score more than terms which do
8562           exist.
8564 Fri Jun 11 14:15:07 GMT 2010  Olly Betts <olly@survex.com>
8566         * matcher/queryoptimiser.cc: When using SSE FP instructions on x86 we
8567           can disable the use of volatile since there are no excess precision
8568           issues to work around.
8570 Fri Jun 11 08:21:04 GMT 2010  Olly Betts <olly@survex.com>
8572         * configure.ac: Put SSE flags in AM_CXXFLAGS not CXXFLAGS.
8574 Fri Jun 11 07:08:01 GMT 2010  Olly Betts <olly@survex.com>
8576         * configure.ac: Default to building with SSE FP instructions for x86.
8577           This avoids issues with excess precision and it a bit faster too.
8578           Should fix ticket#487.
8580 Thu Jun 10 15:15:33 GMT 2010  Olly Betts <olly@survex.com>
8582         * NEWS: Update from ChangeLog.
8584 Thu Jun 10 15:00:12 GMT 2010  Olly Betts <olly@survex.com>
8586         * HACKING: Capitalise "Fedora".
8588 Thu Jun 10 11:27:18 GMT 2010  Olly Betts <olly@survex.com>
8590         * INSTALL: Reword UUID section - list platforms where we make use of
8591           built-in APIs first, give the URL for e2fsprogs home page, and
8592           give the package name for Debian and Ubuntu.
8594 Thu Jun 10 01:08:21 GMT 2010  Olly Betts <olly@survex.com>
8596         * HACKING: libtool 2.2.10 used for snapshots and releases now.
8598 Thu Jun 10 00:21:49 GMT 2010  Olly Betts <olly@survex.com>
8600         * configure.ac,include/xapian/version_h.cc,
8601           include/xapian/visibility.h: We do need to have the visibility
8602           annotations on for code compiling against the library, so substitute
8603           the probed value of XAPIAN_ENABLE_VISIBILITY into <xapian/version.h>
8604           so it is available.
8606 Wed Jun 09 11:31:14 GMT 2010  Olly Betts <olly@survex.com>
8608         * INSTALL,configure.ac,include/xapian/visibility.h: Control use of
8609           GCC's visibility support with defined(XAPIAN_ENABLE_VISIBILITY)
8610           instead of !defined(XAPIAN_DISABLE_VISIBILITY), so it is only used
8611           when building the library, not when building code which uses it.
8612           Add check to configure that GCC actually supports visibility for
8613           the platform being built for, which fixes compiler warnings with
8614           platforms which don't (such as Mac OS X and mingw).
8616 Wed Jun 09 11:17:58 GMT 2010  Olly Betts <olly@survex.com>
8618         * HACKING: "private", etc as "access specifiers", not "visibility
8619           specifiers".
8621 Wed Jun 09 11:04:55 GMT 2010  Olly Betts <olly@survex.com>
8623         * HACKING: Note flex and bison needed to build doxygen.
8625 Wed Jun 09 05:25:10 GMT 2010  Olly Betts <olly@survex.com>
8627         * common/win32_uuid.cc: Fix signed/unsigned comparison warning on
8628           mingw.
8630 Tue Jun 08 16:56:26 GMT 2010  Olly Betts <olly@survex.com>
8632         * common/safewinsock2.h: Reword #error to avoid single quote which
8633           gives compilation warning with some GCC 4.2.1 on mingw.
8635 Tue Jun 08 14:32:28 GMT 2010  Olly Betts <olly@survex.com>
8637         * backends/brass/brass_check.h,backends/chert/chert_check.h,
8638           backends/flint/flint_check.h: Remove mutable from std::ostream &
8639           member - mutable doesn't make sense for a reference.
8641 Tue Jun 08 13:03:56 GMT 2010  Olly Betts <olly@survex.com>
8643         * common/,matcher/,weight/weightinternal.cc: Replace the still rather
8644           contorted mechanism for accumulating rel termfreqs for local
8645           databases with a simpler mechanism which is more efficient in both
8646           space and time.
8648 Mon Jun 07 16:31:24 GMT 2010  Olly Betts <olly@survex.com>
8650         * api/maptermlist.h,api/matchspy.cc,api/termlist.cc,backends/brass/,
8651           backends/chert/,backends/flint/,
8652           backends/inmemory/inmemory_database.cc,
8653           backends/inmemory/inmemory_database.h,
8654           backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
8655           backends/remote/net_termlist.cc,backends/remote/net_termlist.h,
8656           common/ortermlist.h,common/termlist.h,expand/ortermlist.cc: Remove
8657           default OrTermList::skip_to() implementation and implement skip_to()
8658           in each class instead, as this allows a slightly more efficient
8659           implementation, and also avoids problems with calling skip_to() as
8660           the first operation for the many subclasses which have a "started"
8661           flag, which OrTermList::skip_to() won't set.
8663 Mon Jun 07 06:08:53 GMT 2010  Olly Betts <olly@survex.com>
8665         * queryparser/queryparser.lemony: Rename TermList class to Terms to
8666           avoid confusion with the TermList typedef used elsewhere.  Add
8667           documentation comments for Terms and TermGroup classes.
8669 Mon Jun 07 02:18:05 GMT 2010  Olly Betts <olly@survex.com>
8671         * backends/brass/: Switch to using io_utils instead of brass_io.
8673 Mon Jun 07 02:16:30 GMT 2010  Olly Betts <olly@survex.com>
8675         * AUTHORS: Add Arvid Ephraim Picciani for help fixing bootstrap for
8676           BusyBox sha1sum.
8678 Mon Jun 07 01:16:57 GMT 2010  Olly Betts <olly@survex.com>
8680         * common/io_utils.cc: Whitespace tweak.
8682 Mon Jun 07 00:58:26 GMT 2010  Olly Betts <olly@survex.com>
8684         * common/io_utils.h: Fix header guard macro name to follow convention.
8686 Sun Jun 06 15:07:55 GMT 2010  Olly Betts <olly@survex.com>
8688         * HACKING,configure.ac: Upgrade to using libtool 2.2.8.
8690 Sun Jun 06 04:34:13 GMT 2010  Olly Betts <olly@survex.com>
8692         * bin/Makefile.mk,configure.ac: Fix build failures with some
8693           combinations of backends disabled (partially addresses ticket#361).
8695 Sat Jun 05 16:30:57 GMT 2010  Olly Betts <olly@survex.com>
8697         * matcher/remotesubmatch.cc: Add missing parameter of
8698           RemoteSubMatch::start_match() to debug logging.
8700 Sat Jun 05 15:03:56 GMT 2010  Olly Betts <olly@survex.com>
8702         * matcher/queryoptimiser.h: Make QueryOptimiser::optimise_query()'s
8703           argument const pointer, since we only pass it to do_subquery() which
8704           takes a const pointer.
8706 Fri Jun 04 16:05:01 GMT 2010  Olly Betts <olly@survex.com>
8708         * common/rset.h: Just keep a reference to the set<docid> from the
8709           Xapian::RSet object rather than copying it (since we now only
8710           create the RSetI object transiently, so the Xapian::RSet object
8711           is definitely valid for its whole lifetime).
8713 Fri Jun 04 15:57:50 GMT 2010  Olly Betts <olly@survex.com>
8715         * api/omenquire.cc,matcher/localmatch.cc,matcher/localmatch.h: Keep
8716           a Xapian::RSet handle in the LocalSubMatch object and only create
8717           an RSetI object briefly in LocalSubMatch::prepare_match().
8719 Fri Jun 04 15:36:45 GMT 2010  Olly Betts <olly@survex.com>
8721         * common/pretty.h: RSetI objects are no longer passed as parameters
8722           or return values, so we no longer need to handle them.
8724 Fri Jun 04 15:28:21 GMT 2010  Olly Betts <olly@survex.com>
8726         * api/omenquire.cc,common/esetinternal.h,common/omenquireinternal.h,
8727           common/rset.h,expand/esetinternal.cc,matcher/rset.cc: RSetI is used
8728           when collating statistics prior to performing the match, and when
8729           generating an ESet.  The second use is entirely unnecessary and just
8730           ends up with us copying the std::set<Xapian::docid> from inside the
8731           Xapian::RSet object, so eliminate it and just use the Xapian::RSet
8732           object directly.  This allows RSetI to be simplified somewhat too.
8734 Fri Jun 04 14:22:38 GMT 2010  Olly Betts <olly@survex.com>
8736         * tests/api_backend.cc: Make arrays static const.
8738 Fri Jun 04 13:25:20 GMT 2010  Olly Betts <olly@survex.com>
8740         * backends/Makefile.mk: Note need to update include/xapian/version_h.cc
8741           when adding a new backend.
8742         * AUTHORS: Thanks to Conrad Hoffmann for pointing this omission out.
8744 Thu Jun 03 15:01:44 GMT 2010  Richard Boulton <richard@tartarus.org>
8746         * tests/soaktest/soaktest_queries.cc: Add missing include of str.h
8748 Thu Jun 03 12:09:35 GMT 2010  Richard Boulton <richard@tartarus.org>
8750         * tests/Makefile.am: Fix building of zlib-vg.so in VPATH builds.
8752 Thu Jun 03 11:49:31 GMT 2010  Richard Boulton <richard@tartarus.org>
8754         * matcher/orpostlist.cc,tests/api_backend.cc: Fix several bugs in
8755           OrPostList::check() (introduced since 1.2.0).  Fixes ticket #485.
8756           Specifically, we have to check a sub-postlist even if head=did,
8757           because we need to know if that sub-postlist is valid.  Also, if
8758           a sub-postlist is not valid, set its head to did+1, since we know
8759           that we're no longer interested in matches before did, and this
8760           allows the OrPostList to assume that the minimum docid of its
8761           children is the current docid.
8763 Thu Jun 03 07:15:24 GMT 2010  Olly Betts <olly@survex.com>
8765         * matcher/: Implement MultiXorPostList which returns correct weights
8766           for XOR of more than 2 subqueries, and drop XorPostList completely.
8767           (ticket#475)
8768         * tests/api_anydb.cc: Add regression test xor2.
8770 Thu Jun 03 04:38:56 GMT 2010  Olly Betts <olly@survex.com>
8772         * tests/api_replicate.cc: Tweak loop end test to be a normal while.
8774 Thu Jun 03 01:22:20 GMT 2010  Olly Betts <olly@survex.com>
8776         * tests/api_stem.cc: Note stem2's feature was backported to 1.0.21.
8778 Tue Jun 01 13:49:44 GMT 2010  Olly Betts <olly@survex.com>
8780         * backends/brass/brass_database.cc,backends/brass/brass_termlist.cc,
8781           backends/chert/chert_database.cc,backends/chert/chert_termlist.cc,
8782           backends/flint/flint_database.cc,backends/flint/flint_document.cc,
8783           backends/flint/flint_termlist.cc,matcher/: Fix LOGCALL_VOID uses
8784           for ctors and dtors to be LOGCALL_CTOR and LOGCALL_DTOR respectively.
8786 Tue Jun 01 13:33:07 GMT 2010  Olly Betts <olly@survex.com>
8788         * api/omdocument.cc: Use LOGCALL_VOID instead of LOGCALL with a void
8789           return type.
8791 Tue Jun 01 13:08:02 GMT 2010  Olly Betts <olly@survex.com>
8793         * matcher/multimatch.cc: The debug logging now copes with being passed
8794           RSet* so remove special casing with ?:.
8796 Tue Jun 01 10:17:27 GMT 2010  Olly Betts <olly@survex.com>
8798         * HACKING,configure.ac: Drop support for --enable-log=profile -
8799           dedicated profiling tools are likely to return more useful results.
8800         * common/debuglog.cc,common/debuglog.h: Rename xapian_debuglogger__
8801           global to xapian_debuglogger_ to avoid reserved __ in the name.
8802         * common/omdebug.cc,common/omdebug.h: Remove in favour of debuglog.h.
8803         * common/pretty.h: New PrettyOStream<> template class for pretty
8804           printing types in debug logs (and eventually the testsuite).
8805         * api/,backends/brass/,backends/chert/,
8806           backends/dbfactory_remote.cc,backends/flint/,
8807           backends/inmemory/inmemory_database.cc,
8808           backends/inmemory/inmemory_document.cc,
8809           backends/inmemory/inmemory_positionlist.cc,
8810           backends/multi/multi_postlist.cc,backends/multi/multi_termlist.cc,
8811           common/,expand/esetinternal.cc,expand/expandweight.cc,
8812           expand/ortermlist.cc,matcher/,net/progclient.cc,
8813           net/remoteconnection.cc: Migrate all remaining uses of omdebug.h to
8814           debuglog.h.  Write more parameters to the debug log.  Retire the
8815           barely used APICALL category and use API instead (reflecting actual
8816           current use).  Add new REPLICA category.  Fix names logged for ctors
8817           and dtors which have "::" in the class name.
8819 Sun May 30 13:45:12 GMT 2010  Olly Betts <olly@survex.com>
8821         * api/omenquire.cc: Remove bogus "Data::" from debug logging for two
8822           methods.
8824 Sun May 30 08:49:22 GMT 2010  Olly Betts <olly@survex.com>
8826         * include/xapian/stem.h,languages/stem.cc: Xapian::Stem now recognises
8827           "nb" and "nn" as codes for the Norwegian stemmer.
8828         * tests/api_stem.cc: Add feature test stem2 to check that these new
8829           codes work.
8831 Sat May 29 10:12:40 GMT 2010  Olly Betts <olly@survex.com>
8833         * common/debuglog.h: Add overload of operator| which writes ", " and
8834           then a value to std::ostream.
8835         * api/omdatabase.cc,api/replication.cc,
8836           backends/brass/brass_alldocspostlist.cc,
8837           backends/brass/brass_metadata.cc,backends/brass/brass_table.cc,
8838           backends/chert/,backends/dbfactory.cc,
8839           backends/flint/flint_alldocspostlist.cc,expand/esetinternal.cc,
8840           expand/expandweight.cc,matcher/,net/remoteconnection.cc,
8841           weight/bm25weight.cc,weight/weight.cc: Use this in LOGCALL uses to
8842           make them shorter and more readable.
8844 Fri May 28 06:47:57 GMT 2010  Olly Betts <olly@survex.com>
8846         * api/leafpostlist.cc,api/omdatabase.cc,backends/brass/brass_table.cc,
8847           backends/chert/chert_table.cc,backends/dbfactory.cc,
8848           backends/flint/flint_alldocspostlist.cc: Put LOGCALL macro use all on
8849           one line so we can more easily mechanise use and update.
8851 Fri May 28 04:22:35 GMT 2010  Olly Betts <olly@survex.com>
8853         * api/replication.cc,api/valueiterator.cc,
8854           backends/brass/brass_alltermslist.cc,
8855           backends/chert/chert_alltermslist.cc,backends/dbfactory.cc,
8856           backends/inmemory/inmemory_document.cc,
8857           backends/remote/remote-document.cc,matcher/synonympostlist.cc,
8858           net/remoteconnection.cc,weight/bm25weight.cc: Use NO_ARGS instead of
8859           "" and LOGCALL_VOID instead of LOGCALL with void return type.
8861 Fri May 28 04:12:35 GMT 2010  Olly Betts <olly@survex.com>
8863         * matcher/valuerangepostlist.cc: Add missing inclusions of
8864           "debuglog.h".
8865         * backends/brass/brass_metadata.h,backends/brass/brass_postlist.h,
8866           backends/brass/brass_synonym.h,backends/chert/chert_metadata.h,
8867           backends/chert/chert_postlist.h,backends/chert/chert_synonym.h,
8868           backends/dbfactory_remote.cc,backends/flint/flint_metadata.h,
8869           backends/flint/flint_synonym.h,common/database.h,common/rset.h:
8870           Remove unused inclusions of "omassert.h" and "omdebug.h".
8871         * common/rset.h: Remove unused inclusion of "weightinternal.h".
8872         * api/omdatabase.cc,api/registry.cc,api/replication.cc,backends/brass/,
8873           backends/chert/,backends/dbfactory.cc,backends/flint/: Add missing
8874           explicit inclusions of "debuglog.h". Fix LOGCALL markup of ctors and
8875           dtors.  Use LOGCALL instead of DEBUGCALL.
8877 Fri May 28 04:06:08 GMT 2010  Olly Betts <olly@survex.com>
8879         * backends/flint/flint_alldocspostlist.h: Add missing explicit
8880           inclusions of "autoptr.h", "flint_database.h", and forward
8881           declaration of class FlintCursor.
8883 Fri May 28 03:52:40 GMT 2010  Olly Betts <olly@survex.com>
8885         * common/const_database_wrapper.h,common/databasereplicator.h,
8886           common/gnu_getopt.h: Add "(C)" to copyright statements for
8887           consistency with other files.
8889 Fri May 28 03:45:26 GMT 2010  Olly Betts <olly@survex.com>
8891         * queryparser/queryparser.lt: Include "debuglog.h" instead of
8892           "omdebug.h".
8894 Fri May 28 03:45:03 GMT 2010  Olly Betts <olly@survex.com>
8896         * queryparser/queryparser.cc: Remove unused inclusion of "omdebug.h".
8898 Fri May 28 03:40:50 GMT 2010  Olly Betts <olly@survex.com>
8900         * expand/esetinternal.cc,matcher/localmatch.cc,matcher/multimatch.cc,
8901           matcher/rset.cc: Add missing explicit inclusions of "omassert.h".
8903 Thu May 27 23:39:57 GMT 2010  Olly Betts <olly@survex.com>
8905         * common/Makefile.mk,common/expand.h: Remove unused header.
8907 Thu May 27 06:45:27 GMT 2010  Olly Betts <olly@survex.com>
8909         * include/xapian/stem.h: Update the list of languages that the
8910           Xapian::Stem constructor recognises.
8912 Thu May 27 05:20:42 GMT 2010  Olly Betts <olly@survex.com>
8914         * include/xapian/stem.h,languages/Makefile.mk,
8915           languages/compiler/generator.c,languages/stem.cc,
8916           languages/steminternal.cc,languages/steminternal.h,tests/Makefile.am,
8917           tests/api_stem.cc: Add the ability to specify your own stemming
8918           algorithm by subclassing Xapian::StemImplementation, mostly based on
8919           patch from Evgeny Sizikov in ticket#448.
8921 Thu May 27 04:50:31 GMT 2010  Olly Betts <olly@survex.com>
8923         * tests/api_opvalue.cc: Use TEST_REL() instead of tout and TEST() with
8924           an inequality.
8926 Thu May 27 04:28:07 GMT 2010  Olly Betts <olly@survex.com>
8928         * api/replication.cc,backends/databasereplicator.cc,common/debuglog.h,
8929           common/omdebug.h,expand/esetinternal.cc,expand/ortermlist.cc,
8930           matcher/,net/remoteconnection.cc: Partial mass conversion of files
8931           from omdebug.h to debuglog.h (this takes care off all the files
8932           without BSN copyright).
8934 Thu May 27 04:24:36 GMT 2010  Olly Betts <olly@survex.com>
8936         * common/output.h: Use <ostream> not <fstream>.
8938 Thu May 27 04:09:25 GMT 2010  Olly Betts <olly@survex.com>
8940         * matcher/orpostlist.cc: Prefer ++x to x += 1 for consistency.
8942 Wed May 26 13:32:20 GMT 2010  Olly Betts <olly@survex.com>
8944         * matcher/exactphrasepostlist.cc: Separate (C) notice from @file
8945           doccomment.
8947 Wed May 26 13:11:57 GMT 2010  Olly Betts <olly@survex.com>
8949         * backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h:
8950           Move virtual method FlintPostList::get_doclength() definition out
8951           of header, which also means the header no longer needs omdebug.h.
8953 Wed May 26 13:03:22 GMT 2010  Olly Betts <olly@survex.com>
8955         * common/debuglog.h: Strip out commented out RETURN_VOID machinery.
8956           This case is automatically handled provided LOGCALL_VOID is used.
8958 Wed May 26 12:33:04 GMT 2010  Olly Betts <olly@survex.com>
8960         * common/debuglog.h: Don't check the category more than once in ctors
8961           and dtors.  Don't convert the return value to a string in RETURN()
8962           unless we want to log it.
8964 Wed May 26 02:33:00 GMT 2010  Olly Betts <olly@survex.com>
8966         * tests/api_opvalue.cc: Convert file description to doccomment.
8967           Remove unused headers and reorder remainder more standardly.
8969 Tue May 25 10:17:42 GMT 2010  Olly Betts <olly@survex.com>
8971         * tests/api_backend.cc: Note ordecay1 and ordecay2 fixes now also in
8972           1.0.21.  Whitespace tweak.
8974 Tue May 25 04:11:53 GMT 2010  Olly Betts <olly@survex.com>
8976         * tests/api_backend.cc: make_ordecay1_db and make_ordecay2_db end up
8977           looping over at least 4 billion values (or possibly infinitely) on
8978           platforms where sizeof(long) == 8.  The two databases are very
8979           similar and the latter one works for the former test, so use the
8980           same db for both tests, and rewrite the generator to work
8981           portably.
8983 Sun May 23 07:30:58 GMT 2010  Olly Betts <olly@survex.com>
8985         * tests/api_backend.cc: Note XOR decay bug also fixed in 1.0.21.
8987 Sat May 22 13:31:38 GMT 2010  Olly Betts <olly@survex.com>
8989         * configure.ac,tests/Makefile.am: Only try to build zlib-vg.so if we
8990           are found a suitable valgrind installed (otherwise it's a waste of
8991           effort to build it, and the build will fail without the valgrind
8992           headers).
8994 Sat May 22 13:18:33 GMT 2010  Olly Betts <olly@survex.com>
8996         * configure.ac,tests/Makefile.am,tests/runtest.in,tests/zlib-vg.c: zlib
8997           can produce "uninitialised" output from "initialised" input - the
8998           output does decode to the input, so this is presumably just some
8999           unused bits in the output, so we use an LD_PRELOAD hack to get
9000           valgrind to check the input is initialised and then tell it that the
9001           output is initialised.
9003 Wed May 19 14:34:52 GMT 2010  Richard Boulton <richard@tartarus.org>
9005         * matcher/andmaybepostlist.cc,matcher/andmaybepostlist.h,
9006           matcher/orpostlist.cc: Fix a bug causing documents to be skipped
9007           when OR decayed to AND_MAYBE, if the new RHS was behind the LHS
9008           at the time of the decay.  Fixes #476.
9009         * tests/api_backend.cc: Add test case ordecay2 as a regression test
9010           of this.  Also, remove some debug output in ordecay1, to speed it
9011           up quite a bit.
9013 Wed May 19 11:48:07 GMT 2010  Richard Boulton <richard@tartarus.org>
9015         * matcher/orpostlist.cc,tests/api_backend.cc: Fix a bug in the
9016           decay from OR to AND: if the decay happened when the two
9017           sub-postlists were on different docids, but the higher of those
9018           docids actually occurred in both postlists, the higher docid
9019           would be incorrectly skipped.  Add regression test ordecay1 to
9020           test this.
9022 Wed May 19 10:36:55 GMT 2010  Richard Boulton <richard@tartarus.org>
9024         * tests/api_backend.cc,tests/api_compact.cc,
9025           tests/harness/testrunner.cc,tests/harness/testrunner.h: Add new
9026           test backend selection flag "generated", to select only backends
9027           which support generated test databases.
9029 Wed May 19 03:14:15 GMT 2010  Olly Betts <olly@survex.com>
9031         * api/,backends/brass/,backends/chert/,
9032           backends/contiguousalldocspostlist.cc,backends/flint/,
9033           backends/inmemory/inmemory_database.cc,
9034           backends/remote/remote-database.cc,backends/slowvaluelist.cc,
9035           common/utils.h,expand/esetinternal.cc,matcher/phrasepostlist.cc,
9036           net/remoteserver.cc,net/remotetcpclient.cc,
9037           queryparser/termgenerator.cc,tests/,
9038           tests/harness/backendmanager_multi.cc,
9039           tests/harness/backendmanager_remote.cc,
9040           tests/harness/backendmanager_remotetcp.cc,tests/internaltest.cc,
9041           tests/perftest/perftest.cc,tests/perftest/perftest_matchdecider.cc,
9042           tests/perftest/perftest_randomidx.cc,tests/queryparsertest.cc,
9043           tests/termgentest.cc: Fully migrate from om_tostring() to str().
9045 Wed May 19 03:13:43 GMT 2010  Olly Betts <olly@survex.com>
9047         * cmake/xapian-config-version.cmake,cmake/xapian-config.cmake: Remove
9048           generated files from SVN.
9050 Wed May 19 02:59:47 GMT 2010  Olly Betts <olly@survex.com>
9052         * bin/xapian-inspect.cc: Add misisng explicit '#include <utils.h>'.
9054 Tue May 18 14:24:03 GMT 2010  Olly Betts <olly@survex.com>
9056         * bin/Makefile.mk,bin/xapian-check.cc,bin/xapian-compact.cc: Improve
9057           building with flint, chert and/or brass disabled (partially addresses
9058           ticket#361).
9060 Tue May 18 00:42:08 GMT 2010  Olly Betts <olly@survex.com>
9062         * matcher/multimatch.cc: Fix warnings with --disable-backend-remote
9063           (partially addresses ticket#361).
9065 Sat May 15 06:56:26 GMT 2010  Olly Betts <olly@survex.com>
9067         * net/progclient.cc: Read the max fd with sysconf() instead of using
9068           a hardcoded value of 256.  Work even if stdin and stdout have been
9069           closed.
9071 Thu May 13 10:53:24 GMT 2010  Richard Boulton <richard@tartarus.org>
9073         * matcher/orpostlist.cc: Correct some debugging lines.
9075 Thu May 13 09:57:12 GMT 2010  Richard Boulton <richard@tartarus.org>
9077         * matcher/xorpostlist.cc,matcher/xorpostlist.h: Pass a minweight
9078           value of 0 to children of XOR postlists, because we need to know
9079           about all matching documents from the children even if they have
9080           a low weight.
9081         * tests/api_backend.cc: Regression test for this: xordecay1.
9083 Thu May 13 08:47:22 GMT 2010  Richard Boulton <richard@tartarus.org>
9085         * tests/soaktest/soaktest_queries.cc: Add more code comments,
9086           increase the number of repetitions from 100 to 10000, remove
9087           accidentally added semicolons after some braces, remove "return
9088           false" at end of test which was added for debugging purposes,
9089           clear tout before testing each query, and display the query
9090           number, the query, and the msets in the event of failure.
9092 Tue May 11 10:16:05 GMT 2010  Richard Boulton <richard@tartarus.org>
9094         * tests/soaktest/soaktest_queries.cc: Don't fail for empty result
9095           sets.
9097 Tue May 11 10:13:08 GMT 2010  Richard Boulton <richard@tartarus.org>
9099         * tests/soaktest/: Add a "soaktest" testsuite, intended to contain
9100           long-running tests with random data.  Currently contains a single
9101           test which builds and runs random queries, checking that the
9102           results returned are consistent when asking for different result
9103           ranges.
9105 Mon May 10 16:57:29 GMT 2010  Richard Boulton <richard@tartarus.org>
9107         * tests/api_opvalue.cc: Add tests for OP_VALUE_RANGE to get
9108           coverage of the skip_to() and check() methods of
9109           ValueRangePostList.
9111 Mon May 10 16:51:14 GMT 2010  Richard Boulton <richard@tartarus.org>
9113         * tests/api_opvalue.cc: Add a test to get coverage of
9114           ValueGePostList::skip_to().
9116 Sun May 09 21:22:50 GMT 2010  Richard Boulton <richard@tartarus.org>
9118         * tests/api_nodb.cc,tests/api_opvalue.cc: Move test "opvaluege1"
9119           from api_nodb.cc to api_opvalue.cc, and rename to valuege3 for
9120           consistency with other tests of OP_VALUE_GE.
9122 Sun May 09 21:19:43 GMT 2010  Richard Boulton <richard@tartarus.org>
9124         * tests/Makefile.am,tests/api_anydb.cc,tests/api_opvalue.cc: Move
9125           the tests for OP_VALUE_* query operators from api_anydb.cc to
9126           api_opvalue.cc.  Remove copyright statements earlier than 2007,
9127           since OP_VALUE_* wasn't added until 2007.
9129 Sun May 09 21:04:06 GMT 2010  Richard Boulton <richard@tartarus.org>
9131         * matcher/valuegepostlist.cc: Initialise valuelist in check() if
9132           necessary.
9133         * tests/api_anydb.cc: Add regression test for this.
9135 Thu May 06 15:03:43 GMT 2010  Richard Boulton <richard@tartarus.org>
9137         * tests/api_replicate.cc: Add some extra debugging, to help
9138           identify the problem with ticket #472.
9140 Thu May 06 13:38:25 GMT 2010  Olly Betts <olly@survex.com>
9142         * common/safeuuid.h,configure.ac,INSTALL: Make use of built-in UUID API
9143           on FreeBSD and NetBSD.  (ticket#470)
9145 Thu May 06 13:10:30 GMT 2010  Olly Betts <olly@survex.com>
9147         * AUTHORS,Makefile.am,cmake/,configure.ac: Install files to make Xapian
9148           easier to use with cmake.  Thanks to Sune Vuorela for providing the
9149           desired output.
9151 Thu May 06 11:42:16 GMT 2010  Olly Betts <olly@survex.com>
9153         * tests/harness/fdtracker.cc: Don't pass NULL to closedir().
9155 Thu May 06 11:19:41 GMT 2010  Olly Betts <olly@survex.com
9157         * tests/api_anydb.cc: Test UUID is 36 characters long.
9159 Thu May 06 10:41:21 GMT 2010  Olly Betts <olly@survex.com>
9161         * matcher/valuegepostlist.cc: Use "str.h" and str().
9163 Thu May 06 10:01:48 GMT 2010  Olly Betts <olly@survex.com>
9165         * matcher/valuegepostlist.cc: Remove unused headers.
9167 Thu May 06 09:55:27 GMT 2010  Richard Boulton <richard@tartarus.org>
9169         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc:
9170           Keep return value from valuelist->get_value() as a const string &
9171           rather than a string - could be more efficient on some compilers,
9172           though testing with gcc 4.1 revealed no difference.
9174 Thu May 06 09:49:12 GMT 2010  Richard Boulton <richard@tartarus.org>
9176         * matcher/valuegepostlist.cc: "while(" -> "while (" in recent patch.
9178 Thu May 06 09:30:27 GMT 2010  Olly Betts <olly@survex.com>
9180         * docs/replication.rst: Remove experimental warning.
9182 Thu May 06 05:05:57 GMT 2010  Olly Betts <olly@survex.com>
9184         * matcher/valuerangepostlist.cc: Use "str.h" and str().
9186 Thu May 06 05:03:22 GMT 2010  Olly Betts <olly@survex.com>
9188         * matcher/valuerangepostlist.cc: Remove '#include "leafpostlist.h"'
9189           and '#include "document.h"' which are no longer used.
9191 Thu May 06 04:53:07 GMT 2010  Olly Betts <olly@survex.com>
9193         * matcher/valuerangepostlist.cc: Remove '#include "autoptr.h"' which is
9194           no longer required.
9196 Thu May 06 04:18:25 GMT 2010  Olly Betts <olly@survex.com>
9198         * matcher/valuerangepostlist.cc: "while(" -> "while (" in recent patch.
9200 Wed May 05 16:44:17 GMT 2010  Richard Boulton <richard@tartarus.org>
9202         * matcher/orpostlist.cc,matcher/orpostlist.h: Add
9203           OrPostList::check() method, which calls check() on the
9204           sub-postlists, rather than falling back to skip_to().  This is
9205           particularly helpful when a sub-postlist is one for which
9206           skip_to() can be significantly more expensive than check(), such
9207           as a ValueRangePostList.  I've observed a speedup of 10 times for
9208           such a subquery with this change.
9210 Wed May 05 16:34:30 GMT 2010  Richard Boulton <richard@tartarus.org>
9212         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
9213           matcher/valuerangepostlist.h: Implement ValueRangePostList and
9214           ValueGePostList using a ValueList streaming values for the value
9215           slot of interest, rather than using an AllDocsPostList to get all
9216           documents, using that to open temporary documents for each
9217           document being considered, and then using that to get the value.
9218           I've observed a speedup of more than 70 times for range queries
9219           in a real-world situation with this change (a 29 second search
9220           became a 0.4 second search). (ticket#432)
9222 Wed May 05 06:44:31 GMT 2010  Olly Betts <olly@survex.com>
9224         * NEWS: Update from ChangeLog.
9226 Wed May 05 05:42:56 GMT 2010  Olly Betts <olly@survex.com>
9228         * backends/brass/brass_cursor.cc,backends/chert/chert_cursor.cc,
9229           backends/flint/flint_cursor.cc: If we have to rebuild the cursor
9230           on next() because the table changed underneath us, we need to
9231           advance it because find_entry() will put the cursor on the entry
9232           we were already on, or the one before if the entry we were on
9233           has been removed.  Bug uncovered by notmuch testsuite, but I'm
9234           unable to reduce it to a sane testcase for our testsuite.
9235           (Debian#579951)
9237 Tue May 04 19:38:31 GMT 2010  Richard Boulton <richard@tartarus.org>
9239         * api/replication.cc,bin/xapian-replicate.cc,
9240           common/replicatetcpclient.h,common/replication.h,
9241           net/replicatetcpclient.cc,tests/api_replicate.cc: Fix a bug in
9242           replication, which triggered when multiple modifications were
9243           made to a database while a full copy of the database was in
9244           progress.  In this situation, the client would fail to apply more
9245           than one changeset before trying (and failing) to make the
9246           database live, due to an incorrect assignment of the new revision
9247           number to "offline_needed_revision" instead of
9248           "offline_revision".  Also, replication now only sleeps for a
9249           period (to allow reader to catch up) after a changeset has been
9250           applied to a live database - previously, it would sleep
9251           unnecessarily after a changeset had been applied to an offline
9252           database.  Also, make the period for which replication sleeps in
9253           this situation configurable with the "-r" command line option to
9254           xapian-replicate.
9255           A test for these changes will be committed to xapian-bindings
9256           shortly.
9258 Sat May 01 15:25:48 GMT 2010  Olly Betts <olly@survex.com>
9260         * Merge change accidentally committed to brass-btree branch:
9261         * tests/perftest/runprocess.cc: Use safesyswait.h, fixing build failure
9262           on "make check" on FreeBSD.
9264 Fri Apr 30 12:33:25 GMT 2010  Richard Boulton <richard@tartarus.org>
9266         * backends/brass/brass_databasereplicator.cc,
9267           backends/chert/chert_databasereplicator.cc,
9268           backends/flint/flint_databasereplicator.cc,tests/api_replicate.cc:
9269           If a DB file doesn't exist when applying a changeset, try
9270           creating it - this happens with lazy tables which aren't created
9271           in the initial revision copied.  Add replicate4 test to check
9272           that this works correctly with a lazily created position table.
9273           Fixes ticket #468.
9275 Fri Apr 30 07:09:31 GMT 2010  Olly Betts <olly@survex.com>
9277         * docs/deprecation.rst: Replication and PostingSource aren't
9278           experimental in 1.2.x.
9280 Fri Apr 30 00:52:22 GMT 2010  Olly Betts <olly@survex.com>
9282         * tests/harness/testsuite.cc: Fix typo in previous commit.
9284 Thu Apr 29 23:46:09 GMT 2010  Olly Betts <olly@survex.com>
9286         * tests/harness/testsuite.cc: Check is SA_SIGINFO is defined before
9287           using it as it isn't available everywhere.  Fixes FTBFS on GNU Hurd.
9289 Thu Apr 29 12:11:48 GMT 2010  Olly Betts <olly@survex.com>
9291         * configure.ac: Install headers under PREFIX/include not
9292           PREFIX/include/xapian.  This broke compiling code which didn't use
9293           XO_LIB_XAPIAN or xapian-config.
9295 Wed Apr 28 12:05:23 GMT 2010  Olly Betts <olly@survex.com>
9297         * Makefile.am,m4-macros/xapian-1.1.m4: Remove -1.1 suffix from
9298           xapian-1.1.m4 and libxapian-1.1.la.
9300 Wed Apr 28 06:15:45 GMT 2010  Olly Betts <olly@survex.com>
9302         * NEWS: Sync with 1.0.20.
9303         * NEWS,configure.ac: 1.2.0!
9305 Tue Apr 27 12:45:29 GMT 2010  Olly Betts <olly@survex.com>
9307         * AUTHORS: Add bug reporter.
9309 Mon Apr 26 08:26:26 GMT 2010  Olly Betts <olly@survex.com>
9311         * common/getopt.cc,common/gnu_getopt.h: On Cygwin, #include <getopt.h>
9312           for declarations of optind, etc rather than providing our own
9313           declarations.  Should fix warnings in Cygwin build reported by Reini
9314           Urban on xapian-devel list.
9316 Mon Apr 26 06:27:07 GMT 2010  Olly Betts <olly@survex.com>
9318         * common/getopt.cc,common/gnu_getopt.h: Revert previous 2
9319           getopt-related patches.  The latest state was breaking on Solaris
9320           which (contrary to what its man pages say) prototypes getopt() stuff
9321           in stdlib.h.  This seems to be a rabbit hole we don't want to head
9322           further down.
9324 Sat Apr 24 02:12:53 GMT 2010  Olly Betts <olly@survex.com>
9326         * examples/delve.cc: Update --help output for -v to cover all terms
9327           case.
9329 Sat Apr 24 01:58:00 GMT 2010  Olly Betts <olly@survex.com>
9331         * examples/delve.cc: Add -a option to list all terms in a database.
9333 Sat Apr 24 01:51:01 GMT 2010  Olly Betts <olly@survex.com>
9335         * examples/copydatabase.cc: Prefer string() to "" converted to string.
9337 Thu Apr 22 14:21:30 GMT 2010  Olly Betts <olly@survex.com>
9339         * matcher/multimatch.cc: Fix bug related to ticket#464 (the previous
9340           fix doesn't fix some similar cases).
9341         * tests/api_backend.cc: Add regression test msize2.
9343 Thu Apr 22 11:02:11 GMT 2010  Olly Betts <olly@survex.com>
9345         * tests/: Hook up --abort-on-error fix for termgentest, stemtest,
9346           queryparsertest, and internaltest.
9348 Thu Apr 22 06:06:53 GMT 2010  Olly Betts <olly@survex.com>
9350         * HACKING: Add a hyphen.
9352 Wed Apr 21 11:16:50 GMT 2010  Olly Betts <olly@survex.com>
9354         * tests/harness/testrunner.cc: Exit with status 1 not 0 if we caught an
9355           exception from the harness itself.
9357 Wed Apr 21 11:11:10 GMT 2010  Olly Betts <olly@survex.com>
9359         * tests/harness/testrunner.cc,tests/harness/testsuite.cc: Fix
9360           --abort-on-error to actually work.
9362 Tue Apr 20 12:53:29 GMT 2010  Olly Betts <olly@survex.com>
9364         * docs/deprecation.rst: Note how to disable deprecation warnings.
9366 Tue Apr 20 07:27:23 GMT 2010  Olly Betts <olly@survex.com>
9368         * api/omenquire.cc,matcher/multimatch.cc: Fix incorrect estimate and
9369           bounds on matches when sorting and collapsing in a particular case
9370           (ticket#464).
9371         * tests/api_backend.cc: Add regression test msize1.
9373 Mon Apr 19 01:59:59 GMT 2010  Olly Betts <olly@survex.com>
9375         * examples/delve.cc: Use strtoul() instead of atoi() to decode document
9376           id and value slot numbers passed on the command line.  Report out of
9377           range and invalid values.
9379 Sat Apr 17 09:17:25 GMT 2010  Olly Betts <olly@survex.com>
9381         * common/getopt.cc,common/gnu_getopt.h: Fix getopt code to work on
9382           platforms without GNU getopt but with getopt().
9384 Fri Apr 16 14:23:49 GMT 2010  Olly Betts <olly@survex.com>
9386         * NEWS,configure.ac: Update for 1.1.5.
9387         * NEWS: Sync changes from 1.0.19.
9389 Fri Apr 16 12:29:14 GMT 2010  Olly Betts <olly@survex.com>
9391         * tests/harness/testsuite.cc: Handle NULL in the const char * catch.
9393 Fri Apr 16 05:47:43 GMT 2010  Olly Betts <olly@survex.com>
9395         * api/postingsource.cc: Fix wrapping.
9397 Thu Apr 15 09:07:40 GMT 2010  Richard Boulton <richard@tartarus.org>
9399         * tests/api_replicate.cc: Use a fixed size buffer for copying a
9400           file, rather than a dynamically sized buffer; avoids using the
9401           GCC extension allowing dynamically sized arrays.
9403 Thu Apr 15 04:02:34 GMT 2010  Olly Betts <olly@survex.com>
9405         * AUTHORS: Update with bug reporters.
9407 Thu Apr 15 00:30:45 GMT 2010  Olly Betts <olly@survex.com>
9409         * include/xapian/termgenerator.h: Note how TermGenerator handles
9410           stopwords.
9412 Wed Apr 14 23:41:55 GMT 2010  Olly Betts <olly@survex.com>
9414         * common/getopt.cc,common/gnu_getopt.h: Put our optarg, etc in a
9415           namespace and then pull them in to avoid linking to versions in the C
9416           library.  Fixes warnings on Cygwin.
9418 Wed Apr 14 15:33:39 GMT 2010  Olly Betts <olly@survex.com>
9420         * tests/api_backend.cc: Remove already fixed FIXME comment.
9422 Wed Apr 14 14:13:10 GMT 2010  Olly Betts <olly@survex.com>
9424         * queryparser/queryparser.lemony: Use const reference to avoid a
9425           needless handle copy.
9427 Wed Apr 14 14:00:21 GMT 2010  Olly Betts <olly@survex.com>
9429         * backends/brass/brass_alltermslist.cc,
9430           backends/brass/brass_alltermslist.h,
9431           backends/chert/chert_alltermslist.cc,
9432           backends/chert/chert_alltermslist.h,
9433           backends/flint/flint_alltermslist.cc,
9434           backends/flint/flint_alltermslist.h: Fix memory leak if Database
9435           throws an exception in XXXAllTermsList constructor.  Fixes bug#462.
9436         * tests/api_backend.cc: Enable qpmemoryleak1 for non-remote backends as
9437           a regression test for this fix.
9439 Tue Apr 13 12:38:08 GMT 2010  Olly Betts <olly@survex.com>
9441         * backends/flint/flint_table.cc: Don't memcpy() a block to itself -
9442           it's a waste of effort, and (probably) undefined behaviour (as a
9443           block overlaps itself).
9445 Tue Apr 13 12:36:53 GMT 2010  Olly Betts <olly@survex.com>
9447         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Don't
9448           memcpy() a block to itself - it's a waste of effort, and (probably)
9449           undefined behaviour (as a block overlaps itself).
9451 Tue Apr 13 08:38:40 GMT 2010  Olly Betts <olly@survex.com>
9453         * queryparser/queryparser.lemony: Add a ParserHandler class to take
9454           care of releasing the yyParser object.
9456 Tue Apr 13 07:49:33 GMT 2010  Olly Betts <olly@survex.com>
9458         * common/autoptr.h: Fix comment typo.
9460 Tue Apr 13 07:47:40 GMT 2010  Olly Betts <olly@survex.com>
9462         * api/replication.cc: "autoptr.h" not <autoptr.h> (it's an in-tree
9463           header).
9465 Tue Apr 13 07:25:11 GMT 2010  Olly Betts <olly@survex.com>
9467         * queryparser/queryparser.lemony: Fix leak of yyParser if an exception
9468           is thrown during parsing.   Partly fixes ticket#462.
9469         * tests/api_backend.cc: Add regression test qpmemoryleak1.
9471 Tue Apr 13 01:37:08 GMT 2010  Olly Betts <olly@survex.com>
9473         * common/utils.cc,common/utils.h: Revert change to make removedir()
9474           recurse into subdirectories - it doesn't fix a bug, so isn't
9475           appropriate when we're trying to get 1.2.0 out (backends don't
9476           currently put files in subdirectories, which was the justification
9477           in the commit message).
9479 Mon Apr 12 11:50:37 GMT 2010  Olly Betts <olly@survex.com>
9481         * Backport change from brass:
9482         * backends/flint/: Fix to rebuild cursors if the table gains or loses a
9483           level.  Fixes ticket#455.
9485 Mon Apr 12 09:29:39 GMT 2010  Olly Betts <olly@survex.com>
9487         * Backport change from brass:
9488         * backends/chert/: Fix to rebuild cursors if the table gains or loses a
9489           level.  Fixes ticket#455.
9491 Mon Apr 12 09:26:53 GMT 2010  Olly Betts <olly@survex.com>
9493         * backends/brass/: Fix to rebuild cursors if the table gains or loses a
9494           level.  Fixes ticket#455.
9496 Mon Apr 12 08:27:29 GMT 2010  Olly Betts <olly@survex.com>
9498         * tests/api_none.cc: Work around compilation failure on OpenBSD.  Fixes
9499           ticket#458.
9501 Fri Apr 02 04:03:04 GMT 2010  Olly Betts <olly@survex.com>
9503         * m4-macros/xapian-1.1.m4: Give a more specific error message for the
9504           cases where XAPIAN_CONFIG isn't found, is a directory, or isn't
9505           executable.
9507 Thu Mar 25 14:43:57 GMT 2010  Olly Betts <olly@survex.com>
9509         * tests/api_backend.cc: Add databasemodified1 testcase to provide some
9510           test coverage for DatabaseModifiedError.
9512 Thu Mar 25 06:32:44 GMT 2010  Olly Betts <olly@survex.com>
9514         * bin/xapian-check-flint.cc: Report docid for doclength mismatch.
9516 Thu Mar 25 06:23:26 GMT 2010  Olly Betts <olly@survex.com>
9518         * bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Report docid for
9519           doclength mismatch.
9521 Sat Mar 20 15:04:18 GMT 2010  Olly Betts <olly@survex.com>
9523         * docs/spelling.rst: Add a note about removing automatically added
9524           spelling dictionary entries.
9526 Sat Mar 20 09:30:44 GMT 2010  Olly Betts <olly@survex.com>
9528         * docs/spelling.rst: Add section on indexing.  Move the "algorithm"
9529           section to the end, as it is really just background information for
9530           the curious.
9532 Wed Mar 17 01:33:39 GMT 2010  Olly Betts <olly@survex.com>
9534         * INSTALL: Add a hyphen.
9536 Wed Mar 17 01:30:34 GMT 2010  Olly Betts <olly@survex.com>
9538         * INSTALL: Correct description of --enable-assertions.  It does NOT
9539           enable debugging symbols, and shouldn't control checks on bad data
9540           passed to API calls (if it does anywhere, that's a bug).  Note that
9541           Xapian will run more slowly with assertions on.
9543 Wed Mar 17 01:10:13 GMT 2010  Olly Betts <olly@survex.com>
9545         * backends/brass/brass_values.cc: Put ValueUpdater in Brass namespace
9546           to avoid cross-linking issues with ValueUpdater class in chert
9547           (change taken from brass-btree branch).
9549 Sun Mar 14 10:05:36 GMT 2010  Olly Betts <olly@survex.com>
9551         * Backport change from chert:
9552         * backends/flint/flint_database.cc,
9553           backends/flint/flint_positionlist.cc,
9554           backends/flint/flint_positionlist.h: When updating a document, rather
9555           than decoding the old positions, comparing with the new, and then
9556           encoding the new if different, we now just encode the new and then
9557           compare the encoded forms.  (ticket#428)  This change also avoids
9558           calling FlintPositionListTable::del() when we know the entry doesn't
9559           already exist.
9560         * backends/flint/flint_positionlist.cc: Minor refactor to improve
9561           code clarity and to only create std::string variable when it
9562           is needed.
9564 Sun Mar 14 09:45:34 GMT 2010  Olly Betts <olly@survex.com>
9566         * Backport change from brass:
9567         * backends/chert/chert_positionlist.cc: Minor refactor to improve
9568           code clarity and to only create std::string variable when it
9569           is needed.
9571 Sun Mar 14 09:29:54 GMT 2010  Olly Betts <olly@survex.com>
9573         * backends/brass/brass_positionlist.cc: Minor refactor to improve
9574           code clarity and to only create std::string variable when it
9575           is needed.
9577 Sun Mar 14 07:37:03 GMT 2010  Olly Betts <olly@survex.com>
9579         * api/replication.cc,tests/api_closedb.cc,tests/api_metadata.cc,
9580           tests/internaltest.cc: Catch by const reference rather than just
9581           reference, unless we actually need to modify the caught object.
9583 Sun Mar 14 06:45:11 GMT 2010  Olly Betts <olly@survex.com>
9585         * api/replication.cc: Check live_db only has a single sub-database even
9586           if we just lazily opened it.
9588 Sun Mar 14 05:00:21 GMT 2010  Olly Betts <olly@survex.com>
9590         * backends/flint/flint_database.cc,
9591           backends/flint/flint_databasereplicator.cc: Add missing explicit
9592           '#include "str.h"'.
9594 Sat Mar 13 09:22:24 GMT 2010  Richard Boulton <richard@tartarus.org>
9596         * tests/api_replicate.cc: Always use off_t to refer to the size of a
9597           file: fixes warnings about comparting a signed value to an unsigned
9598           value.
9600 Thu Mar 11 16:07:10 GMT 2010  Richard Boulton <richard@tartarus.org>
9602         * api/replication.cc: Open the livedb lazily if it gets left in a
9603           closed state (due to an exception when applying a changeset),
9604           rather than reopening it straight away in an exception handler.
9605           This requires the livedb to become a mutable member, but is safer
9606           in the event that an exception is thrown by the WritableDatabase
9607           constructor.
9609 Thu Mar 11 15:17:12 GMT 2010  Richard Boulton <richard@tartarus.org>
9611         * tests/api_replicate.cc: Uncomment the rmtmpdir() at the end of
9612           replicate3; it was accidentally committed debugging code.
9614 Thu Mar 11 13:03:57 GMT 2010  Richard Boulton <richard@tartarus.org>
9616         * api/replication.cc: If an exception is thrown, mark that the
9617           offline revision needed is unknown (represented by being empty);
9618           ensures that a database isn't put live incorrectly in this case.
9619           Also, actually read the message for REPL_REPLY_END_OF_CHANGES, so
9620           that we get an error if the message is truncated.  Also, if an
9621           attempt to apply a changeset to the live database fails with an
9622           exception while the live database is closed, reopen the live
9623           database before allowing the exception to propagate.
9624         * tests/api_replicate.cc: Split replicate() helper function into
9625           two parts, to separate getting the changeset messages, and
9626           applying them. Add replicate3 test, which checks that
9627           replications which are provided with truncated messages raise
9628           appropriate errors.
9630 Thu Mar 11 00:46:39 GMT 2010  Olly Betts <olly@survex.com>
9632         * common/replicate_utils.cc: Avoid creating temporary string objects
9633           to reduce bloat in compiled code.  Remove explicit std:: qualifiers.
9635 Thu Mar 11 00:38:00 GMT 2010  Olly Betts <olly@survex.com>
9637         * common/replicate_utils.cc: The directory we're writing changesets
9638           to will always exist, so no need to ensure it does.
9640 Thu Mar 11 00:10:19 GMT 2010  Olly Betts <olly@survex.com>
9642         * backends/chert/chert_databasereplicator.cc,
9643           backends/flint/flint_databasereplicator.cc: Fix calculation of end
9644           pointer for changes file.  Since the merge, it has been off by
9645           CONST_STRLEN(CHANGES_MAGIC_STRING).
9647 Wed Mar 10 23:59:38 GMT 2010  Olly Betts <olly@survex.com>
9649         * backends/chert/chert_database.cc,
9650           backends/chert/chert_databasereplicator.cc: Add missing explicit
9651           '#include "str.h"'.
9653 Wed Mar 10 13:07:41 GMT 2010  Richard Boulton <richard@tartarus.org>
9655         * common/Makefile.mk,common/replicate_utils.cc,
9656           common/replicate_utils.h: Add some utility functions for
9657           replication to create changeset files, and append content to
9658           them, to avoid duplicating the code in each backend.
9659         * backends/chert/chert_database.cc,
9660           backends/chert/chert_databasereplicator.cc,
9661           backends/chert/chert_databasereplicator.h,
9662           backends/flint/flint_database.cc,
9663           backends/flint/flint_databasereplicator.cc,
9664           backends/flint/flint_databasereplicator.h: Make the
9665           DatabaseReplicator subclasses respect the XAPIAN_MAX_CHANGESETS
9666           environment variable, such that they write the changesets they're
9667           applying to disk if the value is non-zero.  Enables replication
9668           from a replicated copy.
9669         * tests/api_replicate.cc: Refactor some common code, and add
9670           replicate2, which tests replication from a replicated copy.  Skip
9671           this test for brass, since brass doesn't support this.
9673 Wed Mar 10 12:11:41 GMT 2010  Richard Boulton <richard@tartarus.org>
9675         * common/utils.cc,common/utils.h: Make removedir() recurse into
9676           subdirectories; this ensures that replication works if backends
9677           put some files in subdirectories of their replicas (eg, if the
9678           replica is itself a replicated database).
9680 Wed Mar 10 12:07:40 GMT 2010  Richard Boulton <richard@tartarus.org>
9682         * backends/chert/,backends/flint/,common/Makefile.mk,
9683           common/io_utils.cc,common/io_utils.h: Refactor duplicated code
9684           from {flint,chert}_io.{cc,h} into common/io_utils.{cc,h}.  Rename
9685           flint_io_read() to io_read(); do similar for flint_io_write()
9686           and flint_io_sync(), and for the chert versions.  Leave brass
9687           alone to avoid conflicting with the new brass backend development
9688           branch.
9690 Mon Mar 08 02:32:35 GMT 2010  Olly Betts <olly@survex.com>
9692         * bin/xapian-check-chert.cc: Check that the doclen initial chunk
9693           exists.
9695 Tue Mar 02 13:28:50 GMT 2010  Olly Betts <olly@survex.com>
9697         * Backport change from brass:
9698         * backends/chert/chert_database.cc,
9699           backends/chert/chert_positionlist.cc,
9700           backends/chert/chert_positionlist.h: When updating a document, rather
9701           than decoding the old positions, comparing with the new, and then
9702           encoding the new if different, we now just encode the new and then
9703           compare the encoded forms.  (ticket#428)  This change also avoids
9704           calling ChertPositionListTable::del() when we know the entry doesn't
9705           already exist.
9707 Tue Mar 02 04:00:22 GMT 2010  Olly Betts <olly@survex.com>
9709         * tests/harness/testsuite.cc: Harness now catches const char *
9710           exceptions explicitly so it can show their contents.
9712 Tue Mar 02 03:59:27 GMT 2010  Olly Betts <olly@survex.com>
9714         * include/xapian/valueiterator.h: Comment tweak.
9716 Tue Mar 02 03:57:55 GMT 2010  Olly Betts <olly@survex.com>
9718         * include/xapian/queryparser.h: Add missing forward declaration of
9719           "class Database".
9721 Tue Mar 02 01:51:33 GMT 2010  Olly Betts <olly@survex.com>
9723         * NEWS: Update partially from ChangeLog.
9725 Mon Mar 01 05:38:41 GMT 2010  Olly Betts <olly@survex.com>
9727         * backends/brass/brass_database.cc,
9728           backends/brass/brass_positionlist.cc,
9729           backends/brass/brass_positionlist.h: When updating a document, rather
9730           than decoding the old positions, comparing with the new, and then
9731           encoding the new if different, we now just encode the new and then
9732           compare the encoded forms.  (ticket#428)  This change also avoids
9733           calling BrassPositionListTable::del() when we know the entry doesn't
9734           already exist.
9736 Mon Mar 01 02:09:40 GMT 2010  Olly Betts <olly@survex.com>
9738         * net/serialise.cc: Don't call Document::values_count() twice when we
9739           can trivially avoid doing so.  Ditto for termlist_count() and
9740           positionlist_count().
9742 Mon Mar 01 01:53:58 GMT 2010  Olly Betts <olly@survex.com>
9744         * bin/: Rename tot_off to last_docid when it is actually holding the
9745           last_docid value.
9747 Sun Feb 28 23:47:49 GMT 2010  Olly Betts <olly@survex.com>
9749         * backends/flint/flint_table.cc: Whitespace tweak.
9751 Sun Feb 28 23:44:58 GMT 2010  Olly Betts <olly@survex.com>
9753         * tests/dbcheck.cc: Tweak whitespace to match standard usage.  Catch
9754           exceptions by const reference.
9755         * HACKING: Discuss why exceptions should be caught by const reference.
9756           Tweak markup of blockquotes.
9758 Sun Feb 28 22:50:50 GMT 2010  Olly Betts <olly@survex.com>
9760         * HACKING: Add note about "new SomePODType()" not being the same as
9761           "new SomePODType".
9763 Sun Feb 28 22:29:31 GMT 2010  Olly Betts <olly@survex.com>
9765         * HACKING: Quote ``cat`` and ``more``.
9767 Sun Feb 28 14:00:39 GMT 2010  Richard Boulton <richard@tartarus.org>
9769         * tests/api_compact.cc: Clarify comment about regression test for
9770           1.1.4, and remove a test line which is implicit in the following
9771           dbcheck() line anyway.
9773 Sun Feb 28 11:07:33 GMT 2010  Olly Betts <olly@survex.com>
9775         * tests/harness/fdtracker.cc,tests/harness/fdtracker.h: Add GPL
9776           boilerplate and copyright notices which I failed to do before
9777           committing these new files.
9779 Thu Feb 25 10:34:15 GMT 2010  Olly Betts <olly@survex.com>
9781         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
9782           Initialise z_stream members zalloc, zfree, and opaque with Z_NUL
9783           rather than 0 cast to the appropriate type, as that's what the zlib
9784           documentation says to do.  Add missing initialisation of opaque for
9785           the inflate z_stream which the docs say is needed, though reading
9786           the zlib code, isn't actually for current versions.
9788 Wed Feb 24 14:24:05 GMT 2010  Olly Betts <olly@survex.com>
9790         * backends/remote/remote-database.cc: Fix indentation.
9792 Wed Feb 24 14:18:25 GMT 2010  Olly Betts <olly@survex.com>
9794         * backends/remote/remote-database.cc,common/remote-database.h,
9795           common/remoteprotocol.h,common/remoteserver.h,
9796           docs/remote_protocol.html,net/remoteserver.cc,tests/api_spelling.cc:
9797           Add remote backend support for WritableDatabase::add_spelling() and
9798           WritableDatabase::remove_spelling().  This bumps the remote protocol
9799           to version 35.0 (so both client and servers will need updating).
9800           Suggesting spelling corrections isn't yet supported.  (ticket#178)
9802 Wed Feb 24 09:09:27 GMT 2010  Olly Betts <olly@survex.com>
9804         * examples/delve.cc: "lastdocid" -> "highest document id ever used"
9805           in output so it's clearer what this number means.
9807 Tue Feb 23 14:03:47 GMT 2010  Olly Betts <olly@survex.com>
9809         * api/postingsource.cc: Fix incorrect classname in error message.
9811 Tue Feb 23 13:16:11 GMT 2010  Olly Betts <olly@survex.com>
9813         * configure.ac: For -fno-strict-aliasing for GCC 4.2 to avoid bad code
9814           being generated due to a bug in that compiler version.  Fixes
9815           ticket#449.
9817 Tue Feb 23 03:08:02 GMT 2010  Olly Betts <olly@survex.com>
9819         * configure.ac,tests/harness/testsuite.cc: Use sigsetjmp() and
9820           siglongjmp() where available so that the set of blocked signals
9821           get restored and the test harness can catch a second incidence
9822           of a particular signal in a run.  Use sigaction() instead of
9823           signal() where available, which allows us to report the address
9824           associated with SIGSEGV, SIGFPE, SIGILL, and SIGBUS.
9826 Mon Feb 22 14:29:50 GMT 2010  Olly Betts <olly@survex.com>
9828         * backends/brass/brass_databasereplicator.cc,
9829           backends/chert/chert_databasereplicator.cc,
9830           backends/flint/flint_databasereplicator.cc: Fix exception message
9831           if we get an unsupported changeset type.
9833 Mon Feb 22 01:49:03 GMT 2010  Richard Boulton <richard@tartarus.org>
9835         * tests/dbcheck.cc: Check the wdf, doclen, and value bounds
9836           reported by the database against correct (tight) bounds
9837           calculated by iterating through the database contents.
9839 Mon Feb 22 01:47:20 GMT 2010  Richard Boulton <richard@tartarus.org>
9841         * backends/brass/brass_database.cc,backends/chert/chert_database.cc:
9842           Ensure that wdfs are reported to the stats object correctly when
9843           replacing documents.  These checks were absent entirely in chert,
9844           and incorrectly skipped in some cases in brass.
9846 Mon Feb 22 00:59:57 GMT 2010  Olly Betts <olly@survex.com>
9848         * tests/api_valuestream.cc: Reset tout before testing each interval.
9849           Prefer string() to "".
9851 Mon Feb 22 00:57:59 GMT 2010  Olly Betts <olly@survex.com>
9853         * docs/deprecation.rst,examples/delve.cc: Remove delve's -k option,
9854           accepted as an undocumented alias for -V since 0.9.10 for
9855           compatibility with 0.9.9 and earlier.  Just use -V instead.
9857 Mon Feb 22 00:45:37 GMT 2010  Olly Betts <olly@survex.com>
9859         * examples/delve.cc: If documents are specified, change "-V<valueno>"
9860           to only show calues for those documents.
9862 Sun Feb 21 14:11:58 GMT 2010  Olly Betts <olly@survex.com>
9864         * common/stringutils.h: Factor out looking up a character in the table
9865           into a separate inlined function.  Add C_islcxdigit() to check for
9866           an lower case hex digit.
9868 Sun Feb 21 11:10:10 GMT 2010  Olly Betts <olly@survex.com>
9870         * examples/Makefile.mk,examples/xapian-metadata.cc: Add new example
9871           "xapian-metadata" which allows you to get and set individual user
9872           metadata entries.
9874 Sun Feb 21 10:31:56 GMT 2010  Olly Betts <olly@survex.com>
9876         * configure.ac: Belatedly update version number to 1.1.4.
9878 Sat Feb 20 01:09:45 GMT 2010  Olly Betts <olly@survex.com>
9880         * tests/runtest.in: Now we have fd leak checking in the test harness,
9881           remove the ulimit as it doesn't add anything, and has caused problems
9882           on some Debian buildds.
9884 Fri Feb 19 02:08:25 GMT 2010  Olly Betts <olly@survex.com>
9886         * tests/harness/backendmanager.h,tests/harness/testsuite.cc:
9887           Call backendmanager->clean_up() before checking for fd leaks
9888           to avoid finding the sockets/pipes as leaks.  This means that
9889           clean_up() needs to handle being called more than once for
9890           a test sometimes (which the current versions do) so document
9891           that.
9893 Thu Feb 18 02:31:17 GMT 2010  Olly Betts <olly@survex.com>
9895         * examples/simpleindex.cc: Explicitly call commit() on the database,
9896           as that is good practice (since you see any exceptions).
9898 Thu Feb 18 01:52:10 GMT 2010  Olly Betts <olly@survex.com>
9900         * tests/api_wrdb.cc: Clear tout on each pass of the loop to avoid a
9901           lot of irrelevant output under --verbose if the test fails.
9903 Thu Feb 18 01:33:53 GMT 2010  Olly Betts <olly@survex.com>
9905         * tests/harness/testsuite.cc: Fix fd tracking change to work when
9906           HAVE_VALGRIND isn't defined.
9908 Thu Feb 18 00:46:20 GMT 2010  Olly Betts <olly@survex.com>
9910         * include/xapian/queryparser.h: Document the possible exception
9911           messages from QueryParser::parse_query().
9913 Thu Feb 18 00:20:18 GMT 2010  Olly Betts <olly@survex.com>
9915         * tests/harness/backendmanager.cc: Also explicitly commit after
9916           indexing for flint and chert.
9918 Wed Feb 17 15:58:04 GMT 2010  Olly Betts <olly@survex.com>
9920         * tests/harness/: Add machinery to check for leaked FDs.  Currently
9921           requires /proc/self/fd to work (so it works on at least Linux), but
9922           should do nothing on platforms without this directory.
9924 Wed Feb 17 15:53:30 GMT 2010  Olly Betts <olly@survex.com>
9926         * tests/harness/backendmanager.cc: Explicitly commit after indexing
9927           for brass, so we see any exceptions from the commit (commit from
9928           the dtor swallows any exceptions).
9930 Tue Feb 16 16:23:30 GMT 2010  Richard Boulton <richard@tartarus.org>
9932         * bin/xapian-compact.cc: Fix failure to set lastdocid to an
9933           appropriate value when using --no-renumber.
9934         * tests/api_compact.cc: Add regression test for this.
9936 Tue Feb 16 16:10:49 GMT 2010  Richard Boulton <richard@tartarus.org>
9938         * examples/delve.cc: Display the lastdocid value when displaying
9939           general database statistics.
9941 Tue Feb 16 15:39:50 GMT 2010  Richard Boulton <richard@tartarus.org>
9943         * bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Correct typo
9944           in error message.
9946 Mon Feb 15 13:59:45 GMT 2010  Olly Betts <olly@survex.com>
9948         * configure.ac: Update for 1.1.4.
9950 Mon Feb 15 13:58:44 GMT 2010  Olly Betts <olly@survex.com>
9952         * PLATFORMS: We don't support GCC < 3.1, so remove discussion of
9953           issues with GCC 2.95.
9955 Mon Feb 15 13:55:10 GMT 2010  Olly Betts <olly@survex.com>
9957         * PLATFORMS: Update from 1.0.18.
9959 Mon Feb 15 11:51:15 GMT 2010  Olly Betts <olly@survex.com>
9961         * NEWS: Update from ChangeLog.  Update from 1.0.18.
9963 Sun Feb 14 05:47:30 GMT 2010  Olly Betts <olly@survex.com>
9965         * queryparser/queryparser.lemony: Fix QueryParser to handle an explicit
9966           AND before a hated term (foo AND -bar).  (ticket#447)
9967         * tests/queryparsertest.cc: Add regression test cases.
9969 Fri Feb 12 01:27:32 GMT 2010  Olly Betts <olly@survex.com>
9971         * queryparser/termgenerator_internal.cc: Only include trailing '+' or
9972           '#' on a term if it isn't followed by a word character (makes more
9973           sense and matches QueryParser's behaviour).  (ticket#446)
9974         * tests/termgentest.cc: Add regression test.
9976 Thu Feb 11 04:30:56 GMT 2010  Olly Betts <olly@survex.com>
9978         * bin/xapian-inspect.cc: Add new "open" command to allow easy switching
9979           between tables.
9981 Wed Feb 10 02:40:36 GMT 2010  Olly Betts <olly@survex.com>
9983         * include/xapian/document.h: Rewrite the note about Document being a
9984           lazy handle to fix a few details and avoid nailing down the
9985           exact implementation.
9987 Wed Feb 10 00:37:54 GMT 2010  Olly Betts <olly@survex.com>
9989         * docs/admin_notes.rst: Update for chert and other recent changes.
9991 Wed Feb 10 00:37:04 GMT 2010  Olly Betts <olly@survex.com>
9993         * docs/replication_protocol.rst: Update.
9995 Mon Feb 08 12:05:05 GMT 2010  Olly Betts <olly@survex.com>
9997         * backends/brass/brass_version.cc: Fix comments about BRASS_VERSION
9998           which were previously just cut-and-pasted from those about
9999           CHERT_VERSION.
10001 Mon Feb 08 11:54:04 GMT 2010  Olly Betts <olly@survex.com>
10003         * backends/brass/brass_metadata.cc: Include missing headers.
10005 Mon Feb 08 09:23:00 GMT 2010  Olly Betts <olly@survex.com>
10007         * backends/brass/brass_document.h,backends/chert/chert_document.h:
10008           Fix typos in documentation comments.
10010 Mon Feb 08 08:27:09 GMT 2010  Olly Betts <olly@survex.com>
10012         * tests/harness/testsuite.cc: Remove unused headers <streambuf> and
10013           "omdebug.h".
10015 Mon Feb 08 01:28:48 GMT 2010  Olly Betts <olly@survex.com>
10017         * common/debuglog.h: Use std::boolalpha so bool is logged as "true"
10018           or "false" (instead of "1" or "0").
10020 Sat Feb 06 10:04:42 GMT 2010  Olly Betts <olly@survex.com>
10022         * AUTHORS: Sync with 1.0 branch.
10024 Sat Feb 06 08:20:31 GMT 2010  Olly Betts <olly@survex.com>
10026         * tests/api_closedb.cc: Avoid trying to create a database where
10027           an already open one exists (which fails on Microsoft Windows).
10028           (ticket#443).
10030 Fri Feb 05 13:28:08 GMT 2010  Olly Betts <olly@survex.com>
10032         * examples/simpleexpand.cc,examples/simpleindex.cc,
10033           examples/simplesearch.cc: Handle --help and --version.
10035 Fri Feb 05 13:25:37 GMT 2010  Olly Betts <olly@survex.com>
10037         * bin/xapian-compact.cc: Fix not to assign elements off the end of a
10038           vector (ticket#440).
10040 Fri Feb 05 11:41:05 GMT 2010  Richard Boulton <richard@tartarus.org>
10042         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
10043           Remove ValueCountMatchSpy::get_values().  values_begin() should
10044           be used instead to iterate over the values.
10046 Fri Feb 05 07:39:46 GMT 2010  Olly Betts <olly@survex.com>
10048         * configure.ac: Enable automake's std-options feature to check all
10049           installed programs support --help and --version.
10051 Fri Feb 05 01:45:49 GMT 2010  Olly Betts <olly@survex.com>
10053         * include/xapian/document.h: Add Document::add_boolean_term().
10054         * tests/api_none.cc: Add testcase document1 as a feature test.
10056 Fri Feb 05 00:27:52 GMT 2010  Olly Betts <olly@survex.com>
10058         * backends/chert/chert_btreebase.cc,backends/flint/flint_btreebase.cc:
10059           Add missing SEQUENTIAL entry to documentation of base file format.
10061 Thu Feb 04 03:06:26 GMT 2010  Olly Betts <olly@survex.com>
10063         * tests/api_compact.cc: Fix to work with MSVC makefiles (ticket#440).
10065 Thu Feb 04 03:04:43 GMT 2010  Olly Betts <olly@survex.com>
10067         * HACKING,common/Makefile.mk,common/safesyswait.h: Add wrapper
10068           for <sys/wait.h> which defines macros for WEXITSTATUS and
10069           WIFEXITED when required.
10071 Wed Feb 03 15:01:36 GMT 2010  Richard Boulton <richard@tartarus.org>
10073         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
10074           Add ValueCountMatchSpy::values_begin() and values_end() to allow
10075           iteration over all the values in a ValueCountMatchSpy without
10076           needing to handle the dict.  Move the contents of
10077           ValueCountMatchSpy into a reference counted internal object, so
10078           that the iterator can ensure that the contents aren't deleted
10079           before it finishes.
10081 Wed Feb 03 15:01:02 GMT 2010  Richard Boulton <richard@tartarus.org>
10083         * tests/generate-api_generated: Add ValueCountMatchSpy to the list
10084           of non-copyable API classes.
10086 Wed Feb 03 13:18:03 GMT 2010  Richard Boulton <richard@tartarus.org>
10088         * include/xapian/matchspy.h,tests/api_matchspy.cc: Provide an
10089           iterator for accessing the top values found by a matchspy, rather
10090           than using a method which takes a vector reference as a
10091           parameter.  Should be wrappable much more nicely (and get wrapped
10092           automatically), and be easier to use: the testcase for this is
10093           significantly shorter than for the old API.  Remove
10094           StringAndFrequency from API - it's now just an internal class.
10095         * api/matchspy.cc: Test new access method for top_values.
10097 Wed Feb 03 06:46:37 GMT 2010  Olly Betts <olly@survex.com>
10099         * AUTHORS: Add Emmanuel Engelhart for reporting problems indexing
10100           Burmese text.
10102 Wed Feb 03 06:32:03 GMT 2010  Olly Betts <olly@survex.com>
10104         * include/xapian/unicode.h,queryparser/queryparser.lemony,
10105           queryparser/termgenerator_internal.cc: Add ENCLOSING_MARK and
10106           COMBINING_SPACING_MARK categories to is_wordchar().  Make
10107           TermGenerator and QueryParser ignore several zero-width space
10108           characters.
10109         * tests/queryparsertest.cc,tests/termgentest.cc: Add test coverage for
10110           the changes.
10112 Wed Feb 03 03:14:30 GMT 2010  Olly Betts <olly@survex.com>
10114         * queryparser/queryparser.lemony: Fix apostrophe abuse in comment.
10116 Wed Feb 03 01:23:04 GMT 2010  Olly Betts <olly@survex.com>
10118         * queryparser/queryparser.lemony: Make TermList::as_opwindow_query()
10119           private.
10121 Wed Feb 03 01:19:19 GMT 2010  Olly Betts <olly@survex.com>
10123         * common/replication.h: Use "" not <> for including API headers.
10125 Wed Feb 03 01:08:58 GMT 2010  Olly Betts <olly@survex.com>
10127         * common/replication.h: Remove warnings about this being an
10128           experimental API, which no longer make sense now it is internal.
10130 Tue Feb 02 21:59:59 GMT 2010  Olly Betts <olly@survex.com>
10132         * tests/generate-api_generated: Remove DatabaseReplica.
10134 Tue Feb 02 17:01:23 GMT 2010  Richard Boulton <richard@tartarus.org>
10136         * include/xapian/document.h: Add a note to the API documentation
10137           for the Document class about the potential issues involved in
10138           lazy loading.  Fixes ticket #421.
10140 Tue Feb 02 16:21:39 GMT 2010  Richard Boulton <richard@tartarus.org>
10142         * docs/categorisation.rst: Remove documentation of NumericRanges
10143           stuff for now, since the NumericRanges is no longer on trunk.
10145 Tue Feb 02 15:59:14 GMT 2010  Richard Boulton <richard@tartarus.org>
10147         * common/replication.h: Put the ReplicationInfo, DatabaseMaster and
10148           DatabaseReplica symbols back into public visibility - they're
10149           needed for the tests, and for the command line scripts.
10151 Tue Feb 02 15:06:44 GMT 2010  Richard Boulton <richard@tartarus.org>
10153         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_matchspy.cc:
10154           Remove NumericRanges from trunk - their API is still uncertain,
10155           so I want to do a bit more development work on them on the
10156           matchspy branch before committing to support them for several
10157           years.
10159 Tue Feb 02 13:45:24 GMT 2010  Richard Boulton <richard@tartarus.org>
10161         * api/replication.cc,backends/brass/brass_database.cc,
10162           backends/chert/chert_database.cc,backends/flint/flint_database.cc,
10163           common/,include/Makefile.mk,include/xapian/replication.h,
10164           net/replicatetcpclient.cc,net/replicatetcpserver.cc,
10165           tests/generate-api_generated: Move replication support out of the
10166           public API headers and public symbol visibility.  Access to
10167           replication, for now, is via the command-line scripts: this is
10168           similar to the access to running a remote database server, and
10169           the access to database compaction and checking.  See ticket #347
10170           for some commentary.
10172 Tue Feb 02 07:22:28 GMT 2010  Olly Betts <olly@survex.com>
10174         * Backport change from chert:
10175         * backends/flint/flint_alltermslist.h,backends/flint/flint_spelling.h,
10176           backends/flint/flint_spellingwordslist.h: Add missing std::
10177           qualifiers.
10179 Tue Feb 02 07:12:51 GMT 2010  Olly Betts <olly@survex.com>
10181         * docs/doxygen_api.conf.in: Add generated include/xapian/error.h so
10182           that Xapian::Error and subclass API docs are collated for a VPATH
10183           build.
10184         * docs/Makefile.am: Add regression test to make sure doxygen collated
10185           API docs for Xapian::RuntimeError.
10187 Tue Feb 02 06:52:55 GMT 2010  Olly Betts <olly@survex.com>
10189         * Backport change from brass:
10190         * backends/chert/chert_alltermslist.h,backends/chert/chert_spelling.h,
10191           backends/chert/chert_spellingwordslist.h: Add missing std::
10192           qualifiers.
10194 Tue Feb 02 01:34:52 GMT 2010  Richard Boulton <richard@tartarus.org>
10196         * docs/replication.rst: Add note about not using reopen() with
10197           databases being updated by the replication client.
10199 Tue Feb 02 01:17:34 GMT 2010  Richard Boulton <richard@tartarus.org>
10201         * api/matchspy.cc,docs/categorisation.rst,include/xapian/matchspy.h,
10202           tests/api_matchspy.cc: Remove score_evenness(), since it turned
10203           out to be of little or no use in practical situations.  See
10204           ticket #435 for more details.
10206 Mon Feb 01 21:53:41 GMT 2010  Olly Betts <olly@survex.com>
10208         * backends/brass/brass_table.cc,backends/chert/chert_table.cc: Use
10209           LOGCALL_VOID for add() methods which now return void.
10211 Mon Feb 01 21:50:05 GMT 2010  Olly Betts <olly@survex.com>
10213         * Backport change from brass:
10214         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
10215           Fix documentation comments for FlintTable::add() and
10216           FlintTable::del() - errors actually cause exceptions, not a false
10217           return value, and del() returns true if it actually removed an entry.
10218           Fix FlintTable::add() to throw an exception for the (hopefully never
10219           hit) case when the tag value is too insanely large to handle.  With
10220           that FlintTable::add() always returns true, and we never check the
10221           return value anyway, so just make it return void.
10223 Mon Feb 01 21:37:33 GMT 2010  Olly Betts <olly@survex.com>
10225         * Backport change from brass:
10226         * backends/chert/chert_table.cc,backends/chert/chert_table.h:
10227           Fix documentation comments for ChertTable::add() and
10228           ChertTable::del() - errors actually cause exceptions, not a false
10229           return value, and del() returns true if it actually removed an entry.
10230           Fix ChertTable::add() to throw an exception for the (hopefully never
10231           hit) case when the tag value is too insanely large to handle.  With
10232           that ChertTable::add() always returns true, and we never check the
10233           return value anyway, so just make it return void.
10235 Mon Feb 01 16:02:27 GMT 2010  Richard Boulton <richard@tartarus.org>
10237         * bin/xapian-check-brass.cc,bin/xapian-check-chert.cc: Fix checking
10238           of the METAINFO key in chert and brass.  For small databases, the
10239           statistics fit in few enough bytes that the trailing
10240           unpack_uint_last() moved to end, so errors weren't being
10241           reported, but for large databases the check was incorrectly
10242           reporting an error.
10244 Mon Feb 01 09:24:14 GMT 2010  Olly Betts <olly@survex.com>
10246         * backends/brass/brass_table.cc,backends/brass/brass_table.h:
10247           Fix documentation comments for BrassTable::add() and
10248           BrassTable::del() - errors actually cause exceptions, not a false
10249           return value, and del() returns true if it actually removed an entry.
10250           Fix BrassTable::add() to throw an exception for the (hopefully never
10251           hit) case when the tag value is too insanely large to handle.  With
10252           that BrassTable::add() always returns true, and we never check the
10253           return value anyway, so just make it return void.
10255 Mon Feb 01 01:45:09 GMT 2010  Olly Betts <olly@survex.com>
10257         * backends/brass/brass_alltermslist.h,backends/brass/brass_spelling.h,
10258           backends/brass/brass_spellingwordslist.h: Add missing std::
10259           qualifiers.
10261 Mon Feb 01 00:57:21 GMT 2010  Olly Betts <olly@survex.com>
10263         * backends/flint/flint_spelling.h: Add missing std:: qualifier.
10265 Mon Feb 01 00:52:27 GMT 2010  Olly Betts <olly@survex.com>
10267         * backends/brass/brass_spelling.h,backends/chert/chert_spelling.h:
10268           Add missing std:: qualifier.
10270 Sun Jan 31 23:35:52 GMT 2010  Olly Betts <olly@survex.com>
10272         * backends/chert/chert_termlisttable.cc,
10273           backends/chert/chert_termlisttable.h: Remove
10274           ChertTermListTable::get_doclength() as it is no longer used.
10276 Sun Jan 31 23:19:50 GMT 2010  Olly Betts <olly@survex.com>
10278         * backends/brass/brass_termlisttable.cc,
10279           backends/brass/brass_termlisttable.h: Remove
10280           BrassTermListTable::get_doclength() as it is no longer used.
10282 Sun Jan 31 09:19:39 GMT 2010  Olly Betts <olly@survex.com>
10284         * bin/xapian-inspect.cc: "until" improvements:
10285           + No longer reports the current key and tag.
10286           + If passed a key before the current one, no longer silently advances
10287             to the next key.
10288           + Explicitly says if the specified key doesn't exist, including where
10289             we ended up.
10291 Sun Jan 31 00:19:41 GMT 2010  Olly Betts <olly@survex.com>
10293         * tests/api_compact.cc: Use a single Document object rather than
10294           creating the same one 10000 times.
10296 Sun Jan 31 00:08:38 GMT 2010  Olly Betts <olly@survex.com>
10298         * tests/api_compact.cc: Move make_multichunk_db() before the testcase
10299           which uses it, rather than between two helper functions for another
10300           testcase.
10302 Sun Jan 31 00:07:03 GMT 2010  Olly Betts <olly@survex.com>
10304         * tests/api_compact.cc: Remove confusing comment, cut-and-pasted from
10305           elsewhere and not relevant here.
10307 Fri Jan 29 06:13:18 GMT 2010  Olly Betts <olly@survex.com>
10309         * backends/brass/brass_metadata.cc,backends/chert/chert_metadata.cc,
10310           backends/flint/flint_metadata.cc: Correct filenames in @file.
10312 Thu Jan 28 22:34:03 GMT 2010  Richard Boulton <richard@tartarus.org>
10314         * tests/api_compact.cc: Add check that xapian-compact works
10315           correctly on a database with multiple chunks for a single term;
10316           this is a regression test for ticket #427
10318 Thu Jan 28 22:33:16 GMT 2010  Richard Boulton <richard@tartarus.org>
10320         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Don't
10321           cut the extra byte of doclen chunk keys.
10323 Thu Jan 28 21:23:48 GMT 2010  Richard Boulton <richard@tartarus.org>
10325         * bin/xapian-compact-flint.cc: Revert previous patch for flint - it
10326           only applies to new key format used by chert and brass.
10328 Thu Jan 28 21:13:38 GMT 2010  Richard Boulton <richard@tartarus.org>
10330         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc,
10331           bin/xapian-compact-flint.cc: Partial fix for #427: truncate
10332           follow-on keys for postlist chunks fully (was leaving the
10333           trailing 0-byte, causing the code for chert and brass to
10334           incorrectly think a new chunk had started, resulting in a
10335           truncated posting list.
10337 Thu Jan 28 20:42:47 GMT 2010  Richard Boulton <richard@tartarus.org>
10339         * bin/xapian-inspect.cc: Add "until" command to display keys until
10340           a specified one.  Useful for seeing all keys for a particular
10341           posting list, etc.
10343 Thu Jan 28 01:31:54 GMT 2010  Olly Betts <olly@survex.com>
10345         * tests/dbcheck.cc: Whitespace tweak.
10347 Wed Jan 27 06:29:21 GMT 2010  Olly Betts <olly@survex.com>
10349         * tests/dbcheck.cc: <config.h> not "config.h".
10351 Wed Jan 27 04:20:42 GMT 2010  Olly Betts <olly@survex.com>
10353         * backends/brass/brass_inverter.h: Make two getters const.
10355 Wed Jan 27 04:01:17 GMT 2010  Olly Betts <olly@survex.com>
10357         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
10358           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10359           Add ChertWritableDatabase::insert_mod_plist() to handle the simpler
10360           case where we know the document doesn't already exist, to avoid
10361           adding extra code to that common path over the code we had before
10362           the #250-related changes.
10364 Tue Jan 26 03:25:59 GMT 2010  Olly Betts <olly@survex.com>
10366         * tests/internaltest.cc: In testcase pack_uint_preserving_sort1, use
10367           data() not c_str(), calculate the end position just once, and use
10368           swap to copy the current packed to prev_packed.
10370 Fri Jan 15 12:51:38 GMT 2010  Olly Betts <olly@survex.com>
10372         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
10373           Fix to use 'M' as the flag character for modified entries in
10374           modplists (not 'U').  We never explicitly check for 'M' (we check for
10375           'A' vs 'D' vs something else), so this isn't a functional change,
10376           but rather making the values consistent (as they were before the
10377           fix for #250).
10379 Fri Jan 15 08:25:14 GMT 2010  Olly Betts <olly@survex.com>
10381         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
10382           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10383           Use Xapian::termcount_diff instead of Xapian::termcount for
10384           parameters of add_freq_delta() which can be signed.  Fix parameter
10385           docs to say "change" instead of "increase".
10387 Fri Jan 15 06:05:28 GMT 2010  Olly Betts <olly@survex.com>
10389         * tests/api_replacedoc.cc: Just test that begin == end when we expect
10390           no positions rather than generating a string representation and
10391           then testing if it is empty.
10393 Thu Jan 14 11:17:36 GMT 2010  Olly Betts <olly@survex.com>
10395         * HACKING: Auto-enabling of -Werror is now done for GCC 4.1 or newer.
10397 Thu Jan 14 05:06:42 GMT 2010  Olly Betts <olly@survex.com>
10399         * HACKING: Include the MIT licence text in HACKING itself.
10400         * COPYING_MIT: Remove external copy of text - it could mislead users
10401           into thinking that this is the current licence of Xapian.
10403 Sun Jan 10 07:36:16 GMT 2010  Olly Betts <olly@survex.com>
10405         * configure.ac:With --enable-maintainer-mode, enable -Werror for GCC
10406           >= 4.1 rather than >= 4.0 as Apple's GCC 4.0 gives bogus
10407           uninitialised variable warnings for pack.h.
10409 Sat Jan 09 00:56:06 GMT 2010  Olly Betts <olly@survex.com>
10411         * queryparser/queryparser.lemony: Add support for quoting boolean terms
10412           so they can contain arbitrary characters (partly addresses
10413           ticket#128).
10414         * tests/queryparsertest.cc: Add test coverage.
10416 Fri Jan 08 13:25:25 GMT 2010  Richard Boulton <richard@tartarus.org>
10418         * tests/api_compact.cc: Add copyright note for my changes committed
10419           earlier today.
10421 Fri Jan 08 12:19:07 GMT 2010  Olly Betts <olly@survex.com>
10423         * bin/xapian-compact-brass.cc,bin/xapian-compact-chert.cc: Fix merging
10424           of databases by xapian-compact for brass and chert.
10425         * tests/api_compact.cc: Enable test compactmerge1 for brass and chert
10426           as a regression test.
10428 Fri Jan 08 11:26:41 GMT 2010  Olly Betts <olly@survex.com>
10430         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
10431           backends/flint/flint_database.cc: Rearrange comparison between old
10432           and new termlists to avoid double check of termlist.at_end().
10434 Fri Jan 08 11:22:30 GMT 2010  Richard Boulton <richard@tartarus.org>
10436         * tests/api_compact.cc: Add test of xapian-compact when merging
10437           databases.  Currently, the generated databases are broken for
10438           chert and brass, so skipping the test for those to avoid breaking
10439           the snapshotter.
10441 Fri Jan 08 11:13:13 GMT 2010  Richard Boulton <richard@tartarus.org>
10443         * tests/: Move routines for helping to check database contents and
10444           consistency into dbcheck.cc, with headers in dbcheck.h.
10446 Fri Jan 08 10:07:09 GMT 2010  Richard Boulton <richard@tartarus.org>
10448         * tests/internaltest.cc: Add test_pack_uint_preserving_sort1()
10449           which I wrote when suspicious of that function - passes fine, but
10450           probably worth keeping the test coverage.
10452 Fri Jan 08 00:23:06 GMT 2010  Olly Betts <olly@survex.com>
10454         * AUTHORS: Add Henry Combrinck for Search::Xapian patches.
10456 Thu Jan 07 15:51:57 GMT 2010  Richard Boulton <richard@tartarus.org>
10458         * api/postingsource.cc: For ValueWeightPostingSources for which
10459           there are no entries, the upper bound returned will be an empty
10460           string, which translated to -inf when passed to
10461           sortable_unserialise().  This was causing the matcher to get
10462           confused and return no results in some queries involving such a
10463           posting source.  This commit fixes this.
10464         * tests/api_postingsource.cc: Add emptyvalwtsource1 as a regression
10465           test for this, and a general test of this area of code.
10467 Thu Jan 07 09:17:58 GMT 2010  Olly Betts <olly@survex.com>
10469         * backends/brass/brass_inverter.h: Fix comment typo.
10471 Wed Dec 30 11:46:45 GMT 2009  Richard Boulton <richard@tartarus.org>
10473         * backends/brass/brass_database.cc,backends/chert/chert_database.cc,
10474           backends/flint/flint_database.cc: When updating documents, don't
10475           update posting entries which havn't changed.  Largely fixes
10476           ticket #250.
10477         * AUTHORS: Add Kan-Ru Chen, since his patch attached to ticket #250
10478           was the basis of this fix.
10480 Wed Dec 30 11:44:18 GMT 2009  Richard Boulton <richard@tartarus.org>
10482         * backends/brass/brass_inverter.h: Add methods for updating an
10483           existing posting, so we don't have to remove then re-add it.
10485 Wed Dec 30 11:41:57 GMT 2009  Richard Boulton <richard@tartarus.org>
10487         * backends/brass/brass_database.h: Remove old unused members:
10488           total_length and lastdocid.
10490 Wed Dec 30 01:07:04 GMT 2009  Richard Boulton <richard@tartarus.org>
10492         * backends/chert/chert_database.h: Remove old unused members:
10493           total_length and lastdocid.
10495 Wed Dec 30 00:21:03 GMT 2009  Richard Boulton <richard@tartarus.org>
10497         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
10498           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10499           Move frequently repeated code for updating the freq_deltas and
10500           mod_plists items into separate functions.  Makes the code
10501           considerably clearer, and prepares the way for applying the patch
10502           to fix ticket #250.
10504 Wed Dec 30 00:07:33 GMT 2009  Richard Boulton <richard@tartarus.org>
10506         * tests/api_replacedoc.cc: Add a few more sequences of operations
10507           which look worth testing, after looking at the code implementing
10508           replace_document().
10510 Tue Dec 29 22:29:08 GMT 2009  Richard Boulton <richard@tartarus.org>
10512         * tests/api_replacedoc.cc: Check consistency of the posting lists
10513           with the termlists, and consistency of the statistics, at each
10514           step of modtermwdf1.  Also, add some other terms to the document,
10515           so we can check the stored doclength for terms which haven't been
10516           modified.
10518 Sun Dec 27 14:56:16 GMT 2009  Richard Boulton <richard@tartarus.org>
10520         * backends/chert/chert_modifiedpostlist.cc,
10521           backends/flint/flint_modifiedpostlist.cc: Report the wdf from the
10522           modifications, rather the sum of the wdf from the modifications
10523           and the old wdf.  The old behaviour was just wrong, but we had no
10524           test coverage for this until the last commit.
10526 Sun Dec 27 13:34:06 GMT 2009  Richard Boulton <richard@tartarus.org>
10528         * tests/api_replacedoc.cc: Add test of the contents of the
10529           postlist of a term which is being modified.  Also, tidy up the
10530           output of docterms_to_string() to skip any empty position lists.
10532 Sat Dec 26 19:21:19 GMT 2009  Richard Boulton <richard@tartarus.org>
10534         * tests/api_replacedoc.cc: Extend test to cover removing a term but
10535           not deleting it, and finally deleting the document.
10537 Thu Dec 24 19:18:41 GMT 2009  Richard Boulton <richard@tartarus.org>
10539         * tests/api_replacedoc.cc: Expand test to cover some modification
10540           to the positional information.
10542 Thu Dec 24 19:06:32 GMT 2009  Richard Boulton <richard@tartarus.org>
10544         * tests/api_replacedoc.cc: Add some more sets of modification
10545           operations to the tests.
10547 Thu Dec 24 18:55:37 GMT 2009  Richard Boulton <richard@tartarus.org>
10549         * tests/api_replacedoc.cc: Add test modtermwdf1, which tests a lot
10550           more cases where documents are modified.
10552 Thu Dec 24 14:36:38 GMT 2009  Olly Betts <olly@survex.com>
10554         * tests/: Canonicalise the conditions on testcases.
10556 Thu Dec 24 14:08:59 GMT 2009  Olly Betts <olly@survex.com>
10558         * tests/api_closedb.cc: Fix typo in last commit.
10560 Thu Dec 24 13:39:28 GMT 2009  Olly Betts <olly@survex.com>
10562         * tests/api_closedb.cc: Check WritableDatabase::close() during a
10563           transaction does *NOT* implicitly call commit().
10565 Thu Dec 24 13:07:09 GMT 2009  Olly Betts <olly@survex.com>
10567         * backends/brass/brass_database.cc,backends/brass/brass_database.h,
10568           backends/chert/chert_database.cc,backends/chert/chert_database.h,
10569           backends/flint/flint_database.cc,backends/flint/flint_database.h:
10570           Fix WritableDatabase::close() to commit() changes (unless a
10571           transaction is in progress).
10572         * tests/api_closedb.cc: Add regression test closedb4.
10574 Wed Dec 23 00:26:34 GMT 2009  Olly Betts <olly@survex.com>
10576         * backends/brass/brass_database.cc,backends/brass/brass_inverter.cc,
10577           backends/brass/brass_inverter.h: For allterms iteration of a
10578           WritableDatabase, if a prefix is specified only flush changes for
10579           terms with that prefix.  Also, don't flush document lengths for
10580           allterms iteration.
10582 Tue Dec 22 22:48:55 GMT 2009  Olly Betts <olly@survex.com>
10584         * bin/xapian-check.cc: Fixed reversed checks for chert and flint being
10585           enabled in r13781.
10587 Tue Dec 22 14:20:24 GMT 2009  Olly Betts <olly@survex.com>
10589         * tests/harness/testrunner.cc: Add brass variants of multi and remote
10590           backends.
10592 Tue Dec 22 14:15:43 GMT 2009  Olly Betts <olly@survex.com>
10594         * bin/: Implement xapian-check and xapian-compact support for brass.
10596 Tue Dec 22 13:41:08 GMT 2009  Olly Betts <olly@survex.com>
10598         * bin/: Split the chert-specific checking code into a separate file
10599           so xapian-check.cc is just the driver code.
10601 Tue Dec 22 12:47:59 GMT 2009  Olly Betts <olly@survex.com>
10603         * backends/brass/: Add new Inverter class to encapsulate the inversion
10604           data structures and associated code.  Instead of carefully iterating
10605           modified posting lists and document length lists, just flush the
10606           particular list needed to disk and iterate that.  This is much
10607           simpler and more obviously free of subtle bugs, and means we don't
10608           need to use data structures which allow such iteration.
10610 Tue Dec 22 12:25:04 GMT 2009  Olly Betts <olly@survex.com>
10612         * backends/brass/,backends/dbfactory.cc,include/xapian/dbfactory.h,
10613           include/xapian/valueiterator.h,include/xapian/version_h.cc,
10614           tests/harness/Makefile.mk: Fix to actually build brass.  Testsuite
10615           doesn't currently all pass.
10617 Tue Dec 22 04:26:17 GMT 2009  Olly Betts <olly@survex.com>
10619         * HACKING,INSTALL,backends/Makefile.mk,backends/brass/,
10620           backends/chert/dir_contents,backends/databasereplicator.cc,
10621           backends/dbfactory.cc,common/pack.h,configure.ac,docs/,tests/,
10622           tests/harness/: Add new development backend called "brass" and
10623           promote "chert" to being the stable backend.
10625 Mon Dec 21 09:41:57 GMT 2009  Olly Betts <olly@survex.com>
10627         * backends/chert/chert_database.cc: Update comment about
10628           MAX_SAFE_TERM_LENGTH to reflect the key format changes.
10630 Mon Dec 21 08:12:55 GMT 2009  Olly Betts <olly@survex.com>
10632         * backends/chert/chert_alldocsmodifiedpostlist.cc,
10633           backends/chert/chert_alldocsmodifiedpostlist.h: Change reference
10634           parameter to const reference.
10636 Mon Dec 21 03:19:09 GMT 2009  Olly Betts <olly@survex.com>
10638         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
10639           Replacing a document deleted since the last flush failed to update
10640           the collection frequency and wdf, and caused an assertion failure
10641           when assertions were enabled.
10642         * tests/api_backend.cc: Add regression test replacedoc8.
10644 Sun Dec 20 07:26:30 GMT 2009  Olly Betts <olly@survex.com>
10646         * configure.ac: Divert to AS_MESSAGE_LOG_FD rather than literal fd 5.
10647           Divert more output to AS_MESSAGE_LOG_FD rather than /dev/null.
10649 Thu Dec 17 13:53:31 GMT 2009  Olly Betts <olly@survex.com>
10651         * NEWS: Update from ChangeLog.
10653 Thu Dec 17 13:36:54 GMT 2009  Olly Betts <olly@survex.com>
10655         * Backport change from chert:
10656         * backends/flint/flint_alltermslist.cc: Tweak to not apply the
10657           prefix test in the "at end" case.
10658         * backends/flint/flint_alltermslist.cc: There's no point checking
10659           follow-on chunks match the prefix - the first chunk we'll hit
10660           which doesn't match has to be an initial chunk for a term.
10662 Thu Dec 17 11:57:31 GMT 2009  Olly Betts <olly@survex.com>
10664         * tests/api_replacedoc.cc: Fix to test the right variable.
10666 Thu Dec 17 11:16:51 GMT 2009  Olly Betts <olly@survex.com>
10668         * tests/api_wrdb.cc: The regression test replacedoc5 no longer actually
10669           checks for the situation it was written for, due to the shortcutting
10670           we now do in flint and chert when replacing a document with itself,
10671           so extend it with a check with that behaviour suppressed (fortunately
10672           it still passes).
10674 Wed Dec 16 12:03:13 GMT 2009  Olly Betts <olly@survex.com>
10676         * backends/chert/,bin/Makefile.mk,common/pack.h: Change the packing
10677           of uints and strings into sortable keys in chert databases, which
10678           reduces database size by 2.5% in tests.  This means an incompatible
10679           change in the chert format.
10680         * bin/xapian-chert-update.cc: Utility to update a chert database from
10681           the old format to the new format.  It works much like xapian-compact
10682           so should take a similar amount of time (and results in a compact
10683           database).
10684         * tests/api_wrdb.cc: Adjust the test which checks a string of zero
10685           bytes fails in the correct way - 126 zero bytes is now handled, so
10686           we need 127 to check the failure mode.
10688 Wed Dec 16 11:52:27 GMT 2009  Olly Betts <olly@survex.com>
10690         * bin/xapian-compact.cc: Ensure that the resultant database has a
10691           fresh UUID (previously chert copied the UUID from the first input,
10692           while flint didn't set a UUID so one was generated on demand when
10693           next requested, if the database is writable.
10694         * tests/api_compact.cc: Add tests that a UUID is set and that it is
10695           different from that of the input.
10697 Wed Dec 16 09:57:27 GMT 2009  Olly Betts <olly@survex.com>
10699         * examples/quest.cc: If no database is specified, still parse the query
10700           and report get_description() on it as this provides a useful way to
10701           see how a query parses.
10703 Wed Dec 16 00:40:51 GMT 2009  Olly Betts <olly@survex.com>
10705         * languages/german.sbl,languages/german2.sbl: Update the german and
10706           german2 stemming algorithms to the latest versions from Snowball.
10707           These add an extra rule for the "-nisse" ending.
10709 Tue Dec 15 13:08:33 GMT 2009  Olly Betts <olly@survex.com>
10711         * bin/: Split apart the flint and chert compaction code.  Should be
10712           no change in functionality.
10714 Tue Dec 15 10:11:10 GMT 2009  Olly Betts <olly@survex.com>
10716         * backends/chert/chert_alltermslist.cc: Tweak to not apply the
10717           prefix test in the "at end" case.
10719 Tue Dec 15 09:40:19 GMT 2009  Olly Betts <olly@survex.com>
10721         * backends/chert/chert_alltermslist.cc: There's no point checking
10722           follow-on chunks match the prefix - the first chunk we'll hit
10723           which doesn't match has to be an initial chunk for a term.
10725 Tue Dec 15 08:24:04 GMT 2009  Olly Betts <olly@survex.com>
10727         * include/xapian/: Convert DerefStringWrapper_ to a templated
10728           DerefWrapper_ and use it instead of DocIDWrapper and TermPosWrapper.
10730 Tue Dec 15 08:23:08 GMT 2009  Olly Betts <olly@survex.com>
10732         * include/xapian/query.h: Mark Query::Internal as @private for doxygen.
10734 Tue Dec 15 03:59:44 GMT 2009  Olly Betts <olly@survex.com>
10736         * common/pack.h: Return false not true if
10737           unpack_string_preserving_sort() fails.  Add assertions that the
10738           source pointer isn't NULL to all the functions.
10740 Tue Dec 15 02:30:24 GMT 2009  Olly Betts <olly@survex.com>
10742         * examples/delve.cc: Improve phrasing ("unique terms" -> "distinct
10743           terms").
10745 Sat Dec 12 13:07:51 GMT 2009  Richard Boulton <richard@tartarus.org>
10747         * tests/Makefile.am,tests/api_posdb.cc,tests/api_replacedoc.cc:
10748           Split my recently added replacedoc test out into a new file.
10750 Sat Dec 12 12:58:22 GMT 2009  Richard Boulton <richard@tartarus.org>
10752         * tests/api_posdb.cc: Extend test of document modification to cover
10753           removing the last term in the document, too.
10755 Sat Dec 12 12:57:43 GMT 2009  Richard Boulton <richard@tartarus.org>
10757         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
10758           Fix comparison of old term with new.
10760 Sat Dec 12 11:30:23 GMT 2009  Richard Boulton <richard@tartarus.org>
10762         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
10763           tests/api_posdb.cc: Delete old positionlist chunks in
10764           replace_document().  Uncomment part of test which tested this.
10766 Sat Dec 12 04:24:42 GMT 2009  Olly Betts <olly@survex.com>
10768         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
10769           common/document.h: If a document is replaced with itself unmodified,
10770           we no longer increase the automatic flush counter.
10771         * tests/api_backend.cc: Add regression test replacedoc7.
10773 Fri Dec 11 19:39:34 GMT 2009  Richard Boulton <richard@tartarus.org>
10775         * tests/api_posdb.cc: Add a basic test of adding a document, and
10776           modifying its positions.  Found one bug already, but the line
10777           which triggers this is commented out for now so that we don't
10778           break the snapshotters until it's fixed.
10780 Fri Dec 11 16:51:22 GMT 2009  Richard Boulton <richard@tartarus.org>
10782         * common/documentterm.h: Fix some documentation comments which were
10783           trivially incorrect or incomplete.
10785 Fri Dec 11 11:05:19 GMT 2009  Richard Boulton <richard@tartarus.org>
10787         * COPYING_MIT,HACKING: Add details of our policy for accepting
10788           patches.  This has informally been true for a while, but it
10789           probably helps to tell people about it!
10791 Tue Dec 08 13:15:28 GMT 2009  Olly Betts <olly@survex.com>
10793         * backends/chert/chert_cursor.h: Fix to build with --enable-assertions.
10795 Tue Dec 08 13:05:36 GMT 2009  Olly Betts <olly@survex.com>
10797         * backends/chert/chert_cursor.cc,backends/chert/chert_cursor.h,
10798           backends/chert/chert_postlist.cc: Add MutableChertCursor subclass of
10799           ChertCursor and implement del() there rather than in ChertCursor.
10800           This means we can use the C++ type system to track whether we got
10801           a const or non-const ChertTable * and so whether it is safe to
10802           cast away that const and delete the entry the cursor points to.
10804 Tue Dec 08 12:03:08 GMT 2009  Olly Betts <olly@survex.com>
10806         * backends/chert/chert_database.cc,backends/chert/chert_table.cc,
10807           backends/chert/chert_table.h,backends/flint/flint_database.cc,
10808           backends/flint/flint_table.cc,backends/flint/flint_table.h,
10809           bin/xapian-compact.cc,bin/xapian-inspect.cc: Add empty() method to
10810           FlintTable and ChertTable which works completely reliably even if
10811           the item count has wrapped.
10812         * tests/api_closedb.cc: Add closedb3 for coverage of get_doccount() and
10813           has_positions().
10815 Tue Dec 08 08:23:12 GMT 2009  Olly Betts <olly@survex.com>
10817         * backends/chert/chert_cursor.h: Tweak whitespace in comment.
10819 Mon Dec 07 04:56:42 GMT 2009  Olly Betts <olly@survex.com>
10821         * backends/flint/flint_database.cc,backends/flint/flint_synonym.h:
10822           Eliminate "size" private member of FlintSynonymTermList which is set
10823           but never used.
10825 Mon Dec 07 04:49:54 GMT 2009  Olly Betts <olly@survex.com>
10827         * backends/chert/chert_database.cc,backends/chert/chert_synonym.h:
10828           Eliminate "size" private member of ChertSynonymTermList which is set
10829           but never used.
10831 Mon Dec 07 04:32:46 GMT 2009  Olly Betts <olly@survex.com>
10833         * backends/chert/: Use > 32 bit type to keep count of items in a
10834           table.  This fixes misreporting by xapian-check, and in the very
10835           unlikely case where the counter has just wrapped to 0, makes
10836           xapian-compact not mistakenly think tables are empty and the
10837           matcher ignore positional information.
10839 Thu Dec 03 10:08:28 GMT 2009  Richard Boulton <richard@tartarus.org>
10841         * tests/api_compact.cc: Cast character value in string constructor
10842           to a char; without this we were getting a stack overflow and
10843           general nastiness on i386, which we hypothesise was due to the
10844           wrong overload for string() being picked.
10846 Wed Dec 02 23:10:50 GMT 2009  Olly Betts <olly@survex.com>
10848         * backends/flint_lock.cc: Add missing include of xapian/error.h.
10849           This was causing the snapshot builder to fail, but worked OK
10850           in my tree for reasons I don't understand.
10852 Wed Dec 02 14:30:40 GMT 2009  Olly Betts <olly@survex.com>
10854         * backends/chert/chert_database.cc,
10855           backends/chert/chert_databasereplicator.cc,
10856           backends/flint/flint_database.cc,
10857           backends/flint/flint_databasereplicator.cc,backends/flint_lock.cc,
10858           backends/flint_lock.h: Factor out 4 copies of the same code to
10859           report why Xapian failed to get a lock.
10861 Wed Dec 02 10:05:27 GMT 2009  Olly Betts <olly@survex.com>
10863         * backends/Makefile.mk,backends/chert/,backends/flint/,
10864           backends/flint_lock.cc,backends/flint_lock.h: Factor out a single
10865           version of the "flint-compatible locking code" and use it from both
10866           flint and chert.
10868 Wed Dec 02 02:49:14 GMT 2009  Olly Betts <olly@survex.com>
10870         * tests/api_compact.cc,tests/apitest.cc,tests/apitest.h,
10871           tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Add
10872           get_database_path() variant which takes a generator function and use
10873           it so that the right database names are used in compactnorenumber1.
10875 Tue Dec 01 12:37:24 GMT 2009  Olly Betts <olly@survex.com>
10877         * tests/apitest.cc,tests/harness/backendmanager.cc,
10878           tests/harness/backendmanager.h: Move generator function variant of
10879           get_database() to BackendManager, and tweak it to build the database
10880           under a temporary path and rename it once built, to avoid leaving a
10881           partial database in place if interrupted.
10882         * tests/perftest/perftest_matchdecider.cc: Use this mechanism to lazily
10883           generate test databases.
10884         * tests/harness/: Remove the optional name parameter from various
10885           BackendManager methods as it was only used by perftest and is no
10886           longer needed.
10888 Tue Dec 01 11:00:35 GMT 2009  Olly Betts <olly@survex.com>
10890         * tests/apitest.cc,tests/apitest.h: Add mechanism for caching databases
10891           generated by a function.
10892         * tests/api_compact.cc: Use it for compactnorenumber1.
10894 Tue Dec 01 10:59:50 GMT 2009  Olly Betts <olly@survex.com>
10896         * tests/api_db.cc: Rename matchfunctor<n> to matchdecider<n> to match
10897           current terminology.
10899 Tue Dec 01 10:51:23 GMT 2009  Olly Betts <olly@survex.com>
10901         * tests/api_db.cc: Don't run matchfunctor3 under remote backends as
10902           MatchDecider isn't actually supported there (uncovered by recent
10903           change to throw UnimplementedError in this case).
10905 Tue Dec 01 09:35:53 GMT 2009  Richard Boulton <richard@tartarus.org>
10907         * include/xapian/matchspy.h: Remove out-of-date reference to
10908           add_slot(), which no longer exists: users are expected to use
10909           multiple ValueCountMatchSpies if they need to monitor more than
10910           one slot.
10912 Tue Dec 01 08:04:17 GMT 2009  Olly Betts <olly@survex.com>
10914         * tests/Makefile.am,tests/api_compact.cc: Add test coverage for
10915           xapian-compact --no-renumber with multiple databases.
10917 Tue Dec 01 06:25:47 GMT 2009  Olly Betts <olly@survex.com>
10919         * tests/api_backend.cc: Clean up matchdecider4.
10921 Tue Dec 01 06:12:29 GMT 2009  Olly Betts <olly@survex.com>
10923         * HACKING: A couple more std::string efficiency tips.
10925 Tue Dec 01 05:51:52 GMT 2009  Olly Betts <olly@survex.com>
10927         * api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
10928           net/remoteserver.cc: Throw UnimplementedError if a matchdecider or
10929           "legacy" matchspy is used with the remote backend.
10930         * tests/api_backend.cc: Add regression test matchdecider4.
10932 Mon Nov 30 05:42:43 GMT 2009  Olly Betts <olly@survex.com>
10934         * backends/remote/remote-database.cc,common/remote-database.h,
10935           common/remoteprotocol.h,common/remoteserver.h,
10936           docs/remote_protocol.html,net/remoteserver.cc,tests/api_metadata.cc,
10937           tests/harness/testrunner.cc: Add support for
10938           WritableDatabase::set_metadata() and Database::get_metadata() to the
10939           remote backend (based largely on patch in #178).
10940         * AUTHORS: Thanks to Paul Rudin for patch.
10942 Thu Nov 26 07:25:15 GMT 2009  Olly Betts <olly@survex.com>
10944         * NEWS: Start to update from ChangeLog.
10946 Thu Nov 26 02:26:43 GMT 2009  Olly Betts <olly@survex.com>
10948         * common/str.cc: Tweak the length calculation for the buffer used by
10949           str() when converting integers to strings so that the buffer is
10950           exactly the minimum required size for integers of size 1, 2, 4,
10951           and 8 bytes, and only a byte extra for 16 byte integers.
10953 Wed Nov 25 05:59:13 GMT 2009  Olly Betts <olly@survex.com>
10955         * bin/xapian-compact.cc: In the --no-renumber case, just set offset[]
10956           entries to zero to start with rather than fixing them up later.
10958 Wed Nov 25 05:49:37 GMT 2009  Olly Betts <olly@survex.com>
10960         * bin/xapian-compact.cc: Extend --no-renumber to support merging
10961           databases, but only if they have disjoint ranges of used document
10962           ids.
10964 Wed Nov 25 04:37:38 GMT 2009  Olly Betts <olly@survex.com>
10966         * bin/xapian-compact.cc: Fix typos in --help output.
10968 Wed Nov 25 04:22:26 GMT 2009  Olly Betts <olly@survex.com>
10970         * bin/xapian-compact.cc: Prune unused docids off the end of database
10971           when merging multiple databases with renumbering.
10973 Wed Nov 25 03:12:24 GMT 2009  Olly Betts <olly@survex.com>
10975         * bin/xapian-compact.cc: Use string() instead of "" and string(1, '\0')
10976           instead of string("", 1).
10978 Wed Nov 25 02:34:10 GMT 2009  Olly Betts <olly@survex.com>
10980         * backends/chert/chert_lock.cc: Fix locking code to work if stdin
10981           and/or stdout have been closed.
10982         * backends/flint/flint_lock.cc: Backport fix to flint.
10983         * tests/api_backend.cc: Add regression test lockfilefd0or1.
10985 Wed Nov 25 00:59:05 GMT 2009  Olly Betts <olly@survex.com>
10987         * backends/chert/chert_database.cc,backends/chert/chert_lock.cc,
10988           backends/chert/chert_lock.h: Add "FDLIMIT" reason code for why
10989           locking failing.
10991 Tue Nov 24 12:44:56 GMT 2009  Olly Betts <olly@survex.com>
10993         * api/omdatabase.cc: Factor out throwing an exception for docid 0 not
10994           being valid.
10996 Tue Nov 24 12:39:10 GMT 2009  Olly Betts <olly@survex.com>
10998         * tests/api_none.cc: Note previous fix was ticket#415.
11000 Tue Nov 24 12:33:12 GMT 2009  Olly Betts <olly@survex.com>
11002         * api/omdatabase.cc: Fix many Xapian::Database methods to behave better
11003           on a database with no subdatabases, such as is constructed by
11004           Database().
11005         * tests/Makefile.am,tests/api_nodb.cc,tests/api_none.cc: Expand
11006           emptydb_metadata1 to also regression test these other cases, and
11007           rename to nosubdatabases1.
11009 Mon Nov 23 14:01:51 GMT 2009  Olly Betts <olly@survex.com>
11011         * common/debuglog.h: Add "NO_ARGS" which can be used for debug logging
11012           when a function or method takes no arguments.  The main advantage
11013           over "" is that no extra code is generated for it.
11014         * api/omdatabase.cc: Convert to use debuglog.h fully.
11015         * api/matchspy.cc,api/omdatabase.cc: Make use of NO_ARGS.
11017 Mon Nov 23 09:10:55 GMT 2009  Olly Betts <olly@survex.com>
11019         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc,
11020           common/debuglog.cc,common/debuglog.h,common/omdebug.h,configure.ac,
11021           matcher/multimatch.cc,queryparser/queryparser.lt: Rename
11022           XAPIAN_DEBUG_VERBOSE macro to XAPIAN_DEBUG_LOG to better match the
11023           user-visible "--enable-log" configure option which controls it.
11025 Mon Nov 23 08:08:45 GMT 2009  Olly Betts <olly@survex.com>
11027         * backends/chert/chert_database.cc,backends/chert/chert_lock.cc,
11028           backends/chert/chert_table.cc,backends/flint/: Use string() or
11029           s.resize(0) instead of "".  Use string(1, '\0') instead of
11030           string("", 1).
11032 Sun Nov 22 14:20:51 GMT 2009  Olly Betts <olly@survex.com>
11034         * backends/chert/chert_postlist.cc: When skipping through a chunk of
11035           postings to find the one we want, don't bother to unpack the wdf
11036           values we're skipping over, which should save a significant amount
11037           of time in certain cases where the profile data shows we spend
11038           something like 1/3 of the time in the function where this happens.
11040 Sun Nov 22 13:12:39 GMT 2009  Olly Betts <olly@survex.com>
11042         * api/matchspy.cc,backends/chert/chert_values.cc,
11043           languages/steminternal.cc: Tweak whitespace after while to be
11044           consistent.
11046 Sat Nov 21 17:39:23 GMT 2009  Richard Boulton <richard@tartarus.org>
11048         * backends/chert/chert_values.cc,backends/chert/chert_values.h:
11049           Make ValueChunkReader::skip_to() assign the value to a string
11050           only when the target has been reached.  Saves a lot of
11051           unnecessary string copying - on a benchmark of mydeco data,
11052           improves time for 100 queries from 3.66s to 3.10s.
11054 Sat Nov 21 01:13:26 GMT 2009  Olly Betts <olly@survex.com>
11056         * tests/: Make arrays which don't need to be modified const.
11058 Sat Nov 21 00:01:04 GMT 2009  Olly Betts <olly@survex.com>
11060         * tests/api_matchspy.cc: The default parameter for
11061           get_writable_database() is string(), so don't explicitly pass "".
11063 Fri Nov 20 16:19:13 GMT 2009  Richard Boulton <richard@tartarus.org>
11065         * tests/api_matchspy.cc: Add regression test for underflow in
11066           numeric ranges (based on python version in ticket #321).
11068 Fri Nov 20 10:54:08 GMT 2009  Olly Betts <olly@survex.com>
11070         * matcher/valuestreamdocument.cc: Use check() instead of skip_to() in
11071           ValueStreamDocument.
11073 Fri Nov 20 09:57:12 GMT 2009  Olly Betts <olly@survex.com>
11075         * common/document.h,matcher/: Implement ValueStreamDocument subclass
11076           of Xapian::Document::Internal which provides a way to connect up
11077           valuestreams to uses of values during the match.  Other
11078           (non-recommended) uses of the Document passed to MatchDecider, etc
11079           are passed through to a lazily created backend Document::Internal
11080           subclass.  This should be a lot more efficient for chert.  It's
11081           unclear how it will affect performance for backends which don't store
11082           values in streams - profiling is required.
11084 Fri Nov 20 02:35:14 GMT 2009  Olly Betts <olly@survex.com>
11086         * backends/inmemory/inmemory_document.cc: Fix closedb1 on InMemory
11087           backend, broken by recent commit.
11089 Thu Nov 19 12:03:52 GMT 2009  Olly Betts <olly@survex.com>
11091         * backends/multi/multi_valuelist.cc: Fix to handle the case where all
11092           the sublists turn out to be empty when we first call next().
11094 Thu Nov 19 11:12:53 GMT 2009  Olly Betts <olly@survex.com>
11096         * backends/inmemory/: Set the document data and values lazily for the
11097           inmemory backend too.  They're much less costly to fetch than if
11098           a disk access may be needed, but it avoids a copy of the respective
11099           data if they aren't needed, and either could potentially be large.
11100           Consistency here also makes things easier to understand.
11102 Thu Nov 19 08:47:24 GMT 2009  Olly Betts <olly@survex.com>
11104         * api/omdocument.cc: Prefer string() to "".
11106 Thu Nov 19 07:38:29 GMT 2009  Olly Betts <olly@survex.com>
11108         * api/omdatabase.cc,backends/multi/Makefile.mk,
11109           backends/multi/multi_valuelist.cc,common/Makefile.mk,
11110           common/multivaluelist.h,tests/api_valuestream.cc: Implement support
11111           for iterating valuestreams for multidatabases.
11113 Thu Nov 19 06:19:05 GMT 2009  Olly Betts <olly@survex.com>
11115         * bin/xapian-check.cc: Rework the checking of postlist chunks into
11116           a cleaner approach which should report errors better, and
11117           eliminate the (probably) impossible "did might not be initialised"
11118           path which GCC 4.2 spotted.
11120 Thu Nov 19 01:15:03 GMT 2009  Olly Betts <olly@survex.com>
11122         * common/pack.h: Remove incorrect assertion and document what NULL
11123           parameter value means in this case.
11125 Wed Nov 18 16:33:01 GMT 2009  Richard Boulton <richard@tartarus.org>
11127         * bin/xapian-check.cc: Fix compiler warning (with gcc-4.2) that did
11128           could be used uninitialised: it couldn't be, but it's hard for a
11129           compiler to see that.
11131 Wed Nov 18 12:48:17 GMT 2009  Richard Boulton <richard@tartarus.org>
11133         * AUTHORS: Update my email address.
11135 Wed Nov 18 12:21:09 GMT 2009  Olly Betts <olly@survex.com>
11137         * common/valuelist.h: Fix internal documentation comment.
11139 Wed Nov 18 10:40:54 GMT 2009  Olly Betts <olly@survex.com>
11141         * configure.ac: Use <cstdlib>, <cmath>, <cstdio>, <cstring> for
11142           configure tests since we use these forms in the code and want
11143           consistency between what configure tests and what the code
11144           uses.
11145         * NEWS,configure.ac: Update for 1.1.3.
11147 Wed Nov 18 10:39:59 GMT 2009  Olly Betts <olly@survex.com>
11149         * PLATFORMS: Update from 1.0.17.
11151 Wed Nov 18 10:31:49 GMT 2009  Olly Betts <olly@survex.com>
11153         * INSTALL: Improve text about zlib dependency.
11155 Wed Nov 18 10:13:59 GMT 2009  Olly Betts <olly@survex.com>
11157         * INSTALL: Note the package to install for building against libuuid on
11158           Fedora, and note that libuuid isn't required on Microsoft Windows.
11160 Wed Nov 18 02:34:30 GMT 2009  Olly Betts <olly@survex.com>
11162         * NEWS: Update from 1.0.17 and ChangeLog.
11164 Mon Nov 16 08:35:52 GMT 2009  Olly Betts <olly@survex.com>
11166         * queryparser/queryparser.lemony: Fix interaction of FLAG_PARTIAL and
11167           FLAG_SYNONYM.  (ticket#407)
11168         * tests/Makefile.am,tests/api_qpbackend.cc: Add regression test
11169           qpsynonympartial1.
11171 Mon Nov 16 02:15:14 GMT 2009  Olly Betts <olly@survex.com>
11173         * backends/flint/flint_version.cc: Add "using namespace std;" and drop
11174           the explicit std:: qualifiers.
11176 Fri Nov 13 02:27:48 GMT 2009  Olly Betts <olly@survex.com>
11178         * backends/chert/chert_spelling.h,backends/chert/chert_table.h,
11179           backends/flint/flint_spelling.h,backends/flint/flint_table.h,
11180           common/getopt.cc,common/stringutils.h,languages/steminternal.h:
11181           Add missing std:: qualifiers for functions in <cstring>, <cstdlib>,
11182           etc.
11184 Fri Nov 13 02:25:50 GMT 2009  Olly Betts <olly@survex.com>
11186         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Add
11187           "using namespace std;" and drop the explicit std:: qualifiers.
11189 Fri Nov 13 02:11:18 GMT 2009  Olly Betts <olly@survex.com>
11191         * common/str.cc: Use assignment to initialise a size_t - the current
11192           code was turning a missing snprintf() prototype into a confusing
11193           error message with Sun's C++, and is less clear anyway.
11195 Fri Nov 13 02:03:28 GMT 2009  Olly Betts <olly@survex.com>
11197         * HACKING,backends/chert/chert_lock.cc,backends/flint/flint_lock.cc,
11198           backends/remote/remote-database.cc,net/remoteserver.cc,
11199           net/tcpserver.cc,tests/harness/backendmanager_remotetcp.cc,
11200           tests/harness/testsuite.cc: Sun C++'s <csignal> (not unreasonably)
11201           excludes non-ISO-C functions which are in <signal.h> - for example,
11202           kill() (which POSIX specifies).  So revert <csignal> to <signal.h>
11203           and document this as a global exception.
11205 Thu Nov 12 08:30:07 GMT 2009  Olly Betts <olly@survex.com>
11207         * matcher/collapser.h: Remove spurious comma after last entry in enum,
11208           which Sun's C++ compiler warns about.
11210 Thu Nov 12 00:24:55 GMT 2009  Olly Betts <olly@survex.com>
11212         * matcher/multimatch.cc: Sorter -> KeyMaker in an exception message.
11214 Thu Nov 12 00:01:55 GMT 2009  Olly Betts <olly@survex.com>
11216         * include/xapian/database.h: Tweak documentation comments about
11217           committing changes.
11219 Wed Nov 11 12:23:48 GMT 2009  Olly Betts <olly@survex.com>
11221         * queryparser/queryparser.lemony: Fix handling of a group of stopwords
11222           which notably caused issues when default_op was OP_AND, but could
11223           probably manifest in other cases too.  Fixes ticket#406.
11224         * tests/queryparsertest.cc: Add regression test qp_stopword_group1.
11226 Wed Nov 11 10:54:58 GMT 2009  Olly Betts <olly@survex.com>
11228         * backends/chert/chert_version.h,common/safeuuid.h: Fix workaround for
11229           uuid.h headers which lack const to actually work on Solaris.
11231 Wed Nov 11 10:53:50 GMT 2009  Olly Betts <olly@survex.com>
11233         * common/Makefile.mk: Need to ship new pack.h header.
11235 Tue Nov 10 22:27:47 GMT 2009  Olly Betts <olly@survex.com>
11237         * bin/xapian-check.cc: Fix compiler warning introduced by previous
11238           change.
11240 Tue Nov 10 12:24:34 GMT 2009  Olly Betts <olly@survex.com>
11242         * backends/chert/,bin/xapian-check.cc,common/pack.h: Rewrite the
11243           packing and unpacking functions more efficiently.  As well as being
11244           generally faster, the pack functions now take a reference to a string
11245           to append to, which avoids creating a lot of temporary string
11246           objects.  Indexing HTML files with omindex is 5-10% faster.
11247           Searching for "The" on gmane (which results in a lot of unpacking of
11248           postings and document lengths) is about 35% faster.  (ticket#326)
11250 Thu Nov 05 03:55:37 GMT 2009  Olly Betts <olly@survex.com>
11252         * common/safeuuid.h: Fix to work with uuid libraries which lack const
11253           qualifiers.  Fixes build failure on Solaris.
11255 Thu Nov 05 00:15:24 GMT 2009  Olly Betts <olly@survex.com>
11257         * HACKING: Update details of debian packaging.
11259 Wed Nov 04 04:11:38 GMT 2009  Olly Betts <olly@survex.com>
11261         * common/output.h: Use C++ syntax for NULL with a type in log output.
11263 Wed Nov 04 04:02:09 GMT 2009  Olly Betts <olly@survex.com>
11265         * queryparser/lemon.c: Avoid trivial memory leak.
11267 Wed Nov 04 00:13:00 GMT 2009  Olly Betts <olly@survex.com>
11269         * include/xapian/database.h: Reword to avoid somewhat ambiguous "this
11270           method".
11272 Tue Nov 03 12:12:09 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11274         * include/xapian/database.h: Make it more clear that you need to
11275           add the unique term to the document if you want to use
11276           replace_document() to use external unique IDs for documents.
11278 Tue Nov 03 06:08:43 GMT 2009  Olly Betts <olly@survex.com>
11280         * tests/generate-api_generated: Update MultiValueSorter to
11281           MultiValueKeyMaker.
11283 Tue Nov 03 05:51:23 GMT 2009  Olly Betts <olly@survex.com>
11285         * tests/api_sorting.cc,tests/api_sortingold.cc: Fix changesorter1 and
11286           oldchangesorter1 to not be run for the remote backend where they will
11287           now fail with UnimplementedError.
11289 Tue Nov 03 02:43:12 GMT 2009  Olly Betts <olly@survex.com>
11291         * matcher/multimatch.cc: Xapian::Sorter isn't supported with the remote
11292           backend so throw UnimplementedError rather than giving incorrect
11293           results.  (ticket#384)
11294         * tests/api_sorting.cc: Add sortfunctorremote1 test this exception is
11295           actually thrown.
11297 Tue Nov 03 01:26:57 GMT 2009  Olly Betts <olly@survex.com>
11299         * common/database.h: Fix vertical whitespace glitch.
11301 Mon Nov 02 08:10:03 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11303         * api/omdatabase.cc: Check that internal is not empty before
11304           referencing its first element, in get_metadata() and
11305           metadata_keys_begin(), to avoid a potential segfault.
11306         * tests/api_nodb.cc: Add emptydb_metadata1, a regression test for
11307           this bug.
11309 Sun Nov 01 22:10:54 GMT 2009  Olly Betts <olly@survex.com>
11311         * examples/delve.cc,examples/quest.cc: Extend exception handling to the
11312           whole of main.  Xapian::Stem("english") can't actually throw, but
11313           that's not obvious to static analysis tools, and it is more robust
11314           to wrap the whole of main, and reduces indentation.
11316 Sun Nov 01 21:27:05 GMT 2009  Olly Betts <olly@survex.com>
11318         * bin/xapian-compact.cc: Add missing exception catch for const char *.
11319           The only case which currently throws this is an "impossible"
11320           situation, but if we're going to check for it, the reporting of
11321           failure should actually work.  Identified by Coverity's Scan.
11323 Sun Nov 01 07:56:38 GMT 2009  Olly Betts <olly@survex.com>
11325         * examples/quest.cc: Tighten up the type of the error we catch to
11326           detect an unknown stemming language.
11328 Sat Oct 31 07:16:11 GMT 2009  Olly Betts <olly@survex.com>
11330         * NEWS: Update from ChangeLog.
11332 Sat Oct 31 06:59:19 GMT 2009  Olly Betts <olly@survex.com>
11334         * include/xapian/enquire.h: Fix deprecation warnings when building with
11335           recent GCC.
11337 Sat Oct 31 02:46:04 GMT 2009  Olly Betts <olly@survex.com>
11339         * tests/queryparsertest.cc: Add another test query string to cover a
11340           case we didn't previously check.
11342 Tue Oct 27 00:42:59 GMT 2009  Olly Betts <olly@survex.com>
11344         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Don't
11345           try to close the fd one more than the maximum allowable.
11346           (ticket#408)
11347         * AUTHORS: Add Carl Worth for the patch.
11349 Mon Oct 05 09:00:58 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11351         * configure.ac: Mention e2fsprogs-devel in the message thrown up by
11352           configure, too.
11354 Mon Oct 05 08:53:05 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11356         * HACKING: Note the command needed to get the uuid library
11357           installed on fedora, since it's rather non-obvious.
11359 Sat Oct 03 20:11:48 GMT 2009  Olly Betts <olly@survex.com>
11361         * unicode/tclUniData.cc: Update Unicode character database to Unicode
11362           5.2.  (ticket#351)
11363         * tests/api_unicode.cc: Add tests for some characters added in Unicode
11364           5.2.
11366 Thu Oct 01 21:19:34 GMT 2009  Olly Betts <olly@survex.com>
11368         * xapian-config.in: Need to quote ^ for Solaris /bin/sh.
11370 Fri Sep 18 13:23:00 GMT 2009  Olly Betts <olly@survex.com>
11372         * configure.ac: Actually use any flags we determine are needed to
11373           switch the compiler to proper ANSI C++ mode, when building
11374           xapian-core - this stopped working in 1.0.12, breaking support for
11375           HP's aCC, Compaq's cxx, Sun's CC, and SGI's CC.
11377 Fri Sep 18 12:40:37 GMT 2009  Olly Betts <olly@survex.com>
11379         * include/xapian/matchspy.h: Mark ValueCountMatchSpy, NumericRange,
11380           NumericRanges, and score_evenness() as experimental.
11382 Fri Sep 18 08:36:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11384         * include/xapian/weight.h,weight/weight.cc: Remove default
11385           implementation of Weight::clone() which returns NULL - we always
11386           need clone() to be implemented because it's called for every term
11387           in the query, not just used for the remote backend.
11389 Fri Sep 18 08:02:08 GMT 2009  Olly Betts <olly@survex.com>
11391         * api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h: Mark
11392           and document the matchspy parameter of Enquire::get_mset() as
11393           deprecated in favour of the new MatchSpy class and
11394           Enquire::add_matchspy().
11396 Fri Sep 18 07:58:11 GMT 2009  Olly Betts <olly@survex.com>
11398         * tests/perftest/perftest_matchdecider.cc: Don't pass default values
11399           for optional parameters to Enquire::get_mset().
11401 Fri Sep 18 02:36:43 GMT 2009  Olly Betts <olly@survex.com>
11403         * queryparser/queryparser.lemony: If FLAG_PARTIAL is specified, don't
11404           try to spell correct a term at the end of the query which we attempt
11405           to expand as partial.
11406         * tests/queryparsertest.cc: Add regression test qp_spellpartial1.
11408 Fri Sep 18 02:33:55 GMT 2009  Olly Betts <olly@survex.com>
11410         * tests/queryparsertest.cc: For testcase qp_spellwild1: Fix the dbdir
11411           to qp_spellwild1 to match the testname;  Fix the ordering of
11412           TESTCASE macros to match the order of the test functions;  Note that
11413           this is a regression test and the versions the bug will be fixed in.
11415 Fri Sep 18 01:25:37 GMT 2009  Olly Betts <olly@survex.com>
11417         * tests/queryparsertest.cc: Fix to work with the old scoping rules for
11418           variables declared in for().
11420 Thu Sep 17 19:17:30 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11422         * queryparser/queryparser.lemony: Don't apply spelling correction
11423           to wildcard terms if FLAG_WILDCARD and FLAG_SPELLING_CORRECTION
11424           are both specified.
11425         * tests/queryparsertest.cc: Add qp_spellwild1 as a test for this.
11427 Thu Sep 17 12:08:17 GMT 2009  Olly Betts <olly@survex.com>
11429         * NEWS: Update from ChangeLog.
11431 Thu Sep 17 10:20:35 GMT 2009  Olly Betts <olly@survex.com>
11433         * api/keymaker.cc: Implement Richard's idea of not encoding any
11434           trailing, forward sorted, empty values which is a generalisation
11435           of encoding all forward sorted, empty values as an empty string.
11436         * tests/api_sorting.cc: Add new testcase multivaluekeymaker1 to
11437           check encodings are as expected.
11439 Thu Sep 17 07:15:10 GMT 2009  Olly Betts <olly@survex.com>
11441         * api/,common/multimatch.h,common/omenquireinternal.h,
11442           docs/deprecation.rst,docs/sorting.rst,include/Makefile.mk,
11443           include/xapian.h,include/xapian/enquire.h,include/xapian/keymaker.h,
11444           include/xapian/sorter.h,matcher/multimatch.cc,tests/Makefile.am,
11445           tests/api_sorting.cc,tests/api_sortingold.cc: Rename Sorter to
11446           KeyMaker, paving the way for using it to build collapse keys too.
11447           Resolve the inconsistency in MultiValueSorter::add()'s "forward"
11448           parameter by replacing it with MultiKeyMaker::add_value() with a
11449           "reverse" parameter.  (ticket#359)
11451 Thu Sep 17 07:13:25 GMT 2009  Olly Betts <olly@survex.com>
11453         * api/valuesetmatchdecider.cc,include/xapian/valuesetmatchdecider.h:
11454           Inline trivial constructor from header.  Add explicit '#include
11455           "xapian/document.h"'.
11457 Thu Sep 17 05:22:50 GMT 2009  Olly Betts <olly@survex.com>
11459         * HACKING: Document how to use the XAPIAN_DEPRECATED() macro to
11460           mark a class as deprecated.
11462 Wed Sep 16 02:40:13 GMT 2009  Olly Betts <olly@survex.com>
11464         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
11465           Eliminate a couple of assertions which can never fire.
11467 Sat Sep 12 04:05:35 GMT 2009  Olly Betts <olly@survex.com>
11469         * matcher/msetpostlist.cc: Fix MSetPostList not to read off the end of
11470           the MSet if get_maxweight() is called when at_end().  This can
11471           happen but the testcase was too large to send so sadly no
11472           regression test I'm afraid.
11474 Sat Sep 12 03:41:04 GMT 2009  Olly Betts <olly@survex.com>
11476         * backends/chert/chert_values.cc: Fix code to find the first docid in
11477           the net chunk (ticket#399).
11478         * tests/api_backend.cc: Add regression test from Rich Lane.
11480 Fri Sep 11 11:14:49 GMT 2009  Olly Betts <olly@survex.com>
11482         * backends/chert/,bin/xapian-check.cc,bin/xapian-compact.cc: Add
11483           support for chert databases without a termlist table (ticket#181).
11484           Currently the only way to create such a database is to create a
11485           chert database and do "rm termlist.*".
11487 Fri Sep 11 10:07:35 GMT 2009  Olly Betts <olly@survex.com>
11489         * bin/xapian-compact.cc: Don't report an absent lazy input table as 0
11490           size.
11492 Fri Sep 11 03:17:17 GMT 2009  Olly Betts <olly@survex.com>
11494         * backends/chert/chert_table.h: Improve documentation of "handle"
11495           member.
11497 Thu Sep 10 13:24:29 GMT 2009  Olly Betts <olly@survex.com>
11499         * m4-macros/xapian-1.1.m4: Report the default xapian-config
11500           basename in configure's --help output.
11502 Thu Sep 10 12:55:48 GMT 2009  Olly Betts <olly@survex.com>
11504         * m4-macros/xapian-1.1.m4: Add optional third parameter to
11505           XO_LIB_XAPIAN which specifies the basename for the "xapian-config"
11506           script (defaults to "xapian-config" to give the current behaviour).
11508 Thu Sep 10 06:39:17 GMT 2009  Olly Betts <olly@survex.com>
11510         * NEWS: Update with changes in 1.0.16 and from ChangeLog.
11512 Thu Sep 10 02:17:56 GMT 2009  Olly Betts <olly@survex.com>
11514         * include/xapian/queryparser.h: Clarify the documentation comments for
11515           QueryParser::set_default_op() and QueryParser::get_default_op().
11517 Wed Sep 09 13:36:58 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11519         * matcher/andmaybepostlist.cc,tests/Makefile.am,tests/api_queryopt.cc:
11520           Back out patch from r13440 which introduced a new optimisation
11521           for AND_MAYBE when the maximum weight of the RHS becomes zero,
11522           due to various undesirable side effects.  I've put the patch into
11523           ticket #400 with an explanation.
11525 Wed Sep 09 01:54:05 GMT 2009  Olly Betts <olly@survex.com>
11527         * backends/chert/chert_postlist.cc,tests/api_backend.cc: Fix
11528           WritableDatabase::get_doclength() to work properly after a call to
11529           commit for the chert backend (ticket#397).
11531 Wed Sep 09 00:28:09 GMT 2009  Olly Betts <olly@survex.com>
11533         * AUTHORS: Add Dmitry Liakh for fix for #398.
11535 Wed Sep 09 00:02:47 GMT 2009  Olly Betts <olly@survex.com>
11537         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Fix a
11538           typo which stopped this fix in 1.0.12 from working (ticket #398):
11540           If we fail to get the lock after we spawn the child lock process
11541           (the common case is because the database is already open for
11542           writing) then we now clean up the child process properly.
11544 Fri Sep 04 11:24:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11546         * docs/categorisation.rst: Remove out-of-date call to get_mset()
11547           which passed a MatchSpy in - spies are now set with
11548           add_matchspy() before get_mset() is called.
11550 Thu Sep 03 00:29:27 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11552         * matcher/andmaybepostlist.cc: For AndMaybe, if the RHS has a
11553           maximum possible weight of 0, we now decay to just the LHS.
11554         * tests/Makefile.am,tests/api_queryopt.cc: Test coverage that this
11555           optimisation doesn't break anything.
11557 Tue Sep 01 12:04:13 GMT 2009  Olly Betts <olly@survex.com>
11559         * configure.ac: Send stderr output from ldconfig to config.log.
11561 Tue Sep 01 10:35:51 GMT 2009  Olly Betts <olly@survex.com>
11563         * AUTHORS,common/safeuuid.h: Fix uuid_unparse_lower() replacement for
11564           older libuuid to actually compile (really fixes ticket#368).
11566 Mon Aug 31 05:58:55 GMT 2009  Olly Betts <olly@survex.com>
11568         * NEWS: Sync with 1.0.15.
11570 Mon Aug 31 05:48:13 GMT 2009  Olly Betts <olly@survex.com>
11572         * NEWS: Start to format entries for 1.1.3.
11574 Mon Aug 31 04:14:58 GMT 2009  Olly Betts <olly@survex.com>
11576         * PLATFORMS: Sync with 1.0.15.
11578 Mon Aug 31 01:30:01 GMT 2009  Olly Betts <olly@survex.com>
11580         * common/getopt.cc: Use USE_GLIBC_GNUGETOPT from gnu_getopt.h rather
11581           than repeating the conditionals used to determine it here.  Rename
11582           __getopt_initialized to getopt_initialized and make it static.
11583           Rename _getopt_initialize() to getopt_initialize().
11585 Mon Aug 31 01:24:29 GMT 2009  Olly Betts <olly@survex.com>
11587         * common/gnu_getopt.h: Update (C) dates.  Markup file description for
11588           doxygen.  Fix comment reference to ctype.h as we now use <cctype>.
11590 Sun Aug 30 23:28:25 GMT 2009  Olly Betts <olly@survex.com>
11592         * common/gnu_getopt.h: Make optarg, optind, opterr, and optopt extern
11593           "C" to avoid linkage clash with these symbols on Mac OS X 10.6.
11595 Thu Aug 27 03:05:33 GMT 2009  Olly Betts <olly@survex.com>
11597         * HACKING: Add note to document the reason for any exceptions to the
11598           rule to use C++ forms of ISO C headers.
11600 Wed Aug 26 13:07:07 GMT 2009  Olly Betts <olly@survex.com>
11602         * AUTHORS,INSTALL,docs/install.html: Drop .php from xapian.org URLs.
11604 Wed Aug 26 12:58:51 GMT 2009  Olly Betts <olly@survex.com>
11606         * HACKING: Update URLs.  Remove duplicated text about updating RoadMap
11607           from the release checklist.
11609 Wed Aug 26 10:56:07 GMT 2009  Olly Betts <olly@survex.com>
11611         * configure.ac: Update various URLs.
11613 Tue Aug 25 01:52:51 GMT 2009  Olly Betts <olly@survex.com>
11615         * tests/harness/testsuite.cc: Fix not to report heaps of bogus errors
11616           under valgrind 3.5.0.
11618 Mon Aug 24 02:19:06 GMT 2009  Olly Betts <olly@survex.com>
11620         * include/xapian/enquire.h: Also update the documentation comment for
11621           set_sort_by_relevance_then_value() to mention sortable_serialise().
11623 Fri Aug 21 14:35:35 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11625         * Makefile.am: Add generate-exceptions to EXTRA_DIST - was missing
11626           from tarballs.
11628 Fri Aug 21 12:21:59 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11630         * AUTHORS: Add Michael Vogt, who suggested adding a comment about
11631           sortable_serialise to set_sort_by_value().
11633 Fri Aug 21 12:14:13 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11635         * include/xapian/enquire.h: Update documentation comments for
11636           set_sort_by_value() and set_sort_by_value_then_relevance() to
11637           mention sortable_serialise() as a good way to store values if you
11638           want to sort by them.
11640 Mon Aug 17 16:51:10 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11642         * matcher/multimatch.cc: When sorting by non-pure-relevance, ensure
11643           that the document is shown to the matchspy even if it couldn't
11644           get in the mset.
11645         * tests/api_matchspy.cc: Extend matchspy4 to include a regression
11646           test for this.
11648 Mon Aug 17 11:51:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11650         * api/matchspy.cc,include/xapian/matchspy.h: Add overload for
11651           score_evenness to allow a NumericRanges object to be passed to
11652           it.
11654 Mon Aug 17 07:36:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11656         * api/matchspy.cc,include/xapian/matchspy.h: Replace
11657           build_numeric_ranges() function with a NumericRanges object,
11658           whose constructor is passed the values and which exposes the
11659           calculated ranges via a getter.
11660         * tests/api_matchspy.cc: Update tests to use new NumericRanges
11661           object instead of build_numeric_ranges().
11663 Wed Aug 12 17:33:53 GMT 2009  Olly Betts <olly@survex.com>
11665         * Makefile.am: Fix generate-exceptions change to work in a VPATH
11666           build.
11668 Wed Aug 12 15:57:44 GMT 2009  Olly Betts <olly@survex.com>
11670         * exception_data.pm: Add new SerialisationError.
11671         * common/serialise-double.cc: Throw SerialisationError or InternalError
11672           instead of NetworkError.
11674 Wed Aug 12 15:19:05 GMT 2009  Olly Betts <olly@survex.com>
11676         * Makefile.am,configure.ac,generate-exceptions,generate-exceptions.in:
11677           It's not very useful to be able to run generate-exceptions outside
11678           the build system, and it only gets the #! line substituted, so just
11679           move those runes into Makefile.am and reduce the number of files that
11680           configure needs to generate by one.
11682 Mon Aug 10 13:25:22 GMT 2009  Olly Betts <olly@survex.com>
11684         * api/matchspy.cc: Use <cfloat> and <cmath> rather than <float.h> and
11685           <math.h> (regression from merging the matchspy branch).
11687 Mon Aug 10 13:01:57 GMT 2009  Olly Betts <olly@survex.com>
11689         * api/,bin/xapian-tcpsrv.cc,common/,docs/postingsource.rst,
11690           docs/serialisation.rst,include/Makefile.mk,include/xapian.h,
11691           include/xapian/,net/remoteserver.cc,tests/: Rename
11692           SerialisationContext to Registry.
11694 Mon Aug 10 11:23:23 GMT 2009  Olly Betts <olly@survex.com>
11696         * NEWS: Start to update from ChangeLog.
11698 Mon Aug 10 10:29:13 GMT 2009  Olly Betts <olly@survex.com>
11700         * api/omenquire.cc,include/xapian/weight.h,matcher/localmatch.cc:
11701           Make Weight::clone() public, and remove Weight::clone_() as it is
11702           no longer required.
11704 Mon Aug 10 07:55:04 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11706         * HACKING: Add section on ordering of include files, and fix a few
11707           formatting issues to make this file into valid restructured text
11708           again.
11710 Mon Aug 10 06:55:45 GMT 2009  Olly Betts <olly@survex.com>
11712         * api/serialisationcontext.cc,common/serialisationcontextinternal.h:
11713           Refactor to use a template function to implement the exception safe
11714           approach I implemented for PostingSource, and use it for MatchSpy
11715           and Weight too.
11716         * tests/api_serialise.cc: Add tests for exception safety of MatchSpy
11717           and Weight with SerialisationContext.
11719 Mon Aug 10 06:15:23 GMT 2009  Olly Betts <olly@survex.com>
11721         * include/xapian/weight.h,weight/weight.cc: Add default implementations
11722           of Weight methods name(), serialise(), unserialise(), and clone() for
11723           consistency with PostingSource and MatchSpy.
11725 Mon Aug 10 03:29:12 GMT 2009  Olly Betts <olly@survex.com>
11727         * tests/api_postingsource.cc: Tweak header include order.
11729 Tue Aug 04 15:49:54 GMT 2009  Olly Betts <olly@survex.com>
11731         * include/xapian/queryparser.h: Explicitly document that an empty
11732           prefix argument to QueryParser::add_prefix() means "no prefix".
11734 Tue Aug 04 13:11:26 GMT 2009  Olly Betts <olly@survex.com>
11736         * api/postingsource.cc: Throw UnimplementedError rather than
11737           InvalidOperationError from PostingSource::serialise() and
11738           PostingSource::unserialise() for consistency with MatchSpy.
11739         * include/xapian/postingsource.h: Document this behaviour (previously
11740           we didn't say what the default implementation actually did).
11741         * tests/api_serialise.cc: Add test coverage.
11743 Mon Aug 03 11:40:31 GMT 2009  Olly Betts <olly@survex.com>
11745         * api/serialisationcontext.cc: Fix to handle the clone() method or dtor
11746           of a PostingSource subclass throwing exceptions.
11747         * tests/api_serialise.cc: Add new testcase serialisationcontext1 as a
11748           regression test for this.
11750 Mon Aug 03 06:40:28 GMT 2009  Olly Betts <olly@survex.com>
11752         * tests/api_serialise.cc: Fix copy-and-pasted @brief.
11754 Sun Aug 02 16:21:54 GMT 2009  Olly Betts <olly@survex.com>
11756         * common/remoteprotocol.h: Correction: protocol version 33 will debut
11757           in 1.1.3 not 1.1.4.
11759 Sun Aug 02 16:20:28 GMT 2009  Olly Betts <olly@survex.com>
11761         * docs/remote_protocol.html: Update to document protocol version 33.
11763 Sun Aug 02 16:17:24 GMT 2009  Olly Betts <olly@survex.com>
11765         * backends/remote/remote-database.cc,net/remoteserver.cc: We were
11766           ignoring any trailing junk after the matchspies in MSG_GETMSET, so
11767           change to not send a count of them and just unpack until we run out
11768           of data.
11770 Sun Aug 02 15:47:30 GMT 2009  Olly Betts <olly@survex.com>
11772         * common/remoteprotocol.h: Note the versions in which recent protocol
11773           versions were introduced.
11775 Sun Aug 02 15:09:13 GMT 2009  Olly Betts <olly@survex.com>
11777         * backends/remote/remote-database.cc,common/serialise.h,
11778           net/remoteserver.cc,net/serialise.cc: Put the serialised MSet last in
11779           REPLY_RESULTS as then it doesn't need to know its own length (so the
11780           encoding is the same size it used to be in the non-matchspy case),
11781           and we avoid having to check for there being "junk" data left over
11782           after unserialising.
11784 Sun Aug 02 14:39:18 GMT 2009  Olly Betts <olly@survex.com>
11786         * matcher/remotesubmatch.h: Fix to build with GCC 4.4.1.
11788 Sun Aug 02 14:27:44 GMT 2009  Olly Betts <olly@survex.com>
11790         * backends/remote/remote-database.cc: Don't assign a temporary string
11791           object.
11793 Sun Aug 02 13:50:14 GMT 2009  Olly Betts <olly@survex.com>
11795         * include/xapian/matchspy.h: Add missing documentation comments.
11797 Sun Aug 02 12:15:43 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11799         Merge from matchspy branch.
11800         * api/,backends/remote/remote-database.cc,common/,docs/Makefile.am,
11801           docs/categorisation.rst,include/Makefile.mk,include/xapian.h,
11802           include/xapian/enquire.h,include/xapian/matchspy.h,
11803           include/xapian/serialisationcontext.h,matcher/multimatch.cc,
11804           matcher/remotesubmatch.cc,matcher/remotesubmatch.h,
11805           net/remoteserver.cc,net/serialise.cc,tests/Makefile.am,
11806           tests/api_matchspy.cc: Add new-style Xapian::MatchSpy class,
11807           which is a pure "spy" class, rather than being able to take a
11808           decision on whether a spy is applied before or after a result.
11809           This class is also designed to work with remote databases,
11810           passing the results back in serialised form.  Also, add
11811           ValueCountMatchSpy, which counts the occurrences of each value in
11812           a slot in the search results seen (useful for faceted or
11813           categorisation systems).
11815 Fri Jul 31 12:50:57 GMT 2009  Olly Betts <olly@survex.com>
11817         * tests/api_backend.cc,tests/api_wrdb.cc: Move new test
11818           modifiedpostlist1 from api_wrdb.cc to api_backend.cc - we're trying
11819           not to make api-wrdb.cc any larger.  Also note the ticket number and
11820           the release this will be fixed in.
11822 Thu Jul 30 16:30:06 GMT 2009  Olly Betts <olly@survex.com>
11824         * backends/chert/chert_modifiedpostlist.cc: Fix ChertModifiedPostList
11825           to skip added-but-then-deleted-before-flush documents.  (ticket#392)
11826           backends/flint/flint_modifiedpostlist.cc: Same fix for flint.
11827         * tests/api_wrdb.cc: Add regression test modifiedpostlist1.
11828         * AUTHORS: Add Rich Lane for patch.
11830 Wed Jul 29 09:44:15 GMT 2009  Olly Betts <olly@survex.com>
11832         * NEWS: Update from ChangeLog.
11834 Wed Jul 29 09:29:45 GMT 2009  Olly Betts <olly@survex.com>
11836         * include/xapian/valueiterator.h: Fix typos ("again" -> "and").
11838 Wed Jul 29 06:18:41 GMT 2009  Olly Betts <olly@survex.com>
11840         * tests/Makefile.am: Actually distribute testdata/apitest_declen.txt
11841           - new test data from the postingsources branch merge.
11843 Tue Jul 28 16:38:55 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11845         Merge from postingsources branch:
11846         * tests/generate-api_generated: Test get_description() methods of
11847           Xapian::PostingSource subclasses.
11849 Tue Jul 28 16:35:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
11851         Merge from postingsources branch:
11852         * api/Makefile.mk,api/decvalwtsource.cc,api/serialisationcontext.cc,
11853           include/xapian/postingsource.h: Add
11854           DecreasingValueWeightPostingSource class, which reads weights
11855           from a value slot in which a significant range of the values are
11856           in decreasing order.  This functions similarly to
11857           ValueWeightPostingSource, but can be much more efficient.
11858         * tests/api_valuestream.cc,tests/testdata/apitest_declen.txt:
11859           Tests, and some associated constructed test data, for
11860           DecreasingValueWeightPostingSource.
11862 Mon Jul 27 04:50:45 GMT 2009  Olly Betts <olly@survex.com>
11864         * HACKING: Now using autoconf 2.64.
11866 Mon Jul 27 04:46:17 GMT 2009  Olly Betts <olly@survex.com>
11868         * HACKING: Add note about preferring std::string::assign(), and also
11869           one about building up strings using +=.
11871 Mon Jul 27 04:45:15 GMT 2009  Olly Betts <olly@survex.com>
11873         * backends/chert/chert_lock.cc,backends/chert/chert_utils.h,
11874           backends/flint/flint_lock.cc,backends/flint/flint_utils.h,
11875           backends/remote/remote-database.cc: Use std::string::assign() rather
11876           than constructing a temporary string object to assign.
11878 Sun Jul 26 16:08:10 GMT 2009  Olly Betts <olly@survex.com>
11880         * AUTHORS: Update for bugs fixed in 1.0.14.
11882 Sun Jul 26 16:03:54 GMT 2009  Olly Betts <olly@survex.com>
11884         * HACKING: Update the release checklist.
11886 Sun Jul 26 14:28:25 GMT 2009  Olly Betts <olly@survex.com>
11888         * docs/doxygen_source.conf.in: Update roughly in-line with apidoc
11889           changes.  I've not looked at the output much though.
11891 Sun Jul 26 14:00:14 GMT 2009  Olly Betts <olly@survex.com>
11893         * include/xapian/database.h: Remove documentation comment for namespace
11894           Xapian - this is now documented in xapian.h.
11896 Sun Jul 26 13:59:42 GMT 2009  Olly Betts <olly@survex.com>
11898         * include/xapian/unicode.h: Add documentation comment for namespace
11899           Unicode.
11901 Sun Jul 26 13:58:44 GMT 2009  Olly Betts <olly@survex.com>
11903         * include/xapian/dbfactory.h: Add documentation comments for the
11904           backend namespaces (InMemory, etc).
11906 Sun Jul 26 13:57:29 GMT 2009  Olly Betts <olly@survex.com>
11908         * include/xapian/version_h.cc: Add documentation comments for the
11909           generated version.h, and all the preprocessor defines it contains.
11911 Sun Jul 26 13:56:15 GMT 2009  Olly Betts <olly@survex.com>
11913         * include/xapian.h: Consistently say "linked with" rather than "linked
11914           to" in some cases.  Put documentation comment for namespace Xapian
11915           in this file.
11917 Sun Jul 26 13:06:45 GMT 2009  Olly Betts <olly@survex.com>
11919         * docs/doxygen_api.conf.in: More fettling to try to get better output:
11920           + Wrap long comments.
11921           + Quote arguments containing @...@ substitutions as they could
11922             conceivably contain spaces.
11923           + ALWAYS_DETAILED_SEC = NO: since a detailed section with no extra
11924             information is pointless.
11925           + STRIP_FROM_PATH, INCLUDE_PATH: Add "@top_builddir@/include" for
11926             VPATH builds.
11927           + HIDE_UNDOC_MEMBERS = YES: otherwise @internal members show up
11928             (with no documentation).
11929           + HIDE_FRIEND_COMPOUNDS = YES: as friend declarations in the API
11930             headers are implementation details.
11931           + SHOW_INCLUDE_FILES = NO: users should just include <xapian.h>
11932             for all their API needs.
11933           + GENERATE_TODOLIST, GENERATE_TESTLIST, GENERATE_BUGLIST: all set to
11934             NO as we don't want these in the API documentation.
11935           + SHOW_NAMESPACES = YES: We have several sub-namespaces so these are
11936             useful to document.
11937           + INPUT: Prepend "@top_builddir@/include/xapian/version.h" so that
11938             XAPIAN_HAS_FLINT_BACKEND, etc are defined before parsing other
11939             headers.
11940           + EXCLUDE: remove all entries and use EXCLUDE_PATTERNS instead.
11941           + EXCLUDE_PATTERNS: Include entries corresponding to those in EXCLUDE
11942             and add */derefwrapper.h and */.* (the latter avoids trying to look
11943             in .svn or any other hidden files or directories).
11944           + REFERENCES_LINK_SOURCE = NO: Improves output.
11945           + VERBATIM_HEADERS = NO: The verbatim headers aren't very
11946             interesting.
11947           + PREDEFINED: Define XAPIAN_VISIBILITY_DEFAULT and
11948             XAPIAN_DEPRECATED(D)=D as doxygen seem reluctant to parse included
11949             files.
11950           + EXPAND_AS_DEFINED: Remove XAPIAN_VISIBILITY_DEFAULT and
11951             XAPIAN_DEPRECATED as these are now handled by PREDEFINED.
11952           + EXTERNAL_GROUPS = NO, GROUP_GRAPHS = NO: We don't use groups so
11953             disable these.
11955 Sun Jul 26 10:14:32 GMT 2009  Olly Betts <olly@survex.com>
11957         * docs/doxygen_api.conf.in,docs/doxygen_source.conf.in: Change
11958           @PACKAGE@ to @PACKAGE_NAME@ and @VERSION@ to @PACKAGE_VERSION@ to
11959           reflect modern autotools usage.
11961 Fri Jul 24 16:23:31 GMT 2009  Olly Betts <olly@survex.com>
11963         * configure.ac,docs/: Rename doxygen configuration files from "_conf"
11964           to ".conf".  Rename doxygen_full.conf to doxygen_source.conf, etc.
11966 Fri Jul 24 16:02:39 GMT 2009  Olly Betts <olly@survex.com>
11968         * HACKING: Update to note that doxygen is now installed in-tree, and
11969           that we now use 1.5.9 for 1.1.x snapshots and releases, and that
11970           graphviz ">1.8.10" is now required.
11972 Fri Jul 24 16:01:31 GMT 2009  Olly Betts <olly@survex.com>
11974         * include/xapian/: Documentation comment tweaks.
11976 Fri Jul 24 15:34:03 GMT 2009  Olly Betts <olly@survex.com>
11978         * include/xapian/unicode.h: Fix @param names to match parameter names.
11980 Fri Jul 24 15:33:12 GMT 2009  Olly Betts <olly@survex.com>
11982         * docs/doxygen_api_conf.in: Major doxygen config overhaul:
11983           + STRIP_FROM_PATH: Strip include from header names.
11984           + JAVADOC_AUTOBRIEF: Re-enable as we have lost most of our brief
11985             descriptions - we can fix up the few cases where this caused
11986             problems with an explicit @brief.
11987           + BUILTIN_STL_SUPPORT: Enable for slightly STL-related stuff.
11988           + DISTRIBUTE_GROUP_DOC: Enable so group members get the group's
11989             comments.
11990           + EXTRACT_STATIC, EXTRACT_LOCAL_CLASSES: Disable since we don't
11991             need these.
11992           + SHOW_NAMESPACES: Disable to hide the "Xapian" namespace.
11993           + QUIET: Enable for less doxygen chatter.
11994           + WARN_LOGFILE: Unset so warnings go to stderr to encourage us to
11995             actually fix them!
11996           + EXCLUDE: Hide base.h, deprecated.h, errordispatch.h, visibility.h.
11997           + HTML_DYNAMIC_SECTIONS: Enable so the class diagrams are hidden by
11998             default but can be "expanded" to be viewed.
11999           + COLLABORATION_GRAPH: Disable as these don't ever seem useful in
12000             the API docs.
12001           + TEMPLATE_RELATIONS: Disable as we don't want to see template
12002             instantiations in inheritance diagrams.
12003           + DOT_MULTI_TARGETS: Enable for faster dot processsing.  Needs
12004             graphviz ">1.8.10", but that's really old now.
12006 Fri Jul 24 13:00:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12008         * bin/xapian-compact.cc: Fix to work with the metainfo key stored
12009           in the latest format of chert databases.
12011 Fri Jul 24 10:32:32 GMT 2009  Olly Betts <olly@survex.com>
12013         * backends/chert/chert_values.cc: Avoid doing pointless work by trying
12014           to delete non-existent lists of values when we're just adding
12015           documents.
12017 Fri Jul 24 05:32:34 GMT 2009  Olly Betts <olly@survex.com>
12019         * docs/doxygen_api_conf.in: Update with "doxygen -u" using doxygen
12020           1.5.9 and then trim trailing whitespace.
12022 Thu Jul 23 04:10:49 GMT 2009  Olly Betts <olly@survex.com>
12024         * NEWS,configure.ac: Update for 1.1.2.
12026 Wed Jul 22 13:58:13 GMT 2009  Olly Betts <olly@survex.com>
12028         * backends/chert/chert_databasereplicator.cc,
12029           backends/flint/flint_databasereplicator.cc: Prefer += to + for
12030           building up strings.
12032 Wed Jul 22 09:01:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12034         * backends/chert/chert_databasereplicator.cc,
12035           backends/flint/flint_databasereplicator.cc: Check result of
12036           ::open() for -1, and throw an error immediately if this happens,
12037           rather than leaving it to a later call to fail with EBADF.
12038           Should make it easier to diagnose problems, since we'll now see
12039           the reason that the open() failed.
12041 Tue Jul 21 17:08:41 GMT 2009  Olly Betts <olly@survex.com>
12043         * NEWS: Update from ChangeLog and sync with 1.0.14.
12045 Mon Jul 20 04:48:32 GMT 2009  Olly Betts <olly@survex.com>
12047         * matcher/queryoptimiser.cc: Fix build with assertions enabled.
12049 Mon Jul 20 04:47:33 GMT 2009  Olly Betts <olly@survex.com>
12051         * include/xapian/query.h: Update doc comment - OP_SYNONYM can take any
12052           number of subqueries too.
12054 Sun Jul 19 17:26:53 GMT 2009  Olly Betts <olly@survex.com>
12056         * api/omqueryinternal.cc,include/xapian/query.h,matcher/localmatch.cc:
12057           Remove wqf member of Xapian::Query::Internal and store the wqf in
12058           the parameter member instead.  (ticket#280)
12060 Sun Jul 19 17:24:02 GMT 2009  Olly Betts <olly@survex.com>
12062         * api/omqueryinternal.cc,include/xapian/query.h: Remove unused
12063           method Xapian::Query::Internal::swap().
12065 Sun Jul 19 16:22:01 GMT 2009  Olly Betts <olly@survex.com>
12067         * api/valuerangeproc.cc,include/xapian/queryparser.h: Move support for
12068           a prefix/suffix from NumberValueRangeProcessor to
12069           StringValueRangeProcessor, and change NumberValueRangeProcessor and
12070           DateValueRangeProcessor to inherit from StringValueRangeProcessor so
12071           all three now support a prefix/suffix.  (ticket#220)
12072         * tests/queryparsertest.cc: Add test coverage for new features.
12074 Sun Jul 19 16:05:04 GMT 2009  Olly Betts <olly@survex.com>
12076         * tests/queryparsertest.cc: Reenable tests which require the inmemory
12077           backend to be enabled by fixing typo XAPIAN_HAS_BACKEND_INMEMORY ->
12078           XAPIAN_HAS_INMEMORY_BACKEND.
12080 Sun Jul 19 14:56:16 GMT 2009  Olly Betts <olly@survex.com>
12082         * api/documentvaluelist.cc: Use str() instead of om_tostring().
12084 Sun Jul 19 14:42:15 GMT 2009  Olly Betts <olly@survex.com>
12086         * matcher/msetcmp.cc: Eliminate two more relocations.
12088 Sun Jul 19 13:46:08 GMT 2009  Olly Betts <olly@survex.com>
12090         * api/omqueryinternal.cc: Factor out "is_distributable()" function.
12092 Sun Jul 19 11:11:06 GMT 2009  Olly Betts <olly@survex.com>
12094         * include/xapian/version_h.cc: Fix "dummy" -> "dummy[]" so the code
12095           here is valid C - we only preprocess it, but since the reason for
12096           having the dummy stuff at all is to avoid problems with "smart"
12097           preprocessors which moan if the code isn't valid, this seems worth
12098           fixing.
12100 Sun Jul 19 10:21:41 GMT 2009  Olly Betts <olly@survex.com>
12102         * backends/flint/flint_database.cc: Backport the previous change to
12103           flint.
12105 Sun Jul 19 08:04:48 GMT 2009  Olly Betts <olly@survex.com>
12107         * backends/chert/chert_database.cc: Instead of dynamically building a
12108           std::list of the leafnames we need to replicate, just list them in a
12109           compact format in the source file.  Results in smaller code and
12110           should be faster and smaller at runtime.
12112 Sat Jul 18 17:12:58 GMT 2009  Olly Betts <olly@survex.com>
12114         * languages/compiler/generator.c: Merge among table entries which are
12115           substrings of others in the same among.  We could be much cleverer
12116           and merge between amongs, and allow overlaps, etc, but this get us
12117           a nice size reduction for a small amount of effort, so it'll do for
12118           now.
12120 Sat Jul 18 15:42:48 GMT 2009  Olly Betts <olly@survex.com>
12122         * languages/compiler/generator.c,languages/steminternal.cc,
12123           languages/steminternal.h: Change how snowball generates the data used
12124           by among - instead of using pointers to the strings in struct among,
12125           store an offset into a constant pool, as this reduces the number of
12126           relocations from 5001 to 2706, which should decrease the time taken
12127           by the dynamic linker when loading the library.  This also results
12128           in slightly smaller code.
12130 Fri Jul 17 16:32:02 GMT 2009  Olly Betts <olly@survex.com>
12132         * tests/api_nodb.cc: Check output of Stem::get_description() for each
12133           supported language.
12135 Thu Jul 16 04:34:57 GMT 2009  Olly Betts <olly@survex.com>
12137         * common/fileutils.h: Remove unnecessary XAPIAN_VISIBILITY_DEFAULT
12138           (ticket#63).
12139         * common/fileutils.cc,common/fileutils.h: Make isabspath() static
12140           since it is only used by other functions in the same file.
12142 Thu Jul 16 04:13:48 GMT 2009  Olly Betts <olly@survex.com>
12144         * queryparser/queryparser.lemony: Fix comment typo.
12146 Thu Jul 16 03:59:49 GMT 2009  Olly Betts <olly@survex.com>
12148         * api/sorter.cc,include/xapian/sorter.h: MultiValueSorter doesn't
12149           need an explicit dtor - it's enough that Sorter has a virtual dtor.
12151 Thu Jul 16 03:29:41 GMT 2009  Olly Betts <olly@survex.com>
12153         * AUTHORS: Add Andreas Flöter for the Solaris package howto.
12155 Wed Jul 15 14:37:19 GMT 2009  Olly Betts <olly@survex.com>
12157         * matcher/rset.cc: Just pass pointer as AutoPtr constructor parameter
12158           rather constructing a temporary AutoPtr and invoking the assignment
12159           operator.
12161 Wed Jul 15 03:43:35 GMT 2009  Olly Betts <olly@survex.com>
12163         * common/omenquireinternal.h: "class" -> "object" in doc comment.
12165 Wed Jul 15 03:38:55 GMT 2009  Olly Betts <olly@survex.com>
12167         * tests/runtest.in: Raise the fd limit from 32 to 64 - multi_flint
12168           tests need more than 32 fds.
12170 Tue Jul 14 20:32:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12172         * api/omenquire.cc,common/omenquireinternal.h: Revert r13052, which
12173           changed Enquire::Internal::weight not to be mutable.  Expand the
12174           comment explaining why it's mutable.
12176 Tue Jul 14 18:40:43 GMT 2009  Olly Betts <olly@survex.com>
12178         * tests/runtest.in: Use "ulimit -n" where available to limit the
12179           number of available file descriptors to 32 so we catch file
12180           descriptor leaks sooner.
12182 Tue Jul 14 16:53:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12184         * api/omenquire.cc,common/omenquireinternal.h: Tidy up mutable
12185           Weight member on Enquire::Internal class; make it non-mutable,
12186           and just make a temporary BM25Weight object if the weight member
12187           was NULL.
12189 Tue Jul 14 12:36:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12191         * common/output.h: Display a "<NULL $CLASSNAME>" message in debug
12192           output when a pointer being output is NULL.  Previously, NULL
12193           Query::Internal pointers were causing segfaults with debug
12194           logging for many tests (eg, emptyquery1).
12196 Sun Jul 12 14:56:18 GMT 2009  Olly Betts <olly@survex.com>
12198         * backends/chert/chert_database.cc: We no longer have a "value" table
12199           (values are now stored in the postlist and termlist tables) so fix
12200           comments not to refer to it.
12202 Sun Jul 12 14:47:17 GMT 2009  Olly Betts <olly@survex.com>
12204         * backends/chert/: Add new ChertLazyTable class and subclass lazy
12205           tables from it so that we only need to implement the common
12206           differences once.
12208 Sun Jul 12 13:41:27 GMT 2009  Olly Betts <olly@survex.com>
12210         * api/replication.cc: No point using join_paths() to append a literal
12211           leaf name, especially as we already don't elsewhere.
12213 Sun Jul 12 12:01:25 GMT 2009  Olly Betts <olly@survex.com>
12215         * queryparser/queryparser.lemony: Fix memory leak accidentally
12216           introduced in r13005.
12218 Sun Jul 12 11:40:26 GMT 2009  Olly Betts <olly@survex.com>
12220         * tests/api_opsynonym.cc: Remove debug "cout" calls.
12222 Sun Jul 12 09:43:06 GMT 2009  Olly Betts <olly@survex.com>
12224         * matcher/queryoptimiser.cc: Don't just skip counting subqueries which
12225           are the RHS of OP_AND_NOT - skip based on factor == 0.0, which means
12226           we get the RHS of OP_FILTER too.
12227         * tests/api_percentages.cc: Add topercent4 as a regression test for
12228           this.
12230 Sun Jul 12 09:32:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12232         * matcher/andmaybepostlist.cc: Add DEBUGCALL macro to
12233           count_matching_subqs() to fix build with assertions.
12235 Sun Jul 12 08:17:02 GMT 2009  Olly Betts <olly@survex.com>
12237         * matcher/remotesubmatch.cc: Percentage scaling for remote results is
12238           handled in a different way, so replace FIXME with comment noting
12239           this.
12241 Sun Jul 12 05:48:17 GMT 2009  Olly Betts <olly@survex.com>
12243         * matcher/multimatch.cc: Fix handling of percentage weights in various
12244           cases when we're searching multiple remote databases or a mix of
12245           local and remote databases.
12246         * tests/api_percentages.cc: Add regression test topercent3.
12248 Sat Jul 11 13:35:02 GMT 2009  Olly Betts <olly@survex.com>
12250         * matcher/mergepostlist.cc: Fix file description - MergePostList can
12251           merge any number of posting lists, not just two.
12253 Sat Jul 11 13:09:40 GMT 2009  Olly Betts <olly@survex.com>
12255         * matcher/extraweightpostlist.h:
12256           ExtraWeightPostList::read_position_list() and
12257           ExtraWeightPostList::open_position_list() aren't used, so remove
12258           them.
12260 Sat Jul 11 12:54:30 GMT 2009  Olly Betts <olly@survex.com>
12262         * api/leafpostlist.cc,api/postlist.cc,common/leafpostlist.h,
12263           common/postlist.h,common/submatch.h,matcher/,tests/api_anydb.cc,
12264           tests/api_opsynonym.cc: Count how many leaf subqueries match for the
12265           document with the highest weight when calculating the percentage
12266           weights, instead of using the termlist of that document (ticket#363).
12267           Also fixes XOR with a SYNONYM subquery which could achieve 100%
12268           weight before.
12270 Fri Jul 10 08:02:18 GMT 2009  Olly Betts <olly@survex.com>
12272         * api/omdatabase.cc,backends/chert/chert_spelling.cc,
12273           backends/flint/flint_spelling.cc,common/database.h: Deal with the
12274           case of get_spelling_suggestion() with an empty or single character
12275           word up front.
12277 Thu Jul 09 16:20:47 GMT 2009  Olly Betts <olly@survex.com>
12279         * tests/harness/backendmanager_remotetcp.cc: In clean_up(), only scan
12280           through the pid_to_fd array once, and disable the signal handler
12281           and call waitpid() for any remaining pids ourselves, rather than
12282           calling sleep(1) and rechecking.  This should avoid pointless delays
12283           when the child hasn't exited when we first check.
12285 Thu Jul 09 12:40:52 GMT 2009  Olly Betts <olly@survex.com>
12287         * tests/harness/: BackendManager has a virtual dtor, so we don't need
12288           empty virtual dtors in its subclasses.
12290 Thu Jul 09 11:40:20 GMT 2009  Olly Betts <olly@survex.com>
12292         * tests/harness/backendmanager_remotetcp.cc,
12293           tests/harness/backendmanager_remotetcp.h: Move the
12294           BackendManagerRemoteTcp ctor back into the header now it is trivial
12295           again.
12297 Wed Jul 08 16:56:53 GMT 2009  Olly Betts <olly@survex.com>
12299         * backends/flint/flint_io.h: Backport change to use F_FULLSYNC from
12300           chert.
12302 Wed Jul 08 15:30:22 GMT 2009  Olly Betts <olly@survex.com>
12304         * configure.ac: Check that we can find the valgrind/memcheck.h header
12305           as well as the valgrind binary.
12307 Wed Jul 08 14:30:53 GMT 2009  Olly Betts <olly@survex.com>
12309         * tests/harness/backendmanager_remotetcp.cc: Sort out the clash
12310           between two different patches to fix leaking file descriptors.
12311           Also, call clean_up() from the destructor to correctly handle the
12312           case when a BackendManagerRemoteTcp is created by a test case
12313           directly.
12315 Wed Jul 08 14:17:43 GMT 2009  Olly Betts <olly@survex.com>
12317         * tests/harness/: Rename "posttest()" method to "clean_up()" - I keep
12318           thinking "power-on self-test".
12320 Wed Jul 08 05:08:09 GMT 2009  Olly Betts <olly@survex.com>
12322         * backends/chert/chert_io.h: Use F_FULLFSYNC where available (Mac OS X
12323           currently).  (ticket#288)
12325 Tue Jul 07 09:31:35 GMT 2009  Olly Betts <olly@survex.com>
12327         * queryparser/queryparser.lemony: If default_op is OP_NEAR or OP_PHRASE
12328           then make the default window size (9 + no_of_terms), like it would be
12329           for an explicit NEAR or PHRASE without an explicit window size.
12330           (ticket#254)
12331         * tests/queryparsertest.cc: Add feature tests for this.
12333 Tue Jul 07 07:18:15 GMT 2009  Olly Betts <olly@survex.com>
12335         * HACKING,api/,backends/chert/,backends/flint/,
12336           backends/remote/remote-database.cc,common/,languages/steminternal.h,
12337           net/,queryparser/queryparser.cc,tests/harness/,tests/internaltest.cc,
12338           tests/perftest/freemem.cc,tests/perftest/perftest_randomidx.cc,
12339           tests/stemtest.cc,unicode/utf8itor.cc: Update to use C++ forms for
12340           ISO C standard headers (ticket#330).
12342 Tue Jul 07 05:30:58 GMT 2009  Olly Betts <olly@survex.com>
12344         * backends/inmemory/inmemory_database.h: Use "omassert.h" not
12345           <omassert.h>.
12347 Mon Jul 06 04:30:59 GMT 2009  Olly Betts <olly@survex.com>
12349         * AUTHORS: Add Rolf Köhling for fixes for Omega on MS Windows.
12351 Sun Jul 05 16:28:54 GMT 2009  Olly Betts <olly@survex.com>
12353         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
12354           Backport the lazyupdate changes from chert to flint.
12356 Sun Jul 05 13:12:53 GMT 2009  Olly Betts <olly@survex.com>
12358         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h: Move
12359           virtual destructor definition out of the header.
12361 Sun Jul 05 04:09:04 GMT 2009  Olly Betts <olly@survex.com>
12363         * common/documentterm.h: Add const to OmDocumentTerm::get_wdf() method
12364           (ticket#139).
12366 Sat Jul 04 16:45:43 GMT 2009  Olly Betts <olly@survex.com>
12368         * queryparser/lemon.c: Merge upstream "Check-in Number: 6757" - no
12369           functional changes in generated code for our parser.
12371 Sat Jul 04 16:39:41 GMT 2009  Olly Betts <olly@survex.com>
12373         * queryparser/lemon.c: Merge upstream "Check-in Number: 6756" - no
12374           functional changes in generated code for our parser.
12376 Sat Jul 04 16:36:59 GMT 2009  Olly Betts <olly@survex.com>
12378         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
12379           "Check-in Number: 6755" - no functional changes in generated code for
12380           our parser.
12382 Sat Jul 04 16:29:24 GMT 2009  Olly Betts <olly@survex.com>
12384         * queryparser/lemon.c: Merge upstream "Check-in Number: 6754" - no
12385           changes in generated code for our parser.
12387 Sat Jul 04 16:24:45 GMT 2009  Olly Betts <olly@survex.com>
12389         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6749" -
12390           only changes are in code which isn't compiled due to preprocessor
12391           conditionals.
12393 Sat Jul 04 16:02:08 GMT 2009  Olly Betts <olly@survex.com>
12395         * api/editdistance.cc: Add const to is_transposed() method
12396           (ticket#139).
12398 Sat Jul 04 15:19:55 GMT 2009  Olly Betts <olly@survex.com>
12400         * backends/chert/chert_lock.h,backends/flint/flint_lock.h: Make
12401           ChertLock::operator bool() and FlintLock::operator bool() const
12402           (ticket#139).
12404 Sat Jul 04 14:56:42 GMT 2009  Olly Betts <olly@survex.com>
12406         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
12407           backends/flint/flint_database.cc,backends/flint/flint_database.h:
12408           Make ChertDatabase::get_changeset_revisions() and
12409           FlintDatabase::get_changeset_revisions() const (ticket#139).
12411 Sat Jul 04 14:10:55 GMT 2009  Olly Betts <olly@survex.com>
12413         * backends/chert/chert_changesetapplier.h,
12414           backends/flint/flint_changesetapplier.h: "the the" -> "the" in
12415           comments.
12417 Sat Jul 04 14:06:39 GMT 2009  Olly Betts <olly@survex.com>
12419         * backends/chert/chert_btreebase.cc,backends/chert/chert_btreebase.h:
12420           Make ChertTable_base::do_unpack_uint() just a static non-class
12421           function.  Use string::+= to build up the error string in it, and
12422           mark the error case as rare.
12424 Wed Jul 01 04:12:22 GMT 2009  Olly Betts <olly@survex.com>
12426         * docs/spelling.rst: Omega now supports spelling correction.
12428 Mon Jun 29 08:16:13 GMT 2009  Olly Betts <olly@survex.com>
12430         * queryparser/queryparser.lemony: Reset the begin and end strings
12431           before trying the next ValueRangeProcessor in case they've been
12432           modified.
12433         * tests/queryparsertest.cc: Add regression tests and general coverage
12434           for this area.
12436 Mon Jun 29 06:33:45 GMT 2009  Olly Betts <olly@survex.com>
12438         * backends/remote/net_postlist.cc: Remove unused '#include
12439           "serialise-double.h"'.
12441 Mon Jun 29 06:32:52 GMT 2009  Olly Betts <olly@survex.com>
12443         * backends/remote/net_postlist.cc: Build up description string using
12444           +=.
12446 Sun Jun 28 14:50:56 GMT 2009  Olly Betts <olly@survex.com>
12448         * backends/remote/net_postlist.h: Fix internal doc comment.
12450 Sat Jun 27 13:35:45 GMT 2009  Olly Betts <olly@survex.com>
12452         * configure.ac: -Wshadow produces false positives with GCC 4.0, so
12453           only enable  it for >= 4.1 since we enable -Werror for
12454           maintainer-mode builds for GCC >= 4.0.
12456 Sat Jun 27 13:30:22 GMT 2009  Olly Betts <olly@survex.com>
12458         * backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h:
12459           Fix return type of MultiTermList::positionlist_count() to be
12460           Xapian::termcount rather than Xapian::termpos.
12462 Sat Jun 27 12:50:17 GMT 2009  Olly Betts <olly@survex.com>
12464         * backends/flint/flint_alltermslist.h,backends/flint/flint_postlist.cc,
12465           backends/flint/flint_postlist.h: Fix to use Xapian::doccount for
12466           termfreq in flint too.
12468 Sat Jun 27 12:28:47 GMT 2009  Olly Betts <olly@survex.com>
12470         * backends/chert/chert_alltermslist.cc: Prefer 'str.resize(0)' to
12471           'str = ""'.
12473 Sat Jun 27 12:16:17 GMT 2009  Olly Betts <olly@survex.com>
12475         * backends/chert/chert_alltermslist.h,backends/chert/chert_postlist.h:
12476           Fix to use Xapian::doccount for termfreq in more places.
12478 Sat Jun 27 11:51:25 GMT 2009  Olly Betts <olly@survex.com>
12480         * backends/chert/chert_table.cc: Change so add_item_to_block() can
12481           always assume there is another contiguous space in the block
12482           (previously it could assume that there was enough space, but not
12483           that it was necessarily contiguous).
12485 Sat Jun 27 09:55:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12487         * include/xapian/postingsource.h,include/xapian/weight.h: Add note
12488           that PostingSource and Weight objects returned by clone() and
12489           unserialise() methods will be deallocated with "delete".
12491 Sat Jun 27 07:26:41 GMT 2009  Olly Betts <olly@survex.com>
12493         * backends/chert/chert_postlist.cc: Adjust use of Xapian::doccount vs
12494           Xapian::termcount for consistency so things work better when these
12495           types aren't identical.
12497 Sat Jun 27 01:48:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12499         * api/matchspy.cc: Remove unused matchspy.cc - there is an updated
12500           version of this on the matchspy branch; having an old copy here
12501           is just likely to lead to confusion.
12503 Fri Jun 26 05:42:26 GMT 2009  Olly Betts <olly@survex.com>
12505         * api/documentvaluelist.cc,api/documentvaluelist.h: Change
12506           DocumentValueList::skip_to()'s parameter type from Xapian::valueno
12507           to Xapian::docid to agree with the type in ValueList::skip_to().
12508           This is a latent bug - it doesn't matter provided the types are
12509           actually the same (ticket#385).
12511 Thu Jun 25 11:20:07 GMT 2009  Olly Betts <olly@survex.com>
12513         * matcher/phrasepostlist.cc: Use Xapian::termcount(1) instead of 1u
12514           so that the code doesn't assume Xapian::termcount is unsigned int.
12516 Sun Jun 21 12:09:55 GMT 2009  Olly Betts <olly@survex.com>
12518         * backends/chert/chert_check.cc,backends/chert/chert_table.cc,
12519           backends/chert/chert_table.h: Replace duplicated macros with
12520           a single version in chert_table.h, and use DIR_START instead of
12521           a literal 11 in that header.
12522         * backends/chert/chert_table.h: Add more assertions.  Use
12523           BYTES_PER_BLOCK_NUMBER instead of a literal 4 in more places.
12525 Sat Jun 20 07:38:56 GMT 2009  Olly Betts <olly@survex.com>
12527         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: Fix
12528           misspelling in comment (neccessary -> necessary).
12530 Sat Jun 20 07:38:06 GMT 2009  Olly Betts <olly@survex.com>
12532         * backends/chert/chert_table.cc: Don't reconstruct Item(p, c) when we
12533           already have it as a local variable.
12535 Wed Jun 17 01:23:16 GMT 2009  Olly Betts <olly@survex.com>
12537         * common/str.cc: Fix potential warning in signed version of str().
12539 Tue Jun 16 11:20:43 GMT 2009  Olly Betts <olly@survex.com>
12541         * tests/harness/testsuite.cc,tests/harness/testsuite.h: Factor out
12542           writing out what was sent to tout and clearing it into a new
12543           method test_driver::write_and_clear_tout().
12544         * tests/harness/testsuite.cc: Prefer string() to "".  When sending a
12545           colour change code, do it before the preceding space when that allows
12546           string literals to be merged.  Always give the full exception message
12547           (was conditional on --verbose).  Tidy up output for reporting the
12548           various different exception types and other failures to give more
12549           consistent output.
12551 Tue Jun 16 11:01:14 GMT 2009  Olly Betts <olly@survex.com>
12553         * tests/harness/scalability.cc: Increase the number of tests until the
12554           first sample takes more than 0.001 seconds to avoid trying to base
12555           calculations on a length of time we probably can't reliably measure
12556           to start with.
12558 Tue Jun 16 10:58:34 GMT 2009  Olly Betts <olly@survex.com>
12560         * tests/harness/cputimer.cc: Don't bother trying to count CPU time
12561           for child processes, as it's hard to ensure that the child processes
12562           have finished with the current framework, and just counting time in
12563           the current process checks most things (the local backend tests cover
12564           much of the work done by the server part of the remote backend).
12566 Tue Jun 16 02:15:31 GMT 2009  Olly Betts <olly@survex.com>
12568         * tests/harness/cputimer.h: Don't need '#include <ctime>'.
12570 Tue Jun 16 02:10:29 GMT 2009  Olly Betts <olly@survex.com>
12572         * tests/harness/cputimer.h: Fix naming of header multiple-inclusion
12573           protection macro.
12575 Sun Jun 14 14:11:51 GMT 2009  Olly Betts <olly@survex.com>
12577         * tests/internaltest.cc: In testcase serialisequery1, use a helper
12578           function rather than wasting effort building a std::list with all the
12579           testcases in just so we can iterate over them.
12581 Sun Jun 14 13:52:22 GMT 2009  Olly Betts <olly@survex.com>
12583         * tests/harness/testsuite.cc: <iomanip> isn't used so remove it.
12585 Sun Jun 14 13:30:34 GMT 2009  Olly Betts <olly@survex.com>
12587         * tests/harness/testsuite.h: Fix comment typo.
12589 Sat Jun 13 06:30:57 GMT 2009  Olly Betts <olly@survex.com>
12591         * tests/api_anydb.cc: Fix reversed conditional in last but one change.
12593 Sat Jun 13 04:42:27 GMT 2009  Olly Betts <olly@survex.com>
12595         * tests/api_anydb.cc: Use TEST_EQUAL_DOUBLE() when comparing
12596           get_max_attained() to allow for rounding differences.
12598 Sat Jun 13 04:39:49 GMT 2009  Olly Betts <olly@survex.com>
12600         * tests/api_anydb.cc: Use "startswith()" rather than comparing an
12601           extracted substring.
12603 Fri Jun 12 12:45:37 GMT 2009  Olly Betts <olly@survex.com>
12605         * tests/harness/backendmanager_remotetcp.cc: Fix the mechanism for
12606           closing the file descriptors used by child xapian-tcpsrv processes
12607           once they exit, which has been broken ever since it was added nearly
12608           two years ago (sigh).  Fixes fd leaking which caused "apitest
12609           -bremotetcp" to fail on OpenBSD (ticket#382).
12611 Fri Jun 12 03:37:13 GMT 2009  Olly Betts <olly@survex.com>
12613         * tests/harness/backendmanager_remotetcp.cc: Fix comment typo.
12615 Wed Jun 10 04:29:43 GMT 2009  Olly Betts <olly@survex.com>
12617         * common/serialise-double.cc,common/serialise-double.h: Relicense as
12618           MIT/X rather than GPLv2+ as these are low level routines which other
12619           projects may find useful.
12621 Tue Jun 09 14:34:20 GMT 2009  Olly Betts <olly@survex.com>
12623         * NEWS: Update for 1.1.1.
12625 Tue May 26 14:55:05 GMT 2009  Olly Betts <olly@survex.com>
12627         * configure.ac: Update version to 1.1.1.
12629 Tue May 26 14:49:23 GMT 2009  Olly Betts <olly@survex.com>
12631         * NEWS: Lick into shape.
12633 Mon May 25 11:55:59 GMT 2009  Olly Betts <olly@survex.com>
12635         * PLATFORMS: Sync with changes in 1.0 version.
12637 Mon May 25 10:57:59 GMT 2009  Olly Betts <olly@survex.com>
12639         * common/weightinternal.h: Remove declarations of unimplemented
12640           constructors (ticket#379).
12642 Sat May 23 16:06:05 GMT 2009  Olly Betts <olly@survex.com>
12644         * NEWS: Update from 1.0.13 and ChangeLog.
12646 Sat May 23 15:35:39 GMT 2009  Olly Betts <olly@survex.com>
12648         * HACKING: ValueIterator is now a PIMPL class like TermIterator, etc.
12650 Sat May 23 05:24:33 GMT 2009  Olly Betts <olly@survex.com>
12652         * docs/postingsource.rst: Since we are sticking with an recursive
12653           maxweight recalculation for now, add back a warning about the
12654           potential overhead from calling set_maxweight() very frequently,
12655           with an informed estimate for the worst case overhead.
12657 Fri May 22 11:44:04 GMT 2009  Olly Betts <olly@survex.com>
12659         * backends/inmemory/inmemory_database.cc: We can trivially make
12660           Database::metadata_keys_begin() work for inmemory in the special
12661           case when there are no keys, so do so.
12662         * tests/api_metadata.cc: Add test coverage for this case.
12664 Fri May 22 09:31:07 GMT 2009  Olly Betts <olly@survex.com>
12666         * configure.ac: Only bother passing -Winit-self for GCC >= 4.3, as it
12667           doesn't do anything for GCC <= 4.4 anyway.
12669 Fri May 22 07:00:29 GMT 2009  Olly Betts <olly@survex.com>
12671         * backends/flint/flint_version.h: Initialise filename using + not +=.
12672           Fix odd whitespace in recent change.
12674 Fri May 22 05:27:56 GMT 2009  Olly Betts <olly@survex.com>
12676         * AUTHORS: Update.
12678 Fri May 22 05:24:19 GMT 2009  Olly Betts <olly@survex.com>
12680         * api/postingsource.cc,common/multimatch.h,matcher/multimatch.cc:
12681           Replace MultiMatch::reduce_maxweight_by() with a call to
12682           MultiMatch::recalc_maxweight() and inline the later from the header.
12684 Fri May 22 05:16:03 GMT 2009  Olly Betts <olly@survex.com>
12686         * configure.ac: Enable more GCC warnings - "-Woverloaded-virtual" for
12687           all versions, "-Wstrict-null-sentinel" for 4.0+, "-Wlogical-op
12688           -Wmissing-declarations" for 4.3+.  Notably "-Wmissing-declarations"
12689           caught that consistency2 wasn't being run.
12691 Fri May 22 05:15:08 GMT 2009  Olly Betts <olly@survex.com>
12693         * languages/steminternal.cc,languages/steminternal.h: Inline simple
12694           Stem::Internal::Internal() constructor from header.
12696 Thu May 21 16:23:26 GMT 2009  Olly Betts <olly@survex.com>
12698         * tests/harness/backendmanager_remotetcp.cc: Make on_SIGCHLD() static.
12700 Thu May 21 16:22:56 GMT 2009  Olly Betts <olly@survex.com>
12702         * tests/api_wrdb.cc: Fix testcase consistency2 to actually be run.
12704 Thu May 21 16:22:30 GMT 2009  Olly Betts <olly@survex.com>
12706         * tests/api_transdb.cc: Add missing '#include "api_transdb.h"'.
12708 Thu May 21 12:58:22 GMT 2009  Olly Betts <olly@survex.com>
12710         * backends/databasereplicator.cc: Don't bother to check if the
12711           database path works in stat() and is a directory - the case we want
12712           to be fast is when the database does exist, and if path +
12713           "/iamflint" (or "iamchert") exists, then the check for path being a
12714           directory is redundant.  If the path isn't a flint or chert database
12715           then a generic message including the path seems sufficient.
12717 Thu May 21 09:17:15 GMT 2009  Olly Betts <olly@survex.com>
12719         * backends/databasereplicator.cc,common/databasereplicator.h: Inline
12720           empty DatabaseReplicator default ctor.
12722 Thu May 21 08:25:24 GMT 2009  Olly Betts <olly@survex.com>
12724         * api/replication.cc: Cache the result of get_replica_path() when we
12725           are going to need it again.
12727 Thu May 21 08:09:51 GMT 2009  Olly Betts <olly@survex.com>
12729         * backends/chert/chert_databasereplicator.h,
12730           backends/flint/flint_databasereplicator.h: Correct parent class name
12731           in doxygen comments.
12733 Thu May 21 08:08:06 GMT 2009  Olly Betts <olly@survex.com>
12735         * HACKING: Update list of Debian/Ubuntu packages needed to for a
12736           development environment.
12738 Thu May 21 06:28:00 GMT 2009  Olly Betts <olly@survex.com>
12740         * backends/databasereplicator.cc: Fix nested comment start introduced
12741           by the previous commit.
12743 Thu May 21 06:21:39 GMT 2009  Olly Betts <olly@survex.com>
12745         * api/replication.cc,backends/databasereplicator.cc,
12746           common/databasereplicator.h: We only keep one pointer to a
12747           DatabaseReplicator, so use AutoPtr not RefCntPtr.
12749 Thu May 21 05:00:17 GMT 2009  Olly Betts <olly@survex.com>
12751         * api/replication.cc: Fix SEGV when calling get_description() on a
12752           default constructed DatabaseReplica.
12753         * tests/generate-api_generated: Test DatabaseReplica (regression test
12754           for the above bug) and SerialisationContext.   Fix @file in the
12755           generated api_generated.cc.  Update (C) dates in generated
12756           api_generated.cc.
12758 Thu May 21 03:58:59 GMT 2009  Olly Betts <olly@survex.com>
12760         * tests/generate-api_generated: Call get_description() on the default
12761           constructed object to make sure that works (and doesn't try to
12762           dereference NULL, or fail some assertion, etc).  All currently
12763           checked classes are fine - this is to avoid future regressions or
12764           such problems with new classes.
12766 Wed May 20 14:19:54 GMT 2009  Olly Betts <olly@survex.com>
12768         * net/tcpclient.cc,net/tcpserver.cc: Fix xapian-tcpsrv --interface
12769           option to work on MacOS X (ticket#373).
12771 Wed May 20 13:58:09 GMT 2009  Olly Betts <olly@survex.com>
12773         * api/omdatabase.cc,api/sortable-serialise.cc,backends/chert/,
12774           backends/flint/,backends/remote/remote-database.cc,
12775           common/serialise-double.cc,common/str.cc,
12776           matcher/exactphrasepostlist.cc,net/remoteconnection.cc,
12777           net/remoteserver.cc: Replace C-style casts.  Add a few missing casts.
12778           Tweak types used in a few places.
12780 Wed May 20 13:55:41 GMT 2009  Olly Betts <olly@survex.com>
12782         * backends/chert/chert_databasereplicator.cc,
12783           backends/flint/flint_databasereplicator.cc: Need <cstdio> for
12784           rename().  Replace C-style cast to off_t.
12786 Wed May 20 13:53:25 GMT 2009  Olly Betts <olly@survex.com>
12788         * api/editdistance.cc: Make edist_state class uncopyable and
12789           unassignable.  Initialise maxdist in the initialiser list.
12791 Wed May 20 11:19:53 GMT 2009  Olly Betts <olly@survex.com>
12793         * languages/steminternal.cc,languages/steminternal.h: Change C-style
12794           casts to C++-style ones.
12796 Wed May 20 10:40:03 GMT 2009  Olly Betts <olly@survex.com>
12798         * common/str.h: Add static_cast<char>() to suppress bogus MSVC
12799           warning (ticket#377).
12801 Tue May 19 15:26:39 GMT 2009  Olly Betts <olly@survex.com>
12803         * backends/chert/,backends/flint/,common/rset.h,tests/api_anydb.cc:
12804           Pass std::string by const reference rather than value (except in
12805           a few cases where we need a modifiable copy anyway) as benchmarking
12806           shows this is better even with GCC's reference counted std::string
12807           implementation (ticket#140).
12808         * tests/api_anydb.cc: Use string() instead of "" for an empty string.
12810 Tue May 19 08:47:55 GMT 2009  Olly Betts <olly@survex.com>
12812         * api/omquery.cc,include/xapian/query.h: Make Xapian::Query::MatchAll
12813           and Xapian::Query::MatchNothing const since they're immutable.  All
12814           the public methods are const, so this should be completely API
12815           compatible.
12817 Tue May 19 06:25:26 GMT 2009  Olly Betts <olly@survex.com>
12819         * include/xapian/enquire.h: Document what passing maxitems=0 to
12820           get_mset() does.
12822 Mon May 18 13:32:49 GMT 2009  Olly Betts <olly@survex.com>
12824         * include/xapian/database.h: Correct doxygen comments for user
12825           metadata functions: get_metadata() can't throw UnimplementedError
12826           but set_metadata() can.
12827         * include/xapian/database.h,tests/api_metadata.cc: Document that
12828           metadata_keys_begin() returns an end iterator if the backend doesn't
12829           support metadata, and add test coverage for this case.
12830         * backends/inmemory/inmemory_database.cc,
12831           backends/inmemory/inmemory_database.h,include/xapian/database.h,
12832           tests/api_metadata.cc,tests/harness/testrunner.cc: The test harness
12833           didn't have the inmemory backend flagged as supporting
12834           user-specified metadata, and so it's perhaps not a great surprise to
12835           discover that inmemory doesn't support it fully - you can't iterate
12836           over metadata keys, but instead get an empty iteration.  Fix this
12837           to at least throw UnimplementedError and document that this is the
12838           situation.
12840 Mon May 18 11:29:10 GMT 2009  Olly Betts <olly@survex.com>
12842         * tests/Makefile.am,tests/api_metadata.cc,tests/api_wrdb.cc: Split out
12843           tests of user metadata into their own file.
12845 Sun May 17 12:52:41 GMT 2009  Olly Betts <olly@survex.com>
12847         * matcher/: Add a new constructor to MultiAndPostList for the "decay
12848           from OrPostList or AndMaybePostList" case which takes the already
12849           know max weights to avoid having to refetch them.  Also, we know
12850           that the subpostlists of OrPostList are ordered a particular way
12851           so can avoid needing to check the order in that case.
12853 Sat May 16 05:02:35 GMT 2009  Olly Betts <olly@survex.com>
12855         * backends/flint/flint_version.cc: Fix comment - this file doesn't
12856           use memcpy() now.
12858 Thu May 14 04:38:47 GMT 2009  Olly Betts <olly@survex.com>
12860         * tests/api_percentages.cc: Remove superfluous explicit std::
12861           qualifiers.
12863 Thu May 14 04:36:29 GMT 2009  Olly Betts <olly@survex.com>
12865         * tests/api_percentages.cc: Update for the PostingSource
12866           get_maxweight() API changes.
12868 Tue May 12 14:50:57 GMT 2009  Olly Betts <olly@survex.com>
12870         * matcher/multimatch.cc: Rename "max_weight" variable to "max_possible"
12871           since that is what it is referred to via the MSet API.
12873 Tue May 12 12:38:11 GMT 2009  Olly Betts <olly@survex.com>
12875         * common/safeuuid.h: Fix length of buffer to lower case - it's
12876           36, not sizeof(uuid_t).
12878 Tue May 12 02:49:34 GMT 2009  Olly Betts <olly@survex.com>
12880         * common/safeuuid.h,configure.ac: Older versions of libuuid don't have
12881           uuid_unparse_lower() so probe for it in configure, and if it isn't
12882           present provide an inline version in safeuuid.h (ticket#368).
12884 Mon May 11 13:07:47 GMT 2009  Olly Betts <olly@survex.com>
12886         * tests/api_postingsource.cc: In changemaxweightsource1, set
12887           descending docid order so that the matcher isn't able to terminate
12888           early after 4 documents just because weight == maxweight.
12890 Mon May 11 12:00:04 GMT 2009  Olly Betts <olly@survex.com>
12892         * net/serialise.cc: Build up string using +=.
12894 Mon May 11 11:39:49 GMT 2009  Olly Betts <olly@survex.com>
12896         * docs/postingsource.rst: Improve documentation for get_maxweight().
12898 Mon May 11 11:26:02 GMT 2009  Olly Betts <olly@survex.com>
12900         * include/xapian/postingsource.h: Initialise max_weight_ to 0 in the
12901           PostingSource constructor in case nobody else sets a value for it.
12903 Mon May 11 10:54:47 GMT 2009  Olly Betts <olly@survex.com>
12905         * tests/api_postingsource.cc: Fix class name in FAIL_TEST message.
12907 Mon May 11 10:41:31 GMT 2009  Olly Betts <olly@survex.com>
12909         * tests/api_postingsource.cc: Fix get_termfreq_min(), etc for
12910           ChangeMaxweightPostingSource to return 4 not 5.
12912 Mon May 11 09:03:14 GMT 2009  Olly Betts <olly@survex.com>
12914         * api/postingsource.cc: Remove assertion checking that set_maxweight()
12915           doesn't set a lower weight - it legitimately can when we call init()
12916           on a non-clone-able PostingSource for reuse.
12918 Mon May 11 03:12:00 GMT 2009  Olly Betts <olly@survex.com>
12920         * api/postingsource.cc,common/multimatch.h,docs/postingsource.rst,
12921           include/xapian/postingsource.h,matcher/externalpostlist.cc,
12922           matcher/externalpostlist.h,matcher/msetpostlist.cc,
12923           tests/api_postingsource.cc: Replace PostingSource's
12924           notify_new_maxweight() and virtual get_maxweight() mechanism with a
12925           non-virtual set_maxweight() and get_maxweight().  Currently the
12926           plumbing at the matcher end is much as before, but this API seems
12927           more obvious to the user and will allow the matcher to simply reduce
12928           its maximum weight value rather than having to recursively call
12929           recalc_maxweight() in response to this situation (ticket#340).
12931 Mon May 11 02:38:26 GMT 2009  Olly Betts <olly@survex.com>
12933         * docs/postingsource.rst: Fix a typo and reword to avoid "namespaced".
12935 Mon May 11 02:30:59 GMT 2009  Olly Betts <olly@survex.com>
12937         * matcher/msetpostlist.cc: Fix typo - MSetPostList::get_maxweight()
12938           with a sort ordered primarily by decreasing relevance was returning
12939           the docid for the maxweight!  This could have led to wrong results
12940           when searching multiple databases with the remote backend, but
12941           probably usually didn't matter as with BM25 the weights are usually
12942           small (often all < 1) while docids are inevitably >= 1.  No
12943           regression test for this (currently anyway).
12945 Sun May 10 07:49:11 GMT 2009  Olly Betts <olly@survex.com>
12947         * backends/dbfactory.cc: Fix comment typo.
12949 Sat May 09 14:15:38 GMT 2009  Olly Betts <olly@survex.com>
12951         * tests/api_collapse.cc,tests/perftest/runprocess.cc: Remove unused
12952           include of <iostream>.
12954 Sat May 09 14:03:34 GMT 2009  Olly Betts <olly@survex.com>
12956         * api/omquery.cc,matcher/andnotpostlist.cc,
12957           queryparser/termgenerator_internal.cc,tests/api_wrdb.cc: Remove
12958           unused inclusions of <algorithm>.
12960 Sat May 09 13:47:54 GMT 2009  Olly Betts <olly@survex.com>
12962         * matcher/multimatch.cc: Remove unused inclusion of <queue>.
12964 Sat May 09 13:38:02 GMT 2009  Olly Betts <olly@survex.com>
12966         * api/omquery.cc,api/omqueryinternal.cc,api/replication.cc,
12967           backends/alltermslist.cc,backends/chert/chert_table.cc,
12968           backends/flint/flint_table.cc,bin/xapian-compact.cc,
12969           common/bitstream.cc,common/inmemory_positionlist.h,
12970           common/positionlist.h,matcher/localmatch.h,matcher/queryoptimiser.cc,
12971           matcher/queryoptimiser.h,tests/api_wrdb.cc: Remove unused inclusions
12972           of <list>, <map>, <string>, and <vector>.
12974 Sat May 09 12:48:18 GMT 2009  Olly Betts <olly@survex.com>
12976         * api/documentvaluelist.cc,matcher/queryoptimiser.cc: Remove unused
12977           '#include "autoptr.h"'.
12979 Sat May 09 09:41:03 GMT 2009  Olly Betts <olly@survex.com>
12981         * queryparser/queryparser.lemony,queryparser/termgenerator.cc,
12982           weight/bm25weight.cc,weight/boolweight.cc,weight/tradweight.cc:
12983           Remove unneeded explicit "std::" qualifiers.
12985 Sat May 09 09:35:32 GMT 2009  Olly Betts <olly@survex.com>
12987         * weight/weight.cc: Doesn't use '#include "autoptr.h"'.
12989 Fri May 08 19:59:00 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12991         * configure.ac: Change source file which autoconf looks for, since
12992           I've just removed the old one that it looked for!
12994 Fri May 08 19:28:31 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
12996         * matcher/andmaybepostlist.cc,matcher/branchpostlist.h: Call
12997           check() instead of skip_to() on the optional branch of AND_MAYBE.
12998           This can be much faster if that branch is a posting source.
13000 Fri May 08 18:31:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13002         * matcher/: Remove AndPostList, in favour of MultiAndPostList.
13003           AndPostList was only used as a decay product (by AndMaybePostList
13004           and OrPostList); for most queries, MultiAnd has pretty much
13005           indistinguishable performance as far as I can test; however, it
13006           uses check() when possible, which makes performance much better
13007           with searches involving external posting sources.  Removal also
13008           reduces the amount of code cluttering up the caches during a
13009           search, so may help speed things up in some other situations.
13011 Fri May 08 16:00:42 GMT 2009  Olly Betts <olly@survex.com>
13013         * api/postingsource.cc,backends/inmemory/inmemory_database.cc,
13014           examples/delve.cc,include/xapian/postingsource.h: Don't store an
13015           end iterator in a variable just to compare against it - it's now
13016           definitely more efficient to compare against the return value of
13017           the relevant _end() method.
13019 Fri May 08 15:44:07 GMT 2009  Olly Betts <olly@survex.com>
13021         * api/valueiterator.cc,include/xapian/database.h,
13022           include/xapian/document.h,include/xapian/valueiterator.h: Create a
13023           new proxy object class ValueIteratorEnd_ which is returned instead
13024           of ValueIterator(NULL) for end iterators.  This class will be
13025           converted to ValueIterator(NULL) if assigned to or passed as
13026           ValueIterator, but operator== and operator!= are overloaded to
13027           handle it directly which means that the compiler no longer calls
13028           ~ValueIterator for each call which returns ValueIterator(NULL).
13030 Fri May 08 15:42:12 GMT 2009  Olly Betts <olly@survex.com>
13032         * backends/chert/chert_values.cc: Swap two statements for cosmetic
13033           reasons.
13035 Fri May 08 14:42:49 GMT 2009  Olly Betts <olly@survex.com>
13037         * api/postingsource.cc,include/xapian/postingsource.h: It is actually
13038           better not to store the end iterator in a member variable - if we
13039           explicitly call db.postlist_end(string()) then that just gets
13040           optimised to PostingSource(NULL).
13042 Fri May 08 14:02:21 GMT 2009  Olly Betts <olly@survex.com>
13044         * tests/api_postingsource.cc: We've decided that "going back" with
13045           skip_to() or check() should have unspecified behaviour, so stop
13046           testing how this case behaves!
13048 Fri May 08 12:37:33 GMT 2009  Olly Betts <olly@survex.com>
13050         * common/Makefile.mk: Ship common/win32_uuid.cc and common/win32_uuid.h
13051           (ticket#367).
13053 Fri May 08 12:30:45 GMT 2009  Olly Betts <olly@survex.com>
13055         * tests/harness/cputimer.cc: Fix typo in the "ftime" case.
13057 Fri May 08 10:25:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13059         * matcher/andpostlist.cc: Fix a swap which was the wrong way round,
13060           so that we call next() on the subpostlist with the lower
13061           frequency, rather than the one with the higher frequency.  This
13062           should improve performance in many situations, and I don't think
13063           it's likely to slow anything down.  It also fixes some cases
13064           where optimisation of an AND_MAYBE to an AND results in a slower
13065           search, such that search times went down when more hits were
13066           requested.
13068 Fri May 08 08:48:14 GMT 2009  Olly Betts <olly@survex.com>
13070         * matcher/externalpostlist.cc: ExternalPostList::get_doclength()
13071           should never get called, so make it "Assert(false)".
13073 Fri May 08 05:16:50 GMT 2009  Olly Betts <olly@survex.com>
13075         * api/postingsource.cc: Another string concatention.
13077 Fri May 08 05:04:55 GMT 2009  Olly Betts <olly@survex.com>
13079         * api/postingsource.cc: Use str() instead of om_tostring() and build
13080           up strings using +=.
13082 Fri May 08 04:37:05 GMT 2009  Olly Betts <olly@survex.com>
13084         * api/postingsource.cc: "using namespace std;".
13086 Thu May 07 16:46:14 GMT 2009  Olly Betts <olly@survex.com>
13088         * matcher/: Check for collection_size == 0 up front so we don't need
13089           to repeatedly special case it when implementing
13090           get_termfreq_est_using_stats().
13092 Thu May 07 16:28:07 GMT 2009  Olly Betts <olly@survex.com>
13094         * matcher/xorpostlist.cc: Fix typo bug - collection_size should be
13095           rset_size.  This would have lead to a floating point division by
13096           zero when XOR was used under a synonym without an RSet, but that
13097           would just give infinity, and so just give a bogus value for the
13098           rel_termfreq rather than aborting instantly.
13100 Thu May 07 16:19:52 GMT 2009  Olly Betts <olly@survex.com>
13102         * HACKING: Update auto_ptr information.  Mention constructor syntax as
13103           an alternative replacement for some C-style casts.
13105 Thu May 07 15:25:00 GMT 2009  Olly Betts <olly@survex.com>
13107         * matcher/localmatch.cc,matcher/localmatch.h: Don't rebuild the
13108           termname -> termfreq and weight map for every subdatabase - just do
13109           it once for the first one.  Also eliminate a copy of this map.
13110           This should speed up searches a little, especially those over
13111           multiple databases.
13113 Thu May 07 15:01:24 GMT 2009  Olly Betts <olly@survex.com>
13115         * api/omdatabase.cc,api/omqueryinternal.cc,
13116           backends/remote/remote-database.cc,common/autoptr.h,
13117           expand/esetinternal.cc,matcher/localmatch.cc: Make our AutoPtr just
13118           a macro wrapper for std::auto_ptr.  Since std::auto_ptr doesn't
13119           allow assignment from a raw pointer, this requires changing such
13120           assignments into calls to auto_ptr::reset().
13122 Thu May 07 14:19:22 GMT 2009  Olly Betts <olly@survex.com>
13124         * api/leafpostlist.cc: Add an assertion that the term in the stats.
13125           Add "using namespace std;" so we can avoid explicit std:: qualifiers.
13127 Thu May 07 13:26:21 GMT 2009  Olly Betts <olly@survex.com>
13129         * matcher/: Eliminate EmptySubMatch - we can just store NULL for a
13130           submatch which has failed but which ErrorHandler told us to continue
13131           without.
13133 Thu May 07 12:52:24 GMT 2009  Olly Betts <olly@survex.com>
13135         * common/database.h: Update internal documentation comment -
13136           Database::Internal::open_post_list() can no longer return
13137           EmptyPostList as it is no longer a subclass of LeafPostList.
13139 Thu May 07 12:13:50 GMT 2009  Olly Betts <olly@survex.com>
13141         * api/leafpostlist.cc,backends/chert/chert_postlist.cc,
13142           backends/chert/chert_postlist.h,
13143           backends/flint/flint_alldocspostlist.h,
13144           backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h,
13145           backends/inmemory/inmemory_database.cc,
13146           backends/inmemory/inmemory_database.h,backends/remote/net_postlist.h,
13147           common/contiguousalldocspostlist.h,common/leafpostlist.h: Squash
13148           TermBasedLeafPostList into LeafPostList since there are no longer
13149           any other subclasses.
13151 Thu May 07 11:49:06 GMT 2009  Olly Betts <olly@survex.com>
13153         * api/Makefile.mk,api/emptypostlist.cc,common/emptypostlist.h:
13154           Reimplement EmptyPostList from scratch, and inherit from PostList
13155           not LeafPostList.
13157 Thu May 07 11:19:34 GMT 2009  Olly Betts <olly@survex.com>
13159         * matcher/mergepostlist.cc: Add explicit '#include "omassert.h"'.
13161 Thu May 07 10:28:33 GMT 2009  Olly Betts <olly@survex.com>
13163         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
13164           Subclass MultiPostList directly from PostList instead of from
13165           LeafPostList.  This gets rid of two unused data members per
13166           MultiPostList in exchange for having to define 5 extra "never
13167           called" methods, but 4 of these just tailcall.
13169 Thu May 07 10:26:39 GMT 2009  Olly Betts <olly@survex.com>
13171         * backends/inmemory/inmemory_alltermslist.cc,
13172           backends/inmemory/inmemory_database.cc: Fix assertion failures and
13173           a SEGV in an assertion test.
13175 Thu May 07 09:27:35 GMT 2009  Olly Betts <olly@survex.com>
13177         * backends/inmemory/inmemory_alltermslist.cc,
13178           backends/inmemory/inmemory_alltermslist.h,
13179           backends/inmemory/inmemory_database.cc:
13180           Keep a dummy entry in InMemoryDatabase::postlists so that the
13181           implementation of InMemoryAllTermsList doesn't need a "started"
13182           flag, and we can use an InMemoryPostList on the dummy item for
13183           the "term not in database" case.
13185 Thu May 07 05:45:48 GMT 2009  Olly Betts <olly@survex.com>
13187         * tests/api_backend.cc: Add tset coverage for alldocs iterator on an
13188           empty database.
13189         * backends/inmemory/inmemory_database.cc: No need to special case an
13190           empty database as InMemoryAllDocsPostList handles this case
13191           correctly.
13193 Thu May 07 05:08:07 GMT 2009  Olly Betts <olly@survex.com>
13195         * weight/weightinternal.cc: Use str() instead of om_tostring(), += to
13196           build up strings, and fix a cut-and-paste comment error.
13198 Wed May 06 13:03:40 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13200         * net/serialise.cc: Better serialisation - don't include the
13201           reltermfreqs if the rset_size is 0, since they'll all be 0 too.
13203 Wed May 06 12:13:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13205         * common/remoteprotocol.h,net/serialise.cc: When serialising stats,
13206           serialise the termfreq and reltermfreq together, rather than in
13207           separate lists.  Results in a smaller serialised form, and
13208           matches the in-memory structure now used better. Fixes ticket
13209           #362.  This is an incompatible remote protocol change, however,
13210           so bump the major version to 32.
13212 Wed May 06 04:02:43 GMT 2009  Olly Betts <olly@survex.com>
13214         * matcher/multimatch.cc: Check termfreqandwts for MatchAll queries
13215           before we check terms from the document so that the "terminate
13216           early once we've seen all the query terms" test when checking the
13217           document terms can fire in this case.
13219 Wed May 06 03:26:05 GMT 2009  Olly Betts <olly@survex.com>
13221         * matcher/multimatch.cc: Remove incorrect comment accidentally
13222           committed in r12623.
13224 Wed May 06 03:18:42 GMT 2009  Olly Betts <olly@survex.com>
13226         * tests/api_opsynonym.cc: Fix comment typo.
13228 Wed May 06 01:35:14 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13230         * tests/api_postingsource.cc: changemaxweightsource1 uses
13231           ChangeMaxweightPostingSource, which doesn't work with multi or
13232           remote, so mark the test accordingly.
13234 Wed May 06 01:11:25 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13236         * include/xapian/postingsource.h,api/postingsource.cc: Add
13237           notify_new_maxweight() method to be called by subclasses when they
13238           want to notify the matcher that their maxweight has changed
13239           significantly.  Add ExternalPostList as a friend and add
13240           register_externalpl() to be used to associate the ExternalPostList
13241           with the PostingSource.
13242         * matcher/externalpostlist.cc,matcher/externalpostlist.h,
13243           matcher/queryoptimiser.cc: Register the externalpostlist with the
13244           PostingSource it's iterating through.  Add
13245           ExternalPostList::notify_new_maxweight() method for
13246           PostingSource::notify_new_maxweight() to call.
13247         * docs/postingsource.rst: Document notify_new_maxweight() and the
13248           reasons for calling it.
13249         * tests/api_postingsource.cc: Test the handling of maxweight.
13251 Tue May 05 19:37:56 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13253         * tests/Makefile.am,tests/api_db.cc,tests/api_postingsource.cc:
13254           Split the tests of PostingSource subclasses out of api_db.cc; I'm
13255           about to add some more, and bloating api_db.cc further is
13256           unworkable.
13258 Tue May 05 18:23:02 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13260         * docs/postingsource.rst,include/xapian/postingsource.h:
13261           Documentation updates to describe way that init() is called
13262           again if a PostingSource is reused.  Fixes #352.
13264 Tue May 05 16:05:48 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13266         * tests/api_opsynonym.cc: Test that the top document has a weight
13267           of 100%, which is should do for all the current examples here.
13269 Tue May 05 16:03:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13271         * matcher/multimatch.cc: Add logging to keep track of the weights
13272           being added to percent_scale.  If the percent_scale total is 0.0,
13273           which can happen if the top document only matches synonym terms,
13274           force percent_scale to 1.0, to avoid an assertion failure.
13276 Tue May 05 13:41:57 GMT 2009  Olly Betts <olly@survex.com>
13278         * common/str.h: Fix swapped parameters in string ctor in code for
13279           str(bool) overload which lead to us returning 48 or 49 \x01
13280           characters instead of "0" or "1".
13281         * tests/internaltest.cc: Add regression test strbool1.
13282         * AUTHORS: Thank Peter Kelm for helping us spot this.
13284 Tue May 05 12:54:36 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13286         Merge from opsynonym branch:
13287         * queryparser/queryparser.lemony: Use OP_SYNONYM instead of OP_OR
13288           for synonyms, wildcards, and partial queries.
13289         * tests/queryparsertest.cc: Test use of OP_SYNONYM by query parser.
13291 Tue May 05 12:18:06 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13293         Merge from opsynonym branch:
13294         * api/omqueryinternal.cc,include/xapian/query.h,matcher/,
13295           weight/weight.cc: Implement a new OP_SYNONYM query operator,
13296           which behaves similarly to OP_OR, but produces weights for the
13297           combined set of terms as if they were a single term (by merging
13298           their wdfs).
13299         * tests/Makefile.am,tests/api_opsynonym.cc: Add tests for the
13300           OP_SYNONYM operator.
13301         * include/xapian/weight.h: Add a Weight::init_() method for
13302           synonym, since there isn't a single term involved.  Also,
13303           requires a method get_sumpart_needs_wdf_() to check if wdfs are
13304           needed, since the synonym weight calculation requires fetching
13305           the doclength, which is potentially expensive, in order that the
13306           wdf returned can be clamped to a sane range.  Mark the weighting
13307           methods which require WDF with need_stat(WDF).
13309 Tue May 05 12:04:33 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13311         * common/remoteprotocol.h: Add comment to remind use to do the
13312           FIXME in serialise_stats() when next breaking remote protocol
13313           compatibility.
13315 Tue May 05 10:53:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13317         * common/output.h: Add output function for TermFreqs.
13319 Tue May 05 08:23:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13321         * api/leafpostlist.cc,api/postlist.cc,common/emptypostlist.h,
13322           common/leafpostlist.h,common/postlist.h,matcher/: Add
13323           PostList::get_termfreq_est_using_stats() method, with default
13324           implementation which raises an InvalidOperationError.  Implement
13325           this for those postlists which it makes sense for.  Also,
13326           implement get_wdf() for postlists used by the matcher for
13327           implementing various query operators.  This isn't currently used
13328           or tested on trunk, but is used for the opsynonym branch.
13330 Tue May 05 07:37:04 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13332         * common/rset.h,common/weightinternal.h,matcher/rset.cc,
13333           net/serialise.cc,weight/weightinternal.cc: Store termfreqs and
13334           reltermfreqs in a Weight::Internal in a single map; introduce a
13335           new struct (TermFreqs) for the values stored here.
13336           Remove now unused Xapian::TermFreqMap typedef.
13338 Tue May 05 07:19:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13340         * backends/chert/chert_postlist.cc,backends/chert/chert_postlist.h,
13341           backends/flint/flint_alldocspostlist.h,
13342           backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h,
13343           backends/inmemory/inmemory_database.cc,
13344           backends/inmemory/inmemory_database.h,backends/remote/net_postlist.h,
13345           common/contiguousalldocspostlist.h,common/leafpostlist.h:
13346           Introduce TermBasedLeafPostList, as a new common base class for
13347           postlists which are derived from a term in the query (including
13348           alldocs postlists which are derived from the empty term).
13350 Tue May 05 06:47:11 GMT 2009  Olly Betts <olly@survex.com>
13352         * backends/chert/,backends/flint/flint_modifiedpostlist.cc,
13353           backends/flint/flint_postlist.cc,backends/flint/flint_postlist.h:
13354           Rename "tname" parameters to LeafPostList subclasses to "term".
13355         * backends/inmemory/inmemory_database.cc,
13356           backends/inmemory/inmemory_database.h: Rename term parameter of
13357           type InMemoryTerm to imterm ready for opsynonym branch changes.
13359 Tue May 05 04:51:28 GMT 2009  Olly Betts <olly@survex.com>
13361         * backends/chert/chert_alldocspostlist.h,matcher/multimatch.cc:
13362           Remove unused '#include "leafpostlist.h"'.
13364 Tue May 05 02:15:35 GMT 2009  Olly Betts <olly@survex.com>
13366         * common/contiguousalldocspostlist.h: Wrap comment.
13368 Tue May 05 02:04:02 GMT 2009  Olly Betts <olly@survex.com>
13370         * common/Makefile.mk: Move str.h into alphabetical order.
13372 Mon May 04 12:04:16 GMT 2009  Olly Betts <olly@survex.com>
13374         * tests/queryparsertest.cc: Rename qp_stem_scale1 to qp_scale1 as it
13375           has no connection with stemming.  Factor out a helper function to
13376           do the timing comparison, and update time_query_parse() to use
13377           CPUTimer rather than OmTime.  Tweak the "fudge factor" up from
13378           2 to 2.15 to allow for non-equal ticks due to rounding of an
13379           interval which isn't an exact multiple of 1/CLK_TCK (ticket#308).
13381 Mon May 04 12:02:32 GMT 2009  Olly Betts <olly@survex.com>
13383         * tests/harness/cputimer.cc: If we don't have rusage() or times(), but
13384           do have ftime(), use that instead of time() so we at least get
13385           subsecond resolution (as we do currently with OmTime).
13387 Mon May 04 03:31:51 GMT 2009  Olly Betts <olly@survex.com>
13389         * docs/queryparser.html: Add examples of using a prefix on a phrase
13390           or subexpression.
13392 Sun May 03 14:58:42 GMT 2009  Olly Betts <olly@survex.com>
13394         * tests/api_valuestats.cc: Testcase valuestats4 requires transactions,
13395           so indicate that and remove the explicit SKIP for inmemory.
13397 Sun May 03 12:34:30 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13399         * common/rset.h,common/weightinternal.h,matcher/rset.cc,
13400           weight/weightinternal.cc: Typedef std::map<string, Xapian::doccount>
13401           as TermFreqMap; tidies up code a little here, but mainly useful
13402           for keeping code tidy on branches/opsynonym.
13404 Sun May 03 11:49:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13406         * common/multimatch.h: Remove unused include of <map>
13408 Sun May 03 05:23:32 GMT 2009  Olly Betts <olly@survex.com>
13410         * tests/api_db.cc: Protect tests which assume Flint is enabled with
13411           #ifdef XAPIAN_HAS_FLINT_BACKEND.
13413 Sat May 02 15:49:46 GMT 2009  Olly Betts <olly@survex.com>
13415         * configure.ac,tests/Makefile.am,tests/api_scalability.cc,
13416           tests/api_wrdb.cc,tests/harness/: Add new "test_scalability()" helper
13417           function which checks that an operation scales in CPU time used in
13418           the desired way.  Use this to reimplement bigoaddvalue (and rename
13419           to bigoaddvalue1 for consistency).
13421 Fri May 01 04:58:41 GMT 2009  Olly Betts <olly@survex.com>
13423         * bin/xapian-check.cc: For chert, check value stats are the correct
13424           format and that the streamed values are consistent with their stats
13425           (ticket#277).
13427 Fri May 01 04:53:22 GMT 2009  Olly Betts <olly@survex.com>
13429         * api/omdocument.cc: Don't ever store empty values explicitly, which
13430           eliminates an inconsistently handled corner case which was causing
13431           the "value frequency" to be wrong from at least one point of view.
13432           This is consistent with how user metadata works too.
13433         * include/xapian/document.h: Explicitly document this behaviour.
13434         * tests/api_valuestats.cc: Add regression test for the above change.
13436 Fri May 01 03:11:25 GMT 2009  Olly Betts <olly@survex.com>
13438         * bin/xapian-check.cc: Chert doesn't store termlist entries for
13439           documents without terms, which resulted in us reporting an error when
13440           we found document ids in the doclength "postlist" which were greater
13441           than any with an entry in the termlist.  Instead compare these
13442           entries against db.get_last_docid() if we are checking a whole db
13443           and able to call it.  If not, suppress this check.
13445 Thu Apr 30 15:02:41 GMT 2009  Olly Betts <olly@survex.com>
13447         * common/valuestats.h: Fix comment typo.
13449 Tue Apr 28 14:01:41 GMT 2009  Olly Betts <olly@survex.com>
13451         * api/omdatabase.cc: Use <cstdlib> rather than <stdlib.h> which means
13452           that there's an overload for abs(long).
13454 Tue Apr 28 13:17:48 GMT 2009  Olly Betts <olly@survex.com>
13456         * HACKING,INSTALL,configure.ac,include/xapian/deprecated.h,
13457           include/xapian/version_h.cc,tests/harness/testsuite.cc: Actually,
13458           let's require GCC 3.1 as doing so eliminates some preprocessor
13459           conditionals which we aren't able to test regularly as we don't
13460           have easy access to such old GCC versions.  GCC 3.1 is nearly 7
13461           years old now, and GCC3 didn't get widespread use until later
13462           versions anyway.
13464 Tue Apr 28 12:47:11 GMT 2009  Olly Betts <olly@survex.com>
13466         * common/debuglog.h: Add missing initialisation of uncaught_exception
13467           in a couple of places.
13469 Tue Apr 28 11:24:02 GMT 2009  Olly Betts <olly@survex.com>
13471         * INSTALL: Note that Xapian 1.0.x should build with GCC 2.95.3.
13473 Tue Apr 28 11:20:51 GMT 2009  Olly Betts <olly@survex.com>
13475         * HACKING,INSTALL,backends/chert/chert_database.h,
13476           backends/flint/flint_database.h,
13477           backends/inmemory/inmemory_database.h,configure.ac,
13478           include/xapian/version_h.cc,tests/harness/testsuite.cc: Drop support
13479           for GCC 2.95.3 - we now require at least 3.0.
13481 Mon Apr 27 12:20:25 GMT 2009  Olly Betts <olly@survex.com>
13483         * include/xapian/weight.h: Add "need_stat(WDF);" for Weight subclasses
13484           which use wdf.  Currently this is never actually checked by trunk
13485           (so a regression test for this omission isn't really feasible), but
13486           the opsynonym branch uses it.
13488 Sun Apr 26 14:47:57 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13490         * weight/bm25weight.cc: Add call debugging.
13492 Sun Apr 26 10:57:48 GMT 2009  Olly Betts <olly@survex.com>
13494         * tests/api_db.cc: stubdb6 is "inmemory" not "flint || chert || multi".
13496 Sun Apr 26 10:51:50 GMT 2009  Olly Betts <olly@survex.com>
13498         * tests/queryparsertest.cc: Fix to build with the inmemory backend
13499           disabled.
13501 Sun Apr 26 07:28:47 GMT 2009  Olly Betts <olly@survex.com>
13503         * tests/generate-api_generated: Fix so generated api_generated.cc
13504           builds with the inmemory backend disabled.
13506 Sun Apr 26 06:30:57 GMT 2009  Olly Betts <olly@survex.com>
13508         * tests/api_anydb.cc: Fix to build with the inmemory backend disabled.
13510 Sat Apr 25 01:10:49 GMT 2009  Olly Betts <olly@survex.com>
13512         * bin/xapian-check.cc: Fix to build with the flint and/or chert
13513           backends disabled.
13515 Sat Apr 25 01:06:00 GMT 2009  Olly Betts <olly@survex.com>
13517         * matcher/multimatch.cc: Fix to build with the remote backend
13518           disabled.
13520 Sat Apr 25 00:57:41 GMT 2009  Olly Betts <olly@survex.com>
13522         * backends/dbfactory.cc: Fix to build with the inmemory backend
13523           disabled.
13525 Fri Apr 24 22:59:34 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13527         * weight/weight.cc: Add debug logging to Weight::init_() methods.
13528         * net/remoteserver.cc: Fix bounds returned by Weight::Internal
13529           object in get_mset() in remote submatches, by setting the
13530           database used to read the bounds.
13532 Fri Apr 24 13:14:50 GMT 2009  Olly Betts <olly@survex.com>
13534         * matcher/branchpostlist.cc,matcher/branchpostlist.h: Remove
13535           BranchPostList::get_wdf() which isn't currently used, and isn't
13536           wanted on branches/opsynonym.
13538 Fri Apr 24 12:46:18 GMT 2009  Olly Betts <olly@survex.com>
13540         * queryparser/queryparser.lemony: Apply doxygen comment improvement
13541           from branches/opsynonym.
13543 Fri Apr 24 12:31:15 GMT 2009  Olly Betts <olly@survex.com>
13545         * matcher/localmatch.cc: Apply assertion and debug logging
13546           improvements from branches/opsynonym.
13548 Thu Apr 23 06:16:05 GMT 2009  Olly Betts <olly@survex.com>
13550         * Makefile.am,configure.ac,docs/Makefile.am,tests/Makefile.am: Fix
13551           things up so that in a bootstrapped SVN tree, automatic regeneration
13552           of autotools-generated files uses the in-tree versions of the
13553           autotools.
13555 Thu Apr 23 04:37:31 GMT 2009  Olly Betts <olly@survex.com>
13557         * AUTHORS: Add another bug reporter.
13559 Thu Apr 23 04:26:25 GMT 2009  Olly Betts <olly@survex.com>
13561         * Makefile.am,languages/Makefile.mk,queryparser/Makefile.mk,
13562           tests/Makefile.am,tests/perftest/Makefile.mk: Don't remove any
13563           built sources in "make clean" even under --make-maintainer-mode
13564           as that breaks switching a tree away from maintainer-mode with:
13565           make distclean;./configure
13567 Thu Apr 23 03:51:03 GMT 2009  Olly Betts <olly@survex.com>
13569         * Makefile.am: Use "--coverage" instead of "-fprofile-arcs
13570           -ftest-coverage" in the test coverage build.
13572 Wed Apr 22 14:32:56 GMT 2009  Olly Betts <olly@survex.com>
13574         * PLATFORMS: Sync with 1.0.12; add entry for atreus for 1.1.0.
13576 Wed Apr 22 14:27:36 GMT 2009  Olly Betts <olly@survex.com>
13578         * AUTHORS: Add more bug reporters and patch contributors.  Remove a
13579           duplicate entry.
13581 Wed Apr 22 13:58:31 GMT 2009  Olly Betts <olly@survex.com>
13583         * NEWS: Set release date.
13585 Wed Apr 22 13:36:04 GMT 2009  Olly Betts <olly@survex.com>
13587         * NEWS: Update, perhaps even ready for release now.
13589 Wed Apr 22 11:00:50 GMT 2009  Olly Betts <olly@survex.com>
13591         * NEWS: More work.
13593 Tue Apr 21 17:59:13 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13595         * docs/queryparser.html: Add closing <code> tag.
13597 Tue Apr 21 11:05:17 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13599         * NEWS: A few minor corrections and adjustments.
13601 Tue Apr 21 07:49:49 GMT 2009  Olly Betts <olly@survex.com>
13603         * include/xapian/weight.h: Don't use the term "term" to talk about the
13604           extra weight component as it already has a strong meaning in Xapian.
13606 Tue Apr 21 07:16:18 GMT 2009  Olly Betts <olly@survex.com>
13608         * queryparser/lemon.c: Merge upstream "Check-in Number: 6451".
13610 Tue Apr 21 06:54:00 GMT 2009  Olly Betts <olly@survex.com>
13612         * matcher/queryoptimiser.h: '#include <map>' isn't required.
13614 Tue Apr 21 06:45:14 GMT 2009  Olly Betts <olly@survex.com>
13616         * matcher/queryoptimiser.cc,matcher/queryoptimiser.h: Eliminate
13617           QueryOptimiser::do_leaf() as it is only called from one place
13618           and if only two lines of code.
13620 Mon Apr 20 14:10:08 GMT 2009  Olly Betts <olly@survex.com>
13622         * NEWS: Update from ChangeLog and start to lick into shape for a
13623           release.
13625 Mon Apr 20 13:06:17 GMT 2009  Olly Betts <olly@survex.com>
13627         * HACKING: XAPIAN_DEBUG_LOG=- send output to stderr, not stdout.
13629 Mon Apr 20 11:53:07 GMT 2009  Olly Betts <olly@survex.com>
13631         * common/output.h: Add new macro XAPIAN_OUTPUT_FUNCTION_PTR and use it
13632           so that debug logging of Xapian::Query::Internal* doesn't just
13633           report the pointer value.
13635 Mon Apr 20 06:39:42 GMT 2009  Olly Betts <olly@survex.com>
13637         * matcher/multimatch.cc: Apply debug logging change lifted from
13638           branches/opsynonym.
13640 Mon Apr 20 05:22:24 GMT 2009  Olly Betts <olly@survex.com>
13642         * tests/harness/testutils.cc: Add FIXME comments about use of internal
13643           macro from a different header.
13645 Mon Apr 20 05:08:34 GMT 2009  Olly Betts <olly@survex.com>
13647         * HACKING: Update release checklist.
13649 Sun Apr 19 14:50:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13651         * tests/api_nodb.cc: Stick the reciprocal of "factor" into a
13652           volatile double temporary variable to stop compiler using
13653           extended precision calculation on x86, and coming up an answer of
13654           exactly 1.0 when multiplying by "factor" again.
13656 Sun Apr 19 14:26:09 GMT 2009  Olly Betts <olly@survex.com>
13658         * NEWS: Sync with 1.0.12 and update from ChangeLog.
13660 Sun Apr 19 12:12:19 GMT 2009  Olly Betts <olly@survex.com>
13662         * AUTHORS: Update for 1.0 branch.
13664 Thu Apr 16 12:08:24 GMT 2009  Olly Betts <olly@survex.com>
13666         * backends/chert/chert_values.cc: When copying the tail of a value
13667           chunk because did > last_allowed_did, we don't need to check if
13668           the docids being copied are < did, since they should all be <=
13669           last_allowed_did, so just assert the latter.
13671 Tue Apr 14 20:32:41 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13673         * tests/api_wrdb.cc: patch from james to move logging in
13674           modifyvalues1 so it reports the values it's rewriting correctly,
13675           rather than the empty string.  Also display the expected value in
13676           tout when checking the value.  Also, pull the setting of the random
13677           seed out to the start of the function, and set it to 7 (which
13678           exposed the bug fixed with the previous commit, which that the old
13679           value of 42 didn't, on my machine, at least).
13681 Tue Apr 14 18:12:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13683         * backends/chert/chert_values.cc: When we move the reader to a new
13684           chunk, write any trailing values left in it to the stream first.
13686 Thu Apr 09 05:01:04 GMT 2009  Olly Betts <olly@survex.com>
13688         * docs/admin_notes.rst: Document the child process used for locking
13689           which exec-s "cat" (ticket #258).
13691 Thu Apr 09 03:49:13 GMT 2009  Olly Betts <olly@survex.com>
13693         * bin/: Use C++ forms of C headers in bin (ticket#330).
13695 Thu Apr 09 03:47:42 GMT 2009  Olly Betts <olly@survex.com>
13697         * examples/: Use C++ forms of C headers in examples (ticket#330).
13699 Mon Apr 06 06:35:03 GMT 2009  Olly Betts <olly@survex.com>
13701         * include/xapian/unicode.h: Fix documentation comment typos.
13703 Mon Apr 06 06:03:45 GMT 2009  Olly Betts <olly@survex.com>
13705         * AUTHORS: Add Muayyad Alsadi for reporting #355.
13707 Mon Apr 06 05:59:38 GMT 2009  Olly Betts <olly@survex.com>
13709         * tests/api_unicode.cc: Note which characters in the new
13710           unicodepredicate1 testcase are new in Unicode 5.1.0.
13712 Sun Apr 05 14:24:47 GMT 2009  Olly Betts <olly@survex.com>
13714         * include/xapian/unicode.h: Add NON_SPACING_MARK to is_wordchar() for
13715           better tokenisation of Arabic, for example.  (ticket#355)
13716         * tests/queryparsertest.cc: Add test that this has the desired effect.
13717         * tests/api_unicode.cc: Add feature tests of Unicode::is_wordchar(),
13718           Unicode::is_currency(), and Unicode::is_whitespace().
13720 Sat Apr 04 05:41:47 GMT 2009  Olly Betts <olly@survex.com>
13722         * NEWS: Update from ChangeLog.
13724 Wed Apr 01 00:18:02 GMT 2009  Olly Betts <olly@survex.com>
13726         * bin/xapian-compact.cc: Fix totlen overflow test.  Refactor lightly
13727           to reduce indenting.
13729 Tue Mar 31 17:01:20 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13731         * bin/xapian-compact.cc: Handle databases which contain no
13732           documents (and hence have no METAINFO item), but do contain some
13733           metadata (so the postlist table is not empty).  Fixes ticket
13734           #356.
13736 Tue Mar 31 13:49:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13738         * api/postingsource.cc,include/xapian/postingsource.h: Change
13739           return types of clone() and unserialise() methods to be of the
13740           subclass returned; this is a bit more flexible, but the main
13741           reason is to be consistent: previously, the clone() methods
13742           returned the subclass, but the unserialise() methods returned
13743           PostingSource.
13745 Tue Mar 31 12:10:03 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13747         * include/xapian/postingsource.h: Add comment on PostingSource base
13748           class listing it as an experimental feature.
13749         * docs/deprecation.rst: Describe what "experimental" features are,
13750           and why replication and posting sources are currently
13751           experimental.
13753 Tue Mar 31 11:34:25 GMT 2009  Olly Betts <olly@survex.com>
13755         * include/xapian/matchspy.h: Removed currently unused header to stop
13756           doxygen from generating documentation for it.
13758 Tue Mar 31 11:27:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13760         * docs/replication.rst,include/xapian/replication.h: Note that
13761           replication is currently "experimental".
13763 Fri Mar 27 14:29:05 GMT 2009  Olly Betts <olly@survex.com>
13765         * backends/chert/chert_spelling.cc,backends/chert/chert_spelling.h,
13766           backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h:
13767           Fix WritableDatabase::remove_spelling() to not be very broken in
13768           several ways.
13769         * tests/api_spelling.cc: Add test coverage for it.
13771 Fri Mar 27 10:43:34 GMT 2009  Olly Betts <olly@survex.com>
13773         * xapian-config.in: Add @LIBRARY_VERSION_SUFFIX@ to -lxapian too.
13775 Fri Mar 27 08:22:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13777         * include/xapian/postingsource.h: Update documentation comments to
13778           refer to init() instead of the old name of reset().
13780 Fri Mar 27 08:10:48 GMT 2009  Olly Betts <olly@survex.com>
13782         * HACKING: Document the lcov make targets.
13784 Fri Mar 27 07:44:59 GMT 2009  Olly Betts <olly@survex.com>
13786         * Makefile.am: Add two new targets to assist generating test coverage
13787           reports with lcov: coverage-reconfigure which reruns configure in
13788           the source tree and coverage-check which runs "make check" and
13789           generates an HTML report in a directory called "lcov".
13791 Thu Mar 26 23:59:36 GMT 2009  Olly Betts <olly@survex.com>
13793         * Makefile.am,m4-macros/xapian.m4,xapian-core.spec.in: Rename
13794           xapian.m4 to xapian-1.1.m4 to avoid clash with Xapian 1.0.x.  Both
13795           xapian.m4 and xapian-1.1.m4 will contain XO_LIB_XAPIAN, but aclocal
13796           copes and only copies one of them.  We need to avoid incompatible
13797           changes to XO_LIB_XAPIAN though.
13799 Thu Mar 26 14:29:54 GMT 2009  Olly Betts <olly@survex.com>
13801         * configure.ac,include/Makefile.mk,xapian-config.in: Install headers
13802           in $prefix/include/xapian-1.1/ so they don't clash with 1.0.
13804 Thu Mar 26 13:46:06 GMT 2009  Olly Betts <olly@survex.com>
13806         * configure.ac: Default program suffix to -1.1 if not specified.  If
13807           you really want no suffix, "./configure --program-suffix=" will
13808           achieve that.
13810 Thu Mar 26 12:49:10 GMT 2009  Olly Betts <olly@survex.com>
13812         * Makefile.am,api/Makefile.mk,backends/Makefile.mk,
13813           backends/chert/Makefile.mk,backends/flint/Makefile.mk,
13814           backends/inmemory/Makefile.mk,backends/multi/Makefile.mk,
13815           backends/remote/Makefile.mk,bin/Makefile.mk,common/Makefile.mk,
13816           configure.ac,examples/Makefile.mk,expand/Makefile.mk,
13817           languages/Makefile.mk,matcher/Makefile.mk,net/Makefile.mk,
13818           queryparser/Makefile.mk,tests/Makefile.am,tests/perftest/Makefile.mk,
13819           unicode/Makefile.mk,weight/Makefile.mk,xapian-config.in,
13820           xapian-core.spec.in: Change library name to libxapian-1.1 as a first
13821           step towards allowing parallel installation with 1.0.x.
13823 Thu Mar 26 06:53:27 GMT 2009  Olly Betts <olly@survex.com>
13825         * NEWS: Update from ChangeLog.
13827 Thu Mar 26 06:50:44 GMT 2009  Olly Betts <olly@survex.com>
13829         * backends/chert/chert_values.h: Fix class name in file doc comment.
13831 Thu Mar 26 00:13:48 GMT 2009  Olly Betts <olly@survex.com>
13833         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
13834           Call ChertDatabase::close() rather than repeating its code.
13836 Wed Mar 25 17:39:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13838         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
13839           Release the lock when the database is closed (either due to a
13840           call to close() or due to a serious error during modifications).
13841           Should fix ticket #354.
13843 Wed Mar 25 16:42:58 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13845         * tests/harness/testutils.cc: Use TEST_EQUAL_DOUBLE_ for comparison
13846           of weights in mset, to fix test failures due to floating point
13847           differences.  (Currently only manifests in some tests in the
13848           matchspy branch, but it's a generally useful fix.)
13850 Wed Mar 25 11:44:36 GMT 2009  Olly Betts <olly@survex.com>
13852         * configure.ac: Only put ANSI_CXXFLAGS in CXXFLAGS for the duration of
13853           configure - put it in AM_CXXFLAGS for substituting so that the user
13854           can safely override CXXFLAGS at make-time: "make CXXFLAGS=-Os"
13856 Wed Mar 25 10:50:44 GMT 2009  Olly Betts <olly@survex.com>
13858         * configure.ac: Fix comment typo.
13860 Wed Mar 25 04:48:50 GMT 2009  Olly Betts <olly@survex.com>
13862         * api/omdatabase.cc,backends/chert/chert_database.h,
13863           backends/flint/flint_database.h,
13864           backends/inmemory/inmemory_database.h,
13865           backends/remote/remote-database.cc,common/const_database_wrapper.h,
13866           common/database.h: Drop the default value of the lazy parameter to
13867           Database::open_document() - it's better to force us to consider
13868           whether a new call should be lazy or not.
13869         * common/database.h: Better description of lazy parameter.
13870         * backends/remote/remote-database.cc: Update comment about when lazy
13871           is set to true.
13873 Wed Mar 25 04:20:34 GMT 2009  Olly Betts <olly@survex.com>
13875         * backends/inmemory/inmemory_database.cc: Don't "return false" when
13876           the return type is a pointer!
13878 Tue Mar 24 17:42:22 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
13880         * backends/database.cc: Open documents lazily in
13881           collect_document().
13883 Tue Mar 24 11:10:57 GMT 2009  Olly Betts <olly@survex.com>
13885         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
13886           MultiPostList::read_position_list() is never used, so remove it.
13888 Tue Mar 24 10:04:03 GMT 2009  Olly Betts <olly@survex.com>
13890         * backends/multi/multi_postlist.cc: Remove "[" and "]" from the output
13891           of MultiPostList::get_description().  Remove excess "," from output
13892           of MultiPostList::get_description().
13893         * tests/api_db.cc: Add some test coverage of
13894           PostingIterator::get_wdf() and PostingIterator::get_description().
13896 Tue Mar 24 10:00:23 GMT 2009  Olly Betts <olly@survex.com>
13898         * api/ompostlistiterator.cc: Remove "[" and "]" from
13899           Xapian::PostingIterator::get_description() as they don't add
13900           anything useful.
13902 Tue Mar 24 09:57:39 GMT 2009  Olly Betts <olly@survex.com>
13904         * backends/inmemory/inmemory_database.cc: Add a space in the output
13905           of InMemoryPostList::get_description() and
13906           InMemoryAllDocsPostList::get_description().
13908 Tue Mar 24 08:52:46 GMT 2009  Olly Betts <olly@survex.com>
13910         * api/leafpostlist.cc,include/xapian/weight.h,tests/api_db.cc,weight/:
13911           Get rid of the virtual Weight::get_sumpart_needs_doclength() method
13912           - subclasses can call need_stat(DOC_LENGTH) in their constructor if
13913           they need doc lengths.
13915 Tue Mar 24 07:55:06 GMT 2009  Olly Betts <olly@survex.com>
13917         * weight/weight.cc: Check stats_needed for stats which aren't just a
13918           simple member variable lookup.
13920 Tue Mar 24 06:46:24 GMT 2009  Olly Betts <olly@survex.com>
13922         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
13923           MultiPostList::get_termfreq() is never used, so remove it.
13925 Mon Mar 23 14:09:33 GMT 2009  Olly Betts <olly@survex.com>
13927         * tests/api_unicode.cc: Add test coverage for
13928           Xapian::Unicode::append_utf8().
13930 Mon Mar 23 11:40:09 GMT 2009  Olly Betts <olly@survex.com>
13932         * api/postingsource.cc,docs/postingsource.rst,
13933           include/xapian/postingsource.h,matcher/externalpostlist.cc,
13934           tests/api_db.cc,tests/api_percentages.cc,tests/api_valuestream.cc:
13935           Rename PostingSource::reset() to PostingSource::init().
13937 Mon Mar 23 11:01:02 GMT 2009  Olly Betts <olly@survex.com>
13939         * tests/harness/testsuite.h: Fix documentation comment in line with
13940           the corrected --help output from "Sat Feb 21 08:18:21 GMT 2009".
13942 Mon Mar 23 02:24:44 GMT 2009  Olly Betts <olly@survex.com>
13944         * api/omqueryinternal.cc: Fix handling of empty and single subquery
13945           OP_NEAR and OP_PHRASE (was breaking queryparsertest).
13947 Sun Mar 22 10:23:37 GMT 2009  Olly Betts <olly@survex.com>
13949         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
13950           backends/inmemory/inmemory_database.cc,
13951           backends/inmemory/inmemory_positionlist.cc,
13952           common/inmemory_positionlist.h,docs/deprecation.rst,
13953           tests/api_posdb.cc: Change Database::positionlist_begin() not to
13954           throw exceptions if the term or document doesn't exist.
13956 Sun Mar 22 09:02:46 GMT 2009  Olly Betts <olly@survex.com>
13958         * docs/deprecation.rst: Fix typo.
13960 Sun Mar 22 07:54:30 GMT 2009  Olly Betts <olly@survex.com>
13962         * api/omqueryinternal.cc,include/xapian/query.h,tests/api_nodb.cc,
13963           tests/api_query.cc: Fix valgrind errors on nearsubqueries1
13964           (ticket#349) and enhance distribution of OP_NEAR/OP_PHRASE over
13965           non-leaf subqueries to work when there are multiple non-leaf
13966           subqueries (ticket#201).  Extend nearsubqueries1 to test that
13967           trying to distribute OP_NEAR/OP_PHRASE over OP_NEAR/OP_PHRASE
13968           throws UnimplementedError.
13970 Fri Mar 20 08:43:20 GMT 2009  Olly Betts <olly@survex.com>
13972         * tests/api_query.cc: Add coverage for OP_AND with MatchNothing
13973           subquery (new testcase matchnothing1).
13975 Fri Mar 20 05:16:18 GMT 2009  Olly Betts <olly@survex.com>
13977         * api/omqueryinternal.cc: Fix assertions in previous check-in to
13978           verify the right condition.  And return the simplified query in
13979           the case the assertion would have failed, as that means a small
13980           memory leak rather than unpredictable behaviour in a non-assertion
13981           build.
13983 Fri Mar 20 04:26:29 GMT 2009  Olly Betts <olly@survex.com>
13985         * api/omqueryinternal.cc: Check that end_construction() returns NULL
13986           when unserialising queries.
13988 Fri Mar 20 02:51:32 GMT 2009  Olly Betts <olly@survex.com>
13990         * api/omqueryinternal.cc: Fix return type of
13991           Xapian::Query::Internal::simplify_query() in a debug build.  Since
13992           RETURN() isn't used by this function, this is only a cosmetic issue
13993           in the log file.
13995 Wed Mar 18 09:26:02 GMT 2009  Olly Betts <olly@survex.com>
13997         * backends/chert/chert_database.cc,backends/flint/flint_database.cc,
13998           docs/deprecation.rst: Move just returning an empty PositionIterator
13999           from Database::positionlist_begin() when the docs or term isn't
14000           present from 1.2.0 to 1.1.0 (has to be 1.1.0 or 1.3.0 really).
14002 Wed Mar 18 09:24:27 GMT 2009  Olly Betts <olly@survex.com>
14004         * docs/glossary.rst: Chert as the default backend in 1.2.0 is pretty
14005           much definite.
14007 Wed Mar 18 06:42:09 GMT 2009  Olly Betts <olly@survex.com>
14009         * NEWS: Update from ChangeLog.
14011 Wed Mar 18 04:36:59 GMT 2009  Olly Betts <olly@survex.com>
14013         * xapian-core.spec.in: Tweak reference to "1.1.0 branch" to make more
14014           sense.
14016 Wed Mar 18 04:30:18 GMT 2009  Olly Betts <olly@survex.com>
14018         * api/postingsource.cc,include/xapian/postingsource.h: Remove the
14019           optional "max_weight_" parameter to ValuePostingSource's ctor.
14020         * include/xapian/postingsource.h: Correct a few errors in
14021           documentation comments.
14023 Wed Mar 18 04:29:22 GMT 2009  Olly Betts <olly@survex.com>
14025         * docs/postingsource.rst: "ctx" -> "context" in example code.
14027 Tue Mar 17 23:45:52 GMT 2009  Olly Betts <olly@survex.com>
14029         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: If the
14030           locking attempt fails after we spawn the child process, call
14031           waitpid() in the parent process to avoid creating a zombie process.
14032         * AUTHORS: Add Jim Spath for reporting this.
14034 Tue Mar 17 23:34:16 GMT 2009  Olly Betts <olly@survex.com>
14036         * common/Makefile.mk,common/str.cc,common/str.h: New family of
14037           overloaded str() functions for converting types to std::string.
14038           The integer conversion are much faster than the existing
14039           om_tostring().
14040         * common/omassert.h,common/omdebug.h: Use str() instead of
14041           om_tostring().
14042         * common/utils.cc,common/utils.h: Make om_tostring() a macro wrapping
14043           str() for now to avoid introducing a lot of conflicts with other
14044           branches and unapplied patches.
14046 Tue Mar 17 21:28:54 GMT 2009  Olly Betts <olly@survex.com>
14048         * configure.ac: Fix comment typo.
14050 Tue Mar 17 00:47:26 GMT 2009  Olly Betts <olly@survex.com>
14052         * common/utils.cc: Fix previous change to actually compile...
14054 Mon Mar 16 20:10:01 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14056         * common/utils.cc,common/utils.h: Add om_tostring() version of
14057           unsigned long long int, to fix debug build on i686.
14059 Mon Mar 16 14:01:02 GMT 2009  Olly Betts <olly@survex.com>
14061         * NEWS: Sync with 1.0.11.
14063 Fri Mar 13 06:59:29 GMT 2009  Olly Betts <olly@survex.com>
14065         * weight/weightinternal.cc: Need "utils.h" for om_tostring().
14067 Fri Mar 13 05:47:24 GMT 2009  Olly Betts <olly@survex.com>
14069         * include/xapian/queryparser.h: Note that QueryParser::FLAG_DEFAULT
14070           was new in 1.0.11.
14072 Fri Mar 13 04:36:19 GMT 2009  Olly Betts <olly@survex.com>
14074         * weight/weightinternal.cc: Implement
14075           Weight::Internal::get_description().
14077 Thu Mar 12 11:57:02 GMT 2009  Olly Betts <olly@survex.com>
14079         * common/output.h: Fix last commit.
14081 Thu Mar 12 11:29:58 GMT 2009  Olly Betts <olly@survex.com>
14083         * common/output.h: Define operator<< for Xapian::Weight::Internal.
14085 Thu Mar 12 11:21:09 GMT 2009  Olly Betts <olly@survex.com>
14087         * net/remoteserver.cc: Fix overlooked case which was still sending
14088           REPLY_DOCLENGTH as a double.
14090 Wed Mar 11 22:56:59 GMT 2009  Olly Betts <olly@survex.com>
14092         * backends/chert/chert_valuelist.cc: Fix comment typo.
14094 Wed Mar 11 22:50:49 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14096         * tests/api_valuestream.cc: Enable valuestream3 for chert.
14097         * backends/chert/chert_valuelist.cc: Fix return value of
14098           ChertValueList::check() when it needs to move to a new chunk.
14099           Fixes valuestream3 test.
14101 Wed Mar 11 13:17:58 GMT 2009  Olly Betts <olly@survex.com>
14103         * include/xapian/weight.h: Mark Weight::init_() methods as "@private
14104           @internal" for doxygen API docs.
14106 Wed Mar 11 13:13:32 GMT 2009  Olly Betts <olly@survex.com>
14108         * include/xapian/weight.h,tests/api_db.cc,tests/api_nodb.cc,
14109           weight/bm25weight.cc,weight/boolweight.cc,weight/tradweight.cc:
14110           Make Weight::name() return std::string to allow sane wrapping
14111           with SWIG directors.
14113 Wed Mar 11 05:46:40 GMT 2009  Olly Betts <olly@survex.com>
14115         * api/,backends/chert/,backends/contiguousalldocspostlist.cc,
14116           backends/flint/,backends/inmemory/inmemory_database.cc,
14117           backends/inmemory/inmemory_database.h,
14118           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
14119           backends/remote/,common/,docs/remote_protocol.html,
14120           include/xapian/database.h,include/xapian/postingiterator.h,matcher/,
14121           net/remoteserver.cc: Internally, pass around non-normalised document
14122           lengths as Xapian::termcount (unsigned integer) not Xapian::doclength
14123           (double).
14125 Wed Mar 11 05:25:40 GMT 2009  Olly Betts <olly@survex.com>
14127         * tests/api_anydb.cc: Use TEST_REL; wrap long comment.
14129 Wed Mar 11 04:52:41 GMT 2009  Olly Betts <olly@survex.com>
14131         * Makefile.am,api/,backends/chert/,backends/database.cc,
14132           backends/flint/flint_database.cc,backends/flint/flint_database.h,
14133           backends/inmemory/inmemory_database.cc,
14134           backends/inmemory/inmemory_database.h,
14135           backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
14136           examples/delve.cc,include/Makefile.mk,include/xapian.h,
14137           include/xapian/database.h,include/xapian/enquire.h,
14138           include/xapian/weight.h,matcher/,net/remoteserver.cc,
14139           net/serialise.cc,tests/,weight/: Reimplementation of weighting
14140           schemes which allows user subclasses to access the same stats which
14141           built in schemes can (bug#213) and which also can use lower and
14142           upper bounds of doclength and upper bounds on wdf to give a tighter
14143           maxweight, which should allow the matcher weight-based optimisations
14144           to be more effective.  Chert now tracks doclength bounds and a
14145           global (rather than per term) bound on wdf.  Other backends
14146           return much less good bounds, but these still lead to better
14147           maxweight bounds.
14149 Wed Mar 11 00:13:24 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14151         * include/xapian/query.h: Rename parameter name from "ctx" to the
14152           more human-friendly "context".
14154 Tue Mar 10 14:03:33 GMT 2009  Olly Betts <olly@survex.com>
14156         * tests/harness/testutils.cc: If mset_range_is_same_percents() fails
14157           because the percentages differ, report what they were to tout.
14159 Mon Mar 09 12:27:28 GMT 2009  Olly Betts <olly@survex.com>
14161         * matcher/localmatch.cc: Remove special case handling for empty string
14162           being returned from the TermIterator returned by
14163           Query::Internal::get_terms() as this should no longer happen.
14165 Mon Mar 09 12:09:21 GMT 2009  Olly Betts <olly@survex.com>
14167         * api/omqueryinternal.cc: Don't return "" from a TermIterator from
14168           Query::get_terms_begin() (happened when Query contained or was
14169           Query::MatchAll).
14170         * tests/Makefile.am,tests/api_query.cc: Add regression testcase
14171           queryterms1.
14173 Sun Mar 08 06:16:24 GMT 2009  Olly Betts <olly@survex.com>
14175         * tests/api_backend.cc: Add check that backends don't truncate total
14176           document length to 32 bits.
14178 Sun Mar 08 06:02:43 GMT 2009  Olly Betts <olly@survex.com>
14180         * tests/api_backend.cc: Disable lockfileumask1 on Cygwin and on OS/2.
14182 Sun Mar 08 05:36:54 GMT 2009  Olly Betts <olly@survex.com>
14184         * matcher/extraweightpostlist.h: Add forward declaration of
14185           Xapian::Weight since we use "Xapian::Weight *".
14187 Sun Mar 08 04:39:22 GMT 2009  Olly Betts <olly@survex.com>
14189         * backends/chert/chert_types.h,backends/flint/flint_types.h,
14190           bin/xapian-check-flint.cc,bin/xapian-check.cc,bin/xapian-compact.cc,
14191           common/Makefile.mk,common/database.h,common/internaltypes.h:
14192           Move totlen_t to a new header (internaltypes.h) to avoid needing to
14193           pull in database.h in when we want to use it.  Also move int4 and
14194           uint4 there to avoid duplicated definitions and abstract out a
14195           new uint8 from defining totlen_t.
14197 Sun Mar 08 00:50:38 GMT 2009  Olly Betts <olly@survex.com>
14199         * backends/chert/chert_database.h,backends/chert/chert_types.h,
14200           backends/flint/flint_database.h,backends/flint/flint_types.h,
14201           bin/xapian-check-flint.cc,bin/xapian-check.cc,bin/xapian-compact.cc,
14202           common/database.h: Replace flint_totlen_t and chert_totlen_t with
14203           a common totlen_t.
14205 Sat Mar 07 08:35:27 GMT 2009  Olly Betts <olly@survex.com>
14207         * backends/chert/chert_database.cc: Wrap comment.
14209 Sat Mar 07 08:28:17 GMT 2009  Olly Betts <olly@survex.com>
14211         * backends/inmemory/inmemory_database.h: Fix file description
14212           ("multiple database" -> "inmemory database").
14214 Sat Mar 07 08:25:11 GMT 2009  Olly Betts <olly@survex.com>
14216         * backends/inmemory/inmemory_database.cc,
14217           backends/inmemory/inmemory_database.h: Store non-normalised document
14218           lengths as Xapian::termcount (unsigned int) rather than
14219           Xapian::doclength (double).
14221 Sat Mar 07 06:56:26 GMT 2009  Olly Betts <olly@survex.com>
14223         * common/database.h: Removed unused forward declarations of classes.
14225 Sat Mar 07 06:52:11 GMT 2009  Olly Betts <olly@survex.com>
14227         * common/database.h: Fix comment typo.
14229 Sat Mar 07 05:44:18 GMT 2009  Olly Betts <olly@survex.com>
14231         * net/serialise.cc: Fix top of file to actually be a doxygen comment.
14232           Tweak layout of definition of serialise_stats().
14234 Sat Mar 07 05:40:58 GMT 2009  Olly Betts <olly@survex.com>
14236         * net/serialise.cc: c_str() -> data() since we don't need the
14237           nul-termination.
14239 Thu Mar 05 11:49:45 GMT 2009  Olly Betts <olly@survex.com>
14241         * tests/api_db.cc,tests/api_nodb.cc: Back out accidentally committed
14242           changes 2 commits ago.
14244 Thu Mar 05 10:28:07 GMT 2009  Olly Betts <olly@survex.com>
14246         * AUTHORS: Add Frank J. Bruzzaniti for omindex patches.
14248 Thu Mar 05 10:20:38 GMT 2009  Olly Betts <olly@survex.com>
14250         * tests/Makefile.am: If both chert and flint are enabled, run
14251           remoteprog_chert and remotetcp_flint but not the other two
14252           combinations as they don't buy us any useful extra test
14253           coverage, but cost a lot of extra time per testrun.
14255 Thu Mar 05 07:51:52 GMT 2009  Olly Betts <olly@survex.com>
14257         * docs/deprecation.rst: Update to reflect that odd minor versions are
14258           now development series.
14260 Thu Mar 05 04:20:43 GMT 2009  Olly Betts <olly@survex.com>
14262         * common/serialisationcontextinternal.h: Fix forward declarations.
14264 Thu Mar 05 02:11:26 GMT 2009  Olly Betts <olly@survex.com>
14266         * api/omdatabase.cc: "new_uuid" -> "sub_uuid" - it's not really new.
14268 Wed Mar 04 22:53:13 GMT 2009  Olly Betts <olly@survex.com>
14270         * include/xapian/queryparser.h,include/xapian/termgenerator.h: Make
14271           default empty std::string parameters use std::string() rather than
14272           "".
14274 Wed Mar 04 16:06:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14276         * api/omdatabase.cc: If a sub-database of a multi-database has no
14277           uuid, we cannot return a uuid for the database, so return
14278           string() instead.
14279         * tests/api_anydb.cc: Test for this.
14281 Wed Mar 04 13:45:41 GMT 2009  Olly Betts <olly@survex.com>
14283         * HACKING: Conversion to C++ names for ISO C headers will happen in
14284           1.1.x, not 1.1.0.
14286 Wed Mar 04 13:37:47 GMT 2009  Olly Betts <olly@survex.com>
14288         * api/omdatabase.cc,backends/database.cc,
14289           backends/remote/remote-database.cc,common/database.h,
14290           include/xapian/database.h,net/remoteserver.cc,tests/api_anydb.cc:
14291           Return an empty string from Database::get_uuid() when then backend
14292           doesn't support UUIDs for consistency with flint when the database
14293           has no UUID.  For a multiple database, build a string from the UUIDs
14294           of each subdatabase and return this as the UUID.  If there are no
14295           subdatabases return the empty string.
14297 Wed Mar 04 11:34:04 GMT 2009  Olly Betts <olly@survex.com>
14299         * backends/remote/remote-database.cc,common/remoteprotocol.h,
14300           common/remoteserver.h,docs/remote_protocol.html,net/remoteserver.cc:
14301           Change the remote server to always default to opening a Database and
14302           having the client request write access explicitly.  This allows a
14303           single server to support multiple readers and one writer
14304           simultaneously.  (bug#145)
14305         * net/remoteserver.cc,backends/remote/remote-database.cc: For constant
14306           empty string parameters, pass string() rather than "".
14307         * common/remoteserver.h: Remove unused '#include <map>'.  Remove
14308           'using namespace std;' and explicitly qualify the few bare mentions
14309           of 'string'.
14311 Wed Mar 04 07:24:39 GMT 2009  Olly Betts <olly@survex.com>
14313         * queryparser/queryparser.lt: Sync with latest upstream lempar.c
14314           (only changes were in code which isn't in our version).
14316 Wed Mar 04 04:03:44 GMT 2009  Olly Betts <olly@survex.com>
14318         * tests/Makefile.am,tests/api_percentages.cc,
14319           tests/testdata/apitest_sortconsist.txt: Apply regression test patch
14320           from bug#216.
14322 Wed Mar 04 03:41:49 GMT 2009  Olly Betts <olly@survex.com>
14324         * include/xapian/enquire.h,matcher/multimatch.cc: Fix inconsistent
14325           percentage scores when sorting primarily by valuei, except when
14326           a MatchDecider is also being used; document this remaining problem
14327           case.  (bug#216)
14329 Wed Mar 04 01:58:07 GMT 2009  Olly Betts <olly@survex.com>
14331         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: No need
14332           to initialise inflate_zstream->next_out and avail_out twice.
14334 Wed Mar 04 01:16:32 GMT 2009  Olly Betts <olly@survex.com>
14336         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: If
14337           deflateReset() or inflateReset() fails, just delete the zstream
14338           take the initialisation codepath - that should mean we recover
14339           if the stream does somehow end up in a bad state and is less
14340           code than throwing an exception.  Annotate tests with rare()
14341           or usual() if they are for exceptional conditions.  Fix bug
14342           introduced by the laziness patch which was adding an int error
14343           code to a const char * message.  If deflateInit2() or inflateInit2()
14344           fails, delete and zero the stream so there's no risk of ending up
14345           wedged on a partly initialised stream.
14347 Tue Mar 03 15:32:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14349         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
14350           Check for errors from deflateReset() and inflateReset() - there
14351           shouldn't be any if we've given them a valid stream, so just
14352           raise InternalError if we get one.
14354 Tue Mar 03 09:43:34 GMT 2009  Olly Betts <olly@survex.com>
14356         * NEWS: Updated from ChangeLog.
14358 Tue Mar 03 05:52:16 GMT 2009  Olly Betts <olly@survex.com>
14360         * tests/api_closedb.cc: Fix testcase closedb2 not to create a test
14361           database named closedb3.
14363 Tue Mar 03 04:31:48 GMT 2009  Olly Betts <olly@survex.com>
14365         * include/xapian/queryparser.h: Add QueryParser::FLAG_DEFAULT to make
14366           it easier to add flags to those set by default.
14367         * tests/queryparsertest.cc: Use FLAG_DEFAULT in a few places to serve
14368           as a feature test.
14370 Tue Mar 03 03:45:53 GMT 2009  Olly Betts <olly@survex.com>
14372         * docs/index.html: Add link to new serialisation topic document.
14373         * docs/serialisation.rst: Reword to avoid pluralising class names.
14374           Add link to postingsource document where we reference it.
14376 Tue Mar 03 03:35:29 GMT 2009  Olly Betts <olly@survex.com>
14378         * tests/runsrv.in: Use @top_builddir@ rather than relying on it
14379           coming from the environment.
14381 Tue Mar 03 03:05:47 GMT 2009  Olly Betts <olly@survex.com>
14383         * tests/api_wrdb.cc: Clear tout regularly in modifyvalues1 as
14384           otherwise the output builds up.  Some string stream implementations
14385           get very inefficient with large strings, and also this seems to
14386           interact badly with valgrind's leak detection resulting in the
14387           test having to be rerun to check if it really leaks.  Prefer
14388           tout.str(string()) to tout.str("") in existing uses too.
14390 Tue Mar 03 01:41:07 GMT 2009  Olly Betts <olly@survex.com>
14392         * backends/flint/flint_table.cc: Update handling of shutting down
14393           the zstream objects in the dtor to match chert.
14395 Mon Mar 02 23:57:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14397         * backends/chert/chert_table.h,backends/flint/flint_table.h: Add
14398           documentation comments for the lazy allocation methods, and
14399           separate comments for the zstream members.
14401 Mon Mar 02 23:40:20 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14403         * AUTHORS,backends/chert/chert_table.cc,backends/chert/chert_table.h,
14404           backends/flint/flint_table.cc,backends/flint/flint_table.h:
14405           Reduce allocation of zstreams by allocating them lazily, keeping
14406           them in the table objects, and reuse them, rather than allocating
14407           a new one each time it's wanted.  Heavily based on a patch from
14408           Todd Lipcon.  Apparently improves performance significantly on
14409           some systems; on my tests it has no perceptible negative impact,
14410           but it makes sense that it could help in some situations, so
14411           let's apply it.  Fixes #325.
14413 Mon Mar 02 21:10:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14415         * docs/deprecation.rst: Deprecate Stem_get_available_languages()
14416           from the python bindings.
14418 Mon Mar 02 19:56:20 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14420         * common/Makefile.mk,common/const_database_wrapper.cc,
14421           common/const_database_wrapper.h,matcher/queryoptimiser.cc: Avoid
14422           const_cast() on Database::Internal, and exposing
14423           compiler-dependent behaviour if non-const methods are called, by
14424           adding a ConstDatabaseWrapper class, which is a subclass of
14425           Database::Internal, and also takes a Database::Internal as a
14426           parameter, to be wrapped.  This class proxies all const methods
14427           to the wrapped Database::Internal, and raises
14428           InvalidOperationError on non-const methods.  Fixes #332.
14430 Mon Mar 02 18:27:00 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14432         * include/xapian/postingsource.h: Documentation comment
14433           improvements.  Be explicit that Xapian will call reset() before
14434           various methods, and will call next, skip_to or check before
14435           at_end.
14436         * include/xapian/query.h: Wrap over-long line.
14438 Mon Mar 02 18:26:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14440         * docs/Makefile.am,docs/serialisation.rst: Add topic document about
14441           serialisation.
14443 Mon Mar 02 17:58:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14445         * docs/postingsource.rst: Update documentation with new design.
14447 Mon Mar 02 17:16:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14449         * api/omqueryinternal.cc: Change serialisation of queries to use
14450           encode_length() rather than om_tostring(), for a more compact and
14451           easier to parse representation.
14453 Mon Mar 02 14:48:08 GMT 2009  Olly Betts <olly@survex.com>
14455         * backends/multi/multi_alltermslist.cc: Fix memory leak which
14456           was causing allterms6 to fail.
14458 Mon Mar 02 14:15:11 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14460         * matcher/externalpostlist.cc: Fix memory leak in external source
14461           postlist (fixes fixedweightsource1).
14463 Mon Mar 02 13:41:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14465         * api/postingsource.cc: Don't set max_weight in
14466           ValueMapPostingSource::set_default_weight() - it's set in
14467           reset() before being used, and it's not been set here yet, so
14468           accessing it in std::max() was making valgrind complain.
14470 Mon Mar 02 12:23:01 GMT 2009  Olly Betts <olly@survex.com>
14472         * HACKING,configure.ac,tests/runtest.in: Don't use valgrind if it's
14473           < 3.3.0 as that's well over a year old and greatly simplifies the
14474           configure tests.  Fix options passed to valgrind so that the
14475           testsuite harness actually reports problems detected by newer
14476           valgrind versions.
14478 Mon Mar 02 10:08:25 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14480         * api/,bin/xapian-tcpsrv.cc,common/Makefile.mk,common/remoteserver.h,
14481           common/serialisationcontextinternal.h,include/Makefile.mk,
14482           include/xapian.h,include/xapian/enquire.h,include/xapian/query.h,
14483           include/xapian/serialisationcontext.h,net/remoteserver.cc,
14484           tests/api_serialise.cc,tests/internaltest.cc: Add
14485           SerialisationContext.  This object is used to register
14486           PostingSource or Weight subclasses, so that they can be
14487           serialised and unserialised, and therefore used in remote
14488           searches.  Add two-argument form for Query::unserialise() which
14489           takes a serialisation context.  Fixes #206.
14491 Mon Mar 02 07:13:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14493         * include/xapian/database.h: Further tweak to wording of
14494           documentation about close().
14496 Mon Mar 02 07:05:54 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14498         * backends/chert/chert_table.cc,backends/chert/chert_table.h,
14499           backends/flint/flint_table.cc,backends/flint/flint_table.h:
14500           Factor out more "throw Xapian::DatabaseError("Database has been
14501           closed")" bits into separate functions: knocks another 20KB off
14502           the shared library size.
14504 Mon Mar 02 05:46:15 GMT 2009  Olly Betts <olly@survex.com>
14506         * include/xapian/enquire.h: Document how to get all matches from
14507           Enquire::get_mset().
14509 Mon Mar 02 04:52:17 GMT 2009  Olly Betts <olly@survex.com>
14511         * backends/inmemory/inmemory_alltermslist.cc,
14512           backends/inmemory/inmemory_database.cc,
14513           backends/inmemory/inmemory_database.h: Factor out "throw
14514           Xapian::DatabaseError("Database has been closed") into a separate
14515           function which knocks over 100KB off the shared library size (just
14516           over 0.5%).
14518 Mon Mar 02 03:57:17 GMT 2009  Olly Betts <olly@survex.com>
14520         * matcher/phrasepostlist.h: Remove blank line from end of file.
14522 Mon Mar 02 03:52:10 GMT 2009  Olly Betts <olly@survex.com>
14524         * api/replication.cc,common/msvc_posix_wrapper.cc: Cuddle braces for
14525           "if" and "switch".
14527 Mon Mar 02 03:32:32 GMT 2009  Olly Betts <olly@survex.com>
14529         * tests/api_closedb.cc: Use more conventional uppercase macro parameter
14530           names.  Wrap long comments.  Remove another unused exception name.
14532 Mon Mar 02 03:21:39 GMT 2009  Olly Betts <olly@survex.com>
14534         * api/replication.cc,backends/chert/chert_databasereplicator.cc,
14535           backends/flint/flint_databasereplicator.cc,net/remoteserver.cc,
14536           tests/api_closedb.cc,tests/perftest/perftest_matchdecider.cc:
14537           Don't name the exception being caught if we don't look at it.  While
14538           GCC doesn't currently warn "unused variable" here, I'm fairly sure
14539           there are compilers which do.
14541 Mon Mar 02 03:20:52 GMT 2009  Olly Betts <olly@survex.com>
14543         * tests/perftest/perftest.cc: Wrap overlong comment.
14545 Mon Mar 02 03:17:48 GMT 2009  Olly Betts <olly@survex.com>
14547         * matcher/mergepostlist.cc: Change "do { ... } while (true);" to the
14548           more usual "while (true) { ... }".
14550 Sun Mar 01 19:41:16 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14552         * tests/api_closedb.cc: Merge closedb1 and closedb2 into a single
14553           test, and add lots more checking to it.  Rename closedb3 to
14554           closedb2, to avoid leaving an odd gap.  closedb1 needs more work,
14555           but is a useful start; committing now, rather than once I've done
14556           this work, since the old test is failing in buildbot, and I don't
14557           want to get in the way of snapshot tarballs.
14559 Sun Mar 01 19:27:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14561         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
14562           Add a few guards to throw DatabaseError when the database has
14563           been permanently closed, rather than behaving as if the table is
14564           empty in that situation.  Also, don't delete the resources in the
14565           table when Database::close() is called, because they may still be
14566           used to attempt to look up cached content.
14568 Sun Mar 01 18:22:52 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14570         * include/xapian/database.h: Update documentation comments for
14571           reopen() and close() to document the API we're aiming for (ie,
14572           that closed databases either return the right result from cache,
14573           or raise a DatabaseError).
14575 Sun Mar 01 18:20:19 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14577         * backends/inmemory/inmemory_alltermslist.cc,
14578           backends/inmemory/inmemory_database.cc,
14579           backends/inmemory/inmemory_database.h: Add a flag to mark whether
14580           the database is closed, and add guards before all methods which
14581           access content which goes away when the database is closed, to
14582           raise an exception if the database is closed.
14584 Sun Mar 01 18:20:03 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14586         * backends/inmemory/inmemory_document.h: Fix a typo in a comment.
14588 Sun Mar 01 17:49:26 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14590         * matcher/mergepostlist.cc: Fix ticket #336 by calling
14591           recalc_maxweight when a sub-posting list finishes (other than
14592           after the last one, where there is no point in calling
14593           recalc_maxweight).
14595 Sun Mar 01 15:34:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14597         * tests/api_db.cc: Fix MyDontAskWeightPostingSource to use the
14598           database passed to reset(), rather than one passed to its
14599           constructor.  This allows externalsource4 to be enabled for
14600           multidatabases.
14602 Sun Mar 01 13:07:37 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14604         * include/xapian/postingsource.h: Add comments as discussed in
14605           ticket #295 to make clear that in a multi-database search,
14606           PostingSources are passed a single sub-database.  Also mention
14607           that the returned value of clone() will be deallocated with
14608           delete.
14610 Sat Feb 28 08:21:33 GMT 2009  Olly Betts <olly@survex.com>
14612         * api/omdatabase.cc,backends/chert/chert_database.cc,
14613           backends/chert/chert_database.h,backends/database.cc,
14614           backends/flint/flint_database.cc,backends/flint/flint_database.h,
14615           backends/inmemory/inmemory_database.cc,
14616           backends/inmemory/inmemory_database.h,
14617           backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
14618           examples/copydatabase.cc,include/xapian/database.h,
14619           net/remoteserver.cc,tests/,tests/perftest/perftest_matchdecider.cc,
14620           tests/perftest/perftest_randomidx.cc,tests/queryparsertest.cc: Add
14621           WritableDatabase::commit() as a new, preferred alias for
14622           WritableDatabase::flush().  (bug#266)
14624 Fri Feb 27 01:59:31 GMT 2009  Olly Betts <olly@survex.com>
14626         * include/xapian/database.h: WritableDatabase::flush() can't throw
14627           DatabaseLockError.  WritableDatabase's ctor can throw at least
14628           DatabaseCorruptError or DatabaseLockError.
14630 Thu Feb 26 14:54:28 GMT 2009  Olly Betts <olly@survex.com>
14632         * tests/api_db.cc,tests/api_valuestream.cc: Update comments about why
14633           certain tests are disabled for certain backends.  Enable
14634           valueweightsource5 for multi and valuemapsource2 for remote.
14636 Thu Feb 26 14:53:19 GMT 2009  Olly Betts <olly@survex.com>
14638         * matcher/multiandpostlist.cc: Use AssertRelParanoid() instead
14639           of AssertParanoid() so the values get reported if the assertion
14640           fails.
14642 Thu Feb 26 14:18:21 GMT 2009  Olly Betts <olly@survex.com>
14644         * include/xapian/postingsource.h: Tweak word order.
14646 Thu Feb 26 12:48:16 GMT 2009  Olly Betts <olly@survex.com>
14648         * tests/api_db.cc: Make the PostingSource subclass ctors which are
14649           only called from clone() private to set a good example for users.
14651 Thu Feb 26 12:28:34 GMT 2009  Olly Betts <olly@survex.com>
14653         * include/xapian/postingsource.h: Fix doc comment typo.
14655 Thu Feb 26 12:08:40 GMT 2009  Olly Betts <olly@survex.com>
14657         * api/omqueryinternal.cc,include/xapian/query.h: Avoid copying
14658           Query::Internal objects needlessly when unserialising Query
14659           objects.
14661 Thu Feb 26 10:07:18 GMT 2009  Olly Betts <olly@survex.com>
14663         * tests/api_db.cc: A couple more uncollapsed tests.
14665 Thu Feb 26 08:28:42 GMT 2009  Olly Betts <olly@survex.com>
14667         * tests/api_anydb.cc,tests/api_wrdb.cc,tests/harness/testsuite.h,
14668           tests/perftest/perftest_matchdecider.cc,tests/queryparsertest.cc:
14669           Update to use new TEST_REL() macro.  Remove old TEST_LESSER(),
14670           etc.
14672 Thu Feb 26 07:51:43 GMT 2009  Olly Betts <olly@survex.com>
14674         * matcher/multimatch.cc: Fix the new
14675           Enquire::get_uncollapsed_matches_lower_bound(), etc methods for
14676           certain cases.
14677         * tests/api_anydb.cc,tests/api_db.cc: Extend existing tests to also
14678           check Enquire::get_uncollapsed_matches_lower_bound(), etc.
14680 Thu Feb 26 07:49:23 GMT 2009  Olly Betts <olly@survex.com>
14682         * tests/harness/Makefile.mk,tests/harness/testmacros.h,
14683           tests/harness/testsuite.h: Add new "TEST_REL" macro which can test
14684           for a condition using any relational operator and report a failure
14685           clearly yet concisely.
14687 Wed Feb 25 13:43:41 GMT 2009  Olly Betts <olly@survex.com>
14689         * matcher/multimatch.cc: Fix adjustment of the uncollapse bounds and
14690           estimate.
14692 Wed Feb 25 12:32:13 GMT 2009  Olly Betts <olly@survex.com>
14694         * configure.ac: GCC --version keeps changing format, and as a result
14695           we were currently getting "g++" as the version.  So change to the
14696           (hopefully) more robust technique of using g++ -E to pull out
14697           __GNUC__ and __GNUC_MINOR__.
14699 Wed Feb 25 03:14:08 GMT 2009  Olly Betts <olly@survex.com>
14701         * api/omdatabase.cc: Fix for compiling with Sun's compiler
14702           (untested as I no longer have access to it).
14704 Mon Feb 23 14:11:12 GMT 2009  Olly Betts <olly@survex.com>
14706         * docs/sorting.rst: Clarify meaning.
14708 Mon Feb 23 14:04:50 GMT 2009  Olly Betts <olly@survex.com>
14710         * docs/deprecation.rst,include/xapian/enquire.h,tests/: Rename the
14711           wrongly named "ascending" parameter of the set_sort_by*() methods
14712           of Enquire to "reverse" and deprecate the default value since
14713           defaulting to "reverse=true" is confusing.  (bug#311)
14715 Mon Feb 23 01:24:23 GMT 2009  Olly Betts <olly@survex.com>
14717         * api/omenquire.cc,backends/remote/remote-database.cc,
14718           common/multimatch.h,common/omenquireinternal.h,
14719           common/remote-database.h,docs/collapsing.rst,
14720           docs/remote_protocol.html,include/xapian/enquire.h,matcher/,
14721           net/remoteserver.cc,net/serialise.cc,tests/Makefile.am,
14722           tests/api_collapse.cc: Replace the collapsing code in the matcher
14723           with a separate Collapser class.  This new class can keep more than
14724           one document with each collapse key.  Also track bounds and an
14725           estimate of the total number of matches if collapsing wasn't in use.
14727 Mon Feb 23 00:52:16 GMT 2009  Olly Betts <olly@survex.com>
14729         * api/omdatabase.cc: Fix AssertionError from apitest testcases
14730           fixedweightsource2 and valueweightsource1.
14732 Sun Feb 22 11:02:24 GMT 2009  Olly Betts <olly@survex.com>
14734         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Check for
14735           fork failing *after* we check if we're now the child process.
14737 Sun Feb 22 10:06:13 GMT 2009  Olly Betts <olly@survex.com>
14739         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Note
14740           explicitly why we now have the strange empty if (not) checking the
14741           return value of chdir("/") (it's actually newer glibc and
14742           _FORTIFY_SOURCE rather than newer GCC).  Retry closing filehandle if
14743           it returns EINTR.  Whitespace tweaks.
14745 Sat Feb 21 11:04:08 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14747         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Fix
14748           warning about ignoring result of chdir (with GCC 4.2)
14750 Sat Feb 21 08:18:21 GMT 2009  Olly Betts <olly@survex.com>
14752         * tests/harness/testsuite.cc: Fix option usage in --help - "-x=foo"
14753           doesn't work - "-x foo" does.
14755 Sat Feb 21 07:37:01 GMT 2009  Olly Betts <olly@survex.com>
14757         * tests/perftest/perftest_randomidx.cc: Use two argument version of
14758           rand_int() where applicable.  Reserve length of result string in
14759           gen_word().  Fix truncated comment.
14761 Sat Feb 21 04:27:45 GMT 2009  Olly Betts <olly@survex.com>
14763         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: In the
14764           locking child process, before we exec /bin/cat change directory to
14765           / so that we don't block unmounting of any partitions and close
14766           any open file descriptors (apart from those we're using) so that if
14767           the files are closed by our parent and deleted the disk space gets
14768           released right away.
14770 Sat Feb 21 02:06:56 GMT 2009  Olly Betts <olly@survex.com>
14772         * api/postingsource.cc,include/xapian/postingsource.h: Pass string as
14773           const string &; drop trailing "_" from parameters which don't clash
14774           with member variables; fix brace formatting on a couple of for
14775           loops.
14777 Fri Feb 20 14:32:46 GMT 2009  Olly Betts <olly@survex.com>
14779         * tests/api_closedb.cc: Fix testcase closedb3 not to create a test
14780           database named closedb2.
14782 Fri Feb 20 01:38:32 GMT 2009  Olly Betts <olly@survex.com>
14784         * include/xapian/enquire.h: Documentation comment improvements.
14786 Wed Feb 18 06:48:43 GMT 2009  Olly Betts <olly@survex.com>
14788         * matcher/multimatch.cc: Use AssertRel rather than Assert with an
14789           inequality so that we see the arguments if the assertion fails.
14791 Wed Feb 18 06:39:33 GMT 2009  Olly Betts <olly@survex.com>
14793         * matcher/multimatch.cc: "items" -> "rsetitems" to distinguish from
14794           items used elsewhere for the MSet items.
14796 Wed Feb 18 06:20:38 GMT 2009  Olly Betts <olly@survex.com>
14798         * matcher/multimatch.cc: Drop superfluous "std::".
14800 Wed Feb 18 05:46:59 GMT 2009  Olly Betts <olly@survex.com>
14802         * NEWS: Update from ChangeLog.
14804 Tue Feb 17 23:53:54 GMT 2009  Olly Betts <olly@survex.com>
14806         * include/xapian/document.h,include/xapian/query.h: "xapian" ->
14807           "Xapian".
14809 Tue Feb 17 15:02:49 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14811         * include/xapian/document.h,include/xapian/query.h: Soften comment
14812           warning about changes in serialised format between xapian
14813           versions; note that the format won't change unless the remote
14814           database protocol has changed.
14816 Tue Feb 17 14:59:29 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14818         * api/omquery.cc: Return std::string() rather than "" to encourage
14819           compilers to use special empty string representation.
14821 Mon Feb 16 14:27:28 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14823         * api/postingsource.cc: Change the name() methods of the built-in
14824           posting sources to return a full name (starting with Xapian:: and
14825           ending with PostingSource), as documented in the API
14826           documentation comments.
14828 Mon Feb 16 13:32:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14830         * api/omqueryinternal.cc,common/remoteserver.h,
14831           matcher/externalpostlist.cc,matcher/externalpostlist.h,
14832           matcher/queryoptimiser.cc,net/remoteserver.cc,
14833           tests/api_percentages.cc,tests/api_valuestream.cc: Add some
14834           copyright lines missed in changeset [11838].
14836 Mon Feb 16 11:56:46 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14838         * matcher/queryoptimiser.cc: Add another reference from a FIXME to
14839           a ticket number.
14841 Mon Feb 16 11:47:21 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14843         * api/omqueryinternal.cc: Update two FIXMEs to reference the
14844           appropriate ticket.
14846 Mon Feb 16 10:11:39 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14848         * Add support for multi and remote backends with posting sources,
14849           from ticket #295:
14850         * include/xapian/postingsource.h: Add some clarifying comments
14851           about the interface of PostingSources, and add clone(), name(),
14852           serialise() and unserialise() methods to PostingSources, for
14853           remote and multidatabase support.
14854         * include/xapian/query.h: Add internal member to track ownership of
14855           external posting sources, and update some comments.
14856         * api/postingsource.cc: Add implementations of the new methods, so
14857           that all standard PostingSources support remote and multi
14858           database searches.
14859         * api/omquery.cc: Clone external PostingSources if possible.
14860         * api/omqueryinternal.cc: Add serialisation and unserialisation
14861           support for posting sources, and support for keeping track of
14862           whether an external posting source is owned by the query object
14863           or not (ie, whether it needs to be deleted by the destructor).
14864         * matcher/externalpostlist.cc,matcher/externalpostlist.h: (Attempt
14865           to) clone external posting sources at start, and call the reset()
14866           method with the database in use.  Delete the posting source
14867           afterwards, if the clone was successful.
14868         * matcher/queryoptimiser.cc: Pass the database to ExternalPostList.
14869           Sadly, this currently requires a const_cast.
14870         * tests/: Update tests of PostingSources to take the db parameter
14871           on the reset() method, and to test behaviour with multi and
14872           remote backends where appropriate.  Also, add regression test for
14873           segfault in FixedWeightPostingSource::skip_to() when database is
14874           empty.
14875         * net/remoteserver.cc,common/remoteserver.h: Add the built-in
14876           posting sources to the remote server, and add
14877           register_posting_source() to the remoteserver, for use in
14878           xapian-tcpsrv.cc for user posting sources, analogously to
14879           register_weighting_scheme().
14881 Fri Feb 13 20:09:10 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14883         * api/postingsource.cc: Fix segfaults which occur if an empty
14884           ValuePostingSource subclass has the skip_to() or check() methods
14885           called on it first.
14886         * tests/api_db.cc tests/api_valuestream.cc: Move valuemapsource1 to
14887           api_valuestream.cc, since that seems like a better place (and
14888           api_db.cc is already rather over-large).  Add regression test
14889           "valuemapsource2" to check the behaviour of ValuePostingSource
14890           subclasses on empty lists.
14892 Fri Feb 13 19:29:38 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14894         * api/postingsource.cc,include/xapian/postingsource.h: Add
14895           ValuePostingSource, which is a base class for implementing
14896           posting sources based on reading from a value slot.  Convert
14897           ValueWeightPostingSource to be a subclass of this, and add
14898           ValueMapPostingSource, which is a posting source which uses a map
14899           to convert values to weights.
14900         * tests/api_db.cc: Add valuemapsource1, testing the
14901           ValueMapPostingSource.
14903 Fri Feb 13 15:14:53 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14905         * tests/harness/index_utils.cc: Add value 13, containing the first
14906           3 letters of the paragraph - needed for some tests I'm going to
14907           commit shortly.
14909 Fri Feb 13 14:05:44 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14911         * tests/api_sorting.cc: Change slot number used to get an empty
14912           slot from 13 to 100 - we're getting close to using slot 13 now!
14914 Sat Feb 07 00:31:12 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14916         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc:
14917           Return accidentally changed "XAPIAN_ASSERTIONS_VERBOSE" ifdefs to
14918           "XAPIAN_DEBUG_VERBOSE".
14920 Sat Feb 07 00:16:43 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14922         * api/omdocument.cc,api/omquery.cc,include/xapian/document.h,
14923           include/xapian/query.h: Add methods for serialising documents and
14924           queries into strings, and unserialising back from strings.  Fixes
14925           most of ticket #206 - missing part is that serialising queries
14926           containing PostingSources doesn't work.
14927         * tests/Makefile.am,tests/api_serialise.cc: Add tests of document
14928           and query serialisation.
14930 Fri Feb 06 16:06:50 GMT 2009  Richard Boulton <richard@lemurconsulting.com>
14932         * configure.ac: Set HAVE_PREAD and HAVE_PWRITE if pread and pwrite
14933           are found; turns use of pread and pwrite back on.  This improves
14934           the speed of a test case of 10,000 (fully cached) searches from
14935           1.84 seconds to 1.78 seconds for me (on ubuntu hardy) - ie, about
14936           3% speed increase.
14938 Tue Jan 20 06:22:20 GMT 2009  Olly Betts <olly@survex.com>
14940         * tests/api_db.cc: Prefer value.empty() to value == "".
14942 Mon Jan 19 05:08:48 GMT 2009  Olly Betts <olly@survex.com>
14944         * AUTHORS,queryparser/Makefile.mk: Fix "#line" directives in generated
14945           file queryparser/queryparser_internal.cc to give a relative path -
14946           previously they had a full path when generated by a VPATH build, and
14947           this confused GCC 2.95 and depcomp.
14949 Sun Jan 18 23:34:22 GMT 2009  Olly Betts <olly@survex.com>
14951         * api/omenquire.cc: Throw UnimplementedError from Enquire::get_mset()
14952           if we're asked for a percentage cutoff and to sort primarily by
14953           value - this has never been correctly supported and it's better to
14954           warn people than give incorrect results.
14955         * tests/api_percentages.cc: Add test that this error gets thrown.
14957 Tue Jan 13 08:20:36 GMT 2009  Olly Betts <olly@survex.com>
14959         * common/omenquireinternal.h: Swap the items vector into the
14960           MSet::Internal object rather than copying it to avoid the overhead
14961           of the copy.
14963 Thu Jan 08 05:14:47 GMT 2009  Olly Betts <olly@survex.com>
14965         * backends/chert/chert_cursor.cc,backends/chert/chert_postlist.cc,
14966           backends/flint/flint_cursor.cc,backends/flint/flint_postlist.cc,
14967           backends/multi/multi_postlist.cc,common/omassert.h,configure.ac,
14968           matcher/multimatch.cc: Change preprocessor defines controlling
14969           assertions from XAPIAN_DEBUG->XAPIAN_ASSERTIONS and
14970           XAPIAN_DEBUG_PARANOID->XAPIAN_ASSERTIONS_PARANOID so their purpose
14971           is clearer.
14973 Thu Jan 08 02:23:21 GMT 2009  Olly Betts <olly@survex.com>
14975         * NEWS: Update from ChangeLog.
14977 Wed Jan 07 03:43:07 GMT 2009  Olly Betts <olly@survex.com>
14979         * api/matchspy.cc: Fix FP rounding bug (bug#321).
14980         * AUTHORS: Add Shane Evans for bug report.
14982 Tue Jan 06 22:08:12 GMT 2009  Olly Betts <olly@survex.com>
14984         * backends/inmemory/inmemory_database.cc: Fix comment typo.
14986 Tue Jan 06 21:39:30 GMT 2009  Olly Betts <olly@survex.com>
14988         * api/matchspy.cc: Add assertions to try to track down what's causing
14989           bug#321.
14991 Tue Jan 06 03:20:27 GMT 2009  Olly Betts <olly@survex.com>
14993         * matcher/exactphrasepostlist.cc,matcher/phrasepostlist.cc: Fix
14994           comment typos.
14996 Mon Jan 05 04:42:04 GMT 2009  Olly Betts <olly@survex.com>
14998         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6016" -
14999           only change is to comment noting the synced version as the changed
15000           code has been deleted in our version.
15002 Fri Dec 26 15:05:05 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15004         * include/xapian/database.h: Add Database.close() method, used to
15005           close the resources (in particular, the filehandles) held by a
15006           database before the destructor is called.  Particularly useful
15007           for the bindings from other languages.
15008         * api/omdatabase.cc,backends/chert/chert_database.cc,
15009           backends/chert/chert_database.h,backends/flint/flint_database.cc,
15010           backends/flint/flint_database.h,
15011           backends/inmemory/inmemory_database.cc,
15012           backends/inmemory/inmemory_database.h,
15013           backends/remote/remote-database.cc,common/database.h,
15014           common/remote-database.h,net/remoteconnection.cc: Implementation
15015           of close() methods.
15016         * tests/Makefile.am,tests/api_closedb.cc: New test file, for
15017           testing the close method.  Could do with being expanded to test
15018           many more methods of databases in the closed state, and to test
15019           the behaviour after the close of objects created from databases
15020           before the database was closed.
15022 Fri Dec 26 13:42:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15024         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
15025           Raise error if database has been closed permanently when
15026           cursor_get() is called - a NULL return type isn't checked in
15027           various places (for tables which are never closed temporarily),
15028           so this is the easiest place to add a check to avoid a segfault
15029           without incurring extra overhead.
15031 Tue Dec 23 13:42:21 GMT 2008  Olly Betts <olly@survex.com>
15033         * languages/compiler/analyser.c: Fix GCC 4.3 warning.
15035 Tue Dec 23 06:35:11 GMT 2008  Olly Betts <olly@survex.com>
15037         * PLATFORMS: Sync with 1.0 branch.
15038         * PLATFORMS: Remove 0.9.x build reports; move 1.0.x build reports
15039           to the "old version" section.
15040         * INSTALL: Adapt old footnotes from PLATFORMS about HP's aCC and IRIX
15041           into new paragraphs here.
15043 Tue Dec 23 05:19:52 GMT 2008  Olly Betts <olly@survex.com>
15045         * HACKING,configure.ac: Make automake 1.10.2 a hard minimum
15046           requirement.
15048 Tue Dec 23 04:36:27 GMT 2008  Olly Betts <olly@survex.com>
15050         * NEWS: Update from ChangeLog.
15052 Mon Dec 22 16:02:58 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15054         * backends/chert/chert_databasereplicator.cc,
15055           backends/databasereplicator.cc,
15056           backends/flint/flint_databasereplicator.cc: Fix some missing bits
15057           for debug compilation.
15059 Mon Dec 22 13:30:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15061         * api/replication.cc,backends/Makefile.mk,backends/chert/,
15062           backends/database.cc,backends/databasereplicator.cc,backends/flint/,
15063           common/Makefile.mk,common/database.h,common/databasereplicator.h:
15064           Add DatabaseReplicator base class, and subclasses for flint and
15065           chert, to hold parts of database replication code which need to
15066           be applied to a partially replicated database which may not be a
15067           valid database.  Move the code for applying changesets and
15068           comparing revision numbers into here, and add code for getting
15069           uuids which simply returns "" if the database is too broken to
15070           have a uuid associated with it.  Update the replication code to
15071           use DatabaseReplicator subclasses instead of Database classes
15072           where necessary, to avoid failing if a partial database is
15073           transmitted.  Add additional checks to ensure that the UUID of a
15074           replicated databse is equal to that sent in the replication
15075           protocol message introducing a full database copy; if they
15076           differ, a retry of the copy is needed, so ensure that the next
15077           message sent is a new copy of the database.
15079 Mon Dec 22 11:24:43 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15081         * docs/replication.rst: Warning about a possible way to confuse the
15082           replication process.
15084 Sat Dec 20 14:00:34 GMT 2008  Olly Betts <olly@survex.com>
15086         * tests/api_percentages.cc: Update (C) too.
15088 Sat Dec 20 13:51:35 GMT 2008  Olly Betts <olly@survex.com>
15090         * matcher/multimatch.cc: If we're using values for sorting and for
15091           another purpose, cache the Document::Internal object from getting
15092           the value for sorting like we do between other uses.
15094 Sat Dec 20 13:09:13 GMT 2008  Olly Betts <olly@survex.com>
15096         * tests/api_percentages.cc: Make formatting of MyPostingSource code
15097           more self-consistent.  Remove a superfluous block scope.  Wrap a
15098           long comment.
15100 Sat Dec 20 12:25:40 GMT 2008  Olly Betts <olly@survex.com>
15102         * exception_data.pm: Build a hash mapping a class to a list of its
15103           subclasses and export this as %subclasses.
15105 Sat Dec 20 05:51:50 GMT 2008  Olly Betts <olly@survex.com>
15107         * HACKING: Wrap a long line.
15109 Sat Dec 20 05:28:57 GMT 2008  Olly Betts <olly@survex.com>
15111         * queryparser/lemon.c: Merge upstream "Check-in Number: 6016".
15113 Fri Dec 19 14:25:10 GMT 2008  Olly Betts <olly@survex.com>
15115         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6015".
15117 Fri Dec 19 14:07:52 GMT 2008  Olly Betts <olly@survex.com>
15119         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 6006".
15121 Fri Dec 19 13:51:33 GMT 2008  Olly Betts <olly@survex.com>
15123         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5919"
15124           - code changes are in deleted code, so no actual code changes for
15125           us.
15127 Fri Dec 19 13:46:22 GMT 2008  Olly Betts <olly@survex.com>
15129         * queryparser/lemon.c: Merge upstream "Check-in Number: 6008".
15131 Fri Dec 19 11:15:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15133         * tests/api_replicate.cc: Fix comment describing test.
15135 Thu Dec 18 23:38:50 GMT 2008  Olly Betts <olly@survex.com>
15137         * backends/chert/chert_table.cc,backends/flint/flint_table.cc: Tidy up
15138           comment wrapping and indenting of code wrapped in try blocks by the
15139           previous commit.
15141 Thu Dec 18 14:26:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15143         * backends/chert/chert_database.cc,backends/chert/chert_table.cc,
15144           backends/chert/chert_table.h,backends/flint/flint_database.cc,
15145           backends/flint/flint_table.cc,backends/flint/flint_table.h:
15146           Improve resilience to unexpected errors during commit.  Firstly,
15147           fix FlintTable and ChertTable to close the table if an error
15148           occurs during commit - this avoids the table being left in an
15149           inconsistent state (instead, the table is reopened in a
15150           consistent state the next time it is used).  Secondly, add a
15151           "permanent" close state for tables (indicated by handle being set
15152           to -2), which will raise an error if anything tries to do an
15153           action which needs the table to be opened, and set the tables to
15154           this state if we fail to recover the database after error in
15155           commit().  This prevents further actions on the database if we
15156           couldn't recover the state (eg, because we're out of disk space),
15157           avoiding risk of corruption.
15159 Thu Dec 18 01:28:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15161         * backends/chert/chert_database.cc,backends/chert/chert_database.h,
15162           backends/flint/flint_database.cc,backends/flint/flint_database.h:
15163           Improve the error reporting when modifications fail and we cannot
15164           set the revision numbers in the table to consistent values, to
15165           report the original error too.
15167 Wed Dec 17 17:27:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15169         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
15170           Fix construction of the error message when a base can't be
15171           re-read: used to do pointer arithmetic by mistake - now does the
15172           correct string concatenation.
15174 Wed Dec 17 15:18:10 GMT 2008  Olly Betts <olly@survex.com>
15176         * tests/api_valuestream.cc: Skip valuestream3 on chert for now so that
15177           snapshots and the tinderbox work again.
15179 Wed Dec 17 15:17:07 GMT 2008  Olly Betts <olly@survex.com>
15181         * tests/api_wrdb.cc: Need omassert.h for STATIC_ASSERT.
15183 Wed Dec 17 10:45:45 GMT 2008  Olly Betts <olly@survex.com>
15185         * api/omqueryinternal.cc,tests/api_nodb.cc: A NEAR of 2 OR subqueries
15186           shouldn't throw AssertionError - instead throw UnimplementedError.
15187           Addresses the worst aspect of bug#201, but this should really be
15188           implemented.
15190 Wed Dec 17 04:44:10 GMT 2008  Olly Betts <olly@survex.com>
15192         * backends/chert/chert_database.cc,backends/chert/chert_database.h:
15193           Implement ChertWritableDatabase::open_value_list().
15194         * tests/api_valuestream.cc: Add valueweightsource5 testcase which is a
15195           regression test for bug#299 and also exercises the above method.
15197 Tue Dec 16 13:30:47 GMT 2008  Olly Betts <olly@survex.com>
15199         * common/expandweight.h,expand/expandweight.cc: Overhaul ExpandWeight
15200           - now we use the "official" formula and don't return terms which it
15201           would give a negative weight to (since that means they are expected
15202           to be harmful not helfpul).
15203         * tests/api_anydb.cc,tests/api_db.cc: Fix unwarranted assumptions in
15204           existing testcases broken by this change.
15206 Thu Dec 11 01:02:41 GMT 2008  Olly Betts <olly@survex.com>
15208         * examples/delve.cc: Add missing "and" to --help output.  Report
15209           termfreq and collection freq for each term we're asked about.
15211 Mon Dec 08 00:52:51 GMT 2008  Olly Betts <olly@survex.com>
15213         * AUTHORS: Add Daniel Andersson for reporting the flintlock
15214           permissions issue.
15216 Sun Dec 07 22:50:32 GMT 2008  Olly Betts <olly@survex.com>
15218         * api/sorter.cc,tests/api_sorting.cc: Fix an empty MultiValueSorter
15219           not to SEGV/hang.
15221 Fri Dec 05 21:08:08 GMT 2008  Olly Betts <olly@survex.com>
15223         * backends/chert/chert_database.cc,tests/api_backend.cc: Use
15224           "flintlock" rather than "chertlock" for the lockfile in chert.
15225           The locking is compatible and this avoids the possibility of
15226           creating a chert and flint database in the same directory (which
15227           will result in one being corrupt since the Btree filenames overlap).
15229 Thu Dec 04 09:00:04 GMT 2008  Olly Betts <olly@survex.com>
15231         * backends/chert/chert_lock.cc,backends/flint/flint_lock.cc: Create
15232           the lockfile with permissions 0666 so that the umask is honoured
15233           just like we do for the other files (previously we used 0600).
15234         * tests/Makefile.am,tests/api_backend.cc: Add regression test
15235           lockfileumask1.
15237 Thu Dec 04 08:56:54 GMT 2008  Olly Betts <olly@survex.com>
15239         * tests/stemtest.cc: Use str.resize(0) instead of str = "".
15241 Thu Dec 04 04:56:55 GMT 2008  Olly Betts <olly@survex.com>
15243         * tests/queryparsertest.cc: No need to explicitly initialise a
15244           std::string to "".
15246 Thu Dec 04 04:55:47 GMT 2008  Olly Betts <olly@survex.com>
15248         * tests/api_db.cc: Prefer str.empty() to str == "".
15250 Thu Dec 04 01:50:10 GMT 2008  Olly Betts <olly@survex.com>
15252         * tests/api_wrdb.cc: Make helper function static.  Use STATIC_ASSERT
15253           to ensure a constant is coprime with 13.
15255 Wed Dec 03 22:56:19 GMT 2008  Olly Betts <olly@survex.com>
15257         * api/omdatabase.cc: Fix API logging.
15259 Wed Dec 03 03:11:45 GMT 2008  Olly Betts <olly@survex.com>
15261         * INSTALL: Note that libuuid is required for Xapian 1.1.0 and higher.
15263 Wed Dec 03 03:10:59 GMT 2008  Olly Betts <olly@survex.com>
15265         * INSTALL: Remove ':' from the end of headings.
15267 Mon Dec 01 08:59:04 GMT 2008  Olly Betts <olly@survex.com>
15269         * HACKING: Explicitly give the commands to install the required
15270           packages for developing on recent Debian or Ubuntu for added
15271           convenience.  Update the Debian/Ubuntu packages needed for
15272           documentation to reflect the change from tetex to texlive.  Fix
15273           unfinished paragraph about requiring a newline at the end of a
15274           source file and note that this is actually undefined behaviour in
15275           C++.
15277 Sun Nov 30 21:46:59 GMT 2008  Olly Betts <olly@survex.com>
15279         * bin/,examples/quest.cc,tests/harness/testsuite.cc: Pull out lists of
15280           short options next to list of long options to help make sure they
15281           are kept in step.  xapian-tcpsrv and xapian-progsrv now accept -w
15282           as a short form of --writable, as their long option table had, but
15283           their short option string didn't.
15285 Sun Nov 30 20:44:48 GMT 2008  Olly Betts <olly@survex.com>
15287         * docs/postingsource.rst: Wrap a long line.  Note that the remote
15288           backend isn't supported yet.
15290 Wed Nov 19 11:36:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15292         * docs/postingsource.rst: Make it clear that PostingSources must
15293           always return documents in increasing document ID order.
15295 Wed Nov 19 08:43:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15297         * bin/,examples/delve.cc,examples/quest.cc,tests/harness/testsuite.cc:
15298           Test return type of gnu_getopt_long for being != -1, rather than
15299           == 0, since there are a wide variety of return types other than 0
15300           which may be returned in the successful case (with the builtin
15301           implementation in common/getopt.cc, at least).
15303 Tue Nov 18 23:22:09 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15305         * api/omdatabase.cc: Change unknown "DATABASE" debug type to "DB".
15307 Mon Nov 17 13:00:12 GMT 2008  Olly Betts <olly@survex.com>
15309         * docs/queryparser.html: Add link to valueranges.html.
15311 Fri Nov 14 22:23:10 GMT 2008  Olly Betts <olly@survex.com>
15313         * NEWS: Update revision we're current to.
15315 Fri Nov 14 17:43:15 GMT 2008  Olly Betts <olly@survex.com>
15317         * backends/chert/chert_alldocsmodifiedpostlist.cc,
15318           backends/chert/chert_modifiedpostlist.cc,
15319           backends/flint/flint_modifiedpostlist.cc: Correct comments.
15321 Fri Nov 14 17:38:33 GMT 2008  Olly Betts <olly@survex.com>
15323         * tests/harness/testsuite.cc: Update comment about valgrind and C++
15324           STL allocators.
15326 Fri Nov 14 17:36:47 GMT 2008  Olly Betts <olly@survex.com>
15328         * bin/,examples/delve.cc,examples/quest.cc,tests/harness/testsuite.cc:
15329           Don't compare return value of gnu_getopt_long() with EOF - it's
15330           documented to simply return -1 or 0, and EOF requires inclusion of
15331           stdio.h.
15333 Fri Nov 14 17:30:39 GMT 2008  Olly Betts <olly@survex.com>
15335         * common/serialise-double.cc: Fix "#elif" with no argument to
15336           "#else" - the former surprisingly compiles with most compilers, but
15337           GCC 4.4 snapshots reject it.
15339 Fri Nov 14 16:54:15 GMT 2008  Olly Betts <olly@survex.com>
15341         * common/win32_uuid.cc: A few code clean-ups.
15343 Fri Nov 14 13:09:16 GMT 2008  Olly Betts <olly@survex.com>
15345         * common/Makefile.mk: Ship common/safeuuid.h to unbreak tarball
15346           snapshot building.
15348 Sun Nov 09 13:31:19 GMT 2008  Olly Betts <olly@survex.com>
15350         * api/omquery.cc,api/omqueryinternal.cc,bin/xapian-tcpsrv.cc,
15351           common/omenquireinternal.h,matcher/,net/remoteserver.cc:
15352           Prefer "" to <> for including Xapian API headers from within the
15353           library.  Remove so unused xapian/enquire.h inclusions.
15355 Fri Nov 07 12:50:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15357         * backends/chert/chert_version.cc,backends/chert/chert_version.h,
15358           backends/flint/flint_version.cc,backends/flint/flint_version.h,
15359           common/safeuuid.h,common/win32_uuid.cc,common/win32_uuid.h: Add
15360           implementation of UUID functions for windows (using the built-in
15361           UUID methods in the windows API). Fixes bug #303.
15363 Sat Nov 01 01:47:44 GMT 2008  Olly Betts <olly@survex.com>
15365         * NEWS: Sync with 1.0.9 release.
15367 Fri Oct 31 18:55:03 GMT 2008  Olly Betts <olly@survex.com>
15369         * include/xapian/database.h: Document XAPIAN_FLUSH_THRESHOLD
15370           (bug#306).
15372 Fri Oct 31 18:30:11 GMT 2008  Olly Betts <olly@survex.com>
15374         * configure.ac: Fix whitespace inconsistency with omega's
15375           configure.ac.
15377 Fri Oct 31 10:51:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15379         * api/postingsource.cc,include/xapian/postingsource.h: Add a new
15380           built-in posting source, FixedWeightSource, which returns every
15381           document in the database, but with a fixed weight.  In
15382           particular, this is useful to add a constant weight to every item
15383           in a subquery.  Also, in ValueWeightPostingSource, refactor the
15384           "last_docid" member to a bool "started", since this is all it's
15385           used for.
15386         * tests/api_db.cc: Add fixedweightsource1, to test FixedWeightSource.
15388 Mon Oct 27 17:05:39 GMT 2008  Olly Betts <olly@survex.com>
15390         * tests/queryparsertest.cc: Skip test if the timer granularity is too
15391           coarse in all cases.
15393 Mon Oct 27 08:12:16 GMT 2008  Olly Betts <olly@survex.com>
15395         * tests/api_valuestream.cc: Disable valuestream1 for multi backends.
15397 Sun Oct 26 00:30:54 GMT 2008  Olly Betts <olly@survex.com>
15399         * backends/chert/chert_valuelist.cc: Remove incorrect assertions.
15401 Sat Oct 25 06:18:37 GMT 2008  Olly Betts <olly@survex.com>
15403         * api/Makefile.mk: Fix typo so we once again ship editdistance.h and
15404           maptermlist.h.
15406 Thu Oct 23 17:34:13 GMT 2008  Olly Betts <olly@survex.com>
15408         * tests/queryparsertest.cc: Skip test if the timer granularity is too
15409           coarse.
15411 Tue Oct 21 05:00:59 GMT 2008  Olly Betts <olly@survex.com>
15413         * NEWS: Sync with branches/1.0.
15415 Tue Oct 21 02:09:18 GMT 2008  Olly Betts <olly@survex.com>
15417         * tests/api_valuestream.cc: Add feature test of ValueIterator::check().
15419 Tue Oct 21 01:36:45 GMT 2008  Olly Betts <olly@survex.com>
15421         * backends/inmemory/inmemory_database.cc,
15422           backends/inmemory/inmemory_database.h: Prefer string() to "", slot
15423           to valno, and not using else after return.
15425 Tue Oct 21 01:32:37 GMT 2008  Olly Betts <olly@survex.com>
15427         * tests/api_anydb.cc,tests/api_db.cc: Remove '#include <iomanip>'
15428           which aren't used.
15430 Mon Oct 20 13:30:37 GMT 2008  Olly Betts <olly@survex.com>
15432         * api/postingsource.cc,api/valueiterator.cc,
15433           include/xapian/postingsource.h,include/xapian/valueiterator.h: Add
15434           new API method ValueIterator::check() and use it in PostingIterator.
15436 Mon Oct 20 12:28:16 GMT 2008  Olly Betts <olly@survex.com>
15438         * tests/api_valuestream.cc: Add test for skip_to() on valuestream
15439           iterator.
15441 Mon Oct 20 11:19:12 GMT 2008  Olly Betts <olly@survex.com>
15443         * tests/Makefile.am,tests/api_valuestream.cc: Add a simple test of
15444           valuestream iteration.
15446 Mon Oct 20 11:01:26 GMT 2008  Olly Betts <olly@survex.com>
15448         * tests/Makefile.am,tests/collate-test,tests/perftest/Makefile.mk:
15449           Generate the header listing the collated tests so that we can avoid
15450           updating its timestamp when the contents are unchanged, such as in
15451           the common case where you modify tests but don't add, remove, or
15452           change the conditions on any tests.
15454 Mon Oct 20 10:01:56 GMT 2008  Olly Betts <olly@survex.com>
15456         * examples/delve.cc: Use valuestream iterator to implement "-V<slot>".
15458 Mon Oct 20 02:19:09 GMT 2008  Olly Betts <olly@survex.com>
15460         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
15461           Remove unused members of MultiPostList: tname, collfreq_initialised,
15462           collfreq, and termweight.
15464 Sun Oct 19 14:01:15 GMT 2008  Olly Betts <olly@survex.com>
15466         * api/postingsource.cc,include/xapian/postingsource.h: Update
15467           ValueWeightPostingSource to use a value stream iterator.
15469 Sun Oct 19 13:53:51 GMT 2008  Olly Betts <olly@survex.com>
15471         * backends/database.cc: Make use of SlowValueList by default.
15473 Sun Oct 19 13:47:10 GMT 2008  Olly Betts <olly@survex.com>
15475         * api/documentvaluelist.cc,api/documentvaluelist.h: Fix so that a
15476           DocumentValueList starts before the first value.
15478 Sun Oct 19 13:09:39 GMT 2008  Olly Betts <olly@survex.com>
15480         * api/omdatabase.cc,api/omdocument.cc: Use ValueIterator() instead of
15481           ValueIterator(NULL).
15483 Sun Oct 19 11:15:15 GMT 2008  Olly Betts <olly@survex.com>
15485         * NEWS: Update from ChangeLog.
15487 Sat Oct 18 01:31:25 GMT 2008  Olly Betts <olly@survex.com>
15489         * NEWS: Update from ChangeLog.
15491 Fri Oct 17 15:54:57 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15493         * bin/xapian-compact.cc: Check that pq is not empty before calling
15494           top() on it - if it's empty, we only have one database, so we can
15495           use the code path which doesn't worry about merging tags.  Fixes
15496           bug #305.
15498 Fri Oct 17 14:22:18 GMT 2008  Olly Betts <olly@survex.com>
15500         * backends/chert/chert_valuelist.cc: Fix ChertValueList to start on
15501           the right key.
15503 Fri Oct 17 14:14:14 GMT 2008  Olly Betts <olly@survex.com>
15505         * include/xapian/database.h,include/xapian/document.h: Inline
15506           ValueIterator end iterator as ValueIterator() rather than
15507           ValueIterator(NULL).
15508         * api/valueiterator.cc: Need to call next() on a ValueList to get it
15509           to the first position, so do this in ValueIterator's constructor.
15510         * api/valueiterator.cc,include/xapian/valueiterator.h: Add
15511           ValueIterator::get_docid() method.
15513 Fri Oct 17 13:53:26 GMT 2008  Olly Betts <olly@survex.com>
15515         * backends/slowvaluelist.cc,backends/slowvaluelist.h: Add missing
15516           SlowValueList::get_valueno() method.
15518 Fri Oct 17 13:16:01 GMT 2008  Olly Betts <olly@survex.com>
15520         * api/omdatabase.cc,include/xapian/database.h: Add
15521           Database::valuestream_begin() and Database::valuestream_end() to
15522           allow iterating over the values in a given slot for each document
15523           in the database (untested so far).
15525 Thu Oct 16 13:20:26 GMT 2008  Olly Betts <olly@survex.com>
15527         * backends/multi/multi_postlist.cc: Remove unused '#include <list>'
15528           and uninformative comment.
15530 Thu Oct 16 12:47:00 GMT 2008  Olly Betts <olly@survex.com>
15532         * api/omdocument.cc,include/xapian/document.h: Inline
15533           Xapian::Document::values_end() into user code.
15535 Thu Oct 16 12:26:29 GMT 2008  Olly Betts <olly@survex.com>
15537         * api/,backends/chert/chert_valuelist.cc,
15538           backends/chert/chert_valuelist.h,common/document.h,
15539           common/valuelist.h,include/Makefile.mk,include/xapian/derefwrapper.h,
15540           include/xapian/termiterator.h,include/xapian/valueiterator.h:
15541           Reimplement ValueIterator to have reference counted internals.  One
15542           benefit is that Document::Internal no longer need its value_nos map
15543           member.
15545 Thu Oct 16 11:22:13 GMT 2008  Olly Betts <olly@survex.com>
15547         * backends/inmemory/inmemory_database.cc: Fix incorrect method name in
15548           debug messages.
15550 Thu Oct 16 01:34:07 GMT 2008  Olly Betts <olly@survex.com>
15552         * HACKING: Note preference for @ rather than \ to introduce doxygen
15553           commands.
15555 Thu Oct 16 01:21:19 GMT 2008  Olly Betts <olly@survex.com>
15557         * HACKING: Expand section on public/protected/private a little.
15559 Wed Oct 15 11:34:15 GMT 2008  Olly Betts <olly@survex.com>
15561         * include/xapian/database.h: Use std::string() instead of "" as the
15562           default value for std::string method parameters.
15564 Wed Oct 15 03:20:01 GMT 2008  Olly Betts <olly@survex.com>
15566         * backends/Makefile.mk,backends/slowvaluelist.cc,
15567           backends/slowvaluelist.h: Support for (slowly) iterating along a
15568           value stream for backends which don't support streamed values
15569           internally (currently unused).
15571 Tue Oct 14 11:43:42 GMT 2008  Olly Betts <olly@survex.com>
15573         * api/postingsource.cc,backends/inmemory/inmemory_database.cc,
15574           matcher/multimatch.cc: Database::get_document_lazily() now returns
15575           NULL if the document isn't found for an inmemory database.
15576         * include/xapian/database.h: Document the return value better.
15578 Tue Oct 14 03:20:38 GMT 2008  Olly Betts <olly@survex.com>
15580         * api/omdatabase.cc,api/postingsource.cc,include/xapian/database.h,
15581           matcher/multimatch.cc: Add internal
15582           Xapian::Database::get_document_lazily() method and use it in the
15583           matcher and Xapian::PostingSource classes to avoid repeating the
15584           same code lots of times.
15586 Mon Oct 13 23:38:34 GMT 2008  Olly Betts <olly@survex.com>
15588         * HACKING: Rename "Miscellaneous Portability Issues" to "C++
15589           Portability Issues", and add a subsection of that for "Miscellaneous
15590           Portability Issues" with a new note about needing to terminate the
15591           last line of a source file, and a new subsection heading "Header
15592           Portability Issues" for all the header-related stuff.
15594 Sat Oct 11 12:19:38 GMT 2008  Olly Betts <olly@survex.com>
15596         * tests/api_wrdb.cc: If the timer for the first test for bigoaddvalue
15597           reports 0.0 seconds, skip the test as the timer doesn't have fine
15598           enough granularity for this test to be useful (bug#300).
15600 Fri Oct 10 20:40:14 GMT 2008  Olly Betts <olly@survex.com>
15602         * tests/api_wrdb.cc: Reuse XAPIAN_BIN_PATH to avoid hardcoding more
15603           paths, and so this works in a debug build too.
15605 Fri Oct 10 17:52:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15607         * tests/api_wrdb.cc: Patch to use a different path in win32 build
15608           to match the different place that the compiled xapian-check is
15609           placed in.  Should fix bug #301.
15611 Thu Oct 09 05:20:32 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15613         * configure.ac: Change -Wstrict-overflow level to 1 - even level 2
15614           causes a few warnings (notably in chert_table.cc) to appear with
15615           GCC 4.3 which are unreasonably difficult to avoid.
15617 Thu Oct 09 05:04:49 GMT 2008  Olly Betts <olly@survex.com>
15619         * HACKING,configure.ac: Raise autoconf requirement to 2.63.
15621 Wed Oct 08 14:52:03 GMT 2008  Olly Betts <olly@survex.com>
15623         * docs/valueranges.rst: Fix typos in example code.
15624         * docs/valueranges.rst,tests/queryparsertest.cc: Drop superfluous
15625           empty destructor from ValueRangeProcessor subclass.
15627 Wed Oct 08 14:00:04 GMT 2008  Olly Betts <olly@survex.com>
15629         * common/valuelist.h: Add missing get_docid() method.
15631 Wed Oct 08 12:11:57 GMT 2008  Olly Betts <olly@survex.com>
15633         * NEWS: Update from ChangeLog.
15635 Wed Oct 08 12:00:39 GMT 2008  Olly Betts <olly@survex.com>
15637         * backends/Makefile.mk,backends/chert/,backends/database.cc,
15638           backends/valuelist.cc,common/Makefile.mk,common/database.h,
15639           common/valuelist.h,include/xapian/valueiterator.h: The start of
15640           support for iterating along a value stream (currently unused).
15642 Tue Oct 07 10:19:48 GMT 2008  Olly Betts <olly@survex.com>
15644         * configure.ac: Disable -Wconversion for now - it's not useful for
15645           older GCC and is buggy in GCC 4.3.
15647 Tue Oct 07 04:53:41 GMT 2008  Olly Betts <olly@survex.com>
15649         * matcher/queryoptimiser.h: Query::MatchAll no longer gives match
15650           results ranked by increasing document length.
15651         * tests/api_db.cc: Extend matchall1 to be a regression test for this.
15653 Tue Oct 07 01:04:51 GMT 2008  Olly Betts <olly@survex.com>
15655         * matcher/queryoptimiser.cc: Rewrite comment explaining the excess
15656           precision fix.  Drop unnecessary brackets from return to minimise
15657           the diff.
15659 Mon Oct 06 07:24:40 GMT 2008  Olly Betts <olly@survex.com>
15661         * matcher/queryoptimiser.cc: Change the excess precision fix to pass
15662           both values through "volatile double" rather than "float" on
15663           platforms where this matters since the former gives better generated
15664           code as well as more consistent results with other platforms.
15666 Mon Oct 06 07:24:07 GMT 2008  Olly Betts <olly@survex.com>
15668         * tests/internaltest.cc: Fix comment typo.
15670 Mon Oct 06 02:46:39 GMT 2008  Olly Betts <olly@survex.com>
15672         * api/editdistance.cc,api/editdistance.h,api/omdatabase.cc: Pass the
15673           largest edit distance we currently care about into the edit distance
15674           algorithm so it can terminate early once it knows the edit distance
15675           exceeds this.  This shortcut is used quite a lot, but there's no
15676           measurable speed-up in tests on the real world data I have to hand.
15678 Sun Oct 05 12:34:09 GMT 2008  Olly Betts <olly@survex.com>
15680         * matcher/multimatch.cc: Adjust percent_factor instead of min_weight
15681           so that we don't miss some cases, and make the adjustment actually
15682           correspond with the adjustment in omenquire.cc.
15684 Wed Oct 01 14:11:49 GMT 2008  Olly Betts <olly@survex.com>
15686         * backends/alltermslist.cc,common/alltermslist.h: We don't need an
15687           explicit virtual dtor for AllTermsList as it is empty and
15688           AllTermsList inherits from TermList which has one.
15690 Wed Oct 01 13:21:22 GMT 2008  Olly Betts <olly@survex.com>
15692         * common/postlist.h,common/termlist.h: Fix comment typo.
15694 Wed Oct 01 00:12:02 GMT 2008  Olly Betts <olly@survex.com>
15696         * bin/xapian-compact.cc: Add a comment for the previous fix.
15698 Tue Sep 30 22:41:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15700         * bin/xapian-compact.cc: Fix bug: if there are both valuestats and
15701           metadata, don't overwrite the last metadata value with the first
15702           valuestats tag.
15704 Tue Sep 30 20:31:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15706         * configure.ac: Set -Wstrict-overflow to 2 instead of 5, to avoid
15707           unreasonable warnings under GCC 4.3.
15709 Tue Sep 30 09:45:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15711         * api/omdatabase.cc: Add missing include, to compile on GCC 4.3.0.
15713 Mon Sep 29 13:06:42 GMT 2008  Olly Betts <olly@survex.com>
15715         * NEWS: Update from ChangeLog.
15717 Mon Sep 29 05:04:57 GMT 2008  Olly Betts <olly@survex.com>
15719         * backends/chert/chert_version.cc: Add VERSIONFILE_SIZE_LITERAL and
15720           use CompileTimeAssert() to ensure it matches the expression in
15721           VERSIONFILE_SIZE.  It's very rare for the size to change (it's
15722           happened once ever) and allows us to build the error string
15723           literally at compile time.
15725 Sun Sep 28 15:13:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15727         * backends/chert/chert_values.cc: Fix bug in lazy update - ensure
15728           that the document has loaded its values before deleting the old
15729           one (previously, there was an assertion to this effect, but it
15730           didn't actually compile, and was also incorrect).
15731         * tests/api_wrdb.cc: Check that replacing a document with itself
15732           doesn't lose the values - regression test for the bug fixed by
15733           this commit.
15735 Sun Sep 28 14:04:01 GMT 2008  Olly Betts <olly@survex.com>
15737         * backends/chert/chert_values.cc: Fix bug in value updating -
15738           modifyvalues1 now passes for chert.
15740 Sun Sep 28 12:15:14 GMT 2008  Olly Betts <olly@survex.com>
15742         * tests/collate-test: Avoid perl warning when generating files which
15743           don't already exist.
15745 Sat Sep 27 10:36:09 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15747         * tests/api_wrdb.cc: Add test "modifyvalues1" - regression test for
15748           a bug in the streaming values implementation, and also a fairly
15749           thorough test of adding and modifying values in databases.
15751 Fri Sep 26 19:12:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15753         * api/omdatabase.cc: Fix warning with gcc 4.2 about possible signed
15754           overflow, by using an unsigned type for the total.
15756 Fri Sep 26 15:48:39 GMT 2008  Olly Betts <olly@survex.com>
15758         * api/omdatabase.cc: Fixed version of: Avoid the relatively expensive
15759           edit distance computation for a candidate spelling correction when
15760           we can reject the candidate as less good than one we've already seen
15761           by looking at the character frequency histograms.  In a test on
15762           real-world data, this gave an 15% speed-up in queryparsing time
15763           with FLAG_SPELLING_CORRECTION set.  The cheap check rejects 90%
15764           of the words it handles (without the cheap check, the edit distance
15765           check rejects 92%).
15767 Fri Sep 26 14:40:50 GMT 2008  Olly Betts <olly@survex.com>
15769         * bin/xapian-check.cc: Check the structure of the value stream chunks.
15771 Fri Sep 26 12:21:32 GMT 2008  Olly Betts <olly@survex.com>
15773         * tests/api_spelling.cc: Add a regression test for the bug my recently
15774           added and reverted spelling optimisation introduced.
15776 Fri Sep 26 11:55:18 GMT 2008  Olly Betts <olly@survex.com>
15778         * tests/Makefile.am,tests/api_spelling.cc,tests/api_wrdb.cc: Split the
15779           spelling tests out into a separate file.
15781 Fri Sep 26 11:53:45 GMT 2008  Olly Betts <olly@survex.com>
15783         * tests/api_unicode.cc: Capitalise brief file description.
15785 Fri Sep 26 11:31:46 GMT 2008  Olly Betts <olly@survex.com>
15787         * backends/inmemory/inmemory_document.cc,
15788           backends/inmemory/inmemory_document.h: New simpler InMemoryDocument
15789           class with slightly reduced memory footprint, based on
15790           RemoteDocument class.
15792 Fri Sep 26 10:36:02 GMT 2008  Olly Betts <olly@survex.com>
15794         * backends/remote/remote-document.cc,backends/remote/remote-document.h,
15795           common/document.h: Add new files for RemoteDocument class missed
15796           from recent commit.  Pass parameter to set_all_values() by non-const
15797           reference so we can just efficiently swap() the value maps rather
15798           than copying.
15800 Fri Sep 26 10:31:21 GMT 2008  Olly Betts <olly@survex.com>
15802         * api/omdocument.cc,common/document.h: Remove unused method
15803           Xapian::Document::Index::get_all_values().
15805 Fri Sep 26 10:03:17 GMT 2008  Olly Betts <olly@survex.com>
15807         * backends/remote/,common/document.h: Replace NetDocument with a new
15808           simpler RemoteDocument class which just sets the values and data in
15809           its Document::Internal base class.
15811 Fri Sep 26 06:21:08 GMT 2008  Olly Betts <olly@survex.com>
15813         * backends/chert/chert_database.cc,backends/chert/chert_document.cc,
15814           backends/chert/chert_document.h,common/document.h: Overhaul
15815           ChertDocument:  Avoid having a reference-counted pointer to the
15816           database in the subclass as well as the one now in the base class.
15817           Also check the lazy flag before we create a ChertDocument object to
15818           avoid a memory allocation in that code path.  And make the
15819           now-simple constructor inline-able.
15821 Thu Sep 25 17:38:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15823         * Merge lazyupdate branch:
15824         * api/omdocument.cc,backends/chert/chert_database.cc,
15825           backends/chert/chert_database.h,backends/chert/chert_values.cc,
15826           backends/database.cc,common/database.h,common/document.h: Add a
15827           shortcut for calling replace_document() with a document which was
15828           just read from the database.  If the document terms were never
15829           accessed, don't bother updating the termlist, postings and
15830           position lists.  If the data was never accessed, don't bother
15831           updating the data.  If the values were never accessed, don't
15832           bother updating them.  Only fires if we know that the document
15833           hasn't been modified (or deleted) since it was read from the
15834           database, to ensure that the lazy access of the data doesn't have
15835           a visible effect - we enforce this by keeping track of the last
15836           document read with open_document(), and only using the shortcut
15837           if this is the document passed to replace_document, and that
15838           document ID hasn't been passed to replace_document or
15839           delete_document since.
15841           Add a method Database::Internal::invalidate_doc_object() which is
15842           called from the destructor of a document, so that we can reset
15843           the pointer to modify_shortcut_document in ChertWritableDatabase
15844           when this happens.
15846           Document::Internal now keeps a ref-count pointer to the database,
15847           to ensure that the database is valid when invalidate_doc_object()
15848           is called on it.
15850 Thu Sep 25 17:35:07 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15852         * Forward-port from branches/lazyupdate:
15853         * tests/api_wrdb.cc: Extend deldoc5 slightly, to check that the
15854           DocNotFoundError for a deleted document is raised before the
15855           flush, as well as after.  Also, test a few more cases which are
15856           relevant in the lazyupdate scenario.
15858 Thu Sep 25 17:33:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15860         * Forward-port from branches/lazyupdate:
15861         * backends/chert/chert_document.cc,backends/chert/chert_document.h:
15862           Check for existence of a document when opening it by searching
15863           for the document length entry, rather than by reading the record
15864           for the document.  Probably slightly slower if the record is
15865           going to be accessed anyway, but much faster if it isn't (though
15866           benchmarking of this is needed).
15868 Thu Sep 25 14:27:07 GMT 2008  Olly Betts <olly@survex.com>
15870         * Merge valuestreams branch:
15871         * backends/chert/,bin/xapian-check.cc,bin/xapian-compact.cc,
15872           docs/admin_notes.rst: Change the chert backend to store values in a
15873           chunked stream for each value slot to make access more efficient.
15874           The chunked streams and value stats are now stored in the postlist
15875           table while the list of used value slots for each document is stored
15876           in the termlist table, so we no longer need a special table for
15877           values.
15878         * bin/xapian-check.cc,bin/xapian-check-flint.cc:  Don't stop checking
15879           a table after an error in certain cases - instead increment the
15880           error counter and try to continue checking from the next item.
15882 Thu Sep 25 13:50:15 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15884         * matcher/queryoptimiser.cc,tests/api_anydb.cc: Apply fix for
15885           platforms with excess precision - this fixes a potential segfault
15886           on x86 architecture when doing OP_ELITE_SET queries.  Also, add a
15887           regression test.
15889 Thu Sep 25 03:38:24 GMT 2008  Olly Betts <olly@survex.com>
15891         * examples/copydatabase.cc: Also copy user metadata.
15893 Wed Sep 24 17:27:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15895         * api/omdatabase.cc: Back out, for now, Olly's change from
15896           yesterday to avoid some edit distance checks; counting the
15897           frequency of letters doesn't take into account the number of
15898           substitutions, so spelling corrections which involve
15899           substitutions are missed.
15901 Wed Sep 24 12:48:39 GMT 2008  Olly Betts <olly@survex.com>
15903         * unicode/tclUniData.cc: Update to Unicode 5.1 (bug#265).
15904         * tests/api_unicode.cc: Add tests for some of the changes
15905           in Unicode 5.1.
15907 Tue Sep 23 14:58:54 GMT 2008  Olly Betts <olly@survex.com>
15909         * api/omdatabase.cc: Avoid the relatively expensive edit distance
15910           computation for a candidate spelling correction when we can reject
15911           the candidate as less good than one we've already seen by looking
15912           at the character frequency histograms.
15914 Mon Sep 22 09:21:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15916         * Forward-port from branches/lazyupdate:
15917         * backends/chert/chert_postlist.cc: Fix return value of jump_to()
15918           to be true only if the exact item specified was found in the
15919           doclen list (previously also returned true if an item following
15920           the item being searched for was found in the chunk).  Note that
15921           there is no test for this fix included in this forward-port, but
15922           an implicit test is included in the lazyupdate branch, and will
15923           be here when that branch is merged to trunk.
15925 Mon Sep 22 07:58:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15927         * HACKING: Mention that setting XAPIAN_DEBUG_LOG to '-' has a
15928           special effect.
15930 Mon Sep 22 06:27:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15932         * docs/remote_protocol.html: Update documentation of remote
15933           protocol to mention UUID being passed in REPLY_GREETING and
15934           REPLY_UPDATE (added in revision [11369]).
15936 Thu Sep 18 11:52:05 GMT 2008  Olly Betts <olly@survex.com>
15938         * tests/api_wrdb.cc: Fix cursordelbug1 to hopefully work on Microsoft
15939           Windows.
15941 Thu Sep 18 11:50:04 GMT 2008  Olly Betts <olly@survex.com>
15943         * backends/chert/chert_cursor.cc,backends/chert/chert_table.cc,
15944           backends/chert/chert_table.h: More assertions and improved debug
15945           logging coverage.  Use rare() to mark a couple of checks which
15946           almost always have the same result.  Make an assertion about the
15947           level of a Btree block into an always-compiled-in check which throws
15948           an exception, as this isn't a sanity check of internal state.
15950 Thu Sep 18 05:26:27 GMT 2008  Olly Betts <olly@survex.com>
15952         * backends/chert/chert_postlist.cc,backends/flint/flint_postlist.cc:
15953           Fix comment describing format of postlist chunk (collection freq
15954           was missing).
15956 Wed Sep 17 12:38:51 GMT 2008  Olly Betts <olly@survex.com>
15958         * HACKING: Fix typos in XAPIAN_DEBUG_FLAGS documentation.
15960 Sat Sep 13 11:14:02 GMT 2008  Olly Betts <olly@survex.com>
15962         * HACKING,configure.ac: Upgrade libtool requirement to 2.2.6a.
15964 Fri Sep 05 11:40:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15966         * tests/api_replicate.cc: Test that the UUID of a replica is equal
15967           to the UUID of the original database.
15969 Fri Sep 05 09:38:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15971         * include/xapian/database.h,api/omdatabase.cc: Add
15972           Database.get_uuid() which returns a unique identifier for the
15973           database.
15974         * tests/api_anydb.cc: Add test uuid1 to test basic get_uuid()
15975           behaviour.
15976         * common/database.h: Extend documentation comment for get_uuid() a
15977           bit.
15978         * backends/remote/remote-database.cc,common/remote-database.h,
15979           net/remoteserver.cc: Add support for get_uuid() to remote
15980           databases.
15982 Thu Sep 04 11:37:54 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
15984         * tests/Makefile.am: Remove accidentally committed reference to
15985           apitest_sortconsist.txt, which only exists in my local checkout
15986           and in a patch in ticket #216.
15988 Thu Sep 04 04:39:32 GMT 2008  Olly Betts <olly@survex.com>
15990         * HACKING,configure.ac: We now hard require autoconf 2.62, so it's
15991           safe to use AC_TYPE_SSIZE_T.  (bug#135)
15993 Thu Sep 04 04:26:59 GMT 2008  Olly Betts <olly@survex.com>
15995         * configure.ac: Set version to 1.1.0.
15997 Thu Sep 04 03:32:06 GMT 2008  Olly Betts <olly@survex.com>
15999         * AUTHORS,NEWS,configure.ac: Sync with 1.0.8.
16001 Wed Sep 03 15:23:54 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16003         * tests/Makefile.am,tests/api_percentages.cc: Add new test file for
16004           tests related to percentage weights (there are a few around which
16005           could be moved here, and there's another one in the patch in
16006           ticket #216).  Add test in this file which uses a PostingSource
16007           with carefully constructed weights to check the rounding
16008           behaviour for percentage cutoffs.
16010 Wed Sep 03 07:58:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16012         * matcher/multimatch.cc: Adjust min_weight values calculated for
16013           percent_cutoff in the same manner as in omenquire.cc, to allow
16014           for excess precision in the same way.
16016 Wed Sep 03 07:15:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16018         * backends/chert/chert_version.cc: Display numerical value of
16019           correct size of chert version file in error message if size is
16020           incorrect, rather than a complicated expression giving the
16021           correct size.
16023 Tue Sep 02 10:41:46 GMT 2008  Olly Betts <olly@survex.com>
16025         * matcher/multimatch.cc: Remove FIXME for pushing check_at_least
16026           handling into the remote backend, which was done for 1.0.2.
16028 Tue Sep 02 06:48:50 GMT 2008  Olly Betts <olly@survex.com>
16030         * bin/xapian-inspect.cc: Show the help message on start-up.  Correct
16031           the alias for next from ' ' to ''.  Avoid reading outside of input
16032           string when it is empty.  Bug#286.
16034 Tue Sep 02 04:19:34 GMT 2008  Olly Betts <olly@survex.com>
16036         * tests/stemtest.cc: Handle the new supplemental stemming data.
16038 Tue Sep 02 03:05:10 GMT 2008  Olly Betts <olly@survex.com>
16040         * tests/stemtest.cc: Update for new xapian-data directory structure.
16042 Tue Aug 26 09:26:49 GMT 2008  Olly Betts <olly@survex.com>
16044         * common/debuglog.h: Handle logging from ctor, dtor, and
16045           void-returning functions/methods with a separate class
16046           (DebugLogFuncVoid).  Fix outdent handling for non-logged message
16047           types.  Fix detection of active exceptions to check if the exception
16048           was already active when we entered the current function.  This
16049           probably means that "RETURN_VOID" is no longer needed, so comment
16050           it out.
16052 Tue Aug 26 07:34:16 GMT 2008  Olly Betts <olly@survex.com>
16054         * HACKING: Document explicitly that XAPIAN_DEBUG_FLAGS=- gives you all
16055           debug messages.
16057 Tue Aug 26 00:57:32 GMT 2008  Olly Betts <olly@survex.com>
16059         * bin/xapian-check.cc: Fix reversed check for whether a table is in a
16060           flint or chert database.
16062 Mon Aug 25 12:03:36 GMT 2008  Olly Betts <olly@survex.com>
16064         * backends/flint/flint_termlisttable.cc: Remove FIXME about dropping
16065           something if we make an incompatible database version bump - that's
16066           not going to happen now for flint.  Avoid packing doclen for an
16067           empty termlist.  Add explicit cast for char for prev_term.size().
16069 Sun Aug 24 11:42:21 GMT 2008  Olly Betts <olly@survex.com>
16071         * common/Makefile.mk: Fix build with --enable-log=profile.
16073 Sun Aug 24 12:41:22 BST 2008  Olly Betts <olly@survex.com>
16075         * HACKING: Add a bit of discussion of --enable-log=profile.  Tweak
16076           formatting in one place and wording in another.
16078 Sat Aug 23 00:48:40 GMT 2008  Olly Betts <olly@survex.com>
16080         * tests/collate-test: Only update files which have changed to avoid
16081           rebuilding all apitest's source files when only one has changed.
16083 Fri Aug 22 01:02:57 GMT 2008  Olly Betts <olly@survex.com>
16085         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5571"
16086           (no code changes in our modified version).
16088 Fri Aug 22 01:00:15 GMT 2008  Olly Betts <olly@survex.com>
16090         * queryparser/lemon.c: Fix comment typo.
16092 Fri Aug 22 00:55:26 GMT 2008  Olly Betts <olly@survex.com>
16094         * queryparser/lemon.c: Merge upstream "Check-in Number: 5564".
16096 Fri Aug 22 00:44:14 GMT 2008  Olly Betts <olly@survex.com>
16098         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
16099           "Check-in Number: 5488" and "5563".
16100         * queryparser/queryparser.lt: Fix compilation for previous merge
16101           (I fixed it in the generated file before!)
16103 Fri Aug 22 00:07:22 GMT 2008  Olly Betts <olly@survex.com>
16105         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5472".
16107 Thu Aug 21 04:15:41 GMT 2008  Olly Betts <olly@survex.com>
16109         * configure.ac: Remove code which checks for --enable-debug and
16110           --enable-debug-verbose (deprecated since 1.0.0) and gives an error
16111           pointing to the replacements.
16112         * docs/deprecation.rst: Document the replacements here.
16114 Thu Aug 21 00:57:52 GMT 2008  Olly Betts <olly@survex.com>
16116         * common/omdebug.h: Remove DEBUGLINE completely.
16117         * backends/flint/flint_table.cc,backends/inmemory/inmemory_database.cc,
16118           queryparser/queryparser.lt: Replace remaining DEBUGLINE uses.
16119         * backends/inmemory/inmemory_database.cc: Don't need <list>.
16121 Thu Aug 21 00:37:08 GMT 2008  Olly Betts <olly@survex.com>
16123         * common/debuglog.h,common/omdebug.h: Define LOGLINE, etc to no-op
16124           versions when XAPIAN_DEBUG_VERBOSE isn't defined.
16125         * api/,backends/chert/,backends/flint/,
16126           backends/inmemory/inmemory_database.cc,
16127           backends/multi/multi_postlist.cc,backends/multi/multi_termlist.cc,
16128           expand/esetinternal.cc,expand/expandweight.cc,matcher/,
16129           net/remoteconnection.cc: Use LOGLINE or LOGVALUE instead of
16130           DEBUGLINE.
16132 Wed Aug 20 13:33:56 GMT 2008  Olly Betts <olly@survex.com>
16134         * common/debuglog.h: Don't need omtime.h.
16136 Wed Aug 20 06:11:31 GMT 2008  Olly Betts <olly@survex.com>
16138         * examples/quest.cc: Fix to catch QueryParserError instead of const
16139           char * which Xapian < 1.0.0 threw instead.
16141 Wed Aug 20 05:50:26 GMT 2008  Olly Betts <olly@survex.com>
16143         * docs/valueranges.rst: Expand on some sections.
16145 Wed Aug 20 04:43:07 GMT 2008  Olly Betts <olly@survex.com>
16147         * tests/api_nodb.cc: Clarify in comments that this affected 1.0.7.
16149 Wed Aug 20 04:33:22 GMT 2008  Olly Betts <olly@survex.com>
16151         * api/omenquire.cc: Simplify RSet::remove_document() and
16152           RSet::contains() a little.  Fix output of RSet::get_description().
16153         * tests/api_nodb.cc: Add regression test rset4 for
16154           RSet::get_description() fix.
16156 Wed Aug 20 02:45:04 GMT 2008  Olly Betts <olly@survex.com>
16158         * common/omdebug.h: Remove DebugMsg() macro which is no longer used.
16160 Tue Aug 12 05:03:34 GMT 2008  Olly Betts <olly@survex.com>
16162         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
16163           Backport elimination of find_tag() to flint.
16165 Tue Aug 12 04:10:41 GMT 2008  Olly Betts <olly@survex.com>
16167         * backends/chert/chert_table.cc,backends/chert/chert_table.h:
16168           ChertTable::find_tag() is only used by ChertTable::get_exact_entry()
16169           so remove the former folding its code into the latter.
16171 Mon Aug 11 03:06:10 GMT 2008  Olly Betts <olly@survex.com>
16173         * backends/chert/chert_spelling.h,backends/chert/chert_synonym.h:
16174           Remove random closing bracket from a couple of comments.
16176 Mon Aug 11 03:03:19 GMT 2008  Olly Betts <olly@survex.com>
16178         * api/postingsource.cc: Always initialise max_value in the constructor
16179           body for consistency.
16181 Sat Aug 09 09:56:06 GMT 2008  Olly Betts <olly@survex.com>
16183         * tests/api_valuestats.cc: Add valuestats4 as a regression test for
16184           the previous fix.
16186 Sat Aug 09 06:10:49 GMT 2008  Olly Betts <olly@survex.com>
16188         * backends/chert/chert_database.cc,backends/chert/chert_database.h:
16189           Write cached valuestats changes to disk when we automatically flush
16190           changes due to the number of documents indexed.
16192 Wed Aug 06 11:27:29 GMT 2008  Olly Betts <olly@survex.com>
16194         * api/omdocument.cc,backends/chert/chert_document.cc,
16195           backends/chert/chert_document.h,backends/flint/flint_document.cc,
16196           backends/flint/flint_document.h,
16197           backends/inmemory/inmemory_document.cc,
16198           backends/inmemory/inmemory_document.h,
16199           backends/remote/net_document.cc,backends/remote/net_document.h,
16200           common/document.h: Change do_get_all_values() to pass a reference
16201           to the std::map to return the result in rather than returning the
16202           std::map.
16204 Wed Aug 06 07:39:08 GMT 2008  Olly Betts <olly@survex.com>
16206         * docs/replication.rst: Adding missing (C) for new section addded
16207           recently.
16209 Wed Aug 06 06:27:59 GMT 2008  Olly Betts <olly@survex.com>
16211         * backends/alltermslist.cc,backends/chert/,backends/flint/,
16212           backends/inmemory/inmemory_alltermslist.cc,
16213           backends/inmemory/inmemory_alltermslist.h,
16214           backends/multi/multi_alltermslist.cc,common/alltermslist.h,
16215           common/multialltermslist.h: Add a default "not implemented"
16216           implementation of AllTermsList::get_approx_size() and remove the
16217           "not implemented" versions in all the subclasses.  Remove empty
16218           destructors for ChertSpellingTermList, and FlintSpellingTermList.
16219         * api/maptermlist.h,api/omdocument.cc: MapTermList::get_approx_size()
16220           should never be used, so make it "Assert(false); return 0;".
16222 Wed Aug 06 02:24:48 GMT 2008  Olly Betts <olly@survex.com>
16224         * api/omdatabase.cc,backends/multi/multi_alltermslist.cc,
16225           common/multialltermslist.h: Reimplement MultiAllTermsList to use a
16226           heap rather than linearly scanning - operations during iteration
16227           should now be O(log(n)) rather than O(n) where n is the number of
16228           databases.
16230 Tue Aug 05 23:50:19 GMT 2008  Olly Betts <olly@survex.com>
16232         * tests/Makefile.am: Fix "make clean" to remove cached databases again
16233           and "make check" to remove cached databases like the previous change
16234           aimed to do.
16236 Tue Aug 05 23:48:52 GMT 2008  Olly Betts <olly@survex.com>
16238         * tests/api_db.cc: Use TEST_EQUAL(a, b) rather than TEST(a == b).
16240 Tue Aug 05 12:44:58 GMT 2008  Olly Betts <olly@survex.com>
16242         * common/alltermslist.h: Fix parameter name in doxygen comment.
16244 Tue Aug 05 06:28:15 GMT 2008  Olly Betts <olly@survex.com>
16246         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
16247           Don't generate a changeset file for the first revision of a database
16248           (since we might as well just send the whole database) - addresses
16249           part of bug#278.  Clean up exceptions to pass errno in the errno
16250           parameter rather than incorporating strerror(errno) in the message
16251           parameter.
16253 Tue Aug 05 06:00:11 GMT 2008  Olly Betts <olly@survex.com>
16255         * tests/api_replicate.cc: Remove "sleep(1);" from testcase replicate1
16256           which is no longer required now we generate proper UUIDs.
16258 Tue Aug 05 03:07:11 GMT 2008  Olly Betts <olly@survex.com>
16260         * api/replication.cc,include/xapian/replication.h: Remove
16261           DatabaseReplica::get_parameter() and set_parameter() as they're no
16262           longer used for storing the database UUID, and Richard said the
16263           thinking behind wanting them was "flawed".
16265 Tue Aug 05 02:03:24 GMT 2008  Olly Betts <olly@survex.com>
16267         * backends/chert/chert_version.cc: Comment tweak.
16269 Tue Aug 05 02:02:29 GMT 2008  Olly Betts <olly@survex.com>
16271         * api/replication.cc,backends/flint/flint_database.cc,common/utils.cc,
16272           common/utils.h: Use the UUID stored by the backend rather than
16273           storing it ourselves as a database replica parameter.
16275 Mon Aug 04 14:58:21 GMT 2008  Olly Betts <olly@survex.com>
16277         * backends/flint/flint_database.cc,backends/flint/flint_version.cc,
16278           backends/flint/flint_version.h: Generate a UUID when a new flint
16279           database is created, and lazily generate one for existing flint
16280           databases which don't have one.  Store the UUID in a new "uuid"
16281           file in the database directory to avoid having to change the
16282           flint database format incompatibly.
16284 Mon Aug 04 14:13:53 GMT 2008  Olly Betts <olly@survex.com>
16286         * backends/chert/chert_database.cc,backends/chert/chert_version.cc,
16287           backends/chert/chert_version.h,configure.ac: Generate a UUID when
16288           a chert database is created, and store it in the version file.
16290 Mon Aug 04 12:16:54 GMT 2008  Olly Betts <olly@survex.com>
16292         * backends/chert/chert_version.cc: Make exception messages more
16293           consistent.
16295 Mon Aug 04 12:15:14 GMT 2008  Olly Betts <olly@survex.com>
16297         * backends/chert/chert_database.cc,backends/chert/chert_version.cc,
16298           backends/chert/chert_version.h: Remove the code to handle upgrading
16299           flint versions >= 200704230 and < 200709120 as it's just dead code
16300           for chert.
16302 Sun Aug 03 14:34:31 GMT 2008  Olly Betts <olly@survex.com>
16304         * api/replication.cc: Track the replica numbers using an int rather
16305           than two strings.  Eliminate two racey uses of file_exists().
16307 Sun Aug 03 11:37:06 GMT 2008  Olly Betts <olly@survex.com>
16309         * docs/replication.rst: Add section on backend support.  Make FIXME a
16310           comment.  Fix erroneous reference to '"-h" parameter'.
16312 Sun Aug 03 11:28:27 GMT 2008  Olly Betts <olly@survex.com>
16314         * api/replication.cc,tests/harness/testrunner.cc: Make replication
16315           work for the chert backend.
16317 Sat Aug 02 16:47:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16319         * include/xapian/enquire.h: Correct documentation comment (iterator
16320           doesn't return terms, it returns mset items).
16322 Sat Aug 02 14:16:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16324         * docs/admin_notes.rst: Fix a typo.
16326 Sat Aug 02 14:06:37 GMT 2008  Olly Betts <olly@survex.com>
16328         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc:
16329           Fix comment typo in previous commit.
16331 Sat Aug 02 13:04:05 GMT 2008  Olly Betts <olly@survex.com>
16333         * backends/chert/chert_cursor.cc,backends/flint/flint_cursor.cc: Fix
16334           FlintCursor::del() and ChertCursor::del() to leave the cursor on the
16335           next key when iterating over the unflushed revision (previously the
16336           cursor would end up an extra key along in this case).  (Bug#287)
16337         * tests/api_wrdb.cc: Add regression test cursordelbug1.
16339 Sat Aug 02 05:09:38 GMT 2008  Olly Betts <olly@survex.com>
16341         * api/replication.cc,common/utils.cc,common/utils.h: Change
16342           removedir() to just return if passed a non-existent path and
16343           document this.  Make use of this to avoid having to call
16344           dir_exists() before remove_dir().
16346 Sat Aug 02 04:43:45 GMT 2008  Olly Betts <olly@survex.com>
16348         * tests/api_db.cc,tests/apitest.cc: Make use of new
16349           BackendManager::get_database_path() to eliminate knowledge of
16350           BackendManagerFlint's implementation from test stubdb1.  Put the
16351           stubdb files in a .stub subdirectory and don't remove them after
16352           each test to aid debugging failing tests.  Also now run stubdb tests
16353           under chert and multi backends.  Add more stubdb tests for the
16354           recently added features.
16356 Sat Aug 02 04:39:08 GMT 2008  Olly Betts <olly@survex.com>
16358         * tests/harness/: Adjust the BackendManager interface to reduce code
16359           duplication in subclasses - for backends where the concept of a
16360           path to the database makes sense, we now support a
16361           get_database_path() method and use this in the default
16362           implementation of get_database() in the base class.
16364 Sat Aug 02 04:36:48 GMT 2008  Olly Betts <olly@survex.com>
16366         * tests/apitest.h: Use std::string() in preference to "".
16368 Sat Aug 02 04:35:13 GMT 2008  Olly Betts <olly@survex.com>
16370         * backends/dbfactory.cc: Fix handling of new "inmemory" type in stub
16371           databases.
16373 Sat Aug 02 01:49:35 GMT 2008  Olly Betts <olly@survex.com>
16375         * tests/Makefile.am: Remove the cached test databases in before
16376           running the testsuite by making check-local do the same as
16377           clean-local.
16379 Sat Aug 02 01:42:36 GMT 2008  Olly Betts <olly@survex.com>
16381         * backends/dbfactory.cc: Add support for "inmemory" to stub database
16382           files (it's useful now they can be writable).  Don't just ignore
16383           lines with no spaces in in stub database files.
16385 Thu Jul 31 13:13:30 GMT 2008  Olly Betts <olly@survex.com>
16387         * backends/Makefile.mk,backends/database.cc,backends/dbfactory.cc,
16388           common/database.h,include/xapian/dbfactory.h: Add new
16389           Auto::open_stub() overload which opens a stub database file
16390           containing a single entry as a WritableDatabase.  Move the
16391           non-remote database factory API functions from backends/database.cc
16392           to new file backends/dbfactory.cc, leaving the former solely for
16393           methods of Database::Internal.  A stub database file is now allowed
16394           to contain no database entries, which results in an empty Database
16395           object (this avoids user code having to special case to handle "0 or
16396           more" databases).
16397         * tests/api_nodb.cc: Tidy up #include directives.  Enhance nosuchdb1
16398           to check that we get a reasonable error message - previously we
16399           got "Couldn't detect type of database".
16400         * include/xapian/dbfactory.h: Improve doxygen comment for
16401           InMemory::open().
16403 Thu Jul 31 09:36:41 GMT 2008  Olly Betts <olly@survex.com>
16405         * tests/api_replicate.cc: This is a new file, so use <cstdlib> rather
16406           than <stdlib.h>.
16408 Wed Jul 30 23:10:19 GMT 2008  Olly Betts <olly@survex.com>
16410         * backends/database.cc: Bad lines in a stub file were being ignored
16411           after we'd seen a good entry.
16412         * tests/api_db.cc: Add regression test.
16414 Wed Jul 30 14:42:04 GMT 2008  Olly Betts <olly@survex.com>
16416         * generate-exceptions.in: Use std::string() in preference to "".
16418 Tue Jul 29 23:55:21 GMT 2008  Olly Betts <olly@survex.com>
16420         * AUTHORS: Add Henrik Brix Andersen.
16422 Tue Jul 22 06:01:44 GMT 2008  Olly Betts <olly@survex.com>
16424         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
16425           Eliminate other_base_letter member of FlintTable - its value can
16426           always be easily determined from base_letter.
16428 Mon Jul 21 12:33:54 GMT 2008  Olly Betts <olly@survex.com>
16430         * xapian-config.in: Add bug report URL to xapian-config --help output.
16432 Mon Jul 21 11:55:18 GMT 2008  Olly Betts <olly@survex.com>
16434         * configure.ac: Put the bug report URL as the third parameter to
16435           AC_INIT.  Add proper m4 quoting in a few places (nowhere that
16436           should actually change behaviour).
16438 Mon Jul 21 01:03:12 GMT 2008  Olly Betts <olly@survex.com>
16440         * tests/apitest.cc,tests/harness/testsuite.cc,
16441           tests/harness/testsuite.h: Report subtotals per backend, rather than
16442           per testgroup per backend to make the output much clearer to scan.
16444 Mon Jul 21 00:36:07 GMT 2008  Olly Betts <olly@survex.com>
16446         * tests/apitest.cc: Use startswith().
16448 Sun Jul 20 14:16:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16450         * tests/harness/testsuite.h: Add missing "iomanip" header needed
16451           for setprecision calls.
16453 Sun Jul 20 11:35:35 GMT 2008  Olly Betts <olly@survex.com>
16455         * include/xapian/enquire.h,include/xapian/matchspy.h,
16456           include/xapian/valueiterator.h: Remove explicit empty non-virtual
16457           destructors since the compiler will create them by default anyway.
16459 Sun Jul 20 10:18:52 GMT 2008  Olly Betts <olly@survex.com>
16461         * NEWS: Update from ChangeLog.
16463 Sun Jul 20 10:09:36 GMT 2008  Olly Betts <olly@survex.com>
16465         * Forward-port change from branches/1.0:
16466         * api/omenquire.cc: Fix percentage calculation to cope with excess
16467           precision on x86.  Fix method name for convert_to_percent_internal
16468           in debug logging.
16470 Sun Jul 20 09:13:32 GMT 2008  Olly Betts <olly@survex.com>
16472         * backends/flint/,bin/xapian-check-flint.cc,bin/xapian-check-flint.h,
16473           bin/xapian-compact.cc: Store the tablename in FlintTable as a const
16474           char * - it's a constant string and std::string adds a needless
16475           space overhead.
16477 Sun Jul 20 09:10:49 GMT 2008  Olly Betts <olly@survex.com>
16479         * bin/xapian-check.cc: Follow-on fix for last change - we need to use
16480           strcmp() to compare C strings.
16482 Sun Jul 20 07:09:38 GMT 2008  Olly Betts <olly@survex.com>
16484         * backends/chert/,bin/xapian-check.cc: Store the tablename in
16485           ChertTable as a const char * - it's a constant string and
16486           std::string adds a needless space overhead.
16488 Sat Jul 19 14:19:58 GMT 2008  Olly Betts <olly@survex.com>
16490         * backends/chert/chert_database.cc,backends/chert/chert_values.cc,
16491           backends/chert/chert_values.h: Fix WritableDatabase::add_document()
16492           and replace_document() not to be O(n*n) in the number of values in
16493           the new document.
16494         * backends/flint/flint_database.cc,backends/flint/flint_values.cc,
16495           backends/flint/flint_values.h: Backport fix to flint.
16496         * tests/api_wrdb.cc: Add testcase bigoaddvalue to make sure we don't
16497           regress to O(n*n) (or worse!)
16499 Fri Jul 18 13:24:43 GMT 2008  Olly Betts <olly@survex.com>
16501         * tests/api_wrdb.cc: Rewrite lazytablebug1 testcase to avoid having
16502           to run xapian-compact.
16504 Fri Jul 18 11:59:42 GMT 2008  Olly Betts <olly@survex.com>
16506         * backends/chert/chert_table.cc: Fix handling of a table created
16507           lazily after the database has had commits, and which is then
16508           cursored while still in sequential mode.
16509         * backends/flint/flint_table.cc: Backport fix to flint.
16510         * tests/api_wrdb.cc: Add testcase lazytablebug1.
16512 Fri Jul 18 02:52:55 GMT 2008  Olly Betts <olly@survex.com>
16514         * tests/api_wrdb.cc: Enable test crashrecovery1 for chert.  Finish off
16515           unfinished comment.
16517 Fri Jul 18 02:38:22 GMT 2008  Olly Betts <olly@survex.com>
16519         * tests/api_wrdb.cc,tests/harness/testrunner.cc,
16520           tests/harness/testrunner.h: Add "synonyms" test backend property
16521           and use it to decide where to run synonym tests so they get run on
16522           chert too.  Move virtual TestRunner destructor out of the header.
16523           Don't skip all the spelling tests on chert.
16525 Fri Jul 18 00:56:17 GMT 2008  Olly Betts <olly@survex.com>
16527         * tests/api_wrdb.cc: Eliminate literal top-bit-set characters.
16529 Fri Jul 18 00:40:06 GMT 2008  Olly Betts <olly@survex.com>
16531         * backends/chert/chert_values.cc: Kill superfluous else tokens.
16533 Thu Jul 17 13:00:55 GMT 2008  Olly Betts <olly@survex.com>
16535         * backends/chert/chert_table.cc,backends/chert/chert_table.h:
16536           Eliminate other_base_letter member of ChertTable - its value can
16537           always be easily determined from base_letter.
16539 Thu Jul 17 12:24:19 GMT 2008  Olly Betts <olly@survex.com>
16541         * backends/chert/chert_database.cc: Add space after catch for
16542           consistency.
16544 Thu Jul 17 11:51:57 GMT 2008  Olly Betts <olly@survex.com>
16546         * examples/copydatabase.cc: Use C++ forms of C headers.  Only treat
16547           '\' as a directory separator on platforms where it is.  Update
16548           counter every 13 counting up to the end so that the digits all
16549           "rotate" and the counter ends up on the exact total.
16551 Wed Jul 16 10:10:32 GMT 2008  Olly Betts <olly@survex.com>
16553         * tests/perftest/perftest.cc: Use uname() or gethostname() to get the
16554           hostname on Unix, rather than piping output from uname -n.  Use
16555           startswith() where appropriate.  Prefer resize() and erase() to
16556           assigning a string a substring of itself.  Make internal functions
16557           static.  Prefer string() to "".  Fold sed | sed and grep | sed into
16558           single sed invocations.
16560 Wed Jul 16 05:16:00 GMT 2008  Olly Betts <olly@survex.com>
16562         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
16563           "Check-in Number: 5404" and "5405".
16565 Wed Jul 16 04:48:45 GMT 2008  Olly Betts <olly@survex.com>
16567         * NEWS: Sync with 1.0.7 release.  Start to clean up ChangeLog entry
16568           pile.
16570 Mon Jul 14 05:13:55 GMT 2008  Olly Betts <olly@survex.com>
16572         * queryparser/lemon.c: Fix a typo, remove "\n" from the end of
16573           ErrorMsg() calls since it will get stripped anyway, and escape
16574           literal '%' in ErrorMsg() third arguments.
16576 Sun Jul 13 13:04:58 GMT 2008  Olly Betts <olly@survex.com>
16578         * queryparser/lemon.c: Update note of upstream version we're synced
16579           against.
16581 Sun Jul 13 12:56:58 GMT 2008  Olly Betts <olly@survex.com>
16583         * queryparser/lemon.c: Tweak previous merged patch so that we still
16584           get #line directives for code in %include directives.
16586 Sun Jul 13 12:54:03 GMT 2008  Olly Betts <olly@survex.com>
16588         * queryparser/lemon.c: Merge upstream "Check-in Number: 5335".
16589           Reduces the size of the stripped object file for
16590           queryparser_internal.cc by about 0.5%.
16592 Sun Jul 13 12:32:06 GMT 2008  Olly Betts <olly@survex.com>
16594         * queryparser/lemon.c: Fix typo in comment.
16596 Sun Jul 13 12:30:38 GMT 2008  Olly Betts <olly@survex.com>
16598         * queryparser/lemon.c: Merge upstream "Check-in Number: 5334".  No
16599           change to the generated code in our case.
16601 Sun Jul 13 12:24:13 GMT 2008  Olly Betts <olly@survex.com>
16603         * configure.ac: Add missing hard requirement for libtool 2.2.4.
16605 Sun Jul 13 12:09:40 GMT 2008  Olly Betts <olly@survex.com>
16607         * configure.ac,HACKING: Hard require autoconf 2.62 and automake 1.10.1.
16608           Move all information about particular autoconf and automake versions
16609           to HACKING.
16610         * configure.ac: Use LT_INIT in preference to AC_PROG_LIBTOOL.  On
16611           Linux and k*bsd-gnu, override libtool's link_all_deplibs_CXX to
16612           "no".  On Linux, override libtool's sys_lib_dlsearch_path_spec to a
16613           list generated in a more reliable way which includes *all* the
16614           default directories.  Remove workaround which sets docdir for
16615           autoconf < 2.60 since we now require 2.62.
16616         * xapian-core.spec.in: We no longer need to run autoreconf to work
16617           around libtool's incomplete sys_lib_dlsearch_path_spec or to pick
16618           up distro-specific patches for link_all_deplibs.
16620 Sun Jul 13 11:33:33 GMT 2008  Olly Betts <olly@survex.com>
16622         * Makefile.am: No need to explicitly list m4/*.m4 in EXTRA_DIST as
16623           automake will automatically ship any such files which are needed.
16625 Sun Jul 13 09:15:34 GMT 2008  Olly Betts <olly@survex.com>
16627         * api/omenquire.cc: Back out the rounding of percentages change (at
16628           least for now), as it makes percentage cut-offs work inconsistently.
16629         * tests/api_anydb.cc: Add test pctcutoff3 which demonstrates the issue.
16631 Sun Jul 13 07:01:02 GMT 2008  Olly Betts <olly@survex.com>
16633         * include/xapian/enquire.h: Fix documentation comment for
16634           MSet::get_rank() - the 'document judged "most relevant" will have
16635           rank of 0' only when ordering primarily by relevance.
16637 Sun Jul 13 06:17:13 GMT 2008  Olly Betts <olly@survex.com>
16639         * matcher/multimatch.cc: Tweak layout (makes the backport diff
16640           much smaller and clearer, and reduces indentation by a level for a
16641           chunk of code).
16643 Fri Jul 11 13:44:56 GMT 2008  Olly Betts <olly@survex.com>
16645         * tests/harness/testutils.cc: Fix typos in recent improved output.
16647 Fri Jul 11 13:04:41 GMT 2008  Olly Betts <olly@survex.com>
16649         * matcher/multimatch.cc: Collect up all the scaling factors we apply
16650           to the estimated number of matches and apply them in one go to avoid
16651           rounding the result more than once.
16653 Fri Jul 11 12:21:11 GMT 2008  Olly Betts <olly@survex.com>
16655         * tests/api_anydb.cc: Add testcase for percent cutoff plus collapsing
16656           which most likely would have failed before Richard's recent fix
16657           for the lower bound with collapsing and a matchdecider.
16659 Fri Jul 11 05:30:02 GMT 2008  Olly Betts <olly@survex.com>
16661         * backends/database.cc: Add support for XAPIAN_PREFER_CHERT
16662           environmental variable.
16664 Thu Jul 10 22:21:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16666         * api/postingsource.cc: Fix skip_to() so that it doesn't advance if
16667           it's already in a suitable position.
16668         * include/xapian/postingsource.h: Specify that skip_to() should
16669           stay in the same position if the current position is equal to
16670           the docid argument of skip_to().
16671         * tests/api_db.cc: Add valueweightsource3 to check that skip_to()
16672           stays in the same position in this case.
16674 Thu Jul 10 13:14:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16676         * api/postingsource.cc: Performance improvement - open documents
16677           lazily (using the internal interface) so that we don't access
16678           the record table for each one - we now just access the value
16679           table.  Leads to considerable speed up for me (of the order of 5
16680           times faster).
16682 Thu Jul 10 09:49:39 GMT 2008  Olly Betts <olly@survex.com>
16684         * HACKING: Overhaul the sections on building from SVN.  Remove ':'
16685           from the end of headings.
16687 Wed Jul 09 10:43:01 GMT 2008  Olly Betts <olly@survex.com>
16689         * configure.ac: The workaround to avoid probe code for F77, GCJ, and
16690           RC being added to configure is no longer required now that we're
16691           using libtool 2.2 so remove it.
16693 Wed Jul 09 09:40:43 GMT 2008  Olly Betts <olly@survex.com>
16695         * Makefile.am,acinclude.m4,autoconf/dir_contents,
16696           autoconf/rjb_find_stlport.m4,autoconf/type_socklen_t.m4,
16697           m4/dir_contents,m4/rjb_find_stlport.m4,m4/type_socklen_t.m4: Move
16698           the m4 macros which we ship for building configure from into the m4
16699           subdirectory and remove acinclude.m4 - now aclocal will pull in the
16700           required macros automatically.
16702 Wed Jul 09 09:14:31 GMT 2008  Olly Betts <olly@survex.com>
16704         * Makefile.am: Update for m4 -> m4-macros change.
16706 Wed Jul 09 09:11:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16708         * matcher/externalpostlist.cc: Fix segfault if get_maxweight() is
16709           called when the postlist has reached end.  This happens if the
16710           end is reached during decay of an AND_MAYBE postlist to an AND.
16711         * common/postlist.h,matcher/: Add comments documenting that
16712           recalc_maxweight() may be called after the postlist has reached
16713           the end, and noting why this is safe in various cases.
16715 Wed Jul 09 09:02:08 GMT 2008  Olly Betts <olly@survex.com>
16717         * m4-macros/dir_contents,m4-macros/xapian.m4,m4/dir_contents,
16718           m4/xapian.m4: Move xapain.m4 to a new subdirectory (m4-macros) since
16719           libtoolize now installs m4 files into subdirectory m4 which we don't
16720           really want picking up by applications building against an
16721           uninstalled xapian-core.
16723 Wed Jul 09 08:03:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16725         * Makefile.am,m4/dir_contents,xapian.m4: Move xapian.m4 back into
16726           the m4 subdirectory.  For uninstalled builds, we need xapian.m4
16727           to be in a directory without any other .m4 files, or we'll be
16728           likely to pull in the wrong versions of other macros.  The top
16729           level directory contains aclocal.m4 and acinclude.m4, so isn't
16730           suitable for this.  Also, the xapian-bindings and omega
16731           compilations hadn't been updated with the new xapian.m4 location,
16732           so this fixes the build for them.
16734 Wed Jul 09 07:17:38 GMT 2008  Olly Betts <olly@survex.com>
16736         * Makefile.am,configure.ac: Use AC_CONFIG_MACRO_DIR and
16737           ACLOCAL_AMFLAGS as libtoolize 2.2.4 recommends.
16739 Wed Jul 09 06:37:21 GMT 2008  Olly Betts <olly@survex.com>
16741         * acinclude.m4: Remove reference to definedir.m4.
16743 Wed Jul 09 05:32:24 GMT 2008  Olly Betts <olly@survex.com>
16745         * Makefile.am,m4/dir_contents,m4/xapian.m4,xapian.m4: Move xapian.m4
16746           to the top level rather than devoting a whole directory to a single
16747           file.
16749 Wed Jul 09 05:23:02 GMT 2008  Olly Betts <olly@survex.com>
16751         * Makefile.am,autoconf/definedir.m4,configure.ac: AC_DEFINE_DIR()
16752           hasn't been used for years so remove it.
16754 Wed Jul 09 02:32:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16756         * api/postingsource.cc,include/xapian/postingsource.h: Add an
16757           alternative constructor for ValueWeightPostingSource which allows
16758           the upper bound on the weights stored to be specified manually.
16759           This is useful for database formats like flint which don't have
16760           an upper bound available.  It could conceivably also be useful if
16761           you know that a query will only be accessing a subset of
16762           documents for which you know a more precise upper bound than the
16763           database-wide upper bound.
16765 Wed Jul 09 01:59:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16767         * matcher/externalpostlist.cc: Add DEBUGCALL macros to enable
16768           easier debugging.
16770 Mon Jul 07 12:40:20 GMT 2008  Olly Betts <olly@survex.com>
16772         * HACKING,NEWS: Update to reflect the autotools now being in the SVN
16773           tree, and the versions we are now bootstrapping with.
16774         * NEWS: Update from ChangeLog.
16776 Sun Jul 06 22:59:04 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16778         * matcher/multimatch.cc,matcher/remotesubmatch.cc,
16779           matcher/remotesubmatch.h: Apply patch from ticker #279 to improve
16780           performance of matches with multiple remote databases.  This adds
16781           a special case for the top match being from a remote database, to
16782           avoid accessing the termlist to calculate the percentage scaling
16783           factor.
16785 Sun Jul 06 22:55:17 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16787         * api/omenquire.cc: When calculating percentages, round to the
16788           nearest integer, rather than rounding down.  There was a FIXME
16789           about this, but no explanation of why it hadn't already been
16790           done, and I can see no bad side effects so far.  The most obvious
16791           positive effect is that queries which should get precisely 100%
16792           will no longer be assigned 99% due to rounding errors.
16794 Sun Jul 06 22:48:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16796         * tests/api_anydb.cc: Add new test, topercent2, checking the
16797           percentage values returned by standard searches, both against
16798           known current values for some of the hits, and against a search
16799           with a "local" backend.  Also, in rsetmultidb1, test the return
16800           value of mset_range_is_same_weights().
16801         * tests/api_db.cc: In rsetmultidb2, test the return value of
16802           mset_range_is_same_weights().
16804 Sun Jul 06 22:46:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16806         * tests/harness/testutils.cc,tests/harness/testutils.h: Add
16807           function to test if two mset ranges have the same percentages,
16808           and slightly improve the messages on failure of the mset range
16809           comparison tests.
16811 Fri Jul 04 23:31:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16813         * NEWS: Swap two words to make a sentence make sense.
16815 Fri Jul 04 11:40:13 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16817         * matcher/multimatch.cc: Fix calculation of lower bound when
16818           collapsing and match deciders are used.  (Only tended to manifest
16819           when the collapsing threw away a lot of documents, and when also
16820           using a custom sort order, but I don't think that was required.)
16821           Also, perform the adjustments due to percentage cutoffs after the
16822           other adjustments, to avoid the lower bound setting for
16823           collapsing overriding the lower bound from the percentage cutoff.
16824         * tests/harness/index_utils.cc: Add a value to value slot 12, which
16825           only has 5 different values, for testing this bug.
16826         * tests/api_db.cc: Add regression test for calculation of the lower
16827           bound.
16829 Fri Jul 04 10:24:16 GMT 2008  Olly Betts <olly@survex.com>
16831         * Makefile.am,bin/Makefile.mk,examples/Makefile.mk: Remove
16832           extra_cleandirs as automake 1.10.1 fixes the bug which it was working
16833           around.
16835 Fri Jul 04 04:36:59 GMT 2008  Olly Betts <olly@survex.com>
16837         * HACKING: Synchronise tiny change from branches/1.0 which isn't
16838           on trunk for some reason.
16840 Fri Jul 04 04:35:19 GMT 2008  Olly Betts <olly@survex.com>
16842         * HACKING: Bootstrap with newer versions of the autotools:
16843           + autoconf 2.61 -> 2.62: faster
16844           + automake 1.10 -> 1.10.1: "make clean" cleans all .libs
16845             directories.
16846           + libtool 1.5.24 -> 2.2.4: many improvements; faster.
16848 Thu Jul 03 03:17:42 GMT 2008  Olly Betts <olly@survex.com>
16850         * docs/glossary.rst,docs/intro_ir.html: Improve intro_ir a bit, and
16851           link to the definition of RSet in the glossary.
16853 Thu Jul 03 01:30:56 GMT 2008  Olly Betts <olly@survex.com>
16855         * examples/quest.cc: Output get_description() of the parsed query.
16857 Sun Jun 29 18:56:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16859         * matcher/multimatch.cc: Rename percent_factor variable, used here
16860           as part of the percent_cutoff mechanism, to make its purpose
16861           clearer, and to avoid confusing it with percent_scale in this
16862           file, and percent_factor used elsewhere in matcher/.
16864 Sat Jun 28 21:51:42 GMT 2008  Olly Betts <olly@survex.com>
16866         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Disable
16867           "JAVADOC_AUTOBRIEF" since we always try to write a brief
16868           description explicitly, and it causes problems in some cases.
16870 Sat Jun 28 21:32:21 GMT 2008  Olly Betts <olly@survex.com>
16872         * common/: Fix typos in doxygen comments.
16874 Sat Jun 28 10:33:06 GMT 2008  Olly Betts <olly@survex.com>
16876         * languages/stem.cc: Add "nl" for selecting the Dutch stemmer, which
16877           was accidentally missing from the list of language codes recognised.
16878           Reported by Joey Hess in Debian bug #484458.
16879         * tests/api_nodb.cc: Extend stemlangs1 to check that all the language
16880           codes work, and so does Stem("").
16882 Fri Jun 27 00:27:31 GMT 2008  Olly Betts <olly@survex.com>
16884         * NEWS: Update from ChangeLog and against 1.0 branch.
16886 Thu Jun 26 17:17:41 GMT 2008  Olly Betts <olly@survex.com>
16888         * net/remoteconnection.cc: The "already done" check in do_close() is
16889           no longer useful, so remove it.  Shrink the try block to only cover
16890           the call to send_message().
16892 Thu Jun 26 08:19:41 GMT 2008  Olly Betts <olly@survex.com>
16894         * net/remoteconnection.cc: Don't bother to send MSG_SHUTDOWN for a
16895           read-only Database - just closing the connection is enough.
16897 Thu Jun 26 04:49:06 GMT 2008  Olly Betts <olly@survex.com>
16899         * backends/chert/chert_btreebase.cc: Don't need <string.h> as well as
16900           <cstring>.
16901         * backends/flint/flint_btreebase.cc,bin/xapian-replicate-server.cc:
16902           Prefer <cXXX> to <XXX.h>.
16904 Tue Jun 24 04:31:10 GMT 2008  Olly Betts <olly@survex.com>
16906         * tests/harness/testsuite.cc: Use resize() to truncate a string.
16908 Tue Jun 24 04:23:59 GMT 2008  Olly Betts <olly@survex.com>
16910         * net/remoteconnection.cc: Fill in a guess at the __WIN32__ version of
16911           the code needed in RemoteConnection::do_close().
16913 Tue Jun 24 04:06:02 GMT 2008  Olly Betts <olly@survex.com>
16915         * net/progclient.cc: Fix debug logging for __WIN32__.
16917 Tue Jun 24 03:11:09 GMT 2008  Olly Betts <olly@survex.com>
16919         * net/remoteserver.cc: Just delete the Database * pointer db.  The
16920           Database dtor is virtual, so it's fine to delete a WritableDatabase
16921           via a Database * pointer.
16923 Tue Jun 24 01:29:12 GMT 2008  Olly Betts <olly@survex.com>
16925         * backends/remote/remote-database.cc,common/remoteconnection.h,
16926           net/remoteconnection.cc,net/replicatetcpclient.cc: Wait for the
16927           connection to close rather than using a different shutdown message
16928           which requires a reply.  Mostly this is more backport-friendly, but
16929           it also avoids a message reply (albeit it not in a performance
16930           sensitive situation).  Needs implementing for __WIN32__.
16932 Tue Jun 24 01:07:16 GMT 2008  Olly Betts <olly@survex.com>
16934         * net/remoteserver.cc: Unwrap comment.
16936 Tue Jun 24 00:52:02 GMT 2008  Olly Betts <olly@survex.com>
16938         * net/remoteserver.cc: Kill a blank line.
16940 Tue Jun 24 00:49:50 GMT 2008  Olly Betts <olly@survex.com>
16942         * backends/remote/remote-database.cc,common/remoteconnection.h,
16943           common/remoteprotocol.h,docs/remote_protocol.html,
16944           net/remoteconnection.cc,net/remoteserver.cc,
16945           net/replicatetcpclient.cc: Revert r10713 in preparation for applying
16946           an alternative fix.
16948 Mon Jun 23 21:51:42 GMT 2008  Olly Betts <olly@survex.com>
16950         * HACKING: Expand list of keywords for brace cuddling.  Add rationale.
16952 Mon Jun 23 01:53:03 GMT 2008  Olly Betts <olly@survex.com>
16954         * tests/queryparsertest.cc: Cuddle braces after for loops for
16955           consistency with the rest of the code.  Use string::resize() to
16956           shrink a string rather than assigning the result of substr(0, x).
16957         * HACKING: Explicitly document that braces should be cuddled after
16958           control flow structures.
16960 Mon Jun 23 01:34:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16962         * tests/perftest/perftest_matchdecider.cc: Reworked performance
16963           test to include a test of an alldocspostingiterator, and to only
16964           rebuild the database involved if it's not up-to-date.
16966 Mon Jun 23 01:20:25 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16968         * common/valuestats.h: Add missing #include.
16970 Mon Jun 23 01:10:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16972         * bin/xapian-compact.cc: Add support for the valuestats which are
16973           now held in the value table for chert.
16975 Sun Jun 22 23:44:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16977         * backends/chert/: Change ChertAllDocsPostList to inherit from
16978           ChertPostList and use the doclen list from the posting table
16979           rather than using the termlist table.  This helps towards making
16980           the termlist table optional, reduces the amount of data read in
16981           the process of iterating through an alldocs postlist, and can
16982           make a massive difference in performance: I've measured the time
16983           to iterate through all the documents in a 1000000 document
16984           database, and the patch speeds this operation up by a factor of
16985           6.
16987           Add `keep_reference` parameter to the ChertPostList constructor,
16988           instead of not keeping a reference if the term is empty.
16989           ChertAllDocsPostList uses this to keep a reference to the
16990           database while using an empty term.
16992           Add ChertAllDocsModifiedPostList class, inspired by
16993           ChertModifiedPostList, (with corresponding new source files) to
16994           handle alldocs postlist with modifications: this wasn't needed
16995           before since the termlist is updated immediately after changes.
16997 Sun Jun 22 21:37:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
16999         * tests/harness/: Add "name" parameter to
17000           BackendManager::get_writable_database_as_database(), and
17001           BackendManager::get_writable_database_again(), (and subclasses)
17002           so that old databases can be revived.  Useful for the performance
17003           tests.
17005 Sun Jun 22 09:30:44 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17007         * tests/api_anydb.cc: Expand tests for alldocspostlist, covering
17008           iteration of modified databases.
17010 Fri Jun 20 08:28:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17012         * backends/remote/remote-database.cc,common/remoteconnection.h,
17013           common/remoteprotocol.h,docs/remote_protocol.html,
17014           net/remoteconnection.cc,net/remoteserver.cc,
17015           net/replicatetcpclient.cc: Add new message
17016           "MSG_SHUTDOWNANDCONFIRM" which causes a reply of
17017           "REPLY_SHUTDOWNCONFIRMATION" to be sent after the database has
17018           been closed.  Use this message when closing a writable database,
17019           to ensure that the destructor doesn't return until the lock on
17020           the database has been released.
17022 Tue Jun 17 14:28:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17024         * tests/perftest/freemem.cc,tests/perftest/perftest.cc: Patches
17025           from Charlie to allow perftest to compile on windows.
17027 Tue Jun 17 13:23:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17029         * backends/chert/chert_btreebase.cc,backends/chert/chert_lock.cc,
17030           backends/flint/flint_btreebase.cc,backends/flint/flint_lock.cc,
17031           bin/xapian-replicate-server.cc: Add some missing includes, needed
17032           for GCC 4.3.
17034 Tue Jun 17 11:00:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17036         * tests/perftest/get_machine_info.in: Updates to hopefully get
17037           useful version information on windows.
17039 Mon Jun 16 12:13:48 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17041         * tests/harness/testsuite.cc: Don't call backendmanager->posttest()
17042           if no backendmanager is in use.
17044 Sun Jun 15 02:19:03 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17046         * tests/harness/: Wait for subprocesses to finish at end of tests,
17047           with remotetcp backend, to avoid test failures due to final flush
17048           of a subprocess writing to the database used for the next test.
17050 Thu Jun 12 09:09:44 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17052         * common/unaligned.h: Add some casts to make GCC 4.3.0 happy.
17054 Thu Jun 12 09:06:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17056         * backends/chert/chert_btreebase.cc: Add missing #include (needed
17057           for compilation with GCC 4.3.0).
17059 Tue Jun 10 17:38:07 GMT 2008  Olly Betts <olly@survex.com>
17061         * tests/harness/testrunner.cc: Use startswith().  Fix memory leak.
17063 Fri Jun 06 11:02:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17065         * Makefile.am,tests/Makefile.am: Fix make check-* targets to match
17066           the current set of backends.  Add .multichert and .multiflint to
17067           the clean-local hook in tests/.  Leave .multi there for now, to
17068           clean up existing .multi directories in the automated build trees.
17070 Fri Jun 06 08:26:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17072         * common/Makefile.mk: Add valuestats.h to distribution.
17074 Thu Jun 05 23:37:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17076         * backends/chert/chert_values.cc: Fix compile error in assertion in
17077           recently added code for calculating value statistics.
17079 Thu Jun 05 21:38:01 GMT 2008  Olly Betts <olly@survex.com>
17081         * queryparser/queryparser.lemony: Use std::vector<Term *> rather than
17082           std::list<Term *> so that size() is O(1) with any (sane) compiler
17083           and because a list of pointers isn't space efficient (and we don't
17084           need to splice here).  Factor out common code in if branches in
17085           TermGroup::as_group().
17087 Thu Jun 05 17:04:23 GMT 2008  Olly Betts <olly@survex.com>
17089         * queryparser/queryparser.lemony: Use "startswith()" to avoid creating
17090           a new string object.
17092 Thu Jun 05 09:09:54 GMT 2008  Olly Betts <olly@survex.com>
17094         * queryparser/queryparser.lemony: Remove variable which is set but
17095           never otherwise used.
17097 Thu Jun 05 09:08:22 GMT 2008  Olly Betts <olly@survex.com>
17099         * api/omqueryinternal.cc: Don't call find() twice - reuse the result
17100           we just got.  Use AssertEq() rather than Assert() on an equality
17101           test.  Clarify a comment.
17103 Wed Jun 04 21:32:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17105         * queryparser/queryparser.lemony: Fix more O(N*N) scaling, this
17106           time in the way in which auto multiword synonyms are detected.
17107           Instead of trying all possible sub-sequences of terms for
17108           synonyms, use synonym_keys and the skip_to() method to check for
17109           synonyms which actually exist in the synonyms table.
17110         * tests/queryparsertest.cc: Extend the scaling test to check this
17111           case.
17113 Wed Jun 04 12:42:32 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17115         * queryparser/queryparser.lemony: Fix various cases where queries
17116           were constructed pair-wise within a loop, which leads to O(N*N)
17117           scaling behaviour (because each intermediate query construction
17118           is O(M) where M is the size of that query, and there are N of
17119           them).
17120         * tests/queryparsertest.cc: Add test to check that parsing of a
17121           query scales roughly linearly with query size.
17122         * common/omtime.h: Add method to get an OmTime as a double - used
17123           by the new query parser test.
17125 Wed Jun 04 12:18:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17127         * tests/harness/testsuite.h: Fix TEST_LESSER_OR_EQUAL and
17128           TEST_LESSER macros to compare in the right direction (these
17129           macros are, so far, unused).
17131 Mon Jun 02 18:19:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17133         * api/postingsource.cc: Make ValueWeightPostingSource use value
17134           statistics, if they're available, to return accurate term
17135           frequency statistics, and a better maxweight.
17136         * tests/api_db.cc: Add valueweightsource2, to test the bounds and
17137           maxweight returned by a ValueWeightPostingSource for backends
17138           with valuestats support.  Replace !multi condition in
17139           valueweightsource1 with a SKIP_TEST_FOR_BACKEND invocation, since
17140           this is a shortcoming we should fix at some point.
17142 Mon Jun 02 18:16:52 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17144         * tests/harness/testrunner.cc,tests/harness/testrunner.h: Replace
17145           DO_TESTS_FOR_BACKEND macro with a do_tests_for_backend method;
17146           the method version takes a BackendManager * and gets the backend
17147           name from that, rather than requiring it to be specified.
17148           Requires addition of a couple of extra private members to the
17149           TestRunner class.
17151 Mon Jun 02 10:27:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17153         * include/xapian/database.h: Add get_value_freq(),
17154           get_value_lower_bound() and get_value_upper_bound() methods to
17155           Database, to get statistics about the values stored in a slot.
17156         * api/omdatabase.cc,backends/chert/,backends/database.cc,
17157           backends/inmemory/inmemory_database.cc,
17158           backends/inmemory/inmemory_database.h,
17159           backends/remote/remote-database.cc,common/,
17160           net/remoteserver.cc: Add support for the value statistics methods
17161           to chert, inmemory, multi and remote databases.
17162         * tests/Makefile.am,tests/api_valuestats.cc,
17163           tests/harness/testrunner.cc,tests/harness/testrunner.h: Add test
17164           of the value statistics code, and a "valuestats" backend property
17165           to select only backends supporting this.
17167 Mon Jun 02 10:26:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17169         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
17170           Move implementation of get_dbtype() method out of header.
17172 Mon Jun 02 09:44:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17174         * rests/harness/: Make flint and chert subtypes for the remote and
17175           multi backend types.  These are specified (on the command line
17176           and elsewhere) by the main type (multi, remotetcp or remoteprog),
17177           followed by an underscore, followed by the subtype (flint or
17178           chert).  Change return type of BackendManager::get_dbtype() to a
17179           string instead of a const char *, to allow backend managers which
17180           have subtypes to generate the result dynamically.
17181         * tests/harness/backendmanager_remote.cc,
17182           tests/harness/backendmanager_remote.h,
17183           tests/harness/backendmanager_remoteprog.cc,
17184           tests/harness/backendmanager_remoteprog.h,
17185           tests/harness/backendmanager_remotetcp.cc,
17186           tests/harness/backendmanager_remotetcp.h: Add new
17187           BackendManagerRemote class as a common base for the two remote
17188           backend managers, and move duplicated code into it.  Add
17189           parameter to its constructor, and to the constructors of the
17190           remote backend manager subclasses, to control the type of
17191           database to use at the remote end.
17192         * tests/harness/backendmanager_multi.cc,
17193           tests/harness/backendmanager_multi.h: Add parameter to
17194           constructor of BackendManagerMulti, controlling the type of
17195           database to use for sub databases.  Put the generated database
17196           files in ".multiflint" and ".multichert" instead of ".multi".
17197         * tests/harness/testrunner.cc: Update list of backend properties to
17198           contain the new subtypes.  Modify use_backend() to allow either
17199           the full backend type, or just the main part of the backend type,
17200           to be specified, so that, for example "-b multi" will run both
17201           the multi_chert and multi_flint tests.  Add test runs for all the
17202           subtypes now supported.  Catch string exceptions thrown by the
17203           test runner - these can currently occur when neither flint or
17204           chert are compiled in.
17205         * tests/apitest.cc,tests/apitest.h: Adjust return type of
17206           get_dbtype(), implement skip_test_*_backend functions which just
17207           check the prefix of the type, and implement SKIP_TEST_*_BACKEND
17208           macros using these.
17209         * tests/api_anydb.cc: Modify check for running on a multi backend
17210           to copy with getting a string back from get_dbtype().
17212 Sat May 31 00:55:03 GMT 2008  Olly Betts <olly@survex.com>
17214         * tests/Makefile.am,tests/perftest/Makefile.mk: Remove unnecessary
17215           quotes.
17217 Thu May 29 16:04:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17219         * tests/perftest/: Update svn:ignore property for perftest changes.
17221 Thu May 29 14:33:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17223         * tests/perftest/perftest.cc: Include the xapian version string in
17224           the test output.  For runs from SVN, also include the subversion
17225           revision number and branch in the output.
17227 Wed May 28 21:47:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17229         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc,
17230           matcher/valuerangepostlist.h: Apply patch from ticket #270 to
17231           implement ValueRangePostList::next() by using an alldocs posting
17232           list, instead of trying docids in turn.  This is much more
17233           efficient if document IDs are sparse.  Since both methods require
17234           accessing the termlist table to check for the next document, and
17235           some cursory performance tests don't show a measurable difference
17236           in speed, I think this approach is at least safe, and probably
17237           superior.
17239 Wed May 28 21:28:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17241         * tests/perftest/perftest.cc: Log the flush threshold for indexing
17242           runs.
17243         * tests/perftest/perftest_randomidx.cc: Set the run size back to a
17244           reasonably large value.
17246 Wed May 28 20:48:10 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17248         * configure.ac,tests/,tests/perftest/,tests/perftest_matchdecider.cc,
17249           tests/perftest_randomidx.cc: Move performance test source files
17250           into a subdirectory.  Modify output of performance tests to
17251           include some basic system information, and also to include
17252           details of the parameters used to perform indexing tests.
17254 Wed May 28 20:42:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17256         * HACKING: Fix numbering in checklist for developers so that it
17257           doesn't repeat section 5.
17259 Sun May 25 14:21:40 GMT 2008  Olly Betts <olly@survex.com>
17261         * NEWS: Update to match 1.0 branch.
17263 Sun May 25 00:24:09 GMT 2008  Olly Betts <olly@survex.com>
17265         * NEWS: Start to update from ChangeLog, stripping out backported
17266           changes.
17268 Sat May 24 16:38:49 GMT 2008  Olly Betts <olly@survex.com>
17270         * NEWS,configure.ac: Update to match 1.0 branch.
17272 Sat May 24 16:33:19 GMT 2008  Olly Betts <olly@survex.com>
17274         * tests/termgentest.cc: Pass Xapian::Document by const reference.
17276 Sat May 24 14:30:59 GMT 2008  Olly Betts <olly@survex.com>
17278         * bin/xapian-compact.cc: Only warn about duplicate user metadata keys
17279           if the tags aren't the same.
17281 Sat May 24 12:14:55 GMT 2008  Olly Betts <olly@survex.com>
17283         * bin/Makefile.am: Put special -I options in foo_CPPFLAGS not
17284           foo_CXXFLAGS.  As well as being the more correct place, this also
17285           means that AM_CXXFLAGS is now used when compiling xapian-check and
17286           xapian-compact, which in particular enables compiler warnings.
17287         * bin/xapian-check.cc,bin/xapian-compact.cc,bin/xapian-check-flint.cc:
17288           Fix warnings (one unused variable and a few cases of a variable
17289           masking another with the same name - none problematic in practice).
17291 Fri May 23 09:22:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17293         * backends/inmemory/inmemory_database.cc: Fix bug in inmemory
17294           database, which resulted in the values not being stored correctly
17295           if document IDs were sparse.
17296         * matcher/valuerangepostlist.cc: Fix the next() method not to
17297           return document IDs which aren't present in the database - this
17298           used to happen if the document IDs were sparse.
17299         * tests/api_anydb.cc: Add "valuerange2", a regression test for
17300           OP_VALUE_LE returning document IDs which aren't present in the
17301           database, and "alldocspl1", which does a generic test of an
17302           alldocs postlist in a sparse database (this passed before the
17303           above changes, but might as well be added anyway).
17305 Wed May 21 19:33:12 GMT 2008  Olly Betts <olly@survex.com>
17307         * docs/Makefile.am: test == isn't portable - use test = instead.
17309 Wed May 21 13:22:23 GMT 2008  Olly Betts <olly@survex.com>
17311         * HACKING: Fix path for atreus.
17313 Wed May 21 13:21:08 GMT 2008  Olly Betts <olly@survex.com>
17315         * HACKING: Fix search&replace error - the CVS module is still called
17316           www.xapian.org.
17318 Wed May 21 13:16:39 GMT 2008  Olly Betts <olly@survex.com>
17320         * HACKING: Reword, since environmental variable PATH isn't "set by
17321           $PATH".
17323 Wed May 21 13:16:21 GMT 2008  Olly Betts <olly@survex.com>
17325         * HACKING: ixion -> atreus.
17327 Wed May 21 13:12:07 GMT 2008  Olly Betts <olly@survex.com>
17329         * include/xapian/database.h: Improve documentation comment.
17331 Sun May 18 05:20:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17333         * docs/remote_protocol.html: Remove spurious "i" at end of line.
17335 Sat May 17 11:53:54 GMT 2008  Olly Betts <olly@survex.com>
17337         * tests/harness/testutils.h: Layout and macro parameter name tweaks.
17339 Fri May 16 20:42:05 GMT 2008  Olly Betts <olly@survex.com>
17341         * bin/xapian-compact.cc: Check that all source databases are the same
17342           type (flint or chert).  Copy over "iamchert" for chert.  Update
17343           terminology - the "meta file" is now called the "version file".
17345 Fri May 16 17:33:22 GMT 2008  Olly Betts <olly@survex.com>
17347         * backends/chert/chert_database.cc,backends/chert/chert_version.cc:
17348           Need <cstdio> for rename().
17350 Fri May 16 17:27:56 GMT 2008  Olly Betts <olly@survex.com>
17352         * backends/chert/chert_database.cc: Correct FIXME comment and mark
17353           as "FIXME:1.2.0".
17355 Fri May 16 17:21:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17357         * tests/harness/testrunner.cc,tests/harness/testrunner.h: Add
17358           condition to test if the backend is "inmemory".
17359         * tests/perftest_randomidx.cc: Change the run size from 1000
17360           documents to 1000000.  Disable this test for the inmemory
17361           backend, because it will quickly use up all the memory on the
17362           machine.
17364 Fri May 16 16:56:25 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17366         * HACKING: Add note about some more PDF generation tools which are
17367           needed, and that doxygen requires them to be on PATH.
17369 Fri May 16 16:38:40 GMT 2008  Olly Betts <olly@survex.com>
17371         * HACKING: Ubuntu now needs tetex-extra too.
17373 Fri May 16 10:05:30 GMT 2008  Olly Betts <olly@survex.com>
17375         * bin/xapian-compact.cc: Fix to not reject chert databases during the
17376           "up front" check.
17378 Thu May 15 20:20:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17380         * net/progclient.cc: Set namespace for close methods (to avoid
17381           conflicting with the close method I'm working on adding to
17382           database internal).
17384 Wed May 14 17:14:53 GMT 2008  Olly Betts <olly@survex.com>
17386         * backends/database.cc: Default to flint not chert for a new database.
17388 Wed May 14 17:11:56 GMT 2008  Olly Betts <olly@survex.com>
17390         * api/postingsource.cc,docs/postingsource.rst,
17391           include/xapian/postingsource.h,matcher/externalpostlist.cc:
17392           PostingSource::check() now returns the valid flag rather than
17393           passing it in by reference to be set.  Change "should" to "must"
17394           for the get_termfreq_est() requirement at Richard's suggestion.
17395           Add parameter names to PostingSource method prototypes and update
17396           documentation comments to match.
17398 Wed May 14 15:34:38 GMT 2008  Olly Betts <olly@survex.com>
17400         * docs/Makefile.am,docs/index.html,docs/postingsource.rst: Add
17401           topic document for PostingSource.
17403 Mon May 12 17:27:13 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17405         * include/xapian/postingsource.h: Add documentation comments for
17406           ValueWeightPostingSource, and tweak
17407           PostingSource::get_maxweight() comment a bit more.
17409 Mon May 12 16:51:01 GMT 2008  Olly Betts <olly@survex.com>
17411         * include/xapian/postingsource.h: Clarify get_maxweight() if the
17412           maximum from now on.
17414 Mon May 12 06:51:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17416         * api/postingsource.cc,include/xapian/postingsource.h,tests/api_db.cc,
17417           tests/harness/index_utils.cc: Add ValueWeightPostingSource, which
17418           reads a value, applies sortable_unserialise() to it, and returns
17419           that as the weight for each document.
17421 Sun May 11 23:49:07 GMT 2008  Olly Betts <olly@survex.com>
17423         * queryparser/lemon.c,queryparser/queryparser.lt: Do a final sync by
17424           comparing our versions to the latest vanilla upstream.  Add a note
17425           to each file of the latest revision sync-ed against.
17426         * queryparser/lemon.c: Enable '#define PRIVATE static'.
17428 Sun May 11 22:48:27 GMT 2008  Olly Betts <olly@survex.com>
17430         * NEWS: Add a note of the speed-up that the recent QueryParser changes
17431           have given.
17433 Sun May 11 22:10:19 GMT 2008  Olly Betts <olly@survex.com>
17435         * queryparser/lemon.c: Merge upstream "Check-in Number: 5053".
17437 Sun May 11 22:01:48 GMT 2008  Olly Betts <olly@survex.com>
17439         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 5052".
17441 Sun May 11 21:56:03 GMT 2008  Olly Betts <olly@survex.com>
17443         * queryparser/queryparser.lt: Fix a comment typo.
17445 Sun May 11 21:52:30 GMT 2008  Olly Betts <olly@survex.com>
17447         * queryparser/lemon.c: Merge upstream "Check-in Number: 4751".
17449 Sun May 11 21:51:18 GMT 2008  Olly Betts <olly@survex.com>
17451         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 4745".
17453 Sun May 11 21:47:03 GMT 2008  Olly Betts <olly@survex.com>
17455         * queryparser/queryparser.lt: Comment out memset() call added by
17456           one of the earlier merged upstream changes - a later comment on
17457           the ticket referred to notes that this was actually a bug in the
17458           grammar of the people who reported it.
17460 Sun May 11 21:44:46 GMT 2008  Olly Betts <olly@survex.com>
17462         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 4743".
17464 Sun May 11 21:41:55 GMT 2008  Olly Betts <olly@survex.com>
17466         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 4738".
17468 Sun May 11 21:33:13 GMT 2008  Olly Betts <olly@survex.com>
17470         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17471           "Check-in Number: 4736".
17472         * queryparser/lemon.c: Add %syntax_error directive since lemon has
17473           changed it's error recovery strategy if you don't have one.
17475 Sun May 11 20:54:31 GMT 2008  Olly Betts <olly@survex.com>
17477         * queryparser/queryparser.lemony: If we hit a syntax error, don't
17478           bother feeding further tokens to the parser!
17480 Sat May 10 21:42:44 GMT 2008  Olly Betts <olly@survex.com>
17482         * queryparser/lemon.c: Merge upstream "Check-in Number: 4641".
17484 Sat May 10 21:33:10 GMT 2008  Olly Betts <olly@survex.com>
17486         * queryparser/lemon.c: Merge upstream "Check-in Number: 4473".
17488 Sat May 10 21:31:25 GMT 2008  Olly Betts <olly@survex.com>
17490         * queryparser/lemon.c: Merge upstream "Check-in Number: 4439".
17492 Sat May 10 21:28:27 GMT 2008  Olly Betts <olly@survex.com>
17494         * queryparser/lemon.c: Merge upstream "Check-in Number: 4274".
17496 Sat May 10 21:25:35 GMT 2008  Olly Betts <olly@survex.com>
17498         * queryparser/lemon.c: Merge upstream "Check-in Number: 4190".
17500 Sat May 10 21:20:16 GMT 2008  Olly Betts <olly@survex.com>
17502         * queryparser/lemon.c: Merge upstream "Check-in Number: 4160".
17504 Sat May 10 21:07:15 GMT 2008  Olly Betts <olly@survex.com>
17506         * queryparser/lemon.c: Merge upstream "Check-in Number: 3753".
17508 Sat May 10 21:03:19 GMT 2008  Olly Betts <olly@survex.com>
17510         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17511           "Check-in Number: 3738".
17513 Sat May 10 20:00:09 GMT 2008  Olly Betts <olly@survex.com>
17515         * queryparser/lemon.c: Merge upstream "Check-in Number: 3654".
17517 Sat May 10 19:55:32 GMT 2008  Olly Betts <olly@survex.com>
17519         * queryparser/lemon.c: Merge upstream "Check-in Number: 3594".
17521 Sat May 10 19:46:05 GMT 2008  Olly Betts <olly@survex.com>
17523         * queryparser/lemon.c: Merge upstream "Check-in Number: 3593".
17525 Sat May 10 19:44:15 GMT 2008  Olly Betts <olly@survex.com>
17527         * queryparser/lemon.c: Merge upstream "Check-in Number: 3591".
17529 Sat May 10 19:40:12 GMT 2008  Olly Betts <olly@survex.com>
17531         * queryparser/lemon.c: Merge upstream "Check-in Number: 3528".
17533 Sat May 10 19:38:36 GMT 2008  Olly Betts <olly@survex.com>
17535         * queryparser/lemon.c: Merge upstream "Check-in Number: 3476".
17537 Sat May 10 19:36:06 GMT 2008  Olly Betts <olly@survex.com>
17539         * queryparser/lemon.c: Merge upstream "Check-in Number: 3333".
17541 Sat May 10 19:33:33 GMT 2008  Olly Betts <olly@survex.com>
17543         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 3244".
17545 Sat May 10 19:29:18 GMT 2008  Olly Betts <olly@survex.com>
17547         * queryparser/lemon.c: Merge upstream "Check-in Number: 3226".
17549 Sat May 10 19:19:48 GMT 2008  Olly Betts <olly@survex.com>
17551         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 3224".
17553 Sat May 10 19:14:18 GMT 2008  Olly Betts <olly@survex.com>
17555         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17556           "Check-in Number: 3210".
17558 Sat May 10 18:56:50 GMT 2008  Olly Betts <olly@survex.com>
17560         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 3181".
17562 Sat May 10 17:05:35 GMT 2008  Olly Betts <olly@survex.com>
17564         * queryparser/lemon.c: Merge upstream "Check-in Number: 3126".
17566 Sat May 10 16:51:31 GMT 2008  Olly Betts <olly@survex.com>
17568         * queryparser/lemon.c: Merge upstream "Check-in Number: 2764".
17570 Sat May 10 16:40:48 GMT 2008  Olly Betts <olly@survex.com>
17572         * queryparser/lemon.c,queryparser/queryparser.lt: Merge upstream
17573           "Check-in Number: 2761".
17575 Sat May 10 16:32:45 GMT 2008  Olly Betts <olly@survex.com>
17577         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 2458".
17579 Sat May 10 16:29:55 GMT 2008  Olly Betts <olly@survex.com>
17581         * queryparser/lemon.c: Merge upstream "Check-in Number: 2345".
17583 Sat May 10 16:08:28 GMT 2008  Olly Betts <olly@survex.com>
17585         * queryparser/queryparser.lt: Merge upstream "Check-in Number: 2302".
17587 Sat May 10 15:50:23 GMT 2008  Olly Betts <olly@survex.com>
17589         * queryparser/lemon.c: Merge upstream "Check-in Number: 2208".
17591 Sat May 10 15:03:59 GMT 2008  Olly Betts <olly@survex.com>
17593         * tests/harness/testsuite.cc: Prefer `str.assign(ptr)' to `str =
17594           string(ptr)'.
17596 Sat May 10 14:48:38 GMT 2008  Olly Betts <olly@survex.com>
17598         * api/matchspy.cc,api/replication.cc: Prefer `str.assign(ptr, len)' to
17599           `str = string(ptr, len)'.
17601 Fri May 09 16:53:19 GMT 2008  Olly Betts <olly@survex.com>
17603         * net/remoteserver.cc: No entries in dispatch[] are NULL, so there's
17604           no point testing for it.
17606 Fri May 09 16:51:10 GMT 2008  Olly Betts <olly@survex.com>
17608         * net/remoteconnection.cc: Remove pointless conversion to size_t which
17609           breaks GCC 2.95 build.
17611 Fri May 09 16:22:46 GMT 2008  Olly Betts <olly@survex.com>
17613         * api/replication.cc: Needs <cstdio> for rename().
17615 Fri May 09 15:41:08 GMT 2008  Olly Betts <olly@survex.com>
17617         * tests/harness/testutils.cc: No need for an explicit std::endl when
17618           calling TEST_AND_EXPLAIN().
17620 Fri May 09 15:38:22 GMT 2008  Olly Betts <olly@survex.com>
17622         * api/replication.cc: Use '\n' rather than endl in the middle of
17623           writing stuff, since endl forces a flush which just adds useless
17624           overhead.
17626 Fri May 09 15:24:42 GMT 2008  Olly Betts <olly@survex.com>
17628         * common/omdebug.h: Fix RETURN macro to work on GCC 2.95 for the case
17629           `RETURN(string())'.
17631 Fri May 09 08:33:35 GMT 2008  Olly Betts <olly@survex.com>
17633         * include/xapian/postingsource.h: Add a protected default ctor so that
17634           code subclassing PostingSource actually compiles!
17636 Thu May 08 16:41:59 GMT 2008  Olly Betts <olly@survex.com>
17638         * include/xapian/postingsource.h: Add doxygen comments for
17639           Xapian::PostingSource.  Add private assignment operator and
17640           copy constructor to prevent copying.
17642 Thu May 08 16:40:49 GMT 2008  Olly Betts <olly@survex.com>
17644         * common/postlist.h: Fix one doxygen comment and improve another.
17646 Mon May 05 15:22:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17648         * tests/Makefile.am: Clean up .chert in clean-local.
17650 Mon May 05 14:52:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17652         * docs/Makefile.am: Adapt the dist-check hook to work with a VPATH
17653           build in non-maintainer mode.
17655 Mon May 05 13:18:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17657         * docs/Makefile.am: Fix "make distcheck" by using dist-hook to
17658           install generated files, with the appropriate dependency, instead
17659           of wildcards in EXTRA_DIST which don't give the correct expansion
17660           unless the files happened to be generated already by another
17661           rule. Also, ensure that the documentation is generated before
17662           attempting to install it.
17664 Sun May 04 09:30:53 GMT 2008  Olly Betts <olly@survex.com>
17666         * backends/chert/chert_version.cc,backends/flint/flint_version.cc,
17667           common/stringutils.h: Move CONST_STRLEN() into stringutils.h.
17668         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
17669           Use CONST_STRLEN().
17671 Sat May 03 18:56:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17673         * api/omenquire.cc: Reset the internal sorter pointer to NULL when
17674           changing to a sort by value. Fixes #256.
17675         * tests/api_sorting.cc: Add regression test.
17677 Sat May 03 18:52:27 GMT 2008  Olly Betts <olly@survex.com>
17679         * include/xapian/unicode.h: Mark internal functions as @internal.
17681 Sat May 03 18:43:12 GMT 2008  Olly Betts <olly@survex.com>
17683         * docs/doxygen_api_conf.in: Disable header and directory relationship
17684           graphs in the API documentation as they aren't interesting to users.
17686 Sat May 03 18:12:30 GMT 2008  Olly Betts <olly@survex.com>
17688         * docs/gen_codestructure_doc.in: Link to trac instead of viewvc.
17690 Sat May 03 17:25:02 GMT 2008  Olly Betts <olly@survex.com>
17692         * docs/replication_protocol.rst: Fix a few typos.
17694 Sat May 03 15:53:24 GMT 2008  Olly Betts <olly@survex.com>
17696         * backends/chert/chert_database.cc,backends/flint/flint_database.cc:
17697           If Database::reopen() is called and the database revision on disk
17698           hasn't changed, then do as little work as possible.  Even if it
17699           has changed, don't bother to recheck the version file (bug#261).
17701 Sat May 03 10:28:30 GMT 2008  Olly Betts <olly@survex.com>
17703         * configure.ac: Improve code to prevent probing for f77, etc.
17705 Sat May 03 10:17:05 GMT 2008  Olly Betts <olly@survex.com>
17707         * matcher/rset.cc: Missing change from last commit.
17709 Sat May 03 09:25:29 GMT 2008  Olly Betts <olly@survex.com>
17711         * api/omenquire.cc,common/,expand/Makefile.mk,expand/esetinternal.cc,
17712           expand/expand.cc: Rewrite class ESet::Internal, incorporating the
17713           functionality which used to be in the internal OmExpand class.  The
17714           expand operation now uses a min heap rather than calling
17715           nth_element() repeatedly - this should reduce the complexity of the
17716           expand operation by a factor of n/log(n) where n is the requested
17717           ESet size.
17719 Fri May 02 15:51:29 GMT 2008  Olly Betts <olly@survex.com>
17721         * common/ortermlist.h,expand/ortermlist.cc: Kill FreqAdderOrTermList's
17722           explicit empty dtor.
17724 Thu May 01 16:38:40 GMT 2008  Olly Betts <olly@survex.com>
17726         * api/omqueryinternal.cc,api/replication.cc,backends/chert/,
17727           backends/flint/,backends/inmemory/inmemory_positionlist.cc,
17728           common/utils.cc,matcher/stats.cc,tests/perftest_matchdecider.cc,
17729           tests/perftest_randomidx.cc: Assorted formatting tweaks.
17731 Thu May 01 16:32:58 GMT 2008  Olly Betts <olly@survex.com>
17733         * common/unaligned.h: Fix ";;" to ";" after AssertRel calls.
17735 Thu May 01 16:12:05 GMT 2008  Olly Betts <olly@survex.com>
17737         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Tell doxygen to
17738           expand XAPIAN_VISIBILITY_DEFAULT so it doesn't appear in collated
17739           API documentation.
17741 Wed Apr 30 10:57:53 GMT 2008  Olly Betts <olly@survex.com>
17743         * HACKING: Update bugzilla references and URLs to reflect the move
17744           to trac.  Update the "fixing a bug" checklist to mention backporting
17745           and updating the release notes.
17747 Wed Apr 30 10:40:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17749         * backends/remote/remote-database.cc: Fix error message displayed
17750           when remote protocol version doesn't match to display the minor
17751           part of the version number supplied by the server correctly.
17753 Tue Apr 29 17:37:10 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17755         * AUTHORS: Add Alexandre Gauthier, for supplying a method for doing
17756           python packaging for Windows.
17758 Tue Apr 29 16:20:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17760         * common/fileutils.cc: Fix variable name for windows compilation.
17762 Tue Apr 29 06:50:53 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17764         * backends/chert/chert_table.cc,backends/flint/flint_table.cc:
17765           Remove some debugging code, left over from writing the
17766           replication code.
17768 Mon Apr 28 12:11:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17770         * backends/chert/chert_btreebase.cc,backends/chert/chert_table.cc,
17771           backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc:
17772           Fix issue #259 - update the last_block value whenever allocating
17773           a new value, so that next_for_sequential doesn't give up too
17774           early.  Also, in both next_for_sequential and
17775           prev_for_sequential, for writable databases, check the built-in
17776           cursor at all levels for the new block rather than just reading
17777           from disk, since newly allocated blocks won't have been written
17778           to disk yet.  Also, test the return type of next() when reading
17779           subsequent parts of tags, and raise DatabaseCorruptError if it
17780           returns false; this prevents incorrect data being returned,
17781           leading to a zlib error.
17782         * tests/api_wrdb.cc: Add regression test.
17784 Fri Apr 25 08:39:28 GMT 2008  Olly Betts <olly@survex.com>
17786         * api/postingsource.cc: Missed change from last but one commit.
17788 Thu Apr 24 13:44:48 GMT 2008  Olly Betts <olly@survex.com>
17790         * matcher/queryoptimiser.cc: Reserve size of postlists vector.
17792 Thu Apr 24 13:38:51 GMT 2008  Olly Betts <olly@survex.com>
17794         * include/xapian/postingsource.h,matcher/externalpostlist.cc,
17795           matcher/externalpostlist.h,tests/api_db.cc: Add a default
17796           PostingSource::get_description() method so users who don't care
17797           aren't forced to define one.  Make PostingSource::reset() a standard
17798           method and call it automatically so that a PostingSource-using
17799           Query can be run more than once without extra work.
17801 Thu Apr 24 11:24:30 GMT 2008  Olly Betts <olly@survex.com>
17803         * matcher/queryoptimiser.cc: Don't need <queue>.
17805 Thu Apr 24 04:50:43 GMT 2008  Olly Betts <olly@survex.com>
17807         * tests/api_db.cc: Add test that boolean branches of matches don't
17808           cause Xapian::PostingSource to be asked for weights.
17810 Thu Apr 24 03:27:39 GMT 2008  Olly Betts <olly@survex.com>
17812         * matcher/externalpostlist.cc,matcher/externalpostlist.h,
17813           matcher/queryoptimiser.cc: ExternalPostList now takes the
17814           factor into account, so works with OP_SCALE_WEIGHT, and
17815           doesn't call get_weight()/get_maxweight() for a boolean
17816           branch.
17817         * tests/api_db.cc: Add tests for OP_SCALE_WEIGHT.
17819 Thu Apr 24 02:16:08 GMT 2008  Olly Betts <olly@survex.com>
17821         * xapian-config.in: Back out --swigheaders.
17823 Wed Apr 23 11:37:45 GMT 2008  Olly Betts <olly@survex.com>
17825         * matcher/externalpostlist.h: Need to initialise current.
17827 Wed Apr 23 07:57:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17829         * tests/termgentest.cc: Put the inclusion of "utils.h" back; needed
17830           for om_tostring().
17832 Wed Apr 23 04:20:55 GMT 2008  Olly Betts <olly@survex.com>
17834         * include/xapian/replication.h: Eliminate reference to FlintDatabase
17835           from doc comment since it's not user-visible, and chert supports
17836           replication too.  No need for '#include <xapian/database.h>' so
17837           remove.  Remove references to non-existent parameter 'remotename'.
17838           'DatabaseCorrupt error' -> 'DatabaseCorruptError'.
17840 Wed Apr 23 04:19:53 GMT 2008  Olly Betts <olly@survex.com>
17842         * include/xapian/query.h: Wrap Xapian::Query::Internal class
17843           definition in "#ifndef SWIG" ... "#endif" in preparation for getting
17844           SWIG to directly parse it.
17846 Wed Apr 23 02:16:53 GMT 2008  Olly Betts <olly@survex.com>
17848         * api/omquery.cc: Prefer string() to "".
17850 Wed Apr 23 02:16:10 GMT 2008  Olly Betts <olly@survex.com>
17852         * include/xapian/query.h: Fix doc comment typo (doesn't affect API
17853           docs).
17855 Wed Apr 23 00:59:40 GMT 2008  Olly Betts <olly@survex.com>
17857         * api/postingsource.cc: Another missing file.
17859 Wed Apr 23 00:34:34 GMT 2008  Olly Betts <olly@survex.com>
17861         * include/xapian/postingsource.h: New file missing from previous
17862           commit.
17864 Wed Apr 23 00:30:34 GMT 2008  Olly Betts <olly@survex.com>
17866         * api/Makefile.mk,api/omquery.cc,api/omqueryinternal.cc,
17867           include/Makefile.mk,include/xapian.h,include/xapian/query.h,matcher/,
17868           tests/api_db.cc: Add support for Xapian::PostingSource.
17870 Wed Apr 23 00:21:25 GMT 2008  Olly Betts <olly@survex.com>
17872         * include/xapian.h: Fix misplaced comment.  Tweak doxygen comments for
17873           version functions to be more consistent with others.
17875 Wed Apr 23 00:16:14 GMT 2008  Olly Betts <olly@survex.com>
17877         * matcher/queryoptimiser.cc: Remove bogus comment from cut-and-paste.
17879 Wed Apr 23 00:14:30 GMT 2008  Olly Betts <olly@survex.com>
17881         * common/omassert.h: Add AssertEqDoubleParanoid().
17882         * matcher/multimatch.cc: Use it instead of home-brewed version.
17884 Tue Apr 22 23:30:50 GMT 2008  Olly Betts <olly@survex.com>
17886         * common/utils.h: Stop exporting internal functions needlessly.
17888 Tue Apr 22 12:53:55 GMT 2008  Olly Betts <olly@survex.com>
17890         * bin/xapian-compact.cc: Fix to work again (broken by the splitting of
17891           FlintTable::commit() into flush_db() and commit() in the replication
17892           changes).  Don't bother passing tablename to functions where it
17893           always has the same value.  Tweak the user-metadata copying loop to
17894           make it clearer.  Reserve the right size for the vector used for
17895           merging spellings.
17897 Tue Apr 22 12:28:17 GMT 2008  Olly Betts <olly@survex.com>
17899         * backends/chert/chert_table.h,backends/flint/flint_table.h,
17900           bin/xapian-compact.cc: Default commit's changes_fd parameter to -1.
17902 Tue Apr 22 11:39:10 GMT 2008  Olly Betts <olly@survex.com>
17904         * common/omassert.h: Fix comment typo.
17906 Tue Apr 22 10:54:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17908         * tests/queryparsertest.cc: Add "utils.h" back - needed for
17909           om_tostring() and mkdir().
17911 Mon Apr 21 07:48:45 GMT 2008  Olly Betts <olly@survex.com>
17913         * tests/api_db.cc: Don't need <list>.  Wrap comment.
17915 Mon Apr 21 07:04:12 GMT 2008  Olly Betts <olly@survex.com>
17917         * api/omqueryinternal.cc,backends/chert/chert_check.cc,
17918           backends/flint/flint_check.cc,tests/: Remove various needless
17919           inclusions of headers (especially <iostream>).  Reorder headers.
17920           Wrap a couple of comments.  Append single characters to strings
17921           using character constants.
17923 Mon Apr 21 06:26:49 GMT 2008  Olly Betts <olly@survex.com>
17925         * api/Makefile.mk,api/valuerangeproccompat.cc,
17926           include/xapian/queryparser.h: Remove the
17927           v102::NumberValueRangeProcessor ABI-preserving machinery since it's
17928           OK to change the ABI for 1.1.0.
17930 Mon Apr 21 04:42:52 GMT 2008  Olly Betts <olly@survex.com>
17932         * api/,queryparser/queryparser.cc: Remove debug log tracing from
17933           get_description() methods since the debug log call tracing *calls*
17934           get_description() methods on parameters, so logging these calls just
17935           makes for more confusing debug logs.  A get_description() method
17936           should have no side-effects so it's not very interesting even when
17937           explicitly called by the user.
17938         * common/omdebug.h: Replace "OM_DEBUG_INTRO" class with dummy
17939           placeholder (to preserve numbering), to help prevent accidentally
17940           adding these back.
17942 Sun Apr 20 09:46:11 GMT 2008  Olly Betts <olly@survex.com>
17944         * api/omqueryinternal.cc,common/: Stop describing get_description() as
17945           an "Introspection method" internal (matching earlier change to stop
17946           doing so externally).  This doesn't help to explain what it does,
17947           and get_description() doesn't actually fall under any of the formal
17948           definitions of "introspection" I can find.
17950 Fri Apr 18 10:26:18 GMT 2008  Olly Betts <olly@survex.com>
17952         * backends/chert/chert_metadata.cc: Fix renamed parameter in debug
17953           logging.
17955 Fri Apr 18 10:18:35 GMT 2008  Olly Betts <olly@survex.com>
17957         * HACKING,INSTALL,Makefile.am,backends/Makefile.mk,backends/chert/,
17958           backends/database.cc,backends/flint/,backends/remote/net_postlist.cc,
17959           backends/remote/net_postlist.h,bin/,common/,configure.ac,docs/,
17960           include/xapian/dbfactory.h,include/xapian/version_h.cc,
17961           net/remoteserver.cc,tests/Makefile.am,tests/harness/: Start new
17962           development backend "chert".  Currently the change over flint is
17963           that in the postlist table, doclengths are stored once in a
17964           chunked postlist-like form, rather than once per posting.
17966 Tue Apr 15 23:24:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17968         * api/omenquire.cc,tests/api_nodb.cc: Fix segfault introduced by
17969           previous change when asking for the termfreq on an empty mset.
17970           Include a regression test.
17972 Tue Apr 15 06:02:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17974         * include/xapian/enquire.h: Change definition of MSet::get_termfreq
17975           such that it will fall back to looking the term frequency up in
17976           the database rather than raising an exception if the term is not
17977           present in the mset.
17978         * api/omenquire.cc,common/omenquireinternal.h: Implementation of
17979           the above.
17980         * tests/api_anydb.cc: Test the above.
17982 Mon Apr 14 21:29:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17984         * tests/: Use copies of freemem.cc and freemem.h from omega to report
17985           the free physical memory at each stage of indexing.  Also, add a
17986           get_total_physical_memory() function to this, and report it's
17987           value at the top of the results file (only tested on Linux so
17988           far).
17990 Mon Apr 14 19:17:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17992         * tests/api_wrdb.cc: Make skip_to() test a bit more comprehensive.
17994 Mon Apr 14 19:08:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
17996         * backends/flint/flint_metadata.cc,backends/flint/flint_metadata.h:
17997           Fix a bug in the skip_to() implementation, and set the parameter
17998           name to "key" instead of "tname", since it's not a term.
17999         * tests/api_wrdb.cc: Add a test of the metadata iterators.
18001 Mon Apr 14 14:22:16 GMT 2008  Olly Betts <olly@survex.com>
18003         * backends/Makefile.mk,backends/flint/Makefile.mk,
18004           backends/flint/contiguousalldocspostlist.cc,
18005           backends/flint/contiguousalldocspostlist.h,common/Makefile.mk:
18006           The ContiguousAllDocsPostList class isn't flint-specific, so move
18007           it out of backends/flint.
18009 Mon Apr 14 13:56:51 GMT 2008  Olly Betts <olly@survex.com>
18011         * backends/flint/flint_database.cc: Removed duplicate
18012           '#include "flint_database.h"', ironically added by Richard's recent
18013           change.  Fix a couple of errors in alphabetical ordering, and
18014           move autoptr.h and the "safe" headers to where the standard headers
18015           they replace would go.
18017 Mon Apr 14 13:44:37 GMT 2008  Olly Betts <olly@survex.com>
18019         * Makefile.am,tests/Makefile.am: List check-perf in .PHONY.
18020         * HACKING: Document the need to list non-file targets in .PHONY.
18022 Mon Apr 14 07:59:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18024         * api/omdatabase.cc: Correct return type in a DEBUGAPICALL macro.
18026 Mon Apr 14 07:14:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18028         * api/omdatabase.cc,backends/database.cc,backends/flint/,
18029           common/database.h,include/xapian/database.h: Add
18030           metadata_keys_begin() and metadata_keys_end() methods to
18031           Database, to allow the complete list of metadata in a database to
18032           be retrieved.  Supports a prefix argument to obtain a limited
18033           subset of the keys, since that may be useful in some situations
18034           and is very easy to implement.  Only accesses the keys in the
18035           first database in a multidatabase situation (which corresponds
18036           with the current behaviour of get_metadata()).
18037           Also, reorder the includes in flint_database.cc to be largely
18038           alphabetical, and remove a duplicated #include of
18039           <xapian/error.h>.
18041 Mon Apr 14 06:51:48 GMT 2008  Olly Betts <olly@survex.com>
18043         * common/fileutils.cc: Use endswith().
18045 Mon Apr 14 06:14:44 GMT 2008  Olly Betts <olly@survex.com>
18047         * api/replication.cc,backends/database.cc,
18048           backends/flint/flint_database.cc,common/fileutils.cc,
18049           tests/queryparsertest.cc: Use empty() rather than comparing size()
18050           to 0.  Use startswith() in a couple of places.  Tweak an Assert
18051           to AssertEq.
18053 Sun Apr 13 14:30:55 GMT 2008  Olly Betts <olly@survex.com>
18055         * api/omdatabase.cc: Replace uses of DEBUGLINE(SPELLING, ...) in
18056           Database::get_spelling_suggestion() with standard
18057           DEBUGAPICALL/RETURN tracing.  Add DEBUGAPICALL/RETURN tracing to
18058           a few Database methods which were missing it.
18060 Sun Apr 13 14:15:00 GMT 2008  Olly Betts <olly@survex.com>
18062         * backends/flint/flint_cursor.cc: Use RETURN() in a few places which
18063           weren't.
18065 Sun Apr 13 13:59:57 GMT 2008  Olly Betts <olly@survex.com>
18067         * backends/inmemory/inmemory_database.cc: Remove long-time commented
18068           out uses of DebugMsg.
18070 Sun Apr 13 13:52:32 GMT 2008  Olly Betts <olly@survex.com>
18072         * expand/expandweight.cc: Use DEBUGLINE() instead of DEBUGMSG().
18074 Sun Apr 13 11:23:56 GMT 2008  Olly Betts <olly@survex.com>
18076         * backends/flint/flint_database.cc: Include corresponding header right
18077           after config.h.
18079 Sun Apr 13 10:28:27 GMT 2008  Olly Betts <olly@survex.com>
18081         * backends/flint/flint_database.cc: Tweak brace formatting and wrap a
18082           comment.
18084 Fri Apr 11 16:18:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18086         * common/fileutils.cc: Fix typo in windows specific code.
18088 Fri Apr 11 12:44:25 GMT 2008  Olly Betts <olly@survex.com>
18090         * backends/flint/flint_cursor.cc: Include corresponding header right
18091           after config.h.
18093 Fri Apr 11 10:25:03 GMT 2008  Olly Betts <olly@survex.com>
18095         * backends/flint/flint_cursor.h: Fix filename in header comment.
18097 Fri Apr 11 04:49:03 GMT 2008  Olly Betts <olly@survex.com>
18099         * configure.ac,tests/submitperftest.in,tests/submitperftest.py.in:
18100           Rename submitperftest.py to submitperftest.
18101         * HACKING: Document that scripts shouldn't generally have an
18102           extension, and the reason for this policy.
18104 Fri Apr 11 04:32:15 2008  Olly Betts <olly@survex.com>
18106         * HACKING: Note that GCC 4.3 no longer supports pre-ISO forms of
18107           standard headers, such as <list.h>.  GCC on Solaris now seems
18108           to support throwing exceptions across shared library boundaries.
18110 Fri Apr 11 03:24:47 GMT 2008  Olly Betts <olly@survex.com>
18112         * tests/Makefile.am: "make up" in tests now does "make" in the
18113           top-level.
18115 Thu Apr 10 08:33:06 GMT 2008  Olly Betts <olly@survex.com>
18117         * backends/flint/flint_postlist.cc: Fix debug logging message: ostList
18118           -> FlintPostList.
18120 Thu Apr 10 05:47:37 GMT 2008  Olly Betts <olly@survex.com>
18122         * net/remoteconnection.cc: Remove erroneous FIXME comments talking
18123           about ReadFile() not updating WSAOVERLAPPED's Offset/OffsetHigh
18124           being a problem with using _get_osfhandle() - ReadFile is documented
18125           to behave this way on MSDN.  Factor out update of Offset/OffsetHigh
18126           and tweak this code not to rely on off_t being 64 bits.
18128 Thu Apr 10 05:24:11 GMT 2008  Olly Betts <olly@survex.com>
18130         * backends/flint/flint_record.cc,backends/flint/flint_utils.h: Use
18131           the new STATIC_ASSERT family of macros instead of CASSERT and
18132           CASSERT_TYPE_UNSIGNED.
18134 Thu Apr 10 04:46:40 GMT 2008  Olly Betts <olly@survex.com>
18136         * common/omassert.h: Add "compile-time assertion" macros:
18137           STATIC_ASSERT(COND), STATIC_ASSERT_UNSIGNED_TYPE(TYPE),
18138           STATIC_ASSERT_TYPE_DOMINATES(TYPE1, TYPE2).
18139         * tests/internaltest.cc: Test these.
18141 Thu Apr 10 01:07:34 GMT 2008  Olly Betts <olly@survex.com>
18143         * common/remoteprotocol.h,net/remoteserver.cc: Clean up a couple more
18144           things now we've moved to major protocol version 31.
18146 Wed Apr 09 06:50:44 GMT 2008  Olly Betts <olly@survex.com>
18148         * backends/remote/remote-database.cc: Add missing explicit include of
18149           remote-database.h.
18151 Wed Apr 09 04:48:54 GMT 2008  Olly Betts <olly@survex.com>
18153         * bin/xapian-check.cc,bin/xapian-compact.cc: Fix check for user
18154           metadata key to not match other key types we may add in the future.
18155           When compacting, we can't assume how we should handle them.  When
18156           checking, they currently shouldn't be present, so we should flag
18157           an error for them.
18159 Tue Apr 08 15:27:09 GMT 2008  Olly Betts <olly@survex.com>
18161         * NEWS: Fix missing line in old entry.
18163 Mon Apr 07 07:49:56 GMT 2008  Olly Betts <olly@survex.com>
18165         * backends/flint/flint_btreeutil.h: Use AssertRel rather than Assert.
18167 Mon Apr 07 06:20:42 GMT 2008  Olly Betts <olly@survex.com>
18169         * api/error.cc,api/valuerangeproc.cc,backends/flint/flint_table.cc,
18170           backends/multi/multi_postlist.cc,backends/remote/net_termlist.cc,
18171           bin/xapian-inspect.cc,common/omdebug.cc,common/utils.cc,
18172           languages/stem.cc,languages/steminternal.cc,
18173           tests/harness/backendmanager_multi.cc,
18174           tests/harness/backendmanager_remotetcp.cc: Header inclusions tidying
18175           - remove a few redundant inclusions; prefer cstdio to stdio.h, etc
18176           in a few places; note why certain headers are required in cases
18177           where it's less obvious; in a .cc file, include the corresponding .h
18178           second (after <config.h>).
18180 Mon Apr 07 04:23:30 GMT 2008  Olly Betts <olly@survex.com>
18182         * configure.ac: Fix --enable-log=profile to be recognised.
18183         * common/omdebug.cc,common/omdebug.h: Fix build with
18184           --enable-log=profile.
18185         * HACKING: Actually document --enable-log=profile.
18187 Sat Apr 05 21:07:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18189         * tests/perftest.cc: Flush after each write, so we can monitor
18190           progress of long running tests (we might need to remove this
18191           again later, if profiling shows it has a noticeable impact).  Fix
18192           two calls to write() to be a single call.
18193         * tests/perftest_randomidx.cc: Add values to different slots; I'd
18194           added them all to slot 0 by mistake, so they were overwriting
18195           each other.
18197 Sat Apr 05 20:17:43 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18199         * tests/Makefile.am,tests/perftest_randomidx.cc: Add a new
18200           performance test which builds a randomly generated index, and
18201           times the index run.  Probably wants a bit more tweaking to make
18202           it slightly more representative, but should be a useful test to
18203           run on systems where downloading a large amount of data is
18204           impractical.
18205         * ChangeLog: Add missing log message for last commit.
18207 Sat Apr 05 20:16:58 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18209         * tests/perftest.cc,tests/perftest.h: Log indexing runs every 5
18210           seconds, as well as after every 1000 documents - gives useful
18211           information for slow index runs.
18213 Thu Apr 03 20:58:31 GMT 2008  Olly Betts <olly@survex.com>
18215         * backends/database.cc,include/xapian/dbfactory.h,
18216           include/xapian/version_h.cc: Remove lingering traces of quartz.
18218 Thu Apr 03 07:59:53 GMT 2008  Olly Betts <olly@survex.com>
18220         * bin/xapian-inspect.cc: Print top-bit-set characters as escaped
18221           hex forms as they often won't be valid UTF-8 sequences.
18223 Thu Apr 03 03:53:37 GMT 2008  Olly Betts <olly@survex.com>
18225         * bin/xapian-inspect.cc: Check for the user passing a database
18226           directory and issue a special error message since this is an obvious
18227           mistake to make.
18229 Wed Apr 02 07:00:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18231         * matcher/multimatch.cc: Modify the estimate for the number of hits
18232           based on the rate at which a match decider has been denying
18233           documents.  Also, reduce the upper bound based on the number of
18234           documents denied.
18235         * tests/api_db.cc: Check that the upper bound when a match decider
18236           is used is within the valid range, rather than a particular
18237           value.
18239 Tue Apr 01 22:40:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18241         * configure.ac,tests/perftest.cc,tests/submitperftest.py.in,
18242           tests/urllib2_file.py: Fix display of upper bound on number of
18243           results of search (was showing lower bound).  Fix display of
18244           closing <repetition> tags.  Add script to submit the results of a
18245           performance test to a central server.
18247 Tue Apr 01 11:19:58 GMT 2008  Olly Betts <olly@survex.com>
18249         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
18250           Gently rearrange where and how we check for overlong keys.
18251         * tests/api_wrdb.cc: Extend termtoolong1 to test that the "term too
18252           long" exception messages contain the length correctly.
18254 Tue Apr 01 06:06:43 GMT 2008  Olly Betts <olly@survex.com>
18256         * AUTHORS,HACKING,INSTALL,README,debian/control.in,debian/copyright,
18257           docs/install.html,xapian-core.spec.in: Standardise URLs on our
18258           website to be xapian.org not www.xapian.org.
18260 Tue Apr 01 03:44:32 GMT 2008  Olly Betts <olly@survex.com>
18262         * backends/flint/flint_record.cc,backends/flint/flint_values.cc,
18263           common/,docs/quickstartexpand.cc.html,docs/quickstartindex.cc.html,
18264           docs/quickstartsearch.cc.html,matcher/: Update the FSF address for
18265           the small number of files which still have the old one.  Remove the
18266           "START_LICENCE" and "END_LICENCE" markers from the small number of
18267           files which still have them.
18269 Tue Apr 01 02:23:27 GMT 2008  Olly Betts <olly@survex.com>
18271         * backends/remote/remote-database.cc,common/remoteprotocol.h,
18272           common/remoteserver.h,common/serialise.h,docs/remote_protocol.html,
18273           net/remoteserver.cc,net/serialise.cc: Update remote protocol to
18274           a new major version (31) and strip out all the gunk that's only
18275           there to keep it compatible with older version 30 clients.
18277 Tue Apr 01 00:12:38 GMT 2008  Olly Betts <olly@survex.com>
18279         * api/ompostlistiterator.cc,include/xapian/postingiterator.h: Remove
18280           the method Xapian::PostingIterator::get_weight() which has been
18281           commented out almost forever.  Weight-handling isn't really
18282           appropriate here.
18283         * api/ompostlistiterator.cc: Remove "\todo" since it's already done!
18285 Mon Mar 31 13:24:11 GMT 2008  Olly Betts <olly@survex.com>
18287         * backends/flint/: Remove unnecessary default dtors.
18289 Mon Mar 31 13:21:55 GMT 2008  Olly Betts <olly@survex.com>
18291         * HACKING: Document to prefer "new SomeClass" to "new SomeClass()".
18292         * api/omdocument.cc,api/omenquire.cc,backends/database.cc,
18293           backends/flint/flint_database.cc,
18294           backends/inmemory/inmemory_database.cc,matcher/multimatch.cc,
18295           matcher/queryoptimiser.cc,net/remoteserver.cc: Fix instances of
18296           the latter form to use the former form.
18298 Mon Mar 31 12:11:09 GMT 2008  Olly Betts <olly@survex.com>
18300         * tests/: Update svn:ignore property for perftest changes and remove
18301           quartz-related entries.
18302         * tests/perftest.cc: Add missing '#include "utils.h"'.
18304 Mon Mar 31 09:22:35 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18306         * Makefile.am,tests/,tests/harness/,tests/perftest.cc,tests/perftest.h,
18307           tests/perftest_matchdecider.cc: Rework the test collation
18308           mechanism slightly to allow it to be used by other testsuites:
18309           rename collate-apitest to collate-test, and add a parameter to it
18310           naming the output file.  Add new "testrunner.h" and
18311           "testrunner.cc" which are an equivalent to the old mechanism in
18312           apitest for running tests with various properties; the properties
18313           for each backend are now held as member variables of a TestRunner
18314           class, and testsuites (eg, apitest) subclass this and implement a
18315           "run()" method, which will be called for each backend with the
18316           appropriate properties set.  Move definition of DEFINE_TESTCASE
18317           macro into testsuite.h.  Add new testsuite "perftest", which is
18318           intended to contain potentially time consuming performance tests,
18319           logging the results to an XML file for later analysis.  Add a
18320           simple test of the ValueSetMatchDeciders to this testsuite.
18321           "perftest" isn't run by make check, because it is likely to take
18322           some hours to complete in future - instead, there's a new
18323           top-level target "check-perf" which builds and runs perftest.
18325 Mon Mar 31 08:13:21 GMT 2008  Olly Betts <olly@survex.com>
18327         * HACKING: Recommend using the "svn-ci" script.  Update the date
18328           command which produces the correct format timestamp for ChangeLog
18329           entries.
18331 Mon Mar 31 08:00:58 GMT 2008  Olly Betts <olly@survex.com>
18333         * backends/flint/flint_btreeutil.h: Fix some out-of-date comments.
18334         * configure.ac: Use AC_CHECK_SIZEOF to define SIZEOF_INT and
18335           SIZEOF_LONG.
18336         * backends/flint/flint_types.h: Use SIZEOF_INT and SIZEOF_LONG to
18337           determine the type of uint4 rather than always using unsigned long
18338           (which is 64 bits on most 64 bit Unix platforms).  Drop int4 for
18339           the time being, as we don't actually use it.
18341 Mon Mar 31 06:34:20 GMT 2008  Olly Betts <olly@survex.com>
18343         * backends/flint/flint_positionlist.cc: Refactor BitWriter::encode()
18344           to have a single call to write_bits(), and don't include it inline
18345           in the class as it's really a bit big to inline (and write_bits()
18346           should now be inlined into it, or at least tail-called).
18348 Mon Mar 31 05:33:02 GMT 2008  Olly Betts <olly@survex.com>
18350         * backends/flint/flint_positionlist.cc: Reorder header includes to
18351           match our new standard more closely.  Indent class definitions to
18352           match our coding standards.
18354 Mon Mar 31 05:31:59 GMT 2008  Olly Betts <olly@survex.com>
18356         * backends/flint/flint_positionlist.h: Remove unnecessary default
18357           dtor.
18359 Mon Mar 31 04:55:59 GMT 2008  Olly Betts <olly@survex.com>
18361         * backends/remote/net_document.cc,backends/remote/net_document.h:
18362           Rename "doc" member to "data" since it actually holds the document
18363           data.
18365 Mon Mar 31 03:25:21 GMT 2008  Olly Betts <olly@survex.com>
18367         * backends/flint/flint_document.cc,backends/flint/flint_document.h:
18368           Remove unnecessary default dtor.
18370 Mon Mar 31 02:53:48 GMT 2008  Olly Betts <olly@survex.com>
18372         * backends/inmemory/inmemory_alltermslist.cc,
18373           backends/inmemory/inmemory_alltermslist.h: Remove unnecessary
18374           default dtor.
18375         * backends/inmemory/inmemory_alltermslist.h: Fix bogus cut-and-pasted
18376           doxygen comment for ctor.
18378 Mon Mar 31 02:33:15 GMT 2008  Olly Betts <olly@survex.com>
18380         * common/inmemory_positionlist.h: Remove unnecessary default
18381           destructor.  Fix comment type ("inemory" -> "inmemory").
18383 Sun Mar 30 12:47:50 GMT 2008  Olly Betts <olly@survex.com>
18385         * include/xapian/queryparser.h: Drop explicit dtor for SimpleStopper
18386           which does nothing.
18388 Sun Mar 30 12:12:12 GMT 2008  Olly Betts <olly@survex.com>
18390         * include/xapian/valuesetmatchdecider.h: Don't bother checking if an
18391           element is present before calling std::set::erase().  Don't bother
18392           defining an explicit dtor which does nothing.
18394 Sat Mar 29 00:46:13 GMT 2008  Olly Betts <olly@survex.com>
18396         * tests/api_db.cc: Test matchfunctor bounds in combination with
18397           collapsing and percentage cutoff.  Also, range check
18398           get_matches_estimated rather than checking it's exactly the value
18399           currently returned.
18401 Fri Mar 28 21:37:27 GMT 2008  Olly Betts <olly@survex.com>
18403         * tests/api_nodb.cc: Test ValueSetMatchDecider::remove_value() for a
18404           value which isn't in the set.  Test that removing a value doesn't
18405           affect other values in the set.
18407 Fri Mar 28 21:03:30 GMT 2008  Olly Betts <olly@survex.com>
18409         * matcher/multimatch.cc: Avoid needless call to pl->get_termfreq_est()
18410           if we're using a matchdecider or matchspy.
18412 Fri Mar 28 10:28:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18414         * matcher/multimatch.cc: Set matches_lower_bound to 0 before
18415           starting the match process if there is a match decider or spy;
18416           previously, the lower_bound wasn't being reduced in the presence
18417           of a match decider unless all the potential results were
18418           retrieved.
18419         * tests/api_db.cc: Extend matchfunctor1 to check the bounds and
18420           estimates returned; includes a regression test for the above.
18422 Fri Mar 28 09:09:54 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18424         * tests/api_nodb.cc: Extend tests to check ValueSetMatchDecider
18425           remove_value and also ValueSetMatchDeciders holding more than one
18426           value.
18428 Fri Mar 28 02:41:45 GMT 2008  Olly Betts <olly@survex.com>
18430         * configure.ac: Update version info to match 1.0.6.
18432 Fri Mar 28 00:12:48 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18434         * api/omenquire.cc,include/xapian/enquire.h: Merge two of the
18435           get_mset() variants into one, with default arguments, which has
18436           exactly the same effect.  We added the two variants to preserve
18437           ABI compatibility, and now we're branched for 1.1 this is no
18438           longer necessary.
18440 Thu Mar 27 23:54:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18442         * api/valuesetmatchdecider.cc,include/xapian.h,
18443           include/xapian/valuesetmatchdecider.h: Add ValueSetMatchDecider,
18444           which is a matchdecider which is intended to be passed a set of
18445           values to look for in documents, and selects documents based on
18446           the presence of those values.
18447         * tests/api_db.cc,tests/api_nodb.cc: Add tests for the
18448           ValueSetMatchDecider - both for calling it standalone, and when
18449           passed to get_mset().
18450         * api/Makefile.mk,include/Makefile.mk: Tell build system about new
18451           files.
18453 Thu Mar 27 06:18:52 GMT 2008  Olly Betts <olly@survex.com>
18455         * api/omqueryinternal.cc: Initialise term_pos in previous change to
18456           fix valgrind-detected error.
18458 Thu Mar 27 06:13:01 GMT 2008  Olly Betts <olly@survex.com>
18460         * api/omqueryinternal.cc: Optimise Query(OP_VALUE_GE, <n>, "") to
18461           Query::MatchAll.
18462         * tests/api_nodb.cc: Add testcase for this case.
18464 Thu Mar 27 04:34:40 GMT 2008  Olly Betts <olly@survex.com>
18466         * backends/inmemory/inmemory_document.cc,
18467           backends/inmemory/inmemory_document.h: Rename "doc" member to
18468           "data" since it actually holds the document data.
18469         * backends/inmemory/inmemory_database.cc: Remove unused <stdio.h>.
18470           Include "inmemory_database.h" right after <config.h>.
18472 Wed Mar 26 23:44:03 GMT 2008  Olly Betts <olly@survex.com>
18474         * api/omenquire.cc: Throw InvalidArgumentError upon
18475           RSet::add_document(0).
18476         * tests/api_nodb.cc: Add regression test for this.
18477         * matcher/rset.cc: Add assertion that we don't see a zero docid when
18478           calculating rtermfreqs.
18479         * api/omdocument.cc: Use RETURN not return so debug logging sees the
18480           return value.
18481         * backends/inmemory/inmemory_database.cc,
18482           backends/remote/remote-database.cc: Change exception throwing for
18483           a zero docid to assertions since zero docids should be checked for
18484           before we get to here.
18486 Wed Mar 26 06:17:51 GMT 2008  Olly Betts <olly@survex.com>
18488         * common/postlist.h: Decree that PostList::check() must be passed a
18489           docid which actually exists in the database (which is always true
18490           currently and seems unlikely to be an onerous requirement).
18491         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc: Take
18492           advantage of this new precondition to simplify the code.
18493         * matcher/valuegepostlist.cc,matcher/valuerangepostlist.cc: Move the
18494           corresponding header first as our header inclusion order guidelines
18495           recommend.
18497 Thu Mar 13 01:58:18 GMT 2008  Olly Betts <olly@survex.com>
18499         * common/stats.h,include/xapian/enquire.h,matcher/localmatch.cc,
18500           matcher/weight.cc: Untangle Xapian::Weight to just initialise
18501           internal to 0 in its ctor, which is an ABI change.  Resolves
18502           a load of FIXME:1.1 comments.
18504 Thu Mar 13 00:50:06 GMT 2008  Olly Betts <olly@survex.com>
18506         * backends/flint/flint_lock.cc: Remove workaround for newlib which we
18507           don't seem to need elsewhere and was marked "FIXME:1.1".
18509 Thu Mar 13 00:49:27 GMT 2008  Olly Betts <olly@survex.com>
18511         * docs/deprecation.rst: Fix footnote ids after deprecation updates.
18513 Wed Mar 12 10:08:37 GMT 2008  Olly Betts <olly@survex.com>
18515         * tests/stemtest.cc: Remove support for OM_STEMTEST_SKIP_RANDOM,
18516           OM_STEMTEST_LANGUAGES, and OM_STEMTEST_SEED.
18518 Wed Mar 12 08:30:48 GMT 2008  Olly Betts <olly@survex.com>
18520         * docs/deprecation.rst: Update for bindings removals for 1.1.0.
18522 Wed Mar 12 06:59:25 GMT 2008  Olly Betts <olly@survex.com>
18524         * docs/deprecation.rst: Update for Omega removals for 1.1.0.
18526 Wed Mar 12 05:11:53 GMT 2008  Olly Betts <olly@survex.com>
18528         * api/omenquire.cc,api/omquery.cc,api/version.cc,docs/,
18529           generate-exceptions.in,include/xapian.h,include/xapian/enquire.h,
18530           include/xapian/query.h,tests/api_db.cc,tests/api_wrdb.cc,
18531           tests/apitest.cc,tests/harness/,tests/internaltest.cc: Remove all
18532           xapian-core features marked for removal in 1.1.0.
18534 Wed Mar 12 03:28:18 GMT 2008  Olly Betts <olly@survex.com>
18536         * HACKING,INSTALL,Makefile.am,backends/Makefile.mk,
18537           backends/dir_contents,backends/quartz/,bin/,configure.ac,docs/,
18538           tests/,tests/harness/,tests/quartztest.cc,tests/testdata/,
18539           xapian-core.spec.in: Remove the quartz backend.
18541 Wed Mar 12 02:14:33 GMT 2008  Olly Betts <olly@survex.com>
18543         * m4/xapian.m4: Improve wording of the error message when we can't
18544           find xapian-config.
18546 Wed Mar 12 02:13:32 GMT 2008  Olly Betts <olly@survex.com>
18548         * INSTALL: Minor wording tweak.
18550 Wed Mar 12 01:44:42 GMT 2008  Olly Betts <olly@survex.com>
18552         * bin/xapian-compact.cc: Initialise PostlistCursor member firstdid to
18553           avoid using it uninitialised when merging user metadata and the same
18554           key is present in more than one source database.  If the same user
18555           metadata key is present in more than one source database, copy an
18556           arbitrary tag value.
18558 Wed Mar 12 00:34:04 GMT 2008  Olly Betts <olly@survex.com>
18560         * bin/xapian-compact.cc: Fix potential SEGV (which I think can occur
18561           when compacting database(s) with user metadata but no postings).
18563 Fri Mar 07 09:46:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18565         * common/serialise.h: Add missing std:: before string.
18567 Fri Mar 07 00:47:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18569         * api/replication.cc: Tidy up a line which was wider than 80
18570           columns, and improve the error message returned when a database
18571           replica doesn't contain exactly one subdatabase.
18573 Fri Mar 07 00:34:28 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18575         * common/serialise.h,net/remoteconnection.cc,net/serialise.cc:
18576           Change encode_length() to a template, to allow the full range of
18577           off_t values to be encoded.  Also, adjust
18578           RemoteConnection::get_message_chunked() to allow the message
18579           length to be a 64 bit quantity.  Also, make a couple of type
18580           conversions to size_t explicit, to remove some warnings on
18581           windows.
18583 Thu Mar 06 01:57:04 GMT 2008  Olly Betts <olly@survex.com>
18585         * NEWS: Update from ChangeLog.
18587 Thu Mar 06 01:44:07 GMT 2008  Olly Betts <olly@survex.com>
18589         * bin/xapian-check.cc: Fix terminology - "user metadata" not "user
18590           metainfo".  Fix bug - need to invoke is_user_metadata rather than
18591           using the function pointer as the if condition!
18593 Thu Mar 06 01:41:09 GMT 2008  Olly Betts <olly@survex.com>
18595         * bin/xapian-compact.cc: Fix terminology - "user metadata" not "user
18596           metainfo".
18598 Wed Mar 05 21:17:02 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18600         * net/remoteconnection.cc: Add some casts (in the windows-specific
18601           code) to fix some warnings from MSVC.
18603 Wed Mar 05 19:01:35 GMT 2008  Olly Betts <olly@survex.com>
18605         * NEWS: Update to 1.0 branch point.
18607 Wed Mar 05 19:00:07 GMT 2008  Olly Betts <olly@survex.com>
18609         * common/msvc_dirent.cc: Tweak to bring comment back into 80 columns.
18611 Wed Mar 05 16:35:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18613         * common/msvc_dirent.cc: Fix sense of check for ENOENT after
18614           calling _findnext() - it should be checked for when an error code
18615           is returned, not when the call succeeds.
18616         * tests/api_replicate.cc: Fix tiny capitalisation typo.
18618 Wed Mar 05 16:29:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18620         * common/fileutils.cc: Check case where a backslash isn't found in
18621           calc_dirname, and don't replace slash with backslash in this
18622           case.
18624 Wed Mar 05 09:30:42 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18626         * bin/xapian-check.cc: Add understanding of user metainfo keys in
18627           the postlist table.  Allow the METAINFO key to be absent if the
18628           table only contains user metainfo keys.
18630 Wed Mar 05 09:01:48 GMT 2008  Olly Betts <olly@survex.com>
18632         * common/msvc_dirent.cc,common/msvc_dirent.h: Move licence boilerplate
18633           up front where we have it in every other file.  Move header guards
18634           to the usual location.  Detail the fix we've made for not setting
18635           errno to ENOENT erroneously.  Push the setting of orig_errno down
18636           a bit.
18638 Wed Mar 05 04:57:44 GMT 2008  Olly Betts <olly@survex.com>
18640         * configure.ac: -pedantic isn't actually very useful so just drop it
18641           rather than testing for known problem cases and risking unknown
18642           problem cases.
18644 Wed Mar 05 03:10:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18646         * matcher/valuegepostlist.cc,matcher/valuegepostlist.h: Implement
18647           skip_to method for ValueGePostList.  Previously, the
18648           ValueRangePostList::skip_to method was used, which would
18649           return incorrect documents.
18651 Wed Mar 05 02:54:27 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18653         * common/fileutils.cc: Search for \ instead of / when looking for a
18654           backslash!
18656 Wed Mar 05 02:51:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18658         * common/fileutils.cc: Fix incorrect docstring.
18660 Tue Mar 04 18:48:25 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18662         * common/msvc_dirent.cc: Fix readdir() so that it doesn't change
18663           errno to ENOENT on reaching the end of the directory, as
18664           specified by POSIX.
18666 Tue Mar 04 17:54:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18668         * net/remoteconnection.cc: Fix for a problem with windows.  Because
18669           we're using mixed styles of windows file IO, if a file descriptor
18670           which actually corresponds to a file was supplied to remote
18671           connection, the file pointer wasn't being adjusted after each
18672           call to ReadFile or WriteFile.  This manifested in the test case
18673           for replication, resulting in a (corrupt) 2048 byte changeset
18674           file being written (instead of a considerably longer changeset).
18675           To work around this, we explicitly move the file pointer
18676           ourselves.
18678 Tue Mar 04 17:41:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18680         * tests/api_replicate.cc: Close the replica before removing the
18681           temporary directory, to allow the rmdir to work on windows.
18683 Thu Feb 28 16:41:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18685         * common/remoteconnection.h: Include safeunistd.h, to get correct
18686           typedef for off_t on windows - previously, the size of the
18687           RemoteConnection class was varying depending on the order in
18688           which header files were included, resulting in memory corruption.
18689         * net/remoteserver.cc: Remove incorrect comment about what the
18690           problem was.
18692 Sat Feb 23 23:40:56 GMT 2008  Olly Betts <olly@survex.com>
18694         * xapian-config.in: Use globbing rather than iterating over the output
18695           of ls.
18697 Sat Feb 23 23:33:39 GMT 2008  Olly Betts <olly@survex.com>
18699         * xapian-config.in: Fix not to repeated headers in --swigheaders in a
18700           non-VPATH build.
18702 Fri Feb 22 17:20:19 GMT 2008  Olly Betts <olly@survex.com>
18704         * HACKING: Add note about preferring std::string().
18706 Fri Feb 22 17:05:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18708         * net/remoteserver.cc: Use std::string() instead of
18709           std::string(""), since it's a bit cleaner.
18711 Fri Feb 22 16:50:32 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18713         * net/remoteserver.cc: Add workaround for bug in MSVC 2005.
18715 Fri Feb 22 14:39:03 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18717         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
18718           backends/quartz/btree.cc: Use msvc_posix_rename() instead of
18719           rename() when renaming base files, so that an error isn't
18720           returned if the destination already exists.
18722 Thu Feb 21 17:24:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18724         * common/msvc_dirent.cc: Include msvc_dirent.h instead of dirent.h
18726 Thu Feb 21 17:09:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18728         * common/database.h: ReplicationInfo is a struct, not a class, so
18729           forward declare it as such.
18731 Thu Feb 21 12:16:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18733         * common/Makefile.mk: Add common/safedirent.h to distribution.
18735 Thu Feb 21 00:25:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18737         * xapian-config.in: Add swigheaders option, listing the header
18738           files used by swig, so that we can add the appropriate
18739           dependencies to the makefiles in the bindings.
18741 Wed Feb 20 20:59:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18743         * include/xapian/replication.h: Add a ReplicationInfo structure,
18744           and use it to return information about what has been done when
18745           the replication methods are called.
18746         * api/replication.cc,backends/database.cc,
18747           backends/flint/flint_database.cc,backends/flint/flint_database.h,
18748           common/database.h,common/replicatetcpclient.h,
18749           common/replicatetcpserver.h,net/replicatetcpclient.cc,
18750           net/replicatetcpserver.cc: Populate a ReplicationInfo structure
18751           when updating a replica, or sending changes to a file descriptor.
18752           Also, fix a bug with reading the replication parameters from a
18753           file, which caused a full database copy to be performed on every
18754           replication request on a newly opened DatabaseReplica object.
18755         * bin/xapian-replicate.cc: When doing verbose logging, display the
18756           number of database copies and changesets applied, and whether the
18757           live database has been updated.
18758         * tests/api_replicate.cc: Check that the information returned by
18759           the replication methods is as is should be, and add a regression
18760           test for always copying the database.
18762 Wed Feb 20 11:20:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18764         * backends/flint/: Improve reporting of failures to obtain lock due
18765           to unexpected errors - the error messages included in the
18766           exceptions raised are now more verbose in many situations.  Also,
18767           if the lock can't be obtained when a database is being created,
18768           report the lock failure, not a DatabaseOpeningError - it's more
18769           useful to know that the lock attempt failed than that the
18770           database wasn't present before the attempt to create it.
18772 Tue Feb 19 11:58:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18774         * bin/xapian-compact.cc: Fix compaction for database which contain
18775           user metadata keys.
18777 Sat Feb 16 19:53:44 GMT 2008  Olly Betts <olly@survex.com>
18779         * include/xapian/queryparser.h: Fix incorrect example in doccomment.
18781 Sat Feb 16 14:46:08 GMT 2008  Olly Betts <olly@survex.com>
18783         * AUTHORS: Add Matthew Somerville for Search::Xapian patches.
18785 Tue Feb 12 16:34:52 GMT 2008  Olly Betts <olly@survex.com>
18787         * docs/quickstart.html: Remove information covered by INSTALL since
18788           there's no good reason to repeat it and two copies just risks one
18789           getting out of date (as has happened here!)
18791 Tue Feb 12 16:27:30 GMT 2008  Olly Betts <olly@survex.com>
18793         * AUTHORS: Add David Spencer for reporting bug#237.
18795 Tue Feb 12 16:25:00 GMT 2008  Olly Betts <olly@survex.com>
18797         * docs/quickstart.html: Fix very out of date reference to MSet::items
18798           (bug#237).
18800 Tue Feb 12 12:40:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18802         * bin/xapian-compact.cc: Fix incorrect parameters passed to
18803           FlintTable constructor.
18805 Sat Feb 09 11:56:40 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18807         * common/socket_utils.h,net/remoteconnection.cc: More fixes for
18808           windows.
18810 Sat Feb 09 11:31:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18812         * common/msvc_dirent.cc,common/msvc_dirent.h: Hopefully this is a
18813           better implementation of dirent functions.
18815 Sat Feb 09 10:59:50 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18817         * common/: Add implementation of dirent.h for use with MSVC; this
18818           is copied from the mingw implementation, which has been placed in
18819           the public domain.  Add "safedirent.h" header for easy inclusion
18820           of this implementation.
18822 Sat Feb 09 10:43:49 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18824         * tests/api_replicate.cc: Use _putenv instead of setenv on windows.
18826 Sat Feb 09 09:56:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18828         * common/socket_utils.cc,common/socket_utils.h: More fixes for
18829           windows.
18831 Fri Feb 08 16:40:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18833         * common/Makefile.mk,common/socket_utils.cc,common/socket_utils.h,
18834           net/remoteconnection.cc,net/tcpclient.cc: Move windows-specific
18835           socket handling code from remoteconnection.cc into a separate
18836           file, provides the inline close_fd_or_socket for unix in the
18837           header file.  Use this in tcpclient.cc instead of close to close
18838           sockets correctly on windows.
18840 Fri Feb 08 16:40:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18842         * common/fileutils.cc,common/replicatetcpclient.h: Correct typos in
18843           windows only sections of code.
18845 Fri Feb 08 15:29:28 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18847         * net/remoteconnection.cc: Fixes for windows - always include
18848           "safesysselect.h", and include <io.h> on windows.
18849           Also, remove definition of an unused variable (probably due to a
18850           copy and paste error).
18852 Wed Feb 06 13:45:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18854         * bin/xapian-replicate.cc: Include "safeunistd.h" - needed for
18855           sleep, if nothing else.
18857 Tue Feb 05 18:10:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18859         * configure.ac: Set -pedantic in CXXFLAGS not AM_CXXFLAGS when
18860           testing for problem with it - AM_CXXFLAGS is an automake thing,
18861           and isn't used by the autoconf test.
18863 Tue Feb 05 17:50:55 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18865         * configure.ac: Cleaner patch for the test of compilation with
18866           -pedantic - cache the result using AC_CACHE_VAL().
18868 Tue Feb 05 17:32:11 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18870         * configure.ac: Check whether compilation of a cast of INFINITY to
18871           a double, and comparison with HUGE_VAL, causes a problem if
18872           -pedantic is specified (which it does on at least some Mac OSX
18873           versions).  If so, don't use the -pedantic compiler flag.
18875 Tue Feb 05 09:24:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18877         * backends/flint/flint_cursor.cc,backends/flint/flint_database.cc,
18878           backends/quartz/bcursor.cc: More fixes for debug logging - rename
18879           the "hex_encode" functions used for logging to
18880           "hex_display_encode" to avoid name clash.  Fix return type
18881           declared in flint_database.cc's DEBUGCALL macro.
18883 Tue Feb 05 09:18:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18885         * api/replication.cc: Fix for logging compiles: don't check return
18886           value of a void function.
18888 Tue Feb 05 09:14:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18890         * api/replication.cc: Reopen database after replication, to fix bug
18891           with applying a chain of changesets.
18892         * backends/flint/flint_database.cc: Don't use O_TRUNC (or O_CREAT)
18893           when modifying the DB files!
18894         * tests/api_replicate.cc: Don't call function from inside
18895           TEST_EQUAL, because that's a macro and the function will be
18896           double-evaluated.
18898 Tue Feb 05 02:07:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18900         * api/replication.cc,backends/database.cc,backends/flint/,
18901           common/database.h: Many fixes to the replication code.  Now
18902           parses replication changesets correctly and applies them to the
18903           databases.  Also, correct one bug with the generation of
18904           changesets.
18905         * docs/replication.rst,docs/replication_protocol.rst: Update.
18906         * tests/api_replicate.cc: Add test of two changesets being applied
18907           at once.
18909 Sun Feb 03 13:31:10 GMT 2008  Olly Betts <olly@survex.com>
18911         * backends/quartz/btree.cc: Backport atomic base update fix from
18912           flint.
18914 Sat Feb 02 22:47:56 GMT 2008  Olly Betts <olly@survex.com>
18916         * AUTHORS: Add Thomas Viehmann.
18918 Sat Feb 02 03:39:33 GMT 2008  Olly Betts <olly@survex.com>
18920         * backends/flint/flint_table.cc: Update the base files atomically to
18921           avoid problems with reading processes finding partially written
18922           ones.
18924 Sat Feb 02 03:38:00 GMT 2008  Olly Betts <olly@survex.com>
18926         * api/replication.cc: Don't leak the RemoteConnection object.
18928 Fri Feb 01 23:15:38 GMT 2008  Olly Betts <olly@survex.com>
18930         * backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h:
18931           Fix assorted comment errors.
18933 Fri Feb 01 20:20:23 GMT 2008  Olly Betts <olly@survex.com>
18935         * bin/xapian-replicate.cc: Fix comment.
18937 Fri Feb 01 20:13:23 GMT 2008  Olly Betts <olly@survex.com>
18939         * bin/xapian-replicate.cc: Document the default interval in --help.
18941 Fri Feb 01 20:05:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18943         * bin/xapian-replicate.cc: Remove the "return 0;" I added at the
18944           end of the function - I didn't realise this, but in C++ it's not
18945           necessary to have a return at the end of main().  Tidier without
18946           it, so it's gone.
18948 Fri Feb 01 19:44:05 GMT 2008  Olly Betts <olly@survex.com>
18950         * include/xapian/unicode.h: Add Unicode::toupper() to complement
18951           Unicode::tolower().
18952         * tests/api_unicode.cc: Add caseconvert1 testcase to test
18953           Unicode::tolower() and Unicode::toupper().
18955 Fri Feb 01 19:36:47 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18957         * bin/xapian-replicate.cc: Add one-shot and verbose options to
18958           replication client.
18960 Fri Feb 01 17:52:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18962         * api/replication.cc,backends/flint/flint_database.cc,
18963           include/xapian/replication.h,net/replicatetcpclient.cc,
18964           tests/api_replicate.cc: Keep the RemoteConnection in the
18965           DatabaseReplica object, so that any data which is read ahead
18966           doesn't get lost.  If an error occurs opening the database on
18967           the server, send a FAIL message over the connection, rather than
18968           just shutting it.
18970 Fri Feb 01 16:51:05 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18972         * backends/flint/flint_table.cc: Fix a database corruption bug: see
18973           bugzilla entry #232.  Was caused by lazy tables not being created
18974           at the right revision.
18975         * tests/api_wrdb.cc: Regression test for bug.
18977 Fri Feb 01 15:10:23 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18979         * api/replication.cc,backends/database.cc,
18980           backends/flint/flint_database.cc,backends/flint/flint_database.h,
18981           common/database.h,docs/replication_protocol.rst,
18982           tests/api_replicate.cc: Add the UUID of the new database to the
18983           DB_HEADER message, and move the code which compares UUIDs out of
18984           flint_database.cc and into replication.cc.  Fix testcase which
18985           missed incorrect comparison of UUIDs.  Store the UUID of the
18986           live database which has been replicated in the config file - this
18987           isn't an ideal place, but will do until the UUID is stored in the
18988           iamflint file, and we can parse it from there.  Remove debug
18989           printfs.
18991 Fri Feb 01 15:09:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
18993         * bin/quartzdump.cc: Rename hex_encode() to hex_display_encode() to
18994           avoid collision.  (The hex encoding produced by this doesn't
18995           encode spaces, so isn't quite the same as the functions just
18996           added to utils.cc).
18998 Fri Feb 01 15:08:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19000         * common/utils.cc,common/utils.h: Add utility functions to
19001           hex-encode and decode a string, so we can store UUIDs in the
19002           config file in replicated DB directories.
19004 Fri Feb 01 12:49:34 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19006         * tests/harness/backendmanager_multi.cc: Make the multi
19007           backendmanager use relative paths in its stub databases.
19009 Fri Feb 01 12:17:38 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19011         * common/Makefile.mk: Add replicationprotocol.h to distribution.
19013 Fri Feb 01 12:10:19 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19015         * backends/database.cc: Stub databases used to
19016           assume that any relative paths were relative to the current
19017           working directory.  They now assume that relative paths are
19018           relative to the directory holding the stub database file.
19019           Also, lines which begin with a '#' character are ignored, so we
19020           can place comments in the stub database files.  Also, recognise a
19021           new database type: a "stub directory", which is a directory
19022           containing a stub database file named "XAPIANDB".
19023         * api/replication.cc: Replica databases are now created as
19024           directories containing a "XAPIANDB" stub file, so all the
19025           workings are internal.
19026         * common/Makefile.mk,common/fileutils.cc,common/fileutils.h: Add
19027           new set of utilities to manipulate path names - extracting
19028           directory names, and joining paths.
19029         * tests/api_replicate.cc: Enable test properly, now that
19030           it passes.  Test needs to be expanded to check that the database
19031           copy succeeded better.
19033 Fri Feb 01 09:47:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19035         * backends/flint/flint_database.cc: Fix warning about unused
19036           variable.
19038 Fri Feb 01 03:49:56 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19040         * api/replication.cc,backends/database.cc,
19041           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19042           common/database.h,common/replicationprotocol.h: Move replication
19043           protocol definition into a separate file.  Add (virtual) support
19044           methods for applying changesets to Database::Internal.  Sort out
19045           atomic swapping of old database for new after a database copy.
19047 Fri Feb 01 03:49:09 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19049         * tests/quartztest.cc: Rename removedir to removedir_recursive() to
19050           avoid conflict with my new function.
19052 Fri Feb 01 03:09:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19054         * docs/replication_protocol.rst: Specify (though not in much
19055           detail) what we mean by "packed" strings and integers.
19057 Fri Feb 01 03:09:06 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19059         * include/xapian/replication.h: Be more precise in documentation
19060           comment.
19062 Fri Feb 01 03:07:29 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19064         * net/remoteconnection.cc: Remove debug printfs()
19066 Fri Feb 01 03:03:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19068         * common/utils.cc,common/utils.h: Add overloaded rmdir() which
19069           works directly on C++ strings.  Add removedir() method which
19070           removes a directory and its contents (as long as the directory
19071           only contains files, not subdirectories).
19073 Fri Feb 01 01:51:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19075         * common/remoteconnection.h,net/remoteconnection.cc: Add
19076           "sniff_next_message_type" method to RemoteConnection, and replace
19077           the hardcoded "4096" size of the chunks used for the remote
19078           connection confersation with a #define.  Fix file mode when
19079           creating a file with receive_file(), and bugs with writing too
19080           much data to the file.
19082 Thu Jan 31 03:41:42 GMT 2008  Olly Betts <olly@survex.com>
19084         * bin/Makefile.mk,bin/xapian-replicate-server.cc,
19085           common/replicatetcpserver.h: Add xapian-replicate-server server
19086           program.
19088 Thu Jan 31 02:46:38 GMT 2008  Olly Betts <olly@survex.com>
19090         * bin/Makefile.mk,bin/xapian-replicate.cc,common/replicatetcpclient.h,
19091           net/replicatetcpclient.cc,net/replicatetcpserver.cc: Add
19092           xapian-replicate client program.
19094 Wed Jan 30 19:13:08 GMT 2008  Olly Betts <olly@survex.com>
19096         * include/xapian/replication.h: Correct name of parameter in doxygen
19097           comment.
19099 Wed Jan 30 15:58:44 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19101         * api/replication.cc,backends/database.cc,
19102           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19103           common/database.h: Hook up the apply_changeset function from the
19104           API through to flint.  (The flint layer currently doesn't work,
19105           though.)  Also, implement the get_uuid() function for flint, by
19106           using the mtime of the iamflint file.
19107         * tests/api_replicate.cc: Finish implementation of the "replicate"
19108           function, and add a test of a replication of a database using
19109           this.  The return value test is commented out for now, because
19110           the flint layer doesn't work, but this puts the machinery needed
19111           to test this in place.
19113 Wed Jan 30 15:10:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19115         * backends/flint/flint_database.cc: Implement sending of the whole
19116           database copy.
19118 Wed Jan 30 14:45:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19120         * tests/,tests/harness/: Add new testcase file (api_replicate.cc)
19121           to hold tests of the replication functionality.  Currently has
19122           one partially written test.  Also, add new function to apitest.h:
19123           get_named_writable_database_path(), which allows the path to a
19124           writable database to be obtained; throws an exception for those
19125           backend types for which that isn't meaningful.  Add a new
19126           variable for use in the conditions for tests: "replicas", which
19127           should be set to true for all backends which support replication.
19129 Wed Jan 30 14:42:26 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19131         * net/remoteconnection.cc: Fix the calls to fcntl() in
19132           send_message() and send_file() to use fdout instead of fdin.
19133           This has probably been stopping timeouts working very well.
19135 Tue Jan 29 15:05:09 GMT 2008  Olly Betts <olly@survex.com>
19137         * common/remoteconnection.h,net/remoteconnection.cc: Add
19138           receive_file() method.
19140 Tue Jan 29 14:37:36 GMT 2008  Olly Betts <olly@survex.com>
19142         * common/remoteconnection.h,net/remoteconnection.cc: Add the ability
19143           to read a message in chunks.
19145 Tue Jan 29 10:08:02 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19147         * include/xapian/replication.h: Expand documentation comment.
19148         * api/replication.cc,backends/database.cc,
19149           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19150           common/database.h: Add a write_changesets_to_fd() function to
19151           Database::Internal, with a default implementation to raise an
19152           UnimplementedError.  Hook
19153           DatabaseMaster::write_changesets_to_fd() up to this, and
19154           implement it for flint databases (the code to send a copy of a
19155           database still needs work).
19157 Tue Jan 29 10:01:39 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19159         * docs/replication_protocol.rst: Document that a FAIL message ends
19160           the conversation.
19162 Tue Jan 29 09:59:01 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19164         * docs/replication_protocol.rst: Document the protocol used to
19165           transfer the updates.
19167 Tue Jan 29 09:57:14 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19169         * net/remoteconnection.cc: Fix typo.
19171 Tue Jan 29 09:48:15 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19173         * net/remoteconnection.cc: For win32, use msvc_posix_open() to open
19174           the file descriptor, so other things can delete the file while
19175           the sending is in progress.
19177 Tue Jan 29 01:23:19 GMT 2008  Olly Betts <olly@survex.com>
19179         * net/remoteconnection.cc: Add an assertion.
19181 Tue Jan 29 01:14:07 GMT 2008  Olly Betts <olly@survex.com>
19183         * common/remoteconnection.h,net/remoteconnection.cc: Add send_file()
19184           method to RemoteConnection to allow the contents of a file to be
19185           sent as a message.
19187 Tue Jan 29 00:28:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19189         * api/replication.cc,include/xapian/replication.h: Add methods to
19190           allow parameters to be stored associated with a DatabaseReplica.
19192 Tue Jan 29 00:16:42 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19194         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
19195           Change write_changesets_to_fd() to take the revision information
19196           as a string - it now includes a UUID.  Add get_uuid() method to
19197           FlintDatabase - currently always returns "FIXME", but will
19198           eventually return an ID for the database.
19200 Mon Jan 28 19:07:20 GMT 2008  Olly Betts <olly@survex.com>
19202         * common/Makefile.mk,common/replicatetcpclient.h,net/Makefile.mk,
19203           net/replicatetcpclient.cc,net/replicatetcpserver.cc: Add
19204           ReplicateTcpClient class implementing a replication client over
19205           TCP/IP.
19207 Mon Jan 28 17:13:09 GMT 2008  Olly Betts <olly@survex.com>
19209         * common/Makefile.mk,common/replicatetcpserver.h,net/Makefile.mk,
19210           net/replicatetcpserver.cc: Add ReplicateTcpServer class implementing
19211           a replication server over TCP/IP.
19213 Mon Jan 28 17:01:02 GMT 2008  Olly Betts <olly@survex.com>
19215         * common/remoteconnection.h,net/remoteconnection.cc: Minor tweaks
19216           to allow unidirectional connections.
19218 Mon Jan 28 16:26:22 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19220         * api/replication.cc: Fix overly hasty commit - add
19221           get_description() method for internal class, and use that instead
19222           of trying to access a private member.
19224 Mon Jan 28 16:22:18 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19226         * api/replication.cc,common/output.h,include/xapian/replication.h:
19227           Add get_description() methods to DatabaseMaster and
19228           DatabaseReplica, and add XAPIAN_OUTPUT_FUNCTION methods for them
19229           so that they can be displayed in debugging methods.  Should fix
19230           build with logging enabled.
19232 Mon Jan 28 11:52:24 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19234         * api/replication.cc,include/xapian/replication.h: Add
19235           DatabaseReplica::close() method, to allow the write lock to be
19236           released easily.
19238 Mon Jan 28 11:21:36 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19240         * api/replication.cc,include/xapian/replication.h: Change
19241           DatabaseReplica into a PIMPL style class, now that it has more
19242           than one member.  Add visibility annotations to DatabaseMaster
19243           and DatabaseReplica.
19245 Mon Jan 28 10:44:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19247         * api/replication.cc,include/xapian/replication.h: Add code to swap
19248           stub database files over atomically, and to track the current
19249           real database path.
19251 Mon Jan 28 04:52:12 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19253         * api/replication.cc,backends/database.cc,
19254           backends/flint/flint_changesetapplier.h,
19255           backends/flint/flint_database.cc,backends/flint/flint_database.h,
19256           common/database.h: Implement opening of the database underlying
19257           DatabaseReplica objects, and hook up the get_revision_info()
19258           method for it.
19260 Mon Jan 28 04:17:21 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19262         * common/utils.cc,common/utils.h: Add "dir_exists" function, to
19263           check for presence of a directory at a given path.
19265 Mon Jan 28 03:48:46 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19267         * backends/flint/flint_table.cc: Change a "+= 1" to ++ - this isn't
19268           Python!
19270 Mon Jan 28 03:08:45 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19272         * api/Makefile.mk,api/replication.cc,include/Makefile.mk,
19273           include/xapian/replication.h: Add interface to replication
19274           functionality.  (Currently just unimplemented stubs.)
19276 Mon Jan 28 02:01:02 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19278         * backends/flint/flint_btreebase.h: Add a missing std::
19280 Mon Jan 28 01:59:55 GMT 2008  Olly Betts <olly@survex.com>
19282         * common/remotetcpserver.h: Fix typo in doxygen comment: `@port' ->
19283           `@param port'.  Update comment - socket is no longer closed by
19284           handle_one_connection().
19286 Mon Jan 28 01:28:00 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19288         * backends/flint/: Add support for recording the changes made to a
19289           database in "changeset" files.  These are currently not produced
19290           by default - for now, the "XAPIAN_MAX_CHANGESETS" environment
19291           variable can be set to control production of them.  As part of
19292           these changes, the FlintTable constructor now takes the
19293           tablename, so that this can be stored in changesets produced from
19294           the table.
19295         * bin/xapian-check.cc,bin/xapian-compact.cc,bin/xapian-inspect.cc:
19296           Update to match changes in FlintTable constructor.
19297         * docs/Makefile.am,docs/replication.rst,docs/replication_protocol.rst:
19298           Add basic documentation of the replication protocol (though this
19299           isn't yet definitive, since the protocol isn't finished!)
19301 Sun Jan 27 21:10:24 GMT 2008  Olly Betts <olly@survex.com>
19303         * net/remotetcpserver.cc,net/tcpserver.cc: The job of closing the
19304           socket connected to the client more naturally belongs to the
19305           framework TcpServer class.
19307 Sun Jan 27 20:32:55 GMT 2008  Olly Betts <olly@survex.com>
19309         * backends/flint/flint_table.cc: Call flint_io_sync() in commit()
19310           rather than flush_db(), as that gives more time for written blocks
19311           to get written to disk before we block on waiting for them to be.
19312           This should tend to speed up WritableDatabase::flush() in I/O bound
19313           situations.
19315 Sun Jan 27 19:35:08 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19317         * backends/flint/flint_spelling.h,backends/flint/flint_synonym.h:
19318           Merge changes to the spelling and synonym tables just before
19319           calling FlintTable::flush_db(), rather than just before calling
19320           FlintTable::commit(), so that they don't get forgotten.
19322 Sun Jan 27 14:29:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19324         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
19325           backends/flint/flint_table.h: Separate step which flushes
19326           modified blocks from cursors to the DB file from the rest of
19327           commit.  This will allow me to insert the changeset writing code
19328           between the two steps, so it can assume that the DB file is fully
19329           up-to-date.  Also remove an out-of-date FIXME about trying to
19330           avoid updating the value and position tables if they're not used:
19331           these tables are now lazily created anyway.
19333 Sun Jan 27 12:53:51 GMT 2008  Olly Betts <olly@survex.com>
19335         * net/tcpserver.cc: Change explicit references to xapian-tcpsrv.
19337 Sun Jan 27 12:26:24 GMT 2008  Olly Betts <olly@survex.com>
19339         * common/tcpclient.h,common/tcpserver.h,net/: Make use of TCP_NODELAY
19340           optional at the class level.  No user-visible changes.
19342 Sat Jan 26 17:18:09 GMT 2008  Olly Betts <olly@survex.com>
19344         * backends/dbfactory_remote.cc,common/Makefile.mk,
19345           common/remotetcpclient.h,common/tcpclient.h,net/Makefile.mk,
19346           net/remotetcpclient.cc,net/tcpclient.cc: Split out the "open
19347           a connection" part of TcpClient and rename the rest to
19348           RemoteTcpClient.
19350 Sat Jan 26 14:01:34 GMT 2008  Olly Betts <olly@survex.com>
19352         * bin/xapian-tcpsrv.cc,common/Makefile.mk,common/remotetcpserver.h,
19353           common/tcpserver.h,net/Makefile.mk,net/remotetcpserver.cc,
19354           net/tcpserver.cc: Split TcpServer into a generic TCP server
19355           class (TcpServer) and a subclass of this which implements the
19356           remote backend TCP server (RemoteTcpServer).
19358 Sat Jan 26 11:06:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19360         * backends/flint/flint_btreebase.cc,backends/quartz/btree_util.h,
19361           common/utils.h: Move fdcloser into utils.h, since it's generally
19362           useful, and it's better not to have multiple copies of it
19363           scattered through the code.
19365 Fri Jan 25 15:06:30 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19367         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Use
19368           msvc_posix_unlink() on windows in sys_unlink_if_exists()
19369           functions, so that they will work even if the file is still open.
19370           This probably changes no behaviour, because
19371           sys_unlink_if_exists() is probably never called in such a
19372           situation, but this may not be true in future.
19374 Thu Jan 24 13:31:20 GMT 2008  Olly Betts <olly@survex.com>
19376         * docs/overview.html: Remove commented-out comment about OP_XOR.
19378 Thu Jan 24 13:30:04 GMT 2008  Olly Betts <olly@survex.com>
19380         * docs/intro_ir.html: Briefly mention how pure boolean retrieval is
19381           supported.
19383 Thu Jan 24 13:28:44 GMT 2008  Olly Betts <olly@survex.com>
19385         * HACKING: Move "debian/patch" update earlier in the checklist.
19387 Thu Jan 24 13:26:45 GMT 2008  Olly Betts <olly@survex.com>
19389         * NEWS: Partly update from ChangeLog.
19391 Thu Jan 17 22:32:08 GMT 2008  Olly Betts <olly@survex.com>
19393         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h,
19394           bin/xapian-check.cc: Apply tweaked version of patch for OS/2 support
19395           by Yuri Dario.
19396         * AUTHORS: Add Yuri Dario.
19397         * PLATFORMS: Mention OS/2.
19399 Mon Jan 14 11:03:05 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19401         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Fix more
19402           assertions to avoid overflowing int.
19404 Mon Jan 14 09:29:51 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19406         * backends/flint/flint_btreeutil.h: Fix assertions to not overflow
19407           int.
19409 Mon Jan 14 09:23:54 GMT 2008  Olly Betts <olly@survex.com>
19411         * backends/quartz/btree_util.h: Fix assertions to not overflow int.
19413 Mon Jan 14 08:47:33 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19415         * configure.ac: Fix test for gcc being 4.0.x or 4.1.x, so we don't
19416           use -Wstrict-overflow with them.
19418 Sun Jan 13 23:28:04 GMT 2008  Olly Betts <olly@survex.com>
19420         * configure.ac: GCC warning flag overhaul.  Stop passing
19421           "-Wno-multichar" since any multi-character character literal is
19422           bound to be a typo (I believe we were only passing it after
19423           misinterpreting its sense!)  Pass "-Wformat-security",
19424           "-Wconversion", and "-pedantic" for all GCC versions.  Add
19425           "-Winit-self" and "-Wstrict-overflow=5" for GCC >= 4.2.  The
19426           latter may be too aggressive, but it's hard to know without
19427           trying it more widely.
19429 Sun Jan 13 00:25:25 GMT 2008  Olly Betts <olly@survex.com>
19431         * backends/flint/flint_check.h,backends/flint/flint_table.h,
19432           backends/quartz/btree.h,net/tcpserver.cc,tests/harness/testsuite.cc:
19433           Add XAPIAN_NORETURN() annotations to functions and non-virtual
19434           methods which don't return.
19435         * net/remoteserver.cc: Assign bool variable using a comparison rather
19436           than subtraction, so the intent is clearer.
19438 Sun Jan 13 00:23:41 GMT 2008  Olly Betts <olly@survex.com>
19440         * backends/flint/flint_check.cc: Tweak a comparison so all the
19441           constants are on the same side (micro-optimisation).
19442         * backends/quartz/btreecheck.cc: Equivalent change for quartz.
19444 Sun Jan 13 00:20:08 GMT 2008  Olly Betts <olly@survex.com>
19446         * tests/queryparsertest.cc: Add a couple of testcases I wrote for a
19447           reported problem which turned out to work correctly already.  Still,
19448           they add to our test coverage.
19450 Thu Jan 10 02:04:55 GMT 2008  Olly Betts <olly@survex.com>
19452         * tests/runtest.in: Cope with "@EXEEXT" extension on test programs.
19454 Wed Jan 09 21:57:59 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19456         * api/omquery.cc,api/omqueryinternal.cc,common/remoteprotocol.h,
19457           include/xapian/query.h,matcher/queryoptimiser.cc,tests/api_anydb.cc:
19458           Add OP_VALUE_LE operator, for symmetry with OP_VALUE_GE.
19459           Currently implemented internally using a ValueRangePostList with
19460           an empty string as the start of the range.
19462 Wed Jan 09 19:36:37 GMT 2008  Richard Boulton <richard@lemurconsulting.com>
19464         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h: Add
19465           new query operator OP_VALUE_GE, for performing "return documents
19466           with a value greater than this" searches.  Also add a new
19467           constructor to go with this which takes a value number and a
19468           single string argument.
19469         * matcher/: Add ValueGePostList class, as a subclass of
19470           ValueRangePostList.  Change internal members of
19471           ValueRangePostList to be protected instead of private.  Add
19472           support for making ValueGePostLists from OP_VALUE_GE queries.
19473         * tests/api_anydb.cc: Add valuege1 testcase of OP_VALUE_GE queries.
19474         * common/remoteprotocol.h: Bump minor protocol number, due to
19475           additional operator being possible in serialised queries.
19477 Wed Jan 09 15:18:16 GMT 2008  Olly Betts <olly@survex.com>
19479         * PLATFORMS: Update from Debian buildd logs.
19481 Wed Jan 09 13:53:34 GMT 2008  Olly Betts <olly@survex.com>
19483         * tests/harness/backendmanager_remotetcp.cc: Fix XAPIAN_NORETURN() to
19484           wrap a declaration, not the definition, to fix compile failure on
19485           mingw "make check".  Correct file documentation comment to refer
19486           to "remotetcp" not "remoteprog".
19488 Mon Jan 07 01:28:14 GMT 2008  Olly Betts <olly@survex.com>
19490         * PLATFORMS: Remove reports for 0.8.x as they're too old to be
19491           interesting.  Separate out 0.9.x reports.
19493 Mon Jan 07 00:23:10 GMT 2008  Olly Betts <olly@survex.com>
19495         * PLATFORMS: Add Solaris 9 and 10 success reports from James Aylett.
19497 Sat Jan 05 19:13:12 GMT 2008  Olly Betts <olly@survex.com>
19499         * languages/compiler/generator.c: In generate_call(), if the failure
19500           case would just be "if (ret == 0) return 0;" then combine it with
19501           the test for the called method returning signal `f'.
19503 Sat Jan 05 18:28:31 GMT 2008  Olly Betts <olly@survex.com>
19505         * languages/compiler/generator.c: Generate more readable code for the
19506           inlined single ASCII character literal string check.
19508 Sat Jan 05 18:27:07 GMT 2008  Olly Betts <olly@survex.com>
19510         * languages/steminternal.cc: Tweak skip_utf8() to save ~0.5% on
19511           stemtest.
19513 Sat Jan 05 02:20:57 GMT 2008  Olly Betts <olly@survex.com>
19515         * languages/compiler/generator.c: Optimise a single ASCII character
19516           literalstring check by inlining the check.  This makes stemtest run
19517           about 2% faster.
19519 Fri Dec 21 21:57:11 GMT 2007  Olly Betts <olly@survex.com>
19521         * docs/valueranges.rst: Fix example of using multiple VRPs to come out
19522           as a "program listing".
19524 Fri Dec 21 15:31:35 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19526         * common/stringutils.h,common/utils.h: Move declaration of
19527           within_DBL_EPSILON back into utils.h to fix builds with
19528           --enable-assertions, and since it's not string-related.
19530 Fri Dec 21 02:12:49 GMT 2007  Olly Betts <olly@survex.com>
19532         * NEWS: Note that one change was "(bug#45)".  Bump release date.
19534 Thu Dec 20 22:00:41 GMT 2007  Olly Betts <olly@survex.com>
19536         * NEWS: Update again for 1.0.5.
19538 Thu Dec 20 17:50:26 GMT 2007  Olly Betts <olly@survex.com>
19540         * common/stringutils.cc: Add new file I failed to commit.
19542 Thu Dec 20 17:17:28 GMT 2007  Olly Betts <olly@survex.com>
19544         * tests/queryparsertest.cc: Add feature tests to ensure that ':' is
19545           inserted between prefix and term when it should be.
19547 Thu Dec 20 13:58:18 GMT 2007  Olly Betts <olly@survex.com>
19549         * common/,queryparser/queryparser.lemony,
19550           queryparser/termgenerator_internal.cc,tests/harness/index_utils.cc,
19551           tests/harness/unixcmds.cc: Move C_isupper(), C_toupper(), etc from
19552           utils.cc/utils.h to stringutils.cc/stringutils.h, since they are
19553           string-related.
19555 Thu Dec 20 03:00:08 GMT 2007  Olly Betts <olly@survex.com>
19557         * HACKING: Remove details of issues with autoconf < 2.57 and
19558           automake < 1.5 as these versions are antiques compared to our
19559           current requirements of autoconf >= 2.59 and automake >= 1.8.3.
19561 Wed Dec 19 03:41:42 GMT 2007  Olly Betts <olly@survex.com>
19563         * AUTHORS,NEWS,configure.ac: Update for 1.0.5.
19565 Wed Dec 19 03:36:30 GMT 2007  Olly Betts <olly@survex.com>
19567         * api/omdatabase.cc: Calling WritableDatabase methods when we don't
19568           have exactly one subdatabase now throws InvalidOperationError.
19569         * tests/termgentest.cc: Add regression test to check that we now get
19570           InvalidOperationError (previously this case gave a segmentation
19571           fault).
19573 Wed Dec 19 01:39:01 GMT 2007  Olly Betts <olly@survex.com>
19575         * PLATFORMS: Update from tinderbox.
19577 Tue Dec 18 23:17:37 GMT 2007  Olly Betts <olly@survex.com>
19579         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Move lots
19580           of headers included by flint_lock.h to flint_lock.cc since
19581           flint_lock.h doesn't need them.  Add a "FIXME:1.1:" comment about
19582           an odd special-case for newlib.
19584 Thu Dec 13 17:34:19 GMT 2007  Olly Betts <olly@survex.com>
19586         * tests/stemtest.cc: Mark undocumented OM_STEMTEST_* environmental
19587           variables for removal in 1.1.
19589 Thu Dec 13 01:27:15 GMT 2007  Olly Betts <olly@survex.com>
19591         * HACKING: Need to check RPM packaging with Tim Brody too.
19593 Thu Dec 13 01:26:16 GMT 2007  Olly Betts <olly@survex.com>
19595         * configure.ac: Note that we check for <streambuf> because GCC 2.95
19596           only has <streambuf.h>.
19598 Thu Dec 13 01:23:27 GMT 2007  Olly Betts <olly@survex.com>
19600         * AUTHORS: Add Ralf Wildenhues for suggesting a way to factor out
19601           the boilerplate in multitarget rules.
19603 Wed Dec 12 02:02:51 GMT 2007  Olly Betts <olly@survex.com>
19605         * NEWS: Update for ChangeLog in preparation for 1.0.5.
19607 Wed Dec 12 01:02:29 GMT 2007  Olly Betts <olly@survex.com>
19609         * docs/admin_notes.rst: Mark as up to date for Xapian 1.0.5.  Minor
19610           wording improvements.
19612 Sun Dec 09 01:09:19 GMT 2007  Olly Betts <olly@survex.com>
19614         * tests/collate-apitest: Check for sources in the build directory
19615           first, and only if not there prepend "$srcdir/".  The recently
19616           added api_generated.cc will be in the build directory when using an
19617           SVN checkout.
19619 Fri Dec 07 12:37:08 GMT 2007  Olly Betts <olly@survex.com>
19621         * docs/sorting.rst,docs/valueranges.rst: State explicitly that
19622           Xapian::sortable_serialise() is used to encode values at index time
19623           and give an example of how it is called.
19625 Thu Dec 06 15:55:31 GMT 2007  Olly Betts <olly@survex.com>
19627         * tests/Makefile.am,tests/collate-apitest,
19628           tests/generate-api_generated: Add automatically generated tests to
19629           ensure that API classes generally have copy ctors and assignment
19630           operators, and also generally have a default ctor.
19632 Thu Dec 06 15:32:23 GMT 2007  Olly Betts <olly@survex.com>
19634         * docs/sorting.rst: Fill in the remaining items in the outline.
19636 Thu Dec 06 12:50:46 GMT 2007  Olly Betts <olly@survex.com>
19638         * tests/valgrind.supp: Another variant of the zlib suppression.
19640 Wed Dec 05 18:31:12 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19642         * Makefile.am,docs/Makefile.am,tests/Makefile.am: Add dir_contents,
19643           docs/dir_contents and tests/dir_contents to distribution
19644           tarballs.
19646 Wed Dec 05 18:28:12 GMT 2007  Olly Betts <olly@survex.com>
19648         * preautoreconf: Really fix handling of version.h.
19650 Wed Dec 05 18:20:54 GMT 2007  Olly Betts <olly@survex.com>
19652         * preautoreconf: Handle make pattern substitutions.
19654 Wed Dec 05 18:11:31 GMT 2007  Olly Betts <olly@survex.com>
19656         * preautoreconf: Fix special-case handling of include/xapian/version.h.
19658 Wed Dec 05 18:01:34 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19660         * matcher/multiandpostlist.cc,matcher/multiandpostlist.h: Implement
19661           get_wdf() method for MultiAndPostList (by adding together the
19662           wdfs of the subpostlists).  Not currently used (but will be by
19663           SynonymPostList).
19665 Wed Dec 05 17:43:24 GMT 2007  Olly Betts <olly@survex.com>
19667         * preautoreconf: Special-case version.h.
19669 Wed Dec 05 17:31:47 GMT 2007  Olly Betts <olly@survex.com>
19671         * preautoreconf: Fix errors in previous check-in.
19673 Wed Dec 05 17:18:26 GMT 2007  Olly Betts <olly@survex.com>
19675         * preautoreconf: Parse BUILT_SOURCES to determine which files are
19676           generated and so need looking for in the build directory - this
19677           won't need updating when new files are generated, or existing
19678           ones stop being.
19680 Wed Dec 05 16:55:26 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19682         * preautoreconf: Fix "make doxygen_docs" with VPATH build: look for
19683           generated code files in build dir, and make rule which re-runs
19684           preautoreconf change to srcdir first.
19686 Wed Dec 05 14:59:52 GMT 2007  Olly Betts <olly@survex.com>
19688         * docs/sorting.rst: Document set_sort_by_value() and friends.
19690 Wed Dec 05 11:31:27 GMT 2007  Olly Betts <olly@survex.com>
19692         * docs/sorting.rst: More work.
19694 Tue Dec 04 14:42:57 GMT 2007  Olly Betts <olly@survex.com>
19696         * docs/bm25.html: Improve wording.
19698 Mon Dec 03 17:11:01 GMT 2007  Olly Betts <olly@survex.com>
19700         * docs/Makefile.am,docs/index.html,docs/sorting.rst: Add the start of
19701           a topic document on sorting.
19703 Mon Dec 03 17:10:04 GMT 2007  Olly Betts <olly@survex.com>
19705         * common/stats.h: Fix comment typos.
19707 Sun Dec 02 14:36:47 GMT 2007  Olly Betts <olly@survex.com>
19709         * docs/synonyms.rst: Minor wording clarification.
19711 Sun Dec 02 14:23:37 GMT 2007  Olly Betts <olly@survex.com>
19713         * tests/collate-apitest: Fix reversed conditional for deciding
19714           which generated headers to update.
19716 Sun Dec 02 03:47:44 GMT 2007  Olly Betts <olly@survex.com>
19718         * tests/apitest.cc: Include api_all.h instead of the individual
19719           generated headers.
19721 Sun Dec 02 03:44:56 GMT 2007  Olly Betts <olly@survex.com>
19723         * tests/collate-apitest: Add licence and (C).  Only update .h files
19724           which may have changed.  Generate api_all.h which just includes
19725           the generated headers corresponding to all the sources processed.
19726           Strip spaces from conditions.
19727         * tests/Makefile.am: Update for api_all.h.
19729 Sun Dec 02 03:21:59 GMT 2007  Olly Betts <olly@survex.com>
19731         * matcher/weight.cc: Wrap comment.
19733 Sun Dec 02 03:21:25 GMT 2007  Olly Betts <olly@survex.com>
19735         * AUTHORS: Thank Petr Ročkai.
19737 Sun Dec 02 02:40:58 GMT 2007  Olly Betts <olly@survex.com>
19739         * api/omenquire.cc: Oops, this file also part of previous change.
19741 Sun Dec 02 02:14:27 GMT 2007  Olly Betts <olly@survex.com>
19743         * include/xapian/enquire.h: Implement copy ctor and assignment
19744           operator for Xapian::Enquire (bug#219).
19745         * configure.ac: Note what this means in terms of library versioning.
19747 Sat Dec 01 02:54:51 GMT 2007  Olly Betts <olly@survex.com>
19749         * include/xapian/: Stop describing get_description() as an
19750           "Introspection method", as this doesn't help to explain what it
19751           does, and get_description() doesn't actually fall under any of the
19752           formal definitions of "introspection" I can find.
19754 Sat Dec 01 02:45:16 GMT 2007  Olly Betts <olly@survex.com>
19756         * tests/harness/index_utils.h: Overlooked (C) update.
19758 Sat Dec 01 02:34:59 GMT 2007  Olly Betts <olly@survex.com>
19760         * HACKING,INSTALL,common/,configure.ac,tests/api_anydb.cc,
19761           tests/api_db.cc,tests/btreetest.cc,tests/harness/testsuite.cc,
19762           tests/harness/testsuite.h,tests/harness/testutils.cc,
19763           tests/internaltest.cc: Raise the minimum supported GCC version
19764           to 2.95.3 and strip out om_ostringstream which is no longer
19765           required.
19767 Sat Dec 01 01:10:04 GMT 2007  Olly Betts <olly@survex.com>
19769         * tests/api_sorting.cc,tests/api_wrdb.cc: Move sortfunctor2 from
19770           api_wrdb.cc to api_sorting.cc.
19772 Sat Dec 01 00:43:31 GMT 2007  Olly Betts <olly@survex.com>
19774         * tests/valgrind.supp: Add version of the valgrind zlib suppression
19775           for 64 bit hosts.
19777 Fri Nov 30 18:06:49 GMT 2007  Olly Betts <olly@survex.com>
19779         * tests/harness/index_utils.cc: Workaround MSVC which doesn't clear
19780           the fail bit when a stream is reopened.
19782 Fri Nov 30 00:44:21 GMT 2007  Olly Betts <olly@survex.com>
19784         * matcher/queryoptimiser.cc: Make delete_ptr<> a functor rather than
19785           a function.  This fixes the build with SGI's compiler, and
19786           apparently a functor allows more compilers to inline the call.
19788 Thu Nov 29 19:24:22 GMT 2007  Olly Betts <olly@survex.com>
19790         * configure.ac: Fix previous change to work.
19792 Thu Nov 29 18:53:09 GMT 2007  Olly Betts <olly@survex.com>
19794         * configure.ac: Assume we have <sstream> and hardwire HAVE_SSTREAM to
19795           be 1.  If this assumption proves correct for all platforms we care
19796           about, we can rip out the old om_ostringstream code.
19798 Thu Nov 29 17:51:11 GMT 2007  Olly Betts <olly@survex.com>
19800         * tests/harness/index_utils.cc: Work around MSVC.
19802 Wed Nov 28 03:17:06 GMT 2007  Olly Betts <olly@survex.com>
19804         * api/sorter.cc: Fix reverse sorting of value strings with different
19805           lengths.
19806         * tests/api_wrdb.cc: Add test sortfunctor2 to check this actually
19807           works.
19809 Wed Nov 28 02:27:37 GMT 2007  Olly Betts <olly@survex.com>
19811         * tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/:
19812           Add get_named_writable_database() and use it to fix spell3 on
19813           Microsoft Windows.
19815 Tue Nov 27 16:56:12 GMT 2007  Olly Betts <olly@survex.com>
19817         * xapian-config.in: Factor out the code to check if we need explicit
19818           dependencies into a function.  On platforms we know don't need
19819           explicit dependencies, --ltlibs now gives the same output as --libs.
19821 Tue Nov 27 00:24:18 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19823         * tests/Makefile.am: Remove api_regressions.cc from list - didn't
19824           mean to commit that (yet).
19826 Tue Nov 27 00:17:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19828         * tests/Makefile.am: Use $(collated_apitest_sources) in list of
19829           apitest_SOURCES; now a new test file can be added just by adding
19830           it to this variable.
19832 Mon Nov 26 23:04:00 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19834         * tests/Makefile.am: Add generated apitest .h files to targets of
19835           rule which calls collate-apitest, since they're also generated by
19836           it.  Change the rule to use a .stamp and a .lock file as
19837           described in HACKING, to fix parallel builds.
19839 Mon Nov 26 18:48:20 GMT 2007  Olly Betts <olly@survex.com>
19841         * Makefile.am: Distribute preautoreconf.
19843 Mon Nov 26 17:24:15 GMT 2007  Olly Betts <olly@survex.com>
19845         * HACKING,configure.ac,docs/Makefile.am: Use pngcrush to reduce the
19846           size of PNG files in the doxygen-generated HTML docs.
19848 Mon Nov 26 15:39:58 GMT 2007  Olly Betts <olly@survex.com>
19850         * docs/Makefile.am: Don't package or install various intermediate
19851           files which doxygen generates.
19853 Mon Nov 26 13:14:19 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19855         * tests/api_db.cc: Ensure that the database needed for stubdb1 is
19856           present, by creating it first (with get_database()).  This
19857           requires that the database type is flint, but the test doesn't
19858           depend on any particular database type anyway, so this doesn't
19859           lose us anything.
19861 Mon Nov 26 13:08:08 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19863         * tests/collate-apitest: Display the name of the backend which a
19864           set of tests is for.
19866 Mon Nov 26 09:45:39 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19868         * tests/Makefile.am,tests/collate-apitest: Fix with VPATH builds -
19869           pass srcdir as the first argument to collate-apitest, so it can
19870           find the sources.  Also, use srcdir to form the path to
19871           collate-apitest when calling it from the make rule.
19873 Mon Nov 26 02:22:08 GMT 2007  Olly Betts <olly@survex.com>
19875         * tests/api_db.cc,tests/apitest.cc,tests/apitest.h: Convert the
19876           remaining tests to be collated.
19878 Mon Nov 26 02:08:18 GMT 2007  Olly Betts <olly@survex.com>
19880         * tests/api_db.cc,tests/apitest.cc,tests/apitest.h: Collate the
19881           localdb and remotedb tests.
19883 Mon Nov 26 01:40:59 GMT 2007  Olly Betts <olly@survex.com>
19885         * tests/: Collate the specchar, doclendb, collfreq, allterms, and
19886           multivalue tests.
19888 Mon Nov 26 01:21:35 GMT 2007  Olly Betts <olly@survex.com>
19890         * tests/: Collate the anydb tests.  Remove the generated files upon
19891           "make clean" in maintainer-mode.
19893 Mon Nov 26 00:34:03 GMT 2007  Olly Betts <olly@survex.com>
19895         * tests/: Collate the wrdb tests.
19897 Mon Nov 26 00:18:18 GMT 2007  Olly Betts <olly@survex.com>
19899         * tests/api_posdb.cc,tests/apitest.cc: Add "writable" flag and use it
19900           for poslist2 and poslist3.
19902 Mon Nov 26 00:13:43 GMT 2007  Olly Betts <olly@survex.com>
19904         * tests/: Collate the posdb tests.
19906 Mon Nov 26 00:03:29 GMT 2007  Olly Betts <olly@survex.com>
19908         * tests/: Collate the nodb tests.
19910 Sun Nov 25 23:55:02 GMT 2007  Olly Betts <olly@survex.com>
19912         * tests/: Collate the transaction tests.
19914 Sun Nov 25 23:49:26 GMT 2007  Olly Betts <olly@survex.com>
19916         * tests/: Collate the unicode tests.
19918 Sun Nov 25 23:35:40 GMT 2007  Olly Betts <olly@survex.com>
19920         * tests/: Make a start on automatically collating test cases.
19922 Sun Nov 25 22:41:52 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19924         * api/weightinternal.cc: Initialise all members of
19925           Xapian::Weight::Internal, and use initialisers rather than
19926           assignment to do so.  Fixes an error reported by valgrind.
19928 Sun Nov 25 16:48:21 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19930         * matcher/weight.cc: Add another note of a FIXME needed for 1.1
19932 Sun Nov 25 16:40:28 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19934         * matcher/bm25weight.cc,matcher/tradweight.cc: Add some missing
19935           "using namespace std;" lines which are needed due to earlier
19936           changes in header file inclusions.  Also, remove some unnecessary
19937           std:: prefixes.
19939 Sun Nov 25 16:35:30 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19941         * common/stats.h,include/xapian/enquire.h,matcher/localmatch.cc,
19942           matcher/weight.cc: Undo ABI change introduced in previous commit
19943           with a nasty workaround; we can't initialise Weight::internal
19944           reliably, because applications complied with earlier versions of
19945           the library may have inlined the constructor of the Weight class.
19946           Therefore, we can't delete Weight::internal in the destructor,
19947           because we don't know if it was initialised.  Instead, we
19948           add factory methods for making Weight::Internal objects to Stats,
19949           register all the Weight::Internal objects made by these factory
19950           methods in a list is the Stats object, and delete them when Stats
19951           is deleted (which conveniently happens after the match has
19952           finished).  Mark all this with FIXME:1.1: so that we can easily
19953           convert it to nicer code once we branch for 1.1.
19955 Sun Nov 25 15:14:04 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19957         * api/Makefile.mk,api/weightinternal.cc,common/,
19958           include/xapian/enquire.h,matcher/: Split Stats and
19959           Xapian::Weight::Internal into different classes: Stats remains
19960           with the same members (but becomes a concrete class, rather than
19961           a typedef of another class), and Xapian::Weight::Internal becomes
19962           a simple container for exactly those statistics which are
19963           relevant for a weight object (ie, it holds just one termfreq and
19964           reltermfreq, rather than a map of all of them).  This is
19965           dynamically allocated, so Xapian::Weight now owns the object
19966           pointed to by its "internal" member, and deletes it in its
19967           destructor.  Add a new header file "weightinternal.h" so that the
19968           full "stats.h" stuff doesn't need to be included for definitions
19969           of weighting schemes.  Replace #include "stats.h" lines with
19970           forward declarations of Stats, where possible.
19972 Sun Nov 25 15:09:29 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19974         * api/omenquire.cc: Add missing include of stats.h
19975         * matcher/queryoptimiser.cc,net/tcpserver.cc: Remove unnecessary
19976           include of stats.h
19977         * net/remoteserver.cc: Include missing includes of omassert.h and
19978           stats.h, and change an Assert to AssertEq.
19979         * matcher/multimatch.cc: Output the contents of the stats object in
19980           debugging code.
19982 Sun Nov 25 04:22:05 GMT 2007  Olly Betts <olly@survex.com>
19984         * common/multimatch.h: No longer need "autoptr.h" here.
19986 Sun Nov 25 04:07:04 GMT 2007  Olly Betts <olly@survex.com>
19988         * common/multimatch.h: Fix typo in documentation comment.
19990 Sun Nov 25 03:58:21 GMT 2007  Olly Betts <olly@survex.com>
19992         * common/remoteserver.h,matcher/localmatch.cc,matcher/multimatch.cc:
19993           Remove lingering traces of StatsGatherer.
19995 Sat Nov 24 20:44:03 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
19997         * common/stats.h,matcher/Makefile.mk,matcher/stats.cc: Add
19998           get_description() method for Xapian::Weight::Internal, and add
19999           stats.cc back to hold it's implementation.
20000         * common/output.h: Add an output function for Stats (aka
20001           Xapian::Weight::Internal) to fix the build when debug logging is
20002           enabled.
20004 Sat Nov 24 01:21:56 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20006         * api/omenquire.cc,common/,matcher/,net/remoteserver.cc: Remove
20007           StatsGatherer and its subclasses completely.  Instead of a
20008           StatsGatherer subclass, MultiMatch is now simply passed a Stats
20009           object, and passes this to the prepare_match() methods of the sub
20010           matchers to be populated with statistics.  OmEnquire then passes
20011           the same Stats object to MultiMatch::get_mset(), whereas a remote
20012           submatch sends the Stats object to the parent match, to be
20013           combined with the global statistics, and then passes the returned
20014           global statistics to MultiMatch::get_mset().  Remove stats.cc
20015           since it only contained implementations of StatsGatherer methods,
20016           and networkstats.h which only contained the definition of the
20017           NetworkStatsGatherer.
20018         * matcher/rset.cc: Add the rset size to the database - we now
20019           compute the global rset size the same way as we compute the
20020           global collection size: by adding the sizes in the sub
20021           collections together.  We have the total rset size easily
20022           available in the code, but building the total rset size up from
20023           the sub-databases makes the code simpler.
20025 Sat Nov 24 01:21:18 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20027         * matcher/andnotpostlist.cc: Add a missing #include "omdebug.h".
20029 Fri Nov 23 23:13:12 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20031         * common/stats.h,matcher/: Remove the StatsSource class entirely.
20032           LocalSubMatch and RemoteSubMatch now contribute their stats
20033           directly to the gatherer in the prepare_match() method, so the
20034           gatherer doesn't need to worry about keeping track of the sources
20035           of statistics.
20037 Fri Nov 23 21:46:32 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20039         * common/submatch.h,matcher/: Change SubMatch::start_match() (and
20040           all start_match() methods in subclasses) to take the statistics
20041           for the whole collection as an additional parameter.  MultiMatch
20042           now gets the statistics from the gatherer and passes it to
20043           start_match().
20045 Fri Nov 23 17:38:28 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20047         * common/stats.h: Add set_termfreq() and set_reltermfreq()
20048           convenience methods to Stats; and remote the take_my_stats(),
20049           my_termfreq_is() and my_reltermfreq_is() methods from
20050           StatsSource.
20051         * common/rset.h,matcher/rset.cc: Rename give_stats_to_statssource()
20052           to contribute_stats(), and give it take a Stats object instead of
20053           a StatsSource object.  Can't forward declare Stats, so we need to
20054           #include "stats.h" in rset.h now, unfortunately.
20055         * matcher/localmatch.cc,matcher/localmatch.h: Move register_term()
20056           implementation inline into prepare_match().  Build up the
20057           statistics in a local Stats object, rather than passing them
20058           piecemeal to the StatsSource object, and then use
20059           StatsSource::get_my_stats() to set them, just like
20060           RemoteSubMatcher.
20062 Fri Nov 23 14:35:49 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20064         * matcher/localmatch.cc,matcher/localmatch.h: Get the total
20065           statistics from the gatherer directly and store them in a new
20066           member of LocalSubMatch, rather than getting them via the
20067           StatsSource when we need them.  This bypasses the
20068           get_total_stats() and set_total_stats() methods of StatsSource.
20069         * common/stats.h,matcher/stats.cc: Remove the (newly) unused
20070           methods StatsSource::set_total_stats() and
20071           StatsSource::get_total_stats().
20073 Fri Nov 23 11:40:54 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20075         * common/,include/xapian/enquire.h,matcher/: Rename
20076           Xapian::Weight::Internal to StatsSource (which I hope to be able
20077           to remove shortly), and rename the Stats class to
20078           Xapian::Weight::Internal.  Requires minimal plumbing changes -
20079           TradWeight and BM25Weight classes now query the internals
20080           directly for the statistics, LocalSubMatch now gets the
20081           statistics from StatsSource and passes them to wt_factory.
20082           common/remote-database.h and common/serialise.h now need to
20083           #include stats.h unfortunately, because a forward declaration
20084           can't be used for Xapian::Weight::Internal (unless I'm missing
20085           something).
20087 Fri Nov 23 10:15:43 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20089         * common/stats.h,matcher/bm25weight.cc,matcher/localmatch.cc,
20090           matcher/tradweight.cc: Remove the Xapian::Weight::Internal
20091           get_total_* methods: instead, add a get_total_stats() method
20092           which returns a Stats object representing the whole collection.
20093           Add get_termfreq() and get_reltermfreq() convenience methods to
20094           Stats for looking up individual term's statistics.  Also, change
20095           protected members of Xapian::Weight::Internal to private members,
20096           since we're no longer subclassed.  Also, in tradweight.cc, avoid
20097           division by zero in the (rare) situation of the average length
20098           being zero; in the same way as this is handled by bm25weight.cc.
20100 Thu Nov 22 12:58:02 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20102         * common/stats.h,matcher/localmatch.cc,matcher/localmatch.h,
20103           matcher/stats.cc: Replay Xapian::Weight::Internal's
20104           perform_request() method with set_total_stats().  The replacement
20105           takes the stats as a parameter, rather than magically getting
20106           them from the gatherer.  The LocalSubMatch now needs to call the
20107           gatherer to get the stats, and then pass it to set_total_stats(),
20108           so needs to keep a reference to the gatherer.  However, we are
20109           now one step closer to decoupling the gatherer from the stats.
20111 Thu Nov 22 11:47:56 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20113         * common/stats.h,matcher/localmatch.cc: Remove automatic
20114           just-in-time calls to statssource.perform_request() - instead,
20115           make it public, and call it explicitly before the postlist tree
20116           is constructed.  Also, make Xapian::Weight::Internal's destructor
20117           non-virtual, since it's no longer subclassed anywhere.
20119 Thu Nov 22 11:02:39 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20121         * common/networkstats.h,matcher/stats.cc: Remove
20122           fetch_local_stats() method, and use of have_gathered flag for
20123           caching result of gathering the stats - instead, simply Assert
20124           that have_gathered is false before gathering; we currently only
20125           call get_local_stats() once for a given gatherer.
20127 Thu Nov 22 10:04:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20129         * common/rset.h: Change multiline "///" comments to use "/**",
20130           style.
20132 Thu Nov 22 09:27:42 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20134         * matcher/localmatch.cc,matcher/queryoptimiser.h: Update a couple
20135           of comments.
20137 Thu Nov 22 08:29:19 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20139         * common/networkstats.h,common/stats.h,matcher/: Remove the
20140           LocalStatsSource and NetworkStatsSource classes - just use the
20141           base class (Xapian::Weight::Internal) instead.  LocalStatsSource
20142           had no extra members whatsoever, whereas NetworkStatsSource had
20143           various members which weren't used, and a single method
20144           "take_remote_stats" which simply sets the statistics held - I've
20145           renamed this method "set_my_stats" and added it to the base
20146           class.
20148 Thu Nov 22 00:05:06 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20150         * common/networkstats.h,common/stats.h,matcher/stats.cc: Replace
20151           StatsGatherer::contrib_my_stats() and
20152           StatsSource::contrib_stats() methods; instead add a
20153           get_my_stats() method to StatsSource and simply call this.
20155 Wed Nov 21 16:37:10 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20157         * common/networkstats.h,common/remoteserver.h,matcher/stats.cc,
20158           net/remoteserver.cc: Rework NetworkStatsGatherer - it no longer
20159           needs to have the RemoteServer passed into it; instead, the
20160           RemoteServer calls NetworkStatsGatherer::set_global_stats() with
20161           the global statistics as soon as it gets them.  This new method
20162           replaces fetch_global_stats().  As a result, the RemoteServer no
20163           longer needs to remember the global_stats received from the
20164           network - it just passes them straight to the gatherer - so
20165           remove the global_stats and get_global_stats() methods from
20166           RemoteServer.
20168 Wed Nov 21 15:42:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20170         * common/rset.h,matcher/rset.cc: Document the member functions of
20171           RSetI, and remove the totally unused "get_reltermfreq()" member.
20172           Also remove an ancient, commented out, implementation of an
20173           "add_document()" member, and add copyright lines.
20175 Wed Nov 21 15:26:11 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20177         * common/rset.h,matcher/localmatch.cc,matcher/rset.cc: Make
20178           RSet::calculate_stats() private, and call it only from
20179           RSet::give_stats_to_statssource().  Was previously called
20180           directly from localmatch.cc, but this way it's clear that it's
20181           only called once.
20183 Wed Nov 21 14:30:17 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20185         * matcher/remotesubmatch.h: Move implementation of constructor into
20186           .cc file (accidentally missed this file from the last-but-one
20187           commit, which did the necessary changes to the .cc file).
20189 Wed Nov 21 14:28:48 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20191         * matcher/rset.cc: Improve debugging messages.
20193 Wed Nov 21 14:26:44 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20195         * matcher/remotesubmatch.cc: Add some debugging, and reorder the
20196           header includes.
20198 Wed Nov 21 13:21:35 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20200         * matcher/multimatch.cc: Add DEBUGCALL_STATIC macros to the new
20201           functions, and tidy some code in the constructor slightly.
20203 Wed Nov 21 10:00:48 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20205         * matcher/multimatch.cc: Split the loop which calls prepare_match()
20206           out of the constructor into a separate static function.
20208 Tue Nov 20 18:23:53 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20210         * matcher/multimatch.cc: Refactor code which splits the RSet into
20211           sub RSets (one for each sub database) into a separate function.
20212           No functional change.
20214 Tue Nov 20 17:56:47 GMT 2007  Olly Betts <olly@survex.com>
20216         * common/remoteserver.h: Remove unused '#include "omassert.h"'.
20218 Tue Nov 20 12:53:06 GMT 2007  Olly Betts <olly@survex.com>
20220         * AUTHORS: Thank Marcus Rueckert for GCC 4.3 fixes.
20222 Tue Nov 20 10:22:28 GMT 2007  Olly Betts <olly@survex.com>
20224         * bin/quartzcompact.cc: Recent GCC 4.3 snapshots thinks cf and tf
20225           might be used uninitialised.  They won't be, but we only need to
20226           initialise them once per run to silence the warning, so just do
20227           that.
20229 Tue Nov 20 10:20:13 GMT 2007  Olly Betts <olly@survex.com>
20231         * bin/quartzcompact.cc: Fix equality testing of C strings to use
20232           strcmp() rather than '=='.  In practice, using '==' often gives
20233           the desired effect due to pooling of constant strings, but this may
20234           have resulted in bugs on some platforms.
20236 Tue Nov 20 01:47:16 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20238         * tests/harness/backendmanager_remotetcp.cc: Add missing "#include
20239           <cstring>".
20241 Tue Nov 20 01:26:40 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20243         * tests/harness/unixcmds.cc: Add #include of cstring, to get
20244           strchr, needed for gcc 4.3 snapshot.
20246 Tue Nov 20 01:25:22 GMT 2007  Olly Betts <olly@survex.com>
20248         * api/maptermlist.h,api/termlist.cc,backends/alltermslist.cc,
20249           backends/flint/flint_spelling.cc,backends/flint/flint_spelling.h,
20250           common/alltermslist.h,common/termlist.h,common/vectortermlist.h:
20251           Provide a default implementation of accumulate_stats() in the
20252           virtual base class TermIterator::Internal instead of repeating it
20253           in each subclass which doesn't get used for generating an ESet, and
20254           don't call abort() in the default implementation - an Assert(false)
20255           is sufficient, and more consistent with how we handle other similar
20256           cases.
20258 Tue Nov 20 01:24:17 GMT 2007  Olly Betts <olly@survex.com>
20260         * bin/xapian-progsrv.cc: Add missing '#include <cstdlib>'.
20262 Mon Nov 19 23:54:53 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20264         * backends/flint/flint_postlist.cc,backends/quartz/quartz_postlist.cc:
20265           Add NORETURN macro to report_read_error(); fixes warnings from
20266           GCC 4.3 about possibly uninitialised values.  Reorder header
20267           includes to follow proposed policy.
20268         * backends/flint/flint_postlist.h: Add include of omdebug.h which
20269           previously needed to be done before including this.  Tidy up
20270           order of includes.
20272 Mon Nov 12 14:06:38 GMT 2007  Olly Betts <olly@survex.com>
20274         * api/Makefile.mk,api/omenquire.cc,api/sorter.cc,common/multimatch.h,
20275           common/omenquireinternal.h,include/Makefile.mk,include/xapian.h,
20276           include/xapian/enquire.h,include/xapian/sorter.h,
20277           matcher/multimatch.cc,net/remoteserver.cc,tests/: Add new functor
20278           class to allow more sophisticated sorting options.
20280 Mon Nov 12 14:03:06 GMT 2007  Olly Betts <olly@survex.com>
20282         * HACKING: Improved wording.
20284 Sun Nov 11 07:51:57 GMT 2007  Olly Betts <olly@survex.com>
20286         * include/xapian/queryparser.h: Hide the v102 namespace from Doxygen
20287           as it isn't user visible.
20289 Sat Nov 10 21:53:21 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20291         * tests/Makefile.am: Remove .multi in clean-local rule; should fix
20292           distcheck.
20294 Sat Nov 10 15:34:25 GMT 2007  Olly Betts <olly@survex.com>
20296         * tests/harness/testutils.cc,tests/harness/testutils.h:
20297           mset_expect_order_begins() is never used, so remove it.
20298         * tests/harness/testutils.cc: Don't need <iostream>, only <fstream>.
20300 Sat Nov 10 11:09:22 GMT 2007  Olly Betts <olly@survex.com>
20302         * docs/index.html: Add a list of documents on particular features and
20303           include links to previously unlinked-to documents.  Weed down the
20304           top navigation bar which had grown to unwieldy length.
20306 Sat Nov 10 10:17:42 GMT 2007  Olly Betts <olly@survex.com>
20308         * PLATFORMS: Update for Debian buildds.
20310 Sat Nov 10 02:13:07 GMT 2007  Olly Betts <olly@survex.com>
20312         * matcher/multimatch.cc: If "first" is non-zero, then use nth_element
20313           with vector::reverse_iterator to partition items such that the
20314           unwanted ones are at the end not the start.  This means the call
20315           to vector::erase() no longer needs to copy all the wanted items.
20317 Fri Nov 09 19:01:38 GMT 2007  Olly Betts <olly@survex.com>
20319         * tests/api_db.cc: collapsekey3 is too strict - even if the value
20320           never occurs, lower_bound may drop as we may reject potential
20321           matches before applying the collapse test.
20323 Fri Nov 09 16:36:39 GMT 2007  Olly Betts <olly@survex.com>
20325         * include/xapian/termiterator.h: Clarify get_wdf() versus
20326           get_termfreq() in documentation comments.
20328 Fri Nov 09 00:07:02 GMT 2007  Olly Betts <olly@survex.com>
20330         * tests/api_db.cc: Fix comment typo.
20332 Fri Nov 09 00:04:45 GMT 2007  Olly Betts <olly@survex.com>
20334         * HACKING,Makefile.am,tests/Makefile.am: New make target
20335           'check-multi'.
20337 Thu Nov 08 23:54:47 GMT 2007  Olly Betts <olly@survex.com>
20339         * tests/api_anydb.cc: Re-enable test case allpostlist1 for multi
20340           since it works fine (presumably thanks to the multi_postlist.cc
20341           fix).
20343 Thu Nov 08 23:44:29 GMT 2007  Olly Betts <olly@survex.com>
20345         * tests/,tests/harness/: Add new "multi" test backend which indexes
20346           the specified text file(s) to two databases which will look just
20347           like the equivalent single database when searched together.  Since
20348           writing isn't supported, a number of tests which require this are
20349           disabled, as are any tests which explicitly use a multi-database
20350           since a multi-of-multis isn't equivalent to a multi of equivalent
20351           individual databases.  A handful of testcases are also currently
20352           disabled because they fail for reasons not yet fully explored.
20353           Existing tests run with the new backend provide regression tests
20354           for the two recent fixes.
20356 Thu Nov 08 23:42:33 GMT 2007  Olly Betts <olly@survex.com>
20358         * backends/multi/multi_postlist.cc: Fix PostingIterator::skip_to()
20359           when running over multiple databases.  Regression test to follow.
20361 Thu Nov 08 23:37:51 GMT 2007  Olly Betts <olly@survex.com>
20363         * docs/overview.html: Mention the "auto" backend.
20365 Thu Nov 08 23:28:30 GMT 2007  Olly Betts <olly@survex.com>
20367         * matcher/multimatch.cc: Fix bug in handling a pure boolen match over
20368           more than one database under set_docid_order(ASCENDING) - we can't
20369           shortcut in this case because MergePostList generally doesn't return
20370           docids in order.  Regression test to follow.
20372 Thu Nov 08 21:07:09 GMT 2007  Olly Betts <olly@survex.com>
20374         * matcher/queryoptimiser.cc: Fix comment typo.
20376 Thu Nov 08 07:40:48 GMT 2007  Olly Betts <olly@survex.com>
20378         * api/omdatabase.cc: Don't use MultiPostList when there's only one
20379           subdatabase.
20381 Thu Nov 08 05:40:17 GMT 2007  Olly Betts <olly@survex.com>
20383         * tests/api_db.cc: Run sortrel1 for inmemory too.
20385 Thu Nov 08 03:43:50 GMT 2007  Olly Betts <olly@survex.com>
20387         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc,
20388           tests/harness/index_utils.h: New class FileIndexer which acts like
20389           an iterator returning a Xapian::Document object for each paragraph
20390           in some specified files.
20392 Wed Nov 07 16:30:49 GMT 2007  Olly Betts <olly@survex.com>
20394         * common/,docs/remote_protocol.html,matcher/,net/remoteserver.cc,
20395           net/serialise.cc: If we're doing a match with only one database
20396           which is remote then just return the unserialised MSet from the
20397           remote match.  This requires that we include
20398           internal->percent_factor in the MSet serialisation, which requires
20399           a minor remote protocol version bump.
20401 Wed Nov 07 09:47:28 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20403         * matcher/multimatch.cc: Fix logging build (a change to the logging
20404           code introduced in r9644 didn't compile)
20406 Tue Nov 06 17:10:51 GMT 2007  Olly Betts <olly@survex.com>
20408         * include/xapian/document.h: Better documentation comment for
20409           Document::termlist_count().
20411 Tue Nov 06 12:32:16 GMT 2007  Olly Betts <olly@survex.com>
20413         * Makefile.am,docs/Makefile.am,languages/Makefile.mk: No need to set
20414           SUFFIXES manually for suffixes used in implicit rules.
20416 Tue Nov 06 10:41:14 GMT 2007  Olly Betts <olly@survex.com>
20418         * matcher/multimatch.cc: If we're collapsing on a value, keep track of
20419           the number of empty collapse values seen, since that allows us to
20420           give a better lower bound on the number of matches.
20421         * tests/api_db.cc: This change breaks an (incorrect) assumption in
20422           collapsekey3, so change that test case to be a regression test for
20423           the improved estimate.  Add a new test as (the previously missing)
20424           collapsekey2, but disable it for now as we don't seem to have a
20425           suitable existing database.
20427 Tue Nov 06 07:58:34 GMT 2007  Olly Betts <olly@survex.com>
20429         * matcher/tradweight.cc: Make sure lenpart has been calculated in
20430           TradWeight::get_sumpart_needs_doclength() (this doesn't appear to
20431           actually be a problem in current use, but it might become an issue
20432           if the code which uses TradWeight changes.
20434 Tue Nov 06 07:49:18 GMT 2007  Olly Betts <olly@survex.com>
20436         * tests/api_anydb.cc: Add simple feature test for TradWeight being
20437           used to run a query.
20439 Tue Nov 06 07:26:28 GMT 2007  Olly Betts <olly@survex.com>
20441         * common/stats.h,matcher/bm25weight.cc,tests/api_anydb.cc: Fix bug in
20442           BM25Weight - in the case where k2 is non-zero, a non-initialised
20443           value influenced the weight calculations.  By default k2 is zero, so
20444           this bug probably won't affect most users.
20446 Tue Nov 06 07:22:27 GMT 2007  Olly Betts <olly@survex.com>
20448         * api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
20449           net/remoteserver.cc: Modify MultiMatch::MultiMatch() to take a const
20450           pointer to Xapian::RSet rather than a const reference.  This makes
20451           the code simpler for the case where we don't have an RSet.
20453 Tue Nov 06 05:47:38 GMT 2007  Olly Betts <olly@survex.com>
20455         * api/omenquire.cc: Use ".empty()" not ".size() == 0".
20457 Mon Nov 05 21:05:45 GMT 2007  Olly Betts <olly@survex.com>
20459         * m4/xapian.m4: Hook LT_INIT as well as AC_PROG_LIBTOOL and
20460           AM_PROG_LIBTOOL.
20462 Mon Nov 05 11:17:23 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20464         * docs/termgenerator.rst: Change a couple of instances of "terms"
20465           to "words" for clarity; the item from the input text is a word,
20466           and the result of processing is a term.
20468 Mon Nov 05 09:46:53 GMT 2007  Olly Betts <olly@survex.com>
20470         * docs/admin_notes.rst: Note that this document is up-to-date for
20471           1.0.4.  Improve the formatting a bit and fix a the odd typo.
20473 Mon Nov 05 06:24:01 GMT 2007  Olly Betts <olly@survex.com>
20475         * tests/api_wrdb.cc: Fix MSVC warning.
20477 Mon Nov 05 06:21:09 GMT 2007  Olly Betts <olly@survex.com>
20479         * matcher/queryoptimiser.h: Forward declare PosFilter as "struct"
20480           rather than "class", since it's defined as "struct".
20482 Mon Nov 05 05:41:01 GMT 2007  Olly Betts <olly@survex.com>
20484         * api/sortable-serialise.cc: Suppress MSVC warning.
20486 Mon Nov 05 04:55:48 GMT 2007  Olly Betts <olly@survex.com>
20488         * docs/quickstart.html: Improved.
20490 Mon Nov 05 04:43:13 GMT 2007  Olly Betts <olly@survex.com>
20492         * docs/overview.html: More improvements from Jenny Black.
20494 Sun Nov 04 22:59:28 GMT 2007  Olly Betts <olly@survex.com>
20496         * docs/overview.html: Assorted improvements to the start of this
20497           document.
20499 Sun Nov 04 22:54:13 GMT 2007  Olly Betts <olly@survex.com>
20501         * api/omdocument.cc,tests/api_wrdb.cc: values_begin() didn't ensure
20502           that values had been read.  However, values_end() did (and so did
20503           values_count()) so this wasn't generally an issue, but it shouldn't
20504           happen anyway.
20505         * tests/api_wrdb.cc: Extend adddoc5 to include a regression test for
20506           this bug.
20508 Sun Nov 04 22:44:39 GMT 2007  Olly Betts <olly@survex.com>
20510         * tests/quartztest.cc: Remove 'FIXME' suggesting more value tests.
20511         * tests/api_nodb.cc: Add the suggested tests we don't already have.
20513 Sun Nov 04 19:23:52 GMT 2007  Olly Betts <olly@survex.com>
20515         * tests/api_posdb.cc,tests/api_wrdb.cc: Use get_writable_database()
20516           instead of get_writable_database("").
20517         * tests/api_wrdb.cc: Rework test_spell3 so it works under __WIN32__
20518           (bug#177).
20520 Sun Nov 04 07:31:04 GMT 2007  Olly Betts <olly@survex.com>
20522         * tests/harness/backendmanager.h: Make BackendManager dtor virtual as
20523           intended.
20525 Sun Nov 04 07:05:12 GMT 2007  Olly Betts <olly@survex.com>
20527         * tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/,
20528           tests/quartztest.cc: Extend BackendManager to allow opening a
20529           WritableDatabase as a Database as well, and to allow reopening a
20530           closed WritableDatabase as a WritableDatabase.  With these new
20531           features, rework quartztest's adddoc2 and adddoc3 as apitest
20532           testcases adddoc5 and adddoc6.
20534 Sun Nov 04 06:08:42 GMT 2007  Olly Betts <olly@survex.com>
20536         * tests/api_wrdb.cc,tests/apitest.cc,tests/apitest.h,tests/harness/:
20537           Add BackendManager::get_writable_database_as_database() and use it
20538           instead of assuming what the WritableDatabase path will be.
20540 Sun Nov 04 05:31:30 GMT 2007  Olly Betts <olly@survex.com>
20542         * tests/,tests/harness/: Subclass BackendManager for each database
20543           backend supported, which should provide a better foundation on
20544           which we can rebuild to fix the nastier bits of the test harness.
20546 Fri Nov 02 17:39:58 GMT 2007  Olly Betts <olly@survex.com>
20548         * INSTALL: zlib 1.2.0 apparently fixes a memory leak in deflateInit2,
20549           which we use, so that's another reason to prefer 1.2.x.
20551 Fri Nov 02 06:34:36 GMT 2007  Olly Betts <olly@survex.com>
20553         * tests/harness/testsuite.cc: Fix extracting of valgrind error
20554           messages.
20556 Fri Nov 02 05:09:05 GMT 2007  Olly Betts <olly@survex.com>
20558         * docs/bm25.html,docs/scalability.html: Remove references to Muscat
20559           3.6.
20561 Thu Nov 01 18:51:20 GMT 2007  Olly Betts <olly@survex.com>
20563         * NEWS: Fix to talk about OP_VALUE_RANGE rather than
20564           ValueRangePostList since the later isn't user-visible.
20566 Thu Nov 01 18:16:20 GMT 2007  Olly Betts <olly@survex.com>
20568         * matcher/exactphrasepostlist.cc: Fix memory leak if second memory
20569           allocation fails.
20571 Thu Nov 01 17:54:09 GMT 2007  Olly Betts <olly@survex.com>
20573         * docs/intro_ir.html: Move the section on stemming to a better
20574           location.
20576 Thu Nov 01 17:37:40 GMT 2007  Jenny Black
20578         * docs/glossary.rst: Fix typo.
20580 Thu Nov 01 06:34:58 GMT 2007  Olly Betts <olly@survex.com>
20582         * matcher/multimatch.cc: Minor code simplification.
20584 Wed Oct 31 16:17:08 GMT 2007  Olly Betts <olly@survex.com>
20586         * bin/xapian-check.cc: Fix to handle the special case of a term which
20587           is 48 characters long.  Fix not to go into an infinite loop if
20588           certain checks fail.
20590 Wed Oct 31 15:56:45 GMT 2007  Olly Betts <olly@survex.com>
20592         * matcher/multiandpostlist.cc: If the subpostlists are ORs and pruning
20593           or operator decay happens within them, then get_termfreq_est() can
20594           change such that the first postlist returns a higher value than
20595           the second, so remove a bogus assertion which assumed this didn't
20596           happen (bug#209).
20598 Wed Oct 31 15:43:58 GMT 2007  Olly Betts <olly@survex.com>
20600         * backends/flint/flint_version.cc: I documented an increase in
20601           FLINT_VERSION but didn't increase it - luckily the previous version
20602           wasn't in a released version, so just adjust the comment to match
20603           what actually happened.
20605 Wed Oct 31 15:24:48 GMT 2007  Olly Betts <olly@survex.com>
20607         * net/remoteconnection.cc: Add '#include <safeunistd.h>' (bug#208).
20609 Wed Oct 31 15:01:53 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20611         * bin/xapian-check.cc: Update the checking of the termlist table to
20612           stop checking for the "has_termfreqs" flag, which is no longer
20613           stored in termlists.
20615 Wed Oct 31 14:31:38 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20617         * backends/quartz/quartz_positionlist.cc: Add missing #include,
20618           which is needed only when configured with --enable-log and with
20619           --disable-assertions.
20621 Tue Oct 30 04:52:53 GMT 2007  Olly Betts <olly@survex.com>
20623         * NEWS,configure.ac: Update for 1.0.4.
20625 Tue Oct 30 04:10:32 GMT 2007  Olly Betts <olly@survex.com>
20627         * queryparser/queryparser.lemony: Code tweak.
20629 Tue Oct 30 03:04:04 GMT 2007  Olly Betts <olly@survex.com>
20631         * tests/queryparsertest.cc: Add two more test cases to improve
20632           coverage.
20634 Tue Oct 30 00:13:42 GMT 2007  Olly Betts <olly@survex.com>
20636         * tests/harness/testsuite.cc: abi::__cxa_demangle() requires GCC 3.1
20637           it seems.
20639 Mon Oct 29 23:14:41 GMT 2007  Olly Betts <olly@survex.com>
20641         * docs/scalability.html: Update size of gmane.
20643 Mon Oct 29 23:13:00 GMT 2007  Olly Betts <olly@survex.com>
20645         * docs/quartzdesign.html: Note that Quartz is now deprecated.
20647 Mon Oct 29 21:09:12 GMT 2007  Olly Betts <olly@survex.com>
20649         * configure.ac,tests/harness/testsuite.cc: Demangle the name of
20650           the std::exception subclass for GCC, and handle compilation with
20651           -fno-rtti.
20653 Mon Oct 29 19:50:05 GMT 2007  Olly Betts <olly@survex.com>
20655         * tests/harness/testsuite.cc: Catch std::exception subclasses
20656           explicitly and report e.what() (which gives the method name which
20657           threw, at least under GCC).
20659 Mon Oct 29 18:46:57 GMT 2007  Olly Betts <olly@survex.com>
20661         * NEWS: Updated.
20663 Mon Oct 29 18:36:12 GMT 2007  Olly Betts <olly@survex.com>
20665         * matcher/multimatch.cc: Pull out old_item.wt into a variable.
20667 Mon Oct 29 18:24:46 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
20669         * queryparser/queryparser.lemony: Fix problem with spelling
20670           correction of hyphenated terms (or other terms joined with phrase
20671           generators): the position of the start of the term wasn't being
20672           reset for the second term in the generated phrase, resulting in
20673           out of bounds errors when substituting the new value in the
20674           corrected query string.
20675         * tests/queryparsertest.cc: Test the fix.
20677 Mon Oct 29 17:34:17 GMT 2007  Olly Betts <olly@survex.com>
20679         * docs/deprecation.rst: Move "Stem::stem_word(word)" in the bindings
20680           to the right section (it was done in 1.0.0, as already indicated).
20681           Deprecate the non-pythonic iterators in favour of the pythonic ones.
20683 Mon Oct 29 02:54:09 GMT 2007  Olly Betts <olly@survex.com>
20685         * NEWS,api/Makefile.mk,docs/Makefile.am,include/Makefile.mk,
20686           include/xapian.h,tests/api_db.cc,tests/api_nodb.cc,
20687           tests/api_wrdb.cc: Back out match spy changes in preparation for
20688           creating a branch for them.
20690 Mon Oct 29 02:37:31 GMT 2007  Olly Betts <olly@survex.com>
20692         * matcher/valuerangepostlist.cc: Fix
20693           ValueRangeProcessor::get_termfreq_est() and get_termfreq_max() to
20694           work when at_end() when paranoid assertions are enabled.
20696 Mon Oct 29 01:51:07 GMT 2007  Olly Betts <olly@survex.com>
20698         * common/omenquireinternal.h: Add ESetItem::swap() and
20699           MSetItem::swap().
20701 Sun Oct 28 16:33:34 GMT 2007  Olly Betts <olly@survex.com>
20703         * PLATFORMS: Update from tinderbox and buildbot.
20705 Sun Oct 28 06:00:23 GMT 2007  Olly Betts <olly@survex.com>
20707         * matcher/queryoptimiser.cc: Remove unused variable.
20709 Sun Oct 28 05:46:28 GMT 2007  Olly Betts <olly@survex.com>
20711         * docs/remote.html: xapian-tcpsrv can handle concurrent read access
20712           so update the out-of-date information here.  Also, some new features
20713           aren't supported by the remote backend yet.
20715 Sun Oct 28 05:20:02 GMT 2007  Olly Betts <olly@survex.com>
20717         * include/xapian/queryparser.h: Update documentation comment for
20718           QueryParser::set_stemming_strategy().
20720 Sun Oct 28 05:03:03 GMT 2007  Olly Betts <olly@survex.com>
20722         * queryparser/queryparser.lemony: Fix handling of STEM_ALL.
20723         * tests/queryparsertest.cc: Update tests.  Move tables of queries to
20724           before the test functions which use them.
20726 Sat Oct 27 20:50:57 BST 2007  Olly Betts <olly@survex.com>
20728         * api/omqueryinternal.cc,include/xapian/query.h,
20729           matcher/queryoptimiser.cc: Eliminate Query::Internal::dbl_parameter
20730           to avoid any risk of ABI breakage.
20732 Sat Oct 27 17:08:46 BST 2007  Olly Betts <olly@survex.com>
20734         * include/xapian/query.h: Pull in <xapian/deprecated.h> explicitly.
20735           Add @deprecated note to Query::Query(Query::op, Query) explaining
20736           why it is deprecated.
20737         * include/xapian/queryparser.h: Wrap comment better.
20739 Sat Oct 27 05:37:33 BST 2007  Olly Betts <olly@survex.com>
20741         * NEWS: Merge two "testsuite" sections in draft 1.0.4 entry.
20743 Sat Oct 27 02:34:10 BST 2007  Olly Betts <olly@survex.com>
20745         * HACKING: Note specifically that std::list::size() is O(n) for GCC.
20746           Update the debian packaging checklist.
20748 Sat Oct 27 02:33:14 BST 2007  Olly Betts <olly@survex.com>
20750         * docs/intro_ir.html: Add link to the forthcoming book
20751           "Introduction to Information Retrieval", which can be read online.
20753 Sat Oct 27 02:22:36 BST 2007  Olly Betts <olly@survex.com>
20755         * docs/Makefile.am: We no longer build sourcedoc.pdf so remove it from
20756           MAINTAINERCLEANFILES.
20758 Sat Oct 27 02:20:31 BST 2007  Olly Betts <olly@survex.com>
20760         * NEWS: Mostly updated for 1.0.4.
20762 Fri Oct 26 04:57:31 BST 2007  Olly Betts <olly@survex.com>
20764         * api/omqueryinternal.cc: OP_SCALE_WEIGHT applied to MatchNothing is
20765           now handled by the Query ctor, so replace the code to handle
20766           OP_SCALE_WEIGHT in Query::Internal::simplify_matchnothing() by an
20767           assertion that the subquery isn't MatchNothing.
20769 Fri Oct 26 04:50:37 BST 2007  Olly Betts <olly@survex.com>
20771         * include/xapian/query.h: Deprecate the essentially useless
20772           constructor Query(Query::op, Query).
20773         * docs/deprecation.rst: Note this deprecation, and since the feature
20774           doesn't actually have a use, schedule it for 1.1.0.  Also schedule
20775           Enquire::register_match_decider() for 1.1.0 for the same reason.
20777 Fri Oct 26 01:00:08 BST 2007  Olly Betts <olly@survex.com>
20779         * api/omquery.cc,include/xapian/query.h: OP_SCALE_WEIGHT applied to
20780           OP_VALUE_RANGE can have no effect so ignore it.
20781         * tests/queryparsertest.cc: Update expected query descriptions.
20783 Fri Oct 26 00:23:55 BST 2007  Olly Betts <olly@survex.com>
20785         * matcher/multimatch.cc: When checkatleast is set, and we're sorting
20786           by relevance with forward ordering by docid, and the query is pure
20787           boolean, we were exiting before the checkatleast requirement was
20788           satisfied.  Then the adjustments made to the estimated and max
20789           statistics based on checkatleast meant we claimed there were
20790           exactly msize results.
20792 Thu Oct 25 00:34:14 BST 2007  Olly Betts <olly@survex.com>
20794         * matcher/localmatch.cc,matcher/multiandpostlist.cc,
20795           matcher/queryoptimiser.cc,queryparser/queryparser.cc: Fix build
20796           with --enable-assertions and --enable-log.
20798 Wed Oct 24 06:29:03 BST 2007  Olly Betts <olly@survex.com>
20800         * queryparser/queryparser.lemony: Drop out of IN_GROUP mode when we
20801           generate a BOOLEAN_FILTER token.
20802         * tests/queryparsertest.cc: Add regression test.
20804 Wed Oct 24 06:08:29 BST 2007  Olly Betts <olly@survex.com>
20806         * queryparser/queryparser.lemony: Drop special treatment for unmatched
20807           ')' at the start of the query, as it seems rather arbitrary and not
20808           particularly useful.  Reparsing seems a better approach here.
20809         * tests/queryparsertest.cc: Add regression test case for bug which
20810           dropping this special case fixes.
20812 Wed Oct 24 05:25:40 BST 2007  Olly Betts <olly@survex.com>
20814         * AUTHORS: Add Ron Kass for several bug reports.
20816 Wed Oct 24 05:13:01 BST 2007  Olly Betts <olly@survex.com>
20818         * queryparser/queryparser.lemony: Fix parsing of queries which consist
20819           only of boolean filter terms and HATE-d terms.
20820         * tests/queryparsertest.cc: Add regression tests, and a few more cases
20821           which passed before too.  Fix descriptions of queries which now give
20822           different (but equivalent) Xapian::Query object hierarchies.
20824 Wed Oct 24 04:51:56 BST 2007  Olly Betts <olly@survex.com>
20826         * queryparser/queryparser.lt: Fix warning in debug log build.
20828 Wed Oct 24 04:41:08 BST 2007  Olly Betts <olly@survex.com>
20830         * backends/flint/flint_table.cc,backends/flint/flint_table.h: Don't
20831           use class member function pointers to implement FlintTable::next()
20832           and FlintTable::prev() as we can just call the methods directly
20833           based on the sequential flag.  Profiling suggests this speeds up
20834           searches a little, the two pointers take up 16 bytes each (on
20835           x86_64) so it reduces the class size by up to 32 bytes, and the code
20836           is simpler because we no longer need to update prev_ptr and
20837           next_ptr.
20839 Wed Oct 24 00:16:06 BST 2007  Olly Betts <olly@survex.com>
20841         * api/omqueryinternal.cc: Tweak Query::get_description() to describe
20842           OP_SCALE_WEIGHT queries as '<factor> * <subquery>' rather than
20843           '<subquery> * <factor>' as the former results in more readable
20844           descriptions.
20845         * queryparser/queryparser.lemony: Use OP_SCALE_WEIGHT with factor 0.0
20846           for queries which should be purely boolean which resolves a FIXME
20847           comment in the code.
20848         * tests/queryparsertest.cc: Fix expected results for this change.
20850 Tue Oct 23 19:13:08 BST 2007  Olly Betts <olly@survex.com>
20852         * queryparser/queryparser.lemony: Some as_XXX() methods delete the
20853           object they are called on, while others don't, so rename the ones
20854           which don't to get_XXX() to make the code clearer, and make them
20855           all return Query rather than Query *.  Eliminate Term::as_query()
20856           completely - when we actually want a new object we can just call
20857           new in the caller.  op_window_query() now takes the difference
20858           between the number of terms and the total window size, and we now
20859           use a std::vector to store the generated Query objects rather than
20860           a std::list, since we know how many there will be and can reserve
20861           the required size in advance.
20863 Tue Oct 23 18:33:49 BST 2007  Olly Betts <olly@survex.com>
20865         * queryparser/queryparser.lemony: Improve comment.
20867 Mon Oct 22 21:00:05 BST 2007  Olly Betts <olly@survex.com>
20869         * queryparser/queryparser.lemony: Fix handling of LOVE and HATE
20870           following a quoted phrase.
20871         * tests/queryparsertest.cc: Add regression test.
20873 Mon Oct 22 05:23:23 BST 2007  Olly Betts <olly@survex.com>
20875         * queryparser/queryparser.lemony: Refactor so Term::as_query() calls
20876           Term::as_query_object() instead of vice versa, as this avoids
20877           calling 'new Query' quite a bit and makes a measurable difference
20878           to the speed of the QueryParser.  Fix a call to as_query() which
20879           can be as_query_object().
20881 Mon Oct 22 04:10:17 BST 2007  Olly Betts <olly@survex.com>
20883         * queryparser/queryparser.lemony: FLAG_PARTIAL with multi-prefixes
20884           would result in inflated wqf for the "normal" version of the term
20885           treated as partial.
20886         * tests/queryparsertest.cc: Add regression test.
20888 Mon Oct 22 02:34:58 BST 2007  Olly Betts <olly@survex.com>
20890         * queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
20891           Rename QueryParser::Internal::prefixes to prefixmap to avoid
20892           confusion with all the other variables which are now called
20893           "prefixes" in queryparser.lemony.  Eliminate have_prefix and
20894           instead just set prefixinfo to NULL by default.
20896 Sun Oct 21 23:56:57 BST 2007  Olly Betts <olly@survex.com>
20898         * common/omenquireinternal.h,include/xapian/enquire.h,
20899           include/xapian/query.h,matcher/: Implement a new QueryOptimiser
20900           class which can hoist the positional filters of OP_PHRASE and
20901           OP_NEAR higher up the tree and merge the "AND" inside them into
20902           any neighbouring OP_AND or OP_FILTER (bug#23).  This shaves 10% of
20903           the execution time of real world queries on real world data.  On
20904           particularly slow cases, the saving can be more dramatic - it
20905           saves 50% when tested on a log of slow cases.  OP_SCALE_WEIGHT
20906           scaling factors are now pushed down to the leaves and any leaf
20907           we a factor other than 0.0 (boolean) or 1.0 (unscaled) has
20908           its weights scaled using a ScaleWeight wrapper around the normal
20909           weighting object (bug#203).
20911 Sun Oct 21 23:46:11 BST 2007  Olly Betts <olly@survex.com>
20913         * include/xapian/query.h: Fix documentation of OP_SCALE_WEIGHT.
20914           Negative scaling factors aren't now clipped to 0, instead we
20915           throw Xapian::InvalidArgumentError.  Remove the explicit setting of
20916           OP_ELITE_SET to 10 which is no longer required.  Wrap a long comment
20917           line.
20919 Sun Oct 21 23:20:23 BST 2007  Olly Betts <olly@survex.com>
20921         * tests/api_anydb.cc: Tweak code and wrap comment.
20923 Sun Oct 21 04:53:40 BST 2007  Olly Betts <olly@survex.com>
20925         * matcher/extraweightpostlist.h: Add missing '#include "multimatch.h"'
20926           which is pulled in implicitly by some other header which always
20927           happens to be included before this one.
20929 Fri Oct 19 03:52:17 BST 2007  Olly Betts <olly@survex.com>
20931         * docs/deprecation.rst: Remove deprecation of
20932           QueryParser::add_prefix() and QueryParser::add_boolean_prefix().
20933           Reformat the tables to use the "simple table" style, and to all be
20934           126 columns wide, since that fits in a maximised terminal window
20935           without wrapping (at least on my machine!)
20937 Fri Oct 19 03:44:33 BST 2007  Olly Betts <olly@survex.com>
20939         * include/xapian/queryparser.h,queryparser/queryparser.cc,
20940           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
20941           tests/queryparsertest.cc: Since calling QueryParser::add_prefix()
20942           or QueryParser::add_boolean_prefix() a second time with the same
20943           field name was ignored before (rather than overriding as we had
20944           thought) it seems reasonable to change this behaviour.  This
20945           also avoids the need to deprecate these methods which will force all
20946           users to update their code.  Change the semantics of default_prefix
20947           - it's more useful if this overrides any default prefixes set with
20948           add_prefix(), since this allows the same QueryParser object to
20949           parse both a "general" search input which searches several fields
20950           and also a "title" search input.  Trying to set the same field
20951           as probabilistic and boolean now throws InvalidOperationError
20952           rather than UnimplementedError.
20954 Fri Oct 19 03:29:53 BST 2007  Olly Betts <olly@survex.com>
20956         * queryparser/queryparser.lt: Fix compilation.
20958 Fri Oct 19 03:28:37 BST 2007  Olly Betts <olly@survex.com>
20960         * docs/Makefile.am: We're still getting "info" messages in the
20961           generated HTML.  It seems to be impossible to get rst2html to
20962           report "info" messages to stdout without adding them to the
20963           generated document, so just drop "--verbose" to disable them
20964           completely.
20966 Thu Oct 18 18:27:28 BST 2007  Olly Betts <olly@survex.com>
20968         * queryparser/queryparser.lt: Use std::vector<> for the stack in the
20969           lemon-generated parser.  This means that the stack is no longer a
20970           fixed size, so we needn't worry about overflow, and that in typical
20971           use it'll actually use less memory (lemon defaults to a 100 entry
20972           stack).
20974 Thu Oct 18 17:23:45 BST 2007  Olly Betts <olly@survex.com>
20976         * languages/turkish.sbl: Minimise differences with Snowball SVN HEAD
20977           by stripping trailing whitespace.
20979 Mon Oct 15 15:39:26 BST 2007  Olly Betts <olly@survex.com>
20981         * backends/quartz/btree_util.h: Need "safeunistd.h" for close().
20982           Fixes build errors on mingw and with SGI's CC on IRIX.
20984 Mon Oct 15 05:30:23 BST 2007  Olly Betts <olly@survex.com>
20986         * matcher/localmatch.cc: Fix typo in comment.
20988 Mon Oct 15 05:26:35 BST 2007  Olly Betts <olly@survex.com>
20990         * common/omassert.h: Rewritten from scratch.  The new version only
20991           includes headers if assertions are enabled, which should help
20992           to speed up non-assertion builds by reducing unnecessary header
20993           inclusion.  Also, float.h and math.h are never now pulled in -
20994           instead we use the new within_DBL_EPSILON() function.  AssertNe()
20995           and AssertNeParanoid() are never actually used, so replace them with
20996           AssertRel() and AssertRelParanoid which allow the user to assert any
20997           binary relation, not just inequality.  Also, we now use rare() to
20998           give branch prediction hints for assertion tests (since the failure
20999           branch should never be taken).
21000         * common/omdebug.h,common/stringutils.h,tests/harness/testsuite.h:
21001           Replace several definitions of the STRINGIZE macro with a single
21002           version in common/stringutils.h.
21003         * backends/flint/,backends/inmemory/inmemory_database.cc,
21004           backends/multi/multi_postlist.cc,backends/quartz/,
21005           backends/remote/remote-database.cc,bin/quartzcheck.cc,
21006           bin/xapian-compact.cc,common/stringutils.h,expand/expandweight.cc,
21007           expand/ortermlist.cc,matcher/phrasepostlist.cc,
21008           matcher/scaleweightpostlist.cc,net/remoteconnection.cc,
21009           net/tcpserver.cc: Explicitly include headers which were previously
21010           being pulled in implicitly by omassert.h.
21011         * HACKING: Update the documentation for assertion calls, and document
21012           CompileTimeAssert() (which previously wasn't documented here).
21014 Mon Oct 15 05:09:15 BST 2007  Olly Betts <olly@survex.com>
21016         * common/utils.cc,common/utils.h: Add within_DBL_EPSILON() function
21017           which returns true if its two double arguments differ by less
21018           than DBL_EPSILON (currently not used anywhere).
21020 Mon Oct 15 05:03:50 BST 2007  Olly Betts <olly@survex.com>
21022         * matcher/multiandpostlist.cc: If check sets valid to true, we can't
21023           be at_end(), so check valid first as at_end() is a rare event.
21025 Mon Oct 15 05:00:18 BST 2007  Olly Betts <olly@survex.com>
21027         * matcher/: Remove code for FilterPostList, which has been unused for
21028           ages.
21030 Sun Oct 14 02:13:57 BST 2007  Olly Betts <olly@survex.com>
21032         * matcher/andpostlist.cc: AndPostList now ensures that its left is
21033           less frequent than its right (it can still be produced as an
21034           operator decay product, and sometimes left is more frequent when
21035           this happens).
21037 Sun Oct 14 00:58:20 BST 2007  Olly Betts <olly@survex.com>
21039         * matcher/multimatch.cc: Use rare() to mark rarely taken branches.
21041 Sun Oct 14 00:30:46 BST 2007  Olly Betts <olly@survex.com>
21043         * configure.ac: Add rare() and usual() macros to config.h which allow
21044           branch prediction hints to be given for compilers which support this
21045           (currently GCC and Intel C++).
21046         * HACKING: Document rare() and usual().
21048 Sat Oct 13 22:37:32 BST 2007  Olly Betts <olly@survex.com>
21050         * HACKING: Improve wording.
21052 Sat Oct 13 16:42:26 BST 2007  Olly Betts <olly@survex.com>
21054         * api/postlist.cc,common/postlist.h,matcher/: Implement a variant of
21055           PostList::skip_to() called PostList::check() which isn't required
21056           to leave the PostList on a particular docid.  This allows queries
21057           filtered by a ValueRangePostList to run around 3.5 times faster.
21058           Fixes buf#164, though there's probably scope for at least some
21059           further improvement.
21061 Sat Oct 13 16:08:07 BST 2007  Olly Betts <olly@survex.com>
21063         * matcher/multiandpostlist.cc: Fix typo bug (get_termfreq_min
21064           should be get_termfreq_max!)
21066 Sat Oct 13 15:53:52 BST 2007  Olly Betts <olly@survex.com>
21068         * matcher/multiandpostlist.cc: Fix assertion (should be <= not <).
21070 Fri Oct 12 01:20:05 BST 2007  Olly Betts <olly@survex.com>
21072         * HACKING: Note that rst2html may be installed as rst2html.py.
21074 Fri Oct 12 01:10:11 BST 2007  Olly Betts <olly@survex.com>
21076         * matcher/localmatch.cc: Tweak formatting.
21078 Thu Oct 11 22:58:36 BST 2007  Olly Betts <olly@survex.com>
21080         * tests/: svn:ignore: Add termgentest and termgentest.exe.
21082 Thu Oct 11 16:18:03 BST 2007  Olly Betts <olly@survex.com>
21084         * configure.ac: If rst2html isn't found, also look for rst2html.py,
21085           which archlinux reportedly installs it as.
21087 Thu Oct 11 16:09:20 BST 2007  Olly Betts <olly@survex.com>
21089         * matcher/: Round the result of all get_termfreq_est() calculations to
21090           the nearest integer instead of rounding down.
21092 Thu Oct 11 15:40:48 BST 2007  Olly Betts <olly@survex.com>
21094         * matcher/: Add new PostList subclass MultiAndPostList which handles
21095           a multi-way AND operation in a single class.  This allows us to
21096           optimise some cases of 3 or more way AND operations much better
21097           and gives a 16-17% performance improvement in tests using real-world
21098           query logs.
21099         * tests/api_anydb.cc: MultiAndPostList rounds get_termfreq_est()
21100           calculations to the nearest integer (rather than always rounding
21101           down) so adjust the expected answers in test_matches.
21103 Thu Oct 11 15:14:27 BST 2007  Olly Betts <olly@survex.com>
21105         * matcher/selectpostlist.cc: Explicitly qualify next() as
21106           SelectPostList::next().
21108 Thu Oct 11 13:04:40 BST 2007  Olly Betts <olly@survex.com>
21110         * README: Remove the ancient history lesson - this material is better
21111           left to the history page on the website.
21113 Thu Oct 11 00:33:34 BST 2007  Olly Betts <olly@survex.com>
21115         * matcher/branchpostlist.h: Fix comment typo.
21117 Thu Oct 11 00:28:29 BST 2007  Olly Betts <olly@survex.com>
21119         * api/postlist.cc,backends/flint/flint_alldocspostlist.cc,
21120           backends/flint/flint_alldocspostlist.h,common/postlist.h,matcher/:
21121           Eliminate several implementations of open_position_list and
21122           read_position_list in favour of default ones in the PostList base
21123           class which throw InvalidOperationError.  Change the default
21124           get_wdf implementation to also throw InvalidOperationError.
21126 Wed Oct 10 22:27:44 BST 2007  Olly Betts <olly@survex.com>
21128         * docs/install.html: Improve the remainder.  This documents now just
21129           gives a brief overview of building, suitable for most common cases,
21130           and defers to the INSTALL document in each tarball for more details.
21132 Wed Oct 10 21:51:39 BST 2007  Olly Betts <olly@survex.com>
21134         * common/leafpostlist.h: Rewrite header.
21135         * api/Makefile.mk,api/leafpostlist.cc: Add new source file for
21136           virtual, and non-trivial, non-virtual, methods of LeafPostList.
21137         * api/omdatabase.cc,backends/inmemory/inmemory_database.h,
21138           backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h,
21139           backends/remote/net_postlist.h,common/emptypostlist.h: Add missing
21140           '#include "omassert.h"' which was previously pulled in implicitly
21141           via '#include "leafpostlist.h"'.
21142         * backends/inmemory/inmemory_database.h: Remove unused '#include
21143           <stdlib.h>'.
21144         * backends/multi/multi_postlist.cc,backends/multi/multi_postlist.h:
21145           MultiPostList::set_termweight() is never used, so eliminate it.
21146         * backends/remote/net_postlist.cc: Rename parameter "weight" to
21147           "min_weight" to avoid clash with new member variable of
21148           LeafPostList.
21149         * matcher/emptysubmatch.cc,matcher/localmatch.cc: Don't call
21150           LeafPostList::set_termweight() with a BoolWeight object - the
21151           default behaviour is now equivalent.
21153 Wed Oct 10 18:18:09 BST 2007  Olly Betts <olly@survex.com>
21155         * docs/install.html: Improve the first half.
21157 Wed Oct 10 16:32:57 BST 2007  Olly Betts <olly@survex.com>
21159         * common/postlist.h: Rewrite header.
21160         * api/Makefile.mk,api/postlist.cc: Add new source file for virtual
21161           methods of Xapian::PostingIterator::Internal.
21162         * api/omdatabase.cc,backends/flint/flint_postlist.h,
21163           backends/quartz/quartz_alldocspostlist.cc,
21164           backends/quartz/quartz_postlist.h,matcher/valuerangepostlist.cc:
21165           Add missing '#include "autoptr.h"' which was previously pulled in
21166           implicitly via '#include "postlist.h"'.
21168 Wed Oct 10 16:25:08 BST 2007  Olly Betts <olly@survex.com>
21170         * tests/quartztest.cc: Remove quartztest's test_postlist1 and
21171           test_postlist2.
21172         * tests/api_db.cc: Enhance test_termstats to cover part of the removed
21173           tests.  Enhance test_postlist1 to check more long terms.  Eliminate
21174           the helper function from test_postlist3.
21175         * tests/api_wrdb.cc: Add test_postlist7 to cover the rest of what the
21176           removed tests checked which isn't already checked elsewhere.
21178 Wed Oct 10 02:29:44 BST 2007  Olly Betts <olly@survex.com>
21180         * HACKING: Update the release checklist.
21182 Wed Oct 10 02:01:03 BST 2007  Olly Betts <olly@survex.com>
21184         * matcher/scaleweightpostlist.cc,matcher/scaleweightpostlist.h: Move
21185           virtual dtor definition out of header.
21187 Wed Oct 10 01:41:05 BST 2007  Olly Betts <olly@survex.com>
21189         * matcher/msetpostlist.cc: Avoid virtual method overhead in
21190           MSetPostList::recalc_maxweight().
21192 Wed Oct 10 00:16:00 BST 2007  Olly Betts <olly@survex.com>
21194         * common/expandweight.h,expand/expand.cc,expand/expandweight.cc: We
21195           never actually use ExpandWeight::get_maxweight(), so remove it.
21197 Tue Oct 09 16:27:54 BST 2007  Olly Betts <olly@survex.com>
21199         * backends/flint/flint_database.cc,backends/flint/flint_version.cc,
21200           backends/flint/flint_version.h: Don't try to upgrade a flint
21201           database if we're only reading it, or it's already the latest
21202           version.
21204 Mon Oct 08 10:14:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21206         * tests/api_nodb.cc: Rename test_scaleweightmatchnothing1 to
21207           test_scaleweight3 so all the scaleweight tests can be run
21208           together more easily.  Add test_scaleweight4 to test that scaling
21209           by a weight close to 1 is optimised away.
21211 Sun Oct 07 12:20:14 BST 2007  Olly Betts <olly@survex.com>
21213         * include/xapian/database.h: Add explicit note that
21214           Database::get_metadata() returns an empty string when the backend
21215           doesn't support user-specified metadata, and that
21216           WritableDatabase::set_metadata() throws UnimplementedError in this
21217           case.  Add note about current behaviour with multidatabases.
21219 Sun Oct 07 10:58:24 BST 2007  Olly Betts <olly@survex.com>
21221         * api/omqueryinternal.cc: No need to use AutoPtr<> here now.
21223 Sun Oct 07 10:54:05 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21225         * common/remoteprotocol.h: Bump the network protocol minor
21226           revision, since we've added a query operator (OP_SCALE_WEIGHT)
21227           and the server will need to be updated to understand serialised
21228           queries containing it.
21230 Sun Oct 07 01:54:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21232         * api/omqueryinternal.cc,include/xapian/query.h,matcher/,
21233           tests/api_anydb.cc,tests/api_nodb.cc,tests/internaltest.cc:
21234           Rename OP_MULT_WEIGHT to OP_SCALE_WEIGHT and MultWeight to
21235           ScaleWeight, and move it to before OP_MULT_WEIGHT (to remove the
21236           gap in the enum).
21237           Don't do an epsilon test to compare the weight to zero (when
21238           checking if it's effectively a boolean query) - do an exact
21239           comparison instead.  Raise an exception if the parameter for
21240           OP_SCALE_WEIGHT is < 0 (instead of clipping it to 0).  Adjust
21241           weights accordingly.
21242           Add test_scaleweight2() to test a query with some weights
21243           multiplied by 0, and some by a different factor.
21245 Wed Oct 03 17:23:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21247         * api/omqueryinternal.cc,tests/api_nodb.cc: Fix (and test) for a
21248           double delete if OP_MULT_WEIGHT was applied to an empty query.
21250 Mon Oct 01 13:20:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21252         * NEWS: Update
21253         * net/remoteconnection.cc: Back out previous change - I was
21254           confused, the code was previously fine, and the change broke it.
21256 Mon Oct 01 13:13:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21258         * api/omqueryinternal.cc: Fix access of uninitialised member when
21259           unserialising a mult-weight query.
21260         * tests/internaltest.cc: Add a regression test for unserialisationg
21261           of mult-weight queries.
21263 Mon Oct 01 13:11:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21265         * net/remoteconnection.cc: After calling read(), check for received
21266           == 0 after checking for errors, so that if an EINTR occurs in
21267           read, we don't report EOF instead of retrying.
21269 Sun Sep 30 23:20:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21271         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h: Add
21272           OP_MULT_WEIGHT operator, and a new Query constructor which takes
21273           a single subquery and a "double" parameter - currently only
21274           useful for OP_MULT_WEIGHT.  Add dbl_parameter to Query::Internal,
21275           to hold this parameter.  Add serialisation of OP_MULT_WEIGHT
21276           using "." to represent the operator.  Drop OP_MULT_WEIGHT
21277           operators which have a parameter of 1 (or very close) when
21278           simplifying, since these have no effect.
21279         * matcher/multweightpostlist.cc,matcher/multweightpostlist.h: New
21280           files, implementing a postlist which multiplies the weights from
21281           its single sub-postlist by a parameter.
21282         * matcher/Makefile.mk: Add new files.
21283         * matcher/localmatch.cc: Add support for the OP_MULT_WEIGHT query
21284           operator, which produces a MultWeightPostList if the associated
21285           parameter is greater than DBL_EPSILON, and produces a boolean query
21286           otherwise.
21287         * tests/api_anydb.cc: Add tests for OP_MULT_WEIGHT operator with
21288           various queries, and various multipliers.
21289         * NEWS: Update
21291 Sun Sep 30 23:13:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21293         * tests/harness/testsuite.h: Add TEST_NOT_EQUAL_DOUBLE() macro.
21294         * tests/harness/testsuite.cc: Add special
21295           case to TEST_EQUAL_DOUBLE_() for exact equality of the supplied
21296           arguments.  This is tidier in general, because it avoids "inf"
21297           being produces by the calculation, but is only actually necessary
21298           in the case where the arguments are both exactly 0; it all works
21299           out nicely for other values of the arguments.
21301 Sun Sep 30 21:12:40 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21303         * tests/queryparsertest.cc: #define XAPIAN_DEPRECATED to disable
21304           compiler warnings about the deprecated forms of add_prefix() and
21305           add_boolean_prefix().
21307 Sun Sep 30 21:07:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21309         * api/Makefile.mk,docs/Makefile.am,docs/deprecation.rst,
21310           include/Makefile.mk,include/xapian.h,include/xapian/queryparser.h,
21311           queryparser/queryparser.cc,queryparser/queryparser.lemony,
21312           queryparser/queryparser_internal.h,tests/: Re-apply changes which
21313           needed more thought or more work before being included in a
21314           release.
21315         * NEWS: Update with current descriptions of these changes.
21317 Sun Sep 30 20:22:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21319         * tests/valgrind.supp: Add further suppressions needed for the
21320           version of zlib on ubuntu gutsy.
21322 Fri Sep 28 15:38:18 BST 2007  Olly Betts <olly@survex.com>
21324         * NEWS: Final (?) update for 1.0.3.
21326 Fri Sep 28 15:37:22 BST 2007  Olly Betts <olly@survex.com>
21328         * PLATFORMS: Another small update.
21330 Fri Sep 28 15:30:17 BST 2007  Olly Betts <olly@survex.com>
21332         * HACKING: Add link to the 1.0.N tracker bug.
21334 Fri Sep 28 14:04:06 BST 2007  Olly Betts <olly@survex.com>
21336         * PLATFORMS: More updates.
21338 Fri Sep 28 13:45:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21340         * include/xapian/database.h: Document that empty metadata keys will
21341           cause an exception from get_metadata() and set_metadata().
21342         * api/omdatabase.cc: Cause empty metadata keys to raise an
21343           InvalidArgumentError if they're passed to set_metadata() or
21344           get_metadata().
21345         * tests/api_wrdb.cc: Add test_metadata3, to check behaviour with an
21346           empty metadata key.
21348 Fri Sep 28 13:30:49 BST 2007  Olly Betts <olly@survex.com>
21350         * PLATFORMS: Updates from tinderbox.
21352 Fri Sep 28 13:22:16 BST 2007  Olly Betts <olly@survex.com>
21354         * include/xapian/database.h: Clarify support for empty metadata keys.
21356 Fri Sep 28 11:00:08 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21358         * tests/valgrind.supp: Add second version of the zlib end condition
21359           check which works for the version of zlib in Ubuntu gutsy; ie,
21360           version 1.2.3.3, where the error occurs in the function called
21361           directly by deflate, rather than two levels below it.
21363 Fri Sep 28 03:11:11 BST 2007  Olly Betts <olly@survex.com>
21365         * configure.ac: Update for 1.0.3.
21367 Fri Sep 28 03:05:10 BST 2007  Olly Betts <olly@survex.com>
21369         * api/Makefile.mk,docs/Makefile.am,docs/deprecation.rst,
21370           include/Makefile.mk,include/xapian.h,include/xapian/queryparser.h,
21371           queryparser/queryparser.cc,queryparser/queryparser.lemony,
21372           queryparser/queryparser_internal.h,tests/: Back out changes which
21373           need more thought or more work in the interests of getting 1.0.3
21374           out this month.
21376 Fri Sep 28 03:04:19 BST 2007  Olly Betts <olly@survex.com>
21378         * NEWS: Update with recent changes.
21380 Fri Sep 28 01:55:42 BST 2007  Olly Betts <olly@survex.com>
21382         * docs/deprecation.rst: Revert to the previous deprecation policy.
21384 Fri Sep 28 01:20:34 BST 2007  Olly Betts <olly@survex.com>
21386         * include/xapian/enquire.h: Rephrase since "should be in the MSet"
21387           might be misunderstood.
21389 Fri Sep 28 01:12:47 BST 2007  Olly Betts <olly@survex.com>
21391         * AUTHORS,docs/Makefile.am,docs/glossary.rst,docs/index.html: Add
21392           glossary put together by Jenny Black, also incorporating entries
21393           from Deron Meranda's glossary on the wiki.
21395 Thu Sep 27 23:06:30 BST 2007  Olly Betts <olly@survex.com>
21397         * docs/stemming.html: Reorder the initial paragraphs so we actually
21398           answer the question "What is a stemming algorithm?" up front.
21400 Thu Sep 27 22:15:36 BST 2007  Olly Betts <olly@survex.com>
21402         * matcher/valuerangepostlist.cc: Call ValueRangePostList::next()
21403           explicitly to avoid the overhead of virtual method dispatch.
21405 Thu Sep 27 14:43:25 BST 2007  Olly Betts <olly@survex.com>
21407         * common/termlist.h: Don't need to forward declare
21408           Xapian::Internal::ExpandWeight here.
21410 Thu Sep 27 14:36:00 BST 2007  Olly Betts <olly@survex.com>
21412         * common/termlist.h: Add missing (but indirectly included) '#include
21413           <xapian/base.h>'.
21415 Fri Sep 21 18:00:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21417         * docs/deprecation.rst: Add deprecation for
21418           Database::positionlist_begin() throwing DocNotFoundError , for
21419           same reason as deprecating it throwing RangeError.  Also, add
21420           deprecation for QueryParser::add_prefix(f, p) and
21421           add_boolean_prefix() - replaced by three argument form of
21422           add_prefix.  Also, add a policy that we don't add
21423           XAPIAN_DEPRECATED when there's no replacement for the deprecated
21424           feature in the last x.x.0 release.
21425         * include/xapian/queryparser.h: Add @deprecated to documentation
21426           comments for add_prefix(f, p) and add_boolean_prefix() (but don't
21427           add XAPIAN_DEPRECATED() macro for now).
21429 Fri Sep 21 16:13:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21431         * include/xapian/queryparser.h: Fix copy and paste errors in
21432           documentation comment, and hopefully clarify it somewhat.
21434 Fri Sep 21 15:50:40 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21436         * tests/queryparsertest.cc: Initialise the default prefix from
21437           prefixes.find(""), allowing multiple default prefixes to be set
21438           by calling add_prefix() with an empty field name.
21439         * queryparser/queryparser.lemony: Several more tests; mainly for
21440           the new default_prefix functionality, but also a bit more
21441           coverage for multiple prefixes in general.
21443 Fri Sep 21 15:04:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21445         * include/xapian/queryparser.h,queryparser/queryparser.cc: API
21446           addition: Revert previous change to behaviour of
21447           QueryParser::add_prefix and QueryParser::add_boolean_prefix
21448           methods, to avoid API change within a release series.  Add new
21449           QueryParser::add_prefix() form which takes three parameters; the
21450           third parameter is a value from a new "prefix_type" enum.
21451         * queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
21452           Internal changes to allow multiple filters to be set for a single
21453           field:
21454            - Remove the PrefixInfoList object again - instead add a list of
21455              prefixes to PrefixInfo.  We only aim to support one type of
21456              prefix for a given field, so the extra flexibility given by
21457              PrefixInfoList is a districation.
21458            - Change filter_group_id to be based on a list of prefixes,
21459              instead of a single prefix.
21460            - Change Term objects to store a list of prefixes instead of a
21461              single prefix.  make_term() now takes a prefix argument and
21462              makes a single term.  Term::as_... methods iterate through the
21463              prefix list and OR together the resulting terms.
21464            - Change TermList object to store a list of Terms instead of
21465              Queries, and also to keep track of whether the prefix lists
21466              for those Terms are all the same.  When they are the same,
21467              generate separate phrases for each prefix, and OR them
21468              togeher, instead of generating phrases of "OR" groups of
21469              terms.  Remove the unused "TermList::add_term()" method.
21470         * tests/queryparsertest.cc: Add simple tests of repeated inline
21471           fields, phrases with multiple prefixed fields, tests of backwards
21472           compatible behaviour of add_prefix(field, prefix), and
21473           add_boolean_prefix(), and of the new add_prefix() form with
21474           incompatible types.
21476 Thu Sep 20 02:13:36 BST 2007  Olly Betts <olly@survex.com>
21478         * NEWS: Update with changes since 1.0.2.
21480 Wed Sep 19 20:00:43 BST 2007  Olly Betts <olly@survex.com>
21482         * backends/flint/flint_table.cc: Fix "Key_" in exception message to
21483           say "Key" (the result of overzealous search-and-replace).
21485 Wed Sep 19 17:08:16 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21487         * include/xapian/queryparser.h,queryparser/queryparser.cc,
21488           queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
21489           Handle repeated calls to QueryParser::add_boolean_prefix() with
21490           the same field - this will generate multiple terms for each
21491           occurrence of the field in the query.  Involves reorganising the
21492           internal representation of prefixes, to hold a list of PrefixInfo
21493           objects for each field, instead of a single object.  This also
21494           paves the way towards handling for multiple calls to
21495           QueryParser:add_prefix() with the same field, and allowing
21496           add_{boolean_}prefix() with an empty field to set the default
21497           prefix handling, but the behaviour of this are currently
21498           unchanged.  Technically, this could be considered an API change,
21499           but the previous behaviour (of using only the most recent value
21500           set by add_boolean_prefix) was unintentional and undocumented,
21501           and seems unlikely to have been deliberately used.
21502         * tests/queryparsertest.cc: Add a very simple test for repeated
21503           boolean_prefix fields; several more are needed.  Also, a
21504           commented out test of repeated non-boolean prefix fields.
21506 Tue Sep 18 23:28:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21508         * queryparser/queryparser.lemony: Remove unused variable
21509           "term_group".
21511 Tue Sep 18 16:56:37 BST 2007  Olly Betts <olly@survex.com>
21513         * api/matchspy.cc,include/xapian/matchspy.h: Use a set rather than a
21514           map to store the "multivalues" flags.
21516 Mon Sep 17 14:10:47 BST 2007  Olly Betts <olly@survex.com>
21518         * include/xapian/matchspy.h: Fix documentation comment typo.
21520 Sun Sep 16 04:13:20 BST 2007  Olly Betts <olly@survex.com>
21522         * net/remoteconnection.cc: Fix compiler warning in mingw build.
21524 Sun Sep 16 02:59:54 BST 2007  Olly Betts <olly@survex.com>
21526         * backends/flint/flint_database.cc,tests/api_wrdb.cc: Check length of
21527           new terms is at most 245 bytes for flint in add_document() and
21528           replace_document() so that the API user gets an error there rather
21529           than when flush() is called (explicitly or implicitly).  Fixes
21530           bug#44.
21532 Sat Sep 15 20:11:36 BST 2007  Olly Betts <olly@survex.com>
21534         * backends/flint/flint_version.cc: Add missing include of
21535           msvc_posix_wrapper.h.
21537 Sat Sep 15 17:58:35 BST 2007  Olly Betts <olly@survex.com>
21539         * api/omdatabase.cc,backends/database.cc,
21540           backends/flint/flint_database.cc,backends/flint/flint_database.h,
21541           backends/flint/flint_version.cc,
21542           backends/inmemory/inmemory_database.cc,
21543           backends/inmemory/inmemory_database.h,common/database.h,
21544           include/xapian/database.h,tests/api_wrdb.cc: Add support for user
21545           specified metadata (bug#143).
21547 Sat Sep 15 02:26:40 BST 2007  Olly Betts <olly@survex.com>
21549         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h:
21550           Implement FlintCursor::find_entry_ge() a little more efficiently
21551           (we could do better still by modifying FlintTable too).
21553 Sat Sep 15 00:56:54 BST 2007  Olly Betts <olly@survex.com>
21555         * backends/flint/flint_cursor.cc: If we found the exact key, just copy
21556           it to current_key.
21558 Fri Sep 14 21:52:45 BST 2007  Olly Betts <olly@survex.com>
21560         * backends/flint/: Overhaul FlintAllDocsPostList.
21562 Fri Sep 14 19:20:56 BST 2007  Olly Betts <olly@survex.com>
21564         * backends/flint/flint_alltermslist.cc: Rework
21565           FlintAllTermsList::skip_to() to use FlintCursor::find_entry_ge().
21567 Fri Sep 14 17:45:06 BST 2007  Olly Betts <olly@survex.com>
21569         * backends/flint/flint_cursor.h: Improve documentation comment.
21571 Fri Sep 14 17:28:17 BST 2007  Olly Betts <olly@survex.com>
21573         * backends/flint/flint_spellingwordslist.cc,
21574           backends/flint/flint_synonym.cc: Use FlintCursor::find_entry_ge().
21575         * backends/flint/flint_synonym.h: Use FlintCursor::find_entry_lt().
21576         * backends/flint/flint_alltermslist.h: Use FlintCursor::find_entry_lt()
21577           and skip any keys before "\x00\xff" to allow for extra metadata
21578           keys.
21580 Fri Sep 14 15:26:04 BST 2007  Olly Betts <olly@survex.com>
21582         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: The
21583           reason why a deleted key is still visible to the cursor is that it
21584           is running over the previous revision of the tree.  So we don't
21585           need to call find_entry() at all - we can just call next().  Also
21586           extend FlintCursor::del() to return whether the cursor is positioned
21587           (like FlintCursor::next() does).
21588         * backends/flint/flint_postlist.cc: Use the return value of
21589           FlintCursor::del().
21591 Fri Sep 14 15:10:39 BST 2007  Olly Betts <olly@survex.com>
21593         * tests/Makefile.am: Reorder the testdata/flint-x.y.z files
21594           consistently.
21596 Fri Sep 14 12:48:04 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21598         * configure.ac: Add "tar-ustar" option to AM_INIT_AUTOMAKE.  This
21599           is needed to avoid a failure of make dist due to filepaths of
21600           more than 99 characters (in the generated documentation: the
21601           relevant filepaths are for the NumberValueRangeProcessor class,
21602           and extend to 103 characters).  Automake documentation implies
21603           that tar-v7 is the default format, which doesn't support
21604           filepaths longer than 99 characters portably; ustar allows 256
21605           characters.  The automake documentation says that the ustar
21606           format "is believed to be old enough to be portable"; if we come
21607           across problems due to the format change we could consider
21608           renaming files to reduce the filepath length.
21609         * tests/Makefile.am: Remove
21610           testdata/flint-1.0.2/{value,position}.{baseA,DB} from
21611           distribution, since they don't actually exist.  Fixes make dist.
21613 Fri Sep 14 10:45:35 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21615         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Add
21616           FlintCursor::find_entry_gt(), and use it instead of
21617           flint_entry_ge() in FlintCuror::del().  This fixes failure of
21618           deldoc4 test.  I'm not sure why find_entry() can return true
21619           immediately after the key it's searching for was deleted with
21620           B->del(), though: that merits further investigation.
21622 Fri Sep 14 04:57:14 BST 2007  Olly Betts <olly@survex.com>
21624         * bin/xapian-inspect.cc: Avoid comparing char with 0 - on platforms
21625           where char is unsigned by default this can give a compiler warning.
21627 Fri Sep 14 03:40:18 BST 2007  Olly Betts <olly@survex.com>
21629         * bin/xapian-compact.cc: Removed unused variable.
21631 Fri Sep 14 01:56:36 BST 2007  Olly Betts <olly@survex.com>
21633         * backends/flint/flint_alltermslist.cc: Fix comment typo.
21635 Fri Sep 14 01:51:52 BST 2007  Olly Betts <olly@survex.com>
21637         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: Add
21638           FlintCursor::find_entry_lt() and FlintCursor::find_entry_ge()
21639           which we can implement more efficiently (in the future) than
21640           user code calling FlintCursor::find_entry() and then having to
21641           adjust the cursor position in some cases.
21643 Thu Sep 13 14:52:34 BST 2007  Olly Betts <olly@survex.com>
21645         * backends/flint/flint_alltermslist.cc: FlintCursor::after_end() is
21646           never true after FlintCursor::find_entry() so remove check for this
21647           case!
21649 Thu Sep 13 03:11:19 BST 2007  Olly Betts <olly@survex.com>
21651         * backends/flint/flint_alltermslist.h,backends/flint/flint_database.cc,
21652           backends/flint/flint_database.h: Don't pass FlintPostListTable
21653           pointer to FlintAllTermsList - it can find this via the database
21654           if we make it FlintDatabase instead of Database::Internal.
21656 Thu Sep 13 02:07:19 BST 2007  Olly Betts <olly@survex.com>
21658         * backends/flint/: Read/write the metainfo key from FlintDatabase to
21659           avoid having to pass a huge long list of values across once we start
21660           to store more statistics.
21662 Thu Sep 13 02:03:46 BST 2007  Olly Betts <olly@survex.com>
21664         * backends/database.cc,common/database.h: Move definitions of virtual
21665           methods out of the header file.
21667 Thu Sep 13 01:33:49 BST 2007  Olly Betts <olly@survex.com>
21669         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
21670           Store the total_length and lastdocid values in FlintDatabase object.
21672 Wed Sep 12 20:27:49 BST 2007  Olly Betts <olly@survex.com>
21674         * matcher/multimatch.cc: Eliminate a block which used to scope some
21675           variables which have now moved.  Unify debug output from different
21676           cases after the match.  Remove half-finished comment which doesn't
21677           seem to be trying to say anything useful.
21679 Wed Sep 12 20:20:18 BST 2007  Olly Betts <olly@survex.com>
21681         * tests/api_anydb.cc: In checkatleast2, the total number of matching
21682           documents in the database is 5, so use TEST_EQUAL instead of
21683           TEST_GREATER_OR_EQUAL to compare get_matches_lower_bound() with 5.
21685 Wed Sep 12 17:55:00 BST 2007  Olly Betts <olly@survex.com>
21687         * backends/flint/flint_database.h: Fix some comment typos and
21688           outdated information.  Remove some superfluous uses of "virtual".
21690 Wed Sep 12 17:15:58 BST 2007  Olly Betts <olly@survex.com>
21692         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
21693           Failing to create a flint or quartz database because we couldn't
21694           create the directory for it now throws DatabaseCreateError not
21695           DatabaseOpeningError.
21696         * tests/api_db.cc: Update test cases.
21698 Wed Sep 12 15:40:16 BST 2007  Olly Betts <olly@survex.com>
21700         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
21701           If we reach the flush threshold during a transaction, flush the
21702           postlist changes, but don't actually commit them.
21704 Wed Sep 12 14:12:52 BST 2007  Olly Betts <olly@survex.com>
21706         * common/msvc_posix_wrapper.cc,common/msvc_posix_wrapper.h: Add
21707           msvc_posix_rename() which can rename a file on top of another file.
21708         * common/stringutils.h: Add common_prefix_length() function.
21709         * backends/flint/: Clean up FlintWritableDatabase - it now just
21710           inherits from FlintDatabase which allows several virtual methods
21711           which just forwarded to FlintDatabase to be dropped.  Also, we
21712           now no longer need to pass FlintTable objects to other classes
21713           - they can just find the tables they want via the database pointer.
21714           The never-used "store_termfreqs" flag has been dropped from the
21715           termlist table entries - existing 1.0.x flint databases will be
21716           automatically upgraded to the new version.  Opening a database
21717           now calls stat() less, so should be slightly more efficient.
21718           And TermIterator::positionlist_count() now works for the flint
21719           backend.
21720         * tests/Makefile.am,tests/api_db.cc,tests/testdata/flint-1.0.2/: New
21721           test flintbackwardcompat2 which tests that we can open a flint
21722           database from 1.0.2.
21723         * tests/api_wrdb.cc: New test adddoc4 which checks that termlists
21724           handle an initial term of any valid length correctly.
21725         * tests/testdata/flint-1.0.1/postlist.DB: Mark as a binary file in
21726           SVN.
21728 Tue Sep 11 23:02:56 BST 2007  Olly Betts <olly@survex.com>
21730         * backends/inmemory/inmemory_database.cc,
21731           backends/inmemory/inmemory_database.h: Implement
21732           TermIterator::positionlist_count() for the inmemory backend.
21733         * tests/api_posdb.cc: Add feature test for
21734           TermIterator::positionlist_count() (which currently skips for all
21735           backends except inmemory).
21737 Tue Sep 11 03:43:30 BST 2007  Olly Betts <olly@survex.com>
21739         * backends/flint/flint_database.cc: Make sure flush_threshold gets
21740           initialised.
21741         * backends/flint/flint_database.h: Change type of flush_threshold from
21742           `size_t' to `Xapian::doccount' for consistency with the type of
21743           changes_made.
21745 Tue Sep 11 03:19:37 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21747         * backends/flint/flint_database.cc,backends/flint/flint_database.h:
21748           Change flush_threshold from static to non-static, and set it for
21749           each FlintWritableDatabase based on the value of the
21750           XAPIAN_FLUSH_THRESHOLD environment variable at the time the
21751           database was opened, instead of caching the value for each future
21752           database which is opened.
21754 Tue Sep 11 02:59:45 BST 2007  Olly Betts <olly@survex.com>
21756         * docs/Makefile.am: When running rst2html, use "--exit-status=warning"
21757           rather than "--strict".  The former actually gives a non-zero exit
21758           status for a warning or worse, while the former doesn't, but does
21759           include any "info" messages in the output HTML.
21761 Tue Sep 11 02:38:30 BST 2007  Olly Betts <olly@survex.com>
21763         * docs/deprecation.rst: Add "Database::positionlist_begin() throwing
21764           RangeError".
21766 Tue Sep 11 00:52:27 BST 2007  Olly Betts <olly@survex.com>
21768         * HACKING: Document a few more "coding standards".
21770 Mon Sep 10 21:34:23 BST 2007  Olly Betts <olly@survex.com>
21772         * examples/delve.cc,examples/simpleexpand.cc,net/tcpserver.cc,
21773           queryparser/queryparser.cc,queryparser/queryparser.lemony: Add more
21774           missing "#include <string.h>" instances.
21776 Mon Sep 10 20:24:25 BST 2007  Olly Betts <olly@survex.com>
21778         * net/serialise.cc: Add missing "#include <string.h>".
21780 Sun Sep 09 15:38:11 BST 2007  Olly Betts <olly@survex.com>
21782         * backends/flint/flint_spelling.h,backends/flint/flint_synonym.h,
21783           backends/flint/flint_table.h: Fix typo (Z_DEFAULT_COMPRESSION
21784           where it should be Z_DEFAULT_STRATEGY) which meant that zlib
21785           compression wasn't enabled for the spelling or synonym tables.
21787 Fri Sep 07 19:31:44 BST 2007  Olly Betts <olly@survex.com>
21789         * docs/spelling.rst: Fix typo.
21791 Thu Sep 06 15:02:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21793         * api/editdistance.cc: Fix off-by-one error in loop bounds when
21794           setting up fkp array initially.  Fixes bug #194.
21795         * tests/api_wrdb.cc: Add regression test for #194, spell5.
21797 Thu Sep 06 14:31:15 BST 2007  Olly Betts <olly@survex.com>
21799         * tests/harness/testsuite.cc: More localised fix for preserving the
21800           start of the valgrind report when in verbose mode.  Rework the code
21801           which pulls out the start of the report to summarise why the test
21802           failed.
21804 Thu Sep 06 14:17:44 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21806         * tests/harness/testsuite.cc: When displaying valgrind output, seek
21807           back to the start of the valgrind output for the current test
21808           before dumping it to stdout: previously, the earlier check for the
21809           valgrind error message to display (when not using -v) caused the
21810           first 1024 bytes of the valgrind output to get dropped.
21812 Tue Sep 04 20:13:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21814         * matcher/multimatch.cc: For remote submatches, keep a count of
21815           matches which we know exist, but we don't get passed from the
21816           submatch.  These can be detected by checking for the lowerbound
21817           on the matches in the submatch being greater than the index of
21818           the last item in the returned submset.  When the match is over,
21819           use this count, together with docs_matched, to adjust the lower
21820           bound and estimate (and upper bound, if we've not seen as many
21821           documents as we were asked to check for).  Fixes checkatleast2
21822           and checkatleast3 in the remote database case.
21823         * tests/harness/testsuite.h: Add TEST_GREATER_OR_EQUAL,
21824           TEST_GREATER, TEST_LESSER_OR_EQUAL and TEST_LESSER macros, which
21825           display the values of the arguments if they fail.
21826         * tests/api_anydb.cc: Use TEST_GREATER_OR_EQUAL and TEST_EQUAL in
21827           checkatleast2 and checkatleast3, to make failures easier to
21828           debug.
21830 Tue Sep 04 18:16:49 BST 2007  Olly Betts <olly@survex.com>
21832         * matcher/multimatch.cc: Restructure to make the control flow clearer.
21833           Rewrap some comments which got wrapped to ~82 columns somehow.
21835 Tue Sep 04 17:21:49 BST 2007  Olly Betts <olly@survex.com>
21837         * docs/overview.html: Restore the HTML header I accidentally deleted
21838           in November 2006.
21840 Tue Sep 04 17:15:30 BST 2007  Olly Betts <olly@survex.com>
21842         * docs/overview.html: Fix typo.
21844 Tue Sep 04 13:47:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21846         * tests/api_anydb.cc: Tighten test_checkatleast3 to check for
21847           previous bug (now fixed).
21849 Tue Sep 04 13:37:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21851         * matcher/multimatch.cc: If check_at_least is greater than
21852           maxitems, but there are fewer results than check_at_least, the
21853           lower and upper bounds reported should be equal (and exact).  Fix
21854           a bug which caused this not to be the case, by checking if
21855           docs_matched < check_at_least, and forcing the bounds (and
21856           estimate) to be docs_matched in this case.
21858           Also, fix a bug when sorting by anything other than relevance,
21859           which was causing potential matches which are too low in the
21860           ranking to make the mset not to be added to the count of
21861           docs_matched, even when docs_matched < check_at_least.
21863           Also, add a few extra explanatory comments and debug log messages
21864           in get_mset().
21866 Tue Sep 04 12:43:03 BST 2007  Olly Betts <olly@survex.com>
21868         * PLATFORMS: Update from debian buildd logs.
21870 Tue Sep 04 09:57:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21872         * Makefile.am,configure.ac,msvc/genversion.pl,msvc/version.h.in:
21873           Move msvc/genversion.pl and msvc/version.h.in to win32msvc in
21874           xapian-maintainer-tools.  Remove generation of msvc/version.h
21875           from configure.in, and AC_SUBST() of MAJOR_VERSION,
21876           MINOR_VERSION and REVISION, which were only in place for this
21877           generation.  Remove msvc/version.h from distribution tarballs.
21879 Tue Sep 04 02:56:00 BST 2007  Olly Betts <olly@survex.com>
21881         * matcher/andpostlist.cc: If the database has > 2G documents then the
21882           sum of termfreq_min can overflow, so handle this case correctly.
21884 Tue Sep 04 00:05:47 BST 2007  Olly Betts <olly@survex.com>
21886         * xapian-config.in: We always need to include dependency_libs in the
21887           output of `xapian-config --libs` if shared libraries are disabled.
21889 Mon Sep 03 16:28:33 BST 2007  Olly Betts <olly@survex.com>
21891         * bin/xapian-check.cc: Allow "xapian-check db/record." and
21892           "xapian-check db/record.DB".
21894 Mon Sep 03 02:16:43 BST 2007  Olly Betts <olly@survex.com>
21896         * docs/deprecation.rst,include/xapian/enquire.h: Deprecate
21897           Enquire::register_match_decider().
21898         * api/omenquire.cc,common/omenquireinternal.h: Remove mdecider_map
21899           since the set values are never used anywhere.
21901 Sun Sep 02 20:54:33 BST 2007  Olly Betts <olly@survex.com>
21903         * HACKING: Add "update the 1.0.N tracker bug" to the release
21904           checklist.
21906 Fri Aug 31 10:44:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21908         * tests/api_db.cc,tests/api_wrdb.cc: Fix compilation of apitest,
21909           which was broken on 64 bit platforms due to size_t instead of
21910           doccount bug.
21912 Fri Aug 24 11:56:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21914         * api/matchspy.cc,include/xapian/matchspy.h: Fix uses of size_t
21915           which should have been Xapian::doccount.  Was causing compile
21916           errors on platforms where size_t and Xapian::doccount were
21917           different sizes.
21919 Fri Aug 03 20:10:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21921         * tests/api_nodb.cc: Add test_stringlistserialise1() to test the
21922           StringListSerialiser and StringListUnserialiser.  Change the list
21923           of testcases to use the TESTCASE and END_OF_TESTCASES macros.
21925 Fri Aug 03 19:53:26 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21927         * api/matchspy.cc,include/xapian/matchspy.h: Add StringListSerialiser
21928           and StringListUnserialiser classes which can be used to serialise
21929           a list of strings into a single string.  Add flag to
21930           ValueCountMatchSpy to use this to unserialise the values read
21931           from the database into multiple strings, allowing several values
21932           to be stored for a particular slot in a database: this allows
21933           multiple values of a particular facet to be stored.
21935 Thu Jul 26 16:55:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21937         * backends/flint/flint_table.cc: Change STRINGIZE to om_tostring()
21938           in error message about a key which is too long; STRINGIZE doesn't
21939           work since FLINT_BTREE_MAX_KEY_LEN is no longer a preprocessor
21940           constant - it's a C++ constant; before this change, the error
21941           message contained the literal text "FLINT_BTREE_MAX_KEY_LEN".
21943 Tue Jul 17 12:20:55 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21945         * api/matchspy.cc,include/xapian/matchspy.h: Add a
21946           MultipleMatchDecider, which calls a list of deciders in order,
21947           until one returns false.
21948         * include/xapian/enquire.h: Expand comment to say which way round
21949           the return values of the MatchDecider operator are.
21950         * tests/api_db.cc: Add test_matchfunctor3() to test the
21951           MultipleMatchDecider - also tests the ValueCountMatchSpy,
21952           incidentally.
21954 Tue Jul 17 11:10:42 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21956         * api/matchspy.cc,include/xapian/matchspy.h: Make
21957           get_most_frequent_items() private, since I'm not convinced it's
21958           useful to make it available externally.  We can always make it
21959           public again if it's useful to do so.
21960         * test/api_wrdb.cc: Update tests accordingly.
21962 Sat Jul 14 00:17:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21964         * api/matchspy.cc,include/xapian/matchspy.h: Get rid of the
21965           TopValueMatchSpy in favour of a new function
21966           "get_most_frequent_items", which processes the output of a
21967           ValueCountMatchSpy.  Add a TermCountMatchSpy which counts the
21968           occurrences of terms with a given prefix, and gives output in
21969           the same form as ValueCountMatchSpy.  Add convenience methods
21970           ValueCountMatchSpy::get_top_values() and
21971           TermCountMatchSpy::get_top_terms() which use this to return the
21972           most frequent items seen by the matchspy.
21973         * tests/api_wrdb.cc: Test the ValueCountMatchSpy, and the
21974           get_most_frequent_items() function.
21976 Fri Jul 13 18:57:30 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21978         * matcher/andpostlist.cc,tests/api_anydb.cc: Improve the lower
21979           bound on the number of matching documents for an AND query - if
21980           the sum of the lower bounds for the two sides is greater than the
21981           number of documents in the database, then some of them must have
21982           both terms.  This greatly improves the lower bound for queries of
21983           the form "<alldocuments> FILTER foo" (since FILTER is a subclass
21984           of AND, and uses the same method), but is probably a useful
21985           improvement elsewhere.
21987 Fri Jul 13 17:53:46 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21989         * docs/valueranges.rst: Correct out-of-date reference to
21990           float_to_string, spotted by Enrico Zini.
21992 Wed Jul 11 22:54:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
21994         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
21995           Move ValueAndFrequency out of the TopValueMatchSpy class - it
21996           doesn't seem to be possible to wrap it with swig without doing
21997           this, and it doesn't seem much less tidy.
21999 Wed Jul 11 18:03:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22001         * api/matchspy.cc,include/xapian/matchspy.h: Split MatchSpy into a
22002           base class (ValueCountMatchSpy), which just counts the values in
22003           the documents it sees, and a subclass (CategorySelectMatchSpy)
22004           which does the grouping into categories, and scores the
22005           categories.  Add another subclass (TopValueMatchSpy) which
22006           calculates a sorted vector holding the most frequent values.
22007         * tests/api_wrdb.cc: Update matchspy1 and matchspy2 to use
22008           CategorySelectMatchSpy instead of MatchSpy, and corresponding
22009           changes to the methods.  Add matchspy3 to test the
22010           TopValueMatchSpy.
22012 Mon Jul 09 15:40:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22014         * tests/termgentest.cc: Fix copyright: everything I've done in 2007
22015           has been for Lemur.
22017 Mon Jul 09 15:40:38 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22019         * include/xapian/version_h.cc: Fix type in comment.
22021 Fri Jul 06 12:14:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22023         * include/xapian/enquire.h: Add note to register_match_decider()
22024           documentation comment of what this function is for, and also that
22025           it doesn't currently do anything (other than store the values
22026           passed to it in the enquire internals).
22028 Thu Jul 05 20:52:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22030         * docs/categorisation.rst: Fix typo.
22032 Thu Jul 05 20:41:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22034         * tests/api_wrdb.cc: Rework matchspy2 to use approximate values to
22035           avoid failing on some platform due to differing precision.
22037 Thu Jul 05 12:21:48 BST 2007  Olly Betts <olly@survex.com>
22039         * docs/categorisation.rst: Complete half sentence.
22041 Thu Jul 05 12:17:20 BST 2007  Olly Betts <olly@survex.com>
22043         * docs/categorisation.rst: Add section on restricting by category
22044           values.
22046 Thu Jul 05 04:47:18 BST 2007  Olly Betts <olly@survex.com>
22048         * docs/Makefile.am,docs/categorisation.rst: Add topic document
22049           discussing use of Xapian::MatchSpy.
22051 Thu Jul 05 02:08:13 BST 2007  Olly Betts <olly@survex.com>
22053         * include/xapian.h,tests/api_wrdb.cc: Restore MatchSpy stuff.
22055 Thu Jul 05 01:38:38 BST 2007  Olly Betts <olly@survex.com>
22057         * HACKING: Note that RoadMap on the wiki needs updating for each
22058           release.
22060 Thu Jul 05 01:03:05 BST 2007  Olly Betts <olly@survex.com>
22062         * AUTHORS: Update.
22064 Thu Jul 05 00:31:00 BST 2007  Olly Betts <olly@survex.com>
22066         * NEWS: Minor tweaks and clarifications.
22068 Thu Jul 05 00:29:53 BST 2007  Olly Betts <olly@survex.com>
22070         * include/xapian.h,tests/api_wrdb.cc: Disable MatchSpy class for 1.0.2
22071           as it's not ready for release yet.
22073 Wed Jul 04 21:20:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22075         * NEWS: Update with release date for release 1.0.2
22077 Wed Jul 04 21:09:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22079         * AUTHORS: Add Tomek Jackowiak, for reporting bug #166 (missing
22080           Xapian::Query documentation).
22082 Wed Jul 04 20:45:56 BST 2007  Olly Betts <olly@survex.com>
22084         * configure.ac: Updated version and library version for 1.0.2.
22086 Wed Jul 04 20:36:07 BST 2007  Olly Betts <olly@survex.com>
22088         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
22089           Tidy up API for MatchSpy::build_numeric_ranges() and add tests.
22091 Wed Jul 04 19:40:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22093         * NEWS: Fully updated.
22095 Wed Jul 04 18:33:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22097         * NEWS: Move some of the changelog entries into news-style comments.
22099 Wed Jul 04 17:50:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22101         * tests/api_wrdb.cc: SKIP_TEST() spell3 on windows - it doesn't
22102           work there due to trying to delete (and then overwrite) an open
22103           database.  We shouldn't be doing this, so add a long FIXME
22104           explaining what we should be doing instead.
22106 Wed Jul 04 17:27:22 BST 2007  Olly Betts <olly@survex.com>
22108         * NEWS: Partly update.
22110 Wed Jul 04 17:19:51 BST 2007  Olly Betts <olly@survex.com>
22112         * AUTHORS: Add Simon Tatham for spotting the -INFINITY issue, and for
22113           a lot of useful advice during the CVS to SVN transition.
22115 Wed Jul 04 17:16:59 BST 2007  Olly Betts <olly@survex.com>
22117         * api/,include/xapian/queryparser.h,tests/queryparsertest.cc: Rename
22118           Xapian::NumberValueRangeProcessor::float_to_string() to
22119           Xapian::sortable_serialise() and
22120           Xapian::NumberValueRangeProcessor::string_to_float() to
22121           Xapian::sortable_unserialise().
22123 Wed Jul 04 17:16:16 BST 2007  Olly Betts <olly@survex.com>
22125         * HACKING: Add rationale for 2 space indents for "public", etc.
22127 Wed Jul 04 14:09:57 BST 2007  Olly Betts <olly@survex.com>
22129         * tests/queryparsertest.cc: Loops on integers and scale to doubles
22130           rather than looping on doubles and scaling to get integers.
22132 Wed Jul 04 13:01:11 BST 2007  Olly Betts <olly@survex.com>
22134         * tests/queryparsertest.cc: If the NumberValueRangeProcessor
22135           string encodings don't sort the same way, there's no need to report
22136           the string encodings in the error message as they are written to
22137           "tout" just before, along with the respective numbers they came
22138           from.  The string encodings can contain control characters, so are
22139           liable to corrupt the test failure message.
22141 Wed Jul 04 12:25:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22143         * api/valuerangeproc.cc: Fix encoding of extremely large, negative,
22144           non-IEEE representation to be -INFINITY, not +INFINITY.  Thanks
22145           to Simon Tatham for pointing this out.
22146         * include/xapian/queryparser.h: Add a documentation comment note
22147           that zero and -zero will be transformed to the same value.
22149 Wed Jul 04 10:09:33 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22151         * api/valuerangeproc.cc: Change encoding used for doubles to a much
22152           more compact scheme, and add support for +-INFINITY.  Also, some
22153           other tweaks to avoid unnecessary computation.
22154         * tests/queryparsertest.cc: Update test cases to expect new
22155           encoding of doubles, and add values for INFINITY and DBL_MAX and
22156           some other special numbers to the list of numbers that are
22157           specifically checked.
22159 Wed Jul 04 03:29:10 BST 2007  Olly Betts <olly@survex.com>
22161         * api/matchspy.cc,include/xapian/matchspy.h,tests/api_wrdb.cc:
22162           Category score now explicitly weights for having nearer the
22163           requested number of categories.  Category score is now normalised
22164           so values should be roughly comparable between different sized
22165           collections.  Add untested code to build ranges.
22167 Wed Jul 04 00:48:07 BST 2007  Olly Betts <olly@survex.com>
22169         * bin/xapian-compact.cc: Add new "--no-renumber" option to preserve
22170           document ids from source databases.  Fix bug in change to add
22171           support for spelling and synonym tables which was preventing any
22172           renumbering from happening!
22174 Wed Jul 04 00:25:52 BST 2007  Olly Betts <olly@survex.com>
22176         * backends/inmemory/inmemory_database.cc,
22177           backends/inmemory/inmemory_database.h,tests/api_wrdb.cc: Fix bug in
22178           inmemory backend - using replace_document() to add a document with a
22179           specific document id above the highest currently used would create
22180           empty documents for all document ids in between.
22182 Tue Jul 03 09:27:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22184         * HACKING: Add note that protection level declarations in classes
22185           and structs should only be indented by 2 spaces.
22187 Tue Jul 03 03:53:11 BST 2007  Olly Betts <olly@survex.com>
22189         * api/Makefile.mk,api/matchspy.cc,include/xapian/matchspy.h,
22190           tests/api_wrdb.cc: Add MatchSpy method to score how good a
22191           categorisation is.
22193 Tue Jul 03 01:24:19 BST 2007  Olly Betts <olly@survex.com>
22195         * include/xapian/queryparser.h: Replace `#include <xapian/stem.h>'
22196           with forward declaration of Stem.
22198 Tue Jul 03 01:14:12 BST 2007  Olly Betts <olly@survex.com>
22200         * include/xapian/errorhandler.h: Replace `#include <xapian/error.h>'
22201           with forward declaration of Error.
22202         * api/errorhandler.cc: Now needs to explicitly `#include
22203           <xapian/error.h>'.
22205 Tue Jul 03 01:08:30 BST 2007  Olly Betts <olly@survex.com>
22207         * include/xapian/dbfactory.h: Replace `#include <xapian/database.h>'
22208           with forward declarations of Database and WritableDatabase.
22210 Tue Jul 03 00:59:57 BST 2007  Olly Betts <olly@survex.com>
22212         * include/xapian/enquire.h: Remove `#include <xapian/error.h>'.
22214 Mon Jul 02 23:25:55 BST 2007  Olly Betts <olly@survex.com>
22216         * include/Makefile.mk,include/xapian.h,include/xapian/matchspy.h,
22217           tests/api_wrdb.cc: Implement "MatchSpy" class to tally values
22218           in matching documents.
22220 Mon Jul 02 18:15:18 BST 2007  Olly Betts <olly@survex.com>
22222         * api/omenquire.cc,include/xapian/enquire.h: Fix last change to
22223           preserve ABI compatibility.
22225 Mon Jul 02 17:52:10 BST 2007  Olly Betts <olly@survex.com>
22227         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
22228           include/xapian/enquire.h,matcher/multimatch.cc,net/remoteserver.cc,
22229           tests/api_db.cc: Add support for a "matchspy" - a MatchDecider which
22230           is documented to be tested on ever candidate document.  We plan to
22231           optimise the current matchdecider to be used as little as possible.
22233 Mon Jul 02 17:35:12 BST 2007  Olly Betts <olly@survex.com>
22235         * tests/api_db.cc: Enhance matchfunctor1 to test that the functor
22236           returns ALL matching documents, not just that all documents returned
22237           match.
22239 Mon Jul 02 16:36:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22241         * common/omassert.h: Fix to avoid warning in gcc-snapshot; use
22242           do{}while(0) to protect assertions, and remove the old "if (a) {}
22243           else {fail}" constructions which tried to do the same job.
22245 Mon Jul 02 14:56:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22247         * bin/xapian-inspect.cc: Add missing #include of <stdio.h> - fixes
22248           gcc-2.95 compilation.
22250 Mon Jul 02 14:54:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22252         * queryparser/termgenerator_internal.h: Fix for gcc-2.95
22253           compilation.
22255 Mon Jul 02 14:09:22 BST 2007  Olly Betts <olly@survex.com>
22257         * api/Makefile.mk,api/valuerangeproccompat.cc,
22258           include/xapian/queryparser.h: Put the new NumberValueRangeProcessor
22259           in a sub-namespace which we then import it from.  Restore the old
22260           NumberValueRangeProcessor implementation inside the library so that
22261           it is available to code linked against 1.0.0 or 1.0.1 to keep ABI
22262           compatibility.
22264 Sun Jul 01 15:32:30 BST 2007  Olly Betts <olly@survex.com>
22266         * include/xapian/queryparser.h: Clearer description of
22267           NumberValueRangeProcessor.  Don't document the number format in
22268           terms of strtod() - that's a bug, not a feature we want to be tied
22269           to.
22270         * include/xapian/query.h,include/xapian/queryparser.h: Use "@a" not
22271           "\a" for consistency with existing usage.
22273 Sun Jul 01 10:09:42 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22275         * matcher/localmatch.cc: When registering a term, check if it's
22276           empty, and if so use the document count as the term frequency,
22277           rather than calling the database to get the term frequency of an
22278           empty term (most database backends have an assertion that the
22279           term is not empty, and an empty term isn't a valid parameter to
22280           pass to get_termfreq() anyway).
22281         * matcher/multimatch.cc: For MatchAll queries, the "" term will not
22282           be found in the termlist of the top document, so check if a ""
22283           term is present in the query, and use it to increase the
22284           percent_scale if so.  This fixes an Assertion which checked that
22285           percent_scale was not 0.
22286         * tests/api_db.cc: Add test_matchall1() which tests running a query
22287           with a MatchAll query.
22288         * tests/api_nodb.cc: Rename test_emptyquery1 and test_emptyquery2
22289           to test_emptyquery2 and test_emptyquery3, respectively.  There
22290           was already a (different) test_emptyquery1 in api_anydb.cc.
22292 Sat Jun 30 18:04:06 BST 2007  Olly Betts <olly@survex.com>
22294         * tests/queryparsertest.cc: Write `2.0' rather than `(double)2'.
22296 Sat Jun 30 16:12:49 BST 2007  Olly Betts <olly@survex.com>
22298         * docs/valueranges.rst: Fix typo.  Fix ".. note:" to ".. note::" so
22299           it appears visibly in the HTML output rather than in an HTML
22300           comment!
22302 Sat Jun 30 15:14:33 BST 2007  Olly Betts <olly@survex.com>
22304         * api/omdocument.cc,common/document.h,include/xapian/document.h:
22305           Add Xapian::Document::get_docid() method.
22307 Sat Jun 30 04:00:57 BST 2007  Olly Betts <olly@survex.com>
22309         * matcher/multimatch.cc: If there's only one term in the query (a
22310           pretty common case) we don't need to look at the top document's
22311           termlist to determine that it matches all the query terms.
22313 Sat Jun 30 00:37:09 BST 2007  Olly Betts <olly@survex.com>
22315         * INSTALL: Add note that zlib must be installed before you can build
22316           Xapian.
22318 Fri Jun 29 22:40:58 BST 2007  Olly Betts <olly@survex.com>
22320         * backends/flint/: If doccount == lastdocid, all document ids up to
22321           lastdocid are used, so we provide a special really efficient version
22322           implementation of iterating all documents for this common case for
22323           flint.
22325 Fri Jun 29 00:39:04 BST 2007  Olly Betts <olly@survex.com>
22327         * common/stringutils.h: Add startswith() and endswith() overloads
22328           which take a single character.
22329         * backends/flint/flint_spellingwordslist.cc,bin/xapian-inspect.cc:
22330           Use new forms.
22331         * backends/flint/flint_spellingwordslist.cc: Fix comment typo.
22333 Thu Jun 28 21:43:49 BST 2007  Olly Betts <olly@survex.com>
22335         * backends/flint/flint_spellingwordslist.cc: Another begins_with()
22336           which I somehow missed.
22338 Thu Jun 28 19:51:03 BST 2007  Olly Betts <olly@survex.com>
22340         * api/valuerangeproc.cc,backends/flint/flint_alltermslist.cc,
22341           backends/flint/flint_synonym.cc,
22342           backends/inmemory/inmemory_alltermslist.cc,
22343           backends/quartz/quartz_alltermslist.cc,
22344           backends/quartz/quartz_metafile.cc,bin/xapian-inspect.cc,
22345           common/stringutils.h,tests/harness/testsuite.cc: Rename
22346           begins_with() to startswith() and ends_with() to endswith() for
22347           consistency with Python string operations.
22349 Thu Jun 28 18:49:50 BST 2007  Olly Betts <olly@survex.com>
22351         * queryparser/queryparser.lemony: Don't put a Z prefix on terms if the
22352           stemmer is "none", which matches what TermGenerator generates.
22354 Thu Jun 28 02:22:04 BST 2007  Olly Betts <olly@survex.com>
22356         * api/omqueryinternal.cc: Don't SEGV when Query::MatchNothing is used
22357           with OP_AND_NOT (fixes bug#176).
22358         * tests/api_nodb.cc: Add regression test emptyquery2.
22359         * AUTHORS: Thank bug reporter (Krzysztof Klemm).
22361 Wed Jun 27 13:05:55 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22363         * NEWS: Updated.
22365 Wed Jun 27 13:04:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22367         * examples/copydatabase.cc: Add support for copying the spelling
22368           data.
22370 Wed Jun 27 12:46:54 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22372         * NEWS: Updated.
22374 Wed Jun 27 12:13:50 BST 2007  Olly Betts <olly@survex.com>
22376         * bin/xapian-check.cc: Check spelling and synonym Btrees.
22378 Wed Jun 27 12:10:47 BST 2007  Olly Betts <olly@survex.com>
22380         * bin/xapian-compact.cc: Add merging for spelling and synonym tables.
22382 Wed Jun 27 12:09:34 BST 2007  Olly Betts <olly@survex.com>
22384         * backends/flint/flint_spelling.cc: Fix PrefixCompressedStringItor to
22385           not ignore the last entry.
22386         * tests/api_wrdb.cc: Regression test (spell4).
22388 Wed Jun 27 11:51:10 BST 2007  Olly Betts <olly@survex.com>
22390         * tests/api_wrdb.cc: Remove bogus comment.
22392 Wed Jun 27 04:12:56 BST 2007  Olly Betts <olly@survex.com>
22394         * backends/flint/flint_cursor.h: Make FlintCursor::after_end() const.
22396 Tue Jun 26 22:31:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22398         * tests/api_wrdb.cc: Add test_spell3(), which tests spelling
22399           correction with multi databases, and the results of the iterator
22400           from Database::spellings_begin() with single and multi databases.
22402 Tue Jun 26 20:51:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22404         * api/omtermlistiterator.cc: Handle pruning, so that multi-database
22405           spelling word iterators work.  Pruning should arguably always
22406           have been handled, but it's never been possible for the TermList
22407           passed to TermIterator to prune before, so it's not been an
22408           issue.
22410 Tue Jun 26 20:50:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22412         * backends/flint/flint_spellingwordslist.h: Don't bother testing
22413           whether we found an entry which was exactly "W" - if we do, the
22414           database is corrupt, but the best recovery strategy would just be
22415           to continue at the next matching entry.
22417 Tue Jun 26 20:26:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22419         * api/omdatabase.cc: Remove mistaken skip_to("W") - should be done
22420           by open_spelling_wordlist() rather than here.
22421         * backends/flint/flint_spellingwordslist.h: Only call
22422           cursor->prev() if find_entry("W") finds an entry.
22424 Tue Jun 26 17:46:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22426         * backends/flint/flint_alltermslist.cc,
22427           backends/flint/flint_spellingwordslist.cc,
22428           backends/flint/flint_synonym.cc: Remove calls to abort() which
22429           are followed immediately by an Assert() which checks the same
22430           condition.
22432 Tue Jun 26 17:26:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22434         * include/xapian/database.h: Add spellings_begin() and
22435           spellings_end(), to iterate through the spelling correction
22436           target words.
22437         * api/omdatabase.cc: Implement spellings_begin(), using the newly
22438           added FreqAdderOrTermList to join the spellings lists.
22439         * common/database.h,backends/database.cc: Add
22440           open_spelling_wordlist() to get iterator of spelling targets, if
22441           any, with default implementation which returns NULL.
22442         * backends/flint/flint_database.h,backends/flint/flint_database.cc:
22443           Implement open_spelling_wordlist() for flint.
22444         * backends/flint/flint_spelling.h: Make merge_changes() public, so
22445           it can be called when a writable database needs to open a
22446           spelling wordlist.
22447         * backends/flint/flint_spellingwordslist.h,
22448           backends/flint/flint_spellingwordslist.cc: New files,
22449           implementing an iterator over the spelling targets.
22451 Tue Jun 26 17:25:09 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22453         * common/ortermlist.h,expand/ortermlist.cc: Add a
22454           "FreqAdderOrTermList", which adds the term frequencies of the
22455           sublists, rather than requiring that they're equal for terms
22456           which are in both.
22458 Tue Jun 26 17:22:03 BST 2007  Olly Betts <olly@survex.com>
22460         * docs/admin_notes.rst: Update to mention spelling and synonym tables,
22461           and to document optional tables more clearly.
22463 Tue Jun 26 16:23:25 BST 2007  Olly Betts <olly@survex.com>
22465         * tests/termgentest.cc: Add feature test for TermGenerator spelling
22466           integration.
22468 Tue Jun 26 16:14:56 BST 2007  Olly Betts <olly@survex.com>
22470         * tests/termgentest.cc: Fix comment paste-o.
22472 Tue Jun 26 16:11:11 BST 2007  Olly Betts <olly@survex.com>
22474         * include/xapian/termgenerator.h,queryparser/termgenerator.cc,
22475           queryparser/termgenerator_internal.cc,
22476           queryparser/termgenerator_internal.h: Add support for generating
22477           spelling data to TermGenerator class.
22479 Tue Jun 26 15:22:12 BST 2007  Olly Betts <olly@survex.com>
22481         * bin/xapian-compact.cc: Don't skip "empty" source databases, as they
22482           may have spelling and/or synonym data.  Warn if more than one source
22483           database has spelling data and ignore all but the first.  Similarly
22484           warn and ignore for synonym data.
22486 Tue Jun 26 13:52:15 BST 2007  Olly Betts <olly@survex.com>
22488         * examples/copydatabase.cc: Fix code which extracts the leafname to
22489           handle a trailing directory separator.
22490         * examples/copydatabase.cc: Copy synonym data across.  Print warning
22491           that spelling data isn't copied (as there's no API to access it
22492           currently).
22494 Tue Jun 26 13:21:13 BST 2007  Olly Betts <olly@survex.com>
22496         * bin/xapian-compact.cc: Fix to compact spelling and synonym tables.
22498 Tue Jun 26 02:20:50 BST 2007  Olly Betts <olly@survex.com>
22500         * tests/api_wrdb.cc: Fix randomly indented line.
22502 Tue Jun 26 02:20:01 BST 2007  Olly Betts <olly@survex.com>
22504         * include/xapian/document.h: Change parameter name for
22505           Document::get_value() to match other parameter names in the class.
22507 Tue Jun 26 02:19:16 BST 2007  Olly Betts <olly@survex.com>
22509         * include/xapian/queryparser.h: FLAG_AUTO_MULTIWORD_SYNONYMS now
22510           implies FLAG_AUTO_SYNONYMS.
22512 Tue Jun 26 02:18:02 BST 2007  Olly Betts <olly@survex.com>
22514         * tests/queryparsertest.cc: Add test for a single word synonym in
22515           multi-synonym mode.
22517 Tue Jun 26 02:08:47 BST 2007  Olly Betts <olly@survex.com>
22519         * common/ortermlist.h,queryparser/termgenerator_internal.h: Fix
22520           warnings from Intel's C++ compiler.
22522 Tue Jun 26 01:45:09 BST 2007  Olly Betts <olly@survex.com>
22524         * HACKING: Snapshots and releases are now bootstrapped with libtool
22525           1.5.24, which includes all the patches we were applying on top of
22526           1.5.22.
22527         * HACKING: Expand note about preferring pre-increment to
22528           post-increment to mention preferring it to adding one, and to cover
22529           decrementing too.
22531 Tue Jun 26 01:34:41 BST 2007  Olly Betts <olly@survex.com>
22533         * backends/flint/flint_spelling.cc: Fix bug appending spelling data to
22534           an existing trigram.
22536 Tue Jun 26 01:34:07 BST 2007  Olly Betts <olly@survex.com>
22538         * backends/flint/flint_database.cc: Fix handling of exceptions during
22539           commit.
22541 Mon Jun 25 17:01:40 BST 2007  Olly Betts <olly@survex.com>
22543         * docs/spelling.rst: Update for Unicode spelling correction.
22545 Mon Jun 25 15:41:43 BST 2007  Olly Betts <olly@survex.com>
22547         * api/editdistance.cc,api/editdistance.h,api/omdatabase.cc:
22548           Convert to UTF-32 before calculating edit distances.
22549         * tests/api_wrdb.cc: Add test coverage for Unicode spelling
22550           correction.
22552 Mon Jun 25 14:03:34 BST 2007  Olly Betts <olly@survex.com>
22554         * tests/quartztest.cc: Remove tests for removed method
22555           QuartzPostList::get_collection_freq().
22557 Mon Jun 25 12:32:07 BST 2007  Olly Betts <olly@survex.com>
22559         * backends/flint/flint_spelling.cc: Replace abort() with exception
22560           throwing.
22562 Mon Jun 25 03:01:20 BST 2007  Olly Betts <olly@survex.com>
22564         * tests/harness/backendmanager.cc: Track the fd used to communicate
22565           with a xapian-tcpsrv child process so we can close it when we reap
22566           the child pid.
22568 Mon Jun 25 02:44:04 BST 2007  Olly Betts <olly@survex.com>
22570         * docs/valueranges.rst: Fix bad RST markup.
22572 Sun Jun 24 23:24:26 BST 2007  Olly Betts <olly@survex.com>
22574         * tests/harness/backendmanager.cc: Fix memory leak in test harness
22575           launching of xapian-tcpsrv so that "apitest -b remotetcp" now passes
22576           under valgrind.
22578 Sun Jun 24 19:39:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22580         * docs/valueranges.rst: Add documentation for the
22581           NumberValueRangeProcessor, now that it is fixed.
22583 Sun Jun 24 14:29:06 BST 2007  Olly Betts <olly@survex.com>
22585         * backends/remote/net_postlist.cc,backends/remote/net_postlist.h:
22586           Move NetworkPostList virtual methods out of the header.  Move the
22587           constructor into the header, since that can be inlined.
22589 Sun Jun 24 14:15:43 BST 2007  Olly Betts <olly@survex.com>
22591         * backends/flint/,backends/multi/multi_postlist.cc,
22592           backends/multi/multi_postlist.h,backends/quartz/,
22593           backends/remote/net_postlist.cc,backends/remote/net_postlist.h,
22594           backends/remote/remote-database.cc,common/emptypostlist.h,
22595           common/postlist.h,common/remote-database.h: For Flint and Quartz,
22596           refactor so we no longer create a postlist just to find the termfreq
22597           or collection frequency.  These were the only places which used
22598           PostList::get_collection_freq(), so eliminate it (bug#124).
22600 Sun Jun 24 09:40:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22602         * msvc/genversion.pl: Add a script to generate the version.h file
22603           for MSVC builds by parsing configure.ac to extract the version
22604           number, and then performing the appropriate substitutions on
22605           msvc/version.h.in.  Shouldn't be used for tarball builds (because
22606           version.h already exists) or for builds which use configure.
22608 Sun Jun 24 02:25:38 BST 2007  Olly Betts <olly@survex.com>
22610         * matcher/multimatch.cc: The check_at_least parameter to
22611           Enquire::get_mset() is now handled in a more efficient way - no
22612           extra memory is now required, and CPU overhead should be reduced
22613           (bug#174).
22615 Sun Jun 24 02:00:07 BST 2007  Olly Betts <olly@survex.com>
22617         * docs/synonyms.rst,docs/Makefile.am: New "topic" document describing
22618           synonym support.
22619         * docs/Makefile.am: HTML documentation generated from RST files wasn't
22620           being installed.
22622 Sun Jun 24 00:45:46 BST 2007  Olly Betts <olly@survex.com>
22624         * backends/remote/remote-database.cc,common/remote-database.h,
22625           common/remoteprotocol.h,common/submatch.h,docs/remote_protocol.html,
22626           matcher/,net/remoteserver.cc: Pass check_at_least to the remote
22627           server to reduce the amount of work required to produce the match
22628           on the remote server, and also reduce the serialised size of the
22629           returned MSet.
22631 Sun Jun 24 00:17:18 BST 2007  Olly Betts <olly@survex.com>
22633         * tests/api_anydb.cc: More check_at_least tests.
22635 Sat Jun 23 20:02:48 BST 2007  Olly Betts <olly@survex.com>
22637         * api/omdatabase.cc,tests/api_wrdb.cc: Add multi-database support
22638           for synonyms.
22640 Sat Jun 23 18:50:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22642         * include/xapian/database.h: Tiny fix to a documentation comment.
22644 Sat Jun 23 17:35:37 BST 2007  Olly Betts <olly@survex.com>
22646         * common/ortermlist.h,expand/ortermlist.cc: Comment out unused method
22647           OrTermList::get_collection_freq().  The same dummy implementation
22648           is provided by the parent class (TermList).
22650 Sat Jun 23 17:07:40 BST 2007  Olly Betts <olly@survex.com>
22652         * api/omdatabase.cc,backends/database.cc,backends/flint/,
22653           common/database.h,include/xapian/database.h,tests/api_wrdb.cc:
22654           Implement Database::synonym_keys_begin() to allow iteration over all
22655           the terms for which synonyms have been added.
22657 Sat Jun 23 04:19:54 BST 2007  Olly Betts <olly@survex.com>
22659         * matcher/multimatch.cc: Fix handling of check_at_least parameter -
22660           we weren't discarding matches above the requested MSet size
22661           correctly.
22662         * tests/api_anydb.cc: Add regression test checkatleast2.
22664 Sat Jun 23 03:00:45 BST 2007  Olly Betts <olly@survex.com>
22666         * docs/queryparser.html: Document synonyms.
22668 Sat Jun 23 02:50:55 BST 2007  Olly Betts <olly@survex.com>
22670         * queryparser/queryparser.lemony: Unapply commented out fragments
22671           towards supporting '~' on phrases, which I didn't mean to apply.
22673 Sat Jun 23 02:25:32 BST 2007  Olly Betts <olly@survex.com>
22675         * include/xapian/queryparser.h,queryparser/queryparser.lemony,
22676           tests/queryparsertest.cc: Add support for synonym operator ('~')
22677           to the QueryParser.
22679 Sat Jun 23 01:52:51 BST 2007  Olly Betts <olly@survex.com>
22681         * queryparser/queryparser.lemony: Fix two bugs in the query parser -
22682           now '+' and '-' work on bracketed subexpressions as documented.
22683         * tests/queryparsertest.cc: Add regression tests.
22685 Sat Jun 23 01:47:30 BST 2007  Olly Betts <olly@survex.com>
22687         * queryparser/queryparser.cc: Use "using namespace std;".
22689 Fri Jun 22 18:48:21 BST 2007  Olly Betts <olly@survex.com>
22691         * backends/flint/flint_synonym.cc: Fix iteration of unflushed
22692           synonyms.
22694 Fri Jun 22 18:21:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22696         * docs/deprecation.rst: Fix typo.
22698 Fri Jun 22 18:02:21 BST 2007  Olly Betts <olly@survex.com>
22700         * api/omdatabase.cc,backends/database.cc,backends/flint/,
22701           common/database.h,include/xapian/database.h,
22702           include/xapian/queryparser.h,queryparser/queryparser.lemony:
22703           Add support for storing synonyms for terms in a new optional Btree
22704           table in flint databases, and using them in the QueryParser.
22705         * tests/queryparsertest.cc: Feature tests for synonyms.
22707 Fri Jun 22 17:58:37 BST 2007  Olly Betts <olly@survex.com>
22709         * queryparser/queryparser.lemony: Removed superfluous "private:" in
22710           class State.  Make State::get_database() const.
22712 Fri Jun 22 17:58:15 BST 2007  Olly Betts <olly@survex.com>
22714         * tests/queryparsertest.cc: Make sure .flint subdirectory exists.
22716 Fri Jun 22 17:52:53 BST 2007  Olly Betts <olly@survex.com>
22718         * bin/xapian-inspect.cc: Don't die with an error if the user tries to
22719           move forward twice from the end.  Also, make "prev" from the end
22720           work.
22722 Fri Jun 22 17:47:36 BST 2007  Olly Betts <olly@survex.com>
22724         * queryparser/queryparser.lt: If an input token has a yyminor, report
22725           its name in the debug output.
22727 Fri Jun 22 14:47:17 BST 2007  Olly Betts <olly@survex.com>
22729         * NEWS: Updated with changes since 1.0.1.
22731 Thu Jun 21 21:12:49 BST 2007  Olly Betts <olly@survex.com>
22733         * backends/remote/remote-database.cc,common/remoteprotocol.h,
22734           common/remoteserver.h,net/remoteserver.cc: Protocol version
22735           increased to 30.2.  This difference from 30.1 is that
22736           MSG_DELETEDOCUMENT now send REPLY_DONE to allow DocNotFoundError
22737           to be propagated.  MSG_DELETEDOCUMENT now has a new number and
22738           the old number for MSG_DELETEDOCUMENT is now
22739           MSG_DELETEDOCUMENT_PRE_30_2 which is handled by the server so
22740           that older clients will continue to work.
22741         * docs/remote_protocol.html: Update.
22742         * tests/api_wrdb.cc: Add regression test for DocNotFoundError bug.
22744 Thu Jun 21 17:22:53 BST 2007  Olly Betts <olly@survex.com>
22746         * api/omdatabase.cc,tests/queryparsertest.cc,docs/spelling.rst: Add
22747           support for spelling correction when using multiple databases.
22749 Thu Jun 21 16:15:22 BST 2007  Olly Betts <olly@survex.com>
22751         * tests/queryparsertest.cc: Add feature tests for correcting spelling
22752           errors in the QueryParser.
22754 Thu Jun 21 15:01:00 BST 2007  Olly Betts <olly@survex.com>
22756         * tests/api_wrdb.cc: Check the edit distance 3 words are found if
22757           asked for.
22759 Thu Jun 21 14:59:15 BST 2007  Olly Betts <olly@survex.com>
22761         * api/omdatabase.cc,common/omdebug.h: Add some debug tracing for the
22762           spelling correction.
22764 Thu Jun 21 13:45:12 BST 2007  Olly Betts <olly@survex.com>
22766         * backends/flint/flint_spelling.cc,docs/spelling.rst: Generate
22767           "bookends" for four character words too, so that we suggest
22768           "fuor" -> "four".
22769         * tests/api_wrdb.cc: More testcases.
22771 Thu Jun 21 13:08:07 BST 2007  Olly Betts <olly@survex.com>
22773         * docs/spelling.rst: Assorted minor improvements.  Add note about not
22774           detecting single character substitutions in two character words.
22776 Thu Jun 21 13:02:57 BST 2007  Olly Betts <olly@survex.com>
22778         * tests/api_wrdb.cc: Check cases for single edits to a two character
22779           word work as expected.
22781 Thu Jun 21 04:13:46 BST 2007  Olly Betts <olly@survex.com>
22783         * tests/api_wrdb.cc: Add test cases to check we find all single edit
22784           errors for a three letter word.
22786 Thu Jun 21 04:08:11 BST 2007  Olly Betts <olly@survex.com>
22788         * backends/flint/flint_spelling.h: Now that
22789           FlintSpellingTable::merge_changes() is only called from within the
22790           class, make it a private method.  discard_changes() is only used
22791           once, and from within the class, so just inline it as that's
22792           clearer.  Make the comment about the overridden methods a doxygen
22793           grouping comment,
22795 Thu Jun 21 04:02:51 BST 2007  Olly Betts <olly@survex.com>
22797         * docs/spelling.rst: Update to mention "bookend" bigrams.
22799 Thu Jun 21 03:56:52 BST 2007  Olly Betts <olly@survex.com>
22801         * backends/flint/flint_spelling.cc: Generate "bookend" spelling
22802           entries for two and three letter terms, consisting of the prefix 'B'
22803           followed by the first and last letters.  This allows us to handle
22804           substitution or deletion of the middle character of a three letter
22805           word, or insertion in the middle of a two letter word.
22807 Thu Jun 21 03:18:28 BST 2007  Olly Betts <olly@survex.com>
22809         * tests/queryparsertest.cc: Some doubles in the list which
22810           value_range_serialise1 tests have the same values on some platforms,
22811           so test that adjacent numbers and their string counterparts compare
22812           the same way rather than that both are "<".
22814 Thu Jun 21 02:46:01 BST 2007  Olly Betts <olly@survex.com>
22816         * tests/api_wrdb.cc: Add "spell1" - a simple feature test for spelling
22817           based on Richard's python test.  Use TESTCASE() and END_OF_TESTCASES
22818           macros.
22820 Wed Jun 20 21:57:01 BST 2007  Olly Betts <olly@survex.com>
22822         * backends/flint/flint_database.cc: WritableDatabase::delete_document()
22823           no longer cancels pending changes if the document doesn't exist.
22824         * backends/quartz/quartz_database.cc: Same fix.
22826 Wed Jun 20 20:53:52 BST 2007  Olly Betts <olly@survex.com>
22828         * backends/flint/flint_database.cc: We may now need to flush even if
22829           there have been no documents added/replaced/deleted, as there may be
22830           changes to the spelling table.
22832 Wed Jun 20 20:46:30 BST 2007  Olly Betts <olly@survex.com>
22834         * backends/flint/flint_table.cc: Fix a function name in the debug
22835           loggging.
22837 Wed Jun 20 20:39:43 BST 2007  Olly Betts <olly@survex.com>
22839         * backends/flint/flint_spelling.cc: Fix FlintSpellingTermList not to
22840           report at_end() one entry too early.
22842 Wed Jun 20 19:21:45 BST 2007  Olly Betts <olly@survex.com>
22844         * tests/harness/backendmanager.cc: Don't touch <dbdir>/log for flint
22845           as flint doesn't create a log like quartz does.
22847 Wed Jun 20 17:10:29 BST 2007  Olly Betts <olly@survex.com>
22849         * backends/flint/flint_database.cc,backends/flint/flint_spelling.h:
22850           Push special handling for spelling_table into the FlintSpellingTable
22851           class.  This fixes "is_modified()" to take into account unflushed
22852           changes held in memory.
22854 Wed Jun 20 13:59:01 BST 2007  Olly Betts <olly@survex.com>
22856         * api/omdatabase.cc: Don't use RETURN() in methods which return void.
22858 Wed Jun 20 11:56:30 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22860         * api/editdistance.cc: Change an Assert in is_transposed() (which
22861           fails in some cases) to a test, since it seems legitimate that
22862           a value of pos2 <= 0 might be supplied to the function (though
22863           the answer will always be "false" in that case).
22865 Wed Jun 20 02:38:51 BST 2007  Olly Betts <olly@survex.com>
22867         * api/omdatabase.cc: Fix two incorrect return types in debug logging.
22869 Wed Jun 20 02:14:40 BST 2007  Olly Betts <olly@survex.com>
22871         * api/omdatabase.cc: Add missing implementations of
22872           WritableDatabase::add_spelling() and
22873           WritableDatabase::remove_spelling().
22875 Wed Jun 20 00:58:46 BST 2007  Olly Betts <olly@survex.com>
22877         * backends/flint/flint_spelling.h: Make the maps private.
22879 Wed Jun 20 00:05:15 BST 2007  Olly Betts <olly@survex.com>
22881         * HACKING: Snapshots now bootstrapped with automake 1.10.
22883 Wed Jun 20 00:03:42 BST 2007  Olly Betts <olly@survex.com>
22885         * backends/flint/flint_spelling.cc,common/Makefile.mk,
22886           expand/Makefile.mk,expand/ortermlist.h: Move ortermlist.h from
22887           "expand/" to "common/" so we can included it from flint_spelling.cc
22888           without a relative path.
22890 Tue Jun 19 22:41:08 BST 2007  Olly Betts <olly@survex.com>
22892         * api/,backends/database.cc,backends/flint/,common/database.h,
22893           docs/Makefile.am,docs/spelling.rst,include/xapian/database.h,
22894           include/xapian/queryparser.h,queryparser/queryparser.cc,
22895           queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
22896           Add support for spelling correction.
22898 Tue Jun 19 19:18:40 BST 2007  Olly Betts <olly@survex.com>
22900         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
22901           backends/flint/flint_table.h: Add new method
22902           FlintTable::key_exists() so we don't need to create a cursor to
22903           check if a key exists in FlintDatabase::term_exists() (the other
22904           alternative previously was to read the key and tag and ignore the
22905           tag, but that could involve reading more blocks if the tag is
22906           long, and it could involve uncompressing the tag too).
22908 Tue Jun 19 17:49:09 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22910         * tests/queryparsertest.cc: Cast the input to pow() to a double, to
22911           fix a problem on windows (which has several versions of pow(),
22912           and the version taking a float was being used by default,
22913           resulting in some of the tests overflowing the range of float).
22915 Tue Jun 19 17:48:42 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22917         * api/valuerangeproc.cc: Fix assertions, so that the code works
22918           with assertions turned on.
22920 Tue Jun 19 12:35:46 BST 2007  Olly Betts <olly@survex.com>
22922         * matcher/branchpostlist.cc: Add missing #include <config.h>.
22923         * matcher/branchpostlist.cc,matcher/branchpostlist.h: Move other
22924           virtual method definitions out of the header.
22926 Mon Jun 18 21:41:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22928         * matcher/branchpostlist.h: Add missed copyright statement.
22930 Mon Jun 18 21:36:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22932         * matcher/branchpostlist.cc,matcher/branchpostlist.h: Add get_wdf()
22933           method to BranchPostList (which just sums the wdf, which is
22934           useful for a synonym postlist, which is the only situation in
22935           which this will be called).  Add the method definition in a
22936           separate file, as per the comment I just added to HACKING.
22937         * matcher/Makefile.mk: Add branchpostlist.cc
22939 Mon Jun 18 21:33:56 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22941         * HACKING: Add note about virtual methods (saying that the
22942           shouldn't be defined in header files).
22944 Mon Jun 18 20:15:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22946         * matcher/phrasepostlist.cc,matcher/phrasepostlist.h,
22947           matcher/exactphrasepostlist.cc,matcher/exactphrasepostlist.cc:
22948           Add get_wdf() methods to NearPostList, PhrasePostList and
22949           ExactPhrasePostList - these use a very rough approximation (but
22950           there's a big long comment justifying it).
22952 Mon Jun 18 18:38:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22954         * matcher/mergepostlist.cc,matcher/mergepostlist.h: Add copyright
22955           statements for previous commit (and update license while I'm at
22956           it).
22958 Mon Jun 18 18:24:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22960         * matcher/mergepostlist.cc,matcher/mergepostlist.h: Add get_wdf()
22961           method to MergePostList (just passes through the value from the
22962           current postlist).  Not currently needed, but the expected
22963           behaviour is obvious, and this will be needed if there's a
22964           synonym postlist higher in the query tree (when synonym postlists
22965           are implemented).  Also, correct a documentation comment typo.
22967 Mon Jun 18 13:09:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22969         * api/valuerangeproc.cc: Cast the first parameter to ldexp() to
22970           double to fix compilation on some platforms, and add a few more
22971           explanatory code comments to
22972           NumberValueRangeProcessor::string_to_float()
22974 Mon Jun 18 11:33:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
22976         * api/valuerangeproc.cc: Add static methods to
22977           NumberValueRangeProcessor to serialise and unserialise doubles.
22978           Change the code which tests a term for being a number to use
22979           strtod, and accept any string which strtod thinks is a number.
22980           If NumberValueRangeProcessor accepts a range, it now converts the
22981           begin and end values to strings using the serialise method.
22982           Also, expand some of the code comments.
22983         * include/xapian/queryparser.h: Add documentation comments to
22984           NumberValueRangeProcessor.
22985         * tests/queryparsertest.cc: Update value_range2_queries to expect
22986           new serialised forms in its output.  Update test_qp_value_range3
22987           to test a wider range of values (including negative, fractional,
22988           and more-than-single-digit).
22990 Mon Jun 18 03:36:38 BST 2007  Olly Betts <olly@survex.com>
22992         * queryparser/queryparser.lemony: Fix comment typo, and add brackets
22993           to make intended precedence clearer.
22995 Mon Jun 18 03:36:04 BST 2007  Olly Betts <olly@survex.com>
22997         * include/xapian/queryparser.h: Tweak wording of a couple of
22998           documentation comments.
23000 Mon Jun 18 02:00:31 BST 2007  Olly Betts <olly@survex.com>
23002         * docs/queryparser.html: Mention "AND NOT" as an alternative way to
23003           write "NOT".
23005 Mon Jun 18 01:43:00 BST 2007  Olly Betts <olly@survex.com>
23007         * queryparser/queryparser.lemony: Adjust precedence of boolean
23008           operators to match those in maths and programming languages.
23009           "NOT" now binds as tightly as "AND" (previously "AND NOT" would
23010           bind like "AND", but just "NOT" would bind like "OR"!)  Also
23011           "XOR" now binds more tightly than "OR", but less tightly than
23012           "AND" (previously it bound just like "OR").
23013         * tests/queryparsertest.cc: Add testcases for the new behaviour.
23015 Mon Jun 18 01:16:18 BST 2007  Olly Betts <olly@survex.com>
23017         * tests/queryparsertest.cc: Better test coverage of handling of random
23018           double quotes in queries.
23020 Sun Jun 17 16:17:34 BST 2007  Olly Betts <olly@survex.com>
23022         * include/xapian/unicode.h: Don't call operator++(0) from operator()
23023           as it does more work than we need.
23025 Sun Jun 17 14:14:16 BST 2007  Olly Betts <olly@survex.com>
23027         * bin/xapian-inspect.cc: Fix so that Ctrl+D doesn't cause an infinite
23028           loop!
23030 Sat Jun 16 22:19:11 BST 2007  Olly Betts <olly@survex.com>
23032         * bin/Makefile.mk,bin/xapian-inspect.cc,xapian-core.spec.in:
23033           New utility 'xapian-inspect' allowing interactive inspection of
23034           key/tag pairs in a flint Btree.  Useful for development and
23035           debugging, and an approximate replacement for quartzdump.
23037 Sat Jun 16 17:03:57 BST 2007  Olly Betts <olly@survex.com>
23039         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Update for
23040           doxygen 1.5.2 (using "doxygen -u").
23042 Sat Jun 16 10:17:32 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23044         * tests/Makefile.am: The "check-none" target should run all the
23045           tests which don't need a database, not just those in apitest: add
23046           internaltest, stemtest, queryparsertest and termgentest to the
23047           list of tests it runs.
23049 Sat Jun 16 09:36:10 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23051         * Makefile.am,bin/Makefile.mk,examples/Makefile.mk: Work around an
23052           apparent bug in automake which causes the entries in .libs
23053           subdirectories generated for targets of bin_PROGRAMS not to be
23054           removed on make clean.  (This was causing make distcheck to
23055           fail.)
23057 Sat Jun 16 04:42:16 BST 2007  Olly Betts <olly@survex.com>
23059         * HACKING,Makefile.am,tests/Makefile.am,tests/apitest.cc,
23060           tests/harness/backendmanager.cc,tests/harness/backendmanager.h: In
23061           the testsuite, rename the "void" pseudo-backend to "none" to more
23062           clearly reflect what it is.  And rename the "remote" backend to
23063           "remoteprog", to better differentiate it from "remotetcp".
23064         * HACKING: Fix error - "apitest -b=flint" doesn't work - it must be
23065           "apitest -bflint".
23067 Sat Jun 16 04:40:28 BST 2007  Olly Betts <olly@survex.com>
23069         * HACKING: Now using doxygen 1.5.2.
23071 Sat Jun 16 02:08:20 BST 2007  Olly Betts <olly@survex.com>
23073         * backends/flint/flint_table.cc: Fix to build with older zlib.  Not
23074           hugely important as zlib security fixes mean any well maintained
23075           box will be running a recent zlib, but the fix is trivial.
23077 Fri Jun 15 19:39:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23079         * HACKING: Document the new check-void, check-inmemory,
23080           check-remoteprog and check-remotetcp targets.
23082 Fri Jun 15 19:34:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23084         * Makefile.am,tests/Makefile.am: Add check-void, check-inmemory,
23085           check-remoteprog and check-remotetcp targets, to allow the tests
23086           for any of the backends to be performed in isolation.
23088 Fri Jun 15 19:29:19 BST 2007  Olly Betts <olly@survex.com>
23090         * Makefile.am,configure.ac,xapian-core.spec.in,xapian.spec.in:
23091           Rename xapian.spec to xapian-core.spec to match tarball name.
23092           Append the user name to BuildRoot.
23094 Fri Jun 15 14:51:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23096         * net/progclient.cc: Open the file handle pointing to /dev/null as
23097           O_WRONLY instead of O_RDONLY: doesn't affect whether the test
23098           passes (since nothing gets written to stderr in theory anyway),
23099           but makes more sense.
23101 Fri Jun 15 13:21:56 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23103         * net/progclient.cc: Better fix - rather than leaving stderr open,
23104           we close it, and then reopen it pointing to /dev/null.
23106 Fri Jun 15 12:55:07 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23108         * net/progclient.cc: Don't close stderr in the child before we call
23109           execve() - with this change, apitest passes under valgrind with
23110           the remote database backend: before it, the child seemed to be
23111           exiting without writing anything to the socket, causing the test
23112           to fail with a NetworkError (due to an unexpected EOF).
23114 Thu Jun 14 23:47:52 BST 2007  Olly Betts <olly@survex.com>
23116         * backends/flint/flint_database.cc: Replace duplicated code with calls
23117           to existing method set_revision_number(new_revision).
23119 Thu Jun 14 18:51:03 BST 2007  Olly Betts <olly@survex.com>
23121         * backends/flint/flint_database.cc: Stop including <sys/utsname.h>
23122           which we don't use here.
23124 Thu Jun 14 18:22:24 BST 2007  Olly Betts <olly@survex.com>
23126         * tests/Makefile.am: Fix typo from copy&paste.
23128 Thu Jun 14 16:46:45 BST 2007  Olly Betts <olly@survex.com>
23130         * docs/admin_notes.rst: Update for the "lazy table" changes.  Correct
23131           the description of xapian-compact --multipass (only the postlist
23132           tables are merged in multiple passes), correct description of how
23133           to use xapian-check on a single table (no trailing '.' should be
23134           specified).  Change the "how to upgrade 0.9.x flint databases" to
23135           talk about 1.0.y rather than 1.0.0.
23137 Thu Jun 14 16:25:55 BST 2007  Olly Betts <olly@survex.com>
23139         * backends/flint/: The value and position tables are now only created
23140           if there is anything to add to them.  So if you never use document
23141           values, there's no value_DB, value.baseA, or value.baseB.  This
23142           means the table doesn't need to be opened for searching (saving a
23143           file handle) and when flushing changes, we don't need to update
23144           baseA/baseB just to keep the revisions in step.  The flint database
23145           version has been increased, but the new code will happily open and
23146           read/update flint databases from Xapian 1.0.0 and 1.0.1.
23147         * bin/xapian-check.cc,bin/xapian-compact.cc: Update to handle
23148           databases without value and/or position tables.
23149         * tests/testdata/flint-1.0.1/: Empty example of a flint 1.0.1 format
23150           database.
23151         * tests/Makefile.am,tests/api_db.cc: Add check that a flint 1.0.1
23152           format database can be opened.
23154 Wed Jun 13 22:40:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23156         * include/xapian/queryparser.h: Document set_stemmer() and
23157           set_stemming_strategy() better - in particular, make it clear
23158           that the default value for the stemming strategy is STEM_NONE.
23160 Wed Jun 13 17:16:52 BST 2007  Olly Betts <olly@survex.com>
23162         * HACKING: Wrap overlong line.
23164 Wed Jun 13 16:47:07 BST 2007  Olly Betts <olly@survex.com>
23166         * msvc/version.h.in: Remote backend is now supported in the MSVC
23167           build.
23169 Wed Jun 13 04:18:51 BST 2007  Olly Betts <olly@survex.com>
23171         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
23172           Eliminate dont_close_handle as it's always false.
23174 Wed Jun 13 02:53:28 BST 2007  Olly Betts <olly@survex.com>
23176         * backends/flint/flint_btreebase.cc,backends/flint/flint_btreebase.h:
23177           Remove unused FlintTable_base constructor.
23179 Tue Jun 12 18:27:54 BST 2007  Olly Betts <olly@survex.com>
23181         * backends/flint/flint_table.cc: Add fix to allow compilation on
23182           OpenBSD, which uses off_t instead of uLong for total_out in
23183           zlib.h.  Remove Assert() which is followed by a better check of
23184           the same condition.
23185         * AUTHORS: Add Julien Touche for help with this fix.
23187 Tue Jun 12 13:34:59 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23189         * tests/harness/unixcmds.cc: On unix builds, set access permissions
23190           on copied directories to allow writes.  This fixes make
23191           distcheck, which was failing on tests because the copied
23192           directory was set to read-only, causing the later "rm -rf"
23193           command to fail.
23195 Mon Jun 11 20:10:26 BST 2007  Olly Betts <olly@survex.com>
23197         * docs/overview.html: Fix typo.
23199 Mon Jun 11 20:08:42 BST 2007  Olly Betts <olly@survex.com>
23201         * docs/Makefile.am: Ship and install internals.html.
23203 Mon Jun 11 17:46:04 BST 2007  Olly Betts <olly@survex.com>
23205         * docs/Makefile.am,docs/doxygen_full_conf.in: Disable generation of
23206           PDF version of doxygen-collated documentation of internals.  It
23207           keeps overflowing TeX limits and it seems likely that most people
23208           would prefer the HTML version of this anyway.
23210 Mon Jun 11 17:45:12 BST 2007  Olly Betts <olly@survex.com>
23212         * tests/internaltest.cc: Remove duplicated code.
23214 Mon Jun 11 03:55:53 BST 2007  Olly Betts <olly@survex.com>
23216         * NEWS: Probably the final update for 1.0.1.
23218 Mon Jun 11 03:47:37 BST 2007  Olly Betts <olly@survex.com>
23220         * examples/simpleindex.cc: Tweak the logic to be clearer.
23222 Sun Jun 10 21:59:21 BST 2007  Olly Betts <olly@survex.com>
23224         * HACKING,configure.ac: Drop automake requirement to 1.8.3 to allow
23225           RPM spec file to work on SLES 9.
23227 Sun Jun 10 21:48:51 BST 2007  Olly Betts <olly@survex.com>
23229         * configure.ac: Bump version to 1.0.1 and LIBRARY_VERSION_INFO to
23230           15:0:0.
23232 Sun Jun 10 21:46:57 BST 2007  Olly Betts <olly@survex.com>
23234         * xapian.spec.in: Add "# norootforbuild" comment which SuSE's build
23235           scripts look for.  Rename "Source0:" to "Source:" as there's only
23236           one tarball now.  Add gcc-c++ and zlib-devel to "Build-Requires:".
23238 Sun Jun 10 21:43:45 BST 2007  Olly Betts <olly@survex.com>
23240         * PLATFORMS: More updates.
23242 Sun Jun 10 18:01:19 BST 2007  Olly Betts <olly@survex.com>
23244         * api/error.cc,generate-exceptions.in: Make Error::error_string member
23245           std::string rather than char * to avoid problems with double free()
23246           with copied Error objects.  Also, Error::get_description() now
23247           converts my_errno to error_string if it hasn't been already.
23248         * tests/internaltest.cc: Add regression tests for both bugs.
23250 Sun Jun 10 13:33:21 BST 2007  Olly Betts <olly@survex.com>
23252         * tests/api_db.cc: New testcase in allterms6.
23254 Sun Jun 10 13:20:37 BST 2007  Olly Betts <olly@survex.com>
23256         * xapian-config.in: Add special case check for host_os matching linux*
23257           or k*bsd-gnu since vanilla libtool doesn't identify them as needing
23258           link_all_deplibs_CXX=no.
23260 Sun Jun 10 03:32:54 BST 2007  Olly Betts <olly@survex.com>
23262         * PLATFORMS: Updated from tinderbox.
23264 Sun Jun 10 02:14:58 BST 2007  Olly Betts <olly@survex.com>
23266         * NEWS: Updated.
23268 Sat Jun 09 17:28:32 BST 2007  Olly Betts <olly@survex.com>
23270         * queryparser/queryparser.lemony: Add the unstem entry for boolean
23271           prefixed terms in Term::make_term() as we do for other terms.
23273 Sat Jun 09 17:27:55 BST 2007  Olly Betts <olly@survex.com>
23275         * tests/queryparsertest.cc: Replace reference to Xapian "1.0" with
23276           "1.0.0".
23278 Sat Jun 09 17:12:44 BST 2007  Olly Betts <olly@survex.com>
23280         * queryparser/queryparser.lemony,queryparser/queryparser_internal.h:
23281           Factor out the code which actually parses a term into a separate
23282           method.
23284 Fri Jun 08 23:31:23 BST 2007  Olly Betts <olly@survex.com>
23286         * tests/Makefile.am: Distribute tests/testdata/flint-0.9.9/.
23288 Fri Jun 08 19:20:36 BST 2007  Olly Betts <olly@survex.com>
23290         * NEWS: Updated.
23292 Fri Jun 08 18:55:43 BST 2007  Olly Betts <olly@survex.com>
23294         * examples/simplesearch.cc: Report "Matches 1-<N>:".
23296 Fri Jun 08 18:46:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23298         * api/omenquire.cc: Fix issue brought to my attention by Enrico
23299           Zini: if an uninitialised database is supplied to Enquire,
23300           performing a search will cause a segfualt.  It isn't completely
23301           clear whether using an uninitialised database should cause an
23302           error, or whether the search should return an empty result list,
23303           but for ease of implementation, and to avoid application errors
23304           going unnoticed, I've made Enquire's constructor report an
23305           InvalidArgumentError if the supplied database is uninitialised.
23306         * include/xapian/enquire.h: Document new exception case, and
23307           workaround if you want a search in this situation to return an
23308           empty result set, instead of getting an error.
23309         * tests/api_nodb.cc: Regression test for this fix.
23310         * AUTHORS: Mention Enrico Zini.
23312 Fri Jun 08 18:33:19 BST 2007  Olly Betts <olly@survex.com>
23314         * NEWS: Updated.
23316 Fri Jun 08 17:09:22 BST 2007  Olly Betts <olly@survex.com>
23318         * common/Makefile.mk: Distribute common/stringutils.h.
23320 Thu Jun 07 20:44:36 BST 2007  Olly Betts <olly@survex.com>
23322         * tests/harness/unixcmds.cc: It appears we need to create the target
23323           directory for xcopy to behave as we want.
23325 Thu Jun 07 19:34:18 BST 2007  Olly Betts <olly@survex.com>
23327         * tests/harness/unixcmds.cc: Fix typo to unbreak testsuite on Windows
23328           NT derivatives.
23330 Thu Jun 07 19:02:36 BST 2007  Olly Betts <olly@survex.com>
23332         * backends/inmemory/inmemory_alltermslist.cc: Another tweak - don't
23333           call map::lower_bound() in the ctor at all.  Also, prevent skip_to()
23334           from moving backwards, since that behaviour is user-visible.
23336 Thu Jun 07 18:36:49 BST 2007  Olly Betts <olly@survex.com>
23338         * common/stringutils.h: New header, providing inline functions
23339           begins_with() and ends_with() to check if a std::string has
23340           a given prefix or suffix.
23341         * api/valuerangeproc.cc,backends/flint/flint_alltermslist.cc,
23342           backends/inmemory/inmemory_alltermslist.cc,
23343           backends/quartz/quartz_alltermslist.cc,
23344           backends/quartz/quartz_metafile.cc,tests/harness/testsuite.cc:
23345           Make use of begins_with() and ends_with().
23346         * tests/harness/testsuite.cc: Tidy up guessing of srcdir.  In
23347           particular, fix comments to reflect that libtool won't create a
23348           wrapper script for the test programs on most platforms (because
23349           we now use --no-install when linking).
23350         * backends/inmemory/inmemory_alltermslist.cc: In the ctor, use
23351           std::map::lower_bound() to find the first term matching the
23352           given prefix, rather than iterating through from the start of
23353           the map.  Also, don't skip deleted terms here, but instead do
23354           that in next() - this avoids duplicating code, and the first
23355           operation might be skip_to() in which case we can avoid wasting
23356           effort.
23358 Thu Jun 07 17:16:12 BST 2007  Olly Betts <olly@survex.com>
23360         * queryparser/queryparser.lemony: Eliminate the QpQuery class and
23361           simplify various bits of the code.
23363 Thu Jun 07 14:32:22 BST 2007  Olly Betts <olly@survex.com>
23365         * tests/queryparsertest.cc: Enhance qp_value_customrange1.
23367 Thu Jun 07 14:31:40 BST 2007  Olly Betts <olly@survex.com>
23369         * docs/Makefile.am,docs/index.html,docs/valueranges.rst: Add document
23370           describing how to use Xapian::ValueRangeProcessor.
23372 Thu Jun 07 14:16:01 BST 2007  Olly Betts <olly@survex.com>
23374         * tests/queryparsertest.cc: Add test of custom ValueRangeProcessor
23375           subclass (qp_value_customrange1).
23377 Thu Jun 07 10:01:46 BST 2007  Olly Betts <olly@survex.com>
23379         * common/serialise.h,tests/harness/testsuite.h: Use XAPIAN_NORETURN()
23380           to mark functions which never return.
23382 Thu Jun 07 01:28:00 BST 2007  Olly Betts <olly@survex.com>
23384         * NEWS: Update.
23386 Thu Jun 07 01:02:22 BST 2007  Olly Betts <olly@survex.com>
23388         * examples/simpleexpand.cc: Fix off-by-one error when creating the
23389           fake RSet (picked up to 4 documents, not up to 5).
23391 Wed Jun 06 17:17:05 BST 2007  Olly Betts <olly@survex.com>
23393         * include/xapian/queryparser.h: Add documentation comments for
23394           ValueRangeProcessor and subclasses (mostly fixes bug#155, but
23395           I'd like to add an overview document too).
23397 Wed Jun 06 16:04:08 BST 2007  Olly Betts <olly@survex.com>
23399         * tests/testdata/flint-0.9.9/: Minimal example of a Flint database
23400           from Xapian 0.9.9.
23401         * tests/api_db.cc: Use a real 0.9.9 flint database instead of faking
23402           it by fudging with the "iamflint" file in a current one.
23403           flintdatabaseformaterror1 now also checks for opening with the
23404           Database ctor as well as with Flint::open().  The writing test from
23405           flintdatabaseformaterror1 is now flintdatabaseformaterror2 which
23406           additionally tests opening with the WritableDatabase ctor as well as
23407           with Flint::open().  The old flintdatabaseformaterror2 is now
23408           flintdatabaseformaterror3.
23410 Wed Jun 06 15:44:08 BST 2007  Olly Betts <olly@survex.com>
23412         * backends/flint/flint_database.cc: Don't check for pre-0.6 databases
23413           here (since they'll be quartz format anyway - the check is just an
23414           overenthusiastic cut-and-paste from quartz).
23416 Wed Jun 06 12:35:16 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23418         * matcher/valuerangepostlist.cc: Avoid calling db->get_lastdocid()
23419           repeatedly in ValueRangePostList::next() - was taking 25% of the
23420           time for a particular test case.
23422 Wed Jun 06 12:17:51 BST 2007  Olly Betts <olly@survex.com>
23424         * tests/harness/unixcmds.cc,tests/harness/unixcmds.h: Add "cp_R()"
23425           which does much the same as "cp -R" on Unix.
23427 Wed Jun 06 12:12:50 BST 2007  Olly Betts <olly@survex.com>
23429         * include/xapian/Makefile: New stub makefile for include/xapian.
23430         * bin/Makefile.mk,examples/Makefile.mk,include/Makefile.mk: Distribute
23431           missing stub Makefile and dir_contents files.
23433 Tue Jun 05 16:44:51 BST 2007  Olly Betts <olly@survex.com>
23435         * tests/harness/index_utils.cc: Back out linger line from r7758.
23436           Fix undefined behaviour in cases where a paragraph has <= 2
23437           characters.
23439 Mon Jun 04 15:31:08 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23441         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc:
23442           Revert the recent changes to the indexing code, and also the
23443           change from revision r7758 which was intended to fix a problem
23444           with eof handling on windows (which is what broke the indexing of
23445           etext.txt).  Then, change backendmanager.cc to test "!from.eof()"
23446           instead of "from" to check for eof - hopefully this will work on
23447           windows - if not, we can investigate further.
23449 Mon Jun 04 13:13:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23451         * tests/harness/backendmanager.cc: Undo previous patch - only the
23452           patch to index_utils.cc was necessary; I mistakenly committed
23453           both files I'd been modifying.
23455 Mon Jun 04 09:06:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23457         * tests/api_db.cc: Add a check to consistency1 that the full mset
23458           size is as big as it should be, to make sure that we notice in
23459           future if the indexing goes wrong again.
23461 Mon Jun 04 08:59:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23463         * tests/harness/backendmanager.cc,tests/harness/index_utils.cc:
23464           Fix the indexing of the testdata, so that the "etext" example is
23465           properly indexed (previously, only the first line was being
23466           indexed, due to faulty end-of-file handling).  This only affects
23467           the "consistency1" test, which now runs a lot slower (but still
23468           passes, fortunately).
23470 Fri Jun 01 23:47:42 BST 2007  Olly Betts <olly@survex.com>
23472         * examples/simpleexpand.cc: Rewrite based on new simplesearch.cc.
23474 Fri Jun 01 00:50:00 BST 2007  Olly Betts <olly@survex.com>
23476         * examples/simpleindex.cc: Replacement "simpleindex" example which
23477           uses the TermGenerator class, which makes for a much smaller and
23478           simpler example.  It's also much more typical of what most users
23479           will want to do.
23481 Thu May 31 23:01:47 BST 2007  Olly Betts <olly@survex.com>
23483         * examples/simplesearch.cc: Replacement "simplesearch" example which
23484           uses the QueryParser.  That makes for a simpler example, and it's
23485           much more typical of what most users will want to do.
23487 Thu May 31 19:31:40 BST 2007  Olly Betts <olly@survex.com>
23489         * NEWS: Update.
23491 Thu May 31 19:18:41 BST 2007  Olly Betts <olly@survex.com>
23493         * HACKING,configure.ac: Relax automake requirement to 1.9.2 to allow
23494           RPM building on RHEL 4.
23495         * HACKING: automake 1.10 seems to work fine with Xapian.
23497 Thu May 31 03:04:42 BST 2007  Olly Betts <olly@survex.com>
23499         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
23500           Check if the docid counter wraps and if it does throw DatabaseError
23501           (fixes bug#152).
23502         * tests/api_wrdb.cc: Add regression test (nomoredocids1).
23504 Thu May 31 02:01:31 BST 2007  Olly Betts <olly@survex.com>
23506         * backends/dbfactory_remote.cc,backends/remote/remote-database.cc,
23507           common/progclient.h,common/remote-database.h,common/tcpclient.h,
23508           net/progclient.cc: Stop a non-writable remote database from calling
23509           dtor_called() when it is destroyed, since that causes MSG_FLUSH to
23510           be sent to the server (fixes bug#149).
23512 Wed May 30 19:47:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23514         * include/xapian/query.h: New accessor method
23515           Xapian::Query::Internal::get_parameter().
23516         * queryparser/queryparser.lemony: Multiple boolean prefixed terms
23517           with the same term prefix are now combined with OR before such
23518           groups are combined with AND.  Similarly for multiple value ranges
23519           on the same value (fixes bug#157).
23520         * include/xapian/queryparser.h: Document new handling of multiple
23521           boolean prefixed terms.
23522         * tests/queryparsertest.cc: Testcases for new handling of multiple
23523           boolean prefixed terms and value ranges.
23525 Wed May 30 14:45:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23527         * docs/deprecation.rst: Update comment about QueryParserError to
23528           point out that you'll need to compile conditionally to work with
23529           0.9.x
23531 Wed May 30 14:33:29 BST 2007  Olly Betts <olly@survex.com>
23533         * NEWS: Update.  Put all the subheadings in the standard order used
23534           for previous releases.
23536 Wed May 30 12:58:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23538         * include/xapian/database.h,api/omdatabase.cc,backends/flint/,
23539           backends/inmemory/,backends/quartz/,
23540           backends/remote/remote-database.cc,
23541           common/database.h,common/remote-database.h,common/remoteprotocol.h,
23542           net/remoteserver.cc: Add a prefixed form of allterms_begin() and
23543           allterms_end(), which allows efficient iteration over only those
23544           terms which begin with the given prefix.  Requires bumping the
23545           remote protocol minor version number, but doesn't change any
23546           database formats.
23547         * queryparser/queryparser.lemony: Update the wildcard and partial
23548           query routines to use the prefixed form of allterms_begin().
23549           This fixes the performance problems noted in bug #153.
23550         * tests/api_db.cc: Add test_allterms6() to test the prefixed form
23551           of allterms iterators.
23553 Wed May 30 12:23:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23555         * backends/remote/remote-database.cc,common/remoteprotocol.h,
23556           docs/remote_protocol.html,net/remoteserver.cc: Apply patch from
23557           Olly (from bug #153) which implements minor version numbers for
23558           the remove protocol.  This will allow us to add new features to
23559           the protocol in future without forcing all clients to upgrade to
23560           exactly the same version as the servers.  Bump the major version
23561           to 30, since this is an incompatible change itself, though.
23563 Wed May 30 12:12:14 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23565         * include/xapian/query.h: Expand documentation of value range
23566           query constructor.
23568 Wed May 30 10:28:39 BST 2007  Olly Betts <olly@survex.com>
23570         * docs/deprecation.rst: Improve entry for QueryParserError.
23572 Wed May 30 01:30:35 BST 2007  Olly Betts <olly@survex.com>
23574         * backends/flint/,bin/xapian-compact.cc: Don't uncompress and
23575           recompress tags when compacting a database.  This speeds up
23576           xapian-compact rather a lot (by more than 50% in my quick test).
23578 Tue May 29 20:58:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23580         * queryparser/Makefile.mk: Fix multiple target rule for generating
23581           the queryparser source files in parallel builds, as described in
23582           HACKING, and as done for the SWIG rules in xapian-bindings.
23583         * queryparser/: Add queryparser_internal.lock and
23584           queryparser_internal.stamp to SVN ignores.
23586 Tue May 29 18:30:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23588         * tests/queryparsertest.cc: Use TEST_STRINGS_EQUAL when comparing
23589           queries against their expected output, since this makes it much
23590           easier to see the differences.
23592 Tue May 29 18:13:26 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23594         * NEWS: Bring up-to-date.
23596 Mon May 28 09:27:43 BST 2007  Olly Betts <olly@survex.com>
23598         * examples/copydatabase.cc: Fix to compile with GCC 2.95.
23600 Mon May 28 01:28:23 BST 2007  Olly Betts <olly@survex.com>
23602         * examples/copydatabase.cc: Rewrite to take advantage of
23603           being able to iterate over all the documents in a database.
23605 Sun May 27 12:20:03 BST 2007  Olly Betts <olly@survex.com>
23607         * include/xapian/termgenerator.h: Improve documentation comments
23608           for TermGenerator class.
23610 Sun May 27 12:15:02 BST 2007  Olly Betts <olly@survex.com>
23612         * backends/quartz/quartz_database.cc,bin/,examples/,net/tcpserver.cc,
23613           tests/api_db.cc,tests/harness/testsuite.cc,tests/harness/testutils.h,
23614           tests/queryparsertest.cc,tests/termgentest.cc: Make use of
23615           Xapian::Error::get_description(), which improves error reporting
23616           in a number of places.
23617         * tests/harness/testsuite.cc: If we get an exception with a long
23618           message in verbose mode, just report the whole message rather than
23619           reporting the truncated message followed by the whole message.
23620         * tests/queryparsertest.cc: Handle Xapian::QueryParserError specially
23621           (as we previously handled all Xapian::Error exceptions).  Other
23622           Xapian::Error exceptions now report the description not just the
23623           message.
23625 Sun May 27 11:33:11 BST 2007  Olly Betts <olly@survex.com>
23627         * api/error.cc,generate-exceptions.in: Add new API method
23628           Xapian::Error::get_description() to allow removal of
23629           essentially duplicated code in many places.  Also useful for
23630           users for the same reason.
23632 Sun May 27 09:56:21 BST 2007  Olly Betts <olly@survex.com>
23634         * generate-exceptions.in: Add vim modeline to force perl syntax
23635           highlighting.
23637 Sat May 26 22:53:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23639         * NEWS: Bring up-to-date.
23641 Sat May 26 22:49:20 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23643         * docs/deprecation.rst: Fix typo in deprecation list for the
23644           bindings pointed out by Thomas Waldmann.
23646 Sat May 26 09:39:36 BST 2007  Olly Betts <olly@survex.com>
23648         * HACKING: Add note about reasons for avoiding std::pair<> with an STL
23649           class as one or both members.
23651 Thu May 24 17:28:20 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23653         * queryparser/Makefile.mk: $(top_builddir)/queryparser is only
23654           required in include path for maintainer mode, so make it so for
23655           neatness.
23657 Tue May 22 11:04:04 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23659         * queryparser/Makefile.mk: Add $(top_builddir)/queryparser to include
23660           path for VPATH builds, to fix a problem with depcomp (triggered
23661           when compiling with gcc-2.95).
23662         * NEWS: Keep up to date.
23664 Mon May 21 13:38:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23666         * tests/queryparsertest.cc: Reduce the range of the test, so that
23667           it passes again, to let the autobuilders work and unbreak HEAD.
23669 Mon May 21 10:26:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23671         * tests/queryparsertest.cc: Remove FIXME from test_qp_flag_partial1:
23672           I've checked that the results look correct.  New test
23673           test_qp_value_range3, to test the NumberValueRangeProcessors -
23674           currently fails because "10" is considered to be between "1" and
23675           "2".
23676         * include/xapian/query.h: Fix typo in documentation comment.
23678 Mon May 21 10:09:34 BST 2007  Olly Betts <olly@survex.com>
23680         * tests/harness/testsuite.h: Put quotes around strings when reporting
23681           a failure in TEST_STRINGS_EQUAL().
23683 Mon May 21 10:08:18 BST 2007  Olly Betts <olly@survex.com>
23685         * tests/internaltest.cc: New tests serialiseerror1 which checks that
23686           the handling of errno/error_string.
23687         * common/serialise.h: Make unserialise_error externally visible for
23688           new test.
23690 Mon May 21 08:40:06 BST 2007  Olly Betts <olly@survex.com>
23692         * HACKING: Update release checklist.
23694 Fri May 18 02:10:39 BST 2007  Olly Betts <olly@survex.com>
23696         * generate-exceptions.in: Fix grammatical errors in Error::get_errno()
23697           deprecation explanation.
23699 Thu May 17 23:51:17 BST 2007  Olly Betts <olly@survex.com>
23701         * api/error.cc: Need <stdlib.h> for free() to build with GCC 4.3
23702           snapshot.
23704 Thu May 17 23:11:53 BST 2007  Olly Betts <olly@survex.com>
23706         * NEWS: Fix line wrapping (ok, isn't wasn't final!)
23708 Thu May 17 22:28:44 BST 2007  Olly Betts <olly@survex.com>
23710         * NEWS: Final update before release.
23712 Thu May 17 19:10:27 BST 2007  Olly Betts <olly@survex.com>
23714         * configure.ac: Bump version to 1.0.0 and update LIBRARY_VERSION_INFO.
23716 Thu May 17 19:10:11 BST 2007  Olly Betts <olly@survex.com>
23718         * NEWS: Minor wording tweak.
23720 Thu May 17 19:06:34 BST 2007  Olly Betts <olly@survex.com>
23722         * docs/Makefile.am: Run rst2html with --strict --verbose options to
23723           reject .rst files with problems.
23724         * docs/deprecation.rst: Add more entries gleaned from the NEWS file.
23726 Thu May 17 18:30:01 BST 2007  Olly Betts <olly@survex.com>
23728         * NEWS: Update with fixes from Jenny's proof-reading and a few other
23729           tweaks.
23731 Thu May 17 18:27:53 BST 2007  Olly Betts <olly@survex.com>
23733         * AUTHORS: Update.
23735 Thu May 17 18:25:39 BST 2007  Olly Betts <olly@survex.com>
23737         * PLATFORMS: Updates from the tinderbox.
23739 Thu May 17 18:08:13 BST 2007  Olly Betts <olly@survex.com>
23741         * common/safesysstat.h: Need the 2 argument mkdir() wrapper for Mingw
23742           too.  Define S_ISDIR() and S_ISREG() if they aren't already defined
23743           rather than conditional on _MSC_VER.
23745 Thu May 17 17:58:43 BST 2007  Olly Betts <olly@survex.com>
23747         * docs/admin_notes.rst: "flint-check" -> "xapian-check".
23749 Thu May 17 17:46:36 BST 2007  Olly Betts <olly@survex.com>
23751         * NEWS: Update for Xapian 1.0.0.
23753 Thu May 17 17:41:15 BST 2007  Olly Betts <olly@survex.com>
23755         * docs/: Update documentation for 1.0.0; add new document describing
23756           new term generation strategy as implemented by TermGenerator class;
23757           link in "lost" documents to the index page.
23759 Thu May 17 03:54:36 BST 2007  Olly Betts <olly@survex.com>
23761         * exception_data.pm: Fix to work with Perl 5.6.
23763 Thu May 17 01:20:16 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23765         * backends/multi/multi_alltermslist.cc: Check that iterators are
23766           not at_end() before calling skip_to() on them.
23768 Thu May 17 00:49:03 BST 2007  Olly Betts <olly@survex.com>
23770         * backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc,
23771           backends/quartz/btree.cc,common/Makefile.mk,
23772           common/msvc_posix_wrapper.cc,common/msvc_posix_wrapper.h: Use
23773           msvc_posix_wrapper.h functions for all __WIN32__ builds, not just
23774           for MSVC.
23776 Wed May 16 23:55:46 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23778         * api/omdatabase.cc: Fix return type in debug macro in
23779           replace_document().
23781 Wed May 16 23:45:20 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23783         * tests/apitest.cc: Add collfreq and allterms tests to the tests
23784           for the remote and remotetcp backends.  They all pass.
23786 Wed May 16 15:11:00 BST 2007  Olly Betts <olly@survex.com>
23788         * configure.ac: Need to try -zdll for mingw as well.
23790 Wed May 16 14:45:23 BST 2007  Olly Betts <olly@survex.com>
23792         * tests/queryparsertest.cc: Add two more testcases.
23794 Wed May 16 14:32:46 BST 2007  Olly Betts <olly@survex.com>
23796         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix
23797           double-free on invalid range query.
23799 Wed May 16 10:08:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23801         * tests/queryparsertest.cc: Add some more test cases to the value
23802           range processor.  These currently fail with a SIGSEGV message.
23804 Wed May 16 02:22:17 BST 2007  Olly Betts <olly@survex.com>
23806         * queryparser/termgenerator_internal.cc: Fix handling of stemming of
23807           prefixed terms.
23808         * tests/termgentest.cc: Fix testcases.
23810 Wed May 16 01:54:25 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23812         * tests/termgentest.cc: Add a test for parsing of capitalised words
23813           with a prefix, which currently fails.
23815 Wed May 16 01:09:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23817         * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
23818           a method to get the current document from the term generator.
23819           Helps avoid users having to pass around a structure encapsulating
23820           the generator and the document assigned to it.
23822 Wed May 16 00:50:07 BST 2007  Olly Betts <olly@survex.com>
23824         * docs/deprecation.rst: Add <xapian/output.h>.
23826 Tue May 15 22:46:39 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23828         * tests/termgentest.cc: Use resize(0) instead of clear(), for g++2.95
23830 Tue May 15 20:25:07 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23832         * net/remoteconnection.cc: Add a comment noting why we test
23833           __STDC_SECURE_LIB__ even though its an undocumented macro.
23835 Tue May 15 20:14:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23837         * tests/termgentest.cc: Add several more tests - some converted
23838           from the query tests, some more initial tests, and some number
23839           tests.
23841 Tue May 15 18:31:21 BST 2007  Olly Betts <olly@survex.com>
23843         * queryparser/termgenerator_internal.cc: Revert previous change - we
23844           need to generate Zibm and Zpc from text `I.B.M. P.C.' or else a
23845           search for `ibm pc' won't match.
23847 Tue May 15 18:22:44 BST 2007  Olly Betts <olly@survex.com>
23849         * queryparser/termgenerator_internal.cc: Sort out stemming of
23850           initials.
23852 Tue May 15 18:04:17 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23854         * tests/termgentest.cc: Add some more tests, and rework the array
23855           of tests so that there's just a single string holding any options
23856           we want to set for the following tests.
23858 Tue May 15 16:49:17 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23860         * tests/Makefile.am,tests/termgentest.cc: Add new test file, for
23861           testing the term generator.  Only has a single test so far.
23863 Tue May 15 16:20:20 BST 2007  Olly Betts <olly@survex.com>
23865         * include/xapian/unicode.h: Make single parameter ctor explicit.
23867 Tue May 15 16:00:24 BST 2007  Olly Betts <olly@survex.com>
23869         * queryparser/termgenerator_internal.cc: Add special handling for
23870           acronyms/initialisms, so I.B.M -> term ibm, etc.
23872 Tue May 15 14:07:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23874         * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
23875           a set_termpos() method, too.
23877 Tue May 15 13:54:34 BST 2007  Olly Betts <olly@survex.com>
23879         * include/xapian/database.h: Document the issue of the monotonic
23880           docid counter wrapping around.
23882 Tue May 15 10:58:37 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23884         * include/xapian/termgenerator.h,queryparser/termgenerator.cc: Add
23885           get_termpos() method to get the current value of the termpos.
23886           Makes it easier to integrate with different term generators.
23888 Tue May 15 03:44:50 BST 2007  Olly Betts <olly@survex.com>
23890         * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
23891           Include '.', ',', and a few other characters in terms if they are
23892           between two decimal digits.
23893         * queryparser/termgenerator_internal.cc: Don't stem terms which start
23894           with a number.
23895         * tests/queryparsertest.cc: Update results for real world queries to
23896           match new results (better in every case but one!)
23898 Tue May 15 01:24:08 BST 2007  Olly Betts <olly@survex.com>
23900         * HACKING: Fix a few typos.  Add "feisty" to the list of debs to
23901           build.
23903 Tue May 15 00:51:35 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23905         * HACKING: Document that the bootstrap script should be run from
23906           srcdir, and that the generated configure can be run from a
23907           different builddir.  Tidy up a few other lines.
23909 Mon May 14 23:52:33 BST 2007  Olly Betts <olly@survex.com>
23911         * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
23912           Expand check_infix to include some of characters Unicode does.
23913         * tests/queryparsertest.cc: Update the single test query which now
23914           parses differently.
23916 Mon May 14 23:42:53 BST 2007  Olly Betts <olly@survex.com>
23918         * tests/harness/testsuite.h: New macro TEST_STRINGS_EQUAL() which
23919           displays the strings on separate lines so the differences can
23920           be clearly seen.
23921         * tests/queryparsertest.cc: Use TEST_STRINGS_EQUAL().
23923 Mon May 14 20:14:17 BST 2007  Olly Betts <olly@survex.com>
23925         * include/xapian/enquire.h: Make the "uses string sort" warning in
23926           the documentation for the methods which enable sorting by value
23927           more prominent, and fix several miscellaneous typos.
23929 Mon May 14 19:28:21 BST 2007  Olly Betts <olly@survex.com>
23931         * queryparser/dir_contents: Update to mention TermGenerator.
23933 Mon May 14 19:12:12 BST 2007  Olly Betts <olly@survex.com>
23935         * queryparser/queryparser.lemony: Fix handling of WILDCARD_TERM and
23936           PARTIAL_TERM for prefixed terms.
23937         * tests/queryparsertest.cc: Add test coverage for this.
23939 Mon May 14 18:02:22 BST 2007  Olly Betts <olly@survex.com>
23941         * tests/queryparsertest.cc: Add more testcases for wildcarded queries.
23943 Mon May 14 17:39:30 BST 2007  Olly Betts <olly@survex.com>
23945         * queryparser/queryparser.lemony: Fix handling of partial queries.
23947 Mon May 14 16:49:46 BST 2007  Olly Betts <olly@survex.com>
23949         * net/remoteconnection.cc: closesocket() seems to work equally as
23950           well as CloseHandle() but it's what we use elsewhere and Charlie
23951           thinks it's a better choice here too so use that instead.  Rename
23952           the wrapper call from close_fd_or_handle() to close_fd_or_socket().
23953           And mark close_fd_or_socket() as "inline" under UNIX, since it
23954           should always be inlined.
23956 Mon May 14 15:30:13 BST 2007  Olly Betts <olly@survex.com>
23958         * tests/api_anydb.cc: Add FIXME about moving wildquery1.
23960 Mon May 14 15:21:59 BST 2007  Olly Betts <olly@survex.com>
23962         * bin/xapian-progsrv.cc: Improve comments.
23964 Mon May 14 11:29:14 BST 2007  Richard Boulton <richard@lemurconsulting.com>
23966         * net/remoteconnection.cc: Deal with invalid parameter exceptions
23967           on windows when closing file descriptors or handles.
23969 Mon May 14 05:04:16 BST 2007  Olly Betts <olly@survex.com>
23971         * tests/api_anydb.cc: Fix wildquery1 to work with the new term
23972           stemming scheme.
23974 Sun May 13 19:15:17 BST 2007  Olly Betts <olly@survex.com>
23976         * include/xapian/unicode.h: Count control characters as whitespace
23977           (which is certainly what we want for TAB, CR, LF, and FF).
23979 Sun May 13 17:50:19 BST 2007  Olly Betts <olly@survex.com>
23981         * include/xapian/unicode.h: Add CONNECTOR_PUNCTUATION to is_wordchar()
23982           - this category includes '_' and characters which fulfil similar
23983           roles.
23984         * queryparser/queryparser.lemony,queryparser/termgenerator_internal.cc:
23985           No longer need to special case '_'.
23986         * queryparser/queryparser.lemony: Test for Unicode "whitespace" rather
23987           than just ASCII.
23989 Sun May 13 04:43:37 BST 2007  Olly Betts <olly@survex.com>
23991         * queryparser/queryparser.lemony: Normalise Unicode characters used
23992           for apostrophe to ASCII apostrophe.
23994 Sun May 13 03:56:17 BST 2007  Olly Betts <olly@survex.com>
23996         * include/xapian/unicode.h,unicode/tclUniData.cc: Update Unicode
23997           routines to use Unicode 5.0.0 and support characters outside the BMP
23998           (so we now support all Unicode characters in the latest version of
23999           the standard).
24000         * tests/api_unicode.cc: Add test unicode1 which performs some simple
24001           tests of the categorisation function, include one which tests for a
24002           character added in Unicode 5.0.0.
24004 Sat May 12 06:01:50 BST 2007  Olly Betts <olly@survex.com>
24006         * queryparser/queryparser.lemony: Update comment.
24008 Sat May 12 04:23:01 BST 2007  Olly Betts <olly@survex.com>
24010         * queryparser/queryparser.lemony: Improve description of Term class.
24012 Sat May 12 04:16:47 BST 2007  Olly Betts <olly@survex.com>
24014         * queryparser/queryparser.lemony: Update to implement the new stemming
24015           scheme.
24016         * tests/queryparsertest.cc: Update testcases, and check that the new
24017           parses are all reasonable.
24019 Sat May 12 04:03:55 BST 2007  Olly Betts <olly@survex.com>
24021         * include/xapian/unicode.h: Xapian::Unicode::get_category() now checks
24022           for characters outside the BMP, and assumes they're of category
24023           OTHER_LETTER.  Remove BMP check from all functions which use
24024           Xapian::Unicode::get_category().
24026 Sat May 12 04:02:52 BST 2007  Olly Betts <olly@survex.com>
24028         * include/xapian/queryparser.h: Fix typo in comment.
24030 Fri May 11 05:45:38 BST 2007  Olly Betts <olly@survex.com>
24032         * net/remoteserver.cc: Make "Server is read-only" be of type
24033           InvalidOperationError not NetworkError.  This is arguably more
24034           appropriate anyway, but in particular it avoids a worrying looking
24035           (but harmless) warning when a read-only connection is closed, due
24036           dtor_called() calling flush() on a read-only database.
24038 Fri May 11 01:35:31 BST 2007  Olly Betts <olly@survex.com>
24040         * docs/Makefile.am: Disable more documentation rules if
24041           MAINTAINER_NO_DOCS is true.
24043 Thu May 10 23:01:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24045         * net/remoteconnection.cc: Remove definition of unused macro
24046           XAPIAN_MSVC_INVALID_PARAMETER_HANDLER.
24048 Thu May 10 19:24:23 BST 2007  Olly Betts <olly@survex.com>
24050         * include/xapian/enquire.h: Try quoting qualified identifiers in
24051           #pragma deprecated.
24053 Thu May 10 15:58:37 BST 2007  Olly Betts <olly@survex.com>
24055         * include/xapian/enquire.h: Give full scope in '#pragma deprecated'
24056           to try to avoid false positives.
24058 Thu May 10 14:53:08 BST 2007  Olly Betts <olly@survex.com>
24060         * include/xapian/enquire.h: Use '#pragma deprecated' to work around
24061           MSVC stupidity (you get a warning for deprecating a declaration).
24063 Thu May 10 13:42:49 BST 2007  Olly Betts <olly@survex.com>
24065         * configure.ac: Some GCC 3.x versions produce bogus warnings, so only
24066           automatically enable -Werror on --enable-maintainer-mode under GCC
24067           if we're using GCC >= 4.0.  Most developers will be using GCC 4.x
24068           soon if they aren't already anyway.
24069         * HACKING: Update documentation in line with the above.  Mention that
24070           we also enable -Werror for Intel's C++ compiler.
24072 Thu May 10 05:06:22 BST 2007  Olly Betts <olly@survex.com>
24074         * configure.ac: Detect __WIN32__ by running the preprocessor so we
24075           don't get confused by building mingw in a cygwin environment.
24077 Thu May 10 04:52:21 BST 2007  Olly Betts <olly@survex.com>
24079         * net/tcpserver.cc: Exit with EX_UNAVAILABLE if the mutex tells us
24080           xapian-tcpsrv is already running on this port.
24082 Thu May 10 04:44:10 BST 2007  Olly Betts <olly@survex.com>
24084         * common/Makefile.mk,common/safe.cc,common/safeunistd.h: Pulling
24085           in safewindows.h from safeunistd.h causes clashes with NEAR
24086           in the QueryParser, so use a helper function to call Sleep
24087           and just call that from the header.
24089 Thu May 10 04:36:19 BST 2007  Olly Betts <olly@survex.com>
24091         * net/tcpserver.cc: Fix compilation error.
24093 Thu May 10 04:26:31 BST 2007  Olly Betts <olly@survex.com>
24095         * common/tcpserver.h,net/tcpserver.cc: Just pass the mutex to
24096           get_listening_socket() by reference to avoid MSVC warnings.
24098 Thu May 10 04:19:13 BST 2007  Olly Betts <olly@survex.com>
24100         * common/safeunistd.h: Use Sleep() instead of _sleep() as the latter
24101           gives deprecation warnings.  Sadly that means that safeunistd.h
24102           now has to pull in safewindows.h.
24104 Thu May 10 04:07:53 BST 2007  Olly Betts <olly@survex.com>
24106         * common/tcpserver.h,net/tcpserver.cc: Keep track of the mutex so
24107           we can release it right after we close the listening socket.
24108           Throw an error if we fail to get the mutex to avoid a possible
24109           race condition (we might end up with the socket listening but
24110           without the mutex locked).  Always call closesocket() on the
24111           listening socket under __WIN32__ to ensure resources are released.
24113 Thu May 10 02:48:31 BST 2007  Olly Betts <olly@survex.com>
24115         * net/tcpserver.cc: Use a mutex under Cygwin and WIN32 to allow use to
24116           use Microsoft's broken SO_REUSEADDR on our listening socket, but
24117           avoid being able to run two copies of xapian-tcpsrv on the same port
24118           at once (tweaked patch from MarkH).
24119         * net/tcpserver.cc: Don't try to set SO_EXCLUSIVEADDRUSE if a previous
24120           setsockopt() call failed as we might stomp on the error code.
24122 Thu May 10 02:15:20 BST 2007  Olly Betts <olly@survex.com>
24124         * Makefile.am,bin/Makefile.mk,configure.ac,docs/Makefile.am,
24125           examples/Makefile.mk: Add new Automake conditional
24126           "MAINTAINER_NO_DOCS" to allow use to disable references to built
24127           documentation in maintainer builds if --disable-documentation is
24128           specified.  This allows Mark's buildbot to work without installing
24129           so many tools, some of which aren't packaged for Cygwin.
24131 Thu May 10 02:03:44 BST 2007  Olly Betts <olly@survex.com>
24133         * Makefile.am: Build rules for running generate-exceptions should be
24134           controlled by MAINTAINER_MODE not DOCUMENTATION_RULES, part II.
24136 Thu May 10 01:49:42 BST 2007  Olly Betts <olly@survex.com>
24138         * docs/deprecation.rst: Add Error::get_type().
24140 Thu May 10 01:25:37 BST 2007  Olly Betts <olly@survex.com>
24142         * api/error.cc,generate-exceptions.in: Add new constructors which
24143           allow error_string to be set directly, for use by the Xapian::Error
24144           unserialising code.
24145         * generate-exceptions.in: Xapian::Error::get_type() now returns
24146           const char * not std::string.
24147         * backends/quartz/quartz_database.cc: Fix code to handle changed
24148           return type of Xapian::Error::get_type().
24149         * net/serialise.cc: Include error_string in the serialisation.
24150         * common/remoteprotocol.h,docs/remote_protocol.html: Bump protocol
24151           version to 29 because of change in Xapian::Error serialisation.
24153 Wed May 09 14:42:33 BST 2007  Olly Betts <olly@survex.com>
24155         * queryparser/queryparser.lemony: Renaming match_nothing_
24156           member of QpQuery to match_nothing.  Comment out unused
24157           QpQuery::get_description().  Add FIXME comment about
24158           apparently redundant logic (now's not really the time
24159           to be fiddling with such things).
24161 Wed May 09 14:27:02 BST 2007  Olly Betts <olly@survex.com>
24163         * queryparser/queryparser.lemony: Update to match new TermGenerator
24164           class.  '_' is now a term character, not a phrase generator.  We
24165           only keep a suffix which has 3 or fewer characters, and we no longer
24166           count '-' as a suffix character.
24167         * tests/queryparsertest.cc: Update test cases to match new behaviour.
24168           In almost every case the new rules give a better result.
24170 Wed May 09 14:15:38 BST 2007  Olly Betts <olly@survex.com>
24172         * languages/compiler/space.c: Add sanity check to b_to_s(),
24173           highlighted by MSVC warning.
24175 Wed May 09 14:06:24 BST 2007  Olly Betts <olly@survex.com>
24177         * tests/btreetest.cc: Return filesize as off_t to avoid MSVC warning
24178           about truncating from 64 to 32 bits (the filesize will never be
24179           more than a few K here, so this is essentially a cosmetic issue).
24181 Wed May 09 04:04:03 BST 2007  Olly Betts <olly@survex.com>
24183         * common/tcpserver.h,net/tcpserver.cc: Always starting the server in a
24184           new thread in "one-shot" mode is trickier than it looked, so revert
24185           that change for now.  Always call closesocket() on our sockets under
24186           __WIN32__.
24188 Wed May 09 01:53:43 BST 2007  Olly Betts <olly@survex.com>
24190         * common/tcpserver.h,net/tcpserver.cc: Make UNIX signal handling
24191           functions and WIN32 CrtlHandler static.  TcpServer::run() is now
24192           generic, calling an OS-specific TcpServer::run_once().  Now we
24193           always run the server in a new thread in "one-shot" mode, which
24194           gives better code coverage in apitest as it runs more like a normal
24195           xapian-tcpsrv would.  CtrlHandler now lets the OS handle the event
24196           if it doesn't have a socket to close, or if closesocket() fails.
24198 Wed May 09 01:42:33 BST 2007  Olly Betts <olly@survex.com>
24200         * net/remoteconnection.cc: DWORD is unsigned, so received can't be
24201           negative - tidy up the ReadFile() loop taking this into account.
24203 Wed May 09 01:28:48 BST 2007  Olly Betts <olly@survex.com>
24205         * net/remoteconnection.cc: ReadFile() doesn't set errno, so remove
24206           test for EINTR which is just a hangover from the UNIX code.
24208 Tue May 08 23:50:33 BST 2007  Olly Betts <olly@survex.com>
24210         * queryparser/termgenerator_internal.cc: Treat '_' as a word character
24211           which seems to be the correct thing to do in general.  Generate
24212           unstemmed terms with positional information for all words without a
24213           prefix, and stemmed terms without positional information for
24214           non-stopwords with a 'Z' prefix.  This means we can implement exact
24215           phrase search, and prefixing stemmed forms (rather than unstemmed
24216           as Omega < 1.0 does) means fewer terms with the prefix.  Only
24217           stemming non-stopwords cuts a significant amount of the database
24218           size in my tests.
24220 Tue May 08 18:22:30 BST 2007  Olly Betts <olly@survex.com>
24222         * net/tcpserver.cc: Fix remaining use of handle_one_request in
24223           __WIN32__-specific code.
24225 Tue May 08 18:10:12 BST 2007  Olly Betts <olly@survex.com>
24227         * api/error.cc: Really fix it...
24229 Tue May 08 17:38:04 BST 2007  Olly Betts <olly@survex.com>
24231         * api/error.cc: Fix another paste-o!
24233 Tue May 08 17:28:29 BST 2007  Olly Betts <olly@survex.com>
24235         * api/error.cc: Remove bogus statement in __WIN32__ case left over
24236           from cut-and-paste.
24238 Tue May 08 17:10:53 BST 2007  Olly Betts <olly@survex.com>
24240         * common/tcpserver.h,net/tcpserver.cc: Rename
24241           TcpServer::handle_one_request() to
24242           TcpServer::handle_one_connection() (to make it clearer that it
24243           handles a connection rather than a single MSG/REPLY exchange), and
24244           use it in UNIX builds too to avoid duplicating its code.  Catch
24245           NetworkTimeoutError here and report it if we're in verbose mode.
24246         * net/remoteserver.cc: If we catch NetworkTimeoutError then try to
24247           propagate it only if we can send it right away, then rethrow it
24248           to close the connection and let the caller log it.  If we catch
24249           any other NetworkError then just rethrow it.
24251 Tue May 08 16:52:50 BST 2007  Olly Betts <olly@survex.com>
24253         * common/noreturn.h: Add missing '#endif'.
24255 Tue May 08 16:19:05 BST 2007  Olly Betts <olly@survex.com>
24257         * common/Makefile.mk,common/noreturn.h: New header which defines
24258           XAPIAN_NORETURN() to allow functions which don't return to be
24259           marked as such so the compiler can take this into account when
24260           generating code.
24261         * api/error.cc,tests/harness/backendmanager.cc: Remove any trailing
24262           "\r\n" from the output of FormatMessage().
24264 Tue May 08 16:16:55 BST 2007  Olly Betts <olly@survex.com>
24266         * include/xapian/deprecated.h: Use `__attribute__((__deprecated__))'
24267           instead of `__attribute__((deprecated))' so we're even robust
24268           against some clown doing `#define deprecated foo'.
24270 Tue May 08 16:15:30 BST 2007  Olly Betts <olly@survex.com>
24272         * bin/quartzcheck.cc,tests/harness/backendmanager.cc: In these files
24273           we have to disable XAPIAN_DEPRECATED() since we need to be able to
24274           use Quartz::open() - move this to the start of the #include block
24275           to avoid problems with any intermediate header implicitly including
24276           <xapian.h>.
24278 Tue May 08 14:51:37 BST 2007  Olly Betts <olly@survex.com>
24280         * HACKING: Move section on "Configure Options" to a more logical spot
24281           just before "Makefile Portability".  Add section on how to use
24282           XAPIAN_DEPRECATED() noting the issue with GCC 3.3.5 not allowing
24283           it to be used on an inline method definition.
24284         * include/xapian/deprecated.h: Add pointers to HACKING and
24285           docs/deprecated.rst.
24287 Tue May 08 13:57:17 BST 2007  Olly Betts <olly@survex.com>
24289         * generate-exceptions.in: We can't use XAPIAN_DEPRECATED() on
24290           a function definition with GCC 3.3.5, so use it on a declaration
24291           and then define inline but out of the class.
24293 Tue May 08 13:45:48 BST 2007  Olly Betts <olly@survex.com>
24295         * net/tcpserver.cc: We must call closesocket() (instead of just
24296           close()) under __WIN32__ or else the socket remains in the
24297           CLOSE_WAIT state.
24299 Tue May 08 12:17:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24301         * docs/deprecation.rst: Add Error::get_errno() to the deprecation
24302           list for the bindings, too.
24304 Tue May 08 10:09:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24306         * docs/deprecation.rst: Change the xapian_version functions to be
24307           marked for removal in 1.1.0, and also note them in the bindings
24308           section.
24310 Tue May 08 04:27:37 BST 2007  Olly Betts <olly@survex.com>
24312         * backends/remote/remote-database.cc,common/remote-database.h: The
24313           timeout parameter to RemoteDatabase wasn't being used, instead the
24314           client would wait indefinitely for the server to respond.
24316 Tue May 08 04:16:45 BST 2007  Olly Betts <olly@survex.com>
24318         * generate-exceptions.in: Initialise error_string in Xapian::Error
24319           ctor.
24321 Tue May 08 03:48:47 BST 2007  Olly Betts <olly@survex.com>
24323         * api/error.cc: Fix compilation when HAVE_HSTRERROR isn't defined.
24325 Tue May 08 02:35:04 BST 2007  Olly Betts <olly@survex.com>
24327         * api/error.cc,bin/xapian-tcpsrv.cc,examples/delve.cc,
24328           generate-exceptions.in,tests/harness/testsuite.cc: Error subclasses
24329           now store the error_string in the class, converting it from the
24330           error code in my_errno lazily.  Also, get_error_string() now returns
24331           const char *.
24333 Tue May 08 01:34:56 BST 2007  Olly Betts <olly@survex.com>
24335         * Makefile.am: Build rules for running generate-exceptions should be
24336           controlled by MAINTAINER_MODE not DOCUMENTATION_RULES.
24338 Tue May 08 01:23:22 BST 2007  Olly Betts <olly@survex.com>
24340         * bin/xapian-tcpsrv.cc,docs/deprecation.rst,generate-exceptions.in,
24341           net/tcpserver.cc,tests/harness/testsuite.cc: Deprecate
24342           Error::get_errno() in favour of Error::get_error_string().  We can't
24343           pass errno values from remote server to client as they aren't
24344           portable and the server and client may be running on entirely
24345           different platforms!
24346         * generate-exceptions.in: Mark as generated with @configure_input@.
24348 Tue May 08 01:20:43 BST 2007  Olly Betts <olly@survex.com>
24350         * backends/flint/flint_database.cc,backends/flint/flint_lock.h: Make
24351           FlintLock's dtor release the lock (if held) which avoids the need
24352           for any special handling in FlintDatabase.
24354 Mon May 07 21:15:33 BST 2007  Olly Betts <olly@survex.com>
24356         * tests/harness/unixcmds.cc: Use O_BINARY when opening a file to
24357           "touch" it.
24359 Mon May 07 17:28:43 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24361         * backends/flint/flint_database.cc: Add try{}catch(...){} block to
24362           ensure that lock is released if an exception occurs in the
24363           FlintDatabase() constructor.
24364         * tests/api_db.cc: Add regression test for releasing lock on error
24365           in constructor.
24367 Mon May 07 11:10:33 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24369         * HACKING: Update section on multiple output rules to detail the
24370           workaround described in the automake manual.
24372 Mon May 07 10:03:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24374         * backends/flint/flint_database.cc,backends/flint/flint_database.h,
24375           backends/flint/flint_version.cc,backends/quartz/,exception_data.pm,
24376           include/xapian/database.h,tests/api_db.cc: Throw
24377           DatabaseVersionError instead of DatabaseOpeningError when database
24378           version is unsupported.  This is a new error class, which is a
24379           subclass of DatabaseOpeningError, so most existing scripts
24380           shouldn't need changing, but makes it easy for application
24381           writers to determine whether a database needs upgrading or
24382           whether the problem is something else.  Should fix #144.
24384 Mon May 07 09:22:01 BST 2007  Olly Betts <olly@survex.com>
24386         * net/progclient.cc: Under __WIN32__, use byte mode on pipes because
24387           message mode fails for message > 256 bytes, and use "overlapped"
24388           mode so we don't block waiting for a reply so that timeouts work.
24389           (Patch from Mark Hammond).
24391 Mon May 07 03:03:10 BST 2007  Olly Betts <olly@survex.com>
24393         * tests/api_anydb.cc,tests/apitest.cc,tests/harness/: Now
24394           TEST_EQUAL_DOUBLE() should work everywhere.  Move the helper
24395           function out of the header.  Use TEST_EQUAL_DOUBLE() instead
24396           of doubles_are_equal_enough() and weights_are_equal_enough()
24397           which do much the same job.
24399 Mon May 07 01:13:29 BST 2007  Olly Betts <olly@survex.com>
24401         * tests/harness/testsuite.h: Report extra info to try to work out why
24402           MSVC build is failing expandweights1.
24404 Mon May 07 00:26:59 BST 2007  Olly Betts <olly@survex.com>
24406         * tests/harness/testsuite.h: Another tweak to TEST_EQUAL_DOUBLE().
24408 Sun May 06 22:30:26 BST 2007  Olly Betts <olly@survex.com>
24410         * docs/quickstart.html: Remove reference to DA databases since the
24411           muscat36 backend has been removed.  Update to recommend GCC 3.3
24412           or later, as we do elsewhere.  Change references to "quartz" to
24413           say "flint", or remove them.
24415 Sun May 06 16:02:28 BST 2007  Olly Betts <olly@survex.com>
24417         * configure.ac: Set version to mythical 0.9.99.
24419 Sun May 06 15:06:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24421         * tests/api_db.cc: Add test_flintdatabaseformaterror1() which
24422           checks what happens when an old-format flint database is opened.
24423           It generates the old-format database by making a fake "iamflint"
24424           file containing an old version number.
24426 Sun May 06 04:00:39 BST 2007  Olly Betts <olly@survex.com>
24428         * expand/ortermlist.cc: Remove incorrect assertion check in
24429           OrTermList::next(), replacing it with anexplanatory comment.
24431 Sun May 06 02:42:30 BST 2007  Olly Betts <olly@survex.com>
24433         * net/remoteconnection.cc: Fix typo.
24435 Sun May 06 02:39:23 BST 2007  Olly Betts <olly@survex.com>
24437         * net/remoteconnection.cc: Aha!  Richard's patch failed to compile
24438           because stdlib.h was in "#ifndef __WIN32__" not "#ifdef __WIN32__".
24440 Sun May 06 02:27:18 BST 2007  Olly Betts <olly@survex.com>
24442         * net/remoteconnection.cc: Protect _set_invalid_parameter_handler, etc
24443           by _MSC_VER >= 1400 (MSVC 2005) and __STDC_SECURE_LIB__ (undocumented
24444           but cribbed from the Python sources).  Refactor into a handy class
24445           (MSVCIgnoreInvalidParameter) which just needs to be instantiated in
24446           the scope where you want to allow invalid parameters to be passed.
24448 Sun May 06 01:42:06 BST 2007  Olly Betts <olly@survex.com>
24450         * net/remoteconnection.cc: Rework use of _invalid_parameter_handler to
24451           only apply when _MSC_VER is defined, to fix the mingw build.
24453 Sat May 05 22:30:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24455         * net/remoteconnection.cc: Under __WIN32__, add an invalid
24456           parameter handler which ignores the error and use it for the
24457           calls to _get_osfhandle() which are sometimes expected to fail.
24458           Requires stdlib.h according to msdn, so also #include that.
24460 Sat May 05 20:43:29 BST 2007  Olly Betts <olly@survex.com>
24462         * bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc,common/remoteconnection.h,
24463           common/remoteserver.h,common/tcpserver.h,net/remoteserver.cc,
24464           net/tcpserver.cc: Open a fresh copy of the database(s) on each
24465           connection to a xapian-tcpsrv rather than relying on being able to
24466           share a database across fork() or between threads (which we don't
24467           promise will work).  Largely based on patch from Mark Hammond.
24468           Fixes some of bug#141 and all of bug#142.
24470 Sat May 05 02:19:39 BST 2007  Olly Betts <olly@survex.com>
24472         * api/omdatabase.cc: Use RETURN() not return in methods with debug
24473           logging.
24475 Sat May 05 02:19:11 BST 2007  Olly Betts <olly@survex.com>
24477         * bin/xapian-compact.cc: Fix typo in comment.
24479 Fri May 04 23:59:54 BST 2007  Olly Betts <olly@survex.com>
24481         * backends/flint/flint_version.cc: Remove the "u" suffix from
24482           FLINT_VERSION as it's confusing in the "wrong format version"
24483           error message and doesn't seem needed in the code.
24485 Fri May 04 23:56:32 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24487         * backends/flint/: Revert patch from revision 8426 (except for the
24488           bit which removed the unused prototypes), to avoid the
24489           possibility that it introduces bugs into the code just before
24490           1.0.0.  The patch is attached to bug #143 for later reference.
24492 Fri May 04 23:50:39 BST 2007  Olly Betts <olly@survex.com>
24494         * examples/delve.cc: Report the error string if we catch Xapian::Error
24495           while trying to open a database.
24497 Fri May 04 22:50:54 BST 2007  Olly Betts <olly@survex.com>
24499         * docs/intro_ir.html: Fix a few typos; elaborate on a few points.
24501 Fri May 04 20:07:44 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24503         * queryparser/termgenerator_internal.cc: Fix bug in termgenerator -
24504           arguments to add_posting were the wrong way round.
24506 Fri May 04 20:00:40 BST 2007  Olly Betts <olly@survex.com>
24508         * queryparser/termgenerator_internal.cc: Limit term length, handle
24509           infix and suffix characters, and convert apostrophes to ASCII
24510           representation.
24512 Fri May 04 19:47:43 BST 2007  Olly Betts <olly@survex.com>
24514         * include/xapian/unicode.h: Fill in remaining missing documentation
24515           comments.
24517 Fri May 04 19:30:56 BST 2007  Olly Betts <olly@survex.com>
24519         * include/xapian/termgenerator.h: Add convenience version of
24520           index_text() and index_text_without_positions() which take a
24521           std::string instead of a Utf8Iterator.
24523 Fri May 04 17:11:11 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24525         * unicode/utf8itor.cc: Fix segfault bug in Utf8Iterator::operator*().
24526           If this was called when the iterator had reached end, invalid
24527           memory was accessed because p was compared to end, p will always
24528           be set to NULL when the iterator reaches the end.  No regression
24529           test, but the smoketest tests I'm implementing in the bindings
24530           will exercise this code.
24532 Fri May 04 16:29:51 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24534         * include/xapian/unicode.h: Add documentation comments to
24535           Utf8Iterator, so I don't have to work out how it works again.
24537 Fri May 04 14:55:32 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24539         * include/xapian/unicode.h: Add assign() function which takes a
24540           string, for symmetry with the constructors.  Also makes
24541           implementing the bindings easier.
24543 Fri May 04 13:04:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24545         * include/Makefile.mk: Add termgenerator.h to distribution
24546           tarballs.
24548 Fri May 04 03:41:56 BST 2007  Olly Betts <olly@survex.com>
24550         * tests/harness/testsuite.h: Test against pow(10, -DBL_DIG) rather
24551           than DBL_EPSILON.  DBL_EPSILON is a little bit smaller, but we use
24552           DBL_DIG for displaying the numbers and it looks stupid to say two
24553           numbers which are displayed identically should be nearly the same!
24555 Fri May 04 03:33:51 BST 2007  Olly Betts <olly@survex.com>
24557         * HACKING: Fix reference to --enable-maitainer-mode and documentation
24558           rebuilding.
24560 Fri May 04 03:32:57 BST 2007  Olly Betts <olly@survex.com>
24562         * configure.ac: Fix now erroneous references to tools "required in
24563           maintainer mode" to "required to build documentation".
24565 Fri May 04 01:49:05 BST 2007  Olly Betts <olly@survex.com>
24567         * HACKING: Document --enable-documentation.
24569 Fri May 04 01:38:44 BST 2007  Olly Betts <olly@survex.com>
24571         * Makefile.am,bin/Makefile.mk,configure.ac,docs/Makefile.am,
24572           examples/Makefile.mk: Add new configure option
24573           "--enable-documentation" which enables the make rules to rebuild the
24574           documentation.  By default this follows the setting of
24575           "--enable-maintainer-mode" (so giving much the same behaviour as
24576           currently), but the documentation rules can now be controlled
24577           independently.  Also, if documentation isn't being built, the
24578           configure probes for tools required to rebuild it are no longer run
24579           which should shorten configure time a bit for end-users building
24580           releases.
24582 Thu May 03 22:07:39 BST 2007  Olly Betts <olly@survex.com>
24584         * common/remoteserver.h: Remove unused default values for
24585           active_timeout_ and idle_timeout_ parameters.  Fix repeated typo
24586           in documentation comments ('millisrconds' -> 'milliseconds').
24588 Thu May 03 15:05:24 BST 2007  Olly Betts <olly@survex.com>
24590         * include/xapian.h,include/xapian/termgenerator.h,queryparser/:
24591           Initial cut of TermGenerator class.
24593 Thu May 03 15:04:09 BST 2007  Olly Betts <olly@survex.com>
24595         * generate-exceptions.in: Hide the internal constructors of generated
24596           error classes in the doxygen-generated API docs.
24598 Thu May 03 04:37:51 BST 2007  Olly Betts <olly@survex.com>
24600         * expand/ortermlist.cc,expand/ortermlist.h: Fix compilation error when
24601           --enable-assertions is used.
24603 Thu May 03 03:57:42 BST 2007  Olly Betts <olly@survex.com>
24605         * common/safeunistd.h: Provide a POSIX-compatible sleep() function.
24606         * common/utils.h: Remove inferior POSIX-compatible sleep() function.
24608 Thu May 03 03:17:02 BST 2007  Olly Betts <olly@survex.com>
24610         * include/xapian/: Mark all @internal member variables and functions
24611           which aren't private with @private so doxygen doesn't document them.
24613 Thu May 03 02:33:09 BST 2007  Olly Betts <olly@survex.com>
24615         * include/xapian/: Mark DocIDWrapper, RefCntBase, RefCntPtr,
24616           TermNameWrapper, and TermPosWrapper as "@internal" so that they don't
24617           show up in the doxygen-generated API documentation.  In particular,
24618           this makes the class collaboration diagrams much more useful.
24619         * include/xapian/errorhandler.h: Declare the class in namespace Xapian
24620           rather than with namespace Xapian:: since the latter seems to
24621           confuse doxygen.
24623 Thu May 03 02:31:33 BST 2007  Olly Betts <olly@survex.com>
24625         * include/xapian/unicode.h: Fix wrapping of comment.
24627 Thu May 03 00:05:23 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24629         * backends/flint/: Remove unused (and unimplemented) declarations
24630           of begin_transaction_(), commit_transaction_() and
24631           cancel_transaction_() from FlintWritableDatabase class.  Tidy up
24632           handling of metainfo (total_length and lastdocid) to avoid
24633           repeatedly parsing the special record, and make it easier to
24634           store additional metainfo in future.
24635           Also, remove code which ensures that there is always a special
24636           record - this was added in revision 5459 when the special record
24637           was stored in the record table, so that the number of documents
24638           in the database could always be calculated by subtracting 1 from
24639           the number of entries in the record table.  Now that the special
24640           record is stored in the postlist table, this is no longer
24641           necessary.
24643 Wed May 02 17:56:39 BST 2007  Olly Betts <olly@survex.com>
24645         * backends/dbfactory_remote.cc,include/xapian/dbfactory.h:
24646           Remote::open_writable() now defaults to no (active) timeout.  The
24647           connection timeouts for Remote::open() and Remote::open_writable()
24648           now default to 10 seconds rather than defaulting to the same as
24649           the active timeout (which defaults to 10 seconds).
24651 Wed May 02 16:00:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24653         * common/safeunistd.h,tests/harness/backendmanager.cc: Fix
24654           compilation on windows - safeunistd.h was undefining ssize_t
24655           and thus overriding the definition in config.h, and include
24656           safewindows.h for backendmanager.cc
24658 Wed May 02 15:34:33 BST 2007  Olly Betts <olly@survex.com>
24660         * common/safeunistd.h: Don't define ssize_t here for MSVC - do it in
24661           config.h instead.  This avoids pulling in <windows.h> which will
24662           hopefully fix another macro redefinition warning under MSVC.
24664 Wed May 02 15:20:56 BST 2007  Olly Betts <olly@survex.com>
24666         * common/safewindows.h: Define NOGDI before including windows.h to
24667           prevent it from defining a macro called "ERROR" which collides with
24668           the generated queryparser sources, causing a warning in the MSVC
24669           build.
24671 Wed May 02 14:38:33 BST 2007  Olly Betts <olly@survex.com>
24673         * common/termlist.h: Forward declare ExpandStats as "class" not
24674           "struct" for consistency with the actual declaration.
24676 Wed May 02 14:30:41 BST 2007  Olly Betts <olly@survex.com>
24678         * configure.ac: Try '-lzlib' for zlib, which mingw reportedly needs.
24680 Wed May 02 14:21:40 BST 2007  Olly Betts <olly@survex.com>
24682         * common/remoteconnection.h,include/xapian/dbfactory.h,
24683           net/remoteserver.cc: A timeout of `0' in the remote backend now
24684           means "no timeout" (code patch from Mark Hammond).
24686 Wed May 02 04:17:28 BST 2007  Olly Betts <olly@survex.com>
24688         * Makefile.am,api/,backends/alltermslist.cc,backends/flint/,
24689           backends/inmemory/inmemory_database.cc,
24690           backends/inmemory/inmemory_database.h,
24691           backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
24692           backends/quartz/,backends/remote/net_termlist.cc,
24693           backends/remote/net_termlist.h,backends/remote/remote-database.cc,
24694           common/,expand/,matcher/: Split expand functionality out of
24695           "matcher" subdirectory into new "expand" subdirectory since it's
24696           not really connected to query matching and the matcher subdirectory
24697           is one of the largest.  Rewrite OrTermList, eliminating
24698           BranchTermList entirely.  Alter expand to pass in an object (of
24699           class Xapian::Internal::ExpandWeight) which accumulates statistics
24700           instead of returning OmExpandBits objects which we then have to
24701           merge (and eliminating the need for LeafTermList entirely).  Query
24702           expansion for multiple databases should now give results more like
24703           that for a single database with the same documents (if
24704           USE_EXACT_TERMFREQ is used, the results should be the same).  Debug
24705           logging from expand is now all of type EXPAND (some was of types
24706           MATCHER and WTCALC before).
24708 Wed May 02 03:35:17 BST 2007  Olly Betts <olly@survex.com>
24710         * docs/deprecation.rst: Add deprecation info for Omega too.
24712 Wed May 02 00:24:13 BST 2007  Olly Betts <olly@survex.com>
24714         * tests/api_anydb.cc: Add test expandweights1 as a regression test for
24715           the previous commit.
24716         * tests/harness/testsuite.h: Set the precision for TEST_EQUAL_DOUBLE
24717           so we don't claim two numbers to be different yet display them the
24718           same!
24720 Tue May 01 23:27:10 BST 2007  Olly Betts <olly@survex.com>
24722         * backends/remote/net_termlist.cc,backends/remote/remote-database.cc,
24723           common/remoteprotocol.h,docs/remote_protocol.html,
24724           net/remoteserver.cc: Fix handling of the document length in the
24725           termlist for the remote backend.
24727 Tue May 01 23:17:28 BST 2007  Olly Betts <olly@survex.com>
24729         * tests/api_db.cc: Several tests were marked as "local db only" for
24730           historical reasons.  Enable them for remote backends too.
24731         * backends/remote/net_postlist.cc,tests/api_db.cc: Fix a bug in
24732           NetworkPostList::skip_to() which apitest's postlist4 reveals.
24734 Tue May 01 21:00:26 BST 2007  Olly Betts <olly@survex.com>
24736         * api/omtermlistiterator.cc,api/omvalueiterator.cc,
24737           backends/multi/multi_alltermslist.cc: Add explicit
24738           `#include "omassert.h"'.
24739         * backends/multi/multi_alltermslist.cc: Remove all explicit
24740           std:: qualifiers and add `using namespace std;'.
24742 Tue May 01 20:56:10 BST 2007  Olly Betts <olly@survex.com>
24744         * common/multialltermslist.h: Add explicit std:: qualifiers for
24745           string, for consistency with std::vector in this header.
24747 Tue May 01 15:19:53 BST 2007  Olly Betts <olly@survex.com>
24749         * matcher/branchpostlist.h: Don't check for NULL pointer before
24750           calling delete.
24752 Tue May 01 02:29:10 BST 2007  Olly Betts <olly@survex.com>
24754         * common/document.h,common/documentterm.h,common/multialltermslist.h,
24755           matcher/rset.cc,queryparser/queryparser.cc: Add some explicit
24756           includes for headers which were previously only implicitly included
24757           (in preparation for a forthcoming change which removes some of the
24758           implicit inclusions).
24760 Tue May 01 01:20:53 BST 2007  Olly Betts <olly@survex.com>
24762         * backends/database.cc,bin/quartzcheck.cc,docs/deprecation.rst,
24763           include/xapian/dbfactory.h,tests/api_db.cc,
24764           tests/harness/backendmanager.cc,tests/quartztest.cc: Deprecate
24765           the Quartz backend and related functions and utilities.
24767 Fri Apr 27 12:56:13 BST 2007  Olly Betts <olly@survex.com>
24769         * tests/Makefile.am: Pass '-no-install' when linking test programs,
24770           since we don't ever install them.  This means libtool doesn't need
24771           to generate shell script wrappers on most platforms.  Also prefer
24772           '$(ldflags)' to '@ldflags' as the former allows the user to override
24773           when they run 'make' which is sometimes useful.
24775 Fri Apr 27 03:44:15 BST 2007  Olly Betts <olly@survex.com>
24777         * docs/intro_ir.html: Add links for the various researchers mentioned
24778           by name.
24780 Thu Apr 26 17:57:10 BST 2007  Olly Betts <olly@survex.com>
24782         * docs/bm25.html,docs/intro_ir.html: Assorted documentation
24783           improvements.
24785 Thu Apr 26 15:43:24 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24787         * docs/deprecation.rst: Update with changes to Python bindings.
24789 Thu Apr 26 06:01:45 BST 2007  Olly Betts <olly@survex.com>
24791         * common/expandweight.h,matcher/expandweight.cc: Better handling of
24792           expand with multiple databases.
24794 Wed Apr 25 18:35:13 BST 2007  Olly Betts <olly@survex.com>
24796         * api/omenquire.cc: Delete nonsensical comment.
24798 Wed Apr 25 17:41:58 BST 2007  Olly Betts <olly@survex.com>
24800         * docs/deprecation.rst: Use the collective term "features" rather than
24801           overloading the term "functions".  Casual readers may miss the
24802           definition altogether, and even dedicated readers will probably
24803           already have a strong mental image of what a "function" is in the
24804           context of an API.
24806 Wed Apr 25 14:52:11 BST 2007  Olly Betts <olly@survex.com>
24808         * docs/intro_ir.html: Improve the look of the formulae.
24810 Wed Apr 25 03:56:18 BST 2007  Olly Betts <olly@survex.com>
24812         * common/omqueryinternal.h,languages/generate-allsnowballheaders.in,
24813           matcher/msetcmp.h,queryparser/queryparser_internal.h: Add missing
24814           multiple inclusion guards.
24816 Wed Apr 25 03:12:50 BST 2007  Olly Betts <olly@survex.com>
24818         * queryparser/queryparser_internal.h: Don't include <config.h> in
24819           a header file.
24821 Wed Apr 25 03:05:09 BST 2007  Olly Betts <olly@survex.com>
24823         * queryparser/queryparser.cc: Initialise `internal' member inline
24824           for consistency with other classes.
24826 Tue Apr 24 04:55:45 BST 2007  Olly Betts <olly@survex.com>
24828         * configure.ac: Add missing ')' to the error messages when zlib stuff
24829           isn't found.
24831 Tue Apr 24 02:56:57 BST 2007  Olly Betts <olly@survex.com>
24833         * backends/flint/flint_database.h,
24834           backends/inmemory/inmemory_database.h,
24835           backends/quartz/quartz_database.h: MSVC doesn't handle using
24836           properly.
24838 Tue Apr 24 01:25:34 BST 2007  Olly Betts <olly@survex.com>
24840         * matcher/bm25weight.cc,matcher/expandweight.cc: Fix typo in comments:
24841           'releveant' -> 'relevant'.
24843 Mon Apr 23 23:00:23 BST 2007  Olly Betts <olly@survex.com>
24845         * api/omenquire.cc,docs/deprecation.rst,include/xapian/enquire.h,
24846           tests/api_anydb.cc,tests/api_db.cc: Deprecate
24847           Enquire::include_query_terms and Enquire::use_exact_termfreq in
24848           favour of capitalised versions Enquire::INCLUDE_QUERY_TERMS and
24849           Enquire::USE_EXACT_TERMFREQ (for consistency with our other
24850           manifest constants, and general C/C++ conventions).
24852 Mon Apr 23 18:14:20 BST 2007  Olly Betts <olly@survex.com>
24854         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Support for
24855           VLAs in C++ is a GCC extension, so eliminate the need for them.
24857 Mon Apr 23 16:32:07 BST 2007  Olly Betts <olly@survex.com>
24859         * docs/: svn:ignore deprecation.html. svn:ignore apidoc.pdf and
24860           sourcedoc.pdf rather than *.pdf.
24862 Mon Apr 23 16:08:53 BST 2007  Olly Betts <olly@survex.com>
24864         * tests/quartztest.cc: Resolve FIXME about MapTermList.
24866 Mon Apr 23 16:06:38 BST 2007  Olly Betts <olly@survex.com>
24868         * api/valuerangeproc.cc,backends/flint/flint_check.cc,
24869           backends/flint/flint_table.cc,backends/quartz/btree.cc,
24870           backends/quartz/btreecheck.cc,bin/xapian-tcpsrv.cc,examples/,
24871           languages/steminternal.h,tests/harness/testsuite.cc,
24872           tests/harness/testsuite.h,tests/stemtest.cc: Fix compilation with
24873           GCC 4.3 snapshot.
24875 Mon Apr 23 15:20:55 BST 2007  Olly Betts <olly@survex.com>
24877         * common/safeunistd.h: Comment tweaks.
24879 Mon Apr 23 11:54:14 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24881         * common/safeunistd.h: Include <process.h> on windows to get
24882           getpid() instead of using a #define.
24884 Mon Apr 23 11:30:56 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24886         * api/maptermlist.h: Fix typo in error message.
24888 Mon Apr 23 11:08:01 BST 2007  Richard Boulton <richard@lemurconsulting.com>
24890         * api/maptermlist.h: Throw an InvalidOperationError() if
24891           MapTermList::get_termfreq() is called, instead of simply having
24892           Assert(false): this gets called if a term iterator is accessed
24893           for a freshly created Document, and the get_termfreq() method is
24894           called on it.  The error message is specific to this situation,
24895           since this is the only place in which MapTermList is used.
24897 Mon Apr 23 03:22:54 BST 2007  Olly Betts <olly@survex.com>
24899         * backends/flint/flint_database.cc,backends/flint/flint_lock.cc,
24900           backends/flint/flint_lock.h: Report why we failed to get a write
24901           lock on a flint database.
24903 Mon Apr 23 01:44:13 BST 2007  Olly Betts <olly@survex.com>
24905         * backends/flint/flint_version.cc: Update the flint format version
24906           since older flint versions can't read compressed tags.
24908 Mon Apr 23 01:25:25 BST 2007  Olly Betts <olly@survex.com>
24910         * configure.ac: Probe for zlib.h and -lz.
24911         * backends/flint/,bin/xapian-compact.cc: Use zlib to compress tags
24912           in the record and termlist tables.
24913         * tests/Makefile.am,tests/runtest.in,tests/valgrind.supp: Add a
24914           valgrind suppression for zlib (a known issue - for speed zlib
24915           deliberately reads past the end of the buffer in some cases).
24917 Sun Apr 22 04:24:06 BST 2007  Olly Betts <olly@survex.com>
24919         * backends/flint/: Remove documentation for blocksize_ parameters
24920           which were removed some time ago.
24922 Sun Apr 22 00:02:13 BST 2007  Olly Betts <olly@survex.com>
24924         * matcher/multimatch.cc: Track the minimum weight required to be
24925           considered for the MSet separately from the minimum item which
24926           could be considered.  Trying to combine the two is causing subtle
24927           bugs (fixed bug#86).
24929 Sun Apr 22 00:00:39 BST 2007  Olly Betts <olly@survex.com>
24931         * HACKING: Add notes about the files Omega uses from xapian-core.
24933 Sat Apr 21 23:49:58 BST 2007  Olly Betts <olly@survex.com>
24935         * queryparser/queryparser.cc: Clear the stoplist when we parse a new
24936           query.
24937         * tests/queryparsertest.cc: Add regression test.
24939 Sat Apr 21 23:27:33 BST 2007  Olly Betts <olly@survex.com>
24941         * Makefile.am,common/Makefile.mk,getopt/: Move getopt.cc from getopt/
24942           to common/.  Having a whole directory for a single source file
24943           is a bit extravagant, and putting it in common/ allows us to share a
24944           copy with omega easily.
24946 Sat Apr 21 21:38:20 BST 2007  Olly Betts <olly@survex.com>
24948         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc,
24949           backends/quartz/quartz_log.cc,common/omdebug.h,common/safeunistd.h,
24950           tests/harness/testsuite.cc: safeunistd.h now defines getpid() to
24951           GetCurrentProcessId() for MSVC, and we now include this where we
24952           want to use getpid() rather than conditionally defining getpid().
24954 Sat Apr 21 04:13:12 BST 2007  Olly Betts <olly@survex.com>
24956         * configure.ac: Explicitly set AM_CXXFLAGS to an empty value to start
24957           with to avoid issues if it's set in the environment.  Cache the
24958           results of the test to see if the C++ compiler actually works, and
24959           in the XAPIAN_TEST_LINKER_FLAG macro.
24960         * configure.ac, include/xapian/visibility.h: Add --disable-visibility
24961           option to configure to completely disable use of -fvisibility.
24962         * INSTALL: Document all --enable-backend-* options explicitly.
24963           Document how to disable use of -fvisibility and
24964           -Bsymbolic-functions should you want/need to.  Improve wording in
24965           a few places.
24967 Fri Apr 20 19:20:23 BST 2007  Olly Betts <olly@survex.com>
24969         * HACKING,configure.ac: Revert to requiring autoconf 2.59 so that the
24970           .spec file for building RPMs can run `autoreconf' to work around a
24971           libtool bug.
24973 Fri Apr 20 18:12:51 BST 2007  Olly Betts <olly@survex.com>
24975         * docs/deprecation.rst: Document return type of ExpandDecider::Apply()
24976           and MatchDecider::Apply() in C# is now bool instead of int.
24978 Fri Apr 20 18:01:18 BST 2007  Olly Betts <olly@survex.com>
24980         * xapian.spec.in: Package xapian-check and its man page.
24982 Fri Apr 20 14:38:00 BST 2007  Olly Betts <olly@survex.com>
24984         * docs/deprecation.rst: Note changed return type of
24985           ExpandDecider::operator() and MatchDecider::operator().
24987 Fri Apr 20 14:28:39 BST 2007  Olly Betts <olly@survex.com>
24989         * include/xapian/enquire.h: MatchDecider::operator() now returns
24990           `bool' not `int'.  Remove declaraction of ExpandDecider.
24991         * include/xapian/expanddecider.h: Move declaration of ExpandDecider
24992           to here.  ExpandDecider::operator() now returns `bool' not `int'.
24993           ExpandDeciderAnd now names parameters `first' and `second' and
24994           documents the order in which they are applied (useful if you have
24995           an expensive and a cheap test).  ExpandDeciderAnd can now take
24996           parameters by reference instead of pointer.
24997         * api/Makefile.mk,include/xapian/enquire.h,api/omenquire.cc,
24998           api/expanddecider.cc: New home for definitions of virtual methods of
24999           ExpandDecider and subclasses.
25000         * api/omenquire.cc,common/expand.h,matcher/expand.cc: Eliminate
25001           internal class ExpandDeciderAlways - just test pointer against NULL
25002           instead.
25003         * tests/api_anydb.cc,tests/api_db.cc: Update for change in return
25004           type from MatchDecider::operator() and ExpandDecider::operator().
25006 Fri Apr 20 10:35:09 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25008         * HACKING: Add note on rules with multiple targets.
25010 Thu Apr 19 19:02:42 BST 2007  Olly Betts <olly@survex.com>
25012         * PLATFORMS: Remove reports for 0.7.* and demote reports for 0.8.* to
25013           "older reports" status.  All SF compilefarm machines are now "no
25014           longer available", so update the symbols and key to reflect this.
25016 Thu Apr 19 13:27:59 BST 2007  Olly Betts <olly@survex.com>
25018         * HACKING: Fix vim magic comment.  Add space after URL to stop
25019           '::' getting glued to it.
25021 Thu Apr 19 11:36:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25023         * HACKING: Turn syntax highlighting off, since it's broken for the
25024           restructured text in this file anyway.
25026 Thu Apr 19 03:26:28 BST 2007  Olly Betts <olly@survex.com>
25028         * backends/flint/flint_database.h,
25029           backends/inmemory/inmemory_database.h,
25030           backends/quartz/quartz_database.h:
25031           The trick of importing base class methods with 'using' breaks
25032           compilation with GCC 2.95 which doesn't issue the warning we're
25033           trying to avoid, so add a preprocessor check,
25035 Thu Apr 19 03:20:31 BST 2007  Olly Betts <olly@survex.com>
25037         * common/progclient.h,net/progclient.cc: Always use pid_t not int for
25038           holding a process id.
25040 Thu Apr 19 01:08:57 BST 2007  Olly Betts <olly@survex.com>
25042         * docs/deprecation.rst: Update '#callable' footnote.
25044 Thu Apr 19 00:07:02 BST 2007  Olly Betts <olly@survex.com>
25046         * backends/flint/flint_database.h,
25047           backends/inmemory/inmemory_database.h,
25048           backends/quartz/quartz_database.h: Add using declarations to
25049           subclasses of Xapian::Database::Internal which don't override the
25050           term forms of delete_document() and replace_document() to prevent
25051           compiler warnings about these methods being hidden.
25053 Wed Apr 18 23:22:29 BST 2007  Olly Betts <olly@survex.com>
25055         * net/remoteconnection.cc: Remove code which can't actually be
25056           reached, which fixes a warning in the mingw build.
25058 Wed Apr 18 23:07:45 BST 2007  Olly Betts <olly@survex.com>
25060         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
25061           include/xapian/enquire.h,matcher/Makefile.mk,
25062           matcher/biaspostlist.h,matcher/multimatch.cc,net/remoteserver.cc:
25063           Remove Enquire::set_bias().
25064         * docs/deprecation.rst: Update wrt Enquire::set_bias().  Fix typo.
25066 Wed Apr 18 18:51:42 BST 2007  Olly Betts <olly@survex.com>
25068         * configure.ac: Require autoconf 2.60 or newer.  Drop docdir
25069           compatibility hack which is no longer required.
25070         * HACKING: Document requirement.  Fix typo (or out-of-date info) for
25071           automake requirement (we require 1.9.5 not 1.8.5).
25073 Wed Apr 18 18:27:35 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25075         * docs/deprecation.rst: Note the deprecation of get_description()
25076           methods for Python.
25078 Wed Apr 18 14:57:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25080         * HACKING: Minimal changes to make this into valid restructured
25081           text.
25083 Wed Apr 18 11:27:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25085         * configure.ac: Require autoconf version 2.59c or later:
25086           AC_TYPE_SSIZE_T isn't present in earlier versions.
25088 Wed Apr 18 11:08:13 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25090         * docs/deprecation.rst: Fix table formatting error
25092 Wed Apr 18 01:32:48 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25094         * docs/deprecation.rst: Update with methods which have been removed
25095           from the bindings.
25097 Wed Apr 18 00:24:00 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25099         * docs/deprecation.rst: Move methods which have just been removed
25100           from the list of deprecated methods to the list of removed
25101           methods.
25103 Tue Apr 17 23:58:53 BST 2007  Olly Betts <olly@survex.com>
25105         * api/omdocument.cc,api/omenquire.cc,api/omquery.cc,include/xapian/,
25106           languages/stem.cc,tests/api_db.cc: Remove methods we're deprecating
25107           for 1.0.
25109 Tue Apr 17 23:50:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25111         * docs/deprecation.rst: Note that is_empty() is not deprecated for
25112           PHP after all!
25114 Tue Apr 17 22:17:41 BST 2007  Olly Betts <olly@survex.com>
25116         * queryparser/queryparser.lemony: GCC 2.95 doesn't support
25117           std::string::clear(), so use resize(0) instead.
25118         * HACKING: Document the above issue in a reworked section on C++
25119           STL features.  Update the section on safeXXX.h headers.
25121 Tue Apr 17 22:07:39 BST 2007  Olly Betts <olly@survex.com>
25123         * common/safesysselect.h: Correct typo in #error message.
25125 Tue Apr 17 19:18:00 BST 2007  Olly Betts <olly@survex.com>
25127         * configure.ac: Factor out code to test for a linker flag into macro
25128           XAPIAN_TEST_LINKER_FLAG.  With g++, use XAPIAN_TEST_LINKER_FLAG to
25129           see if -Bsymbolic-functions is supported (it requires a very recent
25130           version of ld currently).  This option reduces the size and load
25131           time of the shared library by resolving references within the
25132           library when it's created.  Currently untested on a box which
25133           supports -Bsymbolic-functions.
25135 Tue Apr 17 12:01:46 BST 2007  Olly Betts <olly@survex.com>
25137         * unicode/utf8itor.cc: Tidy up code layout.
25139 Tue Apr 17 02:06:39 BST 2007  Olly Betts <olly@survex.com>
25141         * include/xapian/unicode.h,unicode/utf8itor.cc: Make nonascii_to_utf8
25142           a public method.  Make get_case_type(), get_category(), and
25143           get_delta() internal, but provide a public get_category() function
25144           which takes a Unicode character value.
25146 Tue Apr 17 02:05:32 BST 2007  Olly Betts <olly@survex.com>
25148         * backends/flint/Makefile.mk: Distribute flint_check.h.
25150 Tue Apr 17 01:47:05 BST 2007  Olly Betts <olly@survex.com>
25152         * tests/api_posdb.cc: The remote backend now supports all database
25153           operations, so merge localpositionaldb_tests into
25154           positionaldb_tests.
25155         * tests/: Remove the trivial separate api_XXXdb.h headers, some of
25156           which were out-of-step with their respective .cc sources.  Instead
25157           just keep the array external declarations in apitest.h.
25158         * tests/apitest.h,tests/api_transdb.cc: Move TESTCASE and
25159           END_OF_TESTCASES macros into header.
25160         * tests/api_db.cc: Remove test collapsekey2 - it's only relevant for
25161           the Muscat 3.6 backend, so it's unused now that has been removed.
25162         * tests/: Add unicode tests, adapted from Omega's utftest.
25164 Tue Apr 17 00:14:16 BST 2007  Olly Betts <olly@survex.com>
25166         * Makefile.am,include/Makefile.mk,include/xapian.h,
25167           include/xapian/unicode.h,queryparser/,unicode/: Expose Unicode and
25168           UTF-8 related classes and functions as a public API.
25170 Mon Apr 16 16:06:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25172         * docs/deprecation.rst: Bring document fully up-to-date, listing
25173           all the planned deprecations for the bindings.  Also, include the
25174           full upgrade notes in the listings, so they can be preserved
25175           accessibly for posterity.  I even retrieved the notes for the
25176           already-removed QueryParser::set_stemming_options from 0.9.10.
25178 Mon Apr 16 11:36:18 BST 2007  Olly Betts <olly@survex.com>
25180         * net/tcpclient.cc: Call WSAGetLastError() instead of socket_errno()
25181           when we want to compare the result against WSAEWOULDBLOCK.
25183 Mon Apr 16 11:19:21 BST 2007  Olly Betts <olly@survex.com>
25185         * common/remoteconnection.h,common/safewinsock2.h: Need to negate the
25186           POSIX error codes we define in terms of winsock ones.
25188 Fri Apr 13 16:24:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25190         * docs/doxygen_api_conf.in: Turn on XML output, so that we can use
25191           it to populate docstrings for the python bindings.
25193 Fri Apr 13 11:38:39 BST 2007  Olly Betts <olly@survex.com>
25195         * backends/Makefile.mk,backends/alltermslist.cc,common/alltermslist.h:
25196           Split AllTermsList into header and code.  AllTermsList::get_wdf()
25197           now throws InvalidOperationError() rather than asserting in a
25198           debug build and returning 0 in a non-debug build.
25199         * backends/Makefile.mk: Correct list for "how to add a new backend".
25201 Fri Apr 13 10:17:46 BST 2007  Olly Betts <olly@survex.com>
25203         * api/version.cc: Simpler and cleaner fix - the prototypes for the
25204           version functions had moved from xapian/version.h to xapian.h so we
25205           were including the wrong header and not seeing the prototypes with
25206           visibility markup!
25208 Fri Apr 13 09:29:17 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25210         * api/version.cc: Add visibility annotations to definitions of
25211           version functions: the annotation apparently needs to be applied
25212           to the definition as well as the declaration or it is ignored:
25213           possibly the annotation on the declaration is ignored anyway,
25214           but it should be kept there for documentation purposes in any
25215           case.  Fixes link error with bindings under gcc 4.1.
25217 Fri Apr 13 01:39:57 BST 2007  Olly Betts <olly@survex.com>
25219         * common/remoteconnection.h,net/progclient.cc,net/remoteconnection.cc:
25220           GetLastError() has an unsigned return type, so need to cast to int
25221           before negating.
25223 Fri Apr 13 01:39:20 BST 2007  Olly Betts <olly@survex.com>
25225         * docs/deprecation.rst: Add xapian_version_string() and friends.
25227 Fri Apr 13 01:24:53 BST 2007  Olly Betts <olly@survex.com>
25229         * tests/api_nodb.cc: More 'tout' output.
25231 Fri Apr 13 01:19:20 BST 2007  Olly Betts <olly@survex.com>
25233         * api/Makefile.mk,api/error.cc,bin/xapian-tcpsrv.cc,
25234           common/remoteconnection.h,common/safeerrno.h,configure.ac,
25235           generate-exceptions.in,net/,tests/harness/testsuite.cc: On
25236           MS Windows, if Xapian::Error::my_errno is the result of
25237           GetLastError() or WSAGetLastError(), negate it (the error codes can
25238           overlap with errno codes).  On UNIX, put h_errno negated in my_errno
25239           if a call to gethostbyname() fails.  Add
25240           Xapian::Error::get_error_string() method which decodes my_errno
25241           in the appropriate way to give a string, and use this instead of
25242           strerror(error.get_errno()).
25244 Fri Apr 13 01:17:08 BST 2007  Olly Betts <olly@survex.com>
25246         * languages/generate-allsnowballheaders.in: win32 makefiles don't keep
25247           the snowball header list in sorted order like we do, so fix that
25248           here.  Also allow for '\' as path separator.
25250 Fri Apr 13 00:58:09 BST 2007  Olly Betts <olly@survex.com>
25252         * tests/api_nodb.cc: Add "tout" debug output to stemlangs1.
25254 Thu Apr 12 21:37:04 BST 2007  Olly Betts <olly@survex.com>
25256         * tests/Makefile.am: Add support for QUIET= and QUIET=y arguments to
25257           "make".
25259 Thu Apr 12 21:35:50 BST 2007  Olly Betts <olly@survex.com>
25261         * docs/Makefile.am: Use a substitution for RSTHTML (like we do for the
25262           snowball generated sources).
25264 Thu Apr 12 20:41:18 BST 2007  Olly Betts <olly@survex.com>
25266         * api/omqueryinternal.cc: Add validate_query() calls to the "term" and
25267           "value range" constructors.
25269 Thu Apr 12 20:00:14 BST 2007  Olly Betts <olly@survex.com>
25271         * api/omqueryinternal.cc,include/xapian/query.h: Only validate a
25272           Query object when it's either constructed or changed to avoid O(n^2)
25273           behaviour in some cases.
25275 Thu Apr 12 19:59:13 BST 2007  Olly Betts <olly@survex.com>
25277         * queryparser/lemon.c: Fix nasty function casting for argument to
25278           qsort - it's (at least technically) not portable.
25280 Thu Apr 12 17:47:47 BST 2007  Olly Betts <olly@survex.com>
25282         * configure.ac: Fix GCC version test to only turn on
25283           -fvisibility=hidden for GCC >= 4.
25285 Thu Apr 12 16:47:56 BST 2007  Olly Betts <olly@survex.com>
25287         * backends/flint/flint_btreebase.h,backends/flint/flint_cursor.h,
25288           backends/flint/flint_table.h,backends/quartz/,common/,configure.ac,
25289           generate-exceptions.in,include/Makefile.mk,include/xapian.h,
25290           include/xapian/: Add visibility annotations to the library, which
25291           when using GCC >= 4 reduces the size and load time of the library
25292           and increase the runtime speed a little.  Under x86_64, the stripped
25293           library is 6.4% smaller (1.5% smaller with debug information).
25295 Thu Apr 12 16:45:57 BST 2007  Olly Betts <olly@survex.com>
25297         * api/version.cc: Add missing "#include <config.h>".
25299 Thu Apr 12 13:41:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25301         * tests/quartztest.cc: Put removedir() function back for now to fix
25302           build.
25304 Thu Apr 12 13:02:30 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25306         * net/progclient.cc: Some (but not all) versions of MSVC need
25307           "#include <io.h>" to get the _open_osfhandle identifier.  Add it.
25309 Thu Apr 12 12:00:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25311         * backends/remote/net_postlist.cc: Include config.h
25313 Thu Apr 12 11:54:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25315         * backends/multi/multi_termlist.cc: Include config.h to get system
25316           specific defines.
25317         * common/safesysstat.h: Change signature of mkdir to take mode_t
25318           instead of int, to match unixy definition.
25320 Thu Apr 12 10:19:49 BST 2007  Olly Betts <olly@survex.com>
25322         * configure.ac: Probe for mode_t.
25324 Thu Apr 12 01:10:18 BST 2007  Olly Betts <olly@survex.com>
25326         * backends/flint/flint_positionlist.cc: Move BitReader class inside
25327           Xapian namespace to avoid namespace pollution.
25328         * bin/xapian-check.cc: Include BitReader::decode_interpolative()
25329           - previously we were relying on using the copy from the library.
25331 Thu Apr 12 01:02:53 BST 2007  Olly Betts <olly@survex.com>
25333         * common/safesysstat.h: Under __WIN32__, provide a POSIX-like mkdir()
25334           wrapper which takes 2 arguments, but ignores the file mode, so we
25335           can just call mkdir with a mode argument everywhere.
25336         * common/utils.h: Remove special case handling of mkdir.
25337         * bin/xapian-compact.cc: Replace uses of om_tostring() with a call
25338           to sprintf.  No longer need to `#include "utils.h"'.
25340 Thu Apr 12 00:44:18 BST 2007  Olly Betts <olly@survex.com>
25342         * api/,backends/inmemory/inmemory_positionlist.cc,common/,matcher/,
25343           net/remoteconnection.cc,net/serialise.cc: omdebug.h only includes
25344           omassert.h for the trivial "STRINGIZE" macro, so just duplicate
25345           that rather than pulling in an extra header everywhere.  Then fix
25346           up the two dozen files which were relying on this implicit
25347           inclusion!
25349 Thu Apr 12 00:10:48 BST 2007  Olly Betts <olly@survex.com>
25351         * tests/harness/testsuite.cc: Tweak #ifdef XAPIAN_DEBUG_VERBOSE to
25352           include DEBUGLINE() for clarity (no change in behaviour).
25354 Wed Apr 11 23:36:10 BST 2007  Olly Betts <olly@survex.com>
25356         * queryparser/queryparser.lemony: Fix regression introduced by
25357           Richard's change, and restructure to make the handling for each case
25358           more obvious.
25359         * tests/queryparsertest.cc: Add a couple of testcases for the
25360           regression.
25361         * queryparser/queryparser_internal.h: Remove reference to "bool" in
25362           comment which no longer applies.
25364 Wed Apr 11 21:25:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25366         * queryparser/queryparser_internal.h: Refactor boolean "flag"
25367           member in BoolAndString class into an enum of possible prefix
25368           types.  Rename "flag" to "type".  Rename BoolAndString to
25369           PrefixInfo.
25370         * queryparser/queryparser.cc: Change add_prefix() and
25371           add_boolean_prefix() to match changes to queryparser_internal.h
25372         * queryparser/queryparser.lemony: Refactor handling of prefixed
25373           terms to match queryparser_internal, and to use a switch()
25374           structure: no functional changes, but code is considerably more
25375           readable (I hope).
25377 Wed Apr 11 21:13:31 BST 2007  Olly Betts <olly@survex.com>
25379         * tests/api_db.cc,tests/quartztest.cc: Rework quartztest's "open1"
25380           into API level tests for quartz and flint in apitest.
25382 Wed Apr 11 14:01:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25384         * docs/deprecation.rst: Remove documentation of the "#define
25385           XAPIAN_DEPRECATED(D) D" hack, and clarify documentation on how
25386           long we support deprecated functions.
25388 Wed Apr 11 09:25:55 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25390         * docs/Makefile.am,docs/deprecation.rst: Add initial draft of
25391           deprecation policy document, with list of all API items currently
25392           marked for deprecation.
25393         * HACKING: Add note about keeping deprecation.rst up-to-date when
25394           making a release.
25396 Tue Apr 10 19:07:24 BST 2007  Olly Betts <olly@survex.com>
25398         * configure.ac: --enable-quiet now uses AS_HELP_STRING.
25400 Tue Apr 10 18:53:32 BST 2007  Olly Betts <olly@survex.com>
25402         * tests/harness/index_utils.cc: Return the empty document we already
25403           have rather than constructing another.
25405 Tue Apr 10 17:45:11 BST 2007  Olly Betts <olly@survex.com>
25407         * net/remoteconnection.cc: Fix typo in comment.
25409 Tue Apr 10 17:35:57 BST 2007  Olly Betts <olly@survex.com>
25411         * tests/harness/backendmanager.cc: Fix "if" to "is" typo in 3
25412           comments.
25414 Tue Apr 10 16:46:09 BST 2007  Olly Betts <olly@survex.com>
25416         * tests/harness/backendmanager.cc: Define XAPIAN_TCPSRV and
25417           XAPIAN_PROGSRV under UNIX too, and use them everywhere.
25419 Tue Apr 10 16:33:48 BST 2007  Olly Betts <olly@survex.com>
25421         * tests/harness/backendmanager.h: Remove "BackendManager::" from
25422           method declaration.
25424 Tue Apr 10 15:35:50 BST 2007  Olly Betts <olly@survex.com>
25426         * configure.ac: Define HAVE_SOCKETPAIR if we have socketpair().
25428 Tue Apr 10 15:29:49 BST 2007  Olly Betts <olly@survex.com>
25430         * net/progclient.cc: Fix #endif placement so it compiles on UNIX.
25432 Tue Apr 10 14:18:06 BST 2007  Olly Betts <olly@survex.com>
25434         * net/remoteconnection.cc: Remove debugging code.
25436 Tue Apr 10 12:57:51 BST 2007  Olly Betts <olly@survex.com>
25438         * backends/dbfactory_remote.cc,common/progclient.h,net/progclient.cc,
25439           net/remoteconnection.cc,tests/api_db.cc,tests/apitest.cc,
25440           tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
25441           Add support for the "prog" variant of the remote backend (patch
25442           started by me, finished by Mark Hammond).
25444 Tue Apr 10 12:23:46 BST 2007  Olly Betts <olly@survex.com>
25446         * api/omqueryinternal.cc,backends/inmemory/inmemory_database.cc,
25447           backends/quartz/quartz_alldocspostlist.cc,matcher/localmatch.cc,
25448           matcher/multimatch.cc,tests/harness/testutils.cc: Prefer
25449           `CONTAINER.empty()' to `CONTAINER.size() == 0'.
25451 Tue Apr 10 12:09:45 BST 2007  Olly Betts <olly@survex.com>
25453         * api/omqueryinternal.cc: Tighten up an assertion.
25455 Mon Apr 09 20:56:23 BST 2007  Olly Betts <olly@survex.com>
25457         * configure.ac,tests/harness/backendmanager.cc,tests/runsrv.in,
25458           tests/runtest.in: Run the remote backend server using new "runsrv"
25459           script instead of "runtest".  This doesn't echo anything to stdout,
25460           and if valgrind is in use, runs the remote server under
25461           "--tool=none" which is much quicker than using valgrind's default
25462           memcheck tool (we need to run the remote server under valgrind
25463           because valgrind's emulation of excess FP precision isn't exact and
25464           otherwise we get tests failing because of these differences).
25466 Mon Apr 09 20:24:30 BST 2007  Olly Betts <olly@survex.com>
25468         * tests/api_anydb.cc,tests/api_nodb.cc: Move test poscollapse2 to the
25469           "no database" category, since it doesn't require a database!
25471 Mon Apr 09 18:04:40 BST 2007  Olly Betts <olly@survex.com>
25473         * docs/remote_protocol.html: Correct documentation - MSG_REOPEN gives
25474           a response of REPLY_UPDATE.
25476 Mon Apr 09 15:08:44 BST 2007  Olly Betts <olly@survex.com>
25478         * ./: svn:eol-style not svn:eolstyle.
25480 Mon Apr 09 15:00:30 BST 2007  Olly Betts <olly@survex.com>
25482         * ./: Set svn:eolstyle to native for most text files.
25484 Mon Apr 09 14:50:40 BST 2007  Olly Betts <olly@survex.com>
25486         * backends/flint/flint_database.cc: Delete the corresponding entry
25487           (if any) from doclens in delete_document().  Add assertion to
25488           add_document_() that the corresponding entry in doclens isn't
25489           already set, but in a non-debug build overwrite any existing
25490           entry as that's more likely to be correct.
25491         * backends/quartz/quartz_database.cc: Ditto.
25493 Mon Apr 09 14:08:55 BST 2007  Olly Betts <olly@survex.com>
25495         * backends/quartz/quartz_database.cc: Just assign to doclens[did].
25497 Mon Apr 09 14:06:58 BST 2007  Olly Betts <olly@survex.com>
25499         * backends/flint/flint_database.cc: Just assign to doclens[did].
25501 Mon Apr 09 11:29:22 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25503         * backends/quartz/quartz_database.cc: Apply same change to quartz.
25505 Mon Apr 09 11:24:31 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25507         * backends/flint/flint_database.cc: Fix bug with document lengths
25508           in replace document.  Was using doclens.insert() to set the new
25509           document length, but this has no effect if the entry already
25510           exists.  This fixes replacedoc3 for flint (and thus for remote
25511           databases), but the same change is needed for quartz.
25512         * backends/flint/flint_postlist.cc: Add some debugging lines.
25514 Mon Apr 09 01:43:02 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25516         * backends/flint/: Add some more debugging messages to help track
25517           down the problem with document lengths shown up by previous
25518           change.
25520 Mon Apr 09 01:40:34 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25522         * tests/api_wrdb.cc: Add asserts to check that the value of
25523           get_doclength() on the database and on the posting list are
25524           correct.  Currently fails with the value from the posting list
25525           for the document which has been replaced (or sooner if assertions
25526           are turned on).
25528 Sun Apr 08 23:24:20 BST 2007  Olly Betts <olly@survex.com>
25530         * Makefile.am,configure.ac: `./configure --enable-quiet' allows you to
25531           specify at configure time to pass `--quiet' to libtool.  Now you can
25532           override this at make-time by using `make QUIET=' (to turn off
25533           `--quiet') or `make QUIET=y' (to turn on `--quiet').
25535 Sun Apr 08 23:23:50 BST 2007  Olly Betts <olly@survex.com>
25537         * HACKING: Mention AssertEqParanoid and AssertNeParanoid.
25539 Sun Apr 08 22:45:45 BST 2007  Olly Betts <olly@survex.com>
25541         * common/omassert.h: Add AssertEqParanoid and AssertNeParanoid macros.
25542         * backends/flint/flint_table.cc,backends/inmemory/inmemory_database.cc,
25543           backends/multi/multi_postlist.cc,backends/quartz/btree.cc: Use them.
25544         * backends/multi/multi_postlist.cc: Add extra assertions to
25545           MultiPostList::get_doclength().
25547 Sun Apr 08 22:16:11 BST 2007  Olly Betts <olly@survex.com>
25549         * configure.ac: Fix typos: `AC_CHECK_SSIZE_T' -> `AC_TYPE_SSIZE_T';
25550           `AC_CHECK_PID_T' -> `AC_TYPE_PID_T'.
25552 Sun Apr 08 22:04:54 BST 2007  Olly Betts <olly@survex.com>
25554         * HACKING: Snapshots and releases are now generated with autoconf 2.61.
25556 Sun Apr 08 21:42:03 BST 2007  Olly Betts <olly@survex.com>
25558         * configure.ac: Use AC_CHECK_SSIZE_T instead of our own test.  Add
25559           AC_CHECK_PID_T for any platforms which don't have `pid_t'.
25560         * net/tcpserver.cc: Use `pid_t' instead of `int'.
25561         * common/progclient.h,net/progclient.cc: Cleaner rewritten version of
25562           progclient.h.
25564 Sun Apr 08 19:59:43 BST 2007  Olly Betts <olly@survex.com>
25566         * backends/flint/flint_lock.cc: If kill() fails, don't bother calling
25567           waitpid().
25569 Sun Apr 08 19:41:11 BST 2007  Olly Betts <olly@survex.com>
25571         * net/remoteconnection.cc: Don't explicitly pass "0" for errno.
25573 Sun Apr 08 16:58:58 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25575         * queryparser/queryparser.lt: Fix warnings in debugging builds on
25576           gcc 4.1 due to comparison of signed and unsigned types.  Also,
25577           use the ParseTokenName function instead of explicitly doing a
25578           range check each time an entry is looked up in yyTokenName, and
25579           add a ParseRuleName function for looking up things in yyRuleName,
25580           and use it similarly.
25582 Sun Apr 08 15:55:42 BST 2007  Olly Betts <olly@survex.com>
25584         * configure.ac: Fix lingering references to enable_debug.
25586 Sun Apr 08 15:48:13 BST 2007  Olly Betts <olly@survex.com>
25588         * tests/api_anydb.cc,tests/api_wrdb.cc: Remove hacks to automatically
25589           SKIP tests which failed because of lack of support for some features
25590           by the remote backend.
25592 Sun Apr 08 15:14:11 BST 2007  Olly Betts <olly@survex.com>
25594         * queryparser/queryparser.lemony,queryparser/queryparser.lt: More
25595           tweaks.
25597 Sun Apr 08 15:04:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25599         * queryparser/queryparser.lt: Always include "omdebug.h", and put
25600           one of the pieces of debugging code in #ifdef
25601           XAPIAN_DEBUG_VERBOSE, to fix non-logging message builds.
25603 Sun Apr 08 14:23:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25605         * docs/remote_protocol.html: Update for protocol version 27 by
25606           adding documentation for MSG_POSTLIST and replies.  Also, fix a
25607           typo.
25609 Sun Apr 08 13:50:20 BST 2007  Olly Betts <olly@survex.com>
25611         * common/omdebug.h,queryparser/queryparser.lemony,
25612           queryparser/queryparser.lt: Hook the debug tracing in the lemon
25613           generated parser into Xapian's debug logging framework.
25615 Sun Apr 08 12:35:29 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25617         * backends/remote/,common/remote-database.h,common/remoteprotocol.h,
25618           common/remoteserver.h,net/remoteserver.cc: Implement postlists
25619           for the remote database.  Increases
25620           XAPIAN_REMOTE_PROTOCOL_VERSION to 27.
25622 Sun Apr 08 12:33:02 BST 2007  Olly Betts <olly@survex.com>
25624         * HACKING,INSTALL,configure.ac: Rename --enable-debug* - conflating the
25625           options to "turn on assertions" and "turn on logging" still confuses
25626           me to the extent I need to read the documentation every time I use
25627           them.  `--enable-debug[=partial]' become `--enable-assertions';
25628           `--enable-debug-verbose' becomes `--enable-log' and
25629           `--enable-debug=full' becomes `--enable-assertions --enable-log'.
25630           For now the old options give an error telling you the new
25631           equivalent.
25633 Sun Apr 08 10:45:40 BST 2007  Olly Betts <olly@survex.com>
25635         * configure.ac: Eliminate use_quiet - just use enable_quiet instead.
25637 Fri Apr 06 19:06:07 BST 2007  Olly Betts <olly@survex.com>
25639         * net/progclient.cc: Close stderr of the spawned backend program.
25641 Fri Apr 06 18:59:24 BST 2007  Olly Betts <olly@survex.com>
25643         * net/progclient.cc: msecs_timeout_ -> msecs_timeout.
25645 Fri Apr 06 18:12:36 BST 2007  Olly Betts <olly@survex.com>
25647         * net/remoteconnection.cc: Fix comment grammar.
25649 Fri Apr 06 18:10:31 BST 2007  Olly Betts <olly@survex.com>
25651         * net/remoteconnection.cc: Deal with the exceptional case first.
25653 Fri Apr 06 17:51:20 BST 2007  Olly Betts <olly@survex.com>
25655         * net/remoteconnection.cc: Use string::append(ptr, size) in preference
25656           to string::append(ptr, ptr + size).
25658 Fri Apr 06 11:45:39 BST 2007  Olly Betts <olly@survex.com>
25660         * api/omqueryinternal.cc,backends/flint/flint_database.cc,
25661           backends/flint/flint_database.h,backends/flint/flint_postlist.cc,
25662           backends/inmemory/inmemory_database.cc,
25663           backends/inmemory/inmemory_database.h,
25664           backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
25665           backends/quartz/quartz_postlist.cc,
25666           backends/remote/remote-database.cc,common/database.h,
25667           common/remote-database.h: Refactor to eliminate do_open_post_list
25668           and any unnecessary call to term_exists().
25670 Fri Apr 06 11:44:25 BST 2007  Olly Betts <olly@survex.com>
25672         * tests/api_wrdb.cc: Just use TEST on a boolean value rather than
25673           TEST_EQUAL against true/false.
25675 Fri Apr 06 08:53:46 BST 2007  Olly Betts <olly@survex.com>
25677         * net/remoteserver.cc: Remove "N" which we calculate but never use!
25679 Fri Apr 06 08:17:00 BST 2007  Olly Betts <olly@survex.com>
25681         * backends/flint/Makefile.mk,backends/flint/flint_check.cc,
25682           backends/flint/flint_check.h,bin/Makefile.mk,bin/xapian-check.cc:
25683           Fix xapian-check not to use libquartzcheck.la.
25685 Fri Apr 06 07:20:47 BST 2007  Olly Betts <olly@survex.com>
25687         * bin/Makefile.mk,bin/xapian-check.cc: Add new "xapian-check" program
25688           which performs consistency checks on a flint database.
25690 Fri Apr 06 06:25:36 BST 2007  Olly Betts <olly@survex.com>
25692         * bin/quartzcheck.cc: Test if this is a quartz database by looking at
25693           "meta" not "record_DB".  If "record_DB" is >= 2GB and we don't have
25694           a LFS aware stat function then stat can fail even though the file is
25695           there.  Also open the database explicitly as a Quartz database for
25696           extra robustness.
25698 Fri Apr 06 06:23:33 BST 2007  Olly Betts <olly@survex.com>
25700         * AUTHORS: Thank Daniel Ménard.
25702 Thu Apr 05 18:20:53 BST 2007  Olly Betts <olly@survex.com>
25704         * tests/harness/testsuite.cc: No need to explicitly initialise
25705           std::string to ""; not doing so results in a smaller object
25706           file.
25708 Thu Apr 05 18:20:12 BST 2007  Olly Betts <olly@survex.com>
25710         * common/remoteprotocol.h: Note other changes in protocol version 26.
25712 Thu Apr 05 17:34:10 BST 2007  Olly Betts <olly@survex.com>
25714         * tests/runtest.in: Pass "--leak-resolution=high" to valgrind to
25715           prevent unrelated leak reports related to STL classes from being
25716           combined.
25718 Thu Apr 05 17:26:39 BST 2007  Olly Betts <olly@survex.com>
25720         * tests/api_wrdb.cc: Remove stray line left over from debugging.
25722 Thu Apr 05 16:47:36 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25724         * tests/internaltest.cc: Fix test_serialiselength2: implementation
25725           was correct, but test was failing.  Needed special casing for n=0
25726           and 1, and was using arguments to string::append(size_type,
25727           charT) the wrong way round (stupid C++ API).  Also, make it check
25728           the return value of decode_length(), since we know what the
25729           answer ought to be.
25731 Thu Apr 05 14:26:30 BST 2007  Olly Betts <olly@survex.com>
25733         * api/omqueryinternal.cc,backends/remote/remote-database.cc,
25734           common/serialise.h,net/remoteserver.cc,net/serialise.cc,
25735           tests/internaltest.cc: Add a flag parameter to decode_length()
25736           to indicate if the decoded value indicates the length of a
25737           string in the protocol stream, and if it does, check it against
25738           p_end - p after the length has been decoded (fixes bug#117).
25740 Thu Apr 05 14:08:02 BST 2007  Olly Betts <olly@survex.com>
25742         * tests/api_wrdb.cc: In test uniqueterm1, check the document length
25743           after every delete or replace for better coverage.
25745 Thu Apr 05 12:41:04 BST 2007  Olly Betts <olly@survex.com>
25747         * net/serialise.cc: Encode deltas between docids (rather than the
25748           docids themselves) in the RSet serialisation which reduces the
25749           size of the encoding if a lot of large docids with small gaps
25750           between them are present.
25751         * backends/remote/remote-database.cc,net/remoteserver.cc: Encode
25752           deltas between termpositions in REPLY_POSITIONLIST, for similar
25753           reasons.  No need to encode the term length for
25754           MSG_DELETEDOCUMENTTERM as it's the last (indeed only) item, and more
25755           consistent not to.
25756         * common/remoteprotocol.h: Bump protocol version to 26.
25757         * docs/remote_protocol.html: Document the new messages
25758           MSG_DELETEDOCUMENTTERM and MSG_REPLACEDOCUMENTTERM.  Correct
25759           reference to REPLY_DOCUMENT to REPLY_DOCDATA.  Fix documentation for
25760           MSG_QUERY to include the serialised Weight and RSet objects.  Fix
25761           "copy and paste" error in the description of Flush (should of course
25762           be MSG_FLUSH not MSG_CANCEL).  Update for changes above.
25764 Thu Apr 05 12:18:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25766         * backends/database.cc: Keep a RefCntPtr to the LeafPostList used
25767           in implementations of delete_document and replace_document with a
25768           unique term, so that the postlist isn't leaked.
25770 Thu Apr 05 11:56:57 BST 2007  Olly Betts <olly@survex.com>
25772         * backends/database.cc: Database::Internal can't call the
25773           PostingIterator(PostingIterator::Internal*) ctor (at least under
25774           g++ 3.3.5) because it isn't a friend (only class Database is).
25775           Can't seem to forward define Database::Internal to make
25776           Database::Internal a friend so just use LeafPostList directly
25777           as that seems less bad than pulling in the whole of database.h
25778           or making PostingIterator::internal public.
25780 Thu Apr 05 08:27:26 BST 2007  Olly Betts <olly@survex.com>
25782         * HACKING: Need to run svn-tag-release on ixion.
25784 Thu Apr 05 01:50:10 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25786         * backends/remote/remote-database.cc,common/remote-database.h,
25787           common/remoteprotocol.h,common/remoteserver.h,net/remoteserver.cc:
25788           Implement unique term variants of delete and replace document for
25789           the remote database.  Involves adding two new message types to the
25790           protocol (and therefore bumping the protocol version to 25), and
25791           overriding the standard implementations of delete_document(term)
25792           and replace_document(term) in RemoteDatabase.
25793         * tests/api_wrdb.cc: Correct text in SKIP_TEST() message.
25795 Thu Apr 05 01:04:19 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25797         * api/omdatabase.cc,backends/database.cc,common/database.h: Move
25798           implementation of delete_document and replace_document with a
25799           unique_term from WritableDatabase to Xapian::Database::Internal.
25800           This will allow it to be overridden for databases which need a
25801           special implementation (such as the remote database).
25803 Tue Apr 03 14:30:45 BST 2007  Olly Betts <olly@survex.com>
25805         * common/remote-database.h: Remove unused and undefined method
25806           RemoteDatabase::get_spawned_socket().
25808 Tue Apr 03 09:18:51 BST 2007  Olly Betts <olly@survex.com>
25810         * tests/harness/backendmanager.cc: Under __WIN32__, launch
25811           xapian-tcpsrv as a child process communicating via a pipe and handle
25812           the port being already in use by trying the next port up (as we do
25813           under UNIX).
25815 Tue Apr 03 06:50:48 BST 2007  Olly Betts <olly@survex.com>
25817         * net/tcpserver.cc: For __WIN32__ and __CYGWIN__, use
25818           SO_EXCLUSIVEADDRUSE (if available) on on listening sockets for
25819           xapian-tcpsrv.
25821 Tue Apr 03 04:37:02 BST 2007  Olly Betts <olly@survex.com>
25823         * include/xapian/positioniterator.h,include/xapian/postingiterator.h:
25824           Fix mangled comment start in (C) headers.
25826 Tue Apr 03 03:27:12 BST 2007  Olly Betts <olly@survex.com>
25828         * include/xapian/,generate-exceptions.in: Mark the following
25829           constructors 'explicit': DocIDWrapper(docid), TermPosWrapper(const
25830           std::string &), Query::Internal(const std::string &), Database(const
25831           std::string &), all Error subclass constructors taking const
25832           std::string &.  Only the Database and Error subclass changes should
25833           be able to affect user code at all.
25834         * include/xapian/,api/omenquire.cc: Make the following methods
25835           'const': RSet::contains(MSetIterator), Enquire::get_query().  This
25836           shouldn't affect the validity of any user code.
25838 Mon Apr 02 11:44:26 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25840         * HACKING: Add note on "Building from SVN on Windows with MSVC"
25842 Mon Apr 02 11:32:51 BST 2007  Olly Betts <olly@survex.com>
25844         * api/omqueryinternal.cc: Fix assertion to allow for OP_VALUE_RANGE.
25846 Mon Apr 02 11:14:10 BST 2007  Olly Betts <olly@survex.com>
25848         * autoconf/rjb_find_stlport.m4: Fix check that the user didn't say
25849           `./configure --with-stlport-compiler' (without `=gcc' or similar
25850           after it).
25852 Mon Apr 02 10:38:35 BST 2007  Olly Betts <olly@survex.com>
25854         * tests/api_db.cc,tests/apitest.cc: Under __WIN32__ disable tests
25855           which require the prog variant of the remote backend.
25857 Mon Apr 02 09:44:13 BST 2007  Olly Betts <olly@survex.com>
25859         * net/tcpserver.cc: Don't use SO_REUSEADDR under __CYGWIN__ or
25860           __WIN32__ as it has incorrect semantics.
25862 Mon Apr 02 09:37:14 BST 2007  Olly Betts <olly@survex.com>
25864         * tests/harness/backendmanager.cc: Pull `1239' out as `DEFAULT_PORT'.
25865           On Windows, cycle through 10 ports starting at DEFAULT_PORT so that
25866           we can have multiple databases open at once.  Add a monotonic count
25867           to the name of the log file created from the output of each
25868           xapian-tcpsrv to avoid failures because the log file is already
25869           open.
25871 Mon Apr 02 07:41:57 BST 2007  Olly Betts <olly@survex.com>
25873         * tests/api_anydb.cc: Avoid having the same database open twice at
25874           once.  Xapian itself copes, but the BackendManager class in the test
25875           harness struggles in the remotetcp case under mingw.
25877 Mon Apr 02 07:14:13 BST 2007  Olly Betts <olly@survex.com>
25879         * include/xapian/enquire.h: Make Enquire constructor explicit since
25880           it can take a single parameter (of type Database).
25882 Mon Apr 02 02:32:23 BST 2007  Olly Betts <olly@survex.com>
25884         * net/tcpserver.cc: Add "#error" if neither HAVE_FORK nor __WIN32__
25885           is defined (otherwise we'd failed with a rather obscure link error
25886           much later!)
25888 Mon Apr 02 01:54:20 BST 2007  Olly Betts <olly@survex.com>
25890         * matcher/multimatch.cc: Remove unused variable left over from
25891           recent change.
25893 Mon Apr 02 01:22:56 BST 2007  Olly Betts <olly@survex.com>
25895         * net/tcpserver.cc: Actually remove SOCKOPT_OPTIONS_TYPE.
25897 Mon Apr 02 01:16:03 BST 2007  Olly Betts <olly@survex.com>
25899         * net/tcpclient.cc,net/tcpserver.cc: Pass the 4th parameter of
25900           setsockopt() as char* which works whether the function actually
25901           takes char* or void* (since C++ allows implicit conversion from
25902           char* to void*).  Only call socket_errno() after gethostbyname()
25903           under __WIN32__ - on UNIX the error code is in h_errno (with
25904           incompatible values to errno) and we don't want to confuse things by
25905           reporting some random value of errno.
25907 Mon Apr 02 00:44:56 BST 2007  Olly Betts <olly@survex.com>
25909         * tests/harness/backendmanager.cc: Factor out localhost address into
25910           LOCALHOST.  Use new xapian-tcpsrv --interface option to only listen
25911           for connections on localhost.  Run xapian-tcpsrv with "start /B" on
25912           MS Windows (this stops the "flickbook of console windows" effect).
25914 Mon Apr 02 00:41:31 BST 2007  Olly Betts <olly@survex.com>
25916         * common/Makefile.mk,common/safesyssocket.h: Oops, I checked
25917           in safesysselect.h as safesyssocket.h!
25919 Mon Apr 02 00:30:54 BST 2007  Olly Betts <olly@survex.com>
25921         * include/xapian/queryparser.h: Fix SimpleStopper::add to take
25922           `const std::string &' not `const std::string'.
25924 Mon Apr 02 00:20:45 BST 2007  Olly Betts <olly@survex.com>
25926         * bin/xapian-tcpsrv.cc,net/tcpserver.cc: Add "--interface" option to
25927           allow the hostname or address of the interface to listen on to be
25928           specified (default is the previous behaviour of listening on all
25929           interfaces).
25930         * net/remoteconnection.cc,net/tcpclient.cc,common/safesysselect.h:
25931           Factor out portability code for sys/select.h.
25932         * common/Makefile.mk: Ship common/safesysselect.h.
25933         * net/tcpserver.cc: Rename parameter of run_thread from "_param" to
25934           "param_" (identifiers with leading underscores are reserved for the
25935           compiler).
25936         * common/tcpclient.h,net/tcpclient.cc,common/tcpserver.h: Rewrite
25937           headers with comments which are actually accurate and up-to-date!
25938           TcpClient ctor is small so put inline in the header.  Pass
25939           std::string by const reference.
25940         * common/tcpclient.h,common/tcpserver.h: TcpClient and TcpServer
25941           classes now inherit from WinsockInitializer under __WIN32__ (as
25942           a mixin class) instead of having a member of type WinsockInitializer
25943           (the member is initialised too late, at least under mingw).
25945 Sun Apr 01 19:14:11 BST 2007  Olly Betts <olly@survex.com>
25947         * common/omdebug.cc: Fix retrying of write to retry the part of
25948           the string not already written!
25950 Sun Apr 01 18:37:15 BST 2007  Olly Betts <olly@survex.com>
25952         * common/remoteconnection.h: Note in comments about use as a "mixin"
25953           class.
25955 Sun Apr 01 17:42:19 BST 2007  Olly Betts <olly@survex.com>
25957         * tests,examples,bin: Add .exe versions of built executables to
25958           svn:ignore.
25960 Sun Apr 01 16:28:26 BST 2007  Olly Betts <olly@survex.com>
25962         * common/omdebug.cc: Remove unused '#include <stdio.h>' - we switched
25963           to using unbuffered I/O for logging long ago!
25965 Sun Apr 01 15:21:04 BST 2007  Olly Betts <olly@survex.com>
25967         * common/safewinsock2.h: No, don't typedef socklen_t here - we use
25968           SOCKLEN_T everywhere and have `#define SOCKLEN_T int' in
25969           config.h.win32.
25971 Sun Apr 01 13:32:21 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25973         * common/omdebug.cc: Include necessary headers to get O_CREAT and
25974           friends defined (according to documentation in linux manpage),
25975           to fix compile error.  Also, don't ignore the return value of
25976           write() to fix compile warning (and to ensure that the whole
25977           output gets written if possible).
25979 Sun Apr 01 13:19:52 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25981         * queryparser/queryparser.cc: Fix Assert() on a RefCountPtr to
25982           check the value of the pointer, to fix compile with asserts
25983           turned on.
25985 Sun Apr 01 12:57:06 BST 2007  Richard Boulton <richard@lemurconsulting.com>
25987         * common/safewinsock2.h: Define socklen_t under MS compiler (since
25988           Olly reported build success with mingw, presumably it's not
25989           needed there).
25991 Sun Apr 01 06:42:14 BST 2007  Olly Betts <olly@survex.com>
25993         * languages/Makefile.mk: $(snowball_algorithms:.sbl=.cc) is portable
25994           according to the automake list so use that so we only need to list
25995           the .sbl sources.
25997 Sun Apr 01 05:53:29 BST 2007  Olly Betts <olly@survex.com>
25999         * common/tcpserver.h,net/tcpserver.cc: TcpServer's port member
26000           variable is set but never used so remove it.
26002 Sun Apr 01 03:27:30 BST 2007  Olly Betts <olly@survex.com>
26004         * bin/Makefile.mk,examples/Makefile.mk: Add $(EXEEXT) to dependency on
26005           binaries in man page generation rules so they work on Windows.
26007 Sat Mar 31 22:17:55 BST 2007  Olly Betts <olly@survex.com>
26009         * common/multimatch.h,matcher/multimatch.cc: When using a MatchDecider
26010           with remote database(s), don't rerun the MatchDecider on documents
26011           which a remote server has already checked.
26013 Sat Mar 31 10:44:26 BST 2007  Olly Betts <olly@survex.com>
26015         * tests/harness/backendmanager.cc: Sort out path to xapian-tcpsrv
26016           under mingw.  If neither HAVE_FORK nor __WIN32__ is defined,
26017           make compilation fail with a suitable #error.
26019 Sat Mar 31 10:17:06 BST 2007  Olly Betts <olly@survex.com>
26021         * api/Makefile,backends/Makefile,backends/flint/Makefile,
26022           backends/inmemory/Makefile,backends/multi/Makefile,
26023           backends/quartz/Makefile,backends/remote/Makefile,bin/Makefile,
26024           common/Makefile,examples/Makefile,getopt/Makefile,include/Makefile,
26025           languages/Makefile,matcher/Makefile,net/Makefile,
26026           queryparser/Makefile,tests/harness/Makefile: Don't pass $(MAKEFLAGS)
26027           on the command line to $(MAKE) when invoking the top level Makefile
26028           from a static Makefile.  It's passed automatically anyway, and also
26029           $(MAKEFLAGS) doesn't have a leading '-' so "make -s" tries to do
26030           "make s" at the top level.
26032 Sat Mar 31 09:28:06 BST 2007  Olly Betts <olly@survex.com>
26034         * tests/api_nodb.cc: Fix end of loop handling.
26036 Sat Mar 31 09:03:26 BST 2007  Olly Betts <olly@survex.com>
26038         * tests/api_nodb.cc: Fix to compile.
26040 Sat Mar 31 07:53:25 BST 2007  Olly Betts <olly@survex.com>
26042         * common/safewindows.h,common/safewinsock2.h: safewindows.h is
26043           included by a lot of files so we want to keep it lightweight
26044           so split winsock2.h related stuff into safewinsock2.h.
26045         * common/remoteconnection.h: Move WinsockInitializer here.
26046         * common/safeerrno.h: #include "safewinsock2.h" not <winsock2.h>.
26048 Sat Mar 31 07:19:06 BST 2007  Olly Betts <olly@survex.com>
26050         * common/remoteserver.h: Stop trying to include "remoteserver.h"
26051           because that's the SAME HEADER!
26053 Sat Mar 31 07:16:23 BST 2007  Olly Betts <olly@survex.com>
26055         * common/tcpclient.h,common/tcpserver.h: Fix comments - the class is
26056           called WinsockInitializer not WinsockInitialiser.
26058 Sat Mar 31 06:54:22 BST 2007  Olly Betts <olly@survex.com>
26060         * net/progclient.cc: Don't compile any code from this file if
26061           __WIN32__ is defined (for mingw).
26063 Sat Mar 31 06:52:27 BST 2007  Olly Betts <olly@survex.com>
26065         * tests/api_nodb.cc: Simplify code in test_stemlangs1().
26067 Sat Mar 31 06:22:26 BST 2007  Olly Betts <olly@survex.com>
26069         * net/remoteconnection.cc: Use const_cast to avoid GCC warning
26070           about casting away const.  Use string::data() rather than
26071           string::c_str() since we don't need a terminating zero byte.
26073 Sat Mar 31 06:20:07 BST 2007  Olly Betts <olly@survex.com>
26075         * backends/dbfactory_remote.cc: Suppress "unused parameter" warnings.
26077 Sat Mar 31 06:17:35 BST 2007  Olly Betts <olly@survex.com>
26079         * net/tcpserver.cc: Make global variable and function used only in
26080           this file static.  Don't call delete on a void* (that's undefined
26081           behaviour) - delete the cast version of the pointer instead.
26083 Sat Mar 31 06:17:20 BST 2007  Olly Betts <olly@survex.com>
26085         * AUTHORS: Add a number of bug reporters I missed before.
26087 Sat Mar 31 04:49:27 BST 2007  Olly Betts <olly@survex.com>
26089         * configure.ac: Clean up handling of --enable-backend-* options.  Let
26090           mingw try to build the remote backend.
26092 Sat Mar 31 03:47:49 BST 2007  Olly Betts <olly@survex.com>
26094         * tests/internaltest.cc: Don't compile test_serialisequery1
26095           if the remote backend is disabled to avoid an "unused
26096           function" warning (we were already disabling the use of
26097           it).
26099 Fri Mar 30 22:43:27 BST 2007  Olly Betts <olly@survex.com>
26101         * HACKING: Correct several inaccuracies: --enable-debug and
26102           --enable-debug=partial don't cause the build system to compile in
26103           debugging symbols (configure defaults to adding "-g" for GCC, while
26104           for other compilers you must enable them by hand).  Also,
26105           --enable-debug doesn't "produce warnings", but causes
26106           Xapian::AssertionError to be thrown.  Add explanation for why
26107           --enable-debug=partial" exists.  CC_FOR_BUILD is now needed for
26108           snowball as well as lemon.
26110 Fri Mar 30 19:53:05 BST 2007  Olly Betts <olly@survex.com>
26112         * common/utils.cc: Avoid GCC warning on format string "%I64d".
26114 Fri Mar 30 16:48:46 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26116         * common/tcpserver.h,net/tcpserver.cc: Patch from Mark Hammond:
26117           implement for windows.
26119 Fri Mar 30 16:21:03 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26121         * common/tcpclient.h,net/tcpclient.cc: Patch from Mark Hammond:
26122           implement for windows.
26124 Fri Mar 30 15:52:57 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26126         * tests/harness/backendmanager.cc: Patch from Mark Hammond:
26127           implement launcher for tcpserver, so that remotetcp tests can run
26128           on windows.
26130 Fri Mar 30 15:42:49 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26132         * common/safewindows.h: Include xapian/error.h so
26133           WinsockInitialiser can throw an exception.
26135 Fri Mar 30 14:59:40 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26137         * More code from Mark Hammond's patch
26138         * common/remoteconnection.h: Add explicit destructor and (for
26139           windows compiles) a declare a helper method to calculate the
26140           number of milliseconds until a timeout.
26141         * net/remoteconnection.cc: Implement windows versions for functions
26142           which need it: constructor and destructor now do create and close
26143           the overlapped IO stuff, read_at_least() and send_message() have
26144           windows specific implementations.
26146 Fri Mar 30 13:05:27 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26148         * More code adapted from Mark Hammond's patch
26149         * common/safewindows.h: When remote databases are compiled in,
26150           include the winsock stuff, and define some useful bits and pieces
26151           for using it.
26152         * common/remoteconnection.h: Add a member to RemoteConnection on
26153           windows to hold an overlapped IO structure.
26154         * net/progclient.cc: Don't include winsock stuff directly (it's now
26155           brought in by "safewindows.h"), and don't include <sys/wait.h> on
26156           windows.
26157         * net/remoteserver.cc: Ignore more SIGPIPE stuff on windows.
26159 Fri Mar 30 12:37:15 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26161         * Patch from Mark Hammond
26162         * backends/dbfactory_remote.cc: Ignore code to handle SIGPIPE on
26163           windows, where it doesn't exist.
26164         * backends/remote/remote-database.cc: Raise UnimplementedError on
26165           windows if a progclient backend is requested.
26167 Fri Mar 30 12:11:50 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26169         * tests/harness/testsuite.cc: Fix srcdir guessing on windows -
26170           search for windows style directory separators, and remove .exe
26171           suffix from executable name.  Adapted from Mark Hammond's patch.
26173 Thu Mar 29 18:32:18 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26175         * Changes related to Mark Hammond's patch:
26176         * common/safeerrno.h: Define a new inline function "socket_errno()"
26177           which returns an error number relating to the last error caused
26178           by a socket function on platforms which make such a distinction,
26179           and the value of errno on other platforms.
26180         * net/tcpclient.cc,net/tcpserver.cc: Use the socket_errno()
26181           function instead of checking the value of errno.  Also, check for
26182           WSAEWOULDBLOCK instead of EINPROGRESS on windows.
26184 Thu Mar 29 15:36:45 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26186         * bin/xapian-tcpsrv.cc,tests/harness/testsuite.cc: First of many
26187           parts of a large patch from Mark Hammond working towards enabling
26188           remote databases on windows.  When displaying errors which might
26189           be socket errors, display the error number as well as the output
26190           of strerror - on windows, strerror doesn't display useful
26191           information for socket errors.
26192         * AUTHORS: Add Mark Hammond
26194 Thu Mar 29 06:07:35 BST 2007  Olly Betts <olly@survex.com>
26196         * api/omqueryinternal.cc: Unserialisation shouldn't reject a
26197           serialised query which ends after a termname.
26198         * tests/internaltest.cc: Add regression test.
26200 Wed Mar 28 17:17:42 BST 2007  Olly Betts <olly@survex.com>
26202         * tests/queryparsertest.cc: Add feature tests for "prefer_mdy" and
26203           "epoch" arguments of DateValueRangeProcessor.
26205 Wed Mar 28 04:52:34 BST 2007  Olly Betts <olly@survex.com>
26207         * tests/queryparsertest.cc: Add more test cases for parsing of value
26208           ranges.
26210 Wed Mar 28 04:18:14 BST 2007  Olly Betts <olly@survex.com>
26212         * languages/compiler/generator.c,languages/compiler/header.h,
26213           languages/steminternal.cc,languages/steminternal.h: For among with
26214           functions (only used by finnish and lovins stemmers currently),
26215           change to generating an array of unsigned byte offsets into an array
26216           of function pointers rather than just an array of function pointers
26217           - this generally requires a lot less space.
26219 Wed Mar 28 03:28:37 BST 2007  Olly Betts <olly@survex.com>
26221         * queryparser/queryparser.lemony: Fix parsing of `hello a..b'.
26222         * tests/queryparsertest.cc: Add regression test for above.  Refactor
26223           qp_value_range1 to use a table of queries.
26225 Wed Mar 28 00:35:50 BST 2007  Olly Betts <olly@survex.com>
26227         * languages: Update svn:ignore for recent romanian changes.
26229 Wed Mar 28 00:08:11 BST 2007  Olly Betts <olly@survex.com>
26231         * api/valuerangeproc.cc: Need #include <stdio.h> for snprintf or
26232           sprintf.
26234 Tue Mar 27 23:53:18 BST 2007  Olly Betts <olly@survex.com>
26236         * queryparser/queryparser.lemony: Fix infinite loop in value range
26237           processing.  Fix value range to work as a filter when used with a
26238           probabilistic query.
26239         * tests/queryparsertest.cc: Add regression tests for the above two
26240           issues.  Refactor qp_value_range2 to use a table of queries.
26242 Tue Mar 27 22:09:57 BST 2007  Olly Betts <olly@survex.com>
26244         * api/valuerangeproc.cc: Assume that the start date is before the
26245           end date to help decide ambiguous cases.
26247 Tue Mar 27 21:49:15 BST 2007  Olly Betts <olly@survex.com>
26249         * api/valuerangeproc.cc: Refactor to simplify and reduce duplication.
26251 Tue Mar 27 21:41:38 BST 2007  Olly Betts <olly@survex.com>
26253         * configure.ac: datarootdir is new in 2.60 too, so use datadir when
26254           setting docdir for 2.59.
26256 Tue Mar 27 18:39:11 BST 2007  Olly Betts <olly@survex.com>
26258         * api/Makefile.mk,api/valuerangeproc.cc,include/xapian/queryparser.h:
26259           Move NumberValueRangeProcessor::operator()() out of the header as
26260           it's too complex for sane inlining.  Implement handling of dmy and
26261           mdy dates and epochs for 2 digit years.
26262         * tests/queryparsertest.cc: Add tests.
26264 Tue Mar 27 11:57:53 BST 2007  Richard Boulton <richard@lemurconsulting.com>
26266         * languages/romanian.sbl: Add Martin Porter's new romanian stemming
26267           algorithm.
26268         * languages/romanian1.sbl,languages/romanian2.sbl: Remove old
26269           romanian stemming algorithms.
26270         * languages/Makefile.mk: Replace romanian1 and romanian2 by
26271           romanian.
26272         * languages/stem.cc: Use romanian stemmer when asked for "ro" or
26273           "romanian".  No longer give a stemmer for "romanian1" or
26274           "romanian2".
26276 Tue Mar 27 04:50:36 BST 2007  Olly Betts <olly@survex.com>
26278         * languages/german2.sbl: Copy over "hop 3" in utf-8 case from
26279           snowball's latest version.
26281 Tue Mar 27 04:44:52 BST 2007  Olly Betts <olly@survex.com>
26283         * tests/stemtest.cc: Remove lower casing of dictionary words before
26284           stemming - instead we'll make sure the dictionary is already the
26285           right case.
26287 Tue Mar 27 04:28:10 BST 2007  Olly Betts <olly@survex.com>
26289         * languages/compiler/analyser.c,languages/compiler/generator.c,
26290           languages/compiler/header.h,languages/steminternal.cc,
26291           languages/steminternal.h: Add handling of among with functions.
26292           We use a "shim" functions for each method we want to call in
26293           this way.  The shim function is passed the "this" pointer and
26294           calls a particular method on this.  Split the functions into
26295           an optional separate array, since they're not used by most of
26296           the stemming algorithms.
26297         * languages/Makefile.mk,languages/stem.cc: Enable the finnish
26298           and lovins stemmers.
26300 Tue Mar 27 04:24:37 BST 2007  Olly Betts <olly@survex.com>
26302         * languages/steminternal.cc: Fix typo bug in slice_to - if we needed
26303           to increase the capacity of a snowball string variable, we trashed
26304           the variable with p (bug discovered while trying to enable the
26305           finnish stemmer).
26307 Tue Mar 27 02:55:51 BST 2007  Olly Betts <olly@survex.com>
26309         * include/xapian/queryparser.h: Implement handling of ISO format dates
26310           in DateValueRangeProcessor.
26311         * tests/queryparsertest.cc: Add feature tests.
26313 Tue Mar 27 01:47:36 BST 2007  Olly Betts <olly@survex.com>
26315         * include/xapian/queryparser.h: Implement prefix and suffix handling
26316           for NumberValueRangeProcessor.
26317         * tests/queryparsertest.cc: Add feature tests.
26319 Mon Mar 26 22:26:48 BST 2007  Olly Betts <olly@survex.com>
26321         * queryparser/utf8itor.h: Add is_currency() predicate function.
26322         * queryparser/queryparser.lemony: Rejig parsing of RANGE_START to
26323           allow all characters which are likely to be required.
26324         * tests/queryparsertest.cc: Test RANGE_START can contain "/".
26325         * queryparser/queryparser.lemony: Set "syntax=yacc" for vim, which
26326           give fairly decent syntax highlighting.
26328 Mon Mar 26 15:43:50 BST 2007  Olly Betts <olly@survex.com>
26330         * configure.ac: Use m4 comments not shell (dnl not #).
26332 Mon Mar 26 15:41:41 BST 2007  Olly Betts <olly@survex.com>
26334         * configure.ac: Add code to ensure that docdir is set for autoconf
26335           2.59 (starting from 2.60, it is defined as standard).
26336         * docs/Makefile.am: Use docdir for installing docs.
26338 Sun Mar 25 15:41:16 BST 2007  Olly Betts <olly@survex.com>
26340         * bin/xapian-compact.cc: Prune unused docids off the start of each
26341           source database's range of docid.
26343 Sat Mar 24 23:07:42 GMT 2007  Olly Betts <olly@survex.com>
26345         * include/xapian/base.h: Add a note explaining why it's OK that
26346           RefCntBase doesn't have a virtual destructor.
26348 Sat Mar 24 01:30:17 GMT 2007  Olly Betts <olly@survex.com>
26350         * HACKING,configure.ac: Bump the automake required version to 1.9.5.
26351           It was in Debian sarge, so any modern Linux distro should include
26352           packages, and we've actually been bootstrapping with 1.9.6 for ages.
26354 Thu Mar 22 00:53:35 GMT 2007  Olly Betts <olly@survex.com>
26356         * configure.ac: Disable probes for f77 more completely by preventing
26357           the probe code from even appearing in configure.  Similarly
26358           eliminate the code for gcj and rc probes - in total these changes
26359           reduce the size of configure by 209KB (~25%).
26361 Fri Mar 09 14:28:01 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26363         * Makefile.am: Add include/xapian/error.h to list of headers to
26364           install.
26366 Thu Mar 08 17:16:08 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26368         * generate-exceptions.in,exception_data.pm: Split definitions of
26369           the exception hierarchy into a separate file, so it can be reused
26370           elsewhere.
26371         * Makefile.am: Add exception_data.pm as a dependency for generating
26372           error.h, and add it to EXTRA_DIST.
26374 Fri Mar 09 06:42:40 GMT 2007  Olly Betts <olly@survex.com>
26376         * backends/flint/flint_cursor.cc,backends/flint/flint_cursor.h: We
26377           always ignore the return value from FlintCursor::get_key() because
26378           we only call it when it shouldn't fail, so restructure the code so
26379           it can't fail and change the return value to void.
26381 Fri Mar 09 06:33:09 GMT 2007  Olly Betts <olly@survex.com>
26383         * configure.ac: Suppress another aCC warning.
26385 Thu Mar 08 20:39:46 GMT 2007  Olly Betts <olly@survex.com>
26387         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Allow
26388           arbitrary characters in a range end (anything except whitespace
26389           and ')').
26391 Thu Mar 08 19:46:46 GMT 2007  Olly Betts <olly@survex.com>
26393         * Makefile.am,languages/Makefile.mk: Depend on the autoconf
26394           substituted version of a script, not the template version.  The
26395           only thing we substitute is @PERL@, but configure won't update
26396           a substituted file which hasn't changed so it's better to put
26397           the dependency on the script itself where it belongs.
26399 Thu Mar 08 17:09:21 GMT 2007  Olly Betts <olly@survex.com>
26401         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Keep any
26402           non-whitespace, non-term prefix for a term in case it turns out
26403           to be the start of a range, so "$50..100" works.
26405 Thu Mar 08 16:21:14 GMT 2007  Olly Betts <olly@survex.com>
26407         * HACKING: Add my "create docs/GNUmakefile" trick to avoid doxygen
26408           delays.
26410 Thu Mar 08 16:13:39 GMT 2007  Olly Betts <olly@survex.com>
26412         * HACKING: A few more coding guidelines.
26414 Thu Mar 08 14:26:21 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26416         * HACKING: Adjust wording to indicate that the build system is
26417           indended not to break after SVN updates.
26419 Thu Mar 08 07:34:22 GMT 2007  Olly Betts <olly@survex.com>
26421         * include/xapian/queryparser.h,tests/queryparsertest.cc: Add simple
26422           implementations of DateValueRangeProcessor and
26423           NumberValueRangeProcessor and add qp_value_range2 to check that
26424           chaining ValueRangeProcessor subclasses works as intended.
26426 Thu Mar 08 06:06:15 GMT 2007  Olly Betts <olly@survex.com>
26428         * docs/overview.html: Fix links to error classes in generated API
26429           documentation.
26431 Thu Mar 08 05:37:13 GMT 2007  Olly Betts <olly@survex.com>
26433         * include/xapian/queryparser.h,queryparser/queryparser.cc,
26434           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
26435           tests/queryparsertest.cc: Add the ability to parse "value ranges"
26436           to the QueryParser (e.g. "10..50") which translate into a Query
26437           with operator OP_VALUE_RANGE.
26439 Thu Mar 08 04:27:54 GMT 2007  Olly Betts <olly@survex.com>
26441         * include/xapian/queryparser.h,queryparser/queryparser.cc: Remove
26442           QueryParser::set_stemming_options() which has been deprecated
26443           since 0.9.0.
26445 Thu Mar 08 03:37:07 GMT 2007  Olly Betts <olly@survex.com>
26447         * backends/flint/flint_lock.cc: Handle write failing to send a single
26448           byte down down the pipe to tell the parent we've got the lock (a
26449           potential bug noticed by _FORTIFY_SOURCE!)  Handle read() failing
26450           with an unexpected error on the parent side by failing the lock
26451           attempt rather than risking an infinite loop.
26453 Thu Mar 08 02:52:26 GMT 2007  Olly Betts <olly@survex.com>
26455         * include/xapian/types.h: Rewritten, with more accurate documentation
26456           comments.  Add constant Xapian::BAD_VALUENO which is -1 cast to
26457           Xapian::valueno.
26458         * api/omenquire.cc,include/xapian/enquire.h,matcher/multimatch.cc: Use
26459           Xapian::BAD_VALUENO instead of Xapian::valueno(-1).
26461 Thu Mar 08 01:47:08 GMT 2007  Olly Betts <olly@survex.com>
26463         * docs/Makefile.am: Try putting apidoc/html in EXTRA_DIST instead of
26464           using dist-hook.
26466 Wed Mar 07 23:16:52 GMT 2007  Olly Betts <olly@survex.com>
26468         * docs/Makefile.am: Stop shipping docs/apidoc/latex/* in the
26469           xapian-core tarballs since it's just useless bloat.  Removing it
26470           more than halves the size of the tarball (55% reduction!)
26472 Wed Mar 07 22:07:31 GMT 2007  Olly Betts <olly@survex.com>
26474         * tests/runtest.in: If we aren't using valgrind, turn on
26475           MALLOC_CHECK_ and MALLOC_PERTURB_ for glibc.
26477 Wed Mar 07 20:02:31 GMT 2007  Olly Betts <olly@survex.com>
26479         * INSTALL: CVS -> SVN.
26481 Wed Mar 07 20:00:37 GMT 2007  Olly Betts <olly@survex.com>
26483         * configure.ac: Define _FORTIFY_SOURCE in config.h if GCC is in use
26484           and it's not already set.  That way the user can easily override.
26485         * INSTALL: Document this.
26487 Wed Mar 07 19:53:15 GMT 2007  Olly Betts <olly@survex.com>
26489         * INSTALL: Remove reference to muscat36 backend.
26491 Wed Mar 07 17:37:07 GMT 2007  Olly Betts <olly@survex.com>
26493         * configure.ac: Note GCC and glibc versions needed for _FORTIFY_SOURCE
26494           support.
26496 Wed Mar 07 16:29:02 GMT 2007  Olly Betts <olly@survex.com>
26498         * queryparser/lemon.c: Increase the length allowed for the filename
26499           in an error message, as it was being truncated which makes for a
26500           confusing error message and stops editors jumping to the line with
26501           the error in.
26503 Wed Mar 07 15:57:15 GMT 2007  Olly Betts <olly@survex.com>
26505         * common/Makefile.mk: Ship common/msvc_posix_wrapper.h and
26506           common/msvc_posix_wrapper.cc.
26508 Wed Mar 07 10:01:31 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26510         * configure.ac: Add -D_FORTIFY_SOURCE to AM_CXXFLAGS for GCC
26511           builds.  According to glibc CVS support for this was added in
26512           October 2004, but it doesn't seem to be documented very well,
26513           other than in features.h.  This adds some extra checking for
26514           array bounds, partially at compile time, but doesn't currently
26515           find any problems (or cause any noticeable slowdown).
26517 Wed Mar 07 04:49:01 GMT 2007  Olly Betts <olly@survex.com>
26519         * api/omqueryinternal.cc: Include str_parameter in swap() and the copy
26520           constructor.
26521         * tests/api_anydb.cc: get_mset(0, 20) not get_mset(1, 20)!  Also check
26522           that we didn't miss any documents which should match the filter, not
26523           just that we didn't get any documents which shouldn't.
26525 Wed Mar 07 03:07:49 GMT 2007  Olly Betts <olly@survex.com>
26527         * tests/harness/unixcmds.h: Fixed reverse sense include guard test.
26528         * tests/api_db.cc: Still need #include "utils.h".
26529         * tests/harness/backendmanager.cc: Update for rmdir.h -> unixcmds.h
26530           and rmdir() -> rm_rf().
26532 Wed Mar 07 02:22:30 GMT 2007  Olly Betts <olly@survex.com>
26534         * backends/quartz/btree.cc,backends/quartz/quartz_database.cc,
26535           backends/quartz/quartz_log.cc,common/utils.h,net/remoteconnection.cc,
26536           net/tcpclient.cc,tests/api_db.cc,tests/btreetest.cc,tests/harness/,
26537           tests/quartztest.cc: Rename rmdir() to rm_rf() since it does the
26538           same as "rm -rf" not "rmdir".  The "touch()" function is only used
26539           in the testsuite so move it from common/utils.h into
26540           tests/harness/rmdir.cc and rename rmdir.cc to unixcmds.cc.
26541           common/utils.h no longer include safefcntl.h, so add explicit
26542           includes to the files which were previous relying on utils.h pulling
26543           it in.
26545 Wed Mar 07 02:21:18 GMT 2007  Olly Betts <olly@survex.com>
26547         * xapian.spec.in: Include ChangeLog.examples.
26549 Wed Mar 07 02:17:59 GMT 2007  Olly Betts <olly@survex.com>
26551         * docs/index.html,docs/internals.html: Create a separate index page
26552           for the "internal" documentation.
26554 Tue Mar 06 23:47:58 GMT 2007  Olly Betts <olly@survex.com>
26556         * common/utils.cc,common/utils.h: Remove map_string_to_value() which
26557           is no longer used.
26558         * common/utils.h: Remove prototype for rmdir() which I failed to
26559           remove with the earlier commit.
26561 Tue Mar 06 22:51:51 GMT 2007  Olly Betts <olly@survex.com>
26563         * tests/harness/rmdir.cc: Fix rmdir() on Unix to not be O(n^2) in the
26564           worst case.
26566 Tue Mar 06 22:46:30 GMT 2007  Olly Betts <olly@survex.com>
26568         * docs/Makefile.am: Use the "inline test || echo" idiom to merge the
26569           VPATH and non-VPATH cases for distributing and installing the HTML
26570           apidocs.
26572 Tue Mar 06 22:13:03 GMT 2007  Olly Betts <olly@survex.com>
26574         * api/omqueryinternal.cc: Fix Query::get_description() on an
26575           OP_VALUE_RANGE query.
26577 Tue Mar 06 09:03:33 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26579         * HACKING: Note on running preautoreconf and autoreconf to keep SVN
26580           builds working.
26581         * PLATFORMS: Update with success reports for windows builds.
26583 Tue Mar 06 01:57:23 GMT 2007  Olly Betts <olly@survex.com>
26585         * tests/internaltest.cc: Comment out the "unsigned long long" testcase
26586           in tostring1 since the library doesn't currently have (or need) the
26587           utility function for that case.
26589 Tue Mar 06 01:49:55 GMT 2007  Olly Betts <olly@survex.com>
26591         * common/utils.cc,tests/btreetest.cc,tests/harness/,
26592           tests/quartztest.cc: rmdir() is only used in the test suite, and not
26593           in the library code, so move it into the testsuite.  Also, bow out
26594           early if the pathname passed is empty, and on Unix protect against
26595           filenames which start with "-".
26597 Mon Mar 05 02:52:49 GMT 2007  Olly Betts <olly@survex.com>
26599         * configure.ac: Suppress more unhelpful aCC warnings.
26601 Mon Mar 05 02:15:29 GMT 2007  Olly Betts <olly@survex.com>
26603         * tests/internaltest.cc: Add testcase autoptr1 which tests that an
26604           autoptr correctly handles self-assignment.
26606 Mon Mar 05 02:05:53 GMT 2007  Olly Betts <olly@survex.com>
26608         * tests/internaltest.cc: Rename "omtostring1" to "tostring1" (we don't
26609           want to perpetuate references to "om"!)  Add more test cases to this
26610           test.
26612 Mon Mar 05 01:18:17 GMT 2007  Olly Betts <olly@survex.com>
26614         * configure.ac: Update in line with 0.9.10.
26616 Sun Mar 04 23:58:29 GMT 2007  Olly Betts <olly@survex.com>
26618         * AUTHORS: Add reporters of bugs fixed in 0.9.10 to the "thanks" list.
26620 Sun Mar 04 00:44:17 GMT 2007  Olly Betts <olly@survex.com>
26622         * api/errorhandler.cc,include/xapian/errorhandler.h: Move virtual
26623           dtor for ErrorHandler out of the header.  Same reasons as previous
26624           commit.
26626 Sun Mar 04 00:40:44 GMT 2007  Olly Betts <olly@survex.com>
26628         * api/omenquire.cc,include/xapian/enquire.h,matcher/Makefile.mk,
26629           matcher/weight.cc: Move virtual method definitions out of headers
26630           for MatchDecider, ExpandDecider, Weight, BoolWeight.  This fixes
26631           warnings from aCC, and it's rare that the compiler would be able
26632           to inline a virtual method anyway.
26634 Sat Mar 03 21:40:43 GMT 2007  Olly Betts <olly@survex.com>
26636         * configure.ac: For HP's aCC, we no longer need to suppress warning
26637           #336 (empty translation unit) since dummy.cc is history.  But we
26638           do want to suppress a couple of frequently reported "remarks" which
26639           are unavoidable and don't indicate a problem.  Experimentally, add
26640           "+wlint" for "link-like" warnings.
26642 Sat Mar 03 21:38:52 GMT 2007  Olly Betts <olly@survex.com>
26644         * include/xapian.h,include/xapian/version_h.cc: Move function
26645           prototypes into a non-generated header.
26646         * configure.ac,msvc/version.h.in: Generate version.h suitable for use
26647           with MSVC.
26648         * Makefile.am: Distribute msvc/version.h.
26650 Sat Mar 03 19:49:11 GMT 2007  Olly Betts <olly@survex.com>
26652         * tests/harness/backendmanager.cc: Rework how we start and handle
26653           xapian-tcpsrv - it's now started by exec from a child process.
26654           This means that the mechanism to try higher port numbers works
26655           reliably, and we no longer leak file descriptors (which was causing
26656           tests to fail on some platforms).
26658 Sat Mar 03 19:46:03 GMT 2007  Olly Betts <olly@survex.com>
26660         * bin/xapian-tcpsrv.cc: Put "e.get_errno()" in a variable for clearer
26661           code.
26663 Sat Mar 03 16:01:17 GMT 2007  Olly Betts <olly@survex.com>
26665         * common/msvc_posix_wrapper.cc: Change `#include <fcntl.h>' to
26666           `#include "safefcntl.h"' (currently makes no difference on
26667           Windows, but it's more consistent to always use the safeXXX
26668           headers).
26669         * common/msvc_posix_wrapper.cc: Merge two ECHILD cases.
26670         * common/msvc_posix_wrapper.cc: Make sure dwCreationDisposition
26671           is initialised even if flags has a bogus value.
26672         * common/msvc_posix_wrapper.cc: Be consistent and always use O_CREAT,
26673           etc, instead of sometimes using the MS alternative forms _O_CREAT,
26674           etc.
26676 Sat Mar 03 03:25:05 GMT 2007  Olly Betts <olly@survex.com>
26678         * generate-exceptions.in: The GCC visibility docs aren't clear whether
26679           you need to make *thrown* exception types visible, or also *caught*
26680           exception types.  But I've just been having odd problems catching
26681           Xapian::DocNotFoundError with "const Xapian::Error &", so let's mark
26682           the exception virtual baseclass Xapian::Error as visible too.
26684 Fri Mar 02 22:34:04 GMT 2007  Olly Betts <olly@survex.com>
26686         * languages/Makefile.mk,languages/generate-allsnowballheaders.in:
26687           Convert unreadable make rule for generating allsnowballheaders.h
26688           to a perl script.
26689         * configure.ac: Substitute languages/allsnowballheaders.
26691 Fri Mar 02 14:31:11 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26693         * tests/internaltest.cc: Add a test for om_tostring(), mainly
26694           aimed at 64 bit types on windows platforms.  Mingw builds report
26695           a warning in this code, which merits further investigation - see
26696           Bug #112 for details.
26698 Fri Mar 02 14:15:44 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26700         * common/msvc_posix_wrapper.cc: Improve accuracy of emulation of
26701           posix open, and fix a bug which caused it to misinterpret the
26702           "flags" argument - files were always being opened for writing:
26703           O_RDONLY is 0, so the old test (flags & O_RDONLY) always
26704           failed.
26706 Fri Mar 02 12:44:33 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26708         * common/msvc_posix_wrapper.cc: Fix whitespace issues.
26710 Fri Mar 02 12:18:42 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26712         * HACKING: Add note about how to generate ChangeLog timestamps
26713           using the unix date command - and I've started generating them in
26714           the same format as Olly is. (I hope.)
26716 Fri Mar  2 11:49:11 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26718         * common/msvc_posix_wrapper.h,common/safeerrno.h,
26719           common/msvc_posix_wrapper.cc,backends/quartz/btree.cc,
26720           backends/flint/flint_table.cc,backends/flint/flint_btreebase.cc:
26721           Move MSVC specific code for opening files into
26722           msvc_posix_wrapper.cc, and just leave a few conditional includes
26723           and function calls elsewhere.
26725 Thu Mar 01 22:51:42 GMT 2007  Olly Betts <olly@survex.com>
26727         * queryparser/queryparser.lemony: Add casts to U_isupper(), etc to
26728           suppress warnings from aCC.
26729         * queryparser/queryparser.lemony: Use U_isdigit() instead of
26730           C_isdigit(), etc - the truncation to a char can cause false
26731           positives.
26732         * tests/queryparsertest.cc: Add a (rather contrived) regression test
26733           for the above change.
26735 Thu Mar 01 21:49:37 GMT 2007  Olly Betts <olly@survex.com>
26737         * queryparser/utf8itor.h: Add cast to suppress warning from aCC.
26739 Thu Mar  1 15:27:09 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26741         * common/utils.c,common/utils.h: For windows, add an om_tostring()
26742           function for 64 bit integers: time() and GetProcessId() return
26743           these, and without this, backends/quartz/quartz_log.cc reports
26744           an error.
26746 Thu Mar  1 13:48:46 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26748         * queryparser/queryparser.lemony: Fix handling of hated wildcards
26749           which don't expand to any terms.
26751 Thu Mar  1 13:45:04 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26753         * tests/queryparsertest.cc: Fix last two test cases for hated
26754           wildcards to check for exactly what should be returned.
26756 Thu Mar  1 12:02:04 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26758         * common/safeerrno.h: Some of Microsoft's C++ compiler versions
26759           earlier than 2005 do not have _set_errno, so #define it in this
26760           case.
26762 Thu Mar 01 04:28:23 GMT 2007  Olly Betts <olly@survex.com>
26764         * backends/quartz/btree.h: Correct comment ("read" -> "write").
26766 Thu Mar 01 04:21:52 GMT 2007  Olly Betts <olly@survex.com>
26768         * backends/flint/flint_table.h: Correct comment ("read" -> "write").
26770 Thu Mar 01 01:30:02 GMT 2007  Olly Betts <olly@survex.com>
26772         * tests/queryparsertest.cc: Add some test cases for hated wildcards
26773           which don't expand to any terms.
26775 Thu Mar 01 01:21:42 GMT 2007  Olly Betts <olly@survex.com>
26777         * api/omqueryinternal.cc: Complete truncated comment.  Prefer
26778           preincrement to postincrement.
26780 Wed Feb 28 20:13:35 GMT 2007  Olly Betts <olly@survex.com>
26782         * api/omdocument.cc: Really tweak OmDocumentTerm::add_position() so
26783           that adding position 0 to an empty termlist takes the shortcut.
26785 Wed Feb 28 15:04:25 GMT 2007  Olly Betts <olly@survex.com>
26787         * common/safeerrno.h: Correct <safeerrno.h> to "safeerrno.h" in
26788           message in #error directive.
26790 Wed Feb 28 14:59:29 GMT 2007  Olly Betts <olly@survex.com>
26792         * include/xapian/query.h: Removed documentation comment for
26793           Xapian::Query::Internal which is no longer relevant (Query objects
26794           are now immutable once constructed, so parameters can no longer be
26795           set separately).
26797 Wed Feb 28 02:42:31 GMT 2007  Olly Betts <olly@survex.com>
26799         * api/omqueryinternal.cc: Add support for serialising OP_VALUE_RANGE
26800           queries.  Add support for OP_VALUE_RANGE queries to
26801           Query::get_description().  If an OP_VALUE_RANGE query has a start
26802           bound strictly greater than its end bound, simplify it by knowing
26803           that it can't match anything.
26804         * common/remoteprotocol.h,docs/remote_protocol.html: Bump remote
26805           protocol version to 24.
26807 Wed Feb 28 01:15:00 GMT 2007  Olly Betts <olly@survex.com>
26809         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
26810           matcher/: Add new Query operator OP_VALUE_RANGE which allows
26811           a query to be filtered by checking if a value lies between
26812           two limits.
26813         * tests/api_anydb.cc: Add feature test valuerange1.
26815 Wed Feb 28 01:07:53 GMT 2007  Olly Betts <olly@survex.com>
26817         * tests/harness/testsuite.cc: Only hook the testsuite into valgrind if
26818           env var XAPIAN_TESTSUITE_VALGRIND is set, to make it simple to run a
26819           test program under valgrind normally.
26820         * tests/runtest.in: Set XAPIAN_TESTSUITE_VALGRIND if automatically
26821           running a test program under valgrind.
26823 Tue Feb 27 23:51:34 GMT 2007  Olly Betts <olly@survex.com>
26825         * tests/Makefile.am: Turn subdir-objects back on here so that the
26826           harness objects end up in the harness subdirectory.
26828 Tue Feb 27 22:45:04 GMT 2007  Olly Betts <olly@survex.com>
26830         * examples/delve.cc: Rename "-k" to "-V" since "keys" were renamed to
26831           "values" long ago.  Keep "-k" as an alias for now, but don't
26832           advertise it.  Add handling so "-V3" shows value #3 for every
26833           document in the database.
26835 Tue Feb 27 21:35:35 GMT 2007  Olly Betts <olly@survex.com>
26837         * tests/Makefile.am,tests/remotetest.cc: Get rid of remotetest since
26838           it no longer does anything.
26840 Tue Feb 27 21:28:28 GMT 2007  Olly Betts <olly@survex.com>
26842         * tests/api_db.cc,tests/remotetest.cc: Move netstats1 from remotetest
26843           to apitest.  It will now run for "remotetcp" as well as "remote".
26845 Tue Feb 27 21:27:17 GMT 2007  Olly Betts <olly@survex.com>
26847         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
26848           Inline trivial getter and setter methods in the header.  Make
26849           getter method const.
26851 Tue Feb 27 20:22:58 GMT 2007  Olly Betts <olly@survex.com>
26853         * examples/delve.cc: Change to not stem terms by default.  Add
26854           "-s/--stemmer" option to allow a stemmer to be specified.
26856 Tue Feb 27 17:50:13 GMT 2007  Olly Betts <olly@survex.com>
26858         * backends/flint/flint_table.cc: Test revision_supplied rather than
26859           revision_ so that behaviour matches comments.
26861 Tue Feb 27 16:58:56 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26863         * tests/api_wrdb.cc: Enhance crashrecovery1 to check that the
26864           readers reference a database with the expected number of
26865           documents.  This checks that the base files which were removed
26866           were the correct ones to leave the current database valid.
26868 Tue Feb 27 16:54:31 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26870         * backends/quartz/btree.cc,backends/quartz/btree.h,
26871           backends/quartz/quartz_database.cc: Apply fix for opening
26872           databases while under heavy modification to quartz, using Olly's
26873           attachment to bug #108:
26874           http://www.xapian.org/cgi-bin/bugzilla/attachment.cgi?id=43
26875           Verified with loadtest that this resolves the issue.
26877 Tue Feb 27 13:12:31 GMT 2007  Olly Betts <olly@survex.com>
26879         * tests/harness/backendmanager.h: Add get_dbtype() method to allow the
26880           current backend type to be read.
26881         * tests/apitest.cc,tests/apitest.h: Add get_dbtype() function to allow
26882           BackendManager::get_dbtype() to be called by tests.
26883         * tests/api_wrdb.cc: Add new test crashrecovery1 to verify that the
26884           backend can recover from the latest revision missing some of the
26885           base files.
26887 Tue Feb 27 12:45:00 GMT 2007  Olly Betts <olly@survex.com>
26889         * tests/harness/backendmanager.cc: Fix how we start xapian-progsrv
26890           when running under valgrind.
26892 Tue Feb 27 11:34:22 GMT 2007  Olly Betts <olly@survex.com>
26894         * backends/flint/flint_database.cc: Remove the old throw for
26895           DatabaseOpeningError so the new throw for DatabaseModifiedError will
26896           actually be used.
26898 Tue Feb 27 09:22:52 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26900         * flint_table.cc,flint_table.h,flint_database.cc: If a database is
26901           being frequently modified (ie, transactions committed extremely
26902           frequently), flint can fail open all the tables at a consistent
26903           revision on the first attempt.  The code to handle this in
26904           flint_database.cc was not firing because flint_table.cc was
26905           reporting all failures to open a table for reading by throwing an
26906           exception.  This commit changes flint_table.cc to report failure
26907           to open at a specific revision by returning false.
26909           In addition, there was a bug in flint_database.cc which caused
26910           the attempts to re-try opening a database in this situation to
26911           fail.  This is now fixed.
26913           Finally, flint_database.cc now throws a DatabaseModified error if
26914           100 attempts to reopen the database fail because of continual
26915           modifications - previously, it would have thrown a
26916           DatabaseOpening error.
26918           There is no easy regression test - but my "loadtest.cc" program
26919           attached to bug #108 shows the problem (if you comment out the
26920           code which ignores DatabaseOpeningErrors).
26922 Tue Feb 27 01:25:00 GMT 2007  Olly Betts <olly@survex.com>
26924         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in: Need to
26925           define DOXYGEN so that the previous change to the generated
26926           errordispatch.h works.  Remove obsolete macros from
26927           EXPAND_AS_DEFINED and PREDEFINED.
26928         * docs/doxygen_full_conf.in: Increase MAX_DOT_GRAPH_WIDTH from
26929           800 to 1024 to match doxygen_api_conf.in.
26931 Tue Feb 27 00:41:47 GMT 2007  Olly Betts <olly@survex.com>
26933         * matcher/multimatch.cc: Fix warning with SGI's CC.
26935 Tue Feb 27 00:35:06 GMT 2007  Olly Betts <olly@survex.com>
26937         * generate-exceptions.in: Wrap errordispatch.h in "#ifndef DOXYGEN"
26938           and "#endif" because doxygen gets confused by a header full of
26939           code.
26941 Mon Feb 26 21:53:41 GMT 2007  Olly Betts <olly@survex.com>
26943         * tests/findheaders.pl: Remove long unused perl script.
26945 Mon Feb 26 19:23:50 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26947         * tests/api_wrdb.c: test_emptyterm2 used to delete a writable
26948           database whilst the database was open.  Unfortunately, this
26949           doesn't work on windows (and it doesn't seem to be easy to make
26950           it work), so this patch changes the test to close each database
26951           before opening the next writable database at the same path.
26952           Fortunately, this seems to be the only test which behaves like
26953           this.  Also, added a note to the win32 README file to document
26954           this restriction.
26956 Mon Feb 26 19:19:34 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26958         * docs/Makefile.am: touch apidoc/html/index.html after apidoc.pdf
26959           is created so that make doesn't attempt to regenerate it due to
26960           the dependency of apidoc/html/index.html on apidoc.pdf.
26961           Similarly for sourcedoc/html/index.html.
26963 Mon Feb 26 18:36:22 GMT 2007  Olly Betts <olly@survex.com>
26965         * tests/harness/backendmanager.cc: Indent with tabs not spaces.
26966         * tests/harness/index_utils.cc: Add missing space after "if";
26967           prefer "X.empty()" to "X.size() == 0".
26969 Mon Feb 26 16:10:31 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26971         * tests/harness/index_utils.cc,tests/harness/backendmanager.cc:
26972           Fix for windows: windows file handling seems to have a bug
26973           causing end of file conditions in ifstream to be missed.  As a
26974           result, an empty string was being returned from the get_paragraph
26975           function in the test harness, resulting in an out-of-bounds error
26976           when generating a value from the paragraph.  Add a check that the
26977           paragraph returned isn't empty, and return an empty document if
26978           it is.  Then, check for empty documents (ie, contain some terms)
26979           before adding them to the test database.
26981 Mon Feb 26 16:05:07 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
26983         * backends/quartz/btree_base.cc,backends/flint/flint_btreebase.cc:
26984           Fix for windows: string append method with a pointer and length
26985           causes a segfault-type error on windows if the pointer is NULL,
26986           even if the length is also 0.  Check for this case when appending
26987           the bitmap to the base block, since a NULL pointer is passed for
26988           an empty bitmap when a new database is being created.
26990           Also, initialise the bit_map0 and bitmap members to 0 in the
26991           FlintTable_base constructor which takes a string and a char
26992           argument - they had been omitted from this and were only being
26993           initialised by the constructor which takes no argument.  This
26994           didn't seem to be having any negative effect, but doing it makes
26995           the code neater.
26997 Sun Feb 25 23:21:11 GMT 2007  Olly Betts <olly@survex.com>
26999         * backends/inmemory/inmemory_database.cc: Create the RefCntPtr to this
27000           as an explicit variable to make the code more readable.
27002 Sun Feb 25 19:20:33 GMT 2007  Olly Betts <olly@survex.com>
27004         * matcher/multimatch.cc: Fix inconsistent ordering between pages with
27005           set_sort_by_value_then_relevance (fixes bug#110).
27006         * tests/api_wrdb.cc: Enabled test consistency2.
27008 Sun Feb 25 17:28:09 GMT 2007  Olly Betts <olly@survex.com>
27010         * matcher/: Also apply the "decreasing weights with remote database"
27011           optimisations which we use in the sort_by_relevance case in the
27012           sort_by_relevance_then_value case.
27014 Sat Feb 24 19:35:41 GMT 2007  Olly Betts <olly@survex.com>
27016         * backends/inmemory/inmemory_database.cc: If replace_document is used
27017           to set the docid of a newly added document which has previously
27018           existed, then we need to mark that document as valid (caught by
27019           existing test replacedoc4 in a debug build).
27021 Sat Feb 24 17:11:22 GMT 2007  Olly Betts <olly@survex.com>
27023         * tests/api_wrdb.cc: Add regression test consistency2 for bug#110
27024           (currently skipped since the bug isn't fixed yet).
27026 Thu Feb 22 15:18:53 GMT 2007  Olly Betts <olly@survex.com>
27028         * configure.ac: Add proper detection for SGI's C++ (check stderr
27029           output of "CC -v").  Automatically pass -ptused in CXXFLAGS for
27030           xapian-core and any applications using xapian-config --cxxflags
27031           since it seems to be required to avoid template linking errors.
27033 Thu Feb 22 09:04:30 GMT 2007  Olly Betts <olly@survex.com>
27035         * docs/Makefile.am: Ship generated RSTHTML files.
27037 Wed Feb 21 19:01:06 GMT 2007  Olly Betts <olly@survex.com>
27039         * languages/turkish.sbl: Make some simplifications to the code of the
27040           turkish stemmer.
27042 Wed Feb 21 19:00:11 GMT 2007  Olly Betts <olly@survex.com>
27044         * languages/Makefile.mk,languages/stem.cc,languages/turkish.sbl:
27045           Add turkish stemmer.
27047 Wed Feb 21 18:55:03 GMT 2007  Olly Betts <olly@survex.com>
27049         * languages/compiler/generator.c: Number m_test and c_test variables
27050           to avoid variable shadowing warnings.
27052 Wed Feb 21 18:07:50 GMT 2007  Olly Betts <olly@survex.com>
27054         * languages/compiler/generator.c: Remove duplicate copy of function
27055           resulting from ham-fisted reverting and applying of patches.
27057 Wed Feb 21 18:03:12 GMT 2007  Olly Betts <olly@survex.com>
27059         * languages/compiler/generator.c,languages/compiler/header.h: Number
27060           mlimit variables to avoid variable shadowing warnings.
27061         * languages/compiler/generator.c: Use "if (foo() == -1) return -1;"
27062           which avoids a temporary variable (improving readability of
27063           generated code) and producing very slightly faster code.
27064         * languages/compiler/header.h: Use "#ifdef DISABLE_JAVA" around Java
27065           generator specific struct members and prototypes.
27067 Wed Feb 21 17:47:13 GMT 2007  Olly Betts <olly@survex.com>
27069         * languages/compiler/generator.c: Add "~C" comments to generated
27070           source for more operations.
27072 Tue Feb 20 20:24:30 GMT 2007  Olly Betts <olly@survex.com>
27074         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Ensure
27075           both_bases is set to false if we don't have both bases when
27076           opening a table using an existing object.
27078 Tue Feb 20 15:57:05 GMT 2007  Olly Betts <olly@survex.com>
27080         * preautoreconf: Fix to handle generating dependencies on generated
27081           objects, at least for the "checked out tree from SVN" case.  Fixing
27082           this fully is trickier, but currently this is stopped snapshots
27083           from bootstrapping.
27085 Tue Feb 20 14:28:02 GMT 2007  Charlie Hull
27087         * backends/flint/flint_btreebase.cc,backends/flint/flint_table.cc,
27088           backends/quartz/btree.cc: Use MS Windows API calls to delete
27089           files and open files we might want to delete while they are
27090           still open (i.e. the flint and quartz btree base files).  This
27091           fixes a problem when a writer can't discard an old revision at the
27092           exact moment a reader is opening it (bug #108).
27094 Tue Feb 20 14:13:43 GMT 2007  Richard Boulton <richard@tartarus.org>
27096         * .: Add generate-exceptions to svn:ignore property.
27098 Tue Feb 20 13:36:27 GMT 2007  Olly Betts <olly@survex.com>
27100         * generate-exceptions.in: Add missing '}' to close 'namespace Xapian'
27101           in generated header 'xapian/error.h'.
27103 Tue Feb 20 13:26:19 GMT 2007  Olly Betts <olly@survex.com>
27105         * Makefile.am: Put generated exception headers in BUILT_SOURCES.
27107 Tue Feb 20 12:10:18 GMT 2007  Olly Betts <olly@survex.com>
27109         * Makefile.am,configure.ac,generate-exceptions.in,include/Makefile.mk,
27110           include/xapian/error.h,include/xapian/errortypes.h,net/serialise.cc:
27111           Replace macro gymnastics with errortypes.h by a perl script which
27112           generates the headers we require.  It's more flexible, and easier to
27113           get doxygen to generate documentation from.
27114         * queryparser/queryparser.cc,tests/queryparsertest.cc: Throw new
27115           Error subclass QueryParserError instead of throwing const char *
27116           (fixes bug#101).
27118 Tue Feb 20 10:37:54 GMT 2007  Olly Betts <olly@survex.com>
27120         * languages/steminternal.cc: p is never NULL once the class is
27121           successfully constructed, so just use Assert() to confirm this.
27123 Tue Feb 20 10:29:25 GMT 2007  Olly Betts <olly@survex.com>
27125         * queryparser/lemon.c: Fix compiler warnings.
27127 Mon Feb 19 18:50:12 GMT 2007  Olly Betts <olly@survex.com>
27129         * common/serialise-double.cc,net/remoteconnection.cc: Throw
27130           NetworkError rather than InternalError for invalid data received
27131           over the remote protocol.
27133 Mon Feb 19 18:12:21 GMT 2007  Olly Betts <olly@survex.com>
27135         * tests/internaltest.cc: Just disable serialisequery1 if the remote
27136           backend is disabled, like we do for serialiselength1 and
27137           serialisedoc1 rather than assuming InternalError is due to the
27138           code being disabled.
27140 Mon Feb 19 09:48:02 GMT 2007  Olly Betts <olly@survex.com>
27142         * docs/Makefile.am,docs/XapianAdminNotes.txt,docs/admin_notes.rst:
27143           Generated file "XapianAdminNotes.html" doesn't fit the naming
27144           conventions of other files at all, so renamed to "admin_notes.html".
27145           Rename the source to ".rst" so we can use an implicit rule for
27146           the conversion, in anticipation of other documentation in ReST
27147           format.
27149 Mon Feb 19 09:10:48 GMT 2007  Olly Betts <olly@survex.com>
27151         * docs/Makefile.am: Fix typos which stopped parallel make from working
27152           correctly in "docs" subdirectory.
27154 Sun Feb 18 22:36:46 GMT 2007  Olly Betts <olly@survex.com>
27156         * common/Makefile.mk,common/omstringstream.h,common/output.h,
27157           include/Makefile.mk,include/xapian/output.h: Move
27158           "<xapian/output.h>" to being an internal header in "common/" since
27159           it hasn't been included by "<xapian.h>" since 0.7.0.
27161 Sun Feb 18 22:18:33 GMT 2007  Olly Betts <olly@survex.com>
27163         * include/xapian/dbfactory.h: Add documentation comment for the "prog"
27164           form of Remote::open_writable().
27166 Sun Feb 18 19:31:20 GMT 2007  Olly Betts <olly@survex.com>
27168         * tests/queryparsertest.cc: Add test for "associative NEAR".
27170 Sun Feb 18 18:27:40 GMT 2007  Olly Betts <olly@survex.com>
27172         * tests/harness/backendmanager.cc,tests/harness/backendmanager.h:
27173           Merge BackendManager::change_names_to_paths() into
27174           index_files_to_database() and make the latter a method of
27175           class BackendManager.
27176         * tests/harness/backendmanager.cc: Remove mention of muscat36 backends
27177           from error message listing valid backends.
27178         * tests/harness/backendmanager.h: Comment out prototypes for currently
27179           disabled methods getdb_inmemoryerr, getwritedb_inmemory, etc.
27181 Sat Feb 17 15:38:05 GMT 2007  Olly Betts <olly@survex.com>
27183         * backends/flint/flint_table.cc: new throws if allocation fails
27184           so we don't need to check the return value.
27186 Sat Feb 17 02:08:22 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27188         * backends/flint/flint_table.cc: Fix memory double-frees if
27189           FlintTable::close() is called twice on a table (without an open()
27190           being called in between).  This was happening after a transaction
27191           failed when the table was next opened.
27192         * backends/quartz/btree.cc: Fix double-frees, similarly.
27194 Fri Feb 16 20:11:13 GMT 2007  Olly Betts <olly@survex.com>
27196         * languages/compiler/generator.c: Add missing "~Z" for compatibility
27197           with C code generation (which we don't use for Xapian).
27199 Fri Feb 16 19:51:26 GMT 2007  Olly Betts <olly@survex.com>
27201         * queryparser/tclUniData.h,queryparser/utf8itor.h: The tcl unicode
27202           routines only have tables for characters in the BMP.  For other
27203           characters, assume they're word characters, but can't be forced to
27204           lowercase.
27206 Fri Feb 16 19:26:00 GMT 2007  Olly Betts <olly@survex.com>
27208         * queryparser/utf8itor.cc: Fix bug in decoding of 4 byte utf-8
27209           sequences - the returned value was 0x400000 too large!
27211 Thu Feb 15 19:37:26 GMT 2007  Olly Betts <olly@survex.com>
27213         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Keep
27214           embedded apostrophe's in terms rather than generating a phrase
27215           search for them.
27217 Thu Feb 15 18:42:49 GMT 2007  Olly Betts <olly@survex.com>
27219         * languages/compiler/generator.c,languages/steminternal.cc,
27220           languages/steminternal.h: Tweak the "grouping" functions to allow
27221           skipping past multiple occurrences and use this to implement "goto"
27222           or "gopast" followed by a grouping or "non" grouping more
27223           efficiently.
27225 Thu Feb 15 17:57:43 GMT 2007  Olly Betts <olly@survex.com>
27227         * languages/compiler/generator.c,languages/steminternal.cc,
27228           languages/steminternal.h: Inline lose_s().  Since lose_s()
27229           checks if p is NULL, remove checks prior to calling lose_s().
27230         * languages/steminternal.h: Cast from symbol * to int * via
27231           void * to try to suppress over-eager warnings about alignment.
27233 Thu Feb 15 12:43:04 GMT 2007  Olly Betts <olly@survex.com>
27235         * languages/stem.cc: Add support for two letter ISO 639 codes.
27237 Thu Feb 15 10:40:40 GMT 2007  Olly Betts <olly@survex.com>
27239         * docs/Makefile.am: Don't try to ship mkdoc.pl.
27241 Thu Feb 15 09:58:48 GMT 2007  Olly Betts <olly@survex.com>
27243         * docs/gen_codestructure_doc.in: Fix to work in a VPATH build.
27245 Thu Feb 15 09:54:55 GMT 2007  Olly Betts <olly@survex.com>
27247         * languages/compiler/generator.c: Fix Stem::get_description() to
27248           return the right string.
27250 Thu Feb 15 09:44:54 GMT 2007  Olly Betts <olly@survex.com>
27252         * docs/gen_codestructure_doc.in: Add links to viewvcs on
27253           svn.xapian.org.
27255 Thu Feb 15 09:26:07 GMT 2007  Olly Betts <olly@survex.com>
27257         * configure.ac,docs/Makefile.am,docs/gen_codestructure_doc.in,
27258           docs/mkdoc.pl,preautoreconf: Rework how code_structure.html
27259           is generated.  Nicer output, and the html document is now
27260           regenerated if any of the dir_contents files change.
27262 Thu Feb 15 07:43:39 GMT 2007  Olly Betts <olly@survex.com>
27264         * Makefile.am,bin/Makefile.mk,configure.ac,examples/Makefile.mk,
27265           makemanpage.in: Add "makemanpage" script which takes care of all
27266           the magic needed to generate a man page using help2man.  This
27267           script is written in perl, but so is help2man, and they're both
27268           only used in maintainer-mode.
27270 Thu Feb 15 06:33:41 GMT 2007  Olly Betts <olly@survex.com>
27272         * bin/Makefile.mk: Fix typos in man page generation rules.
27274 Thu Feb 15 06:30:54 GMT 2007  Olly Betts <olly@survex.com>
27276         * examples/Makefile.mk: Fix typos in previous commit.
27278 Thu Feb 15 06:03:35 GMT 2007  Olly Betts <olly@survex.com>
27280         * Makefile.am,configure.ac,examples/Makefile,examples/Makefile.am,
27281           examples/Makefile.mk: Convert examples subdirectory to use
27282           non-recursive make.  Fixes wishlist bug#97.
27284 Thu Feb 15 05:48:38 GMT 2007  Olly Betts <olly@survex.com>
27286         * Makefile.am,bin/Makefile,bin/Makefile.am,bin/Makefile.mk,
27287           configure.ac: Convert bin subdirectory to use non-recursive make.
27289 Wed Feb 14 19:08:49 GMT 2007  Olly Betts <olly@survex.com>
27291         * tests/Makefile.am: There's no longer a need to remove the temporary
27292           directories for muscat36 backend tests, since we've removed the
27293           muscat36 backend code.
27295 Wed Feb 14 18:58:31 GMT 2007  Olly Betts <olly@survex.com>
27297         * languages/Makefile.mk: Move adjusting of INCLUDES to the top of the
27298           file.
27299         * queryparser/Makefile.mk: Adjust INCLUDES for a VPATH build.
27301 Wed Feb 14 18:38:16 GMT 2007  Olly Betts <olly@survex.com>
27303         * languages/Makefile.mk: Need -Ilanguages for VPATH builds from SVN.
27305 Wed Feb 14 18:37:54 GMT 2007  Olly Betts <olly@survex.com>
27307         * languages/steminternal.cc,languages/steminternal.h: Add
27308           SET_CAPACITY() macro.
27310 Wed Feb 14 17:39:50 GMT 2007  Olly Betts <olly@survex.com>
27312         * languages/steminternal.h: Don't cast away const.
27314 Wed Feb 14 17:14:14 GMT 2007  Olly Betts <olly@survex.com>
27316         * include/Makefile: Add stub makefile.
27318 Wed Feb 14 17:12:41 GMT 2007  Olly Betts <olly@survex.com>
27320         * configure.ac: ac_abs_srcdir, etc aren't available in configure
27321           itself, so we have to do the work ourselves.
27323 Wed Feb 14 12:54:26 GMT 2007  Olly Betts <olly@survex.com>
27325         * configure.ac: Fix typo in last commit.
27327 Wed Feb 14 12:19:18 GMT 2007  Olly Betts <olly@survex.com>
27329         * Makefile.am,configure.ac,languages/Makefile.mk: Define automake
27330           conditional VPATH_BUILD so we can only add extra entries to
27331           INCLUDES in VPATH builds.
27333 Wed Feb 14 11:59:02 GMT 2007  Olly Betts <olly@survex.com>
27335         * languages/Makefile.mk: Ick, we need $(top_srcdir)/languages in
27336           INCLUDES as the generated sources need to find non-generated
27337           headers.
27339 Wed Feb 14 11:46:43 GMT 2007  Olly Betts <olly@survex.com>
27341         * backends/database.cc,backends/remote/remote-database.cc,
27342           common/database.h,common/remote-database.h,common/remoteprotocol.h,
27343           docs/remote_protocol.html,net/remoteserver.cc: Support
27344           get_lastdocid() on remote databases.
27346 Wed Feb 14 11:20:33 GMT 2007  Olly Betts <olly@survex.com>
27348         * Makefile.am,configure.ac,include/Makefile.am,include/Makefile.mk:
27349           Convert include subdirectory to use non-recursive make.
27351 Wed Feb 14 11:05:00 GMT 2007  Olly Betts <olly@survex.com>
27353         * Makefile.am,bin/Makefile.am,configure.ac,examples/Makefile.am,
27354           getopt/Makefile,getopt/Makefile.am,getopt/Makefile.mk,
27355           tests/Makefile.am: Convert getopt subdirectory to use non-recursive
27356           make.
27358 Wed Feb 14 10:56:15 GMT 2007  Olly Betts <olly@survex.com>
27360         * tests/harness/Makefile.am: Remove as no longer used.
27362 Wed Feb 14 10:38:27 GMT 2007  Olly Betts <olly@survex.com>
27364         * backends/quartz/Makefile.mk,bin/Makefile.am,tests/Makefile.am: Move
27365           backends/quartz/libbtreecheck.la to libquartzcheck.la.
27366         * getopt/Makefile.am: Distribute getopt/dir_contents.
27368 Wed Feb 14 10:20:14 GMT 2007  Olly Betts <olly@survex.com>
27370         * preautoreconf: Handle variables set with "+=" and ":=".
27372 Wed Feb 14 10:16:29 GMT 2007  Olly Betts <olly@survex.com>
27374         * include/xapian/database.h: Add documentation comments for DB_*
27375           constants.
27377 Wed Feb 14 10:11:37 GMT 2007  Olly Betts <olly@survex.com>
27379         * examples/.cvsignore: Remove lingering relic of CVS days.
27381 Wed Feb 14 10:07:14 GMT 2007  Olly Betts <olly@survex.com>
27383         * Makefile.am,configure.ac,net/Makefile,net/Makefile.am,
27384           net/Makefile.mk: Convert net subdirectory to use non-recursive make.
27385           Now libxapian.la is built completely non-recursively.
27386         * docs/Makefile.am,docs/mkdoc.pl: Fix mkdoc.pl to handle directories
27387           which use non-recursive make.
27389 Wed Feb 14 09:10:27 GMT 2007  Olly Betts <olly@survex.com>
27391         * Makefile.am,backends/Makefile,backends/Makefile.am,
27392           backends/Makefile.mk,backends/flint/Makefile,
27393           backends/flint/Makefile.am,backends/flint/Makefile.mk,
27394           backends/inmemory/Makefile,backends/inmemory/Makefile.am,
27395           backends/inmemory/Makefile.mk,backends/multi/Makefile,
27396           backends/multi/Makefile.am,backends/multi/Makefile.mk,
27397           backends/quartz/Makefile,backends/quartz/Makefile.am,
27398           backends/quartz/Makefile.mk,backends/remote/Makefile,
27399           backends/remote/Makefile.am,backends/remote/Makefile.mk,
27400           configure.ac: Convert backends subdirectory (and subdirectories
27401           thereof) to non-recursive make.
27403 Wed Feb 14 08:49:02 GMT 2007  Olly Betts <olly@survex.com>
27405         * preautoreconf: Fix handling of backslash at the end of a line in
27406           included files.
27407         * preautoreconf: Our handling of which directory a nested include is
27408           sought from is consistent with automake, so remove the FIXME comment
27409           about it.
27411 Wed Feb 14 08:07:07 GMT 2007  Olly Betts <olly@survex.com>
27413         * Makefile.am,configure.ac,matcher/Makefile,matcher/Makefile.am,
27414           matcher/Makefile.mk: Convert matcher subdirectory to non-recursive
27415           make.
27417 Wed Feb 14 07:50:19 GMT 2007  Olly Betts <olly@survex.com>
27419         * Makefile.am,api/Makefile,api/Makefile.am,api/Makefile.mk,
27420           configure.ac: Convert api subdirectory to non-recursive make.
27422 Wed Feb 14 07:48:45 GMT 2007  Olly Betts <olly@survex.com>
27424         * preautoreconf: No need to `chdir' to the current directory.
27425         * preautoreconf: Don't bother looking at the file we generate
27426           when considering included files.
27427         * preautoreconf: Add included files to the dependency list.
27429 Wed Feb 14 07:38:19 GMT 2007  Olly Betts <olly@survex.com>
27431         * preautoreconf: Generate dummy rules for the files which
27432           preautoreconf depends on, so that "make" still works if one
27433           of them is removed (by build system restructuring).
27435 Wed Feb 14 07:24:07 GMT 2007  Olly Betts <olly@survex.com>
27437         * common,languages,tests/harness: svn:ignore: We do need to ignore
27438           .dirstamp files after all.
27440 Wed Feb 14 07:22:29 GMT 2007  Olly Betts <olly@survex.com>
27442         * Makefile.am,common/Makefile,common/Makefile.am,common/Makefile.mk,
27443           configure.ac: Convert common subdirectory to non-recursive make.
27445 Wed Feb 14 07:03:27 GMT 2007  Olly Betts <olly@survex.com>
27447         * .: svn:ignore: Ignore all vim swapfiles.  No need to ignore .deps
27448           now that dummy.cc is history.
27450 Wed Feb 14 06:34:44 GMT 2007  Olly Betts <olly@survex.com>
27452         * tests/stemtest.cc: Force ASCII capitals in sample vocabulary to
27453           lower case before stemming.
27455 Wed Feb 14 06:14:42 GMT 2007  Olly Betts <olly@survex.com>
27457         * Makefile.am,configure.ac,queryparser/Makefile,
27458           queryparser/Makefile.am,queryparser/Makefile.mk:
27459           Convert queryparser subdirectory to non-recursive make.
27460         * Makefile.am: Enable automake option "subdir-objects" so
27461           that built objects for a non-recursively made directory
27462           go into that directory.
27464 Wed Feb 14 06:12:29 GMT 2007  Olly Betts <olly@survex.com>
27466         * tests/harness: svn:ignore: remove .dirstamp and depcomp.
27468 Wed Feb 14 06:10:44 GMT 2007  Olly Betts <olly@survex.com>
27470         * languages/Makefile.mk: In maintainer-mode, remove snowball and
27471           generated allsnowballheaders.h on "make clean".  When not in
27472           maintainer-mode, remove them on "make maintainer-clean".
27473         * languages/: svn:ignore all vim swap files.
27475 Wed Feb 14 05:54:32 GMT 2007  Olly Betts <olly@survex.com>
27477         * languages/Makefile.mk: Distribute the stub languages/Makefile.
27478         * tests/harness/Makefile.mk: No need to explicitly distribute
27479           harness/Makefile.mk.
27481 Wed Feb 14 05:52:08 GMT 2007  Olly Betts <olly@survex.com>
27483         * languages/Makefile.mk: Distribute languages/dir_contents.
27485 Wed Feb 14 05:44:10 GMT 2007  Olly Betts <olly@survex.com>
27487         * api/Makefile.am,api/vectortermlist.h,common/Makefile.am,
27488           queryparser/Makefile.am: We use vectortermlist.h from the
27489           queryparser directory, so move it from api to common.
27491 Wed Feb 14 05:27:13 GMT 2007  Olly Betts <olly@survex.com>
27493         * languages/Makefile.mk,languages/stem.cc: Disable finnish and lovins
27494           temporarily, until I sort out merging the support for among with
27495           functions properly.
27497 Wed Feb 14 05:24:36 GMT 2007  Olly Betts <olly@survex.com>
27499         * languages/steminternal.cc,languages/steminternal.h: Temporarily
27500           back out the changes to handling of among with functions.
27502 Tue Feb 13 19:11:57 GMT 2007  Olly Betts <olly@survex.com>
27504         * tests/harness/testsuite.cc: If a test throws an unknwon exception,
27505           say so in the test failure message.  If it throws std::string,
27506           report the first 40 character (or first line) of the string.
27508 Tue Feb 13 17:48:11 GMT 2007  Olly Betts <olly@survex.com>
27510         * languages/steminternal.cc: Fix decoding of 3 byte utf-8 sequences.
27512 Tue Feb 13 17:47:22 GMT 2007  Olly Betts <olly@survex.com>
27514         * languages/Makefile.mk: Fix dependency of generated
27515           languages/allsnowballheaders.h to be on languages/Makefile.mk.
27517 Tue Feb 13 17:46:42 GMT 2007  Olly Betts <olly@survex.com>
27519         * languages/compiler/generator.c: Fix missing ";" in generated
27520           code.
27522 Tue Feb 13 15:40:15 GMT 2007  Olly Betts <olly@survex.com>
27524         * languages/Makefile.mk,languages/compiler/driver.c,
27525           languages/compiler/generator.c,languages/compiler/header.h:
27526           Changes towards getting C++ generation working.
27528 Tue Feb 13 15:39:23 GMT 2007  Olly Betts <olly@survex.com>
27530         * languages/steminternal.cc,languages/steminternal.h: Revert to match
27531           currently generated code.
27533 Tue Feb 13 14:09:31 GMT 2007  Olly Betts <olly@survex.com>
27535         * languages/compiler/: Sync with current snowball SVN + submitted
27536           patches.
27538 Tue Feb 13 10:53:34 GMT 2007  Olly Betts <olly@survex.com>
27540         * tests/harness/backendmanager.cc: If we fail to start
27541           xapian-tcpsrv, report why (give errno or the error output).
27543 Tue Feb 13 10:28:43 GMT 2007  Olly Betts <olly@survex.com>
27545         * tests/remotetest.cc: Prune test cases which are redundant now that
27546           apitest tests remote and remotetcp: apitest's simplequery1 performs
27547           a superset of what netmatch1 and tcpmatch1 do; apitest's multidb1
27548           performs a superset of what netmatch2 does; and the coverage given
27549           by our netexpand1 is provided by various apitest tests.
27551 Mon Feb 12 06:36:58 GMT 2007  Olly Betts <olly@survex.com>
27553         * languages/compiler/generator.c: In backward mode, among
27554           can't match if there are fewer characters before the current
27555           position than the minimum length string in the among.
27557 Mon Feb 12 05:56:31 GMT 2007  Olly Betts <olly@survex.com>
27559         * configure.ac: Make sure that the languages subdirectory exists in
27560           case this is a fresh SVN checkout and srcdir != builddir.
27562 Mon Feb 12 05:46:49 GMT 2007  Olly Betts <olly@survex.com>
27564         * languages/Makefile.mk,languages/compiler/driver.c: -DDISABLE_JAVA
27565           to not compile in Java support (inline with Richard's patch to
27566           the upstream snowball sources).
27567         * languages/Makefile.mk: Remove inaccurate comment about processing
27568           with automake.  Fix -n option we pass (remove directory name).
27569           Use "" instead of <> in generated file allsnowballheaders.h.  Remove
27570           snowball compiler and generated files on "make maintainer-clean".
27572 Mon Feb 12 01:08:50 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27574         * languages/compiler/header.h: Remove commented out header for
27575           sort() prototype, to match snowball sources.
27577 Sun Feb 11 19:28:50 GMT 2007  Olly Betts <olly@survex.com>
27579         * languages/api.h,languages/header.h: Remove headers which are no
27580           longer used.
27582 Sun Feb 11 19:26:50 GMT 2007  Olly Betts <olly@survex.com>
27584         * languages/api.cc,languages/utilities.cc: Remove sources which are
27585           no longer used.
27587 Sun Feb 11 16:22:16 GMT 2007  Olly Betts <olly@survex.com>
27589         * languages/compiler/driver.c: Use #ifdef instead of #if.
27591 Sun Feb 11 16:20:44 GMT 2007  Olly Betts <olly@survex.com>
27593         * languages/compiler/driver.c: Disable java support, since we don't
27594           use it and it means one less source file.
27596 Sun Feb 11 16:08:49 GMT 2007  Olly Betts <olly@survex.com>
27598         * languages/compiler/analyser.c,languages/compiler/header.h: Use qsort
27599           instead the snowball's own sort implementation to reduce the number
27600           of source files we need for the snowball compiler.
27602 Sun Feb 11 16:04:19 GMT 2007  Olly Betts <olly@survex.com>
27604         * languages/Makefile: Add stub Makefile to allow "make", "make check",
27605           and "make clean" from the languages subdirectory.
27607 Sun Feb 11 16:00:51 GMT 2007  Olly Betts <olly@survex.com>
27609         * languages/compiler/analyser.c: Cast the arguments, not the function
27610           pointer as ISO C allows `void*' and `struct amongvec*' to have
27611           different representations.
27613 Sun Feb 11 15:43:49 GMT 2007  Olly Betts <olly@survex.com>
27615         * languages/compiler/space.c: Fix a typo of a function name in a
27616           comment.
27618 Sun Feb 11 15:23:51 GMT 2007  Olly Betts <olly@survex.com>
27620         * languages/compiler/header.h,languages/compiler/tokeniser.c: Give
27621           syswords and syswords2 .h extensions for clarity.
27623 Sun Feb 11 15:17:28 GMT 2007  Olly Betts <olly@survex.com>
27625         * Makefile.am,api/Makefile.am,api/omstem.cc,configure.ac,dummy.cc,
27626           languages/Makefile.am,languages/Makefile.mk,languages/compiler/,
27627           languages/: Update the stemmers to use utf-8 and the latest snowball
27628           version (based on r421 from snowball SVN).  Further patches are
27629           required to generate C++ classes from snowball, I'm checking in the
27630           vanilla compiler first to help us track the patches.
27632 Sun Feb 11 14:16:35 GMT 2007  Olly Betts <olly@survex.com>
27634         * api/omstem.cc: Add definition for Xapian::Stem::stem_word().
27636 Sun Feb 11 13:15:11 GMT 2007  Olly Betts <olly@survex.com>
27638         * tests/api_anydb.cc,tests/api_db.cc,tests/api_posdb.cc: Prefer
27639           Xapian::Stem::operator() to Xapian::Stem::stem_word().
27641 Sat Feb 10 19:10:31 GMT 2007  Olly Betts <olly@survex.com>
27643         * queryparser/queryparser.lemony: Prefer Xapian::Stem::operator() to
27644           Xapian::Stem::stem_word().
27646 Sat Feb 10 18:34:41 GMT 2007  Olly Betts <olly@survex.com>
27648         * include/xapian/stem.h: Make Xapian::Stem::Internal as @internal for
27649           doxygen.  Mark Xapian::Stem::stem_word() as deprecated.
27651 Sat Feb 10 18:34:05 GMT 2007  Olly Betts <olly@survex.com>
27653         * HACKING: Add brief note about coding style.
27655 Sat Feb 10 18:24:28 GMT 2007  Olly Betts <olly@survex.com>
27657         * preautoreconf: Add licence and copyright notice.  Add support for
27658           automake include directives.  Warn about unknown variables.
27660 Sat Feb 10 18:19:26 GMT 2007  Olly Betts <olly@survex.com>
27662         * tests/harness/testsuite.cc: Conditionalise all the valgrind specific
27663           code on RUNNING_ON_VALGRIND to minimise the overhead if valgrind
27664           is installed but we aren't running tests under it.
27666 Sat Feb 10 17:42:05 GMT 2007  Olly Betts <olly@survex.com>
27668         * tests/harness/index_utils.cc,tests/stemtest.cc: Prefer
27669           Xapian::Stem::operator() to Xapian::Stem::stem_word().
27671 Sat Feb 10 17:27:27 GMT 2007  Olly Betts <olly@survex.com>
27673         * examples/delve.cc,examples/simpleindex.cc,examples/simplesearch.cc:
27674           Prefer Xapian::Stem::operator() to Xapian::Stem::stem_word().
27676 Wed Feb 07 04:23:09 GMT 2007  Olly Betts <olly@survex.com>
27678         * queryparser/queryparser.lemony,queryparser/queryparser.lt: Use
27679           new/delete instead of malloc/free to allocate struct yyParser
27680           and pass it around as "yyParser *" instead of "void *".
27682 Wed Feb 07 03:44:16 GMT 2007  Olly Betts <olly@survex.com>
27684         * include/xapian/queryparser.h,queryparser/queryparser.cc,
27685           queryparser/queryparser.lemony,queryparser/queryparser_internal.h,
27686           tests/queryparsertest.cc: Allow the default prefix to be specified
27687           so you can use QueryParser to parse a text entry box for "author"
27688           etc.
27689         * configure.ac: Note API change for LIBRARY_VERSION_INFO updating.
27691 Wed Feb 07 01:14:37 GMT 2007  Olly Betts <olly@survex.com>
27693         * common/safeunistd.h: Add '#include <sys/types.h>' so that we've seen
27694           a typedef for off_t before we hide it behind a #define to avoid a
27695           compilation error if <sys/types.h> or <wchar.h> is included after
27696           we are.
27698 Tue Feb 06 06:26:24 GMT 2007  Olly Betts <olly@survex.com>
27700         * INSTALL: Mention MSVC makefiles.  Note that we still test build with
27701           GCC 2.95.4 even though we recommend using a newer version.
27703 Tue Feb 06 06:13:48 GMT 2007  Olly Betts <olly@survex.com>
27705         * AUTHORS,HACKING,backends/flint/,backends/quartz/btree.cc,
27706           backends/quartz/quartz_database.cc,bin/quartzcompact.cc,
27707           bin/xapian-compact.cc,common/,tests/btreetest.cc,
27708           tests/harness/backendmanager.cc,tests/harness/testsuite.cc,
27709           tests/quartztest.cc: Support large files in stat() and fstat()
27710           when building with MSVC.  Factor MSVC specific header magic
27711           into new replacement headers "safeunistd.h" and "safesysstat.h".
27712         * AUTHORS: Thanks to Charlie Hull for the original patch to support
27713           stat() on large files with MSVC (and past MSVC related stuff!)
27715 Sat Jan 13 02:06:15 GMT 2007  Olly Betts <olly@survex.com>
27717         * include/xapian/database.h: Add pointer from
27718           WritableDatabase::add_document() to replace_document() in case the
27719           user wants to specify the docid themselves.  Also improve the
27720           wording of the warning about changes not being committed to disk
27721           right away.
27723 Tue Jan  2 15:49:43 GMT 2007  Richard Boulton <richard@lemurconsulting.com>
27725         * backends/quartz/btree.cc,backends/flint/flint_io.h: Patches from
27726           Charlie Hull to allow 2GB+ index files work when compiled using
27727           Visual C++.
27729 Sat Dec 30 13:48:54 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27731         * queryparser/queryparser.lemony,include/xapian/queryparser.h:
27732           Add support for partially entered queries, to better support
27733           incremental searching.  Also fix a typo in a comment.
27734         * docs/queryparser.html: Document the new partial query option, and
27735           what it's useful for.
27736         * tests/queryparsertest.cc: Test partial queries.
27738 Wed Dec 20 16:42:24 GMT 2006  Olly Betts <olly@survex.com>
27740         * PLATFORMS: Updated with success reports from debian buildds.
27742 Wed Dec 20 00:53:19 GMT 2006  Olly Betts <olly@survex.com>
27744         * api/omqueryinternal.cc: Fix "unused parameter" warning when building
27745           with the remote backend disabled.  Also update a comment - the query
27746           serialisation isn't really one line of text since we now store term
27747           names with the length prefixed, and they can contain arbitrary
27748           characters including linefeeds.
27750 Tue Dec 19 20:40:27 GMT 2006  Olly Betts <olly@survex.com>
27752         * tests/Makefile.am: Need libgetopt.la for test programs which
27753           use the test harness for platforms where GNU getopt isn't in
27754           the standard C library.
27756 Tue Dec 19 20:34:16 GMT 2006  Olly Betts <olly@survex.com>
27758         * queryparser/utf8itor.h: Need <string.h> for strlen.
27760 Tue Dec 19 16:35:58 GMT 2006  Olly Betts <olly@survex.com>
27762         * common/omstringstream.h: Fix "warning: comparison between signed and
27763           unsigned".
27765 Tue Dec 19 15:33:19 GMT 2006  Olly Betts <olly@survex.com>
27767         * backends/flint/flint_positionlist.cc: Turn the second (and
27768           potentially slightly deeper) recursion in encode_interpolative
27769           and decode_interpolative into explicit iteration in case the
27770           compiler fails to optimise the tail recursion.
27772 Mon Dec 18 03:39:41 GMT 2006  Olly Betts <olly@survex.com>
27774         * matcher/: Add ExactPhrasePostList to handle the common special case
27775           where the window size of OP_PHRASE is equal to the number of terms
27776           in the phrase.
27778 Mon Dec 18 02:21:32 GMT 2006  Olly Betts <olly@survex.com>
27780         * tests/harness/testsuite.cc: Remove accidentally committed "NO
27781           PROBLEM" message when running under valgrind.
27783 Wed Dec 13 21:15:57 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27785         * include/xapian/document.h: Another tweak to the documentation
27786           comment.
27788 Wed Dec 13 18:07:51 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27790         * include/xapian/document.h: Improve documentation comment for
27791           Document::get_value().
27793 Wed Dec 13 03:38:37 GMT 2006  Olly Betts <olly@survex.com>
27795         * include/xapian/enquire.h: In the description of the TradWeight
27796           class, replace reference to "Muscat 3.6" (meaningless to most
27797           people) with a generally useful explanation.
27799 Wed Dec 13 03:27:14 GMT 2006  Olly Betts <olly@survex.com>
27801         * docs/: svn:ignore XapianAdminNotes.html.
27803 Wed Dec 13 03:16:44 GMT 2006  Olly Betts <olly@survex.com>
27805         * configure.ac: Yet more valgrind test improvements!  Give up testing
27806           valgrind features if VALGRIND_COUNT_LEAKS isn't supported.  Fix the
27807           common shortcut case to not try logging to /dev/null.<pid> so it
27808           can actually get used.  Also don't use /dev/null in the --logfile
27809           case either as it will probably cause problems there too (though I
27810           don't have an old enough valgrind handy to verify this).  Also report
27811           results of valgrind tests in a couple more places.
27813 Wed Dec 13 00:31:04 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27815         * docs/Makefile.am: New rules for generating XapianAdminNotes.html
27816           from XapianAdminNotes.txt
27817         * configure.ac: Check for rst2html, and require it in maintainer
27818           mode.
27819         * HACKING: document rst2html as a requirement.
27821 Tue Dec 12 23:58:13 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27823         * docs/XapianAdminNotes.txt: Add new document giving an
27824           introduction to Xapian concepts for system administrators.
27826 Tue Dec 12 21:33:38 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27828         * docs/quartzdesign.html: Fix an unmatched bracket.
27830 Tue Dec 12 21:18:54 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27832         * backends/quartz/quartz_alldocspostlist.cc: Fix memory leak
27833           discovered by valgrind in QuartzAllDocsPostList constructor: was
27834           failing to delete the Bcursor.
27836 Tue Dec 12 21:05:47 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27838         * queryparser/queryparser.lemony: Fix parsing of queries of the
27839           form "+foo* bar", where no terms in the database match the
27840           wildcard "foo*", but bar does exist in the database.  Previously,
27841           such queries would be equivalent to "bar".  Now, they will match
27842           no documents.  This required using a new "QpQuery" object
27843           internally so we can distinguish between deliberately "match
27844           nothing" queries, and empty lists of queries.
27845         * tests/api_anydb.cc,tests/queryparsertest.cc: Test above fix, and
27846           general parsing of wildcard queries with +terms, and test
27847           performing a match with a query resulting from a wildcard query
27848           which matches nothing.
27850 Tue Dec 12 21:05:15 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27852         * tests/api_nodb.cc,api/omqueryinternal.cc,api/omquery.cc: Fix some
27853           copyright assertions I missed.
27855 Tue Dec 12 19:38:39 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27857         * include/xapian/query.h,api/omqueryinternal.cc,api/omquery.cc: Add
27858           two static Query objects: Xapian::Query::MatchAll and
27859           Xapian::Query::MatchNothing, which match all documents and no
27860           documents in the database, respectively.  (Equivalent to
27861           Query("") and Query()).  Allow empty queries such as MatchNothing
27862           to be combined with other queries.  Change methods of
27863           Xapian::Query::Internal to use pointers to query internals
27864           instead of references, so they can handle the NULL pointer
27865           internals of an empty query.
27866         * tests/api_nodb.cc: Test combining of MatchNothing queries with
27867           other queries with OP_AND and OP_OR.
27869 Tue Dec 12 20:01:58 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27871         * configure.ac: Fix valgrind better: --log-file-exactly isn't what
27872           is wanted, because it messes up if multiple processes are traced.
27873           Instead, use a temporary file instead of /dev/null, so we don't
27874           get the permission denied error.
27876 Tue Dec 12 19:15:20 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27878         * configure.ac: Fix detection of valgrind for newer valgrind.  My
27879           version of valgrind (valgrind-3.2.1-Debian, from ubuntu feisty)
27880           treats the parameter supplied to --log-file as a base path, and
27881           appends a process ID. This caused the test for the log-file
27882           option to fail with permission denied errors due to trying to
27883           write to files of the form '/dev/null.16098'.  Solution - test
27884           for the --log-file-exactly option, and use that.  Also, change
27885           configure.ac to display the result of the tests for valgrind; was
27886           displaying that it had found it, but not mentioning that it
27887           couldn't make it work.
27889 Tue Dec 05 21:12:12 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
27891         * include/xapian/query.h,api/omqueryinternal.cc: Fix query
27892           serialisation bug.  Was failing to propagate "curpos" parameter
27893           across subqueries, resulting in incorrect serialisation of
27894           termpositions.
27895         * tests/internaltest.cc: Regression test for this bug.
27897 Tue Dec 05 01:34:07 GMT 2006  Olly Betts <olly@survex.com>
27899         * HACKING: Clarify how XAPIAN_DEBUG_FLAGS works.
27901 Tue Dec 05 01:23:12 GMT 2006  Olly Betts <olly@survex.com>
27903         * examples/quest.cc: Add "--stemmer" option to allow stemming language
27904           to be set, or stemming to be disabled.
27906 Sun Dec 03 00:34:27 GMT 2006  Olly Betts <olly@survex.com>
27908         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Add entries
27909           to the "unstem" map for prefixed boolean filters (e.g. type:html).
27910           Also don't corrupt non-ASCII characters in a prefixed boolean
27911           filter.
27913 Sat Nov 25 04:17:23 GMT 2006  Olly Betts <olly@survex.com>
27915         * backends/flint/flint_database.cc,backends/flint/flint_version.cc:
27916           The "my_fls()" change actually results in a different interpolative
27917           encoding in a few cases - the old encoding could vary between
27918           architectures so we have to change it.  So bump the FLINT_VERSION
27919           and change the "flicklock" file to be "flintlock" as it should have
27920           been all along!
27922 Wed Nov 22 18:55:42 GMT 2006  Olly Betts <olly@survex.com>
27924         * xapian-config.in: Improve --version output so that help2man produces
27925           a better man page.
27927 Mon Nov 20 07:21:07 GMT 2006  Olly Betts <olly@survex.com>
27929         * backends/flint/flint_positionlist.cc: Fix another off-by-one
27930           error (> should be >=).
27932 Mon Nov 20 07:12:11 GMT 2006  Olly Betts <olly@survex.com>
27934         * backends/flint/flint_positionlist.cc: Fix off-by-one error in code
27935           which calls my_fls().
27937 Sat Nov 18 08:32:08 GMT 2006  Olly Betts <olly@survex.com>
27939         * backends/flint/flint_positionlist.cc: "const static" -> "static
27940           const".
27942 Sat Nov 18 08:05:17 GMT 2006  Olly Betts <olly@survex.com>
27944         * backends/flint/flint_positionlist.cc: Make decode_interpolative
27945           a member function of BitReader.
27947 Sat Nov 18 07:45:19 GMT 2006  Olly Betts <olly@survex.com>
27949         * backends/flint/flint_positionlist.cc: Add highly optimised fls()
27950           implementation and make use of it.
27952 Thu Nov 16 04:22:36 GMT 2006  Olly Betts <olly@survex.com>
27954         * m4/xapian.m4: If XAPIAN_CONFIG wasn't specified and xapian-config
27955           wasn't found, see if the library seems to be present - if so give
27956           a different error message which suggests the user needs to install
27957           a -dev or -devel package.
27959 Thu Nov 16 02:11:34 GMT 2006  Olly Betts <olly@survex.com>
27961         * docs/install.html: omega tarball is now xapian-omega.
27963 Tue Nov 14 22:42:05 GMT 2006  Olly Betts <olly@survex.com>
27965         * tests/harness/Makefile: Add static Makefile so you can make all,
27966           check, and clean from the subdirectory.
27967         * tests/harness/Makefile.mk: Ship Makefile.mk and Makefile.
27969 Tue Nov 14 21:53:45 GMT 2006  Olly Betts <olly@survex.com>
27971         * tests/: Remove muscat36 temporary directories from svn:ignore
27972           property.
27974 Tue Nov 14 19:47:30 GMT 2006  Olly Betts <olly@survex.com>
27976         * configure.ac,tests/Makefile.am,tests/harness/Makefile.mk: Use
27977           non-recursive make to build the test harness, so it only gets
27978           built if "make check" is run.
27980 Tue Nov 14 19:43:48 GMT 2006  Olly Betts <olly@survex.com>
27982         * tests/quartztest.cc: Removed unused static function unlink_table.
27984 Tue Nov 14 17:41:26 GMT 2006  Olly Betts <olly@survex.com>
27986         * include/xapian/queryparser.h,queryparser/queryparser.lemony,
27987           tests/queryparsertest.cc: Add QueryParser::FLAG_PURE_NOT to allow
27988           pure NOT queries to be enabled (they are now disabled by default).
27990 Tue Nov 14 04:19:40 GMT 2006  Olly Betts <olly@survex.com>
27992         * backends/database.cc,backends/flint/dir_contents,
27993           backends/quartz/dir_contents,docs/overview.html,
27994           docs/quartzdesign.html,docs/scalability.html: Make flint the default
27995           backend.
27997 Tue Nov 14 03:25:19 GMT 2006  Olly Betts <olly@survex.com>
27999         * tests/api_nodb.cc: Xapian::Query("") now builds a query which
28000           matches all documents rather than throwing InvalidArgumentError
28001           so fix emptyquery1 test.
28003 Tue Nov 14 02:03:29 GMT 2006  Olly Betts <olly@survex.com>
28005         * api/omdocument.cc: Tweak OmDocumentTerm::add_position() so that
28006           adding position 0 to an empty termlist takes the shortcut.
28008 Mon Nov 13 05:46:15 GMT 2006  Olly Betts <olly@survex.com>
28010         * docs/queryparser.html: Document the new pure NOT feature.
28012 Mon Nov 13 05:24:30 GMT 2006  Olly Betts <olly@survex.com>
28014         * api/omqueryinternal.cc,queryparser/queryparser.lemony,
28015           tests/queryparsertest.cc: Allow "pure NOT" queries - e.g.
28016           "NOT apples".  Fixes bug #99.
28018 Mon Nov 13 04:54:04 GMT 2006  Olly Betts <olly@survex.com>
28020         * api/omqueryinternal.cc: Undo changes accidentally committed in last
28021           check-in.
28023 Mon Nov 13 04:47:57 GMT 2006  Olly Betts <olly@survex.com>
28025         * api/omqueryinternal.cc,backends/Makefile.am,backends/database.cc,
28026           backends/muscat36/,configure.ac,docs/overview.html,
28027           docs/quartzdesign.html,docs/tests.html,include/xapian/dbfactory.h,
28028           include/xapian/version_h.cc,tests/api_anydb.cc,tests/apitest.cc,
28029           tests/harness/backendmanager.cc,tests/harness/backendmanager.h,
28030           tests/harness/index_utils.cc: Remove support for the old Muscat 3.6
28031           backends.
28033 Mon Nov 13 04:02:27 GMT 2006  Richard Boulton <richard@lemurconsulting.com>
28035         * common/database.h,api/omdatabase.cc,
28036           backends/inmemory/inmemory_database.cc,
28037           backends/inmemory/inmemory_database.h,
28038           backends/quartz/Makefile.am,backends/quartz/quartz_database.cc,
28039           backends/quartz/quartz_alldocspostlist.h,
28040           backends/quartz/quartz_alldocspostlist.cc,
28041           backends/flint/Makefile.am,backends/flint/flint_database.cc,
28042           backends/flint/flint_alldocspostlist.cc,
28043           backends/flint/flint_alldocspostlist.h:
28044           Implement posting lists which return a list of all documents in
28045           the database.  Such a posting list is obtained by calling
28046           Xapian::Database::postlist_begin() with an empty term (ie, "").
28047           Also, all Xapian::Database methods which take a termname now
28048           accept an empty term, and return appropriate values (ie,
28049           get_termfreq("") and get_collection_freq("") return the number of
28050           documents in the database, and term_exists("") returns true
28051           unless the database is empty).  Fixes Bug #47.
28052         * docs/quartzdesign.html: Document the inefficiency of all-document
28053           postlists for Quartz.
28054         * tests/api_anydb.cc,tests/api_db.cc,tests/api_wrdb.cc: Add tests for
28055           all-document postlists, and for passing an empty term to all the
28056           applicable database methods.  This defines the new tests
28057           allpostlist1, allpostlist2, emptyterm1, and emptyterm2.  These
28058           tests currently skip for the remote backend where postlist_begin()
28059           isn't yet implemented.
28061 Mon Nov 13 02:06:03 GMT 2006  Olly Betts <olly@survex.com>
28063         * Merge in utf8 branch:
28065         Thu Sep 14 23:49:48 BST 2006  Olly Betts <olly@survex.com>
28067                 * queryparser/,tests/queryparsertest.cc: Update to work with
28068                   UTF-8.  Stop normalising accents - the general sentiment
28069                   seems to be firmly against it, and where it is still
28070                   appropriate we should get the stemmers to do it.
28072 Sun Nov 12 22:38:56 GMT 2006  Olly Betts <olly@survex.com>
28074         * NEWS: Update from ChangeLog file in preparation for branching and
28075           merging.
28077 Sun Nov 12 19:32:01 GMT 2006  Olly Betts <olly@survex.com>
28079         * backends/flint/flint_database.cc,
28080           backends/inmemory/inmemory_database.cc,
28081           backends/inmemory/inmemory_database.h,
28082           backends/quartz/quartz_database.cc: Fix replace_document() not to
28083           lose positional information for a document if it is replaced with
28084           itself with unmodified postings.
28085         * tests/api_wrdb.cc: Add testcase replace_document5 as regression test
28086           for the replace_document bug.
28087         * backends/remote/remote-database.cc: Fix
28088           RemoteDatabase::has_positions() to refetch the cached value if it
28089           might be out of date.
28091 Sun Nov 12 17:07:00 GMT 2006  Olly Betts <olly@survex.com>
28093         * docs/Makefile.am: Need to increase pool_size further still to build
28094           sourcedoc.pdf (2000000 now).
28096 Sun Nov 12 16:24:15 GMT 2006  Olly Betts <olly@survex.com>
28098         * HACKING: Add "update ReleaseNotes on wiki" to release checklist.
28100 Sun Nov 12 16:23:19 GMT 2006  Olly Betts <olly@survex.com>
28102         * xapian.spec.in: Remove "." from end of "Summary:".  Package
28103           new man page for xapian-progsrv.
28105 Sun Nov 12 00:43:36 GMT 2006  Olly Betts <olly@survex.com>
28107         * docs/stemming.html: Update another "CVS" reference to say "SVN".
28109 Sun Nov 12 00:42:22 GMT 2006  Olly Betts <olly@survex.com>
28111         * docs/install.html: Update reference to "CVS" to say "SVN".
28113 Thu Nov 09 01:11:52 GMT 2006  Olly Betts <olly@survex.com>
28115         * HACKING: Reorder the release checklist a little.  I've fixed
28116           update_website.sh to get the latest version from version.php, so
28117           now only version.php needs updating.
28119 Thu Nov 09 00:17:35 GMT 2006  Olly Betts <olly@survex.com>
28121         * NEWS,PLATFORMS,configure.ac: Update for 0.9.9.
28123 Wed Nov 08 20:54:31 GMT 2006  Olly Betts <olly@survex.com>
28125         * xapian.spec.in: Apply changes from Neal Becker to run "autoreconf
28126           --force" so that we don't set rpath for /usr/lib64, and add "libs"
28127           to %post and %postun.
28128         * AUTHORS: Thank Neal Becker.
28130 Wed Nov 08 04:27:17 GMT 2006  Olly Betts <olly@survex.com>
28132         * docs/tests.html: Update for "testsuite" -> "tests/harness".  Mark
28133           paths and programs with <code>...</code>.  Improve wording in a few
28134           places.
28136 Wed Nov 08 03:10:37 GMT 2006  Olly Betts <olly@survex.com>
28138         * bin/xapian-tcpsrv.cc: Need '#include "safeerrno.h"' for EADDRINUSE.
28140 Wed Nov 08 02:36:59 GMT 2006  Olly Betts <olly@survex.com>
28142         * bin/Makefile.am,bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc:
28143           xapian-progsrv now uses getopt for option processing, and we can
28144           now generate a man page using help2man.  Fixes Bug #98.
28146 Wed Nov 08 01:47:19 GMT 2006  Olly Betts <olly@survex.com>
28148         * bin/xapian-tcpsrv.cc: If the port requested is in use, exit with
28149           code 69 (EX_UNAVAILABLE) which is useful if you're trying to
28150           automate launching of xapian-tcpsrv instances.
28151         * tests/harness/backendmanager.cc: If we can't start xapian-tcpsrv
28152           because the port is in use, try higher numbered ports.
28153         * tests/harness/testsuite.cc: Catch and report std::string exceptions.
28155 Tue Nov 07 22:40:58 GMT 2006  Olly Betts <olly@survex.com>
28157         * net/tcpclient.cc: Turn on TCP_NODELAY for the client too.
28159 Tue Nov 07 21:46:39 GMT 2006  Olly Betts <olly@survex.com>
28161         * net/tcpserver.cc: Turn on TCP_NODELAY for xapian-tcpsrv which
28162           increases throughput for the remote backend over tcp.
28164 Tue Nov 07 21:08:57 GMT 2006  Olly Betts <olly@survex.com>
28166         * backends/flint/flint_btreebase.cc: Add missing '#include'-s.
28168 Tue Nov 07 17:57:22 GMT 2006  Olly Betts <olly@survex.com>
28170         * backends/quartz/btree_base.cc: Add missing '#include'-s.
28172 Tue Nov 07 05:12:40 GMT 2006  Olly Betts <olly@survex.com>
28174         * backends/flint/flint_positionlist.h,backends/flint/flint_table.cc,
28175           backends/quartz/btree.cc: Add missing '#include <vector>' which
28176           "utils.h" was implicitly pulling in.
28177         * common/utils.h: Move '#include "safefcntl.h"' to more logical place.
28179 Tue Nov 07 04:18:27 GMT 2006  Olly Betts <olly@survex.com>
28181         * common/safefcntl.h: Actually add the new file to SVN.
28183 Tue Nov 07 03:36:59 GMT 2006  Olly Betts <olly@survex.com>
28185         * HACKING,backends/flint/flint_io.h,backends/flint/flint_lock.cc,
28186           backends/flint/flint_lock.h,backends/muscat36/io_system.cc,common/,
28187           net/tcpserver.cc,tests/harness/backendmanager.cc,
28188           tests/harness/testsuite.cc: Create "safefcntl.h" as a replacement
28189           for <fcntl.h> instead of using "utils.h" for this purpose, since
28190           "utils.h" pulls in many other things we often don't want.
28191         * common/utils.cc,common/utils.h,net/progclient.cc: Move split_words
28192           to progclient.cc which is the only user of it.  Rewrite it to not
28193           modified the string being split which risks being O(n^2).
28194         * net/progclient.cc,common/progclient.h: Pass std::string by const
28195           reference.
28196         * configure.ac: Fix DJGPP build (fork is present but always fails).
28198 Tue Nov 07 03:21:24 GMT 2006  Olly Betts <olly@survex.com>
28200         * matcher/biaspostlist.h: Don't need '#include "utils.h"'.
28202 Tue Nov 07 01:15:14 GMT 2006  Olly Betts <olly@survex.com>
28204         * common/c_strtod.cc: Remove file which was checked in but is unused!
28206 Mon Nov 06 15:24:02 GMT 2006  Olly Betts <olly@survex.com>
28208         * tests/internaltest.cc: Disable serialiselength1 and serialisedoc1
28209           when the remote backend is disabled.
28211 Mon Nov 06 15:23:40 GMT 2006  Olly Betts <olly@survex.com>
28213         * tests/Makefile.am: Fix typo in recent check-in.
28215 Mon Nov 06 01:43:37 GMT 2006  Olly Betts <olly@survex.com>
28217         * tests/Makefile.am: Need "harness" in "$(srcdir)" for VPATH builds to
28218           work.
28220 Sun Nov 05 19:55:26 GMT 2006  Olly Betts <olly@survex.com>
28222         * backends/quartz/Makefile.am: Remove explicit dependency of
28223           libbtreecheck.la on libxapian.la.  We always link in libxapian.la
28224           and the explicit dependency makes it hard to build things in a
28225           sane order.
28227 Sun Nov 05 19:29:17 GMT 2006  Olly Betts <olly@survex.com>
28229         * net/tcpserver.cc: Don't define on_SIGCHLD() unless we'll use it.
28230         * tests/harness/backendmanager.cc: Use a proper signal handler for
28231           SIGCHLD if we have waitpid() - POSIX leaves the semantics of
28232           SIG_IGN on SIGCHLD unspecified.
28234 Sun Nov 05 19:11:36 GMT 2006  Olly Betts <olly@survex.com>
28236         * backends/quartz/Makefile.am,backends/quartz/btreecheck.cc,
28237           backends/quartz/btreecheck.h,bin/Makefile.am,tests/Makefile.am,
28238           tests/harness/: Use _exit(0) instead of exit(0) in the child
28239           process which closes the pipe to xapian-tcpsrv in BackendManager
28240           since we don't want to call atexit functions from the child.  Move
28241           btreecheck stuff into backends/quartz.
28243 Sun Nov 05 17:12:05 GMT 2006  Olly Betts <olly@survex.com>
28245         * Makefile.am,bin/Makefile.am,configure.ac,tests/Makefile.am,
28246           tests/harness/Makefile.am,tests/harness/dir_contents,testsuite/:
28247           Move the testsuite harness from "testsuite/" to "tests/harness/".
28249 Sun Nov 05 16:36:56 GMT 2006  Olly Betts <olly@survex.com>
28251         * testsuite/backendmanager.cc,testsuite/backendmanager.h: Now needs
28252           <stdio.h>.  Set SIG_IGN for SIG_CHLD so we don't get zombie child
28253           processes.
28255 Sun Nov 05 03:53:24 GMT 2006  Olly Betts <olly@survex.com>
28257         * tests/apitest.cc: Make backendmanager static.
28259 Sun Nov 05 03:51:36 GMT 2006  Olly Betts <olly@survex.com>
28261         * bin/xapian-tcpsrv.cc: Output "Listening..." once the socket is
28262           open and read for connections.
28263         * testsuite/backendmanager.cc: Use popen() to run xapian-tcpsrv
28264           and wait for "Listening..." before returning rather than just
28265           sleeping for 1 second and hoping that's enough.
28267 Sun Nov 05 02:54:23 GMT 2006  Olly Betts <olly@survex.com>
28269         * tests/api_db.cc: Remove unnecessary inclusion of backendmanager.h.
28271 Fri Nov 03 02:09:26 GMT 2006  Olly Betts <olly@survex.com>
28273         * HACKING: Update debian packaging checklist.
28275 Fri Nov 03 00:57:35 GMT 2006  Olly Betts <olly@survex.com>
28277         * docs/Makefile.am: Building sourcedoc.pdf needs a larger pool_size
28278           now.
28280 Thu Nov 02 19:12:34 GMT 2006  Olly Betts <olly@survex.com>
28282         * AUTHORS: Updated.
28284 Thu Nov 02 15:41:46 GMT 2006  Olly Betts <olly@survex.com>
28286         * HACKING,NEWS,configure.ac: Update for 0.9.8.
28288 Thu Nov 02 15:20:05 GMT 2006  Olly Betts <olly@survex.com>
28290         * PLATFORMS: Update from tinderbox.
28292 Thu Nov 02 11:53:53 GMT 2006  Olly Betts <olly@survex.com>
28294         * configure.ac: GCC's -Wendif-labels is enabled by default on versions
28295           which support it, which simplifies our tests.
28297 Thu Nov 02 00:22:44 GMT 2006  Olly Betts <olly@survex.com>
28299         * backends/remote/dir_contents: Update.
28301 Wed Nov 01 15:33:12 GMT 2006  Olly Betts <olly@survex.com>
28303         * common/omstringstream.h: Fix our implementation of om_ostringstream
28304           to work with OmTime.
28306 Wed Nov 01 03:27:36 GMT 2006  Olly Betts <olly@survex.com>
28308         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Don't
28309           require a prefixed boolean term to start with an alphanumeric
28310           - allow the same set of characters as we do for the second and
28311           subsequent characters.
28313 Sat Oct 28 04:12:13 BST 2006  Olly Betts <olly@survex.com>
28315         * bin/quartzcheck.cc: Add catch for unknown exceptions.
28317 Sat Oct 28 03:49:19 BST 2006  Olly Betts <olly@survex.com>
28319         * HACKING,configure.ac,docs/Makefile.am,docs/doxygen_api_conf.in,
28320           docs/doxygen_full_conf.in: Produce a PDF for apidoc rather than
28321           PostScript, since the PDF is smaller, and easier to view for most
28322           users.  Use pdflatex to generate the PDF directly rather than
28323           going via a DVI file.  This also avoids problems on some Linux
28324           distros where latex is a symlink to pdfelatex (bug#81, bug#95).
28326 Thu Oct 26 22:12:20 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28328         * bin/quartzcheck.cc: Catch (and display) any exceptions which are
28329           of type "const char *error".  btreecheck.cc raises an exception
28330           of this type if a btree error is found, and this avoids
28331           quartzcheck dying quite so horribly in this case.
28333 Wed Oct 25 23:30:26 BST 2006  Olly Betts <olly@survex.com>
28335         * configure.ac: -Wendif-labels is new in GCC 3.3.
28336         * configure.ac: Revert accidental change which turned on -Werror in
28337           non-maintainer builds.
28338         * configure.ac: Avoid non-portable use of double quotes in
28339           double-quoted backticks.
28341 Wed Oct 25 01:19:24 BST 2006  Olly Betts <olly@survex.com>
28343         * configure.ac: Redhat's GCC 2.96 doesn't support -Wundef even
28344           though real GCC version before and after it do!  Also, use
28345           -Wshadow and -Wendif-labels even when not in maintainer mode.
28347 Tue Oct 24 04:17:58 BST 2006  Olly Betts <olly@survex.com>
28349         * backends/flint/flint_lock.cc,bin/quartzcheck.cc: Eliminate
28350           a couple of variables whose value is never used.
28352 Tue Oct 24 00:31:25 BST 2006  Olly Betts <olly@survex.com>
28354         * backends/quartz/quartz_database.cc: Only force a flush on
28355           WritableDatabase::allterms_begin() if there are actually pending
28356           changes.
28358 Mon Oct 23 23:49:52 BST 2006  Olly Betts <olly@survex.com>
28360         * backends/flint/flint_database.cc: Only force a flush on
28361           WritableDatabase::allterms_begin() if there are actually pending
28362           changes.
28364 Mon Oct 23 02:24:12 BST 2006  Olly Betts <olly@survex.com>
28366         * configure.ac: When checking if we need -lm, don't use a constant
28367           argument to log as the compiler might simply evaluate the whole
28368           expression at compile time.
28370 Sat Oct 21 20:42:52 BST 2006  Olly Betts <olly@survex.com>
28372         * HACKING: Mention automake 1.10 is out but we've not tested it yet.
28374 Sat Oct 21 20:39:57 BST 2006  Olly Betts <olly@survex.com>
28376         * HACKING: Add entries to release checklist: make sure new API methods
28377           are wrapped by the bindings, and that bug submitters are thanked.
28379 Fri Oct 20 13:56:50 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28381         * backends/flint/flint_io.cc: Fix compilation on windows (needs to
28382           #include "safewindows.h" to get definition of SSIZE_T).
28384 Tue Oct 17 02:16:37 BST 2006  Olly Betts <olly@survex.com>
28386         * testsuite/backendmanager.cc: Fix compilation when valgrind is
28387           detected by configure.
28389 Thu Oct 12 13:30:05 BST 2006  Olly Betts <olly@survex.com>
28391         * xapian.spec.in: Package xapian-progsrv.
28393 Thu Oct 12 00:49:47 BST 2006  Olly Betts <olly@survex.com>
28395         * HACKING: Note that on Debian, tetex-extra is needed for
28396           fancyhdr.sty.
28397         * HACKING: Note that dch can be used to update debian/changelog.
28399 Wed Oct 11 23:35:08 BST 2006  Olly Betts <olly@survex.com>
28401         * docs/Makefile.am: If running latex on refman.ps fails, cat
28402           refman.log since that is likely to show what failed.
28404 Tue Oct 10 17:24:00 BST 2006  Olly Betts <olly@survex.com>
28406         * NEWS: Bump release date.
28408 Sun Oct 08 21:41:04 BST 2006  Olly Betts <olly@survex.com>
28410         * NEWS,PLATFORMS,configure.ac: Update for 0.9.7.
28412 Sun Oct 08 10:06:51 BST 2006  Olly Betts <olly@survex.com>
28414         * testsuite/testsuite.cc: Use lseek() to skip existing valgrind output
28415           instead of repeated calls to read.  Handle the old valgrind naming
28416           convention for log files.
28418 Sun Oct 08 09:35:59 BST 2006  Olly Betts <olly@survex.com>
28420         * matcher/multimatch.cc: Fix a couple of typos in comments.
28422 Sun Oct 08 05:36:36 BST 2006  Olly Betts <olly@survex.com>
28424         * configure.ac: Disable probing and short-cut tests for a FORTRAN
28425           compiler.  We don't use one, but current libtool versions always
28426           check for it regardless.
28428 Sat Oct 07 21:19:35 BST 2006  Olly Betts <olly@survex.com>
28430         * configure.ac,tests/runtest.in,testsuite/backendmanager.cc,
28431           testsuite/testsuite.cc: Fix testsuite harness to show valgrind
28432           output when a test fails (when running under valgrind in verbose
28433           mode).  This probably stopped working due to changes in valgrind 3.
28434         * testsuite/backendmanager.cc: Run xapian-tcpsrv under valgrind if
28435           apitest is.
28437 Fri Oct  6 18:27:13 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28439         * tests/runtest.in: export $LIBTOOL, $VALGRIND and $VG_LOG_FD.
28440         * testsuite/backendmanager.cc: If $LIBTOOL, $VALGRIND and
28441           $VG_LOG_FD are set, run progsrv under valgrind.  Fixes
28442           Bug #94.
28443         * net/remoteserver.cc: Use an AutoPtr to hold the unserialised
28444           query, so it gets deleted if an exception is thrown.
28445         * api/omqueryinternal.cc: Use AutoPtr in one place, and a try-catch
28446           in another, to ensure that partially unserialised queries get
28447           deleted if exceptions are thrown.
28448         * tests/internaltest.cc: Add copyright notices to file for recent
28449           change.
28450         * AUTHORS: Add myself as a current developer, now that I've started
28451           committing to the core again.
28453 Fri Oct 06 17:44:21 BST 2006  Olly Betts <olly@survex.com>
28455         * api/omqueryinternal.cc: Fix memory leak in query unserialisation.
28457 Fri Oct  6 17:34:59 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28459         * tests/runtest.in: Cache result of test for $VG_LOG_FD if we
28460           find the new option.  Saves 2 seconds for each invocation on my
28461           machine, which is half the time when running just a single simple
28462           test.
28464 Fri Oct  6 16:35:46 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28466         * tests/internaltest.cc: Check serialisation and unserialisation of
28467           Query objects.  Currently fails under valgrind due to a memory
28468           leak somewhere in the unserialisation code.
28470 Thu Oct 05 14:13:55 BST 2006  Olly Betts <olly@survex.com>
28472         * include/xapian/error.h: Only enable the SWIG visibility hook when
28473           using GCC 4 or later.
28475 Wed Oct 04 20:32:43 BST 2006  Olly Betts <olly@survex.com>
28477         * m4/xapian.m4: Remove overquoting.
28479 Wed Oct  4 13:28:09 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28481         * common/utils.h: MSVC seems to #define open.  However, the
28482           workaround for this problem implemented for old versions of
28483           solaris doesn't work for windows, so avoid applying the fix for
28484           windows, and just #undef open.  (Windows seems to define some
28485           open() functions, as well as #defining open!)
28487 Wed Oct  4 13:26:18 BST 2006  Richard Boulton <richard@lemurconsulting.com>
28489         * net/serialise.cc: Use "unsigned char" instead of "char" when
28490           serialising lengths, to avoid problems on platforms where char is
28491           signed (eg, windows).
28493 Wed Oct 04 12:25:51 BST 2006  Olly Betts <olly@survex.com>
28495         * backends/flint/flint_version.cc: Remove "100" from start of file so
28496           it actually compiles.
28498 Mon Oct 02 13:57:56 BST 2006  Olly Betts <olly@survex.com>
28500         * xapian-config.in: Fix typo - "@libdir" should be "@libdir@".
28501           This would lead to -L/usr/lib not being pruned, which is really
28502           just a cosmetic problem (the typo was introduced in 0.9.3).
28504 Thu Sep 28 02:00:05 BST 2006  Olly Betts <olly@survex.com>
28506         * matcher/multimatch.cc: Reserve the right number of entries in the
28507           subrsets vector.
28509 Fri Sep 22 07:48:32 BST 2006  Olly Betts <olly@survex.com>
28511         * common/serialise-double.cc: Fix warning with aCC.
28513 Fri Sep 22 04:43:06 BST 2006  Olly Betts <olly@survex.com>
28515         * HACKING: Expand note on _GLIBCXX_DEBUG;  Now using autoconf 2.60 for
28516           snapshots and releases;  Now using a libtool patch which improves
28517           support for -library=stlport4 with Sun's C++;  Give URL to Alexandre
28518           Duret-Lutz's autotools tutorial, which is much more up-to-date than
28519           the "goat book".
28521 Fri Sep 22 04:42:08 BST 2006  Olly Betts <olly@survex.com>
28523         * common/serialise-double.cc: Fix a few compiler warnings.
28525 Fri Sep 22 04:29:18 BST 2006  Olly Betts <olly@survex.com>
28527         * backends/flint/flint_lock.cc: Retry on EINTR from fcntl or waitpid.
28529 Fri Sep 22 03:39:12 BST 2006  Olly Betts <olly@survex.com>
28531         * include/xapian/version_h.cc: Only check _GLIBCXX_DEBUG for GCC 3.4
28532           and later (which are the versions which support it).
28534 Fri Sep 22 03:37:02 BST 2006  Olly Betts <olly@survex.com>
28536         * bin/xapian-tcpsrv.cc: Report errno if we catch a Xapian::Error which
28537           has it set.
28539 Fri Sep 22 03:30:25 BST 2006  Olly Betts <olly@survex.com>
28541         * configure.ac: Turn on -Wportability to help ensure our Makefile.am's
28542           are written in a portable way.
28544 Fri Sep 22 03:29:25 BST 2006  Olly Betts <olly@survex.com>
28546         * tests/runtest.in: Turn on GLIBCXX_FORCE_NEW when running tests under
28547           valgrind.
28549 Tue Sep 19 06:28:47 BST 2006  Olly Betts <olly@survex.com>
28551         * tests/internaltest.cc: Check that the the destructor on a temporary
28552           object gets called at the correct time (Sun C++ deliberately gets
28553           this wrong by default).
28555 Tue Sep 19 04:32:04 BST 2006  Olly Betts <olly@survex.com>
28557         * include/xapian/enquire.h: Revert change to Xapian::Weight's copy
28558           constructor because it prevents Omega from compiling.
28560 Tue Sep 19 04:01:14 BST 2006  Olly Betts <olly@survex.com>
28562         * configure.ac: Make the argument of log() a double to avoid
28563           potential compiler warnings.
28565 Mon Sep 18 22:58:19 BST 2006  Olly Betts <olly@survex.com>
28567         * include/xapian/enquire.h: Xapian::Weight's copy constructor should
28568           be private not protected (direct copying isn't allowed).
28570 Mon Sep 18 07:03:51 BST 2006  Olly Betts <olly@survex.com>
28572         * configure.ac: We reportedly need "-lm" to get maths functions on
28573           some versions of Sun's C++ compiler.
28575 Sat Sep 16 12:08:25 BST 2006  Olly Betts <olly@survex.com>
28577         * configure.ac: Sun's C++ compiler implements non-standards-conforming
28578           lifetimes for temporary objects (for "backwards compatibility" with
28579           old Sun C++ specific code).  We don't care about such code, so
28580           always pass "-features=tmplife" for Sun C++.
28582 Sat Sep 16 03:04:57 BST 2006  Olly Betts <olly@survex.com>
28584         * bin/xapian-progsrv.cc: Oops, fix compilation error.
28586 Sat Sep 16 02:13:22 BST 2006  Olly Betts <olly@survex.com>
28588         * bin/xapian-progsrv.cc: Fix messages send by xapian-progsrv if an
28589           exception is thrown while opening the database.
28591 Fri Sep 15 06:29:55 BST 2006  Olly Betts <olly@survex.com>
28593         * tests/internaltest.cc: 1/DBL_MAX may be less than DBL_MIN but on
28594           platforms like x86 which hold results in registers with extra
28595           precision, this is still representable, but not reliably so
28596           the test sometimes fails.
28598 Fri Sep 15 02:40:52 BST 2006  Olly Betts <olly@survex.com>
28600         * backends/flint/flint_btreebase.cc: Avoid copying beyond the end of
28601           the bitmap block.
28603 Thu Sep 14 02:01:58 BST 2006  Olly Betts <olly@survex.com>
28605         * backends/flint/flint_version.cc: Fix warning from GCC 4.1.0.
28607 Wed Sep 13 18:12:43 BST 2006  Olly Betts <olly@survex.com>
28609         * backends/flint/flint_io.cc,backends/flint/flint_io.h,
28610           backends/flint/flint_version.cc: Fix compiler warnings.
28612 Wed Sep 13 06:09:40 BST 2006  Olly Betts <olly@survex.com>
28614         * backends/flint/flint_version.cc,backends/flint/flint_version.h:
28615           Actually commit the new files!
28617 Wed Sep 13 05:21:04 BST 2006  Olly Betts <olly@survex.com>
28619         * backends/flint/,common/utils.h: Rewrite some of flint's low level IO
28620           functions, and the "iamflint" handling class.
28622 Tue Sep 12 20:22:57 BST 2006  Olly Betts <olly@survex.com>
28624         * backends/remote/remote-database.cc: Fix to compile.
28626 Tue Sep 12 18:56:16 BST 2006  Olly Betts <olly@survex.com>
28628         * backends/remote/remote-database.cc,common/remote-database.h:
28629           Fix bug in remote backend which incorrectly returned an empty MSet
28630           under certain circumstances!
28632 Tue Sep 12 11:51:31 BST 2006  Olly Betts <olly@survex.com>
28634         * matcher/msetcmp.cc: "static inline" -> "inline" since the static is
28635           superfluous and Sun's C++ warns.
28637 Mon Sep 11 23:42:28 BST 2006  Olly Betts <olly@survex.com>
28639         * configure.ac: Check $CXX not $CC to identify which C++ compiler we
28640           have.
28642 Mon Sep 11 16:32:37 BST 2006  Olly Betts <olly@survex.com>
28644         * api/omenquire.cc,api/vectortermlist.h,
28645           backends/flint/flint_positionlist.cc,configure.ac,
28646           net/remoteconnection.cc,net/tcpclient.cc,
28647           queryparser/queryparser.lemony,tests/api_anydb.cc,tests/api_db.cc,
28648           tests/api_nodb.cc: I've discovered that -library=stlport4 puts
28649           Sun's compiler into an "ANSI C++ compliant" mode, so do that
28650           automatically in configure and throw away all the annoying special
28651           bits of alternative code we'd accumulated just for this one
28652           compiler.
28654 Mon Sep 11 16:01:20 BST 2006  Olly Betts <olly@survex.com>
28656         * tests/api_wrdb.cc: Speed up deldoc4 when run in verbose mode
28657           - some stringstream implementations are very inefficient when
28658           the string grows long.
28660 Mon Sep 11 05:30:29 BST 2006  Olly Betts <olly@survex.com>
28662         * HACKING: Add some advice regarding debugging using -D_GLIBCXX_DEBUG,
28663           valgrind, and gdb.
28665 Sun Sep 10 02:24:47 BST 2006  Olly Betts <olly@survex.com>
28667         * configure.ac: Fix last check-in to actually work.
28669 Sat Sep 09 04:19:44 BST 2006  Olly Betts <olly@survex.com>
28671         * configure.ac: Ensure that if _GLIBCXX_DEBUG has been specified that
28672           it also passed when generating version.h.
28674 Sat Sep 09 04:01:40 BST 2006  Olly Betts <olly@survex.com>
28676         * tests/internaltest.cc: Give more useful output should the double
28677           serialisation test fail.
28679 Sat Sep 09 03:19:20 BST 2006  Olly Betts <olly@survex.com>
28681         * include/xapian/version_h.cc: Add a check that _GLIBCXX_DEBUG is
28682           set compatibly if we're compiling with GNU C++.
28684 Sat Sep 09 02:55:38 BST 2006  Olly Betts <olly@survex.com>
28686         * backends/flint/flint_modifiedpostlist.cc: Fix potential access to
28687           iterator which has already reached its end.
28689 Fri Sep 08 04:05:28 BST 2006  Olly Betts <olly@survex.com>
28691         * backends/remote/remote-database.cc,common/,matcher/bm25weight.cc,
28692           matcher/tradweight.cc,net/,tests/internaltest.cc: Split the double
28693           serialisation code off into its own file - it is used by BM25Weight
28694           and TradWeight, so it needs to be compiled in even when the remote
28695           backend is disabled.
28697 Thu Sep 07 00:09:41 BST 2006  Olly Betts <olly@survex.com>
28699         * testsuite/backendmanager.cc: Discard stderr from xapian-tcpsrv
28700           so we don't get "write error" messages appearing in the testsuite
28701           output when we've just closed the connection at the client side.
28703 Tue Sep 05 21:07:40 BST 2006  Olly Betts <olly@survex.com>
28705         * api/omqueryinternal.cc: Fix warning when remote backend
28706           is disabled.
28708 Tue Sep 05 20:58:52 BST 2006  Olly Betts <olly@survex.com>
28710         * docs/Makefile.am: Add extra dependencies so that parallel make
28711           doesn't try to run latex twice simultaneously.
28713 Tue Sep 05 20:58:13 BST 2006  Olly Betts <olly@survex.com>
28715         * AUTHORS: Updated.
28717 Tue Sep 05 20:56:50 BST 2006  Olly Betts <olly@survex.com>
28719         * Makefile.am: Fix typo.
28721 Tue Sep 05 03:23:14 BST 2006  Olly Betts <olly@survex.com>
28723         * docs/queryparser.html,queryparser/queryparser.lemony,
28724           tests/queryparsertest.cc: Implement "ADJ" operator - like
28725           "NEAR" except the terms must appear in matching documents in the
28726           same order as in the query.
28728 Tue Sep 05 03:19:12 BST 2006  Olly Betts <olly@survex.com>
28730         * backends/remote/remote-database.cc,common/,docs/remote_protocol.html,
28731           matcher/bm25weight.cc,matcher/tradweight.cc,net/remoteserver.cc,
28732           net/serialise.cc,tests/internaltest.cc: Change how doubles are
28733           serialised by TradWeight, BM25Weight, and in the remote backend
28734           protocol.  The new encoding allows us to transfer any double
28735           value which can be represented by both machines precisely and
28736           compactly.
28738 Tue Sep 05 02:27:36 BST 2006  Olly Betts <olly@survex.com>
28740         * docs/queryparser.html,queryparser/queryparser.lemony,
28741           tests/queryparsertest.cc: Allow a distance to be specified
28742           for NEAR - e.g. "cats NEAR/3 dogs" (bug#92).
28744 Fri Sep 01 00:29:10 BST 2006  Olly Betts <olly@survex.com>
28746         * backends/remote/remote-database.cc,common/remote-database.h:
28747           Fix RemoteDatabase::reopen() to not be const so it actually
28748           overrides the virtual method it is supposed to.
28750 Thu Aug 31 21:40:53 BST 2006  Olly Betts <olly@survex.com>
28752         * testsuite/backendmanager.h: Remove unneeded BackendManager::
28753           qualifications.
28755 Thu Aug 31 17:08:16 BST 2006  Olly Betts <olly@survex.com>
28757         * matcher/msetpostlist.cc,matcher/msetpostlist.h: Move #include
28758           "omenquireinternal.h" into the header to fix compilation error
28759           with older versions of GCC.
28761 Thu Aug 31 16:38:33 BST 2006  Olly Betts <olly@survex.com>
28763         * PLATFORMS: Added success report for Nexenta (alpha 5).
28765 Wed Aug 30 23:41:08 BST 2006  Olly Betts <olly@survex.com>
28767         * configure.ac: Fix generation of version.h to work with Solaris sed.
28769 Sat Aug 26 15:28:22 BST 2006  Olly Betts <olly@survex.com>
28771         * docs/index.html: Add links to the wiki.
28773 Sun Jul 16 03:48:26 BST 2006  Olly Betts <olly@survex.com>
28775         * common/Makefile.am: Ship remoteprotocol.h.
28777 Sun Jul 16 02:23:54 BST 2006  Olly Betts <olly@survex.com>
28779         * common/remote-database.h: Add new file I missed in the previous
28780           commit.
28782 Sun Jul 16 01:58:25 BST 2006  Olly Betts <olly@survex.com>
28784         * Makefile.am,api/,backends/Makefile.am,backends/database.cc,
28785           backends/dbfactory_remote.cc,backends/flint/flint_database.cc,
28786           backends/flint/flint_termlist.cc,backends/flint/flint_termlist.h,
28787           backends/inmemory/inmemory_database.cc,
28788           backends/inmemory/inmemory_database.h,
28789           backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
28790           backends/net/,backends/quartz/quartz_termlist.cc,
28791           backends/quartz/quartz_termlist.h,backends/remote/,bin/Makefile.am,
28792           bin/xapian-progsrv.cc,bin/xapian-tcpsrv.cc,common/,configure.ac,
28793           docs/remote_protocol.html,include/xapian/,matcher/,net/,tests/,
28794           testsuite/backendmanager.cc,testsuite/backendmanager.h: Rewrite
28795           most of the remote backend.  It now supports most operations
28796           which a local database does (including writing!), the protocol
28797           used is more compact, and a number of layers of classes have
28798           been eliminated and the sequences of method calls simplified, so the
28799           code should be easier to understand and maintain despite doing more.
28800           A number of bugs have been fixed in the process.
28802 Sat Jul 15 05:10:38 BST 2006  Olly Betts <olly@survex.com>
28804         * tests/api_nodb.cc: Doesn't need <iostream>.
28806 Sat Jul 15 01:06:27 BST 2006  Olly Betts <olly@survex.com>
28808         * README: Add link to the wiki.  Tweak wording.
28810 Fri Jul 14 15:21:39 BST 2006  Olly Betts <olly@survex.com>
28812         * configure.ac: Note in error message that dot is in graphviz.
28814 Fri Jul 14 15:17:36 BST 2006  Olly Betts <olly@survex.com>
28816         * docs/overview.html: Add discussion of uses of terms vs values.
28818 Fri Jul 14 15:01:04 BST 2006  Olly Betts <olly@survex.com>
28820         * docs/overview.html: Rewrite the section on Xapian::Document to
28821           remove some very out-of-date information and make it clearer.
28823 Tue Jul 11 18:41:07 BST 2006  Olly Betts <olly@survex.com>
28825         * queryparser/queryparser.lemony: Fix problem I believe was introduced
28826           by previous fix.
28827         * tests/queryparsertest.cc: Add regression test and some additional
28828           related test cases.
28830 Tue Jul 11 03:32:48 BST 2006  Olly Betts <olly@survex.com>
28832         * queryparser/queryparser.lemony: Fix bug in how we handle prefixed
28833           quoted phrases and prefixed brackets.
28834         * tests/queryparsertest.cc: Add regression tests.
28836 Mon Jul 10 23:17:58 BST 2006  Olly Betts <olly@survex.com>
28838         * include/xapian/database.h: Note that automatically allocated
28839           document IDs don't reuse IDs from deleted document.
28841 Wed Jul 05 01:06:35 BST 2006  Olly Betts <olly@survex.com>
28843         * tests/api_wrdb.cc: Tweak whitespace.
28845 Mon Jun 26 23:56:02 BST 2006  Olly Betts <olly@survex.com>
28847         * PLATFORMS: Added success reports for MSVC and sparc linux.
28849 Sat Jun 17 02:01:35 BST 2006  Olly Betts <olly@survex.com>
28851         * Makefile.am,tests/Makefile.am: Tweak new check-* rules to be more
28852           portable and robust.
28854 Sun Jun 11 23:29:48 BST 2006  Olly Betts <olly@survex.com>
28856         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fix parsing
28857           of loved and hated prefixed phrases and bracketted expressions.  Fix
28858           handling of stopwords in boolean expressions.  Don't ignore a
28859           stopword if it's the only query term.  Add regression tests for all
28860           these cases.
28862 Fri Jun 09 15:21:07 BST 2006  Olly Betts <olly@survex.com>
28864         * docs/queryparser.html: Add pointer to set_database when describing
28865           FLAG_WILDCARD.
28867 Fri Jun 09 13:51:03 BST 2006  Olly Betts <olly@survex.com>
28869         * include/xapian/queryparser.h: Add note that FLAG_WILDCARD requires
28870           you to call set_database.
28872 Fri Jun 09 13:49:34 BST 2006  Olly Betts <olly@survex.com>
28874         * api/omqueryinternal.cc: Don't compile query serialisation if the
28875           remote backend is disabled.
28877 Fri Jun 09 01:48:25 BST 2006  Olly Betts <olly@survex.com>
28879         * api/omdocument.cc,tests/api_nodb.cc: add_value failed to replace an
28880           existing value with the same number, contrary to what the
28881           documentation says (bug #82).
28883 Thu Jun 08 21:36:54 BST 2006  Olly Betts <olly@survex.com>
28885         * matcher/multimatch.cc: Don't fetch the document data when fetching
28886           the value to sort on.  Simple benchmarking showed this to speed
28887           up sort by value by a factor of between 3 and 9!
28889 Sun Jun 04 17:36:01 BST 2006  Olly Betts <olly@survex.com>
28891         * backends/flint/: Remove forced flush when iterating the posting list
28892           of a term which has modified posting pending.
28894 Sat Jun 03 21:38:43 BST 2006  Olly Betts <olly@survex.com>
28896         * backends/flint/flint_database.cc,backends/flint/flint_termlist.cc,
28897           backends/quartz/quartz_database.cc,tests/api_wrdb.cc: We can't flush
28898           during a transaction, which means that we can't use flush to avoid
28899           having to handle corner cases (like deleting a document right after
28900           adding it before it's been flushed) so handle corner cases properly
28901           (except for postlist_begin() and allterms_begin() which are
28902           harder - these now throw UnimplementedError at least...)
28903         * backends/flint/flint_database.cc,backends/quartz/quartz_database.cc:
28904           replace_document(did, doc) was double-incrementing the "changes"
28905           counter when document did didn't exist - fixed.
28907 Sat Jun 03 17:53:41 BST 2006  Olly Betts <olly@survex.com>
28909         * HACKING: Document "make check-flint" and "make check-quartz".
28911 Sat Jun 03 17:49:25 BST 2006  Olly Betts <olly@survex.com>
28913         * Makefile.am,tests/Makefile.am: Added make targets "check-flint" and
28914           "check-quartz" which run the subset of tests which test the flint
28915           and quartz backends respectively.
28917 Sat Jun 03 04:03:00 BST 2006  Olly Betts <olly@survex.com>
28919         * api/omdatabase.cc,backends/database.cc,
28920           backends/flint/flint_database.cc,backends/flint/flint_database.h,
28921           backends/inmemory/inmemory_database.cc,
28922           backends/inmemory/inmemory_database.h,backends/quartz/dir_contents,
28923           backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
28924           common/database.h,include/xapian/database.h,tests/apitest.cc:
28925           Rework transactions to support "unflushed" transactions, and so
28926           they work with quartz as well as with flint.
28928 Sat Jun 03 03:18:22 BST 2006  Olly Betts <olly@survex.com>
28930         * HACKING: Document "make check-remote".
28932 Sat Jun 03 00:23:46 BST 2006  Olly Betts <olly@survex.com>
28934         * backends/database.cc,backends/flint/dir_contents,
28935           backends/flint/flint_database.cc,backends/flint/flint_database.h,
28936           backends/quartz/dir_contents,common/database.h,
28937           include/xapian/database.h,tests/: Implement transactions for
28938           flint.
28940 Sat Jun 03 00:14:37 BST 2006  Olly Betts <olly@survex.com>
28942         * tests/apitest.cc: Run tests on flint if flint is enabled, rather
28943           than if quartz is enabled.
28945 Sun May 28 23:01:45 BST 2006  Olly Betts <olly@survex.com>
28947         * common/omtime.h: Add operator+ and operator+= with argument of
28948           type Xapian::timeout.
28950 Sun May 28 22:02:30 BST 2006  Olly Betts <olly@survex.com>
28952         * include/xapian/errorhandler.h: Fix typos in private assignment
28953           operator and copy ctor (Error -> ErrorHandler!)
28955 Sun May 28 21:54:05 BST 2006  Olly Betts <olly@survex.com>
28957         * Makefile.am,tests/Makefile.am: Add "check-remote" target which runs
28958           the subset of tests which test the remote backend.
28960 Thu May 25 16:06:06 BST 2006  Olly Betts <olly@survex.com>
28962         * api/omdatabase.cc,backends/database.cc,common/database.h:
28963           Merge Xapian::Internal::open_database() into the Xapian::Database
28964           ctor which calls it; merge Xapian::Internal::open_writable_database()
28965           into the Xapian::WritableDatabase ctor which calls it.
28967 Wed May 24 08:28:40 BST 2006  Olly Betts <olly@survex.com>
28969         * net/socketserver.cc: OmLineBuf -> OmSocketLineBuf.
28971 Wed May 24 08:27:22 BST 2006  Olly Betts <olly@survex.com>
28973         * common/socketserver.h: OmLineBuf -> OmSocketLineBuf.
28975 Wed May 24 07:50:51 BST 2006  Olly Betts <olly@survex.com>
28977         * common/Makefile.am,common/omlinebuf.h,common/socketcommon.h,
28978           net/Makefile.am,net/omlinebuf.cc,net/socketcommon.cc:
28979           Merge OmLineBuf into OmSocketLineBuf.
28980         * common/Makefile.am: Fix netutils.cc to be conditionally included
28981           when the remote backend is enabled, not the quartz backend!
28983 Tue May 23 18:59:09 BST 2006  Olly Betts <olly@survex.com>
28985         * api/Makefile.am,api/errorhandler.cc,api/omerror.cc,
28986           include/xapian/error.h,include/xapian/errorhandler.h:
28987           Redo the Xapian::Error and Xapian::ErrorHandler classes.
28988           The new versions have better, clearer documentation comments
28989           and are cleaner internally.
28990         * include/xapian/error.h: Add hook to allow SWIG bindings to
28991           be built using GCC's visibility support.
28993 Tue May 23 10:08:02 BST 2006  Olly Betts <olly@survex.com>
28995         * backends/quartz/btree.cc: Remove superfluous '#include <autoptr.h>'.
28997 Tue May 23 09:42:52 BST 2006  Olly Betts <olly@survex.com>
28999         * backends/Makefile.am,backends/database.cc,
29000           backends/dbfactory_remote.cc,backends/net/net_database.cc,
29001           backends/net/net_termlist.cc,backends/net/net_termlist.h,common/,
29002           include/xapian/dbfactory.h,matcher/,net/socketclient.cc,
29003           net/socketcommon.cc: Eliminate the NetClient class by merging
29004           it into NetDatabase.
29006 Mon May 22 08:51:16 BST 2006  Olly Betts <olly@survex.com>
29008         * common/omtime.h: Fix OmTime::operator> which failed to return false
29009           if the seconds were strictly less but the microsecond fraction was
29010           more.
29012 Sun May 21 11:53:29 BST 2006  Olly Betts <olly@survex.com>
29014         * Makefile.am,bin/Makefile.am,docs/Makefile.am,examples/Makefile.am:
29015           Make use of the dist_ prefix to avoid having to list files in
29016           EXTRA_DIST as well as in *_DATA and man_MANS.
29018 Sun May 21 05:55:00 BST 2006  Olly Betts <olly@survex.com>
29020         * api/dir_contents,getopt/dir_contents,queryparser/dir_contents:
29021           Add missing dir_contents files.
29023 Sun May 21 05:45:44 BST 2006  Olly Betts <olly@survex.com>
29025         * tests/remotetest.cc: Remove unnecessary "#include <sys/wait.h>".
29027 Sat May 20 11:02:43 BST 2006  Olly Betts <olly@survex.com>
29029         * docs/Makefile.am: doxygen_api_conf and doxygen_full_conf are
29030           generated, so aren't in srcdir!
29032 Sat May 20 10:14:52 BST 2006  Olly Betts <olly@survex.com>
29034         * docs/Makefile.am: automake adds suitable rules for rebuilding
29035           doxygen_api_conf and doxygen_source_conf, so remove our less
29036           accurate versions.
29038 Fri May 19 14:43:47 BST 2006  Olly Betts <olly@survex.com>
29040         * docs/Makefile.am,docs/doxygen_api_conf.in,docs/doxygen_full_conf.in:
29041           Remove "XAPIAN_DEPRECATED" from generated documentation.
29042         * docs/Makefile.am: Fix dependencies for regenerating the doxygen
29043           documentation.
29045 Fri May 19 08:12:51 BST 2006  Olly Betts <olly@survex.com>
29047         * docs/scalability.html: quartzcompact and xapian-compact now allow
29048           you to set the blocksize, so there's no need to use copydatabase
29049           if you want to migrate a database to a larger blocksize.  Mention
29050           gmane.  Other minor tweaks.
29052 Fri May 19 07:52:23 BST 2006  Olly Betts <olly@survex.com>
29054         * bin/quartzcompact.cc: Add --blocksize option to allow the blocksize
29055           to be set (default is 8K as before.)
29057 Fri May 19 07:47:13 BST 2006  Olly Betts <olly@survex.com>
29059         * bin/xapian-compact.cc: Add --blocksize option to allow the blocksize
29060           to be set (default is 8K as before.)
29062 Thu May 18 11:24:17 BST 2006  Olly Betts <olly@survex.com>
29064         * api/vectortermlist.h: Whitespace tweak.
29066 Tue May 16 10:09:53 BST 2006  Olly Betts <olly@survex.com>
29068         * HACKING: Update details of the debian stable backport version
29069           numbering scheme.
29071 Tue May 16 06:55:14 BST 2006  Olly Betts <olly@survex.com>
29073         * configure.ac: Remove unused variable from snprintf testing code.
29075 Tue May 16 04:32:34 BST 2006  Olly Betts <olly@survex.com>
29077         * HACKING: Expand on the debian package building checklist.
29079 Tue May 16 04:32:07 BST 2006  Olly Betts <olly@survex.com>
29081         * include/xapian/enquire.h: Note that "set_sort_by_relevance" is the
29082           default setting.
29084 Mon May 15 06:59:01 BST 2006  Olly Betts <olly@survex.com>
29086         * HACKING: Update debian package building checklist.
29088 Mon May 15 03:53:53 BST 2006  Olly Betts <olly@survex.com>
29090         * PLATFORMS: Update one more result before the actual release.
29092 Mon May 15 02:15:18 BST 2006  Olly Betts <olly@survex.com>
29094         * NEWS,configure.ac: Updated for 0.9.6.
29096 Mon May 15 01:35:33 BST 2006  Olly Betts <olly@survex.com>
29098         * PLATFORMS: Updated in preparation for the next release.
29100 Sun May 14 19:05:37 BST 2006  Olly Betts <olly@survex.com>
29102         * backends/flint/flint_lock.h: Added workaround for newlib header bug.
29104 Sat May 13 07:04:14 BST 2006  Olly Betts <olly@survex.com>
29106         * configure.ac: Fix snprintf tests.
29108 Sat May 13 04:52:53 BST 2006  Olly Betts <olly@survex.com>
29110         * configure.ac: Tweak version.h generation to cope with CXXCPP putting
29111           carriage returns into its output as can happen on cygwin.
29113 Fri May 12 21:49:33 BST 2006  Olly Betts <olly@survex.com>
29115         * HACKING: Update with the libtool patches we're now using.
29117 Fri May 12 21:43:02 BST 2006  Olly Betts <olly@survex.com>
29119         * include/xapian/version_h.cc: Trim trailing whitespace.
29121 Fri May 12 20:43:47 BST 2006  Olly Betts <olly@survex.com>
29123         * configure.ac,include/xapian/version_h.cc: Replace @@ with " instead
29124           of @, so we can write @deprecated.  Fix more compilation problems.
29126 Fri May 12 19:00:08 BST 2006  Olly Betts <olly@survex.com>
29128         * include/xapian/version_h.cc: Fix compilation problem.
29130 Fri May 12 01:19:14 BST 2006  Olly Betts <olly@survex.com>
29132         * api/version.cc,include/xapian/version_h.cc: Rename
29133           Xapian::xapian_version_string() and companions to
29134           Xapian::version_string().  Keep the old functions as aliases
29135           which are marked as deprecated.
29137 Wed May 10 18:25:59 BST 2006  Olly Betts <olly@survex.com>
29139         * include/xapian/enquire.h: Remove bogus documentation for a
29140           parameter which doesn't exist.
29142 Tue May 09 19:17:23 BST 2006  Olly Betts <olly@survex.com>
29144         * bin/Makefile.am: Remove trailing whitespace.
29145         * bin/xapian-compact.cc: Fix renaming of "iamflint.tmp" for MS Windows
29146           where you can't rename an open file.
29148 Tue May 09 15:57:26 BST 2006  Olly Betts <olly@survex.com>
29150         * configure.ac: Fix reversed conditional in test for snprintf (which
29151           affects cygwin).
29153 Mon May 01 21:49:46 BST 2006  Olly Betts <olly@survex.com>
29155         * tests/queryparsertest.cc: Add another prefix testcase to improve
29156           coverage.
29158 Sat Apr 29 20:16:46 BST 2006  Olly Betts <olly@survex.com>
29160         * docs/remote_protocol.html: Document keep-alive messages.
29162 Thu Apr 13 14:49:48 BST 2006  Olly Betts <olly@survex.com>
29164         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Add rules
29165           to handle a boolean filter with a "+" in front (such as
29166           +site:xapian.org).
29168 Wed Apr 12 18:42:31 BST 2006  Olly Betts <olly@survex.com>
29170         * PLATFORMS: More updates for 0.9.5.
29172 Tue Apr 11 19:56:16 BST 2006  Olly Betts <olly@survex.com>
29174         * matcher/Makefile.am: Need to add "-I${top_builddir}/include" to
29175           INCLUDES so that xapian/version.h is found.
29177 Tue Apr 11 19:24:59 BST 2006  Olly Betts <olly@survex.com>
29179         * backends/database.cc,configure.ac,include/xapian/version_h.cc,
29180           matcher/multimatch.cc,matcher/stats.cc,tests/apitest.cc,
29181           testsuite/backendmanager.cc,testsuite/backendmanager.h:
29182           Eliminate XAPIAN_BUILD_BACKEND_* from config.h and just use
29183           XAPIAN_HAS_*_BACKEND from xapian/version.h instead.
29185 Tue Apr 11 18:32:52 BST 2006  Olly Betts <olly@survex.com>
29187         * include/Makefile.am: Add xapian/version.h.timestamp as a dependency
29188           on all-local so that xapian/version.h actually gets regenerated
29189           when required.
29191 Tue Apr 11 17:52:24 BST 2006  Olly Betts <olly@survex.com>
29193         * api/omenquire.cc,backends/flint/flint_btreebase.cc,
29194           backends/quartz/btree_base.cc,common/utils.h,configure.ac:
29195           Disable MSVC warning 4800 (on int to bool conversions) in config.h
29196           and then we can remove the "fixes" elsewhere.
29198 Tue Apr 11 16:28:01 BST 2006  Olly Betts <olly@survex.com>
29200         * configure.ac: Simpler check for VALGRIND being set to empty value.
29202 Tue Apr 11 01:04:32 BST 2006  Olly Betts <olly@survex.com>
29204         * PLATFORMS: Add a summary.
29206 Tue Apr 11 00:45:55 BST 2006  Olly Betts <olly@survex.com>
29208         * PLATFORMS: Updates from boxes which were down when I did the
29209           release.
29211 Mon Apr 10 17:06:46 BST 2006  Olly Betts <olly@survex.com>
29213         * api/omenquire.cc,backends/flint/flint_btreebase.cc,
29214           backends/flint/flint_utils.h,backends/quartz/btree_base.cc,
29215           backends/quartz/quartz_utils.h,common/omassert.h:
29216           Fix more MSVC7 warnings (I spoke too soon).
29218 Mon Apr 10 15:56:52 BST 2006  Olly Betts <olly@survex.com>
29220         * include/xapian/query.h: Another MSVC7 warning fix.  Should be free
29221           of warnings now.
29223 Mon Apr 10 14:46:34 BST 2006  Olly Betts <olly@survex.com>
29225         * backends/flint/flint_database.cc,backends/flint/flint_utils.h,
29226           backends/quartz/quartz_utils.h,bin/quartzcompact.cc,
29227           bin/xapian-compact.cc,common/omdebug.h,common/utils.h,
29228           include/xapian/query.h,languages/header.h,matcher/multimatch.cc:
29229           Fix assorted MSVC7 warnings.
29231 Sun Apr 09 04:56:09 BST 2006  Olly Betts <olly@survex.com>
29233         * HACKING: Expand on details of what's required when changing Xapian
29234           (discuss documentation requirements, expand on why feature tests
29235           are vital).
29236         * HACKING: Update section on building debian packages.
29238 Sat Apr 08 20:02:19 BST 2006  Olly Betts <olly@survex.com>
29240         * NEWS,PLATFORMS,configure.ac: Updated for 0.9.5.
29242 Fri Apr 07 23:53:08 BST 2006  Olly Betts <olly@survex.com>
29244         * tests/api_anydb.cc,tests/api_db.cc,tests/btreetest.cc: Correct
29245           spelling of "existant" to "existent".
29247 Fri Apr 07 19:13:24 BST 2006  Olly Betts <olly@survex.com>
29249         * configure.ac: We don't use strcasecmp, so don't probe for it.
29251 Fri Apr 07 18:30:40 BST 2006  Olly Betts <olly@survex.com>
29253         * common/utils.h: Fixes for MSVC7 compilation.
29255 Fri Apr 07 17:19:43 BST 2006  Olly Betts <olly@survex.com>
29257         * backends/flint/flint_table.cc,backends/quartz/btree.cc: Fixes for
29258           MSVC compilation.
29260 Fri Apr 07 16:04:08 BST 2006  Olly Betts <olly@survex.com>
29262         * backends/flint/flint_cursor.h: Fix incorrect example code in
29263           documentation comment.
29264         * backends/flint/flint_table.cc,backends/flint/flint_table.h:
29265           Remove unused method FlintTable::find_key().
29267 Fri Apr 07 16:02:40 BST 2006  Olly Betts <olly@survex.com>
29269         * AUTHORS: Updated.
29271 Fri Apr 07 15:58:31 BST 2006  Olly Betts <olly@survex.com>
29273         * debian/control.in: copydatabase and xapian-compact are packaged
29274           in xapian-tools, so add them to the documented list of tools
29275           included.
29277 Fri Apr 07 15:12:43 BST 2006  Olly Betts <olly@survex.com>
29279         * net/tcpserver.cc: Set xapian-tcpsrv to allow 5 connections in the
29280           listen queue instead of just one.
29282 Fri Apr 07 13:28:15 BST 2006  Olly Betts <olly@survex.com>
29284         * tests/remotetest.cc: Check mset size in tcpmatch1.
29286 Fri Apr 07 01:26:03 BST 2006  Olly Betts <olly@survex.com>
29288         * xapian.spec.in: Man pages may be gzipped.
29290 Thu Apr 06 14:41:29 BST 2006  Olly Betts <olly@survex.com>
29292         * HACKING: aclocal is part of automake, not autoconf.
29294 Thu Apr 06 01:29:21 BST 2006  Olly Betts <olly@survex.com>
29296         * bin/,examples/copydatabase.cc,examples/delve.cc,examples/quest.cc:
29297           In the "--help" output, add "Options:" before the list of options.
29299 Thu Apr 06 01:11:31 BST 2006  Olly Betts <olly@survex.com>
29301         * xapian-config.in: Tweak to improve help2man output.
29303 Wed Apr 05 16:26:15 BST 2006  Fabrice Colin
29305         * xapian.spec.in: Package man pages.
29307 Wed Apr 05 16:23:49 BST 2006  Olly Betts <olly@survex.com>
29309         * Makefile.am,bin/Makefile.am,examples/Makefile.am: Include generated
29310           man pages in the distribution tarball.
29312 Wed Apr 05 02:48:27 BST 2006  Olly Betts <olly@survex.com>
29314         * debian/TODO: Updated.
29316 Wed Apr 05 02:44:15 BST 2006  Olly Betts <olly@survex.com>
29318         * ./,examples: svn:ignore man pages.
29320 Wed Apr 05 02:43:08 BST 2006  Olly Betts <olly@survex.com>
29322         * bin/Makefile.am,examples/Makefile.am: No need to make man pages
29323           depend on config.h, since the binaries will already.
29325 Wed Apr 05 02:42:42 BST 2006  Olly Betts <olly@survex.com>
29327         * Makefile.am: Generate man page for xapian-config.
29329 Wed Apr 05 00:59:53 BST 2006  Olly Betts <olly@survex.com>
29331         * examples/Makefile.am: Use help2man to generate manpages for the
29332           installed binaries in examples.
29334 Wed Apr 05 00:56:11 BST 2006  Olly Betts <olly@survex.com>
29336         * bin/omtcpsrv.cc: Rename to bin/xapian-tcpsrv.cc.
29337         * bin/omprogsrv.cc: Rename to bin/xapian-progsrv.cc.
29338         * HACKING,bin/Makefile.am,configure.ac: Use help2man to generate
29339           manpages for the installed binaries in bin.
29341 Tue Apr 04 16:44:54 BST 2006  Olly Betts <olly@survex.com>
29343         * include/xapian/enquire.h: Note example of BM25Weight parameters
29344           which make set_sort_by_relevance_then_value useful.
29346 Tue Apr 04 16:35:58 BST 2006  Olly Betts <olly@survex.com>
29348         * api/omenquire.cc,include/xapian/enquire.h,matcher/,tests/api_db.cc:
29349           Implement Enquire::set_sort_by_relevance_then_value().
29351 Tue Apr 04 01:05:41 BST 2006  Olly Betts <olly@survex.com>
29353         * common/omenquireinternal.h: sort_key no longer needs to be mutable
29354           now that MSetSortCmp has been removed.
29356 Mon Apr 03 02:03:12 BST 2006  Olly Betts <olly@survex.com>
29358         * matcher/multimatch.cc: Removed dead code (class MSetSortCmp).
29360 Sun Apr 02 16:37:38 BST 2006  Olly Betts <olly@survex.com>
29362         * net/tcpserver.cc: Don't perform a name lookup on the IP address
29363           which an incoming connection is from as that could easily slow
29364           down the search response - instead just print the IP address itself
29365           if output is verbose.
29367 Sun Apr 02 13:28:31 BST 2006  Olly Betts <olly@survex.com>
29369         * api/omenquire.cc,common/,docs/remote_protocol.html,
29370           matcher/multimatch.cc,matcher/networkmatch.cc,matcher/networkmatch.h,
29371           net/socketclient.cc,net/socketserver.cc: Change bool
29372           sort_by_relevance to enum sort_by in preparation for adding
29373           "sort_by_relevance_then_value".
29375 Fri Mar 31 22:32:16 BST 2006  Olly Betts <olly@survex.com>
29377         * examples/copydatabase.cc,examples/quest.cc: Add --help and --version
29378           options.
29379         * examples/delve.cc: Tidy up output from --help and --version options.
29381 Fri Mar 31 19:01:25 BST 2006  Olly Betts <olly@survex.com>
29383         * bin/quartzcheck.cc: Fix SEGV when run with no arguments (introduced
29384           by last change).
29386 Fri Mar 31 17:57:27 BST 2006  Olly Betts <olly@survex.com>
29388         * bin/quartzcheck.cc: Add --version option.  Tidy up output from
29389           --help.
29391 Fri Mar 31 17:43:25 BST 2006  Olly Betts <olly@survex.com>
29393         * bin/quartzcompact.cc: Include --help and --version in --help output.
29394         * bin/quartzdump.cc: Add --help and --version options.  Terminate list
29395           of long options so that "quartzdump --foo" no longer segfaults.
29397 Fri Mar 31 17:27:09 BST 2006  Olly Betts <olly@survex.com>
29399         * bin/quartzcompact.cc: Tweak --help and --version output for
29400           consistency with other binaries.  Terminate list of long options so
29401           that "quartzcompact --foo" no longer segfaults.
29403 Fri Mar 31 16:47:02 BST 2006  Olly Betts <olly@survex.com>
29405         * bin/omtcpsrv.cc: Make OPT_HELP and OPT_VERSION positive numbers.
29406           Only give synopsis line for --help, not for syntax error.
29407         * bin/xapian-compact.cc: List --help and --version in --help output.
29408           Terminate list of long options so that "xapian-compact --foo" no
29409           longer segfaults.
29411 Fri Mar 31 16:20:24 BST 2006  Olly Betts <olly@survex.com>
29413         * bin/omtcpsrv.cc: Added --help and --version options.
29415 Thu Mar 30 11:51:21 BST 2006  Philip Neustrom
29417         * docs/remote_protocol.html: Document messages for requesting and
29418           sending a termlist and a document.
29420 Wed Mar 29 19:39:05 BST 2006  Olly Betts <olly@survex.com>
29422         * backends/flint/flint_termlist.cc,backends/quartz/quartz_termlist.cc:
29423           Add missing spaces in debug output.
29425 Fri Mar 17 09:22:54 GMT 2006  Olly Betts <olly@survex.com>
29427         * api/vectortermlist.h,backends/net/net_termlist.cc,
29428           backends/net/net_termlist.h,common/alltermslist.h,common/termlist.h,
29429           matcher/branchtermlist.h: Make TermList::positionlist_begin() pure
29430           virtual and put dummy implementations in BranchTermList and other
29431           subclasses which can't (or don't) implement it.  This makes it
29432           hard to accidentally fail to implement it in a backend's TermList
29433           subclass.
29434         * backends/net/net_termlist.h: positionlist_begin() now throws
29435           UnimplementedError instead of InvalidOperationError.
29437 Fri Mar 17 08:46:52 GMT 2006  Olly Betts <olly@survex.com>
29439         * api/omdatabase.cc: There's no need for the MultiTermList wrapper in
29440           the common case where we're only dealing with a single database.
29442 Fri Mar 17 07:54:54 GMT 2006  Olly Betts <olly@survex.com>
29444         * backends/net/net_termlist.h: Remove unused "positions" member.
29446 Fri Mar 17 07:07:57 GMT 2006  Olly Betts <olly@survex.com>
29448         * backends/multi/multi_termlist.cc,backends/multi/multi_termlist.h,
29449           tests/api_posdb.cc: Fix TermIterator::positionlist_begin() to work
29450           on TermIterator from Database::termlist_begin().
29452 Fri Mar 17 03:47:04 GMT 2006  Olly Betts <olly@survex.com>
29454         * include/xapian/enquire.h: Fix "unused parameter" warning from
29455           previous change.
29457 Thu Mar 16 05:20:16 GMT 2006  Olly Betts <olly@survex.com>
29459         * api/omenquire.cc,include/xapian/enquire.h:  Move
29460           Enquire::get_matching_terms_end() inline in header.
29462 Thu Mar 16 04:28:20 GMT 2006  Olly Betts <olly@survex.com>
29464         * api/omdocument.cc,configure.ac,include/xapian/document.h: Move
29465           Document::termlist_end() inline in header.
29467 Fri Mar 10 04:55:57 GMT 2006  Olly Betts <olly@survex.com>
29469         * INSTALL: Improve wording.
29471 Fri Mar 10 04:49:09 GMT 2006  Olly Betts <olly@survex.com>
29473         * backends/quartz/bcursor.h: Fix incorrect method name in
29474           documentation comment.
29476 Fri Mar 10 04:39:45 GMT 2006  Olly Betts <olly@survex.com>
29478         * backends/quartz/btree.cc,backends/quartz/btree.h: Btree::find_key()
29479           is unused so remove it.
29481 Fri Mar 10 04:29:46 GMT 2006  Olly Betts <olly@survex.com>
29483         * HACKING: Note that we now use a lightly patched version of libtool
29484           1.5.22.
29486 Fri Mar 10 02:55:48 GMT 2006  Olly Betts <olly@survex.com>
29488         * docs/overview.html: Bring up to date.
29490 Wed Mar 08 02:32:49 GMT 2006  Olly Betts <olly@survex.com>
29492         * queryparser/queryparser.lemony: Fix FLAG_BOOLEAN_ANY_CASE to really
29493           allow any case combination - previously it only allowed all
29494           uppercase or all lowercase.
29495         * tests/queryparsertest.cc: Add feature and regression tests for
29496           FLAG_BOOLEAN_ANY_CASE.
29497         * tests/queryparsertest.cc: Rename test cases to more descriptive
29498           names.
29500 Tue Mar 07 19:59:54 GMT 2006  Olly Betts <olly@survex.com>
29502         * queryparser/queryparser.lemony,tests/queryparsertest.cc:
29503           Fix QueryParser's handling of terms with trailing "#", "+",
29504           or "-" when set_database has been called and the term doesn't
29505           exist in the database with the suffix.
29507 Tue Feb 21 21:14:22 GMT 2006  Olly Betts <olly@survex.com>
29509         * include/xapian/deprecated.h: Allow xapian-bindings to override
29510           deprecation warnings.
29512 Tue Feb 21 17:55:17 GMT 2006  Olly Betts <olly@survex.com>
29514         * backends/flint/flint_database.cc: Note that "flicklock" should be
29515           "flintlock"!
29517 Tue Feb 21 14:13:08 GMT 2006  Olly Betts <olly@survex.com>
29519         * PLATFORMS: Updated.
29521 Tue Feb 21 14:12:47 GMT 2006  Olly Betts <olly@survex.com>
29523         * HACKING: Update the "how to do a release" list.
29525 Tue Feb 21 00:17:40 GMT 2006  Olly Betts <olly@survex.com>
29527         * NEWS,PLATFORMS,configure.ac: Updated for 0.9.4.
29529 Mon Feb 20 21:15:46 GMT 2006  Olly Betts <olly@survex.com>
29531         * api/omdocument.cc,api/omenquire.cc,api/omquery.cc,include/xapian/,
29532           queryparser/queryparser.cc: GCC 3.2 actually doesn't like
29533           __attribute__((deprecated)) on method definitions, so just
29534           put declarations of deprecated methods in the headers, and
29535           move definitions into the library.
29537 Mon Feb 20 16:04:33 GMT 2006  Olly Betts <olly@survex.com>
29539         * tests/api_anydb.cc,tests/api_db.cc,tests/api_nodb.cc: Update uses
29540           of deprecated methods and functions.
29542 Mon Feb 20 15:47:31 GMT 2006  Olly Betts <olly@survex.com>
29544         * include/xapian/document.h: __attribute__((deprecated)) doesn't
29545           work on method definitions with default parameters on GCC 3.2
29546           so fix header to overload instead.
29548 Mon Feb 20 13:44:14 GMT 2006  Olly Betts <olly@survex.com>
29550         * include/xapian/enquire.h: Add documentation comment for
29551           Enquire::set_sort_by_value_then_relevance().
29553 Sun Feb 19 23:18:09 GMT 2006  Olly Betts <olly@survex.com>
29555         * include/Makefile.am,include/xapian/: Flag deprecated methods such
29556           that the compiler gives a warning, for compilers which support
29557           such a feature.
29559 Sun Feb 19 22:58:55 GMT 2006  Olly Betts <olly@survex.com>
29561         * COPYING: Update second occurrence of old FSF address.
29563 Sun Feb 19 22:46:49 GMT 2006  Olly Betts <olly@survex.com>
29565         * README: Add pointer to HACKING.  Change "CVS access" to "SVN
29566           access".
29568 Sun Feb 19 01:46:00 GMT 2006  Olly Betts <olly@survex.com>
29570         * api/version.cc: Correct typo in name of function xapian_revision().
29572 Thu Feb 16 10:23:59 GMT 2006  Olly Betts <olly@survex.com>
29574         * xapian-config.in: Oops, fix previous fix (I'd pasted the substituted
29575           result from testing the patch...)
29577 Thu Feb 16 10:16:31 GMT 2006  Olly Betts <olly@survex.com>
29579         * PLATFORMS: Updated from tinderbox.
29581 Thu Feb 16 10:15:51 GMT 2006  Olly Betts <olly@survex.com>
29583         * xapian-config.in: Need to set exec_prefix and prefix at top of
29584           script as they're used by various @SUBSTITUTIONS@.
29586 Thu Feb 16 00:09:34 GMT 2006  Olly Betts <olly@survex.com>
29588         * NEWS,PLATFORMS,configure.ac: Updated for 0.9.3.
29590 Wed Feb 15 21:58:23 GMT 2006  Olly Betts <olly@survex.com>
29592         * xapian-config.in: Fix option loop to work on shells other than bash.
29594 Wed Feb 15 21:38:38 GMT 2006  Olly Betts <olly@survex.com>
29596         * include/xapian/database.h: Tweak wording of a documentation comment.
29598 Wed Feb 15 21:34:55 GMT 2006  Olly Betts <olly@survex.com>
29600         * include/xapian/queryparser.h: Fix documentation comments for the
29601           values of QueryParser::feature_flag so doxygen actually pulls out
29602           the documentation for them.  Add documentation for the parameters
29603           of QueryParser::parse_query().
29605 Wed Feb 15 21:26:48 GMT 2006  Olly Betts <olly@survex.com>
29607         * bin/quartzcheck.cc: If the database is too broken to open, emit a
29608           warning message and bump the error count.
29610 Wed Feb 15 21:23:38 GMT 2006  Olly Betts <olly@survex.com>
29612         * docs/queryparser.html: Document right-truncation.
29614 Wed Feb 15 21:08:37 GMT 2006  Olly Betts <olly@survex.com>
29616         * xapian-config.in: Fixed to output usage correctly if no arguments
29617           are specified.
29619 Mon Feb 13 17:43:08 GMT 2006  Olly Betts <olly@survex.com>
29621         * xapian-config.in: Expand dependency_libs recursively.  It's not
29622           *that* hard, and we're just storing up problems for the future
29623           by ignoring the issue.
29625 Mon Feb 13 16:57:36 GMT 2006  Olly Betts <olly@survex.com>
29627         * HACKING: Devlopers also need makeindex installed for documentation
29628           building.  Note that dvips and makeindex are usually packaged with
29629           TeX.
29631 Mon Feb 13 15:16:02 GMT 2006  Olly Betts <olly@survex.com>
29633         * configure.ac,xapian-config.in: Some Linux distros have an
29634           unhelpful policy of not packaging .la files, and on Linux
29635           link_all_deplibs_CXX=no so we don't actually need to link
29636           in the dependency_libs.  So use the value of link_all_deplibs_CXX
29637           from configure to control whether we link against dependency_libs.
29638         * xapian-config.in: Factor out common code into shell functions,
29639           and tidy up --help output.
29640         * xapian-config.in: Re entry "Tue May 11 20:55:56 BST 2004": the (C)
29641           dates I mined from CVS included a BrightStation (C), but the few
29642           fragments of that version which survive are actually from
29643           glib-config (or one of the myriad of *-config scripts which look
29644           very like it), and are just standard Bourne shell idioms anyway.
29646 Mon Feb 13 13:59:02 GMT 2006  Olly Betts <olly@survex.com>
29648         * PLATFORMS: td174 is gone.
29649         * PLATFORMS: Compaq C++ 7.1 seems to have better template support
29650           (but fails to link binaries).
29652 Mon Feb 13 12:22:23 GMT 2006  Olly Betts <olly@survex.com>
29654         * HACKING,testsuite/testsuite.cc: XAPIAN_TESTSUITE_PLAIN_OUTPUT
29655           -> XAPIAN_TESTSUITE_OUTPUT=plain.
29657 Sun Feb 12 18:29:55 GMT 2006  Olly Betts <olly@survex.com>
29659         * backends/database.cc,tests/api_nodb.cc: Trying to open a database
29660           for reading which doesn't exist now fails with DatabaseOpeningError
29661           instead of FeatureUnavailableError.  Added regression test
29662           nosuchdb1.
29664 Thu Feb 09 10:48:10 GMT 2006  Olly Betts <olly@survex.com>
29666         * net/socketserver.cc: Add missing '#include <iostream>'
29667           when TIMING_PATCH is defined.
29669 Wed Feb 08 08:22:09 GMT 2006  Olly Betts <olly@survex.com>
29671         * HACKING: Now use libtool 1.5.22 for generating snapshots and
29672           releases (includes a number of bug-fixes).
29673         * HACKING,docs/doxygen_api_header.html_tmpl,
29674           docs/doxygen_full_header.html_tmpl: Now use doxygen 1.4.6 for
29675           generating snapshots and releases (nicer output).
29676         * docs/doxygen_full_header.html_tmpl: Title "Internal Source
29677           Documentation" rather than "Full source documentation".
29679 Sun Feb 05 06:19:29 GMT 2006  Olly Betts <olly@survex.com>
29681         * queryparser/queryparser.lemony,tests/queryparsertest.cc: The
29682           QueryParser now recognises "AND NOT" as a synonym for "NOT".
29684 Mon Jan 16 18:19:26 GMT 2006  Olly Betts <olly@survex.com>
29686         * backends/quartz/quartz_utils.h: Fix compiler warning.
29688 Mon Jan 16 18:17:27 GMT 2006  Olly Betts <olly@survex.com>
29690         * HACKING,backends/flint/,backends/muscat36/,backends/quartz/,
29691           bin/quartzcompact.cc,bin/xapian-compact.cc,common/Makefile.am,
29692           common/safeerrno.h,net/,tests/btreetest.cc,tests/quartztest.cc,
29693           testsuite/backendmanager.cc,testsuite/testsuite.cc: Sorted out
29694           a cleaner workaround for Compaq C++'s <errno.h> oddity.
29696 Mon Jan 16 17:18:56 GMT 2006  Olly Betts <olly@survex.com>
29698         * common/safewindows.h: Fix typo in file description.
29700 Mon Jan 16 13:29:48 GMT 2006  Olly Betts <olly@survex.com>
29702         * backends/quartz/quartz_database.cc: Reverse order of errno includes
29703           which seems to make Compaq's C++ compiler happier.
29705 Sun Jan 15 23:52:01 GMT 2006  Olly Betts <olly@survex.com>
29707         * backends/flint/flint_database.cc,backends/flint/flint_table.cc,
29708           backends/quartz/btree.cc,backends/quartz/quartz_database.cc,
29709           backends/quartz/quartz_log.cc,configure.ac,net/socketcommon.cc,
29710           net/tcpclient.cc,testsuite/backendmanager.cc: Compaq C++ requires
29711           sys/errno.h to get ENOENT and most other EXXX codes defined.
29713 Sun Jan 15 23:41:15 GMT 2006  Olly Betts <olly@survex.com>
29715         * bin/xapian-compact.cc: Initialise 2 variables to avoid compiler
29716           warnings.
29718 Sun Jan 15 23:38:11 GMT 2006  Olly Betts <olly@survex.com>
29720         * xapian-config.in: If libxapian.la's dependency_libs contains
29721           another .la file, crudely transform to a pair of -L and -l
29722           options.  Ideally we should recursively pull in dependency_libs
29723           from that .la file, but that's too hard to do in sh.
29725 Sun Jan 15 21:43:26 GMT 2006  Olly Betts <olly@survex.com>
29727         * queryparser/queryparser.lemony,queryparser/queryparser.lt:
29728           Eliminate ParseAlloc's mallocProc parameter and ParseFree's freeProc
29729           parameter - we always pass malloc and free, and get warnings from
29730           some compilers because we're passing a C-linkage function for a
29731           C++-linkage function pointer.
29732         * testsuite/testsuite.cc,testsuite/testsuite.h: Fix functions
29733           registered as signal handlers and pass to atexit to have C linkage.
29735 Sun Jan 15 14:49:45 GMT 2006  Olly Betts <olly@survex.com>
29737         * backends/quartz/quartz_log.cc: #include <string.h> for strerror.
29739 Sun Jan 15 04:36:49 GMT 2006  Olly Betts <olly@survex.com>
29741         * include/xapian/queryparser.h,queryparser/queryparser.cc:
29742           Add Stopper::get_description() and SimpleStopper::get_description().
29744 Sat Jan 14 21:43:32 GMT 2006  Olly Betts <olly@survex.com>
29746         * configure.ac: Fix backwards logic in snprintf configure test.
29747           Also define SNPRINTF_ISO to be an snprintf with ISO C90 semantics
29748           for the return value (if one exists), with SNPRINTF being defined
29749           to any snprintf which at least performs truncation (which in many
29750           cases is sufficient).
29752 Sat Jan 14 04:47:33 GMT 2006  Olly Betts <olly@survex.com>
29754         * queryparser/queryparser.lt: Fix aCC warnings.
29756 Sat Jan 14 04:47:00 GMT 2006  Olly Betts <olly@survex.com>
29758         * common/utils.h: Fix aCC warning.
29760 Fri Jan 13 18:25:04 GMT 2006  Olly Betts <olly@survex.com>
29762         * configure.ac: Turn on more warnings for aCC; suppress existing
29763           warning ("Entire translation unit was empty") since it's not
29764           useful to us.
29766 Fri Jan 13 03:22:26 GMT 2006  Olly Betts <olly@survex.com>
29768         * configure.ac: The configure test for snprintf uses memcmp, so
29769           we need to "#include <string.h>" for it to work reliably.
29771 Wed Jan 11 03:14:30 GMT 2006  Olly Betts <olly@survex.com>
29773         * configure.ac: If not cross-compiling, try to actually run a test
29774           program built with the C++ compiler, not just link one.
29776 Wed Jan 11 03:06:28 GMT 2006  Olly Betts <olly@survex.com>
29778         * configure.ac: Note the library version info which 0.9.3 will
29779           probably need.
29781 Tue Jan 10 22:41:36 GMT 2006  Olly Betts <olly@survex.com>
29783         * configure.ac: Fix to actually skip the check for valgrind if
29784           VALGRIND is set to an empty value.
29786 Tue Jan 10 01:08:10 GMT 2006  Olly Betts <olly@survex.com>
29788         * PLATFORMS: Updates from the tinderbox.
29790 Mon Jan 09 01:35:57 GMT 2006  Olly Betts <olly@survex.com>
29792         * backends/muscat36/io_system.cc,bin/xapian-compact.cc,
29793           common/omdebug.cc: More sprintf tweaks.
29795 Mon Jan 09 00:58:33 GMT 2006  Olly Betts <olly@survex.com>
29797         * bin/xapian-compact.cc: Use snprintf if we have it.
29799 Sun Jan 08 03:51:52 GMT 2006  Olly Betts <olly@survex.com>
29801         * testsuite/backendmanager.cc: Fix conditional compilation of
29802           flint backend to use XAPIAN_BUILD_BACKEND_FLINT instead
29803           of XAPIAN_BUILD_BACKEND_QUARTZ.
29805 Sun Jan 08 02:11:30 GMT 2006  Olly Betts <olly@survex.com>
29807         * configure.ac: Disable flint backend by default if building for
29808           djgpp or msdos.
29810 Sun Jan 08 02:09:48 GMT 2006  Olly Betts <olly@survex.com>
29812         * backends/flint/flint_lock.cc: Cast NULL to (void*) to avoid
29813           "missing sentinel" warning from GCC4.
29815 Sat Jan 07 19:09:33 GMT 2006  Olly Betts <olly@survex.com>
29817         * HACKING,docs/tests.html: Merge the "running tests" section of
29818           docs/tests.html into the similar section in HACKING, and make
29819           docs/tests.html refer the reader to HACKING for more information.
29820         * HACKING,tests/apitest.cc: Remove OM_TEST_BACKEND.  You can now
29821           use the "-b" switch to apitest to control which backend is used
29822           so it's pretty much redundant.
29823         * HACKING,testsuite/testsuite.cc: Rename XAPIAN_SIG_DFL to
29824           XAPIAN_TESTSUITE_SIG_DFL.
29825         * HACKING,testsuite/testsuite.cc: Add XAPIAN_TESTSUITE_PLAIN_OUTPUT
29826           to disable use of ANSI escape sequences in test output.
29828 Sat Jan 07 09:13:06 GMT 2006  Olly Betts <olly@survex.com>
29830         * tests/queryparsertest.cc: Write top-bit set characters using \xXX
29831           notation to avoid warnings from Intel's C++ compiler.
29833 Sat Jan 07 07:13:25 GMT 2006  Olly Betts <olly@survex.com>
29835         * configure.ac: TYPE_SOCKLEN_T fails hard, so only run it if we've
29836           successfully run other socket tests.
29838 Sat Jan 07 05:29:39 GMT 2006  Olly Betts <olly@survex.com>
29840         * queryparser/accentnormalisingitor.h: #include <limits.h> for
29841           CHAR_BIT.
29843 Fri Jan 06 21:24:01 GMT 2006  Olly Betts <olly@survex.com>
29845         * bin/xapian-compact.cc: Fix printf type mismatch on 64 bit platforms.
29847 Fri Jan 06 18:05:30 GMT 2006  Olly Betts <olly@survex.com>
29849         * queryparser/queryparser.cc,queryparser/queryparser.lemony,
29850           queryparser/queryparser_internal.h: Replace pair<bool, string>
29851           with a simple class BoolAndString - the pair results in a
29852           4328 byte symbol on HP-UX which gets truncated (to 4000 bytes).
29854 Fri Jan 06 12:55:37 GMT 2006  Olly Betts <olly@survex.com>
29856         * PLATFORMS: Updated from tinderbox.
29858 Thu Jan 05 16:12:00 GMT 2006  Olly Betts <olly@survex.com>
29860         * configure.ac: Oops, remove hack left over from testing.
29862 Thu Jan 05 16:09:06 GMT 2006  Olly Betts <olly@survex.com>
29864         * configure.ac: Add sanity check for MS Windows that "find" is
29865           Unix-like find, not MSDOS-like.
29867 Thu Jan 05 04:27:29 GMT 2006  Olly Betts <olly@survex.com>
29869         * INSTALL,PLATFORMS,README: Updated.
29871 Mon Dec 19 12:53:38 GMT 2005  Olly Betts <olly@survex.com>
29873         * AUTHORS,PLATFORMS: Add success report for Fedora Core 4.
29875 Mon Dec 19 12:52:55 GMT 2005  Olly Betts <olly@survex.com>
29877         * include/xapian/database.h: Improve a couple of documentation
29878           comments.
29880 Sun Dec 11 01:33:58 GMT 2005  Olly Betts <olly@survex.com>
29882         * queryparser/queryparser.lemony: Fix handling of "+" terms in a query
29883           when the default query operator is AND.
29884         * tests/queryparsertest.cc: Add regression test.
29886 Fri Dec 09 05:54:33 GMT 2005  Olly Betts <olly@survex.com>
29888         * languages/api.cc: Check for malloc and calloc failing to allocate
29889           memory and throw an exception.  Richard has fix this upstream in
29890           snowball, so this is a temporary fix until we import a new version
29891           of snowball.
29893 Fri Dec 09 02:15:38 GMT 2005  Olly Betts <olly@survex.com>
29895         * api/omenquire.cc: Added assertions that the internal ptr isn't NULL
29896           to ESet::end() and ESet::get_description().
29898 Fri Dec 09 02:14:13 GMT 2005  Olly Betts <olly@survex.com>
29900         * HACKING: Note platforms valgrind now has solid support for; Improve
29901           phrasing in a few places.
29903 Thu Dec 08 23:13:09 GMT 2005  Olly Betts <olly@survex.com>
29905         * INSTALL: Update URL for stlport to sourceforge site, which seems to
29906           be where the action is now.
29908 Thu Dec 08 04:13:11 GMT 2005  Olly Betts <olly@survex.com>
29910         * testsuite/testsuite.cc: Fix testsuite harness to work with valgrind
29911           on 64 bit platforms (it's not documented, but VALGRIND_COUNT_LEAKS
29912           requires the count parameters to be 64 bit on such platforms - i.e.
29913           long rather than int as we were using).
29915 Tue Nov 01 13:22:50 GMT 2005  Olly Betts <olly@survex.com>
29917         * PLATFORMS: Sourceforge have a ppc64 linux box.  Xapian builds and
29918           works out of the box, so add success report for this platform.
29920 Thu Oct 27 09:32:24 BST 2005  Fabrice Colin
29922         * xapian.spec.in: Invoke %setup correctly.
29924 Sat Oct 01 03:25:50 BST 2005  Olly Betts <olly@survex.com>
29926         * bin/xapian-compact.cc: Added "--multipass" option to merge postlists
29927           in pairs or triples until all are merged.  Generally this is faster
29928           than an N-way merge, but it does require more disk space for
29929           temporary files so it's not the default.
29931 Fri Sep 30 18:02:32 BST 2005  Olly Betts <olly@survex.com>
29933         * include/xapian/enquire.h: Give pointer to replacements for the
29934           deprecated Enquire sorting methods.
29936 Wed Sep 28 02:16:03 BST 2005  Olly Betts <olly@survex.com>
29938         * bin/xapian-compact.cc: Use a vector<string> to store the list of
29939           source databases, in preparation for merging multiple postlist
29940           tables in more than one pass.
29942 Mon Sep 26 22:22:24 BST 2005  Olly Betts <olly@survex.com>
29944         * .: svn:ignore docsource.mk.
29946 Mon Sep 26 19:54:15 BST 2005  Olly Betts <olly@survex.com>
29948         * bin/: svn:ignore xapian-compact.
29950 Mon Sep 26 19:50:13 BST 2005  Olly Betts <olly@survex.com>
29952         * backends/flint/flint_positionlist.cc: Remove trailing whitespace.
29954 Wed Sep 21 01:31:23 BST 2005  Olly Betts <olly@survex.com>
29956         * api/Makefile.am: Fixed VPATH build which was broken by the addition
29957           of version.cc.
29959 Tue Sep 20 23:38:05 BST 2005  Olly Betts <olly@survex.com>
29961         * backends/flint/flint_lock.cc: Don't pass NULL for second parameter
29962           of execl().
29964 Tue Sep 20 21:32:04 BST 2005  Olly Betts <olly@survex.com>
29966         * api/Makefile.am,api/version.cc,include/xapian/version_h.cc: Add 4
29967           functions to report version information for the library version
29968           being used (which may not be the same as that compiled against
29969           if shared libraries are in use):  xapian_version_string(),
29970           xapian_major_version(), xapian_minor_version(), xapian_revision().
29972 Sat Sep 17 14:07:32 BST 2005  Richard Boulton <richard@tartarus.org>
29974         * backends/flint/flint_lock.cc: Pass two NULLs to execl() to avoid
29975           getting a warning ("not enough variable arguments to fit a
29976           sentinel", observed on Ubuntu breezy powerpc).  Reported by
29977           Sidnei da Silva.
29979 Wed Sep 14 23:54:14 BST 2005  Olly Betts <olly@survex.com>
29981         * HACKING: Now generate snapshots and releases with automake 1.9.6
29982           (was 1.9.5) and libtool 1.5.20 (was 1.5.18).
29984 Tue Aug 30 14:01:55 BST 2005  Olly Betts <olly@survex.com>
29986         * backends/inmemory/inmemory_database.h: Forward declare class
29987           InMemoryDatabase to fix compilation with GCC 4.0.1.
29989 Fri Aug 19 12:13:39 BST 2005  Olly Betts <olly@survex.com>
29991         * backends/quartz/quartz_postlist.cc,backends/flint/flint_postlist.cc:
29992           Correct uses of termcount which should be doccount.
29994 Fri Aug 19 11:48:51 BST 2005  Olly Betts <olly@survex.com>
29996         * include/xapian/enquire.h: Fix prototype for ESet::operator[] to
29997           take parameter of type termcount instead of doccount.
29999 Wed Aug 17 11:50:54 BST 2005  Olly Betts <olly@survex.com>
30001         * common/safewindows.h: Fix compilation for cygwin.
30003 Tue Aug 16 16:01:36 BST 2005  Olly Betts <olly@survex.com>
30005         * backends/flint/flint_types.h,backends/quartz/quartz_types.h:  Using
30006           a double to hold the total document length would be a bad idea as
30007           we need to store it exactly so kill FIXME comments that suggest
30008           perhaps we should.
30010 Fri Jul 15 11:11:35 BST 2005  Olly Betts <olly@survex.com>
30012         * configure.ac,NEWS,PLATFORMS: Updated for 0.9.2.
30014 Fri Jul 15 02:31:11 BST 2005  Olly Betts <olly@survex.com>
30016         * preautoreconf: Change directory to the directory that the
30017           preautoreconf script is in before doing anything else.
30019 Fri Jul 15 01:02:29 BST 2005  Olly Betts <olly@survex.com>
30021         * docs/doxygen_api_conf.in,docs/doxygen_full_conf.in,configure.ac:
30022           Eliminate TOP_SRCDIR and TOP_BUILDDIR - it's better to just use
30023           top_srcdir and top_builddir directly.
30025 Fri Jul 15 00:48:39 BST 2005  Olly Betts <olly@survex.com>
30027         * configure.ac: Fix superfluous shell quoting.
30029 Fri Jul 15 00:28:40 BST 2005  Olly Betts <olly@survex.com>
30031         * configure.ac,docs/Makefile.am,preautoreconf,Makefile.am: Generate
30032           the list of source files to feed to doxygen by inspecting all the
30033           Makefile.am files prior to running autoreconf rather than by using
30034           "find" when the user runs ./configure.  This speeds up configure,
30035           avoids generating docs for random .cc and .h files which aren't
30036           part of xapian-core, and avoids problems with picking up FIND.EXE
30037           on MS Windows.
30039 Thu Jul 14 12:49:36 BST 2005  Olly Betts <olly@survex.com>
30041         * common/,matcher/multimatch.cc,matcher/networkmatch.cc,
30042           matcher/networkmatch.h,net/socketclient.cc,net/socketserver.cc,
30043           tests/api_db.cc: Implement sorting on a value with the remote
30044           backend.
30046 Wed Jul 13 01:25:17 BST 2005  Olly Betts <olly@survex.com>
30048         * include/xapian/database.h,include/xapian/dbfactory.h,
30049           net/socketclient.cc: Regularise horizontal whitespace.
30051 Tue Jul 05 03:03:57 BST 2005  Olly Betts <olly@survex.com>
30053         * include/xapian/queryparser.h: Oops, failed to check in header
30054           changes for last change.
30056 Mon Jul 04 15:50:55 BST 2005  Olly Betts <olly@survex.com>
30058         * queryparser/queryparser.lemony,queryparser/queryparser.cc:
30059           Add flag FLAG_BOOLEAN_ANY_CASE which tells the QueryParser that
30060           boolean operators such as "AND", "OR", and "NEAR" should be
30061           recognised even if they aren't fully capitalised (so "and",
30062           "And", "aNd", etc will work too).  Add flag FLAG_WILDCARD which
30063           tells the QueryParser to allow right truncation e.g. "xap*".
30064         * tests/queryparsertest.cc: Add tests for FLAG_WILDCARD.
30066 Sun Jul 03 15:24:12 BST 2005  Olly Betts <olly@survex.com>
30068         * backends/database.cc: Fixed to auto-detect database type when
30069           opening an existing Flint database as a WritableDatabase.
30071 Sat Jul 02 18:49:22 BST 2005  Olly Betts <olly@survex.com>
30073         * tests/queryparsertest.cc: Add test case: "-site:xapian.org mail".
30075 Sat Jul 02 18:49:03 BST 2005  Olly Betts <olly@survex.com>
30077         * common/Makefile.am: Ship safewindows.h header.
30079 Sat Jul 02 18:04:18 BST 2005  Olly Betts <olly@survex.com>
30081         * bin/quartzcompact.cc,bin/xapian-compact.cc,
30082           backends/muscat36/io_system.cc,backends/quartz/btree.cc,
30083           backends/quartz/quartz_log.cc,backends/quartz/quartz_database.cc,
30084           backends/flint/,common/,net/,tests/,testsuite/backendmanager.cc,
30085           testsuite/testsuite.cc: Assorted tweaks towards allowing
30086           compilation with MSVC.
30088 Sat Jul 02 05:08:54 BST 2005  Olly Betts <olly@survex.com>
30090         * backends/quartz/: Always define WIN32_LEAN_AND_MEAN before
30091           including windows.h to reduce the amount of stuff it includes
30092           and speed up builds; Eliminate Btree::max_key_len as MSVC
30093           doesn't like the way we define it and it actually seems
30094           simpler to just use BTREE_MAX_KEY_LEN everywhere anyway.
30095         * backends/quartz/btree.cc: Added a few more assertions.
30097 Sat Jul 02 04:11:01 BST 2005  Olly Betts <olly@survex.com>
30099         * queryparser/queryparser.lemony,tests/queryparsertest.cc: Fixed to
30100           handle "-site:microsoft.com" where site is a boolean prefix.
30101         * queryparser/Makefile.am: Add dependency to generate
30102           queryparser_token.h.
30104 Thu Jun 30 02:14:16 BST 2005  Olly Betts <olly@survex.com>
30106         * testsuite/testsuite.cc: Update URL for valgrind FAQ in comment.
30108 Thu Jun 30 00:11:52 BST 2005  Olly Betts <olly@survex.com>
30110         * include/xapian/enquire.h: More explicit explanation of the
30111           "descending docid with boolean weighting" trick for fast
30112           date ordered searching.
30114 Wed Jun 29 13:16:13 BST 2005  Olly Betts <olly@survex.com>
30116         * NEWS: Fix typo: "configurec" -> "configure".
30118 Mon Jun 27 04:21:34 BST 2005  Olly Betts <olly@survex.com>
30120         * xapian.spec.in: Package xapian-compact.
30122 Mon Jun 27 03:41:23 BST 2005  Olly Betts <olly@survex.com>
30124         * backends/flint/flint_positionlist.cc,tests/api_wrdb.cc: Fixed
30125           mispacking of length for Flint positionlists with more than 127
30126           entries, and added regression test longpositionlist1.
30128 Sun Jun 26 02:04:33 BST 2005  Olly Betts <olly@survex.com>
30130         * bin/xapian-compact.cc,backends/flint/flint_cursor.h: Let
30131           PostlistCursor take ownership of the FlintTable it's iterating over
30132           which makes clean-up tidier.
30133         * bin/xapian-compact.cc: We were accidentally skipping the first
30134           entry in various tables (which essentially meant the first
30135           document from each database would go missing when merging
30136           databases).
30138 Sat Jun 25 23:45:42 BST 2005  Olly Betts <olly@survex.com>
30140         * api/omdatabase.cc: Tweak get_lastdocid() code to be a little
30141           clearer.
30143 Wed Jun 22 20:50:43 BST 2005  Olly Betts <olly@survex.com>
30145         * configure.ac,include/xapian/version.h.in,include/xapian/version_h.cc,
30146           include/Makefile.am: Eliminate use of "ln -s" when generating
30147           include/xapian/version.h since it seems to cause problems on Solaris
30148           in some setups and isn't really necessary.  Also add dependency
30149           mechanism so version.h gets regenerated when the template is
30150           changed.
30152 Wed Jun 22 18:47:05 BST 2005  Olly Betts <olly@survex.com>
30154         * docs/intro_ir.html: Citeseer has moved, so update link.
30156 Mon Jun 20 13:33:42 BST 2005  Olly Betts <olly@survex.com>
30158         * configure.ac: -Wshadow causes false positives with GCC 3.0.4, so
30159           only enable it for 3.1 and up.
30161 Mon Jun 20 03:09:07 BST 2005  Olly Betts <olly@survex.com>
30163         * queryparser/queryparser.lemony: "utilpy" -> "utility"!
30165 Fri Jun 17 19:54:44 BST 2005  Olly Betts <olly@survex.com>
30167         * COPYING: Update FSF address.
30169 Thu Jun 16 18:43:33 BST 2005  Olly Betts <olly@survex.com>
30171         * backends/flint/flint_table.cc: Fix warnings from older GCC versions.
30172         * backends/flint/flint_lock.cc: '#include <signal.h>' so that SIGHUP
30173           gets defined reliably.
30175 Thu Jun 16 17:54:39 BST 2005  Olly Betts <olly@survex.com>
30177         * bin/Makefile.am,bin/xapian-compact.cc: Added new "xapian-compact"
30178           program which can compact and merge flint databases in a similar
30179           way to how quartzcompact does for quartz databases.
30181 Thu Jun 16 01:22:45 BST 2005  Olly Betts <olly@survex.com>
30183         * configure.ac: Check for spaces in build directory, source directory,
30184           or install prefix and die with a helpful message.
30186 Wed Jun 15 01:00:11 BST 2005  Olly Betts <olly@survex.com>
30188         * backends/flint/flint_lock.cc: It seems we need to explicitly kill
30189           the child process.  Otherwise when we have two databases locked
30190           just closing the connection doesn't cause the child to die.  I
30191           don't understand why it's needed, but this fix is at least clean.
30193 Mon Jun 13 00:13:33 BST 2005  Olly Betts <olly@survex.com>
30195         * backends/flint/flint_alltermslist.cc,
30196           backends/flint/flint_alltermslist.h,
30197           backends/flint/flint_database.cc: Rewrite of FlintAllTermsList
30198           with several fewer member variables.  Also fixes a bug (the old
30199           version wasn't ignoring the metainfo entry so tests were failing).
30201 Sun Jun 12 13:08:16 BST 2005  Olly Betts <olly@survex.com>
30203         * backends/quartz/quartz_alltermslist.cc: Disable assertion which is
30204           incorrect in a corner case.
30205         * tests/api_db.cc: Add test_specialterms2 as a regression test.
30207 Sun Jun 12 02:03:52 BST 2005  Olly Betts <olly@survex.com>
30209         * backends/flint/flint_positionlist.cc: Encoding and decoding of
30210           position list size, and first and last entries didn't match.
30211           Reworked to match using a slightly smaller encoding.
30212         * backends/flint/flint_metafile.cc: Bumped format version.
30214 Sun Jun 12 02:02:35 BST 2005  Olly Betts <olly@survex.com>
30216         * backends/flint/flint_table.cc: We were failing to append "DB" to the
30217           path when opening a table for reading - fixed.
30219 Sun Jun 12 02:00:30 BST 2005  Olly Betts <olly@survex.com>
30221         * testsuite/backendmanager.cc: When a flint database was requested, we
30222           were incorrectly creating a quartz database instead - fixed.
30224 Sat Jun 11 17:53:12 BST 2005  Olly Betts <olly@survex.com>
30226         * bin/quartzcompact.cc: Fix mis-repacking of keys in positionlist
30227           table when merging several databases.
30229 Thu Jun 09 01:06:35 BST 2005  Olly Betts <olly@survex.com>
30231         * Makefile.am,configure.ac: Pass automake options to AM_INIT_AUTOMAKE
30232           rather than specifying them in Makefile.am.  This way, the version
30233           requirements for autoconf and automake are stated close together.
30235 Mon Jun 06 19:49:36 BST 2005  Olly Betts <olly@survex.com>
30237         * HACKING: Minor updates to release checklist.
30239 Mon Jun 06 17:44:19 BST 2005  Olly Betts <olly@survex.com>
30241         * NEWS,configure.ac: Updated for 0.9.1.
30243 Mon Jun 06 17:28:34 BST 2005  Olly Betts <olly@survex.com>
30245         * configure.ac: Describe CC_FOR_BUILD in configure --help output.
30247 Mon Jun 06 16:00:26 BST 2005  Olly Betts <olly@survex.com>
30249         * PLATFORMS: Updated for 0.9.1.
30251 Fri Jun 03 03:49:33 BST 2005  Olly Betts <olly@survex.com>
30253         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h: Fixed
30254           compilation failure on mingw.
30256 Fri Jun 03 01:58:08 BST 2005  Olly Betts <olly@survex.com>
30258         * PLATFORMS: Updated from tinderbox.
30260 Fri Jun 03 00:46:00 BST 2005  Olly Betts <olly@survex.com>
30262         * HACKING,NEWS: Snapshot and release tarballs are now bootstrapped
30263           using libtool 1.5.18 and automake 1.9.5 (though neither is currently
30264           an enforced requirement for bootstrapping).
30266 Thu Jun 02 17:36:36 BST 2005  Olly Betts <olly@survex.com>
30268         * NEWS: First draft of release notes for 0.9.1.
30270 Thu Jun 02 02:05:47 BST 2005  Olly Betts <olly@survex.com>
30272         * backends/flint/flint_record.cc: Fix get_doccount() to not return
30273           one too low now that the special entry is no longer in the record
30274           table!
30276 Wed Jun 01 12:41:59 BST 2005  Olly Betts <olly@survex.com>
30278         * backends/flint/flint_positionlist.cc: Placate Sun's C++ compiler.
30280 Tue May 31 19:31:24 BST 2005  Olly Betts <olly@survex.com>
30282         * backends/flint/flint_positionlist.h,
30283           backends/flint/flint_positionlist.cc,
30284           backends/flint/flint_metafile.cc: positionlist entries are now
30285           stored using interpolative coding (which is significantly more
30286           compact).
30288 Mon May 30 01:48:17 BST 2005  Olly Betts <olly@survex.com>
30290         * backends/flint/flint_lock.cc,backends/flint/flint_lock.h:  Added
30291           locking code for MS Windows (untested).
30293 Sun May 29 01:00:41 BST 2005  Olly Betts <olly@survex.com>
30295         * HACKING,NEWS,testsuite/testsuite.h: Fixed spelling mistakes.
30297 Sat May 28 22:51:15 BST 2005  Olly Betts <olly@survex.com>
30299         * tests/: svn:ignore .flint/ subdirectory.
30300         * tests/Makefile.am: Remove .flint subdirectory on 'make clean'.
30302 Sat May 28 22:45:24 BST 2005  Olly Betts <olly@survex.com>
30304         * docs/quartzdesign.html: Remove warning that quartz is still in
30305           development.
30307 Sat May 28 16:24:43 BST 2005  Olly Betts <olly@survex.com>
30309         * backends/flint/flint_lock.h: Removed unused FlintLock method
30310           'operator int()' which was confusing Sun's C++ compiler.
30312 Sat May 28 16:18:11 BST 2005  Olly Betts <olly@survex.com>
30314         * include/xapian/query.h: Removed superfluous "Query::" which was
30315           causing the build to fail with aCC.
30317 Sat May 28 14:31:33 BST 2005  Olly Betts <olly@survex.com>
30319         * backends/flint/flint_metafile.cc: Added missing '#include <errno.h>'.
30321 Sat May 28 14:15:36 BST 2005  Olly Betts <olly@survex.com>
30323         * backends/flint/flint_positionlist.cc: Simplify code a bit.
30325 Sat May 28 02:01:12 BST 2005  Olly Betts <olly@survex.com>
30327         * backends/flint/: Move the special item holding the total document
30328           length and doc id high water mark from the record table to the
30329           postlist table.  This means that when appending documents, the
30330           insertion point will now always be at the end of the record table.
30331           We need to jump around the postlist table to merge anyway.
30333 Sat May 28 00:42:25 BST 2005  Olly Betts <olly@survex.com>
30335         * backends/flint/flint_metafile.cc: Change metafile magic to be
30336           different from quartz, and make the metafile version a datestamp
30337           which we'll change each time the format changes; check the return
30338           value of close on the metafile.
30340 Fri May 27 22:09:45 BST 2005  Olly Betts <olly@survex.com>
30342         * backends/Makefile.am,backends/flint/: Implement new fork+fcntl+exec
30343           based locking;  Fix new GCC warnings.
30345 Fri May 27 22:06:14 BST 2005  Olly Betts <olly@survex.com>
30347         * api/omquery.cc: Missed a warning fix.
30349 Fri May 27 22:04:18 BST 2005  Olly Betts <olly@survex.com>
30351         * backends/quartz/btree.cc,backends/quartz/btree.h,
30352           backends/quartz/quartz_postlist.cc,common/omtime.h,matcher/,
30353           net/socketserver.cc,net/socketcommon.cc,net/socketclient.cc,
30354           testsuite/btreecheck.h,testsuite/testsuite.cc: Fix GCC warnings
30355           from new flags.
30357 Fri May 27 20:06:52 BST 2005  Olly Betts <olly@survex.com>
30359         * queryparser/queryparser.lemony: Add missing '#include <config.h>'.
30361 Fri May 27 12:20:03 BST 2005  Olly Betts <olly@survex.com>
30363         * common/omdebug.h: Oops, change to static_cast reveals that we were
30364           discarding const (harmlessly).
30366 Fri May 27 12:16:03 BST 2005  Olly Betts <olly@survex.com>
30368         * common/omdebug.h: Replace C style cast with static_cast<>.
30370 Fri May 27 12:07:48 BST 2005  Olly Betts <olly@survex.com>
30372         * configure.ac: -Wendif should be -Wendif-labels.
30374 Wed May 25 20:41:39 BST 2005  Olly Betts <olly@survex.com>
30376         * configure.ac: Pass more -W flags to g++ (including -Wundef which
30377           caught the getopt problem fixed by the previous commit).
30379 Wed May 25 20:32:35 BST 2005  Olly Betts <olly@survex.com>
30381         * getopt/getopt.cc: Added accidentally pruned #define so that getopt
30382           code isn't compiled in when the system uses glibc.
30384 Wed May 25 18:36:41 BST 2005  Olly Betts <olly@survex.com>
30386         * configure.ac: Add -Wredundant-decls to the default CXXFLAGS for GCC.
30388 Wed May 25 03:33:34 BST 2005  Olly Betts <olly@survex.com>
30390         * tests/apitest.cc,tests/api_db.cc,tests/api_db.h,
30391           testsuite/backendmanager.cc,testsuite/backendmanager.h:
30392           apitest now runs tests on flint as well.
30394 Wed May 25 03:20:12 BST 2005  Olly Betts <olly@survex.com>
30396         * backends/database.cc: When automatically determining which backend
30397           to use when creating a WritableDatabase, don't try to open it as
30398           both Flint *AND* Quartz (an "else" was missing).
30400 Wed May 25 03:19:21 BST 2005  Olly Betts <olly@survex.com>
30402         * backends/flint/flint_btreebase.cc: Fix typo in code which prevented
30403           a flint database from being opened.
30405 Wed May 25 01:10:51 BST 2005  Olly Betts <olly@survex.com>
30407         * include/xapian/version.h.in,include/xapian/dbfactory.h,
30408           include/xapian/queryparser.h,backends/quartz/,backends/flint/:
30409           Flint backend hooked in fully, and everything now builds once
30410           more.
30412 Tue May 24 02:30:39 BST 2005  Olly Betts <olly@survex.com>
30414         * HACKING: Add "email Fabrice" to the release checklist so that RPM
30415           spec files don't lag behind.  The new svn-tag-release script
30416           actually builds the release tarballs rather than just copying
30417           snapshots like cvs-tag-release did, so document that.
30419 Tue May 24 01:21:18 BST 2005  Olly Betts <olly@survex.com>
30421         * include/xapian/queryparser.h: Added missing documentation comments.
30423 Mon May 23 02:36:06 BST 2005  Olly Betts <olly@survex.com>
30425         * configure.ac,backends/database.cc,backends/Makefile.am,
30426           backends/flint/: Cloned the quartz backend to form the basis of the
30427           new flint backend.  Currently it's the same except that the quartz
30428           log feature has been removed.  When creating a database without a
30429           specified backend, quartz is still used unless the environmental
30430           variable XAPIAN_PREFER_FLINT is set to a non-empty value.
30432 Sat May 21 20:58:48 BST 2005  Olly Betts <olly@survex.com>
30434         * xapian.spec.in: Remove bogus %setup line left over from when we
30435           packaged xapian-core and xapian-examples together from separate
30436           tarballs.
30438 Thu May 19 01:12:27 BST 2005  Olly Betts <olly@survex.com>
30440         * bin/quartzcheck.cc: Fixed corner case where you couldn't check a
30441           single Btree table which was just the DB and baseA/baseB files
30442           in a directory (Xapian doesn't produce anything like this, but
30443           btreetest does while unit testing the Btree code).
30445 Wed May 18 16:59:23 BST 2005  Olly Betts <olly@survex.com>
30447         * api/omquery.cc,include/xapian/query.h: Put Query::get_terms_end()
30448           inline in header.
30450 Wed May 18 16:41:56 BST 2005  Olly Betts <olly@survex.com>
30452         * api/omquery.cc,tests/api_nodb.cc: Fix SEGV on get_terms_begin()
30453           on an empty Query object.
30455 Mon May 16 22:58:09 BST 2005  Olly Betts <olly@survex.com>
30457         * api/omqueryinternal.cc: Fixed compilation with --enable-debug.
30459 Sat May 14 01:02:33 BST 2005  Olly Betts <olly@survex.com>
30461         * docs/doxygen_full_conf.in: Fix lingering DOXYGEN_HAVE_DOT reference.
30463 Sat May 14 00:36:14 BST 2005  Olly Betts <olly@survex.com>
30465         * HACKING: Update information about the SVN tag name to use for
30466           debian files.
30468 Fri May 13 23:21:54 BST 2005  Olly Betts <olly@survex.com>
30470         * HACKING: Updated release instructions to refer to SVN.
30472 Fri May 13 20:58:15 BST 2005  Olly Betts <olly@survex.com>
30474         * PLATFORMS: Updated for 0.9.0.
30476 Fri May 13 02:47:42 BST 2005  Olly Betts <olly@survex.com>
30478         * include/xapian/queryparser.h: Fix for Sun's C++ compiler.
30480 Fri May 13 00:09:07 BST 2005  Olly Betts <olly@survex.com>
30482         * NEWS,configure.ac: Updated for 0.9.0.
30484 Thu May 12 18:54:11 BST 2005  Olly Betts <olly@survex.com>
30486         * docs/doxygen_api_conf.in,docs/Makefile.am: Fix to generate docs
30487           for all backend factory functions like 0.8.5 did.
30489 Thu May 12 16:59:22 BST 2005  Olly Betts <olly@survex.com>
30491         * backends/database.cc,backends/Makefile.am,include/xapian/database.h,
30492           include/xapian/dbfactory.h,include/xapian.h,include/Makefile.am:
30493           Split off database factory methods into xapian/dbfactory.h - this
30494           allows us to fix recent breakage in VPATH builds (caused by the
30495           need to include the generated file xapian/version.h from
30496           xapian/database.h) without modifying almost every Makefile.am.
30498 Wed May 11 16:52:41 BST 2005  Olly Betts <olly@survex.com>
30500         * queryparser/queryparser.lemony: Move prefixed, bracketed
30501           subexpression to be an alternative for stop_term which allows
30502           "term prefix:(term2 term3)" to parse correctly. Also move
30503           non-prefixed, bracketed subexpression to be an alternative
30504           for stop_term - this doesn't change how things parse, but
30505           makes the grammar simpler.
30506         * tests/queryparsertest.cc: Added regression test for the above.
30507         * tests/Makefile.am,tests/queryparsertest.cc: Reworked queryparsertest
30508           to use the standard testsuite harness.
30510 Wed May 11 16:09:32 BST 2005  Olly Betts <olly@survex.com>
30512         * include/xapian/query.h: Fix OP_ELITE_SET at 10 (the value it had
30513           in 0.8.5).
30515 Tue May 10 22:56:45 BST 2005  Olly Betts <olly@survex.com>
30517         * docs/Makefile.am: Removed check for DOXYGEN_HAVE_DOT which I removed
30518           recently.
30520 Tue May 10 01:09:01 BST 2005  Olly Betts <olly@survex.com>
30522         * queryparser/queryparser.lemony: Removed state parameter from
30523           TermList::add_term() since it is no longer used.
30525 Mon May 09 20:56:40 BST 2005  Olly Betts <olly@survex.com>
30527         * docs/Makefile.am: Explicitly set the pool_size for latex, because we
30528           seem to overflow the default setting on many systems.
30529         * docs/Makefile.am: Use $(MAKE) instead of make.
30531 Sun May 08 23:22:37 BST 2005  Olly Betts <olly@survex.com>
30533         * configure.ac: Corrected $CC -> $CXX to fix bogus message "Checking
30534           for  option to enable ANSI C++ mode".
30535         * configure.ac: If any tools needed for documentation are missing
30536           and we're in maintainer mode, die with a suitable error in
30537           configure rather than with strange errors when building the
30538           documentation.
30540 Sun May 08 01:43:55 BST 2005  Olly Betts <olly@survex.com>
30542         * include/xapian/queryparser.h,queryparser/queryparser.lemony,
30543           queryparser/queryparser_internal.h,queryparser/queryparser.cc:
30544           Remove QueryParser::termlist_begin() and termlist_end() since
30545           you can just use Query::terms_begin() and terms_end() on the
30546           Query object returned by QueryParser::parse_query().
30548 Thu May 05 01:00:26 BST 2005  Olly Betts <olly@survex.com>
30550         * common/utils.cc: On WIN32, don't define NOMINMAX if it is already
30551           defined.
30553 Wed May 04 00:52:04 BST 2005  Olly Betts <olly@survex.com>
30555         * matcher/bm25weight.cc: Avoid needing document length if we're simply
30556           going to multiply it by zero!
30558 Tue May 03 14:07:20 BST 2005  Olly Betts <olly@survex.com>
30560         * HACKING: CVS -> SVN;  Note that tabs should be 8 spaces.
30562 Thu Apr 28 21:13:17 BST 2005  Olly Betts <olly@survex.com>
30564         * include/xapian/database.h: Don't declare the backend factory
30565           functions if the corresponding backend has been disabled.  This
30566           means that trying to use a disabled backend will be caught at
30567           compile time rather than link time.
30569 Thu Apr 28 21:12:43 BST 2005  Olly Betts <olly@survex.com>
30571         * docs/intro_ir.html: Corrected two errors.
30573 Wed Apr 27 23:04:53 BST 2005  Olly Betts <olly@survex.com>
30575         * configure.ac,include/xapian/version.h.in: Define
30576           XAPIAN_HAS_xxx_BACKEND for each backend which is enabled.  The
30577           bindings need this, and user code might find it useful too.
30579 Wed Apr 27 03:31:50 BST 2005  Olly Betts <olly@survex.com>
30581         * api/omdatabase.cc,api/ompostlistiterator.cc,
30582           api/omtermlistiterator.cc,include/xapian/,
30583           queryparser/queryparser.cc: Where end iterator is just
30584           FooIterator(NULL) put it inline in the header for efficiency.
30585           If we ever need to change an implementation, we can easily move
30586           methods back into the library and bump the library version suitably.
30588 Wed Apr 27 02:40:43 BST 2005  Olly Betts <olly@survex.com>
30590         * examples/quest.cc,include/xapian/queryparser.h,
30591           queryparser/queryparser.cc,tests/queryparsertest.cc: Rename
30592           QueryParser::set_stemming_options() to set_stemming_strategy()
30593           - it's a better name and avoids confusion with the old deprecated
30594           method called set_stemming_options().
30595         * examples/quest.cc: Added stopword handling.
30597 Wed Apr 27 02:39:33 BST 2005  Olly Betts <olly@survex.com>
30599         * include/xapian/enquire.h: Fixed documentation comment.
30601 Sun Apr 24 03:02:47 BST 2005  Olly Betts <olly@survex.com>
30603         * api/omstem.cc: Simplified Xapian::Stem::Internal.
30605 Sun Apr 24 02:21:22 BST 2005  Olly Betts <olly@survex.com>
30607         * tests/api_nodb.cc: Extended stemlang1 to check that trying to create
30608           a stemmer for a non-existent language throws InvalidArgumentError.
30610 Fri Apr 22 01:20:57 BST 2005  Olly Betts <olly@survex.com>
30612         * include/xapian/document.h: Clearer documentation comments.
30614 Thu Apr 21 15:03:42 BST 2005  Olly Betts <olly@survex.com>
30616         * docs/overview.html,include/xapian/query.h: Removed lingering
30617           references to OP_WEIGHT_CUTOFF.
30619 Thu Apr 21 01:46:51 BST 2005  Olly Betts <olly@survex.com>
30621         * PLATFORMS: Added success report for Ubuntu 5.04 on x86_64.
30623 Mon Apr 18 02:54:10 BST 2005  Olly Betts <olly@survex.com>
30625         * docs/stemming.html: Stemming appears to be applicable to Japanese
30626           so don't say it isn't!
30628 Sat Apr 16 01:08:22 BST 2005  Olly Betts <olly@survex.com>
30630         * PLATFORMS: Updated from tinderbox.
30632 Fri Apr 15 23:18:58 BST 2005  Olly Betts <olly@survex.com>
30634         * languages/: Remove lingering .c versions of snowball generated
30635           sources.
30637 Fri Apr 15 02:05:27 BST 2005  Olly Betts <olly@survex.com>
30639         * include/xapian/queryparser.h,queryparser/queryparser_internal.h,
30640           queryparser/queryparser.cc: Implemented QueryParser::set_database()
30641           method.
30642         * queryparser/queryparser.lemony: Allow searches for C#, etc.  If a
30643           database has been set, for this and + and - suffixes, check if the
30644           term actually exists, and if not, ignore the suffix if the
30645           unsuffixed term exists.
30646         * tests/queryparsertest.cc: Added tests for # suffix.
30648 Thu Apr 14 23:39:57 BST 2005  Olly Betts <olly@survex.com>
30650         * include/xapian/stem.h: Rewritten with better documentation comments.
30651         * include/xapian/stem.h: Added operator() as preferred alternative
30652           to stem_word().
30653         * api/omstem.cc,include/xapian/stem.h: Simplified by restructuring
30654           to eliminate a few internal methods.
30656 Thu Apr 14 23:35:47 BST 2005  Olly Betts <olly@survex.com>
30658         * queryparser/queryparser.cc: Make get_description() debug tracing
30659           message category INTRO not API.
30661 Thu Apr 14 19:57:06 BST 2005  Olly Betts <olly@survex.com>
30663         * include/xapian/queryparser.h,queryparser/queryparser.cc: Added
30664           QueryParser::get_description() method (not very descriptive yet!)
30666 Thu Apr 14 03:30:09 BST 2005  Olly Betts <olly@survex.com>
30668         * include/xapian/queryparser.h: Fixed to only include the xapian
30669           headers we actually depend on.
30670         * include/xapian/queryparser.h: Added \file and \brief documentation
30671           comments.
30673 Thu Apr 14 02:50:36 BST 2005  Olly Betts <olly@survex.com>
30675         * examples/quest.cc,include/xapian.h,tests/queryparsertest.cc:
30676           Change xapian.h to automatically include xapian/queryparser.h
30677           and fix direct includes of xapian/queryparser.h in tests and
30678           examples.
30680 Thu Apr 14 01:48:39 BST 2005  Olly Betts <olly@survex.com>
30682         * include/xapian/queryparser.h: Added Xapian::SimpleStopper which
30683           should be sufficient for the majority of uses.
30684         * include/xapian/queryparser.h,queryparser/queryparser_internal.h,
30685           queryparser/queryparser.cc: Changed QueryParser::set_stopper() to
30686           take a const pointer.
30688 Thu Apr 07 15:57:15 BST 2005  Olly Betts <olly@survex.com>
30690         * api/omenquire.cc,common/omenquireinternal.h,common/multimatch.h,
30691           matcher/multimatch.cc,net/socketserver.cc: Tidy up after sort_bands.
30693 Thu Apr 07 15:15:27 BST 2005  Olly Betts <olly@survex.com>
30695         * api/omenquire.cc,common/,include/xapian/enquire.h,
30696           matcher/networkmatch.cc,matcher/multimatch.cc,matcher/networkmatch.h,
30697           net/socketserver.cc,net/socketclient.cc,tests/api_db.cc:
30698           Enhanced Enquire sorting API and added ability to reverse sort on
30699           a value.
30700         * api/omenquire.cc: Enquire::get_description() now includes output of
30701           Enquire::Internal::get_description().
30703 Thu Apr 07 13:55:56 BST 2005  Olly Betts <olly@survex.com>
30705         * HACKING: Fixed a typo.
30707 Thu Apr 07 13:37:02 BST 2005  Olly Betts <olly@survex.com>
30709         * backends/quartz/btree.cc,backends/quartz/btree.h,
30710           bin/quartzcompact.cc: The "fuller compaction" code needs changes
30711           to btree.h which I'd failed to check in.  Also document --fuller
30712           in 'quartzcompact --help'.
30714 Thu Apr 07 03:35:36 BST 2005  Olly Betts <olly@survex.com>
30716         * bin/quartzcompact.cc: Added "fuller compaction" mode, which ignores
30717           the usual "at least 4 items per block" rule.
30719 Thu Apr 07 03:28:32 BST 2005  Olly Betts <olly@survex.com>
30721         * PLATFORMS: Added success result for GCC 3.2.3 on FreeBSD 4.8; fixed
30722           a typo.
30724 Wed Apr 06 23:04:15 BST 2005  Olly Betts <olly@survex.com>
30726         * queryparser/queryparser.lemony: Added FIXME comment.
30728 Wed Apr 06 22:52:53 BST 2005  Olly Betts <olly@survex.com>
30730         * ./: Removed ylwrap from svn:ignore.
30732 Tue Apr 05 22:34:16 BST 2005  Olly Betts <olly@survex.com>
30734         * queryparser/queryparsertest.cc,queryparser/Makefile.am,
30735           tests/Makefile.am: Moved queryparsertest into tests/.
30737 Tue Apr 05 22:15:05 BST 2005  Olly Betts <olly@survex.com>
30739         * examples/: Updated svn:ignore property.
30741 Tue Apr 05 21:34:13 BST 2005  Olly Betts <olly@survex.com>
30743         * queryparser/Makefile.am,configure.ac,extra/xapian/queryparser.h,
30744           extra/,include/Makefile.am,Makefile.am: Move extra/ to queryparser/;
30745           Merge extra/xapian/ into include/xapian/.
30747 Tue Apr 05 16:37:32 BST 2005  Olly Betts <olly@survex.com>
30749         * m4/xapian.m4: Fix m4 quoting (argh!)
30751 Tue Apr 05 16:28:06 BST 2005  Olly Betts <olly@survex.com>
30753         * m4/xapian.m4: Fix XO_LIB_XAPIAN to trim off any _svn6789 from
30754           XAPIAN_VERSION.
30756 Tue Apr 05 16:17:31 BST 2005  Olly Betts <olly@survex.com>
30758         * configure.ac: Fix m4 quoting.
30760 Tue Apr 05 15:16:38 BST 2005  Olly Betts <olly@survex.com>
30762         * configure.ac: #define VERSION in version.h shouldn't include any
30763           _svn6789 suffix.
30765 Tue Apr 05 13:28:23 BST 2005  Olly Betts <olly@survex.com>
30767         * configure.ac: Snapshot generator now appends _svn6789 or similar to
30768           the version string, so take that into account when finding REVISION.
30770 Tue Apr 05 12:55:52 BST 2005  Olly Betts <olly@survex.com>
30772         * ChangeLog.examples,Makefile.am,examples/ChangeLog: Move
30773           xapian-examples ChangeLog to ChangeLog.examples in the top-level
30774           and include in the tarball.
30776 Tue Apr 05 02:18:08 BST 2005  Olly Betts <olly@survex.com>
30778         * examples/dir_contents,examples/README: Converted xapian-examples
30779           README into a dir_contents file.
30781 Tue Apr 05 02:12:31 BST 2005  Olly Betts <olly@survex.com>
30783         * docs/overview.html,docs/install.html,configure.ac,Makefile.am,
30784           xapian.spec.in,examples/Makefile.am: Moved xapian-examples module
30785           to examples subdirectory of xapian-core.
30787 Tue Apr 05 00:37:05 BST 2005  Olly Betts <olly@survex.com>
30789         * m4/.cvsignore,debian/.cvsignore,matcher/.cvsignore,docs/.cvsignore,
30790           tests/.cvsignore,bin/.cvsignore,.cvsignore,autoconf/.cvsignore,
30791           extra/.cvsignore,include/xapian/.cvsignore,include/.cvsignore,
30792           net/.cvsignore,common/.cvsignore,testsuite/.cvsignore,
30793           getopt/.cvsignore,languages/.cvsignore,api/.cvsignore,
30794           backends/inmemory/.cvsignore,backends/muscat36/.cvsignore,
30795           backends/net/.cvsignore,backends/quartz/.cvsignore,
30796           backends/multi/.cvsignore,backends/.cvsignore: Remove .cvsignore
30797           files, as they're not used by SVN.
30799 Thu Mar 10 01:48:20 GMT 2005  Olly Betts <olly@survex.com>
30801         * testsuite/backendmanager.cc,testsuite/index_utils.cc,
30802           testsuite/index_utils.h: Rewrite of index_utils code, removing
30803           unused and unusual features.
30804         * tests/testdata/: Cleaned up data for apitest now that paragraphs
30805           don't have the odd minimum number of lines!
30806         * tests/testdata/apitest_space.txt: New index_utils code has C-like
30807           \ escapes for control characters rather than ^ escapes.
30809 Wed Mar 09 22:04:08 GMT 2005  Olly Betts <olly@survex.com>
30811         * common/utils.h: Added C_isxdigit and C_isnotxdigit.
30813 Wed Mar 09 15:22:35 GMT 2005  Olly Betts <olly@survex.com>
30815         * testsuite/index_utils.cc: Fixed ^x to actually decode hex values
30816           correctly.
30818 Tue Mar 08 16:57:25 GMT 2005  Olly Betts <olly@survex.com>
30820         * matcher/multimatch.cc: Minor code tidy.
30822 Tue Mar 08 15:48:38 GMT 2005  Olly Betts <olly@survex.com>
30824         * api/omenquire.cc,docs/matcherdesign.html,include/xapian/enquire.h,
30825           matcher/multimatch.cc,tests/api_db.cc: Removed sort_bands support.
30827 Tue Mar 08 04:13:03 GMT 2005  Olly Betts <olly@survex.com>
30829         * bin/quartzcompact.cc: Fixed to add items for all tables in key order
30830           which produces results around 40% more compact (previously in the
30831           merge case, this was only happening for the postlist table).
30833 Tue Mar 08 03:30:06 GMT 2005  Olly Betts <olly@survex.com>
30835         * testsuite/btreecheck.cc: Make default check output fit on a single
30836           line (at least for many databases).
30838 Tue Mar 08 02:34:41 GMT 2005  Olly Betts <olly@survex.com>
30840         * matcher/multimatch.cc: Fix warning from newer versions of GCC.
30842 Sat Mar 05 00:25:07 GMT 2005  Olly Betts <olly@survex.com>
30844         * api/omenquire.cc,common/omenquireinternal.h,include/xapian/enquire.h,
30845           matcher/multimatch.cc,tests/api_db.cc: Fixed Xapian::RSet to have
30846           the same "it's a handle" copy semantics as most of the other
30847           classes.
30849 Sat Mar 05 00:23:47 GMT 2005  Olly Betts <olly@survex.com>
30851         * testsuite/testsuite.h: Fixed TEST_EQUAL_DOUBLE to use DBL_EPSILON
30852           correctly.
30854 Fri Mar 04 21:06:38 GMT 2005  Olly Betts <olly@survex.com>
30856         * tests/testdata/etext.txt: Stripped carriage returns.
30858 Fri Mar 04 21:04:25 GMT 2005  Olly Betts <olly@survex.com>
30860         * PLATFORMS: Assorted updates.
30862 Thu Mar 03 01:17:07 GMT 2005  Olly Betts <olly@survex.com>
30864         * bin/quartzcompact.cc: Fixed to allow compacting a single database.
30865           Fixed handling of very last term when merging postlists.
30867 Wed Mar 02 03:18:30 GMT 2005  Olly Betts <olly@survex.com>
30869         * backends/quartz/quartz_values.cc: Values are stored in sorted order
30870           so we can stop unpacking the list once we get to one after the one
30871           we're looking for.
30873 Wed Mar 02 02:59:23 GMT 2005  Olly Betts <olly@survex.com>
30875         * bin/quartzcheck.cc: Now checks the structure of all the tables, not
30876           just the postlist table, and cross-checks doclen values between
30877           termlist and postlist tables.  Recognises "--help" option.  Should
30878           now continue after an error (typically it would crash before), and
30879           counts the number of errors found.  Now exits with non-zero status
30880           if any errors were found.
30882 Tue Mar 01 18:48:25 GMT 2005  Olly Betts <olly@survex.com>
30884         * xapian.spec.in: '/usr/share' -> '%{_datadir}'.
30886 Tue Mar 01 16:21:07 GMT 2005  Olly Betts <olly@survex.com>
30888         * tests/api_db.cc: Fixed warning from Sun's C++ compiler.
30890 Tue Mar 01 02:02:15 GMT 2005  Olly Betts <olly@survex.com>
30892         * bin/quartzcompact.cc: Extended to allow merging several quartz
30893           databases to produce a single compact quartz database.  This
30894           allows for faster building - simple index in chunks, then merge
30895           the chunks.
30897 Tue Mar 01 00:08:12 GMT 2005  Olly Betts <olly@survex.com>
30899         * xapian.spec.in: Put the .so in the -devel package (it's only useful
30900           for linking to - the .so.* files are all that's needed at runtime).
30902 Tue Mar 01 00:05:25 GMT 2005  Olly Betts <olly@survex.com>
30904         * Makefile.am,xapian-config.in,xapian.spec.in,extra/.cvsignore,
30905           extra/Makefile.am: Eliminated the extra library for the queryparser
30906           - it's tiny compared to the main library and having it around just
30907           complicates things.
30909 Mon Feb 28 23:52:19 GMT 2005  Olly Betts <olly@survex.com>
30911         * tests/api_anydb.cc: More set_length() changes.
30913 Mon Feb 28 20:31:13 GMT 2005  Olly Betts <olly@survex.com>
30915         * net/socketclient.cc,net/socketserver.cc,api/omenquire.cc,
30916           api/omquery.cc,api/omqueryinternal.cc,common/,
30917           include/xapian/enquire.h,include/xapian/query.h,matcher/:
30918           Remove Query::set_length() in favour of an optional length
30919           parameter to Enquire::set_query().
30921 Mon Feb 28 15:32:32 GMT 2005  Olly Betts <olly@survex.com>
30923         * api/omqueryinternal.cc,common/Makefile.am,common/deleter_vector.h:
30924           Removed deleter_vector as it's no longer used anywhere.
30926 Mon Feb 28 15:27:42 GMT 2005  Olly Betts <olly@survex.com>
30928         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
30929           matcher/localmatch.cc,tests/api_anydb.cc,tests/api_nodb.cc:
30930           Eliminated Query::set_elite_set_size().
30932 Mon Feb 28 15:15:45 GMT 2005  Olly Betts <olly@survex.com>
30934         * HACKING: Note how to disable use of VALGRIND on the make check
30935           command line, or when using runtest directly.
30937 Mon Feb 28 13:36:07 GMT 2005  Olly Betts <olly@survex.com>
30939         * common/omqueryinternal.h: Removed out-of-date commented out version
30940           of Xapian::Query::Internal.
30942 Mon Feb 28 13:07:42 GMT 2005  Olly Betts <olly@survex.com>
30944         * backends/quartz/quartz_alltermslist.cc,tests/api_db.cc: Updated (C)
30945           dates for changes earlier this year.
30947 Mon Feb 28 13:04:41 GMT 2005  Olly Betts <olly@survex.com>
30949         * api/omquery.cc,api/omqueryinternal.cc,include/xapian/query.h,
30950           matcher/localmatch.cc,matcher/localmatch.h,tests/api_anydb.cc,
30951           tests/api_nodb.cc,tests/api_posdb.cc: Eliminated Query::set_window
30952           in favour of an optional parameter to the constructor, with the aim
30953           of making Query objects immutable once constructed.
30955 Mon Feb 28 12:32:26 GMT 2005  Olly Betts <olly@survex.com>
30957         * extra/queryparser.lemony: Updated 2 uses of Query::set_window().
30959 Mon Feb 28 04:43:20 GMT 2005  Olly Betts <olly@survex.com>
30961         * api/omquery.cc,api/omqueryinternal.cc,common/socketcommon.h,
30962           include/xapian/query.h,matcher/,tests/api_anydb.cc:
30963           Removed OP_WEIGHT_CUTOFF, since it doesn't actually seem to
30964           add useful functionality over using Enquire::set_cutoff().
30966 Mon Feb 28 04:31:58 GMT 2005  Olly Betts <olly@survex.com>
30968         * matcher/weightcutoffpostlist.cc: Fix updating of docid in
30969           WeightCutoffPostList - the current code works, but can end up doing
30970           lots (potentially millions) of pointless loop iterations.
30972 Mon Feb 28 02:57:29 GMT 2005  Olly Betts <olly@survex.com>
30974         * docs/queryparser.html: Note that + and - work on phrases and
30975           bracketed expressions.
30977 Fri Feb 25 17:06:23 GMT 2005  Olly Betts <olly@survex.com>
30979         * backends/quartz/quartz_alltermslist.cc: Fix skip_to on an allterms
30980           TermIterator to set the current term when the skip_to-ed term is
30981           in the database.
30982         * tests/api_db.cc: Add regression test for this (allterms5).
30984 Wed Feb 23 19:07:30 GMT 2005  Olly Betts <olly@survex.com>
30986         * configure.ac: Suppress 2 Intel C++ warnings which we can't easily
30987           code around, and enable -Werror automatically with
30988           --enable-maintainer-mode.
30989         * configure.ac: Check that the C++ compiler can actually link a
30990           program.  AC_LANG_CXX doesn't, and if it can't find a C++ compiler
30991           it'll just return "g++" which just leads to a later configure
30992           test failing in a confusing way.
30994 Tue Feb 22 13:39:07 GMT 2005  Olly Betts <olly@survex.com>
30996         * include/xapian/enquire.h: Improved documentation comments.
30997         * api/omenquire.cc,include/xapian/enquire.h: MSet::max_size() (which
30998           only exists so that MSet is an STL compiler) now returns
30999           MSet::size() and is inlined from the header.
31000         * include/xapian/enquire.h: Added ESet::max_size() (for STL
31001           compatibility).
31003 Tue Feb 22 00:18:33 GMT 2005  Olly Betts <olly@survex.com>
31005         * configure.ac: corrected "none known for yes" or "none known for no"
31006           to "none known for g++-3.2" or similar.
31007         * configure.ac: autoconf identifies Intel's C++ compiler as GCC, so
31008           probe for which it actually is.
31010 Mon Feb 21 21:54:29 GMT 2005  Olly Betts <olly@survex.com>
31012         * PLATFORMS: Updated.
31014 Mon Feb 21 16:06:32 GMT 2005  Olly Betts <olly@survex.com>
31016         * PLATFORMS: Added success report for Intel C++ 8.1 on ia64 Linux
31017           (and also GCC 3.2.3 on ia64 Linux).
31019 Mon Feb 21 05:33:46 GMT 2005  Olly Betts <olly@survex.com>
31021         * backends/multi/: Don't delare methods in headers if they're virtual
31022           or large.
31024 Mon Feb 21 04:11:23 GMT 2005  Olly Betts <olly@survex.com>
31026         * backends/inmemory/inmemory_database.cc,
31027           backends/inmemory/inmemory_database.h: Don't delare methods in
31028           headers if they're virtual or large.
31030 Sun Feb 20 21:13:40 GMT 2005  Olly Betts <olly@survex.com>
31032         * common/multimatch.h: Removed unused "class SocketServer;".
31034 Sun Feb 20 19:47:01 GMT 2005  Olly Betts <olly@survex.com>
31036         * net/socketserver.cc: Fixed typo in debug code.
31038 Sat Feb 19 18:44:17 GMT 2005  Olly Betts <olly@survex.com>
31040         * PLATFORMS: Added minimal testcase which fails to compile with
31041           Compaq's C++ compiler (cxx).
31043 Sat Feb 19 04:23:51 GMT 2005  Olly Betts <olly@survex.com>
31045         * backends/quartz/btree.cc,backends/quartz/btree.h: Change
31046           Btree::find_in_block to take a bool indicating if this is a leaf
31047           block rather than an offset to subtract when it is.
31049 Fri Feb 18 04:27:16 GMT 2005  Olly Betts <olly@survex.com>
31051         * HACKING: Added better description of how reference-counted API
31052           classes are structured.
31053         * include/xapian/postingiterator.h,include/xapian/termiterator.h:
31054           More (and better) documentation comments.
31056 Fri Feb 18 03:05:40 GMT 2005  Olly Betts <olly@survex.com>
31058         * backends/quartz/btree.cc: Made full compaction a tiny bit more
31059           compact.  Improved compaction by a few % in non-full case.
31060           Tighter bound on amount of memory to reserve to read the tag
31061           into.
31063 Fri Feb 18 00:47:41 GMT 2005  Olly Betts <olly@survex.com>
31065         * api/omenquire.cc: Removed duplicate "#include <xapian/enquire.h>".
31067 Thu Feb 17 01:33:01 GMT 2005  Olly Betts <olly@survex.com>
31069         * extra/queryparser_internal.h: Further Sun C++ fixes.
31071 Wed Feb 16 05:32:40 GMT 2005  Olly Betts <olly@survex.com>
31073         * extra/queryparser.lemony: Attempted fix for Sun's C++ compiler.
31075 Tue Feb 15 02:10:35 GMT 2005  Olly Betts <olly@survex.com>
31077         * extra/queryparser.cc,extra/queryparser.lemony,
31078           extra/queryparser_internal.h: Fixed namespace stuff to keep Sun's C++
31079           compiler happy.
31081 Mon Feb 14 21:21:08 GMT 2005  Olly Betts <olly@survex.com>
31083         * api/vectortermlist.h: Workaround a shortcoming in Sun's C++
31084           compiler.
31086 Mon Feb 14 21:16:05 GMT 2005  Olly Betts <olly@survex.com>
31088         * PLATFORMS: Results from upgraded sourceforge x86_64 box.
31090 Mon Feb 14 18:36:40 GMT 2005  Olly Betts <olly@survex.com>
31092         * extra/xapian/queryparser.h: Fixed compilation error.
31094 Mon Feb 14 18:00:12 GMT 2005  Olly Betts <olly@survex.com>
31096         * extra/xapian/queryparser.h: Added backward compatibility wrapper for
31097           old version of QueryParser::set_stemming_options().
31099 Mon Feb 14 17:50:47 GMT 2005  Olly Betts <olly@survex.com>
31101         * extra/xapian/queryparser.h: Added dummy QueryParser::set_database()
31102           (currently it ignores the parameter).
31104 Mon Feb 14 15:34:13 GMT 2005  Olly Betts <olly@survex.com>
31106         * extra/lemon.c: C90, not C99!
31108 Mon Feb 14 15:20:11 GMT 2005  Olly Betts <olly@survex.com>
31110         * extra/lemon.c: C, not C++.
31112 Mon Feb 14 05:49:50 GMT 2005  Olly Betts <olly@survex.com>
31114         * extra/: Tweak lemon so we can avoid generating files in builddir
31115           in a VPATH build.
31117 Mon Feb 14 02:44:17 GMT 2005  Olly Betts <olly@survex.com>
31119         * extra/Makefile.am: Update to reflect lempar.c -> queryparser.lt.
31121 Mon Feb 14 02:25:53 GMT 2005  Olly Betts <olly@survex.com>
31123         * extra/lempar.c,extra/queryparser.lt: Rename lemon template to .lt
31124           which is more sensible than calling it lempar.c and should work
31125           with VPATH builds.
31127 Mon Feb 14 02:12:51 GMT 2005  Olly Betts <olly@survex.com>
31129         * extra/Makefile.am: Fixes for VPATH builds.
31131 Mon Feb 14 01:43:59 GMT 2005  Olly Betts <olly@survex.com>
31133         * configure.ac: Need to AC_SUBST(CC_FOR_BUILD).
31135 Mon Feb 14 00:19:45 GMT 2005  Olly Betts <olly@survex.com>
31137         * extra/Makefile.am: Added dependency for building queryparser.h.
31139 Sun Feb 13 23:30:02 GMT 2005  Olly Betts <olly@survex.com>
31141         * extra/queryparser.cc,extra/queryparser_internal.h,
31142           extra/xapian/queryparser.h: Fixed to compile with GCC 3.3.
31144 Sun Feb 13 23:09:15 GMT 2005  Olly Betts <olly@survex.com>
31146         * configure.ac: Enhanced valgrind test to (a) see if --tool=memcheck
31147           is needed and (b) see if valgrind actually works (we don't want to
31148           try to use an x86 valgrind on an x86_64 box).
31150 Mon Jan 17 03:21:29 GMT 2005  Olly Betts <olly@survex.com>
31152         * api/vectortermlist.h,extra/,extra/xapian/queryparser.h: Rewritten
31153           QueryParser class.  Uses Lemon instead of Bison to generate the
31154           parser, which enables us to stop using static data, so this class
31155           is at last reentrant.  It now uses a PIMPL style with reference
31156           counted internals like most of the other Xapian classes.  And
31157           direct access to member variables has gone, which unfortunately
31158           forces an API change (bug #39).  The rewrite also supports more
31159           features than the original did.
31160         * HACKING,configure.ac: No longer need Bison.
31161         * configure.ac: Need CC_FOR_BUILD to compile Lemon with.
31163 Mon Jan 17 02:40:40 GMT 2005  Olly Betts <olly@survex.com>
31165         * PLATFORMS: IRIX + SGI C++ now compiles with just two warnings -
31166           unused variables in Snowball generated code.
31168 Sun Jan 16 03:19:56 GMT 2005  Olly Betts <olly@survex.com>
31170         * xapian.spec.in: Don't say "%makeinstall" in a comment since rpm
31171           tries to expand it and explodes.
31173 Sat Jan 15 03:30:33 GMT 2005  Olly Betts <olly@survex.com>
31175         * docs/Makefile.am: Clearer rules for making Postscript doxygen docs.
31177 Sat Jan 15 02:45:19 GMT 2005  Olly Betts <olly@survex.com>
31179         * HACKING: Note that '#include <limits>' isn't supported by GCC 2.95,
31180           and other assorted minor tweaks.
31182 Sat Jan 08 16:09:10 GMT 2005  Olly Betts <olly@survex.com>
31184         * api/maptermlist.h,backends/inmemory/inmemory_database.h,
31185           backends/quartz/quartz_postlist.h,common/,matcher/localmatch.h,
31186           matcher/mergepostlist.h,matcher/phrasepostlist.h,net/progclient.cc:
31187           Fixes for SGI C++ warnings.
31189 Fri Jan  7 13:02:49 GMT 2005  Richard Boulton <richard@tartarus.org>
31191         * common/positionlist.h: Correct out-of-date documentation comment.
31193 Tue Jan 04 03:05:26 GMT 2005  Olly Betts <olly@survex.com>
31195         * matcher/multimatch.cc: Removed unnecessary class declaration.
31197 Tue Jan 04 03:02:02 GMT 2005  Olly Betts <olly@survex.com>
31199         * configure.ac: Automatically enable ANSI C++ mode for SGI's compiler
31200           with '-LANG:std'; check that any automatically determined flags
31201           for ANSI C++ mode actually allow us to compile a trivial program
31202           - if they don't it probably means the compiler isn't the one we
31203           were expecting, but one installed with the same name, so we now
31204           drop the flags in this case.
31206 Thu Dec 30 00:50:58 GMT 2004  Olly Betts <olly@survex.com>
31208         * extra/queryparser.yy: QueryParser::parse_query() was failing to
31209           clear termlist and unstem.
31211 Fri Dec 24 00:07:28 GMT 2004  Olly Betts <olly@survex.com>
31213         * PLATFORMS: Updated from tinderbox.
31215 Thu Dec 23 21:13:46 GMT 2004  Olly Betts <olly@survex.com>
31217         * backends/quartz/btree.cc: Fixed GCC compilation warning.
31219 Thu Dec 23 17:22:15 GMT 2004  Olly Betts <olly@survex.com>
31221         * INSTALL,README: Updated.
31222         * README: Don't quote chunks of the GPL - just refer people to the
31223           full text in COPYING.
31225 Thu Dec 23 16:55:03 GMT 2004  Olly Betts <olly@survex.com>
31227         * NEWS,PLATFORMS,configure.ac: Updated for 0.8.5 release.
31229 Tue Dec 21 13:26:55 GMT 2004  Olly Betts <olly@survex.com>
31231         * docs/quickstart.html: Improved wording.
31233 Tue Dec 21 13:03:06 GMT 2004  Olly Betts <olly@survex.com>
31235         * HACKING: Updated to reflect extra jobs which cvs-tag-release now
31236           does.
31238 Mon Dec 20 16:25:21 GMT 2004  Olly Betts <olly@survex.com>
31240         * bin/Makefile.am: quartzcompact now uses getopt, so need to link
31241           it in our version to build on non-glibc platforms.
31243 Mon Dec 20 16:23:28 GMT 2004  Olly Betts <olly@survex.com>
31245         * backends/quartz/btree.cc: Added comment noting why we can't
31246           truncate separating keys at higher levels.
31248 Thu Dec 16 14:46:28 GMT 2004  Olly Betts <olly@survex.com>
31250         * HACKING: Fixed a typo, and improved wording.
31252 Mon Dec 13 02:52:52 GMT 2004  Olly Betts <olly@survex.com>
31254         * backends/multi/multi_postlist.cc: Updated (C) date.
31256 Mon Dec 13 02:50:44 GMT 2004  Olly Betts <olly@survex.com>
31258         * languages/: Added missing '#include <config.h>' to .cc files
31259           (probably harmless, but it should be included as the first thing any
31260           source file does).
31262 Mon Dec 13 02:21:28 GMT 2004  Olly Betts <olly@survex.com>
31264         * bin/quartzdump.cc: Mark the long options as const.
31266 Mon Dec 13 02:20:08 GMT 2004  Olly Betts <olly@survex.com>
31268         * bin/quartzcompact.cc: Tables sizes will always be a whole number of
31269           Kbytes, since the blocksize is, so report the size in K.  Also
31270           report the change in size as well as the before and after sizes.
31272 Mon Dec 13 02:11:59 GMT 2004  Olly Betts <olly@survex.com>
31274         * common/netutils.cc: Added missing '#include <config.h>' (probably
31275           harmless, but it should be included as the first thing any source
31276           file does).
31278 Mon Dec 13 01:39:53 GMT 2004  Olly Betts <olly@survex.com>
31280         * backends/quartz/btree.cc,backends/quartz/btree.h: Renamed
31281           Btree::compress() to Btree::compact() for consistency with
31282           "full_compaction" and "quartzcompact".  Also, "compress" is
31283           confusing since use "compact" and we use that term in the zlib
31284           patch.
31285         * backends/quartz/btree.cc: When full_compaction is enabled, don't
31286           fill the last few bytes of a block if that would mean we needed
31287           an extra item and the overhead for that item would use up more
31288           of the next block than we save.  This reduces the table size
31289           after full compaction by up to 0.2% in my tests!
31291 Mon Dec 13 01:39:02 GMT 2004  Olly Betts <olly@survex.com>
31293         * backends/multi/multi_postlist.cc: Fixed to build with AssertParanoid
31294           enabled.
31296 Mon Dec 13 00:41:28 GMT 2004  Olly Betts <olly@survex.com>
31298         * bin/quartzcompact.cc: Added missing '#include <config.h>' so that
31299           largefile support is enabled and we report compression statistics
31300           for tables > 2G.
31301         * bin/quartzcompact.cc: Added --no-full / -n option to disable full
31302           compaction.  This may be useful if you want to update the database
31303           after compacting it (need to test to see if this option is actually
31304           useful).
31306 Sun Dec 12 21:26:27 GMT 2004  Olly Betts <olly@survex.com>
31308         * xapian-config.in: Previous attempted fix to --libs output was wrong
31309           - made it actually work.
31311 Sun Dec 12 21:24:44 GMT 2004  Olly Betts <olly@survex.com>
31313         * xapian.spec.in: %makeinstall puts the wrong paths in the .la files
31314           so use "make DESTDIR=... install" instead.
31316 Wed Dec 08 15:59:44 GMT 2004  Olly Betts <olly@survex.com>
31318         * NEWS: Bumped the 0.8.4 release date.
31320 Wed Dec 08 15:32:46 GMT 2004  Olly Betts <olly@survex.com>
31322         * xapian-config.in: Make sure that --libs output doesn't include
31323           libxapian.la (from libxapianqueryparser.la's dependencies).
31325 Tue Dec 07 18:18:26 GMT 2004  Olly Betts <olly@survex.com>
31327         * backends/quartz/quartz_log.cc: Fixed to compile on mingw.
31329 Tue Dec 07 15:57:44 GMT 2004  Olly Betts <olly@survex.com>
31331         * NEWS: Updated.
31332         * api/omdatabase.cc,backends/database.cc,bin/omtcpsrv.cc,
31333           common/database.h,docs/,include/xapian/database.h,tests/api_db.cc:
31334           Added constructors to Database and WritableDatabase which fulfil the
31335           role that the Auto::open() factory functions currently do.
31336           Auto::open() is now deprecated.
31337         * api/,backends/inmemory/inmemory_database.cc,
31338           backends/quartz/quartz_database.cc,backends/quartz/quartz_postlist.h,
31339           common/expandweight.h,common/stats.h,include/xapian.h:
31340           #include <xapian.h> no longer pulls in xapian/output.h - this
31341           removes the external ability to write a Xapian object to an
31342           ostream directly, as it's little used and potentially dangerous
31343           ('cout << mset[i];' will compile, but you almost certainly meant
31344           'cout << *mset[i];').  You can get the old effect by writing
31345           'cout << obj->get_description();' instead of 'cout << obj;'.
31346           Adjusted all the library sources which relied on xapian/output.h
31347           pulling in various other xapian/ headers.
31348         * backends/muscat36/da_database.cc,backends/muscat36/db_database.cc:
31349           Debug output tweaks.
31350         * common/emptypostlist.h,matcher/mergepostlist.cc,matcher/multimatch.cc:
31351           Added EmptyPostList::get_maxweight() which always returns 0, so you
31352           no longer need to explicitly set a weighting scheme on an
31353           EmptyPostList.
31354         * common/omdebug.h: Only include omstringstream.h if
31355           XAPIAN_DEBUG_VERBOSE is in effect.
31356         * extra/Makefile.am: queryparsertest needs to link to libxapian.la
31357           explicitly.
31358         * net/progclient.cc: Whitespace tweak.
31359         * testsuite/: Eliminated barely used sources indexer.h,
31360           textfile_indexer.h, and textfile_indexer.cc.
31361         * testsuite/backendmanager.cc: Removed unused functions
31362           make_strvec() and index_file_to_database().
31364 Wed Dec 01 07:15:46 GMT 2004  Olly Betts <olly@survex.com>
31366         * PLATFORMS: SF CF x86_64 machine no longer needs --disable-shared.
31368 Tue Nov 30 21:53:33 GMT 2004  Olly Betts <olly@survex.com>
31370         * NEWS,PLATFORMS,configure.ac: Updated for 0.8.4 release.
31372 Tue Nov 30 03:07:43 GMT 2004  Olly Betts <olly@survex.com>
31374         * configure.ac,backends/database.cc,backends/quartz/bcursor.cc,
31375           backends/quartz/quartz_database.cc,
31376           backends/quartz/quartz_postlist.cc,common/omassert.h,
31377           common/omdebug.cc,common/omdebug.h,docs/doxygen_full_conf.in,
31378           matcher/localmatch.cc,matcher/multimatch.cc,matcher/stats.cc,
31379           tests/apitest.cc,tests/btreetest.cc,testsuite/backendmanager.cc,
31380           testsuite/backendmanager.h,testsuite/testsuite.cc: Rename all the
31381           MUS_xxx defines to XAPIAN_xxx.
31383 Tue Nov 30 02:36:33 GMT 2004  Olly Betts <olly@survex.com>
31385         * configure.ac,backends/quartz/btree.cc: Get configure to probe for
31386           the prototypes (if any) needed for pread and pwrite.
31388 Tue Nov 30 01:09:26 GMT 2004  Olly Betts <olly@survex.com>
31390         * backends/quartz/btree.cc: Instead of trying to coax pread/pwrite
31391           prototypes out of the system headers, let's try just providing our
31392           own!
31394 Mon Nov 29 19:51:13 GMT 2004  Olly Betts <olly@survex.com>
31396         * extra/Makefile.am: Moved -no-undefined to the right place, plus we
31397           also need to pass @ldflags@ and ../libxapian.la in
31398           libxapianqueryparser_la_LIBADD.
31400 Mon Nov 29 18:28:57 GMT 2004  Olly Betts <olly@survex.com>
31402         * AUTHORS: Updated.
31404 Mon Nov 29 18:27:12 GMT 2004  Olly Betts <olly@survex.com>
31406         * extra/Makefile.am: Added -no-undefined to
31407           libxapianqueryparser_la_LDFLAGS so it builds on mingw.
31409 Mon Nov 29 17:46:54 GMT 2004  Olly Betts <olly@survex.com>
31411         * tests/Makefile.am: Don't try to run "runtest" as a test - it just
31412           needs to be a dependency of the tests.
31414 Sat Nov 27 02:58:28 GMT 2004  Olly Betts <olly@survex.com>
31416         * backends/inmemory/dir_contents: Trimmed whitespace.
31418 Sat Nov 27 02:05:51 GMT 2004  Olly Betts <olly@survex.com>
31420         * NEWS: Updated ready for 0.8.4 release.
31422 Sat Nov 27 02:03:40 GMT 2004  Olly Betts <olly@survex.com>
31424         * tests/Makefile.am: Added a dependency so "make check" regenerates
31425           runtest if necessary.
31427 Sat Nov 27 02:02:58 GMT 2004  Olly Betts <olly@survex.com>
31429         * AUTHORS: Updated.
31431 Sat Nov 27 01:59:18 GMT 2004  Olly Betts <olly@survex.com>
31433         * README: Minor tweak.
31435 Sat Nov 27 01:58:53 GMT 2004  Olly Betts <olly@survex.com>
31437         * configure.ac: Improved a couple of comments.
31439 Sat Nov 27 01:42:32 GMT 2004  Olly Betts <olly@survex.com>
31441         * docs/: Trimmed trailing whitespace.
31443 Sat Nov 27 01:41:33 GMT 2004  Olly Betts <olly@survex.com>
31445         * docs/stemming.html: Reworded text from BrightStation times which
31446           talked about "the open source release".
31448 Fri Nov 26 17:32:55 GMT 2004  Olly Betts <olly@survex.com>
31450         * docs/indexerquickstart.html: Removed dead documentation.
31452 Fri Nov 26 17:11:19 GMT 2004  Olly Betts <olly@survex.com>
31454         * PLATFORMS: Updated with new cygwin report.
31456 Fri Nov 26 17:07:21 GMT 2004  Olly Betts <olly@survex.com>
31458         * tests/api_anydb.cc,tests/api_nodb.cc,docs/bm25.html,
31459           include/xapian/enquire.h,matcher/bm25weight.cc: Renamed BM25
31460           parameters to match standard naming in papers and elsewhere
31461           (A->k3, B->k1, C->k2, D->b), eliminated the extra factor of 2
31462           which our C had, and reordered the parameters to k1, k2, k3.
31463           This is an incompatible API change for BM25Weight(), so if
31464           you are using custom parameters for BM25 you'll need to
31465           update your code.
31467 Fri Nov 26 15:20:16 GMT 2004  Olly Betts <olly@survex.com>
31469         * tests/runtest.in: Allow VALGRIND environmental variable to override
31470           the value we got from configure.
31472 Fri Nov 26 03:50:36 GMT 2004  Olly Betts <olly@survex.com>
31474         * matcher/bm25weight.cc,matcher/tradweight.cc: termfreq is always
31475           exact for matching (we only approximate it for query expansion)
31476           so replace code to work around bad approximations with Assert() to
31477           make sure this never happens.
31479 Fri Nov 26 00:19:22 GMT 2004  Olly Betts <olly@survex.com>
31481         * matcher/expandweight.cc,matcher/tradweight.cc: If we estimate the
31482           term frequency, ensure it has a sane value (>= r and <= N - R + r)
31483           rather than bodging around the problem later on.
31485 Thu Nov 25 01:29:36 GMT 2004  Olly Betts <olly@survex.com>
31487         * backends/quartz/quartz_database.cc: Fixed recent cygwin change to
31488           actually compile.
31490 Thu Nov 25 01:06:03 GMT 2004  Olly Betts <olly@survex.com>
31492         * bin/quartzcompact.cc: Added --help and --version; Check that the
31493           source path and desitination path aren't the same; Report each table
31494           name when we start compacting it, and some simple stats on the
31495           compaction achieved when we finish.
31497 Tue Nov 23 16:19:09 GMT 2004  Olly Betts <olly@survex.com>
31499         * configure.ac: Fixed m4 quoting problem.
31501 Tue Nov 23 12:47:54 GMT 2004  Olly Betts <olly@survex.com>
31503         * configure.ac: Fix the test for GCC3 used to turn on -Werror with
31504           --enable-maintainer-mode.
31506 Mon Nov 22 03:08:10 GMT 2004  Olly Betts <olly@survex.com>
31508         * PLATFORMS: Assorted updates.
31510 Mon Nov 22 02:15:22 GMT 2004  Olly Betts <olly@survex.com>
31512         * tests/quartztest.cc: Test with DB_CREATE_OR_OPEN in writelock1.
31514 Mon Nov 22 01:37:13 GMT 2004  Olly Betts <olly@survex.com>
31516         * common/utils.cc: define NOMINMAX as a cleaner way to prevent
31517           windows.h from polluting the namespace and colliding with ANSI C++.
31519 Sat Nov 20 14:36:43 GMT 2004  Olly Betts <olly@survex.com>
31521         * tests/runtest.in: --logfile-fd was renamed to --log-fd in valgrind
31522           2.1.2 with no support for the old option name, so we must probe
31523           to decide which to use.
31525 Fri Nov 19 13:18:43 GMT 2004  Olly Betts <olly@survex.com>
31527         * backends/quartz/bcursor.cc,backends/quartz/bcursor.h: Eliminated
31528           Bcursor::get_tag() - it's an internal method only used from one
31529           other method, and it now just a trivial wrapper around
31530           Btree::read_tag().
31532 Fri Nov 19 04:20:39 GMT 2004  Olly Betts <olly@survex.com>
31534         * backends/quartz/bcursor.cc,backends/quartz/btree.cc,
31535           backends/quartz/btree.h: Factored out near identical code from
31536           Btree::find_tag() and Bcursor::get_tag() into Btree::read_tag().
31538 Thu Nov 18 03:27:52 GMT 2004  Olly Betts <olly@survex.com>
31540         * backends/quartz/btree.cc: Applied the Quartz "DANGEROUS" patch, but
31541           disabled for now.  This way it won't keep being broken by changes
31542           to the code.
31544 Tue Nov 16 04:29:25 GMT 2004  Olly Betts <olly@survex.com>
31546         * backends/quartz/btree.cc: Ah, it's __sun__/__sun/sun, not
31547           __solaris__ (at least for x86 Solaris 9).
31549 Tue Nov 16 02:56:44 GMT 2004  Olly Betts <olly@survex.com>
31551         * backends/quartz/btree.cc: Solaris defines __solaris__ not
31552           __SOLARIS__.
31554 Mon Nov 15 12:40:38 GMT 2004  Olly Betts <olly@survex.com>
31556         * tests/api_db.cc: Added new test userweight1 to test user defined
31557           matching schemes.
31559 Sun Nov 14 05:20:34 GMT 2004  Olly Betts <olly@survex.com>
31561         * backends/quartz/quartz_metafile.cc,
31562           backends/quartz/quartz_metafile.h: Removed unused
31563           QuartzMetaFile::erase() method.
31565 Sun Nov 14 04:55:05 GMT 2004  Olly Betts <olly@survex.com>
31567         * backends/quartz/quartz_database.cc: For cygwin, use the underlying
31568           MoveFile API call for locking, as link() doesn't work on FAT
31569           partitions.  And don't rely on HAVE_LINK to control whether we
31570           use link() otherwise - if the configure test somehow misfires, a
31571           compilation error is better than using rename() on Unix as that
31572           would cause a second writer to smash the lock of the first.
31574 Thu Nov 11 06:58:41 GMT 2004  Olly Betts <olly@survex.com>
31576         * backends/quartz/btree.cc: Removed superfluous statement.
31578 Tue Nov 09 23:50:10 GMT 2004  Olly Betts <olly@survex.com>
31580         * backends/quartz/btree.cc: Need to include sys/types.h to define
31581           ssize_t, size_t, and off_t before we prototype pread and pwrite
31582           for OSF.
31584 Tue Nov 09 22:39:00 GMT 2004  Olly Betts <olly@survex.com>
31586         * backends/quartz/btree.cc: Tweaked the pread/pwrite mess to try to
31587           get it to work on OSF and x86 Solaris while not breaking it
31588           elsewhere.
31590 Tue Nov 09 19:29:37 GMT 2004  Olly Betts <olly@survex.com>
31592         * backends/quartz/btree.cc,backends/quartz/btree.h: More refactoring.
31594 Tue Nov 09 17:13:10 GMT 2004  Olly Betts <olly@survex.com>
31596         * backends/quartz/: More refactoring.  Also rearranged the contents
31597           of the quartz and btree headers, eliminating btree_types.h in the
31598           process.
31600 Tue Nov 09 16:47:13 GMT 2004  Olly Betts <olly@survex.com>
31602         * backends/quartz/quartz_metafile.cc: Using fdcloser is less clear in
31603           trivial cases.
31605 Tue Nov 09 16:38:47 GMT 2004  Olly Betts <olly@survex.com>
31607         * backends/quartz/quartz_database.cc: Close the fd of the lock file
31608           before trying to rename it on Windows.
31610 Tue Nov 09 07:58:02 GMT 2004  Olly Betts <olly@survex.com>
31612         * backends/quartz/btree.cc,backends/quartz/btree.h,
31613           backends/quartz/btree_util.h: More refactoring.
31615 Tue Nov 09 03:24:59 GMT 2004  Olly Betts <olly@survex.com>
31617         * xapian-config.in: Added --swigflags option for use with SWIG.
31619 Mon Nov 08 22:54:55 GMT 2004  Olly Betts <olly@survex.com>
31621         * configure.ac,xapian-config.in: If flags are needed to select ANSI
31622           mode with the current compiler, then make xapian-config --cxxflags
31623           include them so that Xapian users don't have to jump through the
31624           same hoops we do.
31626 Mon Nov 08 04:49:21 GMT 2004  Olly Betts <olly@survex.com>
31628         * backends/inmemory/inmemory_database.cc,
31629           backends/inmemory/inmemory_database.h,backends/muscat36/,
31630           backends/net/net_database.cc,backends/quartz/quartz_database.cc,
31631           backends/quartz/quartz_database.h,common/database.h,
31632           common/net_database.h,matcher/localmatch.cc: If a database contains
31633           no positional information, change NEAR and PHRASE queries into AND
31634           queries (as otherwise they'd return no matches at all) (bug#56).
31635         * tests/api_wrdb.cc: Added feature test phraseorneartoand1.
31637 Mon Nov 08 04:09:04 GMT 2004  Olly Betts <olly@survex.com>
31639         * configure.ac,backends/quartz/btree.cc: Improved what we do to
31640           turn on pread and pwrite declarations in unistd.h so that it works
31641           on OSF and doesn't need the HAVE_GLIBC test, yet still works on
31642           OpenBSD.
31644 Mon Nov 08 03:55:51 GMT 2004  Olly Betts <olly@survex.com>
31646         * backends/quartz/,testsuite/btreecheck.cc: More refactoring.
31648 Sun Nov 07 20:42:32 GMT 2004  Olly Betts <olly@survex.com>
31650         * configure.ac: One more tweak.
31652 Sun Nov 07 18:18:19 GMT 2004  Olly Betts <olly@survex.com>
31654         * configure.ac,include/xapian/version.h.in: Another tweak to hopefully
31655           get version.h generation to work everywhere.
31657 Sun Nov 07 15:01:23 GMT 2004  Olly Betts <olly@survex.com>
31659         * configure.ac,include/xapian/version.h.in: Terminating lines with 'N'
31660           makes Sun's C++ unhappy.  Try ',' instead.
31662 Sun Nov 07 03:54:42 GMT 2004  Olly Betts <olly@survex.com>
31664         * tests/api_nodb.cc: Added test_weight1 which tests the built-in
31665           Xapian::Weight subclasses (bug#8).
31667 Sun Nov 07 03:36:19 GMT 2004  Olly Betts <olly@survex.com>
31669         * backends/quartz/btree.cc,backends/quartz/btree_util.h,
31670           testsuite/btreecheck.cc: More refactoring.
31672 Sun Nov 07 03:33:24 GMT 2004  Olly Betts <olly@survex.com>
31674         * matcher/bm25weight.cc,matcher/tradweight.cc: Fixed definitions to
31675           match declarations after recent change.
31677 Sun Nov 07 02:33:50 GMT 2004  Olly Betts <olly@survex.com>
31679         * configure.ac: Noted LIBRARY_VERSION_INFO which 0.8.4 will get.
31681 Sun Nov 07 02:28:38 GMT 2004  Olly Betts <olly@survex.com>
31683         * include/xapian/enquire.h: BoolWeight::unserialise() returns
31684           BoolWeight*, etc.  BoolWeight::clone() returns BoolWeight *.
31686 Sun Nov 07 02:24:17 GMT 2004  Olly Betts <olly@survex.com>
31688         * HACKING: Note that C++ style casts are preferable to C style casts;
31689           Improve wording in a few places.
31691 Sun Nov 07 01:05:58 GMT 2004  Olly Betts <olly@survex.com>
31693         * backends/quartz/btree.cc,backends/quartz/btree_util.h,
31694           testsuite/btreecheck.cc: Moved set_block_given_by()
31695           and block_given_by() into Item class.
31697 Sat Nov 06 21:16:15 GMT 2004  Olly Betts <olly@survex.com>
31699         * configure.ac,include/xapian/version.h.in: Fix generation of
31700           version.h to work with aCC -E which concatenates adjacent literal
31701           strings.
31703 Sat Nov 06 20:58:00 GMT 2004  Olly Betts <olly@survex.com>
31705         * backends/quartz/,testsuite/btreecheck.cc: Started to refactor the
31706           Btree manager by introducing Item and Key classes which take care
31707           of handling the on-disk format.
31709 Sat Nov 06 15:40:05 GMT 2004  Olly Betts <olly@survex.com>
31711         * xapian-config.in,m4/xapian.m4: Pass across ac_top_srcdir and use it
31712           if provided to say "configure.ac" or "configure.in" rather than
31713           "configure.in (or configure.ac)" in the "Add AC_PROG_LIBTOOL"
31714           error message.
31716 Sat Nov 06 14:49:05 GMT 2004  Olly Betts <olly@survex.com>
31718         * configure.ac: Updated comment - we now find SOURCEDOC in 2 goes (as
31719           there are no longer any C sources).
31721 Sat Nov 06 14:43:16 GMT 2004  Olly Betts <olly@survex.com>
31723         * configure.ac: Oops, STLPORT_CXXFLAGS *is* used (in xapian-config.in)
31724           so revert the change which removes it.
31726 Sat Nov 06 13:37:23 GMT 2004  Olly Betts <olly@survex.com>
31728         * include/xapian/enquire.h,matcher/bm25weight.cc,
31729           matcher/tradweight.cc: Move virtual methods of BM25Weight and
31730           TradWeight out of the header.
31732 Sat Nov 06 13:19:32 GMT 2004  Olly Betts <olly@survex.com>
31734         * configure.ac,include/xapian/version.h.in: Another rework of how
31735           include/xapian/version.h is generated - this time to make it work
31736           with Sun's C++ compiler again; XAPIAN_VERSION is now a string;
31737           Define XAPIAN_REVISION (which is 4 for version 0.8.4).
31739 Sat Nov 06 04:22:57 GMT 2004  Olly Betts <olly@survex.com>
31741         * configure.ac: Don't AC_SUBST(STLPORT_CXXFLAGS) as it is never used
31742           that way (it's included in AM_CXXFLAGS).
31744 Sat Nov 06 01:03:53 GMT 2004  Olly Betts <olly@survex.com>
31746         * testsuite/testsuite.h: Removed incorrect comment about how STRINGIZE
31747           is used.
31749 Fri Nov 05 14:41:59 GMT 2004  Olly Betts <olly@survex.com>
31751         * include/xapian/database.h: Removed a default parameter value from one
31752           variant of open_db so that there's only one candidate for
31753           open_db(string).
31755 Fri Nov 05 14:40:38 GMT 2004  Olly Betts <olly@survex.com>
31757         * backends/database.cc: Renamed parameter from keys to values to
31758           reflect current external naming.
31760 Fri Nov 05 14:38:07 GMT 2004  Olly Betts <olly@survex.com>
31762         * include/xapian/version.h.in,configure.ac: Fixed generation of
31763           include/xapian/version.h to work with aCC.
31765 Thu Nov 04 12:17:50 GMT 2004  Olly Betts <olly@survex.com>
31767         * configure.ac: Try "-std strict_ansi" for Compaq C++.
31769 Thu Nov 04 11:22:52 GMT 2004  Olly Betts <olly@survex.com>
31771         * configure.ac: Fourth argument to AC_CHECK_HEADERS must be non-empty
31772           to make a difference.
31774 Thu Nov 04 10:21:25 GMT 2004  Olly Betts <olly@survex.com>
31776         * configure.ac: Found clean fix for inttypes.h problem (previous bodge
31777           didn't work anyway).
31779 Thu Nov 04 01:18:55 GMT 2004  Olly Betts <olly@survex.com>
31781         * configure.ac: Eliminated use of \( \) in sed expression as it
31782           appears to cause problems on HP-UX.
31784 Thu Nov 04 00:54:11 GMT 2004  Olly Betts <olly@survex.com>
31786         * configure.ac: Added icky workaround to Compaq C++ oddness - cc can
31787           find inttypes.h but cxx can't.
31789 Wed Nov 03 23:58:48 GMT 2004  Olly Betts <olly@survex.com>
31791         * api/omenquire.cc,common/multimatch.h,matcher/multimatch.cc,
31792           net/socketserver.cc: Tweaked to compile with Compaq C++.
31794 Wed Nov 03 22:55:04 GMT 2004  Olly Betts <olly@survex.com>
31796         * configure.ac: Need to put flags to select ANSI C++ mode in CXXFLAGS
31797           not AM_CXXFLAGS.
31799 Wed Nov 03 22:27:08 GMT 2004  Olly Betts <olly@survex.com>
31801         * api/omenquire.cc: Fixed typo.
31803 Wed Nov 03 21:58:53 GMT 2004  Olly Betts <olly@survex.com>
31805         * api/omenquire.cc: Added explicit cast to try to help Compaq C++
31806           build.
31808 Wed Nov 03 21:38:29 GMT 2004  Olly Betts <olly@survex.com>
31810         * configure.ac: Probe for C++ compiler switches for ANSI mode as early
31811           as possible.  With Compaq's C++, we need -D__USE_STD_IOSTREAM to
31812           successfully #include <streambuf>.
31814 Wed Nov 03 21:07:43 GMT 2004  Olly Betts <olly@survex.com>
31816         * configure.ac: Fixed snprintf configure test.
31818 Wed Nov 03 19:37:32 GMT 2004  Olly Betts <olly@survex.com>
31820         * common/utils.cc: Fixed typo.
31822 Wed Nov 03 19:27:22 GMT 2004  Olly Betts <olly@survex.com>
31824         * configure.ac,common/utils.cc: Improved snprintf checking.
31826 Wed Nov 03 15:43:54 GMT 2004  Olly Betts <olly@survex.com>
31828         * getopt/getopt.cc: Fixed to compile when not using glibc.
31830 Wed Nov 03 14:55:29 GMT 2004  Olly Betts <olly@survex.com>
31832         * bin/omtcpsrv.cc,bin/quartzdump.cc,common/Makefile.am,common/getopt.h,
31833           common/gnu_getopt.h,getopt/,testsuite/testsuite.cc: Major overhaul
31834           of getopt use.  Move from getopt(), getopt_long(), getopt_long_only()
31835           to gnu_getopt(), etc so we don't need to dance around avoiding
31836           clashes with getopt() stuff in system headers.  The new gnu_getopt.h
31837           header is cruft free and hopefully won't trip up assorted compilers
31838           or platforms.
31840 Wed Nov 03 14:53:39 GMT 2004  Olly Betts <olly@survex.com>
31842         * tests/Makefile.am: quartztest doesn't use getopt directly, so no
31843           need to link it.
31845 Wed Nov 03 12:56:56 GMT 2004  Olly Betts <olly@survex.com>
31847         * tests/stemtest.cc: Prune unused #includes.
31849 Wed Nov 03 03:47:46 GMT 2004  Olly Betts <olly@survex.com>
31851         * getopt/getopt.cc: Defining _NO_PROTO is a really bad idea for C++
31852           code!
31854 Wed Nov 03 03:34:06 GMT 2004  Olly Betts <olly@survex.com>
31856         * configure.ac: Removed AC_HEADER_STDC - Compaq's C++ compiler can't
31857           find inttypes.h, but their C compiler can!
31859 Wed Nov 03 02:48:04 GMT 2004  Olly Betts <olly@survex.com>
31861         * net/tcpclient.cc,net/tcpserver.cc: Use SOCKLEN_T for the type we
31862           need to pass to various socket calls, since HPUX defines socklen_t
31863           yet wants int in those calls.
31865 Wed Nov 03 02:43:26 GMT 2004  Olly Betts <olly@survex.com>
31867         * autoconf/type_socklen_t.m4,matcher/networkmatch.cc,net/: If
31868           __WIN32__ is defined, we want winsock2.h instead of sys/socket.h.
31869           Mingw doesn't seem to even have the latter, so I think previously
31870           we've been compiling by picking one up from somewhere random!
31872 Wed Nov 03 01:10:01 GMT 2004  Olly Betts <olly@survex.com>
31874         * autoconf/type_socklen_t.m4: Rewritten to work with HPUX which
31875           helpfully defines socklen_t but doesn't use it!
31877 Tue Nov 02 21:29:40 GMT 2004  Olly Betts <olly@survex.com>
31879         * getopt/getopt.cc: Fixes for Compaq C++.
31881 Tue Nov 02 18:51:43 GMT 2004  Olly Betts <olly@survex.com>
31883         * getopt/getopt.cc: Protect getopt definition for possible getopt
31884           macro declared in getopt.h.
31886 Tue Nov 02 16:52:21 GMT 2004  Olly Betts <olly@survex.com>
31888         * configure.ac: AM_CONFIG_HEADER -> AC_CONFIG_HEADERS; removed
31889           commented out AC_LANG_SAVE and AC_LANG_RESTORE.
31891 Tue Nov 02 15:56:02 GMT 2004  Olly Betts <olly@survex.com>
31893         * configure.ac: # comments -> dnl comments.
31895 Tue Nov 02 15:54:46 GMT 2004  Olly Betts <olly@survex.com>
31897         * configure.ac: $GCC -> $GXX; $CC -> $CXX.
31899 Tue Nov 02 15:38:21 GMT 2004  Olly Betts <olly@survex.com>
31901         * configure.ac,docs/Makefile.am: Removed SOURCEDOC_C_SRC.
31903 Tue Nov 02 06:51:39 GMT 2004  Olly Betts <olly@survex.com>
31905         * getopt/getopt.cc,getopt/getopt1.cc: Fixed function declarations to
31906           not use K&R C syntax.
31908 Tue Nov 02 05:31:57 GMT 2004  Olly Betts <olly@survex.com>
31910         * getopt/getopt.cc: Make _getopt_internal extern "C" too.
31912 Tue Nov 02 04:43:08 GMT 2004  Olly Betts <olly@survex.com>
31914         * Makefile.am,configure.ac,HACKING,PLATFORMS,backends/muscat36/,
31915           getopt/Makefile.am,getopt/getopt.cc,getopt/getopt1.cc,languages/:
31916           Change the few C sources to be C++.  This way we don't need to
31917           worry about configure choosing a mismatching pair of compilers,
31918           or about whether configure tests with the C compiler don't apply
31919           to the C++ compiler, or vice versa.
31921 Tue Nov 02 04:31:49 GMT 2004  Olly Betts <olly@survex.com>
31923         * backends/muscat36/: More C casts converted to C++ casts.
31925 Tue Nov 02 04:28:07 GMT 2004  Olly Betts <olly@survex.com>
31927         * matcher/bm25weight.cc,matcher/tradweight.cc: More C casts converted
31928           to C++ casts.
31930 Tue Nov 02 03:22:52 GMT 2004  Olly Betts <olly@survex.com>
31932         * backends/muscat36/: Removed unused test harness sources.
31934 Tue Nov 02 02:44:34 GMT 2004  Olly Betts <olly@survex.com>
31936         * languages/pool.c,languages/pool.h: Removed unused sources.
31938 Tue Nov 02 01:51:30 GMT 2004  Olly Betts <olly@survex.com>
31940         * configure.ac: AC_TYPE_SIZE_T causes problems with Compaq C++ when it
31941           fails to spot size_t (which is there) and the "#define size_t
31942           unsigned long" it adds to config.h breaks "using std::size_t;".
31943           Also removed AC_C_CONST as I don't believe that's needed either
31944           in a largely C++ library.  Both of these have been in configure.in
31945           since the very first version so I suspect autoscan decided we wanted
31946           them.
31948 Mon Nov 01 05:44:02 GMT 2004  Olly Betts <olly@survex.com>
31950         * matcher/multimatch.cc: Fixed compilation problem on alpha Linux.
31952 Mon Nov 01 03:16:36 GMT 2004  Olly Betts <olly@survex.com>
31954         * api/omqueryinternal.cc,api/omstem.cc,
31955           backends/inmemory/inmemory_database.h,
31956           backends/multi/multi_termlist.h,backends/quartz/,
31957           extra/queryparser.yy,matcher/,net/tcpserver.cc,tests/api_anydb.cc,
31958           tests/api_db.cc,tests/quartztest.cc,testsuite/backendmanager.cc,
31959           testsuite/btreecheck.cc,testsuite/testsuite.cc: Changed C style
31960           casts to C++ style.  The syntax is ugly, but they do make the intent
31961           clearer which is a good thing.
31963 Mon Nov 01 02:56:31 GMT 2004  Olly Betts <olly@survex.com>
31965         * configure.ac: Select ANSI iostream implementation for Compaq C++.
31967 Mon Nov 01 02:41:58 GMT 2004  Olly Betts <olly@survex.com>
31969         * configure.ac: Compaq's C++ compiler doesn't know snprintf, yet their
31970           C compiler does.  Let's try running *all* the configure checks with
31971           the C++ compiler, since that's what we compile most code with.
31973 Mon Nov 01 01:12:43 GMT 2004  Olly Betts <olly@survex.com>
31975         * common/netutils.cc: Fixed to compile.
31977 Mon Nov 01 01:06:13 GMT 2004  Olly Betts <olly@survex.com>
31979         * common/Makefile.am,common/netutils.cc,common/netutils.h:
31980           encode_tname() and decode_tname() aren't really sensible candidates
31981           for inlining so move them out of a header.
31983 Sun Oct 31 15:34:18 GMT 2004  Olly Betts <olly@survex.com>
31985         * configure.ac: Turn on -AA when compiling with HP's aCC.
31987 Sun Oct 31 15:10:02 GMT 2004  Olly Betts <olly@survex.com>
31989         * testsuite/testutils.cc: Fixed mset_range_is_same() and
31990           mset_range_is_same_weights() which were only comparing the
31991           first items in the range.  Luckily the tests still all pass
31992           so this wasn't hiding any bugs.
31994 Sat Oct 30 19:15:48 BST 2004  Olly Betts <olly@survex.com>
31996         * configure.ac: Disable pread/pwrite on HP-UX as they don't work when
31997           LFS in enabled, and we definitely want LFS.
31999 Sat Oct 30 16:42:24 BST 2004  Olly Betts <olly@survex.com>
32001         * backends/quartz/bcursor.cc: Fix Bcursor::del() which didn't always
32002           leave the cursor on the next item like it should.
32003         * backends/quartz/quartz_postlist.cc: If we're removing a posting
32004           list entirely, often there will only be one chunk, so avoid
32005           creating a Bcursor in this case.
32007 Sat Oct 30 16:55:19 BST 2004  Olly Betts <olly@survex.com>
32009         * languages/header.h: Removed unused #define MAXINT and MININT which
32010           were clashing with some header on HP-UX.
32012 Sat Oct 30 07:09:33 BST 2004  Olly Betts <olly@survex.com>
32014         * docs/bm25.html,docs/intro_ir.html: Reworked to talk about Xapian
32015           rather than Muscat.  Also improved the appearance of the formulae.
32017 Sat Oct 30 06:07:14 BST 2004  Olly Betts <olly@survex.com>
32019         * backends/quartz/btree.cc: Btree::read_block - debug log the value
32020           of p, not the irrelevant contents of the block it points to.
32022 Fri Oct 29 22:37:31 BST 2004  Olly Betts <olly@survex.com>
32024         * backends/quartz/quartz_postlist.cc: Improved comments.
32026 Fri Oct 29 05:10:02 BST 2004  Olly Betts <olly@survex.com>
32028         * backends/quartz/btree.cc: Fixed ultra-obscure bug in the code which
32029           finds a key suitable to discriminating between two blocks in a
32030           B-tree branch (discovered by reading the code).  Comparing the keys
32031           didn't consider the length of the second, so it is possible the code
32032           would miscompare.  But in reality this is extremely unlikely to
32033           happen, and even then would probably just mean that the
32034           discriminating key wouldn't be as short as it could be.
32036 Fri Oct 29 04:12:09 BST 2004  Olly Betts <olly@survex.com>
32038         * backends/quartz/btree.cc: Simplified Btree::compare_keys() by
32039           removing the last case which was dead code as it was covered by
32040           an earlier case.
32042 Wed Oct 27 21:17:12 BST 2004  Olly Betts <olly@survex.com>
32044         * HACKING,tests/runtest.in:
32045           Enhanced runtest to allow it to run test programs under valgrind
32046           and other tools (gdb was already supported).
32047         * testsuite/testsuite.cc: Point the user to the runtest script if
32048           srcdir can't be guessed.  And no longer look for the test program
32049           in the tests subdirectory of the current directory.
32050         * common/omdebug.cc: Removed compatibility code for checking
32051           OM_DEBUG_FILE and OM_DEBUG_TYPES.
32052         * HACKING: Document that %% in XAPIAN_DEBUG_LOG is substituted with
32053           the process-id, and that setting XAPIAN_DEBUG_FLAGS to -1 enables
32054           all debug messages.
32055         * HACKING: Valgrind now supports x86 FreeBSD and PowerPC Linux.
32056         * HACKING: Removed mentions of long-dead configure options
32057           --enable-profiling, --enable-purify and --enable-insure.
32059 Wed Oct 27 21:16:10 BST 2004  Olly Betts <olly@survex.com>
32061         * include/xapian/enquire.h: Document parameters of
32062           Enquire::register_match_decider().
32064 Wed Oct 27 21:14:32 BST 2004  Olly Betts <olly@survex.com>
32066         * PLATFORMS: Updated.
32068 Wed Oct 13 20:21:38 BST 2004  Olly Betts <olly@survex.com>
32070         * backends/quartz/btree.cc,backends/quartz/btree.h: Revert the
32071           previous change as runtime sized arrays are a g++ extension.
32072           Calling new and delete on every call to add_item() is probably
32073           unwise.
32075 Tue Oct 12 23:40:36 BST 2004  Olly Betts <olly@survex.com>
32077         * backends/quartz/btree.cc,backends/quartz/btree.h: split_p is only
32078           used by Btree::add_item(), so make it a temporary in that method
32079           rather than a class member variable which we need to take care to
32080           allocate and deallocate.
32082 Mon Oct 11 16:32:10 BST 2004  Olly Betts <olly@survex.com>
32084         * tests/btreetest.cc: Fix memory leaks in test_cursor1.
32086 Mon Oct 11 02:24:50 BST 2004  Olly Betts <olly@survex.com>
32088         * docs/quartzdesign.html: Use 5 tables in the example for how we keep
32089           revisions in step, since we use 5 tables in quartz.
32091 Thu Oct 07 22:51:28 BST 2004  Olly Betts <olly@survex.com>
32093         * backends/quartz/btree.cc: An interrupted update could cause any
32094           further updates to fail with "New revision too low" because the
32095           new revision was being calculated incorrectly - fixed.
32097 Wed Oct 06 15:42:31 BST 2004  Olly Betts <olly@survex.com>
32099         * backends/quartz/btree.cc,include/xapian/database.h: Check that any
32100           user specified block size is a power of 2.  And if the block size
32101           passed is invalid, use the default of 8192 rather than throwing an
32102           exception.
32104 Wed Oct 06 12:19:39 BST 2004  Olly Betts <olly@survex.com>
32106         * PLATFORMS: Updated from tinderbox.
32108 Wed Oct 06 01:10:46 BST 2004  Olly Betts <olly@survex.com>
32110         * backends/quartz/btree.cc,backends/quartz/quartz_document.cc,
32111           matcher/multimatch.cc,common/multimatch.h: Fix some warnings
32112           from Sun's C++ compiler.
32114 Thu Sep 30 22:16:37 BST 2004  Olly Betts <olly@survex.com>
32116         * common/utils.cc,common/utils.h: Fixes for win32 and sun's c++
32117           compiler.
32119 Thu Sep 30 18:24:20 BST 2004  Olly Betts <olly@survex.com>
32121         * common/utils.h,extra/queryparser.yy: Fixed bug which caused
32122           misparsing of certain prefixed queries, introduced by C_isXXXXX
32123           change.
32125 Thu Sep 30 11:09:17 BST 2004  Olly Betts <olly@survex.com>
32127         * tests/api_anydb.cc: Modified version of changequery1 fails - the
32128           fix is tricky, so just make it SKIP for now.
32130 Wed Sep 29 21:33:29 BST 2004  Olly Betts <olly@survex.com>
32132         * extra/Makefile.am: Fixed to work when srcdir != builddir.
32134 Wed Sep 29 18:52:04 BST 2004  Olly Betts <olly@survex.com>
32136         * PLATFORMS,docs/Makefile.am: Workaround odd latex problem.
32138 Wed Sep 29 17:10:00 BST 2004  Olly Betts <olly@survex.com>
32140         * configure.ac,docs/doxygen_api_conf.in,docs/doxygen_full_conf.in:
32141           Updated doxygen conf files for doxygen 1.3.8.
32143 Wed Sep 29 16:52:53 BST 2004  Olly Betts <olly@survex.com>
32145         * common/utils.cc,common/utils.h,extra/Makefile.am,
32146           extra/queryparser.yy,tests/api_anydb.cc,testsuite/index_utils.cc:
32147           Provide our own C_isalpha(), etc replacements for isalpha(), etc
32148           which always work in the C locale and avoid signed char problems.
32150 Tue Sep 28 00:04:11 BST 2004  Olly Betts <olly@survex.com>
32152         * common/utils.cc,common/utils.h: rmdir() isn't a sensible candidate
32153           for inlining so move it out of the header.
32155 Mon Sep 27 17:33:23 BST 2004  Olly Betts <olly@survex.com>
32157         * extra/queryparser.yy: Be smarter about when to add a ':' when adding
32158           a term prefix.
32160 Mon Sep 27 16:01:37 BST 2004  Olly Betts <olly@survex.com>
32162         * docs/scalability.html: Added note warning about benchmarking from
32163           cold.
32165 Mon Sep 27 15:20:13 BST 2004  Olly Betts <olly@survex.com>
32167         * HACKING: Note that we use doxygen 1.3.8 for snapshots and releases;
32168           Note that --enable-maintainer-mode now automatically enables -Werror
32169           with GCC 3.0 or newer.
32171 Wed Sep 22 16:49:20 BST 2004  Olly Betts <olly@survex.com>
32173         * matcher/: Pruned unneeded #include-s and other tidying, some
32174           enabled by the previous change.
32176 Wed Sep 22 14:04:27 BST 2004  Olly Betts <olly@survex.com>
32178         * common/positionlist.h,matcher/: Moved all of the implementations
32179           of the XXXPostList classes from the .h files into the .cc files.
32180           All the methods are virtual, so we aren't going to gain anything
32181           from being able to inline them.
32183 Wed Sep 22 02:58:59 BST 2004  Olly Betts <olly@survex.com>
32185         * configure.ac: Automatically add -Werror to CFLAGS and CXXFLAGS if
32186           maintainer mode is enabled and we're using GCC3 or newer.  Don't
32187           do this for older GCCs as GCC 2.95 issues spurious warnings.
32189 Wed Sep 22 02:41:41 BST 2004  Olly Betts <olly@survex.com>
32191         * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h:
32192           Introduced CASSERT_TYPE_UNSIGNED to replace the common use of
32193           CASSERT to assert at compile time that a type is unsigned.
32195 Tue Sep 21 15:58:05 BST 2004  Olly Betts <olly@survex.com>
32197         * PLATFORMS: Removed reports from versions prior to 0.7.0.  So much
32198           has changed that these are of little value.
32200 Mon Sep 20 15:24:27 BST 2004  Olly Betts <olly@survex.com>
32202         * NEWS,PLATFORMS,configure.ac: Version 0.8.3.
32204 Mon Sep 20 15:13:34 BST 2004  Olly Betts <olly@survex.com>
32206         * AUTHORS: Updated.
32208 Mon Sep 20 14:26:35 BST 2004  Olly Betts <olly@survex.com>
32210         * xapian.spec.in: Removed reference to xapian-examples' createdatabase
32211           (which is no longer in xapian-examples).
32213 Mon Sep 20 13:06:59 BST 2004  Olly Betts <olly@survex.com>
32215         * xapian.spec.in: Updated version from Fabrice Colin (incorporating
32216           changes from Alan Cox's RPM spec files): split off libs into a
32217           separate package to allow 32 and 64 bit versions to be installed
32218           concurrently; include binaries from xapian-examples; updated source
32219           URLs.
32221 Mon Sep 20 03:25:44 BST 2004  Olly Betts <olly@survex.com>
32223         * tests/api_anydb.cc: Added regression test for previous bug (test
32224           checkatleast1).
32226 Mon Sep 20 03:16:14 BST 2004  Olly Betts <olly@survex.com>
32228         * matcher/multimatch.cc: Fixed segfault with check_at_least when there
32229           were no matches.
32231 Sun Sep 19 17:54:52 BST 2004  Olly Betts <olly@survex.com>
32233         * api/omenquire.cc,common/omdebug.cc: Fixed to compile with debug
32234           tracing enabled.
32236 Sat Sep 18 19:02:54 BST 2004  Olly Betts <olly@survex.com>
32238         * tests/api_db.cc: Updated missed use of omprogsrv to xapian-progsrv.
32240 Tue Sep 14 18:09:19 BST 2004  Olly Betts <olly@survex.com>
32242         * xapian.spec.in,bin/.cvsignore,bin/Makefile.am,debian/control.in,
32243           debian/xapian-tools.install,docs/remote.html,tests/remotetest.cc,
32244           testsuite/backendmanager.cc: Rename omtcpsrv to xapian-tcpsrv and
32245           omprogsrv to xapian-progsrv.
32247 Tue Sep 14 16:25:06 BST 2004  Olly Betts <olly@survex.com>
32249         * xapian.spec.in: Fixed mangled URL in last checkin.
32251 Tue Sep 14 15:35:00 BST 2004  Olly Betts <olly@survex.com>
32253         * xapian.spec.in: Updated URL for tarball.
32255 Tue Sep 14 02:49:34 BST 2004  Olly Betts <olly@survex.com>
32257         * HACKING: Updated the "how to do a release" tasklist.
32259 Mon Sep 13 03:19:47 BST 2004  Olly Betts <olly@survex.com>
32261         * NEWS,PLATFORMS,configure.ac: Version 0.8.2.
32263 Sat Sep 11 16:39:08 BST 2004  Olly Betts <olly@survex.com>
32265         * include/xapian/version.h.in: GCC 3.1 reported the wrong value for
32266           __GXX_ABI_VERSION (100 not 101) so check 3.0 and 3.1 by version
32267           number, keeping the __GXX_ABI_VERSION check for newer versions.
32269 Sat Sep 11 02:57:48 BST 2004  Olly Betts <olly@survex.com>
32271         * backends/quartz/bcursor.cc: Fixed and reenabled Bcursor::prev()
32272           (not currently used, but it will be useful for running posting
32273           lists backwards!)
32275 Fri Sep 10 13:13:51 BST 2004  Olly Betts <olly@survex.com>
32277         * tests/Makefile.am: Need to ship test data for new test.
32279 Thu Sep 09 21:58:37 BST 2004  Olly Betts <olly@survex.com>
32281         * tests/api_db.cc: Extended feature test sortrel1 to check interaction
32282           with Enquire::set_sort_forward(false).
32284 Thu Sep 09 21:46:12 BST 2004  Olly Betts <olly@survex.com>
32286         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
32287           include/xapian/enquire.h,matcher/multimatch.cc,net/socketserver.cc,
32288           tests/api_db.cc,tests/testdata/apitest_sortrel.txt: You can now
32289           specify to sort by value, then relevance, then docid instead of
32290           by value then docid.
32292 Thu Sep 09 19:30:07 BST 2004  Olly Betts <olly@survex.com>
32294         * docs/todo.xml: Removed unused file - todo entries are now in
32295           bugzilla.
32297 Thu Sep 09 13:11:52 BST 2004  Olly Betts <olly@survex.com>
32299         * api/omenquire.cc,common/multimatch.h,common/omenquireinternal.h,
32300           include/xapian/enquire.h,matcher/multimatch.cc,net/socketserver.cc:
32301           Added optional "checkatleast" parameter to Enquire::get_mset()
32302           which allows Omega's MIN_HITS functionality to be implemented
32303           in the matcher (a bit more efficient).
32305 Thu Sep 09 04:18:32 BST 2004  Olly Betts <olly@survex.com>
32307         * NEWS: Updated.
32309 Thu Sep 09 03:39:52 BST 2004  Olly Betts <olly@survex.com>
32311         * PLATFORMS: Updated from the tinderbox.  Sun's C++ compiler can
32312           now build Xapian on sparc!
32314 Thu Sep 09 02:19:43 BST 2004  Olly Betts <olly@survex.com>
32316         * tests/api_wrdb.cc: Added feature test for
32317           WritableDatabase::replace_document() and delete_document() with
32318           a unique term (apitest:uniqueterm1.
32319         * backends/inmemory/inmemory_alltermslist.cc,
32320           backends/inmemory/inmemory_database.cc,
32321           backends/inmemory/inmemory_database.h:
32322           Fixed bugs thrown up by the new test.
32324 Wed Sep 08 19:45:37 BST 2004  Olly Betts <olly@survex.com>
32326         * HACKING: Updated details of Solaris open workaround.
32328 Wed Sep 08 19:42:15 BST 2004  Olly Betts <olly@survex.com>
32330         * common/utils.h,backends/quartz/btree.cc,
32331           backends/quartz/quartz_database.cc,backends/quartz/quartz_log.cc:
32332           New version of the Solaris open dance - now we always pass in
32333           const char * for the filename, and we don't need the dance on
32334           new versions, so only dance if open is defined.
32336 Wed Sep 08 16:26:15 BST 2004  Olly Betts <olly@survex.com>
32338         * api/omquery.cc,include/xapian/query.h: Renamed Query::is_empty()
32339           to Query::empty() for consistency.  Keep Query::is_empty() for
32340           now as a deprecated alias.
32342 Wed Sep 08 16:24:44 BST 2004  Olly Betts <olly@survex.com>
32344         * tests/api_wrdb.cc: replace_doc -> replace_doc1; added new test
32345           replace_doc2 to test using replace_doc to add a document with
32346           a specified docid.
32348 Wed Sep 08 16:23:50 BST 2004  Olly Betts <olly@survex.com>
32350         * backends/inmemory/inmemory_database.h: Removed unused member
32351           variable "indexing".
32353 Wed Sep 08 16:14:47 BST 2004  Olly Betts <olly@survex.com>
32355         * backends/quartz/quartz_database.cc: If replace_document() is used
32356           to add a document with did greater than lastdocid, raise lastdocid
32357           so future calls to add_document() won't clash.
32359 Wed Sep 08 16:13:51 BST 2004  Olly Betts <olly@survex.com>
32361         * backends/inmemory/inmemory_database.cc: Fixed bug
32362           Database::replace_document() to work with a document id greater
32363           than lastdocid.
32365 Wed Sep 08 05:10:01 BST 2004  Olly Betts <olly@survex.com>
32367         * common/utils.h: The latest fcntl.h dance causes a compile error on
32368           mingw, so don't use it there.
32370 Wed Sep 08 03:38:20 BST 2004  Olly Betts <olly@survex.com>
32372         * common/utils.h: Use a namespace as an extra step in the Sun fcntl
32373           open64 dance.
32375 Tue Sep 07 02:33:50 BST 2004  Olly Betts <olly@survex.com>
32377         * tests/test.da: Another cruft file removed.
32379 Tue Sep 07 02:21:49 BST 2004  Olly Betts <olly@survex.com>
32381         * tests/btreetest.cc,tests/quartztest.cc: Moved overwrite1 from
32382           quartztest to btreetest.  Added const in a few places.
32384 Tue Sep 07 02:07:43 BST 2004  Olly Betts <olly@survex.com>
32386         * tests/quartztest.cc: Removed overwrite2 test.  Digging back in CVS
32387           it's been disabled since the day after it added.  After all this
32388           time it's hard to guess exactly what it was intended to test, so
32389           just removing it seems simplest.  We already have overwrite1 to test
32390           getting DatabaseModifiedError.
32392 Tue Sep 07 01:52:25 BST 2004  Olly Betts <olly@survex.com>
32394         * tests/btreetest.cc: Cleaned up paths to temporary Btrees.
32396 Mon Sep 06 17:51:27 BST 2004  Olly Betts <olly@survex.com>
32398         * tests/btreetest.cc,tests/quartztest.cc: Now that QuartzTable,
32399           QuartzDiskTable, QuartzBufferedTable, QuartzCursor,
32400           QuartzDiskCursor, and QuartzBufferedCursor are gone, move
32401           quartztest tests which now just use Btree and Bcursor to btreetest.
32402           This is more logical and should help make quartztest less of a
32403           monster to compile.
32405 Mon Sep 06 12:47:47 BST 2004  Olly Betts <olly@survex.com>
32407         * tests/Makefile.am: Ship testdata/apitest_allterms4.txt.
32409 Mon Sep 06 02:46:32 BST 2004  Olly Betts <olly@survex.com>
32411         * tests/quartztest.cc: Xapian::Database will create the directory for
32412           the database so there's no need to create it ourselves.
32414 Mon Sep 06 02:40:57 BST 2004  Olly Betts <olly@survex.com>
32416         * tests/,tests/testdata/apitest_allterms4.txt: Split off tests which
32417           require a writable database backend and tests which should work with
32418           any database backend from api_db.cc as it was getting rather large.
32419           Fixed simplequery2 to work with backends which don't return the
32420           document length (such as the muscat36 backends).  Fixed allterms4
32421           to work with muscat36 backends.
32423 Mon Sep 06 02:39:29 BST 2004  Olly Betts <olly@survex.com>
32425         * backends/muscat36/da_database.cc,backends/muscat36/db_database.cc:
32426           Fixed to compile now that internal_end_session() has gone.
32428 Mon Sep 06 00:59:36 BST 2004  Olly Betts <olly@survex.com>
32430         * tests/runtest.in: Added support for running gdb on a test program,
32431           automatically sorting out srcdir and libtool.
32433 Mon Sep 06 00:49:11 BST 2004  Olly Betts <olly@survex.com>
32435         * tests/apitest_parser.pm: Removed long unused file.
32437 Sun Sep 05 22:53:27 BST 2004  Olly Betts <olly@survex.com>
32439         * include/xapian/enquire.h: Tweaked documentation comment to stop
32440           doxygen parsing a hyphen as a single entry bullet point list.
32442 Sun Sep 05 20:20:01 BST 2004  Olly Betts <olly@survex.com>
32444         * testsuite/backendmanager.h: Added missing "std::" so code will
32445           compile with GCC >= 3.
32447 Sun Sep 05 13:54:58 BST 2004  Olly Betts <olly@survex.com>
32449         * testsuite/backendmanager.h: Removed superfluous "BackendManager::".
32451 Sun Sep 05 01:54:49 BST 2004  Olly Betts <olly@survex.com>
32453         * common/utils.cc,common/utils.h: Removed now unused files_exist()
32454           function.
32456 Sun Sep 05 01:50:35 BST 2004  Olly Betts <olly@survex.com>
32458         * tests/api_db.cc,tests/apitest.cc,tests/apitest.h,
32459           testsuite/backendmanager.cc,testsuite/backendmanager.h:
32460           Cleaned up BackendManager by removing complications only required
32461           by absentfile1 test, which can be implemented more directly anyway.
32463 Sun Sep 05 01:33:16 BST 2004  Olly Betts <olly@survex.com>
32465         * tests/quartztest.cc: Cleaned up rather odd code which is a hangover
32466           from when keys and tags weren't simply C++ strings.
32468 Sat Sep 04 12:35:12 BST 2004  Olly Betts <olly@survex.com>
32470         * HACKING: Updated details of which autotools we require.
32472 Fri Sep 03 17:51:59 BST 2004  Olly Betts <olly@survex.com>
32474         * configure.ac: Require autoconf 2.59.  Noted LIBRARY_VERSION_INFO
32475           which 0.8.2 will probably have.
32476         * Makefile.am: Require automake 1.8.5.
32478 Fri Sep 03 16:40:11 BST 2004  Olly Betts <olly@survex.com>
32480         * PLATFORMS: Updated with results from tinderbox.
32482 Fri Sep 03 14:34:00 BST 2004  Olly Betts <olly@survex.com>
32484         * autoconf/definedir.m4,autoconf/rjb_find_stlport.m4: Quote macro
32485           names to fix warning from newer aclocal.  Removed comments about
32486           future autodetection of stlport, as the user will always need to
32487           decide between the STL supplied with the compiler and stlport.
32489 Thu Sep 02 17:55:33 BST 2004  Olly Betts <olly@survex.com>
32491         * matcher/andpostlist.cc: Initialise lmax and rmax to 0.  Hopefully
32492           this will fix SIGFPE on apitest's qterminfo2 on alpha linux.
32494 Thu Sep 02 14:50:20 BST 2004  Olly Betts <olly@survex.com>
32496         * backends/quartz/quartz_database.cc: Not storing the document length
32497           and last docid on every add means that the magic key won't always
32498           exists when there are records and
32499           QuartzWritableDatabase::get_doccount() is sometimes off by one.  Fix
32500           crudely for now by making sure that the magic key does always exist.
32501           Longer term the magic key probably should be in the postlist table
32502           but that's an incompatible change.
32504 Wed Sep 01 16:15:23 BST 2004  Olly Betts <olly@survex.com>
32506         * backends/quartz/: Change QuartzWritableDatabase to store the total
32507           document length and the last docid itself rather than tallying added
32508           and removed document length and writing the last docid back every
32509           time a document is added.  This gives cleaner code and a small
32510           performance win.  Removed XAPIAN_FLUSH_THRESHOLD_LENGTH as we no
32511           longer tally the length changes, and made the default flush
32512           threshold 10000 documents (was 1000).
32514 Wed Sep 01 14:21:19 BST 2004  Olly Betts <olly@survex.com>
32516         * backends/quartz/btree.cc: Turn on previously commented-out code to
32517           make the first key null for blocks more than 1 away from the leaves.
32518           It saves disk space for a tiny CPU and RAM cost so is bound to be
32519           a win overall.
32521 Tue Aug 31 13:55:58 BST 2004  Olly Betts <olly@survex.com>
32523         * backends/quartz/btree.cc,backends/quartz/btree.h,
32524           backends/quartz/btree_util.h: Merged Btree::make_index_item() into
32525           Btree::enter_key().
32527 Tue Aug 31 01:07:19 BST 2004  Olly Betts <olly@survex.com>
32529         * NEWS: Updated in preparation for a release.
32531 Tue Aug 31 00:53:35 BST 2004  Olly Betts <olly@survex.com>
32533         * backends/quartz/btree.cc: Short-cutting Btree::cancel causes
32534           problems so disable that for the time being at least.
32536 Fri Aug 27 13:09:56 BST 2004  Olly Betts <olly@survex.com>
32538         * testsuite/btreecheck.cc: Fixed %% to % (presumably a hangover from
32539           converting printf to cout).
32541 Thu Aug 26 18:11:50 BST 2004  Olly Betts <olly@survex.com>
32543         * backends/quartz/quartz_postlist.cc: Reduce quartz postlist chunk
32544           threshold from 2048 to 2000 so that chunks won't get split by the
32545           Btree.
32547 Thu Aug 26 18:10:27 BST 2004  Olly Betts <olly@survex.com>
32549         * backends/quartz/quartz_record.cc: Throw DocNotFoundError if we
32550           try to delete a record which doesn't exist.
32552 Thu Aug 26 17:18:56 BST 2004  Olly Betts <olly@survex.com>
32554         * configure.ac: Don't define DATADIR - we no longer use it and clashes
32555           with more recent mingw headers.
32557 Wed Aug 25 22:47:06 BST 2004  Olly Betts <olly@survex.com>
32559         * docs/quartzdesign.html: Started section on quartzcompact.
32561 Wed Aug 25 22:45:48 BST 2004  Olly Betts <olly@survex.com>
32563         * api/omdatabase.cc,include/xapian/database.h: Changed new
32564           WritableDatabase::replace_document(term, doc) method to return
32565           the docid which the document was given.
32567 Tue Aug 24 13:45:52 BST 2004  Olly Betts <olly@survex.com>
32569         * api/omenquire.cc,include/xapian/enquire.h: Added new ESet methods
32570           swap(), back() and operator[].
32571         * include/xapian/enquire.h: Added documentation comments for
32572           MSet methods size(), empty(), swap(), begin(), end(), back().
32573         * include/xapian/enquire.h: Removed bogus documentation saying
32574           that some Enquire methods can throw DatabaseOpeningError.
32576 Tue Aug 24 10:24:30 BST 2004  Olly Betts <olly@survex.com>
32578         * HACKING: Noted automake 1.8 may be problematic.  Tweaked list of
32579           release tasks.
32581 Tue Aug 24 10:16:38 BST 2004  Olly Betts <olly@survex.com>
32583         * matcher/multimatch.cc: If a matchdecider is specified and no matches
32584           are requested, the lower bound on the number of matches must be 0
32585           (since the matchdecider could reject all the matches).
32587 Mon Aug 23 23:03:12 BST 2004  Olly Betts <olly@survex.com>
32589         * backends/quartz/btree.cc: Improved the "Db block overwritten"
32590           message.  The DatabaseCorruptError version now suggests multiple
32591           writers may be the cause, while the DatabaseModifiedError version
32592           uses less alarming wording and says to call Database::reopen().
32594 Sun Aug 22 14:07:35 BST 2004  Olly Betts <olly@survex.com>
32596         * indexer/: Removed the old XML-based indexer framework.  It's not
32597           worked for ages, and nobody seems interested in ressurecting it.
32598           If anyone ever is, they can fetch it back from CVS, but otherwise
32599           it's just bulking up CVS checkouts.
32601 Sun Aug 22 13:02:25 BST 2004  Olly Betts <olly@survex.com>
32603         * Makefile.am,configure.ac,extra/Makefile.am: Moved the older library
32604           version information into configure.ac.
32606 Sun Aug 22 12:58:21 BST 2004  Olly Betts <olly@survex.com>
32608         * HACKING,configure.in,configure.ac,backends/Makefile.am,
32609           docs/Makefile.am: Renamed configure.in to configure.ac.
32611 Sun Aug 22 12:47:43 BST 2004  Olly Betts <olly@survex.com>
32613         * xapian-config.in: Add "(or configure.ac)" in message telling the
32614           user to add a line to their configure.in.
32616 Sun Aug 22 11:38:55 BST 2004  Olly Betts <olly@survex.com>
32618         * backends/quartz/btree.cc,backends/quartz/btree_util.h: Adjusted
32619           some Asserts to check c is within blocksize rather than
32620           65536.  Added a FIXME for those which can't be trivially changed.
32622 Sun Aug 22 10:56:56 BST 2004  Olly Betts <olly@survex.com>
32624         * backends/quartz/quartz_database.cc: No need to force a flush on
32625           QuartzWritableDatabase::open_document() (the document will read
32626           things lazily from the database, and that may trigger a forced
32627           flush).
32628         * backends/quartz/quartz_database.cc,
32629           backends/quartz/quartz_database.h: Eliminated
32630           QuartzDatabase::open_post_list_internal() and
32631           QuartzDatabase::open_term_list_internal().
32633 Sun Aug 22 01:33:05 BST 2004  Olly Betts <olly@survex.com>
32635         * backends/quartz/quartz_database.cc,backends/quartz/quartz_record.cc,
32636           backends/quartz/quartz_record.h: WritableDatabase::get_avlength()
32637           no longer forces pending changes to be flushed.  This means you can
32638           now search a modified WritableDatabase without causing a flush
32639           unless the search includes a term whose postlist has pending
32640           modifications.
32642 Fri Aug 20 20:03:59 BST 2004  Olly Betts <olly@survex.com>
32644         * backends/quartz/btree_util.h,common/,docs/overview.html,
32645           docs/quickstart.html,include/xapian/enquire.h,
32646           matcher/branchpostlist.h,matcher/multimatch.cc,tests/api_db.cc:
32647           Corrected multiple occurrences of "an Xapian::XXX" to "a Xapian::XXX"
32648           (presumably these all resulted from replacing "Om" with "Xapian::").
32650 Fri Aug 20 17:38:15 BST 2004  Olly Betts <olly@survex.com>
32652         * backends/quartz/,bin/quartzcheck.cc,bin/quartzcompact.cc,
32653           bin/quartzdump.cc,tests/btreetest.cc,tests/quartztest.cc:
32654           Merged QuartzCursor into Bcursor.
32656 Fri Aug 20 13:43:04 BST 2004  Olly Betts <olly@survex.com>
32658         * NEWS,backends/quartz/: Fixed the problem with "lazy tag reading"
32659           in QuartzCursor and reenable that code.  The problem was with
32660           deleting the current key, so added QuartzCursor::del() which
32661           deletes the current key, leaving the cursor on the next item.
32663 Fri Aug 20 13:04:33 BST 2004  Olly Betts <olly@survex.com>
32665         * tests/api_db.cc: Reenabled test allterms2, but with the iterator
32666           copying parts removed - TermIterator is an input_iterator so
32667           that part was invalid.
32669 Thu Aug 19 19:19:48 BST 2004  Olly Betts <olly@survex.com>
32671         * NEWS: Updated from recent ChangeLog entries.
32673 Thu Aug 19 14:09:28 BST 2004  Olly Betts <olly@survex.com>
32675         * tests/api_db.cc: Added regression test for bug #37.
32677 Thu Aug 19 13:31:37 BST 2004  Olly Betts <olly@survex.com>
32679         * matcher/localmatch.cc: Fixed problems handling termweights in
32680           queries with the same term repeated (bug #37).
32682 Thu Aug 19 13:22:12 BST 2004  Olly Betts <olly@survex.com>
32684         * backends/quartz/quartz_table.cc: Disable the "lazy tag reading" in
32685           QuartzCursor for the time being - it seems to cause problems.
32687 Thu Aug 19 12:58:10 BST 2004  Olly Betts <olly@survex.com>
32689         * bin/quartzcheck.cc,bin/quartzdump.cc: Added calls to
32690           QuartzCursor::read_tag().
32692 Thu Aug 19 12:56:53 BST 2004  Olly Betts <olly@survex.com>
32694         * matcher/multimatch.cc: Removed superfluous clear() of a map.
32696 Thu Aug 19 12:56:08 BST 2004  Olly Betts <olly@survex.com>
32698         * tests/api_db.cc: Corrected a comment - a pure boolean query has all
32699           weights set to 0, not 1.
32701 Mon Aug 16 15:41:33 BST 2004  Olly Betts <olly@survex.com>
32703         * docs/: Removed unused and very out of date class diagrams in dia
32704           format.  Doxygen generates similar but up-to-date diagrams
32705           automatically anyway.
32707 Mon Aug 16 15:27:30 BST 2004  Olly Betts <olly@survex.com>
32709         * xapian.spec.in,debian/libxapianVERSION-dev.install,
32710           extra/.cvsignore,extra/Makefile.am,extra/omparsequery.h,
32711           include/Makefile.am,include/om/.cvsignore,include/om/dir_contents,
32712           include/om/om.h,m4/xapian.m4: Removed the compatibility layer which
32713           allowed programs written against the pre-0.7.0 API to be compiled.
32715 Mon Aug 16 15:08:08 BST 2004  Olly Betts <olly@survex.com>
32717         * backends/quartz/quartz_table.cc: Fixed QuartzCursor::find()
32718           to work again after the last change.
32720 Mon Aug 16 14:43:08 BST 2004  Olly Betts <olly@survex.com>
32722         * backends/quartz/,tests/quartztest.cc: QuartzCursor no longer
32723           automatically reads the tag - you have to call read_tag() to
32724           get it read.  This speeds up iterator over all the terms in
32725           a database.  Also commented out QuartzCursor::prev as it's
32726           unused and untested (at least in its latest form).
32728 Mon Aug 16 12:39:56 BST 2004  Olly Betts <olly@survex.com>
32730         * backends/quartz/btree_types.h: Made Bcursor.rewrite bool rather than
32731           int.
32733 Mon Aug 16 12:35:07 BST 2004  Olly Betts <olly@survex.com>
32735         * backends/quartz/btree.cc,backends/quartz/btree.h: Calculate and
32736           store the latest revision number, rather than storing the other
32737           one and working out which is newer every time we're asked.
32739 Mon Aug 16 12:32:59 BST 2004  Olly Betts <olly@survex.com>
32741         * docs/install.html: We haven't "only [...] UNIX" for ages, so don't
32742           claim we are.  We use libtool as well as autoconf and automake.
32743           Link to the CVS snapshots.  And also mention downloading omega.
32745 Mon Aug 16 12:20:04 BST 2004  Olly Betts <olly@survex.com>
32747         * docs/index.html: exaplains -> explains.
32749 Mon Aug 16 12:18:34 BST 2004  Olly Betts <olly@survex.com>
32751         * docs/overview.html: Removed references to "our company" (meaning
32752           BrightStation) and to the now defunct special parameters which
32753           the inmemory backend accepted to cause deliberate errors for
32754           testing.
32756 Sun Aug 15 23:48:20 BST 2004  Olly Betts <olly@survex.com>
32758         * tests/btreetest.cc: item_count -> get_entry_count(); revision_number
32759           -> get_open_revision_number().
32761 Sun Aug 15 23:15:34 BST 2004  Olly Betts <olly@survex.com>
32763         * backends/Makefile.am,backends/inmemory/Makefile.am: Fixed to compile
32764           with --disable-inmemory (bug #33).
32766 Sat Aug 14 18:56:06 BST 2004  Olly Betts <olly@survex.com>
32768         * Makefile.am: Improved library versioning comment.
32770 Sat Aug 14 18:55:17 BST 2004  Olly Betts <olly@survex.com>
32772         * docs/overview.html: Fixed om_queryop to Xapian::Query::op, and added
32773           missing OP_* codes to the list.
32775 Sat Aug 14 17:44:39 BST 2004  Olly Betts <olly@survex.com>
32777         * backends/quartz/bcursor.h,backends/quartz/btree.cc,
32778           backends/quartz/btree.h,bin/quartzcompact.cc,docs/quartzdesign.html:
32779           Updated quartz design docs to reflect recent changes.  Also pulled
32780           out the Btree and Bcursor API docs and slotted them in as doxygen
32781           documentation comments - this way they're much more likely to
32782           be kept up-to-date.
32784 Sat Aug 14 15:59:07 BST 2004  Olly Betts <olly@survex.com>
32786         * backends/quartz/btree.cc,backends/quartz/btree.h: Removed unused
32787           Btree default ctor.
32789 Sat Aug 14 15:45:28 BST 2004  Olly Betts <olly@survex.com>
32791         * backends/quartz/btree.cc,backends/quartz/btree.h: Don't redundantly
32792           store next_revision - it's always just revision_number + 1.
32794 Sat Aug 14 15:30:30 BST 2004  Olly Betts <olly@survex.com>
32796         * backends/quartz/btree.cc: Implemented Btree::cancel directly rather
32797           than closing and reopening the Btree.
32799 Sat Aug 14 14:46:43 BST 2004  Olly Betts <olly@survex.com>
32801         * backends/quartz/,bin/quartzcheck.cc,bin/quartzcompact.cc,
32802           bin/quartzdump.cc,tests/btreetest.cc,tests/quartztest.cc,
32803           testsuite/btreecheck.cc,testsuite/btreecheck.h: Eliminated
32804           QuartzTable which had become just a thin wrapper around Btree.
32806 Fri Aug 13 19:19:02 BST 2004  Olly Betts <olly@survex.com>
32808         * backends/quartz/quartz_postlist.cc:
32809           QuartzPostList::move_to_chunk_containing now calls next_chunk if
32810           required, rather than forcing the caller to do the fix-up.
32812 Fri Aug 13 17:54:53 BST 2004  Olly Betts <olly@survex.com>
32814         * backends/quartz/quartz_database.cc,
32815           backends/quartz/quartz_database.h: Added tunable flush thresholds
32816           - set XAPIAN_FLUSH_THRESHOLD=5000 to flush every 5000 documents
32817           or XAPIAN_FLUSH_THRESHOLD_LENGTH=1000000 to flush every 1000000
32818           total change in document length.  Set both to flush whichever is
32819           reached first.  Set neither and the default is to flush every
32820           1000 documents as before.
32822 Fri Aug 13 15:54:21 BST 2004  Olly Betts <olly@survex.com>
32824         * backends/quartz/: Removed no-longer-used Btree::erase and
32825           QuartzTable::erase methods.
32827 Fri Aug 13 15:37:15 BST 2004  Olly Betts <olly@survex.com>
32829         * backends/quartz/btree.cc,backends/quartz/quartz_database.cc:
32830           Changed Btree::create() to remove any pre-existing alternate base
32831           file, so we no longer need to call Btree::erase before
32832           Btree::create.
32834 Fri Aug 13 15:37:15 BST 2004  Olly Betts <olly@survex.com>
32836         * NEWS: Updated with changes since last release.
32838 Fri Aug 13 15:36:04 BST 2004  Olly Betts <olly@survex.com>
32840         * tests/api_posdb.cc,tests/quartztest.cc: Reworked quartztest's
32841           positionlist1 into a generic api test as apitest's poslist3.
32843 Thu Aug 12 16:26:42 BST 2004  Olly Betts <olly@survex.com>
32845         * backends/quartz/quartz_table.cc,backends/quartz/quartz_table.h,
32846           bin/quartzcheck.cc,bin/quartzdump.cc: QuartzCursor now has a
32847           Bcursor member, rather than an AutoPtr<Bcursor> member.
32849 Thu Aug 12 14:13:37 BST 2004  Olly Betts <olly@survex.com>
32851         * tests/btreetest.cc: Fixed up in line with the recent refactoring.
32853 Thu Aug 12 13:23:31 BST 2004  Olly Betts <olly@survex.com>
32855         * m4/xapian.m4: XO_LIB_XAPIAN now AC_SUBSTs XAPIAN_VERSION.
32857 Thu Aug 12 13:21:36 BST 2004  Olly Betts <olly@survex.com>
32859         * backends/quartz/,tests/quartztest.cc: Refactored, replacing
32860           Quartz*Manager with Quartz*Table.
32862 Thu Aug 12 02:00:58 BST 2004  Olly Betts <olly@survex.com>
32864         * backends/quartz/: Merged QuartzTableManager into QuartzDatabase.
32866 Wed Aug 11 23:40:34 BST 2004  Olly Betts <olly@survex.com>
32868         * backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h:
32869           Eliminated buffered_tables member of QuartzWritableDatabase.
32871 Wed Aug 11 21:26:35 BST 2004  Olly Betts <olly@survex.com>
32873         * backends/inmemory/inmemory_database.cc,
32874           backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h,
32875           docs/todo.xml: WritableDatabase::replace_document can now be used
32876           to add a document with a specific docid (to allow keeping docids
32877           in sync with numeric UIDs from another system).
32879 Wed Aug 11 20:09:15 BST 2004  Olly Betts <olly@survex.com>
32881         * api/omdatabase.cc,include/xapian/database.h: Added replace_document
32882           and delete_document variants which take a unique id term name rather
32883           than a document id.
32884         * include/xapian/database.h: Better documentation for replace_document
32885           and delete_document.
32887 Wed Aug 11 16:15:10 BST 2004  Olly Betts <olly@survex.com>
32889         * backends/quartz/,bin/quartzcheck.cc,bin/quartzdump.cc,
32890           tests/quartztest.cc: Eliminated QuartzBufferedTable.
32892 Wed Jun 30 20:34:08 BST 2004  Olly Betts <olly@survex.com>
32894         * NEWS: Fixed an unwrapped line.
32896 Wed Jun 30 20:32:31 BST 2004  Olly Betts <olly@survex.com>
32898         * HACKING: Added note about the cvs-tag-release script.
32900 Wed Jun 30 19:05:45 BST 2004  Olly Betts <olly@survex.com>
32902         * HACKING,NEWS,PLATFORMS,configure.in: Version 0.8.1.
32904 Wed Jun 30 14:23:20 BST 2004  Olly Betts <olly@survex.com>
32906         * AUTHORS,PLATFORMS: Updated.
32908 Tue Jun 29 23:24:59 BST 2004  Olly Betts <olly@survex.com>
32910         * tests/api_nodb.cc: Make emptyquery1 check that Query("") causes an
32911           InvalidArgumentError exception.
32913 Tue Jun 29 17:29:03 BST 2004  Richard Boulton <richard@tartarus.org>
32915         * Makefile.am: Remove Debian files from distribution tarballs,
32916           since there will often be multiple patch releases for each
32917           release.  Debian files will be available from an apt repository
32918           in future.
32920 Mon Jun 28 01:29:00 BST 2004  Olly Betts <olly@survex.com>
32922         * NEWS: Mostly updated for 0.8.1 release.
32924 Sun Jun 27 23:37:01 BST 2004  Olly Betts <olly@survex.com>
32926         * backends/quartz/quartz_postlist.cc: Fixed bug in postlist merging.
32928 Sat Jun 26 00:51:04 BST 2004  Olly Betts <olly@survex.com>
32930         * AUTHORS: Add Malcolm Baldridge (helped fix a problem with building
32931           the PHP bindings with newer versions of SWIG and PHP).
32933 Fri Jun 26 00:29:10 BST 2004  Olly Betts <olly@survex.com>
32935         * HACKING,api/ompositionlistiterator.cc,api/ompostlistiterator.cc,
32936           api/omtermlistiterator.cc,include/xapian/: MSetIterator and
32937           ESetIterator are now bidirectional iterators (rather than
32938           just input iterators);  Fixed post-increment forms of
32939           PostingIterator, TermIterator, PositionIterator, and ValueIterator
32940           so that *i++ works (as it must for them to be true input iterators).
32942 Thu Jun 24 18:03:46 BST 2004  Olly Betts <olly@survex.com>
32944         * PLATFORMS: Added success report for Slackware Linux 9.1.
32946 Mon Jun 21 16:33:16 BST 2004  Olly Betts <olly@survex.com>
32948         * backends/quartz/quartz_postlist.cc: Corrected -> to . so code
32949           compiles with debug enabled.
32951 Mon Jun 21 03:25:24 BST 2004  Olly Betts <olly@survex.com>
32953         * backends/quartz/btree.cc: Eliminated two calls to abort() - throw
32954           exceptions instead.
32956 Mon Jun 21 03:21:14 BST 2004  Olly Betts <olly@survex.com>
32958         * backends/quartz/quartz_postlist.cc: Finish backing out incorrect
32959           change from "Fri May 07 03:16:29 BST 2004" - failed to change two
32960           lines back before.
32962 Fri Jun 18 16:48:10 BST 2004  Richard Boulton <richard@tartarus.org>
32964         * configure.in: Fix typo (STLPORT_CXXLAGS -> STLPORT_CXXFLAGS)
32966 Thu Jun 17 03:46:32 BST 2004  Olly Betts <olly@survex.com>
32968         * backends/quartz/quartz_database.cc: Cleaned up code to track
32969           add vs delete vs modify of a posting list entry since we now
32970           force a flush if an entry is about to be retouched.
32972 Thu Jun 17 03:44:21 BST 2004  Olly Betts <olly@survex.com>
32974         * backends/quartz/quartz_postlist.cc: Back out incorrect change from
32975           "Fri May 07 03:16:29 BST 2004".  We do need to call get_or_make_tag
32976           in this case because we're modifying the tag.
32978 Wed Jun 16 15:40:21 BST 2004  Olly Betts <olly@survex.com>
32980         * backends/inmemory/inmemory_database.h: Implemented get_lastdocid()
32981           for InMemory backend.
32983 Wed Jun 16 02:39:41 BST 2004  Olly Betts <olly@survex.com>
32985         * configure.in: Note the value of LIBRARY_VERSION_INFO which 0.8.1
32986           would get if it were released now.
32988 Wed Jun 16 02:39:11 BST 2004  Robert Pollak <robert.pollak@fabasoft.com>
32990         * api/omdatabase.cc, include/xapian/database.h,
32991           backends/database.cc, common/database.h,
32992           backends/quartz/quartz_database.cc, backends/quartz/quartz_database.h,
32993           backends/quartz/quartz_record.cc, backends/quartz/quartz_record.h:
32994           New method Database::get_lastdocid for re-synchronizing an old
32995           quartz index.
32997 Wed Jun 16 02:05:07 BST 2004  Richard Boulton <richard@tartarus.org>
32999         * matcher/multimatch.cc: When collapsing, keep track of the number
33000           of collapses performed, and use this information to modify the
33001           bounds and estimate of the number of matches.
33002         * tests/api_db.cc: Added tests for this.
33003         * include/xapian/enquire.h: Update documentation comments for
33004           MSet::get_matches_*() functions to make clear that collapsing and
33005           cutoffs are taken into account.  (Previously, the most likely
33006           interpretation of the comments was that they wouldn't be taken
33007           into account, but the implementation was that percentage cutoffs
33008           were taken into account.)  Due to this ambiguity, I think it is
33009           reasonable to say this isn't an API change.
33011 Wed Jun 16 01:55:29 BST 2004  Olly Betts <olly@survex.com>
33013         * matcher/multimatch.cc: Rearranged code so that the behaviour can
33014           be easily seen to be unchanged, but so that it's closer to the
33015           result of applying Richard's patch for bug #31.
33017 Wed Jun 16 01:27:09 BST 2004  Olly Betts <olly@survex.com>
33019         * matcher/multimatch.cc: Trimmed extra whitespace.
33021 Tue Jun 15 15:40:11 BST 2004  Olly Betts <olly@survex.com>
33023         * backends/quartz/quartz_postlist.cc: Fixed PostlistChunkReader to
33024           take a copy of the postlist data being read to avoid problems with
33025           reading data from a string that's been deleted.
33027 Tue Jun 15 15:26:54 BST 2004  Olly Betts <olly@survex.com>
33029         * HACKING: Updated the list of tasks required for a new release.
33031 Tue Jun 15 15:24:04 BST 2004  Olly Betts <olly@survex.com>
33033         * Makefile.am,configure.in,extra/Makefile.am: Unify the shlib version
33034           numbers (the small benefit of tracking them individually makes it
33035           hard to justify the extra work required, and having one version
33036           simplifies debian packaging too).
33038 Tue Jun 15 14:52:36 BST 2004  Robert Pollak <robert.pollak@fabasoft.com>
33040         * extra/xapian/queryparser.h: Fixed memory leaked upon QueryParser
33041           destruction.
33043 Fri Jun 11 02:18:35 BST 2004  Olly Betts <olly@survex.com>
33045         * backends/quartz/quartz_postlist.cc: Refactored a loop.
33047 Fri Jun 11 02:17:05 BST 2004  Olly Betts <olly@survex.com>
33049         * backends/quartz/quartz_postlist.cc: Fixed bug which meant we
33050           sometimes failed to remove a posting when deleting or replacing
33051           a document.
33053 Fri Jun 11 02:16:16 BST 2004  Olly Betts <olly@survex.com>
33055         * backends/quartz/quartz_postlist.cc,
33056           backends/quartz/quartz_postlist.h: Merged move_to() into skip_to().
33058 Fri Jun 11 02:14:56 BST 2004  Olly Betts <olly@survex.com>
33060         * backends/quartz/quartz_postlist.cc: Fixed typo in comment.
33062 Thu May 27 15:41:45 BST 2004  Olly Betts <olly@survex.com>
33064         * backends/quartz/btree.cc,backends/quartz/btree.h: Eliminated the
33065           split cursor - we only actually need a single block buffer to
33066           handle splitting blocks.
33068 Wed May 26 04:02:18 BST 2004  Olly Betts <olly@survex.com>
33070         * include/om/om.h,include/xapian/errortypes.h: Removed several unused
33071           Xapian::Error subclasses (these were used by the indexer framework
33072           which we decided was a failed experiment).
33074 Wed May 26 01:54:13 BST 2004  Olly Betts <olly@survex.com>
33076         * backends/quartz/btree.cc,backends/quartz/btree.h: More DEBUGCALL
33077           tracing added; split_root now uses level member rather than a
33078           parameter.
33080 Sun May 23 00:56:41 BST 2004  Olly Betts <olly@survex.com>
33082         * backends/quartz/btree.cc,backends/quartz/btree.h: Merge split_off()
33083           into add_item().
33085 Sat May 22 01:28:58 BST 2004  Olly Betts <olly@survex.com>
33087         * backends/quartz/btree.cc: Another DEBUGCALL.
33088         * backends/quartz/quartz_table.h: Improved comments.
33090 Fri May 21 23:17:01 BST 2004  Olly Betts <olly@survex.com>
33092         * backends/quartz/btree.cc: Removed unnecessary assignment which is
33093           a hangover from the shared level code we removed long ago.
33095 Fri May 21 20:31:56 BST 2004  Olly Betts <olly@survex.com>
33097         * backends/quartz/,docs/quartzdesign.html,testsuite/btreecheck.cc:
33098           Removed overwritten flag (unused as we throw an exception anyway).
33099           If Btree is writable, throw DatabaseCorruptError if we detect
33100           overwritten.  Make use of bool return types consistent.  Removed
33101           documentation of Btree error codes (the error codes themselves
33102           were removed a month ago).
33104 Thu May 20 03:50:46 BST 2004  Olly Betts <olly@survex.com>
33106         * include/xapian/database.h: Remove references to sessions in doxygen
33107           comments.
33109 Thu May 20 03:44:28 BST 2004  Olly Betts <olly@survex.com>
33111         * api/omdatabase.cc,backends/database.cc,
33112           backends/inmemory/inmemory_database.cc,
33113           backends/inmemory/inmemory_database.h,
33114           backends/muscat36/da_database.h,backends/muscat36/db_database.h,
33115           backends/net/net_database.cc,backends/quartz/quartz_database.cc,
33116           backends/quartz/quartz_database.h,common/database.h,
33117           common/net_database.h: Clean up the backend interface.
33119 Thu May 20 03:18:30 BST 2004  Olly Betts <olly@survex.com>
33121         * backends/database.cc,backends/inmemory/inmemory_database.cc,
33122           backends/inmemory/inmemory_database.h,backends/muscat36/,
33123           backends/net/net_database.cc,backends/quartz/quartz_database.cc,
33124           backends/quartz/quartz_database.h,common/database.h:
33125           Stripped out the session machinery - all that is actually required
33126           is to ensure that any unflushed changes are flushed when the dtor
33127           runs.
33129 Mon May 17 01:04:17 BST 2004  Olly Betts <olly@survex.com>
33131         * backends/quartz/btree.cc,backends/quartz/btree.h,
33132           backends/quartz/btree_types.h: Reworked split_p and split_n
33133           members of Cursor into a separate C_split cursor.  This
33134           reduces the memory overhead of each Bcursor (and hence each
33135           QuartzPostList).
33137 Sat May 15 01:29:40 BST 2004  Olly Betts <olly@survex.com>
33139         * docs/quickstart.html: Corrected lingering reference to "om.h" and
33140           note that we need <iostream>.
33141         * docs/quickstartindex.cc.html,docs/quickstartexpand.cc.html,
33142           docs/quickstartsearch.cc.html: Add <iostream>.
33143         * AUTHORS: Add John Ward for pointing out the above problems.
33145 Fri May 14 00:59:51 BST 2004  Olly Betts <olly@survex.com>
33147         * HACKING: Added the start of a list of subtasks when doing a release.
33148           Currently it's always me that does this, but it may not always be
33149           and anyhow it'll help me to have a list to run through.
33151 Fri May 14 00:59:21 BST 2004  Olly Betts <olly@survex.com>
33153         * docs/todo.xml: Updated.
33155 Thu May 13 17:14:18 BST 2004  Olly Betts <olly@survex.com>
33157         * extra/queryparser.yy: When stripping non-alphanums prior to
33158           reparsing, keep dots ('.').
33159         * extra/queryparsertest.cc: Pruned near-duplicate queryparsertest
33160           testcases.
33162 Thu May 13 12:09:19 BST 2004  Olly Betts <olly@survex.com>
33164         * docs/quartzdesign.html: "interger" -> "integer".
33166 Thu May 13 11:20:44 BST 2004  Olly Betts <olly@survex.com>
33168         * Makefile.am: Removed bogus extra line added by last change.
33170 Thu May 13 11:11:31 BST 2004  Olly Betts <olly@survex.com>
33172         * configure.in,Makefile.am,autoconf/.cvsignore,autoconf/Makefile.am,
33173           m4/.cvsignore,m4/Makefile.am: Removed trivial m4/Makefile.am and
33174           and autoconf/Makefile.am and do the work from the top level
33175           Makefile.am instead.  It's easy to see the structure this way, and
33176           it also removes a couple of recursive make invocations.
33178 Thu May 13 09:32:22 BST 2004  Olly Betts <olly@survex.com>
33180         * backends/quartz/btree.cc,backends/quartz/btree.h: Added DEBUGCALL
33181           tracing;  Stripped out C_ parameters where they are always the
33182           internal cursor C.
33184 Thu May 13 00:05:45 BST 2004  Olly Betts <olly@survex.com>
33186         * extra/queryparser.yy,extra/queryparsertest.cc: If we fail to parse
33187           a query, try stripping out non-alphanumerics and reparsing.
33189 Wed May 12 14:32:54 BST 2004  Olly Betts <olly@survex.com>
33191         * common/omtime.h: Corrected file description.
33193 Wed May 12 02:08:44 BST 2004  Olly Betts <olly@survex.com>
33195         * backends/quartz/btree.cc: Fixed typos in comment.
33197 Tue May 11 20:55:56 BST 2004  Olly Betts <olly@survex.com>
33199         * xapian-config.in: Added comment saying why we filter out
33200           -I/usr/include; Removed no longer used "optarg" stuff; Added licence
33201           boilerplate text (with (C) dates mined from CVS).
33203 Tue May 11 13:42:38 BST 2004  Olly Betts <olly@survex.com>
33205         * backends/quartz/bcursor.cc,backends/quartz/btree.cc: Added lots
33206           of assertions.
33208 Tue May 11 09:29:51 BST 2004  Richard Boulton <richard@tartarus.org>
33210         * debian/: Added basic Debian packaging.
33212 Mon May 10 17:17:45 BST 2004  Olly Betts <olly@survex.com>
33214         * docs/quartzdsign.html: Corrected various pieces of out of date
33215           information.
33217 Mon May 10 01:30:35 BST 2004  Olly Betts <olly@survex.com>
33219         * backends/quartz/btree.h: Removed unused forward declaration of
33220           class BtreeCheck.
33222 Mon May 10 01:30:24 BST 2004  Olly Betts <olly@survex.com>
33224         * backends/quartz/btree.cc: Fixed typo.
33226 Sat May 08 20:14:40 BST 2004  Olly Betts <olly@survex.com>
33228         * backends/quartz/: Pruned some #include-s which were unused, or could
33229           be replaced by forward class declarations.
33231 Fri May 07 14:38:10 BST 2004  Olly Betts <olly@survex.com>
33233         * backends/quartz/quartz_postlist.cc: Slight efficiency tweak to the
33234           "deleting the whole posting list" case.
33236 Fri May 07 03:16:29 BST 2004  Olly Betts <olly@survex.com>
33238         * backends/quartz/quartz_postlist.cc: Removed another unnecessary use
33239           of QuartzBufferedTable::get_or_make_tag().
33241 Fri May 07 02:56:22 BST 2004  Olly Betts <olly@survex.com>
33243         * backends/quartz/btree.cc: Initialise prev_ptr and next_ptr at open
33244           time for a writable Btree.
33246 Fri May 07 02:46:53 BST 2004  Olly Betts <olly@survex.com>
33248         * backends/quartz/quartz_postlist.cc: Remove unneeded call to
33249           QuartzBufferedTable::get_or_make_tag() in a case when we're using a
33250           cursor which has already fetched the tag.
33252 Thu May 06 23:30:12 BST 2004  Olly Betts <olly@survex.com>
33254         * backends/quartz/btree.cc: Improved a comment.
33256 Thu May 06 22:20:43 BST 2004  Olly Betts <olly@survex.com>
33258         * backends/quartz/btree.cc: Added a few more assertions.
33260 Thu May 06 02:25:33 BST 2004  Olly Betts <olly@survex.com>
33262         * backends/quartz/quartz_positionlist.cc,
33263           backends/quartz/quartz_utils.h: Added SON_OF_QUARTZ define to
33264           disable incompatible changes to database formats by default, and
33265           use it to control the docid encoding for keys such that we're always
33266           inserting at the end of the table when added new documents.
33268 Thu May 06 02:23:02 BST 2004  Olly Betts <olly@survex.com>
33270         * backends/quartz/quartz_postlist.cc: Improved a FIXME comment.
33272 Thu May 06 00:32:17 BST 2004  Olly Betts <olly@survex.com>
33274         * extra/queryparsertest.cc: Added test case for `term NOT "a phrase'.
33276 Thu May 06 00:28:32 BST 2004  Olly Betts <olly@survex.com>
33278         * common/omdebug.cc,common/omdebug.h: Renamed OmTimer class used
33279           internally by the --enable-debug=profile code to
33280           Xapian::Internal::Timer.
33282 Wed May 05 13:59:47 BST 2004  Olly Betts <olly@survex.com>
33284         * docs/scalability.html: Reworded to remove use of first person.
33286 Mon May 03 21:42:05 BST 2004  Olly Betts <olly@survex.com>
33288         * Makefile.am: Improved wording of a FIXME comment.
33290 Sun May 02 10:18:55 BST 2004  Olly Betts <olly@survex.com>
33292         * backends/quartz/btree.cc: Improved a couple of comments.
33294 Sat May 01 04:42:43 BST 2004  Olly Betts <olly@survex.com>
33296         * backends/quartz/btree.cc,backends/quartz/btree.h,
33297           backends/quartz/quartz_table.cc: Reopening the readonly version
33298           of a writable Btree is now more efficient.
33300 Sat May 01 01:41:24 BST 2004  Olly Betts <olly@survex.com>
33302         * PLATFORMS: Added up-to-date success reports for x86-openbsd and
33303           x86-solaris.
33305 Fri Apr 30 04:05:15 BST 2004  Olly Betts <olly@survex.com>
33307         * backends/quartz/: Don't delete and reload the Btree_base just after
33308           saving it - instead reuse the existing Btree_base object.
33310 Fri Apr 30 02:41:50 BST 2004  Olly Betts <olly@survex.com>
33312         * backends/quartz/btree.cc: Clean up new code in Btree::commit()
33313           from last change.
33315 Thu Apr 29 22:41:05 BST 2004  Olly Betts <olly@survex.com>
33317         * backends/quartz/btree.cc,backends/quartz/quartz_table.cc: Don't
33318           close and reopen the database table file descriptors every time
33319           we flush changes.
33321 Thu Apr 29 22:40:36 BST 2004  Olly Betts <olly@survex.com>
33323         * docs/quartzdesign.html: Improved wording in a couple of places.
33325 Thu Apr 29 16:50:45 BST 2004  Olly Betts <olly@survex.com>
33327         * backends/quartz/bcursor.cc: Removed references to Btree::error
33328           from debug code since Btree::error was removed a week ago.
33330 Tue Apr 27 20:46:25 BST 2004  Olly Betts <olly@survex.com>
33332         * backends/quartz/btree.cc,configure.in: Added configure test for
33333           glibc, because otherwise we need to include a header before we
33334           can check for glibc in order to define something we should be
33335           defining before we include any headers!
33337 Tue Apr 27 17:45:51 BST 2004  Olly Betts <olly@survex.com>
33339         * backends/quartz/btree.cc: Only defined _XOPEN_SOURCE if __GLIBC__
33340           is defined.  OpenBSD seems to do the opposite to Linux and *disable*
33341           pread and pwrite if this is defined!
33343 Tue Apr 27 14:35:47 BST 2004  Olly Betts <olly@survex.com>
33345         * api/omenquire.cc,tests/api_db.cc: Need to adjust index by firstitem
33346           when indexing into items (bug#28).
33348 Mon Apr 26 23:45:15 BST 2004  Olly Betts <olly@survex.com>
33350         * PLATFORMS: Successfully built with gcc-3.5-20040327 snapshot on x86
33351           linux.
33353 Fri Apr 23 11:26:07 BST 2004  Olly Betts <olly@survex.com>
33355         * PLATFORMS: Successfully built and tested on arm linux.
33357 Fri Apr 23 11:24:23 BST 2004  Olly Betts <olly@survex.com>
33359         * tests/remotetest.cc: Use 127.0.0.1 instead of localhost so that
33360           tcpmatch1 doesn't fail just because the network setup is broken.
33362 Thu Apr 22 00:54:58 BST 2004  Olly Betts <olly@survex.com>
33364         * backends/quartz/: Stripped out Btree_errors as it's almost
33365           totally unused now.  Fixed up the last few uses.
33366         * backends/quartz/quartz_table.cc: Fixed another case where read
33367           and write Btrees should share fds.
33369 Wed Apr 21 02:51:08 BST 2004  Olly Betts <olly@survex.com>
33371         * backends/quartz/btree.cc: Check the return value of
33372           fdatasync()/fsync()/_commit() and raise an error.  They aren't
33373           likely to fail harmlessly.
33375 Wed Apr 21 02:45:28 BST 2004  Olly Betts <olly@survex.com>
33377         * backends/quartz/btree.cc,backends/quartz/btree.h,
33378           backends/quartz/quartz_table.cc: Share file descriptors between
33379           the read and write Btree objects so that a quartz WritableDatabase
33380           now uses 5 fds rather than 10.
33382 Wed Apr 21 02:37:38 BST 2004  Olly Betts <olly@survex.com>
33384         * docs/scalability.html: Removed the reference to the Quartz update
33385           bottleneck "currently being addressed for Xapian 0.8" as it's now
33386           been addressed!
33388 Wed Apr 21 00:24:08 BST 2004  Olly Betts <olly@survex.com>
33390         * backends/quartz/btree.cc: Corrected a comment.
33392 Mon Apr 19 14:42:06 BST 2004  Olly Betts <olly@survex.com>
33394         * NEWS: Final update for 0.8.0.
33396 Mon Apr 19 14:02:33 BST 2004  Olly Betts <olly@survex.com>
33398         * AUTHORS: Added people who've contributed build reports for the
33399           PLATFORMS file.
33401 Mon Apr 19 14:01:38 BST 2004  Olly Betts <olly@survex.com>
33403         * PLATFORMS: More updates from tinderbox and elsewhere.
33405 Sat Apr 17 02:24:11 BST 2004  Olly Betts <olly@survex.com>
33407         * PLATFORMS: Lots of updates from tinderbox and mailing list.
33409 Sat Apr 17 00:13:26 BST 2004  Olly Betts <olly@survex.com>
33411         * HACKING: Added notes about using "using", and pointers to a couple
33412           of useful C++ web resources.
33414 Mon Apr 12 00:56:04 BST 2004  Olly Betts <olly@survex.com>
33416         * Makefile.am,NEWS,configure.in,extra/Makefile.am: Version 0.8.0.
33418 Mon Apr 12 00:31:15 BST 2004  Olly Betts <olly@survex.com>
33420         * NEWS: Updated for 0.8.0.
33422 Sun Apr 11 21:18:47 BST 2004  Olly Betts <olly@survex.com>
33424         * extra/queryparser.yy,extra/queryparsertest.cc: Don't use a raw term
33425           for a term which starts with a digit.
33427 Sat Apr 10 17:20:23 BST 2004  Olly Betts <olly@survex.com>
33429         * AUTHORS: "Open Muscat" not "OmSee"; Updated the list of contributors
33430           (more work needed...)
33432 Sat Apr 10 16:41:28 BST 2004  Olly Betts <olly@survex.com>
33434         * m4/xapian.m4: Make XO_LIB_XAPIAN with no arguments do what most
33435           users will want: check for Xapian and fail if it's not found,
33436           or AC_SUBST XAPIAN_CXXFLAGS and XAPIAN_LIBS if it is.  Those
33437           will unusual needs can supply one or both arguments as at
33438           present.
33440 Sat Apr 10 15:00:28 BST 2004  Olly Betts <olly@survex.com>
33442         * docs/todo.xml: Updated.
33444 Sat Apr 10 00:32:07 BST 2004  Olly Betts <olly@survex.com>
33446         * PLATFORMS: Added success report for GCC 3.4 (prerelease).
33448 Sat Apr 10 00:27:58 BST 2004  Olly Betts <olly@survex.com>
33450         * extra/xapian/queryparser.h: Added doxygen documentation comments.
33452 Sat Apr 10 00:23:13 BST 2004  Olly Betts <olly@survex.com>
33454         * testsuite/testsuite.cc: Removed a now superfluous line.
33456 Sat Apr 10 00:21:15 BST 2004  Olly Betts <olly@survex.com>
33458         * testsuite/testsuite.cc: Give a more accurate message if valgrind
33459           spots a test doing something dodgy (e.g. free() of memory allocated
33460           with new).
33462 Thu Apr 08 17:22:20 BST 2004  Olly Betts <olly@survex.com>
33464         * net/.cvsignore: No longer need to ignore readquery.cc.
33466 Thu Apr 08 17:19:43 BST 2004  Olly Betts <olly@survex.com>
33468         * include/xapian/base.h: Note in doxygen comment why the ref_count
33469           is mutable.
33471 Thu Apr 08 15:33:16 BST 2004  Olly Betts <olly@survex.com>
33473         * testsuite/testsuite.cc: valgrinding code needs errno.h too.
33475 Thu Apr 08 15:28:44 BST 2004  Olly Betts <olly@survex.com>
33477         * include/xapian/enquire.h: Make Xapian::Weight::Weight() protected
33478           rather than private as we want to be able to call it from derived
33479           classes (GCC 3.4 flags this, other compilers seem to miss it).
33481 Tue Apr 06 03:32:39 BST 2004  Olly Betts <olly@survex.com>
33483         * net/omerr_string.cc,include/xapian/error.h,
33484           include/xapian/errortypes.h,include/xapian/output.h:
33485           Fixed some doxygen warnings.
33487 Mon Apr 05 17:21:06 BST 2004  Olly Betts <olly@survex.com>
33489         * README: There never was an Omsee release - the last BrightStation
33490           release was "OpenMuscat 0.4.1".
33492 Mon Apr 05 17:19:38 BST 2004  Olly Betts <olly@survex.com>
33494         * backends/quartz/quartz_database.cc,
33495           backends/quartz/quartz_database.h: Make the flush criterion 1000
33496           documents changed (added, removed, or replaced) as that seems to
33497           perform much better over a wide variety of document sizes.
33499 Thu Apr 01 01:04:17 BST 2004  Olly Betts <olly@survex.com>
33501         * tests/quartztest.cc: Fixed temporary directory used (a slash was
33502           missing).
33504 Thu Apr 01 00:39:59 BST 2004  Olly Betts <olly@survex.com>
33506         * docs/todo.xml: Updated.
33508 Fri Mar 26 22:33:30 GMT 2004  Olly Betts <olly@survex.com>
33510         * backends/quartz/quartz_database.cc: Fix problems with termfreq and
33511           collfreq in postlist getting out of step when a recently modified
33512           or deleted document is deleted or remodified.
33514 Fri Mar 26 12:31:24 GMT 2004  Olly Betts <olly@survex.com>
33516         * configure.in: Fixed check for --enable-runtime-pseudo-reloc.
33518 Fri Mar 26 12:31:00 GMT 2004  Olly Betts <olly@survex.com>
33520         * bin/Makefile.am: Removed spurious "-lz" from quartzdump_LDADD.
33522 Thu Mar 25 00:22:13 GMT 2004  Olly Betts <olly@survex.com>
33524         * bin/quartzcheck.cc: Check the structure with the postlist Btree
33525           as well as the Btree structures themselves.
33527 Sun Mar 21 00:00:59 GMT 2004  Olly Betts <olly@survex.com>
33529         * backends/quartz/quartz_table_manager.cc: Fix for building on mingw.
33531 Sat Mar 20 23:04:27 GMT 2004  Olly Betts <olly@survex.com>
33533         * include/xapian/positioniterator.h,include/xapian/postingiterator.h:
33534           Add doxygen comments in front of PostingIterator and
33535           PositionListIterator classes so that doxygen pulls out the
33536           existing documentation for their methods.
33538 Sat Mar 20 16:23:13 GMT 2004  Olly Betts <olly@survex.com>
33540         * configure.in,backends/quartz/quartz_table_manager.cc,common/utils.h:
33541           Added configure test for link() to avoid infinite loop on mingw!
33543 Thu Mar 18 12:20:18 GMT 2004  Olly Betts <olly@survex.com>
33545         * configure.in: Improved the --enable-runtime-pseudo-reloc check.
33547 Thu Mar 18 00:45:15 GMT 2004  Olly Betts <olly@survex.com>
33549         * bin/Makefile.am,tests/Makefile.am: Pass the magic mingw/cygwin flag
33550           when linking the programs in bin and tests.
33552 Thu Mar 18 00:33:22 GMT 2004  Olly Betts <olly@survex.com>
33554         * configure.in,xapian-config.in: mingw and cygwin both need
33555           -Wl,--enable-runtime-pseudo-reloc passing when linking.
33556           Arrange for xapian-config to include this, and check that
33557           the ld installed is a new enough version (or at least that
33558           it was at configure time).
33560 Tue Mar 16 01:40:43 GMT 2004  Olly Betts <olly@survex.com>
33562         * docs/matcherdesign.html: Merged in more details from a message I
33563           sent to the mailing list.
33565 Mon Mar 15 20:39:21 GMT 2004  Olly Betts <olly@survex.com>
33567         * tests/quartztest.cc: Fail the test if there's still a directory after
33568           rmdir(), or there isn't a directory after mkdir().  Close a
33569           QuartzDatabase or QuartzWritableDatabase before trying to overwrite
33570           it - cygwin doesn't allow use to delete open/locked files...
33572 Mon Mar 15 20:38:11 GMT 2004  Olly Betts <olly@survex.com>
33574         * backends/database.cc: Database::Internal::Internal::keep_alive()
33575           should be Database::Internal::keep_alive().
33577 Mon Mar 15 17:20:58 GMT 2004  Olly Betts <olly@survex.com>
33579         * include/xapian/base.h: Returning a void result makes SGI's compiler
33580           complain - don't!
33582 Mon Mar 15 14:34:44 GMT 2004  Olly Betts <olly@survex.com>
33584         * common/omdebug.cc: Only use O_SYNC (on the debug log) if we have it.
33586 Sun Mar 14 17:48:52 GMT 2004  Olly Betts <olly@survex.com>
33588         * tests/runtest.in: Mark with @configure_input@.
33590 Thu Mar 11 23:53:43 GMT 2004  Olly Betts <olly@survex.com>
33592         * common/database.h,common/termlist.h,include/xapian/database.h,
33593           include/xapian/enquire.h: Attempted fixes for warnings given by
33594           SGI's MIPSpro C++ compiler.
33596 Thu Mar 11 23:51:10 GMT 2004  Olly Betts <olly@survex.com>
33598         * configure.in: GCC 2.95 supported -Wno-long-long and is our minimum
33599           recommended version, so unconditionally use -Wno-long-long with
33600           GCC, and don't test for it on other compilers (the test incorrectly
33601           decided to use it with SGI's compiler leading to a warning for
33602           every file compiled).
33604 Thu Mar 11 17:29:24 GMT 2004  Olly Betts <olly@survex.com>
33606         * docs/intro_ir.html: Added a link to "Information Retrieval"
33607           by Keith v.R. which can be read on his website!
33609 Thu Mar 11 17:12:35 GMT 2004  Olly Betts <olly@survex.com>
33611         * PLATFORMS: Added IRIX success reports from Jim Lynch.
33613 Thu Mar 11 12:17:21 GMT 2004  Olly Betts <olly@survex.com>
33615         * backends/quartz/quartz_database.cc: Fixes for Sun C++'s fussy
33616           template matching.
33618 Thu Mar 11 12:12:46 GMT 2004  Olly Betts <olly@survex.com>
33620         * include/xapian/enquire.h: Another friend fix for Sun's C++.
33622 Thu Mar 11 01:56:19 GMT 2004  Olly Betts <olly@survex.com>
33624         * include/xapian/query.h: Another fix for Sun's C++.
33626 Tue Mar 09 21:02:08 GMT 2004  Olly Betts <olly@survex.com>
33628         * include/xapian/document.h: string -> std::string.
33630 Tue Mar 09 19:04:48 GMT 2004  Olly Betts <olly@survex.com>
33632         * api/omdocument.cc,common/document.h,include/xapian/document.h,
33633           tests/api_db.cc,tests/api_posdb.cc: Renamed
33634           Xapian::Document::add_term_nopos to Xapian::Document::add_term
33635           (with forwarding wrapper method for compatibility with existing
33636           code).
33638 Sat Mar 06 02:32:58 GMT 2004  Olly Betts <olly@survex.com>
33640         * docs/: Updated the quickstart tutorial and removed the warning
33641           that "this document isn't up to date".
33643 Sat Mar 06 01:56:17 GMT 2004  Olly Betts <olly@survex.com>
33645         * api/omenquire.cc: Another tweak for Sun's C++ compiler.
33647 Sat Mar 06 01:31:29 GMT 2004  Olly Betts <olly@survex.com>
33649         * common/omenquireinternal.h: Tweaked friend class declarations a
33650           bit so Sun's C++ compiler can cope.
33652 Thu Mar 04 23:58:17 GMT 2004  Olly Betts <olly@survex.com>
33654         * PLATFORMS: Updated with results from the tinderbox.
33656 Thu Mar 04 23:29:28 GMT 2004  Olly Betts <olly@survex.com>
33658         * tests/btreetest.cc,tests/quartztest.cc: NetBSD mkdir() doesn't cope
33659           with a trailing / on the path - fixed our code to cope with this.
33661 Wed Mar 03 19:14:09 GMT 2004  Olly Betts <olly@survex.com>
33663         * docs/todo.xml: Updated.
33665 Fri Feb 13 23:56:44 GMT 2004  Olly Betts <olly@survex.com>
33667         * api/omquery.cc,tests/api_nodb.cc: Throw error when an empty query is
33668           used to build in the binary operator Query ctor.  Added regression
33669           test.
33671 Fri Feb 13 15:08:09 GMT 2004  Olly Betts <olly@survex.com>
33673         * HACKING: XAPIAN_DEBUG_TYPES should be XAPIAN_DEBUG_FLAGS.
33675 Sat Feb 07 14:26:54 GMT 2004  Olly Betts <olly@survex.com>
33677         * docs/queryparser.html: Grammar fixes.
33679 Fri Jan 16 02:06:53 GMT 2004  Olly Betts <olly@survex.com>
33681         * backends/quartz/quartz_postlist.cc: Fixed bug flagged up by deldoc4.
33683 Thu Jan 15 01:00:48 GMT 2004  Olly Betts <olly@survex.com>
33685         * backends/quartz/quartz_termlist.cc: Use Xapian::doccount instead of
33686           unsigned int in set_entries().
33688 Thu Jan 15 00:56:47 GMT 2004  Olly Betts <olly@survex.com>
33690         * backends/quartz/btree.cc,backends/quartz/btree.h,
33691           testsuite/btreecheck.cc: Made some static functions into static
33692           member functions of Btree so we can avoid duplicating code in
33693           btreecheck.cc.  Also tweaked compare_keys to use memcmp and
33694           special case when the keys are the same length (each of these
33695           changes gives a very small speed gain).
33697 Thu Jan 15 00:54:47 GMT 2004  Olly Betts <olly@survex.com>
33699         * api/maptermlist.h: Removed a FIXME which already had been fixed.
33700           Removed a couple of asserts from a function which should never be
33701           called (and so had `Assert(false)' anyway).
33703 Mon Jan 12 00:32:37 GMT 2004  Olly Betts <olly@survex.com>
33705         * bin/quartzdump.cc: Backslash escape space and backslash in output
33706           rather than hex encoding them; renamed start-term and end-term to
33707           start-key and end-key; removed rather pointless "Calling next"
33708           message; if there's an error, write it to stderr not stdout, and
33709           exit with return code 1.
33711 Sun Jan 11 03:23:17 GMT 2004  Olly Betts <olly@survex.com>
33713         * backends/quartz/quartz_termlist.cc: When possible, pack the wdf into
33714           the same byte as the reuse length - doing so typically makes the
33715           termlist 14% smaller!  This change is backward compatible.
33717 Sat Jan 10 03:04:22 GMT 2004  Olly Betts <olly@survex.com>
33719         * backends/quartz/quartz_postlist.cc: Fixed bug in new postlist
33720           chunking code.
33722 Sat Jan 10 00:45:04 GMT 2004  Olly Betts <olly@survex.com>
33724         * backends/quartz/quartz_termlist.cc: Removed unused
33725           OLD_TERMLIST_FORMAT code.
33727 Fri Jan 09 21:54:34 GMT 2004  Olly Betts <olly@survex.com>
33729         * backends/quartz/quartz_postlist.cc: Fix incorrect code which just
33730           happens to build and work with GCC 2.95.
33732 Fri Jan 09 14:40:00 GMT 2004  Olly Betts <olly@survex.com>
33734         * backends/quartz/quartz_postlist.cc: Tidied the initial call to
33735           get_chunk() out of the merge loop (gives ~4% speedup!)
33737 Fri Jan 09 01:31:05 GMT 2004  Olly Betts <olly@survex.com>
33739         * backends/quartz/quartz_postlist.cc: Implement chunking of postlists
33740           once again.
33742 Thu Jan 08 21:06:37 GMT 2004  Olly Betts <olly@survex.com>
33744         * backends/quartz/quartz_postlist.cc: Shortcut the very common case
33745           of appending to a posting list (which happens when we're just
33746           adding new documents).  Declare small helper functions as "inline".
33748 Wed Jan 07 23:21:59 GMT 2004  Olly Betts <olly@survex.com>
33750         * backends/quartz/quartz_database.cc: Set threshold for flushing to
33751           a saner value for the value we are now using.
33752         * backends/quartz/: Use freq_deltas to update the stats in the first
33753           chunk of each postlist.
33755 Mon Jan 05 16:00:07 GMT 2004  Olly Betts <olly@survex.com>
33757         * include/xapian/enquire.h: Made the TradWeight constructor explicit.
33758           This is technically an API change as before you could pass a
33759           double where a Xapian::Weight was required - now you must pass
33760           Xapian::TradWeight(2.0) instead of 2.0.  That seems desirable, and
33761           it's unlikely any existing code will be affected.
33763 Mon Jan 05 15:08:26 GMT 2004  Olly Betts <olly@survex.com>
33765         * include/xapian/: Added "explicit" qualifier to internal ctors
33766           which take a single parameter.
33768 Mon Jan 05 15:04:12 GMT 2004  Olly Betts <olly@survex.com>
33770         * include/xapian/base.h: Assigning a normal pointer to a RefCntPtr no
33771           longer creates a temporary RefCntPtr from it.
33773 Thu Dec 25 05:49:03 GMT 2003  Olly Betts <olly@survex.com>
33775         * backends/quartz/quartz_postlist.cc: Changed to merge a batch of
33776           changes into a posting list in one pass.
33778 Thu Dec 25 05:48:09 GMT 2003  Olly Betts <olly@survex.com>
33780         * docs/quartzdesign.html: Some minor improvements.
33782 Thu Dec 25 05:39:57 GMT 2003  Olly Betts <olly@survex.com>
33784         * tests/api_db.cc: Check returned docids are the expected values in a
33785           couple more cases.  Improved wording of a comment.
33787 Thu Dec 25 05:38:43 GMT 2003  Olly Betts <olly@survex.com>
33789         * backends/quartz/quartz_utils.h: Updated explanation of string
33790           encoding.
33792 Thu Dec 25 05:37:36 GMT 2003  Olly Betts <olly@survex.com>
33794         * backends/quartz/quartz_values.cc: Fixed problem with dereferencing
33795           a pointer to the end of a string in debug output.
33797 Sun Dec 21 23:35:49 GMT 2003  Olly Betts <olly@survex.com>
33799         * backends/quartz/quartz_postlist.cc: Refactor recently relocated code
33800           to reduce duplication.
33802 Sun Dec 21 21:44:07 GMT 2003  Olly Betts <olly@survex.com>
33804         * backends/quartz/quartz_postlist.cc: Renamed
33805           skip_and_check_tname_in_key() to check_tname_in_key() as it doesn't
33806           do any sort of skipping!
33808 Sun Dec 21 14:54:49 GMT 2003  Olly Betts <olly@survex.com>
33810         * backends/quartz/quartz_postlist.cc,backends/quartz/quartz_postlist.h,
33811           tests/quartztest.cc: Subsumed QuartzPostList::add_entry and
33812           QuartzPostList::delete_entry into QuartzPostList::merge_changes.
33814 Sun Dec 21 03:21:42 GMT 2003  Olly Betts <olly@survex.com>
33816         * backends/quartz/quartz_database.cc,
33817           backends/quartz/quartz_postlist.cc,
33818           backends/quartz/quartz_postlist.h: Move merging on postlist changes
33819           into QuartzPostList in preparation for an efficient
33820           reimplementation.
33822 Sun Dec 21 01:47:07 GMT 2003  Olly Betts <olly@survex.com>
33824         * backends/quartz/quartz_postlist.h,
33825           backends/quartz/quartz_table_entries.h: Fixed typos and incorrect
33826           comments.
33828 Sat Dec 20 22:11:26 GMT 2003  Olly Betts <olly@survex.com>
33830         * backends/quartz/: Removed several needless inclusions of
33831           quartz_table_entries.h.
33833 Sat Dec 20 16:31:46 GMT 2003  Olly Betts <olly@survex.com>
33835         * backends/quartz/,docs/quartzdesign.html: Removed all the quartz
33836           lexicon code and docs.  It's been disabled for ages, and we've
33837           not missed it.
33839 Sat Dec 20 01:21:47 GMT 2003  Olly Betts <olly@survex.com>
33841         * backends/quartz/quartz_database.h: Added doxygen comments for the
33842           QuartzWritableDatabase members we use to buffer changes.
33844 Sat Dec 20 01:19:10 GMT 2003  Olly Betts <olly@survex.com>
33846         * backends/quartz/quartz_database.cc: Trigger autoflush on
33847           totlen_added + totlen_removed rather than specially tracking the
33848           number of document add/delete/replace operations.
33850 Fri Dec 19 22:51:26 GMT 2003  Olly Betts <olly@survex.com>
33852         * backends/quartz/: Buffer up changes to the postlists and apply them
33853           all at once (at present they're applied inefficiently, but this is
33854           change enables us to apply them with an efficient merge).
33855         * tests/api_db.cc,tests/quartztest.cc: Added a couple of tests, and
33856           commented out some test lines which fail in debug builds.
33858 Sun Dec 14 03:38:55 GMT 2003  Olly Betts <olly@survex.com>
33860         * common/omdebug.cc: Open debug log with flag O_WRONLY so that we can
33861           actually write to it!
33863 Mon Dec 08 01:53:24 GMT 2003  Olly Betts <olly@survex.com>
33865         * HACKING: Update to mention that building from CVS requires
33866           ./configure --enable-maintainer-mode (or use bootstrap).
33868 Mon Dec 01 19:03:00 GMT 2003  Olly Betts <olly@survex.com>
33870         * configure.in: Fixed the "fixed" valgrind test.
33872 Sun Nov 30 23:42:52 GMT 2003  Olly Betts <olly@survex.com>
33874         * configure.in,testsuite/testsuite.cc: Fix test for valgrind - it
33875           wasn't working correctly when valgrind was installed but was too
33876           a version to support VALGRIND_COUNT_ERRORS and VALGRIND_COUNT_LEAKS.
33878 Wed Nov 26 16:31:19 GMT 2003  Olly Betts <olly@survex.com>
33880         * Makefile.am,extra/Makefile.am: Updated libtool -version-info
33881           parameters for 0.7.5.
33883 Wed Nov 26 15:32:45 GMT 2003  Olly Betts <olly@survex.com>
33885         * NEWS,PLATFORMS,configure.in: Version 0.7.5.
33887 Wed Nov 26 15:31:56 GMT 2003  Olly Betts <olly@survex.com>
33889         * extra/queryparser.yy: Special case stemming language "none".
33891 Tue Nov 25 04:37:50 GMT 2003  Olly Betts <olly@survex.com>
33893         * api/ompositionlistiterator.cc,api/ompostlistiterator.cc,
33894           include/xapian/positioniterator.h,include/xapian/postingiterator.h,
33895           tests/api_db.cc: Added missing default ctors for PostingIterator and
33896           PositionIterator classes; fixed PositionIterator assignment operator.
33898 Tue Nov 25 03:40:11 GMT 2003  Olly Betts <olly@survex.com>
33900         * tests/btreetest.cc: Fixed 2 compiler warnings.
33902 Tue Nov 25 02:47:16 GMT 2003  Olly Betts <olly@survex.com>
33904         * common/,include/xapian/: Fixed incorrect doxygen comments which
33905           resulted in some missing text in the collated API and internal
33906           classes documentation.
33908 Fri Nov 21 03:23:57 GMT 2003  Olly Betts <olly@survex.com>
33910         * Makefile.am,include/xapian/termiterator.h,api/omtermlistiterator.cc:
33911           TermIterator::TermIterator() fix which actually works!
33913 Fri Nov 21 01:14:23 GMT 2003  Olly Betts <olly@survex.com>
33915         * HACKING,configure.in,docs/Makefile.am,extra/Makefile.am: Change to
33916           using AM_MAINTAINER_MODE.  If you're doing development work on
33917           Xapian, you should configure with "--enable-maintainer-mode" and
33918           ideally use GNU make.
33920 Fri Nov 21 01:13:25 GMT 2003  Olly Betts <olly@survex.com>
33922         * include/xapian/termiterator.h,tests/api_nodb.cc: Added TermIterator
33923           default ctor which had disappeared somehow.  Added regression test.
33925 Thu Nov 20 03:19:37 GMT 2003  Olly Betts <olly@survex.com>
33927         * configure.in: Fixed test for fdatasync to work (I suspect a change
33928           in a recent autoconf broke it as it relied on autoconf internal
33929           naming).
33931 Tue Nov 18 17:53:29 GMT 2003  Olly Betts <olly@survex.com>
33933         * extra/Makefile.am: Tweaked workaround for FreeBSD make in VPATH
33934           builds.
33936 Tue Nov 18 17:53:01 GMT 2003  Olly Betts <olly@survex.com>
33938         * extra/queryparsertest.cc: Added another testcase.
33940 Tue Nov 18 17:37:20 GMT 2003  Olly Betts <olly@survex.com>
33942         * docs/: Added first cut of documentation for Xapian::QueryParser
33943           query syntax.
33944         * docs/scalability.html: Fixed typo.
33946 Fri Oct 31 18:17:13 GMT 2003  Olly Betts <olly@survex.com>
33948         * extra/queryparser.yy,extra/queryparsertest.cc: Added support for
33949           term prefixes on phrases and expressions (e.g. author:(twain OR poe)
33950           subject:"space flight").
33952 Tue Oct 28 15:03:01 GMT 2003  Olly Betts <olly@survex.com>
33954         * api/omenquire.cc: Added FIXME comment.
33956 Tue Oct 28 15:01:14 GMT 2003  Olly Betts <olly@survex.com>
33958         * docs/todo.xml: Removed Java from list of language bindings we'd
33959           like to support, as we should have up-to-date Java bindings soon.
33961 Sun Oct 26 20:18:24 GMT 2003  Olly Betts <olly@survex.com>
33963         * bin/quartzcompact.cc: Fix the name that the meta file gets copied
33964           to (was /path/to/dbdirmeta rather than /path/to/dbdir/meta).
33966 Tue Oct 21 22:26:51 BST 2003  Olly Betts <olly@survex.com>
33968         * extra/Makefile.am: Backed out previous change - the original rule
33969           does work, but the build machine had a generated file which stopped
33970           the symlink being generated.
33972 Tue Oct 21 22:14:22 BST 2003  Olly Betts <olly@survex.com>
33974         * extra/Makefile.am: Tweaked rule to symlink queryparser.cc.
33976 Tue Oct 21 17:31:10 BST 2003  Olly Betts <olly@survex.com>
33978         * extra/Makefile.am: Added rule to symlink queryparser.cc from source
33979           tree to build tree - otherwise FreeBSD's make insists on
33980           regenerating it...
33982 Wed Oct 08 14:04:44 BST 2003  Olly Betts <olly@survex.com>
33984         * backends/quartz/.cvsignore,tests/Makefile.am,testsuite/.cvsignore:
33985           Updated to reflect move of libbtreecheck.la from backends/quartz
33986           to testsuite.
33988 Wed Oct 08 13:22:08 BST 2003  Olly Betts <olly@survex.com>
33990         * backends/quartz/btree.cc: Don't pass mode argument to open when we
33991           aren't specifying O_CREAT.
33993 Thu Oct 02 15:29:38 BST 2003  Olly Betts <olly@survex.com>
33995         * NEWS: Another entry for omega for 0.7.4.
33997 Thu Oct 02 14:57:25 BST 2003  Olly Betts <olly@survex.com>
33999         * configure.in,extra/Makefile.am: Version 0.7.4.
34001 Thu Oct 02 14:56:36 BST 2003  Olly Betts <olly@survex.com>
34003         * HACKING: Improved wording in a few places.
34005 Thu Oct 02 14:39:49 BST 2003  Olly Betts <olly@survex.com>
34007         * NEWS: Updated.
34009 Thu Oct 02 13:35:46 BST 2003  Olly Betts <olly@survex.com>
34011         * xapian.spec.in: Don't hardcode the shared library versioning info.
34013 Wed Oct 01 13:51:15 BST 2003  Olly Betts <olly@survex.com>
34015         * PLATFORMS: Updated - Solaris 8 + Sun Workshop C++ doesn't actually
34016           pass "make check" (I forgot the tinderbox builds omega before "make
34017           check").
34019 Tue Sep 30 21:39:20 BST 2003  Olly Betts <olly@survex.com>
34021         * configure.in: Another stab at fixing the test for -lsocket.
34023 Tue Sep 30 18:29:31 BST 2003  Olly Betts <olly@survex.com>
34025         * configure.in: Quote arguments to test in a couple of places.
34027 Tue Sep 30 11:20:09 BST 2003  Olly Betts <olly@survex.com>
34029         * configure.in: Fixed test for -lsocket.
34031 Tue Sep 30 10:17:09 BST 2003  Olly Betts <olly@survex.com>
34033         * PLATFORMS: Updated - Solaris 8 + Sun Workshop C++ builds and passes
34034           "make check" (but Omega fails to build).
34036 Mon Sep 29 00:41:19 BST 2003  Olly Betts <olly@survex.com>
34038         * configure.in: Fixed dependency libs for libxapian.
34040 Sun Sep 28 23:55:49 BST 2003  Olly Betts <olly@survex.com>
34042         * Makefile.am,backends/quartz/Makefile.am,
34043           backends/quartz/btreecheck.cc,backends/quartz/btreecheck.h,
34044           bin/Makefile.am,testsuite/Makefile.am,testsuite/btreecheck.cc,
34045           testsuite/btreecheck.h: libbtreecheck.la now has an explicit
34046           dependency on libxapian.la.
34048 Sun Sep 28 17:29:55 BST 2003  Olly Betts <olly@survex.com>
34050         * Makefile.am,configure.in: Tell libtool about any libraries which
34051           libxapian needs to depend on.
34053 Fri Sep 26 09:39:29 BST 2003  Olly Betts <olly@survex.com>
34055         * bin/Makefile.am: Swap order of libbtreecheck.la and libxapian.la
34056           when linking quartzcheck to see if that gets it to work with
34057           Sun's CC.
34059 Thu Sep 25 17:25:17 BST 2003  Olly Betts <olly@survex.com>
34061         * xapian-config.in: Fixed stupid mistake in previous check-in.
34063 Thu Sep 25 16:50:00 BST 2003  Olly Betts <olly@survex.com>
34065         * xapian-config.in: Link with libxapianqueryparser before libxapian,
34066           since that's the dependency order.
34068 Thu Sep 25 16:43:20 BST 2003  Olly Betts <olly@survex.com>
34070         * include/om/om.h: Updated comment about why we `#include <iostream>'.
34072 Thu Sep 25 13:13:37 BST 2003  Olly Betts <olly@survex.com>
34074         * api/omqueryinternal.cc,backends/database.cc,common/omdebug.cc,
34075           common/omstringstream.h,include/xapian/output.h: Removed or replaced
34076           uses of <iostream> and <iosfwd> - we don't need or want the library
34077           to pull in cin and friends.
34079 Thu Sep 25 13:12:31 BST 2003  Olly Betts <olly@survex.com>
34081         * Makefile.am: Improved several comments.
34083 Thu Sep 25 11:57:03 BST 2003  Olly Betts <olly@survex.com>
34085         * api/omqueryinternal.cc: Removed `#include <iostream>' left over from
34086           debugging; changed to `using namespace std;'.
34088 Mon Sep 15 00:41:10 BST 2003  Olly Betts <olly@survex.com>
34090         * extra/queryparser.yy: Fixed to build with Sun's C++ compiler.
34092 Thu Sep 11 03:35:29 BST 2003  Olly Betts <olly@survex.com>
34094         * dummy.c,dummy.cc,Makefile.am: Change the default file to be C++ so
34095           that automake tells libtool that this is a C++ library.
34096         * Makefile.am: Pass -no-undefined to libtool so that it will build
34097           a DLL on MS Windows.
34099 Wed Sep 10 02:53:46 BST 2003  Olly Betts <olly@survex.com>
34101         * docs/scalability.html: Fixed oops (32GB should be 32TB);  Added
34102           note about Linux 2.4 and ext2 filesize limits.
34104 Tue Sep 09 03:36:05 BST 2003  Olly Betts <olly@survex.com>
34106         * backends/quartz/quartz_database.cc: don't start the document's
34107           TermIterator from scratch on every iteration in replace_document().
34108           Should be a small performance win.
34110 Sun Sep 07 22:17:27 BST 2003  Olly Betts <olly@survex.com>
34112         * configure.in: Fixed check for socketpair - we were automatically
34113           disabling the remote backend on platforms where socketpair is
34114           in libsocket (such as Solaris).
34116 Sun Sep 07 19:56:57 BST 2003  Olly Betts <olly@survex.com>
34118         * PLATFORMS: Added success report for cygwin from Eric B. Ridge.
34120 Sun Sep 07 03:53:48 BST 2003  Olly Betts <olly@survex.com>
34122         * testsuite/testsuite.cc: Also need to rerun test if it "probably
34123           leaked".
34125 Sun Sep 07 03:51:37 BST 2003  Olly Betts <olly@survex.com>
34127         * tests/api_db.cc: Use x & (x - 1) trick to check for x being a power
34128           of 2, rather than an elaborate loop with shifting; use Xapian::docid
34129           rather than "int" and "unsigned int".
34131 Sun Sep 07 02:24:06 BST 2003  Olly Betts <olly@survex.com>
34133         * api/omenquire.cc: Fixed small memory leak if
34134           Xapian::Enquire::set_query() is called more than once.
34136 Sun Sep 07 02:12:47 BST 2003  Olly Betts <olly@survex.com>
34138         * common/omenquireinternal.h,include/xapian/enquire.h: Fixed
34139           Xapian::ESet to have reference counted internals
34140         * Makefile.am: bumped libxapian version-info to 1:0:0 because of this.
34142 Sun Sep 07 02:09:50 BST 2003  Olly Betts <olly@survex.com>
34144         * testsuite/testsuite.cc: Delete any buffered test output before
34145           asking valgrind to check for leaks, as otherwise the buffered
34146           output may be reported as a leak; also fixed |= to != in several
34147           places - a cosmetic bug which lead to extra newlines after test
34148           output.
34150 Sun Sep 07 00:09:32 BST 2003  Olly Betts <olly@survex.com>
34152         * testsuite/testsuite.cc: Actually open temporary file for valgrind
34153           to log to.
34155 Sat Sep 06 20:50:58 BST 2003  Olly Betts <olly@survex.com>
34157         * configure.in,testsuite/testsuite.cc: Fixed up detection of valgrind
34158           and testsuite code to use it.
34160 Sat Sep 06 20:48:17 BST 2003  Olly Betts <olly@survex.com>
34162         * tests/btreetest.cc: Reinstated non-superfluous `/'s which I had
34163           overeagerly removed!
34165 Sat Sep 06 17:28:00 BST 2003  Olly Betts <olly@survex.com>
34167         * matcher/Makefile.am: Ship networkmatch.cc even if "make dist" is run
34168           from a tree with the remote backend disabled.
34170 Thu Aug 28 00:01:22 BST 2003  Olly Betts <olly@survex.com>
34172         * tests/btreetest.cc: Removed superfluous `/'s from constructed paths.
34174 Fri Aug 15 15:12:24 BST 2003  Olly Betts <olly@survex.com>
34176         * PLATFORMS: Updated with current testsuite results for mingw build.
34178 Fri Aug 15 15:10:59 BST 2003  Olly Betts <olly@survex.com>
34180         * backends/quartz/btree.cc: Use O_BINARY for database I/O if it
34181           exists.
34183 Fri Aug 15 15:10:30 BST 2003  Olly Betts <olly@survex.com>
34185         * common/utils.h: mkdir() only takes one argument on mingw.
34187 Fri Aug 15 01:26:22 BST 2003  Olly Betts <olly@survex.com>
34189         * common/utils.h,testsuite/backendmanager.cc: Touch file using
34190           open() rather than system().
34192 Fri Aug 15 01:06:06 BST 2003  Olly Betts <olly@survex.com>
34194         * common/utils.h: Fixed parameter name of system from "filename" to
34195           "command" (cosmetic change).
34197 Thu Aug 14 22:31:23 BST 2003  Olly Betts <olly@survex.com>
34199         * net/progclient.cc: Tidied a little.
34201 Tue Aug 12 12:50:19 BST 2003  Olly Betts <olly@survex.com>
34203         * backends/quartz/quartz_database.cc: Pass 0 for the lexicon/postlist
34204           table when creating a termlist just to find the doc length.
34206 Tue Aug 12 02:08:50 BST 2003  Olly Betts <olly@survex.com>
34208         * api/maptermlist.h,api/omdocument.cc,common/documentterm.h:
34209           Removed unused OmDocumentTerm::termfreq member variable.
34211 Tue Aug 12 00:53:02 BST 2003  Olly Betts <olly@survex.com>
34213         * api/omdocument.cc,common/documentterm.h: OmDocumentTerm ctor now
34214           takes wdf, and replaced set_wdf() with inc_wdf() and dec_wdf().
34216 Mon Aug 11 16:11:26 BST 2003  Olly Betts <olly@survex.com>
34218         * backends/quartz/quartz_table_entries.cc: Removed rather unnecessary
34219           use of const_cast.
34221 Mon Aug 11 16:11:05 BST 2003  Olly Betts <olly@survex.com>
34223         * backends/quartz/quartz_table.cc: Removed unused variable.
34225 Mon Aug 11 16:09:57 BST 2003  Olly Betts <olly@survex.com>
34227         * backends/quartz/quartz_postlist.cc: Fixed typo in comment.
34229 Mon Aug 11 15:51:20 BST 2003  Olly Betts <olly@survex.com>
34231         * tests/quartztest.cc: adddoc2 now checks that there weren't any extra
34232           values created.
34234 Mon Aug 11 12:55:49 BST 2003  Olly Betts <olly@survex.com>
34236         * configure.in: Sorted out tests for gethostbyname and gethostbyaddr
34237           using standard autoconf macros.
34239 Mon Aug 11 12:05:13 BST 2003  Olly Betts <olly@survex.com>
34241         * common/match.h,matcher/: Removed unused open_document() method from
34242           SubMatch and derived classes; calls made by the matcher to
34243           Document::Internal::open_document() now use the lazy flag provided
34244           for precisely this purpose, but apparently never used - this should
34245           give quite a speed boost to any matcher options which use values
34246           (e.g. sort, collapse).
34248 Sun Aug 10 02:25:59 BST 2003  Olly Betts <olly@survex.com>
34250         * PLATFORMS: Out of curiosity, I tried to build with a Linux->DJGPP
34251           cross-compiler I had to hand.  It built (just had to disable the
34252           remote backend if socketpair isn't found and add the workaround for
34253           not having snprintf).
34255 Sun Aug 10 01:38:17 BST 2003  Olly Betts <olly@survex.com>
34257         * common/utils.cc: Fixed to compile if snprintf isn't available.
34259 Sun Aug 10 01:37:44 BST 2003  Olly Betts <olly@survex.com>
34261         * backends/quartz/btree.cc: Fixed "initialisation reordered" warning.
34263 Sun Aug 10 01:26:58 BST 2003  Olly Betts <olly@survex.com>
34265         * acinclude.m4: Updated in line with previous change.
34267 Sun Aug 10 01:00:08 BST 2003  Olly Betts <olly@survex.com>
34269         * configure.in: If fork is found, but socketpair isn't, automatically
34270           disable the remote backend rather than configure dying with an
34271           error.
34272         * autoconf/: Removed various unused autoconf macros.
34274 Sat Aug 09 23:57:44 BST 2003  Olly Betts <olly@survex.com>
34276         * backends/quartz/btree.h: Made "overwritten" protected.
34278 Sat Aug 09 23:45:26 BST 2003  Olly Betts <olly@survex.com>
34280         * docs/quartzdesign.html: Wrapped an overlong line.
34282 Sat Aug 09 23:31:30 BST 2003  Olly Betts <olly@survex.com>
34284         * backends/quartz/btree.cc,backends/quartz/btree.h,
34285           backends/quartz/quartz_table.cc,docs/quartzdesign.html:
34286           Improved class Btree's encapsulation.
34288 Sat Aug 09 22:30:13 BST 2003  Olly Betts <olly@survex.com>
34290         * NEWS: Fixed a few typos.
34292 Sat Aug 09 22:29:52 BST 2003  Olly Betts <olly@survex.com>
34294         * PLATFORMS: Updated with results from the Tinderbox.
34296 Sat Aug 09 22:19:12 BST 2003  Fabrice Colin
34298         * xapian.spec.in: Updated RPM packaging to reflect changes in 0.7.3.
34300 Fri Aug 08 01:38:40 BST 2003  Olly Betts <olly@survex.com>
34302         * Makefile.am,configure.in,extra/Makefile.am: Version 0.7.3.
34304 Fri Aug 08 01:35:04 BST 2003  Olly Betts <olly@survex.com>
34306         * NEWS: Updated.
34308 Fri Aug 08 01:34:29 BST 2003  Olly Betts <olly@survex.com>
34310         * PLATFORMS: Updated with more tinderbox results.
34312 Wed Aug 06 16:27:34 BST 2003  Olly Betts <olly@survex.com>
34314         * HACKING: Noted that libtool 1.5 is the first version to actually
34315           support linking C++ libraries properly.
34317 Wed Aug 06 16:25:15 BST 2003  Olly Betts <olly@survex.com>
34319         * api/omenquire.cc,net/socketcommon.cc,common/omenquireinternal.h:
34320           Moved rset serialisation into a method of RSet::Internal, so
34321           omrset_to_string() is now just glue code.  This eliminates the
34322           need for it to be a friend of RSet::Internal which Sun's C++
34323           compiler didn't seem to be able to cope with.
34325 Wed Aug 06 01:57:11 BST 2003  Olly Betts <olly@survex.com>
34327         * api/omenquire.cc: Applied patch from Olivier Galibert to fix
34328           MSetIterator::get_document() when get_mset() was called with
34329           first != 0.
34330         * tests/api_db.cc: Added regression test (msetiterator3).
34332 Mon Aug 04 12:40:25 BST 2003  Olly Betts <olly@survex.com>
34334         * languages/Makefile.am: Fixed compilation for compilers other than
34335           GCC.
34337 Wed Jul 30 17:03:14 BST 2003  Olly Betts <olly@survex.com>
34339         * common/getopt.h: Another try - the previous one failed on FreeBSD.
34341 Wed Jul 30 15:07:58 BST 2003  Olly Betts <olly@survex.com>
34343         * common/getopt.h: Another iteration of the getopt C++ prototype fix
34344           as the previous one failed on Solaris.
34346 Wed Jul 30 02:38:47 BST 2003  Olly Betts <olly@survex.com>
34348         * testsuite/backendmanager.cc: Fixed breakage caused by remotetest
34349           cleanup.
34351 Tue Jul 29 13:22:20 BST 2003  Olly Betts <olly@survex.com>
34353         * tests/remotetest.cc: Cleaned up uses of
34354           BackendManager::get_database() to pass a string rather than a vector
34355           with one string in.
34357 Tue Jul 29 11:58:21 BST 2003  Olly Betts <olly@survex.com>
34359         * testsuite/testutils.cc: Added output of const vector<unsigned int>
34360           for platforms which use our internal stringstream implementation.
34362 Tue Jul 29 11:42:54 BST 2003  Olly Betts <olly@survex.com>
34364         * PLATFORMS: Updated with results from the tinderbox.
34366 Tue Jul 29 01:21:53 BST 2003  Olly Betts <olly@survex.com>
34368         * testsuite/testsuite.cc,testsuite/testsuite.h: Only use \r in test
34369           output if the output is a tty.
34371 Mon Jul 28 23:56:10 BST 2003  Olly Betts <olly@survex.com>
34373         * xapian-config.in: Fixed fix of --cxxflags for uninstalled VPATH
34374           builds.
34376 Mon Jul 28 23:37:15 BST 2003  Olly Betts <olly@survex.com>
34378         * testsuite/backendmanager.cc: Increased default timeout used by
34379           tests running on the remote backend from 10 seconds to 5 minutes
34380           to avoid tests failing just because the machine running them is
34381           slow and/or busy.
34383 Mon Jul 28 15:41:12 BST 2003  Olly Betts <olly@survex.com>
34385         * testsuite/testutils.h: Fixed check for broken exception handling
34386           - we were getting "Xapian::" prefixed to one version and not on the
34387           other.
34389 Mon Jul 28 15:34:54 BST 2003  Olly Betts <olly@survex.com>
34391         * tests/runtest.in: Set srcdir if it isn't already to make it easy
34392           to manually run test programs from a VPATH build.
34394 Mon Jul 28 10:38:04 BST 2003  Olly Betts <olly@survex.com>
34396         * xapian-config.in: Fixed --cxxflags for uninstalled VPATH builds.
34398 Mon Jul 28 10:37:17 BST 2003  Olly Betts <olly@survex.com>
34400         * PLATFORMS: Updated FreeBSD success report.
34402 Sun Jul 27 16:01:25 BST 2003  Olly Betts <olly@survex.com>
34404         * configure.in: Explicitly remove include/xapian/version.h from
34405           APIDOC_SRC to avoid us trying to run doxygen unnecessarily.
34407 Sun Jul 27 14:31:36 BST 2003  Olly Betts <olly@survex.com>
34409         * docs/todo.xml: Assorted updates.
34411 Sun Jul 27 13:02:36 BST 2003  Olly Betts <olly@survex.com>
34413         * extra/.cvsignore: We still create libomqueryparser.la for backward
34414           compatibility.
34416 Sun Jul 27 04:56:40 BST 2003  Olly Betts <olly@survex.com>
34418         * xapian-config.in,m4/xapian.m4: Added --from-xo-lib-xapian option
34419           to xapian-config for use by XO_LIB_XAPIAN to allow us to give a
34420           more helpful error message if asked to link an uninstalled
34421           libxapian.
34423 Sun Jul 27 04:46:48 BST 2003  Olly Betts <olly@survex.com>
34425         * xapian-config.in: Fixed --cxxflags in non-installed case.
34426           Tidied up --help output and error messages.
34428 Sun Jul 27 01:40:39 BST 2003  Olly Betts <olly@survex.com>
34430         * tests/api_db.cc: Check termfreq in allterms4.
34432 Sun Jul 27 01:39:57 BST 2003  Olly Betts <olly@survex.com>
34434         * extra/queryparsertest.cc: Fixed for relocated queryparser.h.
34436 Sun Jul 27 00:59:56 BST 2003  Olly Betts <olly@survex.com>
34438         * .cvsignore,backends/quartz/.cvsignore,extra/.cvsignore: Updated.
34440 Sun Jul 27 00:19:11 BST 2003  Olly Betts <olly@survex.com>
34442         * tests/Makefile.am: Oops, failed to remove btreecheck.cc reference
34443           in previous check-in.
34445 Sat Jul 26 23:36:01 BST 2003  Olly Betts <olly@survex.com>
34447         * backends/quartz/Makefile.am,bin/Makefile.am,tests/Makefile.am:
34448           Hopefully fixed "make dist" in VPATH builds.
34450 Sat Jul 26 22:58:27 BST 2003  Olly Betts <olly@survex.com>
34452         * backends/quartz/Makefile.am: Need to distribute btreecheck.cc.
34454 Sat Jul 26 20:05:47 BST 2003  Olly Betts <olly@survex.com>
34456         * xapian-config.in,extra/Makefile.am,extra/queryparser.h,
34457           extra/queryparser.yy,extra/xapian/queryparser.h: Sorted out
34458           xapian-config so it handles using QueryParser too.
34460 Sat Jul 26 19:03:04 BST 2003  Olly Betts <olly@survex.com>
34462         * xapian-config.in: Updated logic in --libs and --cxxflags in line
34463           with recent change in --ltlibs.
34465 Sat Jul 26 18:31:11 BST 2003  Olly Betts <olly@survex.com>
34467         * xapian-config.in: Reworked logic for finding libxapian.la in
34468           --ltlibs - it may not yet exist in the non-installed case.
34469         * m4/xapian.m4: Don't pass --libs when checking if xapian-config
34470           works as it will fail in the non-installed case.
34472 Sat Jul 26 01:25:46 BST 2003  Olly Betts <olly@survex.com>
34474         * NEWS: Updated.
34476 Fri Jul 25 10:20:18 BST 2003  Olly Betts <olly@survex.com>
34478         * NEWS: Updated in preparation for 0.7.3 release.
34480 Thu Jul 24 23:20:14 BST 2003  Olly Betts <olly@survex.com>
34482         * backends/quartz/quartz_alltermslist.cc,
34483           backends/quartz/quartz_alltermslist.h,tests/api_db.cc:
34484           Fixed allterms TermIterator to not give duplicate terms with a
34485           quartz database when a posting list is chunked; added regression
34486           test (allterms4).
34488 Mon Jul 21 15:06:59 BST 2003  Richard Boulton <richard@tartarus.org>
34490         * include/xapian/enquire.h: Fix incorrect documentation comment
34491           for Enquire::set_set_forward().  (Looked like a cut&paste error)
34493 Mon Jul 21 01:10:55 BST 2003  Olly Betts <olly@survex.com>
34495         * docs/install.html,m4/xapian.m4: Added XO_LIB_XAPIAN to replace
34496           OM_PATH_XAPIAN.  XO_LIB_XAPIAN will automagically enable use of
34497           "xapian-config --ltlibs" if A[CM]_PROG_LIBTOOL is used in
34498           configure.in.
34500 Sun Jul 20 16:00:43 BST 2003  Olly Betts <olly@survex.com>
34502         * .cvsignore,Makefile.am,configure.in,xapian-config.in,
34503           xapian-config.nodep.in: Reworked xapian-config so that it
34504           now supports linking with libtool - using libtool means that the
34505           run-time library path is set and that you can now link with an
34506           uninstalled libxapian.  Also xapian-config will now work
34507           once configure is run, rather than only after "make all".
34509 Thu Jul 17 01:42:47 BST 2003  Olly Betts <olly@survex.com>
34511         * backends/quartz/bcursor.cc,backends/quartz/btree.cc: Check for
34512           EINTR when reading or writing blocks and retry the operation.
34514 Thu Jul 17 00:56:35 BST 2003  Olly Betts <olly@survex.com>
34516         * COPYING: Updated FSF address, and reinstated missing section: "How
34517           to Apply These Terms to Your New Programs"
34519 Thu Jul 17 00:48:40 BST 2003  Olly Betts <olly@survex.com>
34521         * HACKING,bootstrap: Removed bootstrap in favour of top-level
34522           bootstrap.
34524 Mon Jul 14 23:36:14 BST 2003  Olly Betts <olly@survex.com>
34526         * PLATFORMS: Updated some linux results: RH7.3 on x86, and Debian on
34527           alpha and arm.
34529 Mon Jul 14 23:33:17 BST 2003  Olly Betts <olly@survex.com>
34531         * configure.in,Makefile.am,extra/Makefile.am: Added versioning
34532           information to libxapian and libomqueryparser.
34534 Mon Jul 14 23:32:15 BST 2003  Olly Betts <olly@survex.com>
34536         * bin/quartzdump.cc,testsuite/testsuite.cc: Added long option support
34537           to quartzdump, and to the testsuite programs.
34539 Mon Jul 14 22:45:53 BST 2003  Olly Betts <olly@survex.com>
34541         * tests/internaltest.cc: Changed test exception1 to actually test
34542           something (hopefully what was originally intended!)
34544 Mon Jul 14 17:15:28 BST 2003  Olly Betts <olly@survex.com>
34546         * common/getopt.h: #include <stdlib.h> before defining getopt as a
34547           macro - hopefully that'll avoid problems with clobbering prototypes
34548           of getopt() in system headers.
34550 Sat Jul 12 09:15:26 BST 2003  Olly Betts <olly@survex.com>
34552         * bin/quartzcompact.cc: Need stdio.h for rename().
34554 Sat Jul 12 01:11:54 BST 2003  Olly Betts <olly@survex.com>
34556         * HACKING: Noted another reason why libtool 1.5 is needed.
34558 Sat Jul 12 01:11:08 BST 2003  Olly Betts <olly@survex.com>
34560         * docs/mkdoc.pl: Don't choke on a comment at the end of the
34561           DIST_SUBDIRS line in a Makefile.am.
34563 Fri Jul 11 22:00:36 BST 2003  Olly Betts <olly@survex.com>
34565         * HACKING: Added note about additional tools needed for building a
34566           distribution.
34568 Fri Jul 11 15:13:08 BST 2003  Olly Betts <olly@survex.com>
34570         * NEWS,PLATFORMS,configure.in: Version 0.7.2.
34572 Fri Jul 11 12:36:18 BST 2003  Olly Betts <olly@survex.com>
34574         * NEWS: Updated in preparation for 0.7.2.
34576 Fri Jul 11 12:12:40 BST 2003  Olly Betts <olly@survex.com>
34578         * configure.in: Fixed test for snprintf.
34580 Fri Jul 11 09:37:14 BST 2003  Olly Betts <olly@survex.com>
34582         * testsuite/testsuite.cc: Fixed dereference of a NULL pointer which
34583           was happening when a test threw an unexpected exception.
34585 Fri Jul 11 09:31:40 BST 2003  Olly Betts <olly@survex.com>
34587         * testsuite/backendmanager.cc: Backed out incorrect hunk of previous
34588           patch which was causing test failures.
34590 Fri Jul 11 01:48:21 BST 2003  Olly Betts <olly@survex.com>
34592         * backends/quartz/quartz_table_manager.cc,tests/quartztest.cc,
34593           testsuite/backendmanager.cc: Tidying up around directory creation.
34595 Fri Jul 11 00:57:12 BST 2003  Olly Betts <olly@survex.com>
34597         * include/xapian/database.h: Document that the directory is created.
34599 Fri Jul 11 00:53:59 BST 2003  Olly Betts <olly@survex.com>
34601         * backends/quartz/quartz_table_manager.cc: When asked to create a
34602           quartz database, try to create the directory if it doesn't already
34603           exist.  Then we don't have to do it in every single Xapian program
34604           which wants to create a database...
34606 Fri Jul 11 00:36:00 BST 2003  Olly Betts <olly@survex.com>
34608         * common/getopt.h: Removed space between \ and newline.
34610 Fri Jul 11 00:32:40 BST 2003  Olly Betts <olly@survex.com>
34612         * PLATFORMS: Added MacOS X 10.2 success report.
34614 Thu Jul 10 20:05:58 BST 2003  Olly Betts <olly@survex.com>
34616         * common/getopt.h: Fixed to work better with C++ compilers on
34617           non-glibc platforms.
34619 Thu Jul 10 19:21:00 BST 2003  Olly Betts <olly@survex.com>
34621         * backends/quartz/btree.cc: Modified setting of _XOPEN_SOURCE to
34622           actually work!
34624 Thu Jul 10 19:19:30 BST 2003  Olly Betts <olly@survex.com>
34626         * backends/quartz/btree.cc: Defined _XOPEN_SOURCE=500 for GLIBC
34627           so we get pread() and pwrite().
34629 Thu Jul 10 00:28:25 BST 2003  Olly Betts <olly@survex.com>
34631         * HACKING,Makefile.am,configure.in,bindings/.cvsignore,
34632           bindings/Makefile.am,bindings/dir_contents,bindings/guile/.cvsignore,
34633           bindings/guile/Makefile.am,bindings/php4/.cvsignore,
34634           bindings/php4/ABOUT,bindings/php4/Makefile.am,bindings/python/,
34635           bindings/swig/,bindings/tcl8/.cvsignore,bindings/tcl8/Makefile.am,
34636           docs/todo.xml: Removed bindings - they'll shortly reappear in a
34637           separate module named xapian-bindings.
34639 Thu Jul 10 00:03:04 BST 2003  Olly Betts <olly@survex.com>
34641         * bindings/swig/om_util_perl5.i: Removed.
34643 Wed Jul 09 15:35:56 BST 2003  Olly Betts <olly@survex.com>
34645         * bindings/guile/Makefile.am,bindings/php4/Makefile.am,
34646           bindings/python/Makefile.am,bindings/swig/,
34647           bindings/tcl8/Makefile.am: Removed omtypes.i and merged omstem.i
34648           into xapian.i; added forward declaration for upwrapped classes
34649           to xapian.i.
34651 Wed Jul 09 15:34:11 BST 2003  Olly Betts <olly@survex.com>
34653         * bindings/java/,bindings/java/com/muscat/om/,bindings/java/native/:
34654           Removed old Java bindings - we'll do them using SWIG instead.
34656 Wed Jul 09 14:51:51 BST 2003  Olly Betts <olly@survex.com>
34658         * bindings/php4/Makefile.am,bindings/php4/xapian/.cvsignore: More
34659           work on the php4 bindings.
34661 Wed Jul 09 03:00:17 BST 2003  Olly Betts <olly@survex.com>
34663         * bindings/guile/Makefile.am,bindings/python/Makefile.am,
34664           bindings/tcl8/Makefile.am: Worked towards getting guile and tcl8
34665           bindings up-to-date.
34666         * bindings/php4/.cvsignore: Ignore the whole xapian subdirectory.
34668 Wed Jul 09 02:37:12 BST 2003  Olly Betts <olly@survex.com>
34670         * bindings/perl5/: Removed remaining files.
34672 Wed Jul 09 02:30:55 BST 2003  Olly Betts <olly@survex.com>
34674         * configure.in,bindings/Makefile.am,bindings/php4/Makefile.am:
34675           Working towards getting the php4 bindings functional again.
34677 Wed Jul 09 01:27:39 BST 2003  Olly Betts <olly@survex.com>
34679         * bindings/swig/om_util_php4.i: om_termname -> std::string.
34681 Wed Jul 09 01:25:11 BST 2003  Olly Betts <olly@survex.com>
34683         * docs/overview.html,include/xapian/base.h,include/xapian/database.h:
34684           Improvements to doxygen-generated documentation.
34686 Wed Jul 09 01:23:55 BST 2003  Olly Betts <olly@survex.com>
34688         * configure.in,docs/todo.xml: Added check for SWIG version (require
34689           at least 1.3.14).
34691 Tue Jul  8 20:59:08 2003  James Aylett  <james@tartarus.org>
34693         * common/utils.h: missing #include <ctype.h>
34695 Tue Jul  8 18:06:23 2003  James Aylett  <james@tartarus.org>
34697         * bindings/swig/xapian.i: over-enthusiastic automatic
34698           conversion of termname to std::string
34700 Tue Jul 08 17:45:16 BST 2003  Olly Betts <olly@survex.com>
34702         * common/utils.h: Improved mingw implementation of rmdir().
34704 Tue Jul 08 17:43:21 BST 2003  Olly Betts <olly@survex.com>
34706         * NEWS,PLATFORMS,configure.in: Version 0.7.1.
34708 Sun Jul 06 21:35:08 BST 2003  Olly Betts <olly@survex.com>
34710         * backends/quartz/btree.cc: Minor tweak.
34712 Sun Jul 06 21:34:30 BST 2003  Olly Betts <olly@survex.com>
34714         * common/utils.h: Compile fixes for mingw.
34716 Sun Jul 06 17:59:26 BST 2003  Olly Betts <olly@survex.com>
34718         * docs/scalability.html: Fixed typo.
34720 Sun Jul 06 13:02:09 BST 2003  Olly Betts <olly@survex.com>
34722         * docs/scalability.html: Fixed typo.
34724 Sun Jul 06 12:56:08 BST 2003  Olly Betts <olly@survex.com>
34726         * docs/Makefile.am,docs/index.html,docs/scalability.html: Added new
34727           document on Xapian's scalability.
34729 Sun Jul 06 12:15:34 BST 2003  Olly Betts <olly@survex.com>
34731         * backends/quartz/: Made quartz block count unsigned, which should
34732           nearly double the size of database for a given block size.
34734 Sun Jul 06 11:47:46 BST 2003  Olly Betts <olly@survex.com>
34736         * backends/quartz/: Use BLK_UNUSED rather than literal -1.
34738 Sun Jul 06 11:47:14 BST 2003  Olly Betts <olly@survex.com>
34740         * common/utils.h: Fixed last check-in to compile.
34742 Sun Jul 06 11:01:03 BST 2003  Olly Betts <olly@survex.com>
34744         * common/utils.h,tests/btreetest.cc,tests/quartztest.cc,
34745           testsuite/backendmanager.cc: Replaced system("rm -rf ...") with
34746           rmdir() function and added two ms windows implementations for
34747           Sam to try.
34749 Sat Jul 05 10:37:35 BST 2003  Olly Betts <olly@survex.com>
34751         * getopt/getopt.c: Suppress "unused variable" warnings from getopt.c.
34753 Sat Jul 05 02:21:11 BST 2003  Olly Betts <olly@survex.com>
34755         * docs/todo.xml: Updated.
34757 Sat Jul 05 02:09:06 BST 2003  Olly Betts <olly@survex.com>
34759         * configure.in,backends/quartz/btree.cc: Use pread() and pwrite() if
34760           available - this avoids one syscall per block read/write.
34762 Fri Jul 04 22:05:14 BST 2003  Olly Betts <olly@survex.com>
34764         * PLATFORMS: Added results from building 0.7.0 on my Linux dev box.
34766 Fri Jul 04 18:52:07 BST 2003  Olly Betts <olly@survex.com>
34768         * extra/Makefile.am: Distribute symboltab.h.
34770 Fri Jul 04 18:04:53 BST 2003  Olly Betts <olly@survex.com>
34772         * common/Makefile.am: Distribute documentterm.h.
34774 Fri Jul 04 15:30:28 BST 2003  Olly Betts <olly@survex.com>
34776         * configure.in: Disabled guile, tcl8, and php4 here as well as in
34777           bindings/Makefile.am.
34779 Fri Jul  4 11:27:53 2003  James Aylett  <james@tartarus.org>
34781         * bindings/Makefile.am: change commenting so mkdoc.pl doesn't
34782           choke
34784 Fri Jul  4 10:51:04 2003  James Aylett  <james@tartarus.org>
34786         * bootstrap: add missing ';;' as case pattern delimiter
34788 Thu Jul 03 23:46:14 BST 2003  Olly Betts <olly@survex.com>
34790         * bindings/Makefile.am,bindings/python/Makefile.am: Fixed to work with
34791           "make dist".
34793 Thu Jul 03 23:29:06 BST 2003  Olly Betts <olly@survex.com>
34795         * NEWS,PLATFORMS,configure.in: Version 0.7.0.
34797 Thu Jul 03 22:57:22 BST 2003  Olly Betts <olly@survex.com>
34799         * PLATFORMS: Updated (Linux GCC 2.95 and Linux to mingw cross).
34801 Thu Jul 03 22:55:54 BST 2003  Olly Betts <olly@survex.com>
34803         * extra/queryparser.yy,extra/queryparsertest.cc: Allow more than one
34804           adjacent phrase generating character.
34806 Thu Jul 03 22:12:18 BST 2003  Olly Betts <olly@survex.com>
34808         * extra/queryparser.yy,extra/queryparsertest.cc: Always ignore phrase
34809           generating characters at start and end of query.
34811 Thu Jul 03 21:02:10 BST 2003  Olly Betts <olly@survex.com>
34813         * extra/Makefile.am: Fixed for mingw compile.
34815 Thu Jul 03 19:24:50 BST 2003  Olly Betts <olly@survex.com>
34817         * buildall,docs/OMAims: Removed unwanted old files.
34819 Thu Jul 03 19:18:41 BST 2003  Olly Betts <olly@survex.com>
34821         * backends/quartz/runquartztest: Obsolete, so removed.
34823 Thu Jul 03 01:26:03 BST 2003  Olly Betts <olly@survex.com>
34825         * common/omenquireinternal.h: Fix for building with GCC 3.3.
34827 Thu Jul 03 01:02:54 BST 2003  Olly Betts <olly@survex.com>
34829         * NEWS: Updated.
34831 Wed Jul 02 22:18:07 BST 2003  Olly Betts <olly@survex.com>
34833         * backends/quartz/bcursor.cc,backends/quartz/bcursor.h:
34834           Made Bcursor::get_key(string * key) const.
34836 Wed Jul 02 21:51:43 BST 2003  Olly Betts <olly@survex.com>
34838         * backends/quartz/: Workaround for shared_level problem turns out to
34839           be arguably the better approach, so made it permanent and tidied up
34840           code.
34842 Mon Jun 23 21:39:50 BST 2003  Olly Betts <olly@survex.com>
34844         * NEWS: Updated in preparation for 0.7.0 release.
34846 Mon Jun 23 21:18:23 BST 2003  Olly Betts <olly@survex.com>
34848         * extra/omparsequery.h: Corrected include protection token comment on
34849           #endif to match that used in the #ifdef.
34851 Mon Jun 23 21:10:33 BST 2003  Olly Betts <olly@survex.com>
34853         * bootstrap: Check for Bison 1.875 which doesn't work with Xapian.
34855 Mon Jun 23 21:08:35 BST 2003  Olly Betts <olly@survex.com>
34857         * HACKING: Automake 1.7 works reliably with Xapian; CFLAGS=-Werror can
34858           now be used as we suppress the warnings from the Snowball generated
34859           C code.
34861 Mon Jun 23 16:55:54 BST 2003  Olly Betts <olly@survex.com>
34863         * api/,backends/inmemory/inmemory_database.cc,
34864           backends/inmemory/inmemory_database.h,backends/quartz/,
34865           bindings/swig/om_util_python.i,bindings/swig/xapian.i,common/,
34866           include/Makefile.am,include/xapian.h,include/om/om.h,include/xapian/,
34867           matcher/localmatch.h,matcher/phrasepostlist.h,tests/api_db.cc,
34868           tests/api_posdb.cc,tests/quartztest.cc:
34869           Xapian::Xapian::PostListIterator -> Xapian::PostingIterator;
34870           Xapian::PositionListIterator -> Xapian::PositionIterator;
34871           xapian/postlistiterator.h -> xapian/postingiterator.h;
34872           xapian/positionlistiterator.h -> xapian/positioniterator.h.
34874 Mon Jun 23 15:31:30 BST 2003  Olly Betts <olly@survex.com>
34876         * backends/database.cc,backends/inmemory/inmemory_database.h,
34877           backends/muscat36/,backends/quartz/,bindings/python/Makefile.am,
34878           bindings/swig/om_util.i,bindings/swig/omstem.i,docs/quickstart.html,
34879           docs/todo.xml,include/xapian/database.h,include/xapian/enquire.h,
34880           include/xapian/errortypes.h,tests/api_db.cc,tests/quartztest.cc,
34881           testsuite/backendmanager.cc,testsuite/textfile_indexer.cc:
34882           Xapian::OpeningError renamed to Xapian::DatabaseOpeningError.
34883         * include/om/om.h: OmOpeningError now maps to
34884           Xapian::DatabaseOpeningError.
34886 Mon Jun 23 01:44:45 BST 2003  Olly Betts <olly@survex.com>
34888         * api/,backends/inmemory/inmemory_database.cc,
34889           backends/muscat36/da_database.cc,backends/muscat36/db_database.cc,
34890           backends/net/net_database.cc,backends/net/net_termlist.cc,
34891           backends/net/net_termlist.h,backends/quartz/,bin/omprogsrv.cc,
34892           bin/quartzdump.cc,common/,include/xapian/error.h,
34893           include/xapian/errorhandler.h,matcher/emptymatch.h,net/,
34894           tests/quartztest.cc,tests/stemtest.cc,testsuite/testsuite.cc,
34895           testsuite/textfile_indexer.cc: Use '#include <...>' for headers
34896           in include/.
34898 Thu Jun 19 17:55:07 BST 2003  Olly Betts <olly@survex.com>
34900         * common/netserver.h,common/socketserver.h,matcher/localmatch.cc,
34901           matcher/multimatch.cc,net/socketserver.cc: Removed unused header
34902           inclusion; pass Stats and Xapian::Database by const reference, not
34903           value.
34905 Thu Jun 19 14:50:49 BST 2003  Olly Betts <olly@survex.com>
34907         * extra/queryparser.yy,extra/symboltab.h: Force control characters to
34908           spaces; Added note that accent normalisation is perhaps done at the
34909           wrong time...
34911 Thu Jun 19 14:40:36 BST 2003  Olly Betts <olly@survex.com>
34913         * extra/queryparsertest.cc: Added test for control characters.
34915 Thu Jun 19 14:31:12 BST 2003  Olly Betts <olly@survex.com>
34917         * extra/queryparsertest.cc: Added checks for weird whitespace in
34918           queries.
34920 Wed Jun 18 19:02:14 BST 2003  Olly Betts <olly@survex.com>
34922         * extra/queryparser.yy: Reworked parsing of boolean operators to
34923           improve error reporting.
34924         * extra/queryparsertest.cc: Added 2 more testcases and fixed to better
34925           handle tests for expected errors.
34927 Wed Jun 18 19:00:55 BST 2003  Olly Betts <olly@survex.com>
34929         * extra/queryparser.yy: Trim leading and trailing whitespace before
34930           attempting to parse the query.
34932 Wed Jun 18 17:58:56 BST 2003  Olly Betts <olly@survex.com>
34934         * extra/queryparser.yy: `using namespace Xapian;'
34936 Fri Jun 06 01:33:33 BST 2003  Olly Betts <olly@survex.com>
34938         * docs/quartzdesign.html: Commented out the section on the Lexicon,
34939           which we no longer use.
34941 Thu Jun 05 22:40:21 BST 2003  Olly Betts <olly@survex.com>
34943         * bindings/python/.cvsignore,bindings/python/Makefile.am,
34944           bindings/python/dothemake.txt,bindings/swig/om_util_python.i:
34945           Cleaned up building of python bindings by making better use of
34946           automake.
34948 Thu Jun 05 22:17:40 BST 2003  Olly Betts <olly@survex.com>
34950         * languages/Makefile.am: Reenable standard warnings apart from the
34951           -Wunused.
34953 Thu Jun 05 20:21:08 BST 2003  Olly Betts <olly@survex.com>
34955         * api/omqueryinternal.cc: Fixed a couple of problems with the new
34956           query serialisation.
34958 Thu Jun 05 17:55:21 BST 2003  Olly Betts <olly@survex.com>
34960         * HACKING,configure.in: Flex is no longer used, so removed configure
34961           tests and note in HACKING.
34963 Thu Jun 05 17:53:30 BST 2003  Olly Betts <olly@survex.com>
34965         * tests/remotetest.cc: In test netexpand1, use TEST() rather than
34966           Assert() so that the check is made in non-debug builds too.
34968 Thu Jun 05 17:52:17 BST 2003  Olly Betts <olly@survex.com>
34970         * api/omqueryinternal.cc,common/socketcommon.h,docs/todo.xml,
34971           include/xapian/query.h,net/: Reworked query serialisation so that
34972           the code is now all in api/omqueryinternal.cc.  Serialisation is
34973           now rather more compact and no longer relies on flex for parsing.
34975 Thu Jun 05 17:45:00 BST 2003  Olly Betts <olly@survex.com>
34977         * bin/Makefile.am: omprogsrv depends on libtest.la, so it need to be
34978           in check_PROGRAMS.
34980 Thu Jun 05 17:09:10 BST 2003  Olly Betts <olly@survex.com>
34982         * Makefile.am: Moved bindings after extra in SUBDIRS - the bindings
34983           wrap Xapian::QueryParser so they need to be built after it.
34985 Thu Jun 05 01:28:01 BST 2003  Olly Betts <olly@survex.com>
34987         * bindings/python/Makefile.am: Use $(SWIG) (as detected by configure).
34989 Thu Jun 05 00:46:16 BST 2003  Olly Betts <olly@survex.com>
34991         * configure.in,bindings/Makefile.am,bindings/python/Makefile.am:
34992           Check for python and find the correct paths for building python
34993           bindings; Added dependencies for building _xapian.so.
34995 Wed Jun  4 17:19:37 2003  James Aylett  <james@tartarus.org>
34997         * configure.in, Makefile.am, bindings: build system will build
34998           bindings as part of normal build process.  No longer build
34999           Perl or Java bindings; for Perl, use Search::Xapian; Java will
35000           be replaced with SWIG-based bindings.
35002         * bindings: bindings now use Xapian:: namespace names rather than
35003           the old Om* ones. Almost all of the API should now be wrapped.
35005 Wed Jun 04 02:52:38 BST 2003  Olly Betts <olly@survex.com>
35007         * docs/overview.html: Added start of "Design Principles" section.
35008         * docs/todo.xml: Added a couple more items.
35010 Wed Jun 04 02:51:56 BST 2003  Olly Betts <olly@survex.com>
35012         * Makefile.am: Build testsuite later - it now doesn't need to be built
35013           until just before tests.
35015 Wed Jun 04 02:43:08 BST 2003  Olly Betts <olly@survex.com>
35017         * backends/muscat36/: Split up spec into comments in the appropriate
35018           header files; fixed to build after recent Om -> Xapian changes.
35020 Wed Jun 04 01:56:46 BST 2003  Olly Betts <olly@survex.com>
35022         * HACKING: Bison 1.75 and 1.875a both checked with parsequery.yy
35023           - no problems found.
35025 Mon Jun 02 20:14:22 BST 2003  Olly Betts <olly@survex.com>
35027         * ChangeLog.0: Fixed 2 typos.
35029 Mon Jun 02 20:09:01 BST 2003  Olly Betts <olly@survex.com>
35031         * NEWS: Updated in preparation for 0.7.0 release.
35033 Mon Jun 02 16:25:18 BST 2003  Olly Betts <olly@survex.com>
35035         * configure.in: Fix m4 quoting so that MINOR_VERSION is set correctly.
35037 Mon Jun  2 15:22:30 2003  James Aylett  <james@tartarus.org>
35039         * bindings/swig/xapian.i: move QueryParser wrapping to use
35040           the new namespace location, and fix include so it can work
35041           out of the build directory rather than just the installed
35042           library
35044 Mon Jun 02 14:15:14 BST 2003  Olly Betts <olly@survex.com>
35046         * Makefile.am,configure.in,bindings/Makefile.am,docs/todo.xml:
35047           Added --enable-bindings to configure - if this is specified and
35048           swig is detected, try to build the language bindings.
35050 Mon Jun 02 12:46:18 BST 2003  Olly Betts <olly@survex.com>
35052         * backends/database.cc: Fixed parsing of port number in remote stub
35053           databases.
35055 Sat May 31 15:03:47 BST 2003  James Aylett  <james@tartarus.org>
35057         * bindings/swig: update so can build Python bindings against
35058           latest Xapian; untested, and other languages are likely to
35059           fail
35061 Fri May 30 02:59:48 BST 2003  Olly Betts <olly@survex.com>
35063         * extra/queryparser.yy,extra/queryparsertest.cc: Embedded '.' is
35064           now a phrase maker; Ignore `""' in query; Ignore ')' at start
35065           of query.
35067 Fri May 30 01:22:49 BST 2003  Olly Betts <olly@survex.com>
35069         * extra/queryparsertest.cc: Added another 405 queries which fail to
35070           parse (courtesy of Arjen van der Meijden).
35072 Thu May 29 19:08:28 BST 2003  Olly Betts <olly@survex.com>
35074         * docs/todo.xml,extra/queryparsertest.cc: Extracted two more
35075           queryparser testcases which need fixing from the old todo list.
35077 Thu May 29 17:14:04 BST 2003  Olly Betts <olly@survex.com>
35079         * extra/queryparser.yy,extra/queryparsertest.cc: A phrasemaker isn't
35080           a phrasemaker unless it's preceded by an alphanumeric, "+", or "-";
35081           If a single term is in (), ignore the ().
35083 Thu May 29 16:45:39 BST 2003  Olly Betts <olly@survex.com>
35085         * extra/queryparser.yy,extra/queryparsertest.cc: Improved handling
35086           of various odd queries encountered in real life applications.
35088 Thu May 29 01:50:51 BST 2003  Olly Betts <olly@survex.com>
35090         * docs/todo.xml: Updated more.
35092 Thu May 29 01:26:50 BST 2003  Olly Betts <olly@survex.com>
35094         * api/,backends/database.cc,backends/inmemory/,backends/multi/,
35095           backends/muscat36/,backends/net/,backends/quartz/,common/,
35096           docs/overview.html,docs/quickstart.html,
35097           docs/quickstartexpand.cc.html,extra/queryparser.yy,include/om/om.h,
35098           include/xapian/,matcher/,net/,tests/api_db.cc,tests/api_posdb.cc,
35099           tests/quartztest.cc,testsuite/: Converted remaining om_xxx types
35100           to Xapian::xxx.
35102 Wed May 28 23:06:18 BST 2003  Olly Betts <olly@survex.com>
35104         * docs/todo.xml: Updated.
35106 Wed May 28 22:59:17 BST 2003  Olly Betts <olly@survex.com>
35108         * tests/api_db.cc: Spelling correction: accross -> across.
35110 Wed May 28 20:24:32 BST 2003  Olly Betts <olly@survex.com>
35112         * extra/: OmQueryParser -> Xapian::QueryParser, etc.
35114 Wed May 28 20:03:48 BST 2003  Olly Betts <olly@survex.com>
35116         * api/omdocument.cc: Removed include of defunct header
35117           modifieddocument.h.
35119 Wed May 28 20:00:56 BST 2003  Olly Betts <olly@survex.com>
35121         * api/maptermlist.h,api/omdocument.cc,api/omvalueiterator.cc,
35122           backends/inmemory/inmemory_document.cc,
35123           backends/inmemory/inmemory_document.h,backends/muscat36/,
35124           backends/net/net_document.cc,backends/net/net_document.h,
35125           backends/quartz/quartz_document.cc,backends/quartz/quartz_document.h,
35126           common/Makefile.am,common/document.h,common/modifieddocument.h,
35127           include/xapian/document.h,tests/api_db.cc: Fixed bug in refactored
35128           Xapian::Document when modifying a copy.  Added regression test.
35130 Wed May 28 19:23:26 BST 2003  Olly Betts <olly@survex.com>
35132         * common/omenquireinternal.h,include/xapian/database.h,
35133           include/xapian/enquire.h,include/xapian/query.h: Where possible,
35134           declare classes rather than including headers (in public headers).
35136 Wed May 28 17:32:14 BST 2003  Olly Betts <olly@survex.com>
35138         * include/xapian/document.h: Just declare "class TermIterator;" rather
35139           than including <xapian/termiterator.h>.
35141 Tue May 27 16:59:34 BST 2003  Olly Betts <olly@survex.com>
35143         * common/progserver.h,common/socketserver.h,net/socketserver.cc:
35144           Reduced needless header inclusion.
35146 Tue May 27 16:53:40 BST 2003  Olly Betts <olly@survex.com>
35148         * bin/omprogsrv.cc,tests/api_db.cc: Use variable name "dbs" in
35149           preference to "dbgrp".  OmDatabaseGroup hasn't existed for
35150           years!
35152 Tue May 27 16:51:30 BST 2003  Olly Betts <olly@survex.com>
35154         * Makefile.am: Fixed typo: "bin" should be "net" in remote_subdirs.
35156 Tue May 27 02:43:32 BST 2003  Olly Betts <olly@survex.com>
35158         * backends/quartz/Makefile.am: Removed -I referencing testsuite
35159           directory.
35161 Tue May 27 02:39:43 BST 2003  Olly Betts <olly@survex.com>
35163         * backends/quartz/,docs/tests.html,tests/: Moved quartztest and
35164           btreetest to tests/ directory.
35166 Tue May 27 02:03:07 BST 2003  Olly Betts <olly@survex.com>
35168         * Makefile.am,configure.in,xapian.spec.in,backends/quartz/,bin/,
35169           docs/remote.html,netprogs/,tests/api_db.cc,tests/remotetest.cc,
35170           testsuite/backendmanager.cc,testsuite/testsuite.cc: Sorted out
35171           the source tree structure so that programs which aren't tests which
35172           were previously built by "make check" are now be built by "make".
35174 Tue May 27 01:01:40 BST 2003  Olly Betts <olly@survex.com>
35176         * autoconf/dir_contents,backends/dir_contents,
35177           backends/inmemory/dir_contents,backends/multi/dir_contents,
35178           backends/muscat36/dir_contents,backends/net/dir_contents,
35179           backends/quartz/dir_contents,bindings/dir_contents,
35180           common/dir_contents,docs/dir_contents,include/om/dir_contents,
35181           include/xapian/dir_contents,include/dir_contents,
35182           indexer/dir_contents,indexer/indexgraph/dir_contents,
35183           languages/dir_contents,m4/dir_contents,tests/dir_contents:
35184           Updated all the dir_contents files - many were out-of-date.
35186 Tue May 27 00:42:54 BST 2003  Olly Betts <olly@survex.com>
35188         * Makefile.am: Filter any .la files out of dependency_libs.
35190 Tue May 27 00:11:18 BST 2003  Olly Betts <olly@survex.com>
35192         * netprogs/.cvsignore,netprogs/Makefile.am,netprogs/nettest.cc,
35193           tests/.cvsignore,tests/Makefile.am,tests/remotetest.cc:
35194           netprogs/nettest -> tests/remotetest.
35196 Mon May 26 23:49:49 BST 2003  Olly Betts <olly@survex.com>
35198         * netprogs/nettest.cc: Removed test tcpclient1 - the functionality it
35199           tests is also tested by tcpmatch1, and it introduces dependencies on
35200           internal headers.
35202 Mon May 26 22:00:01 BST 2003  Olly Betts <olly@survex.com>
35204         * backends/quartz/quartz_table_manager.cc: Give a better error message
35205           if asked to open a pre-0.6 Quartz database.
35207 Mon May 26 20:43:21 BST 2003  Olly Betts <olly@survex.com>
35209         * HACKING,Makefile.am,backends/Makefile.am,docs/mkdoc.pl,
35210           net/Makefile.am: Fixed to never leave partial files in place of the
35211           expected output if a build is interrupted.
35213 Mon May 26 16:50:59 BST 2003  Olly Betts <olly@survex.com>
35215         * HACKING: Added note adapted from an old email noting why compile-time
35216           options are generally best avoided.
35218 Mon May 26 12:03:29 BST 2003  Olly Betts <olly@survex.com>
35220         * testsuite/backendmanager.cc,testsuite/textfile_indexer.cc: Corrected
35221           odd uses of std::string::erase() (instead of `str = str.erase(n, m)'
35222           just use `str.erase(n,m)').
35224 Sun May 25 22:59:44 BST 2003  Olly Betts <olly@survex.com>
35226         * PLATFORMS: Updated.
35228 Sun May 25 22:58:28 BST 2003  Olly Betts <olly@survex.com>
35230         * languages/Makefile.am: Suppress "unused" warnings in Snowball
35231           generated C code.
35233 Sun May 25 21:43:34 BST 2003  Olly Betts <olly@survex.com>
35235         * api/omtermlistiterator.cc: Removed iostream.h include left over from
35236           debugging.
35238 Sun May 25 12:27:11 BST 2003  Olly Betts <olly@survex.com>
35240         * docs/,extra/omparsequery.h,extra/parsequery.yy,include/Makefile.am,
35241           include/xapian.h,include/om/om.h,tests/,testsuite/backendmanager.cc,
35242           testsuite/backendmanager.h,testsuite/testutils.h: Created xapian.h
35243           header and changed everything to use it.
35245 Sat May 24 23:35:46 BST 2003  Olly Betts <olly@survex.com>
35247         * api/,backends/inmemory/inmemory_database.cc,
35248           backends/inmemory/inmemory_document.h,
35249           backends/quartz/quartz_database.cc,backends/quartz/quartztest.cc,
35250           common/,include/Makefile.am,include/om/om.h,
35251           include/om/omvalueiterator.h,include/xapian/,
35252           testsuite/backendmanager.cc: OmValueIterator -> Xapian::ValueIterator
35253           etc.
35255 Fri May 23 15:32:29 BST 2003  Olly Betts <olly@survex.com>
35257         * api/,backends/database.cc,backends/inmemory/,backends/muscat36/,
35258           backends/net/net_database.cc,backends/net/net_document.cc,
35259           backends/net/net_document.h,backends/quartz/,common/,docs/,
35260           include/Makefile.am,include/om/om.h,include/om/omdocument.h,
35261           include/om/omvalueiterator.h,include/xapian/,indexer/omindexer.h,
35262           matcher/,net/,netprogs/nettest.cc,tests/api_db.cc,tests/api_posdb.cc,
35263           tests/internaltest.cc,testsuite/: OmDocument -> Xapian::Document, etc.
35264         * include/Makefile.am: Fixed library headers to install in xapian and
35265           om subdirectories as they should.
35267 Fri May 23 15:31:05 BST 2003  Olly Betts <olly@survex.com>
35269         * backends/quartz/btree.cc: Consistently use int4 for block number -
35270           it really should be unsigned and this is a first step.
35272 Mon May 19 13:20:46 BST 2003  Olly Betts <olly@survex.com>
35274         * configure.in: Create include/xapian if it doesn't exist so that
35275           VPATH builds work.
35277 Mon May 19 13:17:16 BST 2003  Olly Betts <olly@survex.com>
35279         * Makefile.am: Disabled exported symbol regex for now.
35281 Tue May 13 05:08:54 BST 2003  Olly Betts <olly@survex.com>
35283         * api/,backends/database.cc,backends/dir_contents,backends/inmemory/,
35284           backends/multi/,backends/muscat36/,backends/net/,backends/quartz/,
35285           common/,docs/,extra/omparsequery.h,include/,matcher/,net/,netprogs/,
35286           tests/: OmDatabase -> Xapian::Database, etc.
35288 Tue May 13 05:07:41 BST 2003  Olly Betts <olly@survex.com>
35290         * NEWS: Corrected spelling: "maintainance" to "maintenance".
35292 Tue May 13 00:40:47 BST 2003  Olly Betts <olly@survex.com>
35294         * ChangeLog.0,NEWS,backends/inmemory/inmemory_database.h,
35295           backends/muscat36/da_database.h,backends/muscat36/db_database.h,
35296           backends/quartz/quartz_postlist.h,
35297           indexer/indexgraph/omstopwordnode.cc: Spelling correction:
35298           "occurence" should be "occurrence".
35300 Mon May 12 22:39:27 BST 2003  Olly Betts <olly@survex.com>
35302         * api/ompositionlistiteratorinternal.h,
35303           include/om/ompositionlistiterator.h: Removed unused files.
35305 Mon May 12 20:51:03 BST 2003  Olly Betts <olly@survex.com>
35307         * api/omdatabaseinternal.cc,backends/database.cc: Moved database
35308           factory functions from api to backends.
35310 Fri May 09 04:02:29 BST 2003  Olly Betts <olly@survex.com>
35312         * common/expandweight.h: Removed cruft.
35314 Fri May 09 03:50:36 BST 2003  Olly Betts <olly@survex.com>
35316         * common/rset.h: Removed unused RSetI ctor variant.
35318 Fri May 09 02:00:03 BST 2003  Olly Betts <olly@survex.com>
35320         * api/omenquire.cc,common/,docs/overview.html,include/om/om.h,
35321           include/xapian/enquire.h,include/xapian/output.h,matcher/,
35322           net/socketclient.cc,net/socketcommon.cc,net/socketserver.cc,
35323           netprogs/nettest.cc,tests/api_db.cc: OmRSet -> Xapian::RSet.
35325 Fri May 09 01:06:32 BST 2003  Olly Betts <olly@survex.com>
35327         * api/omenquire.cc: Fixed MSet::Internal::get_description() to include
35328           class name.
35330 Fri May 09 01:04:12 BST 2003  Olly Betts <olly@survex.com>
35332         * common/rset.h,matcher/expand.cc,matcher/rset.cc: RSetI now uses
35333           set<Xapian::docid> (as OmRSet::Internal) rather than
35334           vector<RSetItem>.
35336 Fri May 09 00:41:20 BST 2003  Olly Betts <olly@survex.com>
35338         * api/omenquire.cc,common/,docs/quickstartexpand.cc.html,matcher/:
35339           RSet internal class renamed to RSetI to aid upcoming OmRSet ->
35340           Xapian::RSet change.  RSetI looks like it can be eliminated
35341           later.
35343 Thu May 08 23:54:44 BST 2003  Olly Betts <olly@survex.com>
35345         * tests/: Removed make_dbgrp() helper function from apitest as it
35346           makes the test code less clear without making it easier to write.
35348 Thu May 08 01:24:53 BST 2003  Olly Betts <olly@survex.com>
35350         * api/ompostlistiterator.cc,docs/overview.html,tests/api_db.cc:
35351           Fixed OmWeight and OmMatchDecider in comments, docs, and
35352           testsuite.
35354 Thu May 08 01:16:30 BST 2003  Olly Betts <olly@survex.com>
35356         * api/omenquire.cc,backends/multi/multi_postlist.h,common/,
35357           include/om/om.h,include/xapian/enquire.h,matcher/,
35358           net/socketclient.cc,net/socketserver.cc: OmMatchDecider ->
35359           Xapian::MatchDecider; OmWeight -> Xapian::Weight; BoolWeight,
35360           TradWeight, BM25Weight -> Xapian::.
35362 Wed May 07 23:06:47 BST 2003  Olly Betts <olly@survex.com>
35364         * backends/quartz/btreetest.cc,backends/quartz/quartztest.cc,
35365           configure.in,netprogs/nettest.cc,tests/,testsuite/: Minor overhaul
35366           of testsuite.
35368 Wed May 07 17:54:34 BST 2003  Olly Betts <olly@survex.com>
35370         * backends/,common/document.h,matcher/Makefile.am,matcher/document.cc:
35371           Removed do_ wrappers for Document methods get_value(),
35372           get_all_values() and get_data().  The wrappers used to perform
35373           thread locking, but now they're just pointless overhead.
35375 Wed May 07 17:24:00 BST 2003  Olly Betts <olly@survex.com>
35377         * HACKING: Started section of API structure.
35379 Wed May 07 02:16:03 BST 2003  Olly Betts <olly@survex.com>
35381         * api/omenquire.cc,common/expand.h,common/omenquireinternal.h,
35382           common/omstringstream.h,docs/quickstart.html,include/om/om.h,
35383           include/xapian/enquire.h,include/xapian/output.h,matcher/expand.cc,
35384           matcher/multimatch.cc,net/socketcommon.cc,netprogs/nettest.cc,
35385           tests/api_db.cc,testsuite/testutils.cc: OmMSet -> Xapian::MSet,
35386           similarly for OmMSetIterator, OmESet, and OmESetIterator.
35388 Tue May 06 19:31:42 BST 2003  Olly Betts <olly@survex.com>
35390         * include/xapian/query.h: New file I failed to checkin on Friday.
35392 Tue May 06 14:16:41 BST 2003  Olly Betts <olly@survex.com>
35394         * HACKING,configure.in,tests/.cvsignore,tests/Makefile.am,
35395           tests/runtest.in,testsuite/testsuite.cc: Sorted out autodetection
35396           of valgrind for running testsuite.
35397         * HACKING: Added note about how to run gdb on dynamically linked
35398           binaries built using libtool.
35399         * HACKING: Recommend libtool 1.5 as in 1.4.2 libtool --mode=execute
35400           doesn't seem to handle programs with arguments.
35402 Tue May 06 00:25:03 BST 2003  Olly Betts <olly@survex.com>
35404         * PLATFORMS: Updated.
35406 Fri May 02 16:58:15 BST 2003  Olly Betts <olly@survex.com>
35408         * configure.in: Improved check that LEX is flex - it will now accept
35409           "flex" with a path and/or prefix.
35411 Fri May 02 16:12:46 BST 2003  Olly Betts <olly@survex.com>
35413         * api/,common/,include/,matcher/,net/,netprogs/nettest.cc,
35414           netprogs/omtcpsrv.cc,tests/api_db.cc,tests/api_posdb.cc,
35415           testsuite/testutils.cc,testsuite/testutils.h: OmEnquire ->
35416           Xapian::Enquire, OmQuery -> Xapian::Query, etc.
35418 Fri May 02 03:14:28 BST 2003  Olly Betts <olly@survex.com>
35420         * tests/internaltest.cc: Reenabled tests for leak checking and fixed
35421           them up to work with valgrind.
35423 Fri May 02 02:14:28 BST 2003  Olly Betts <olly@survex.com>
35425         * testsuite/testsuite.cc,testsuite/testsuite.h: If a testsuite program
35426           is run using "valgrind --logfile-fd=255 ./footest" then the harness
35427           will show valgrind's output for tests which fail because valgrind
35428           spotted errors or leaks (untested under valgrind).
35430 Thu May 01 21:25:01 BST 2003  Olly Betts <olly@survex.com>
35432         * api/omenquire.cc,api/omquery.cc,api/omqueryinternal.cc,common/,
35433           docs/overview.html,docs/quickstart.html,extra/omparsequery.h,
35434           extra/parsequery.yy,extra/parsequerytest.cc,include/,matcher/,
35435           net/,netprogs/nettest.cc,tests/api_db.cc,tests/api_nodb.cc,
35436           tests/api_posdb.cc: OmQuery -> Xapian::Query, etc.  For now
35437           I've had to expose Xapian::Query::Internal in xapian/query.h
35438           which isn't ideal.
35440 Wed Apr 30 20:37:27 BST 2003  Olly Betts <olly@survex.com>
35442         * api/omenquire.cc,common/omenquireinternal.h,include/:
35443           typedefs om_* -> Xapian::*, but not changed all internal uses yet.
35445 Wed Apr 30 03:51:52 BST 2003  Olly Betts <olly@survex.com>
35447         * api/,backends/,common/,extra/omparsequery.h,extra/parsequery.yy,
35448           include/,matcher/localmatch.h,matcher/orpostlist.h,tests/api_db.cc:
35449           OmPostListIterator -> Xapian::PostListIterator, etc.
35451 Wed Apr 30 02:13:31 BST 2003  Olly Betts <olly@survex.com>
35453         * docs/matcherdesign.html,include/om/omenquire.h: Merged docs
35454           discussing OmMSetIterator::get_collapse_count() into the doxygen
35455           documentation comments - they're docs aimed at the API user so
35456           really don't belong in the internal matcher design docs.
35458 Wed Apr 30 01:08:39 BST 2003  Olly Betts <olly@survex.com>
35460         * .cvsignore: Added config.guess.
35462 Tue Apr 29 21:08:40 BST 2003  Olly Betts <olly@survex.com>
35464         * include/om/om.h,include/xapian/base.h,include/xapian/error.h,
35465           include/xapian/errorhandler.h,include/xapian/expanddecider.h,
35466           include/xapian/positionlistiterator.h,include/xapian/stem.h,
35467           include/xapian/termiterator.h: OM_HGUARD_* -> XAPIAN_INCLUDED_*.
35469 Tue Apr 29 20:37:01 BST 2003  Olly Betts <olly@survex.com>
35471         * api/,backends/,common/,include/,indexer/omnodeinstanceiterator.h,
35472           indexer/ompaditerator.h,net/readquery.h,testsuite/indexer.h:
35473           om/omoutput.h -> xapian/output.h; om/omtypes.h -> xapian/types.h.
35475 Tue Apr 29 18:28:27 BST 2003  Olly Betts <olly@survex.com>
35477         * api/,backends/,common/,include/,matcher/,net/socketserver.cc,tests/,
35478           testsuite/backendmanager.cc,testsuite/testsuite.cc: OmTermIterator
35479           -> Xapian::TermIterator, etc.
35481 Tue Apr 29 17:39:34 BST 2003  Olly Betts <olly@survex.com>
35483         * common/omdebug.cc: Setting XAPIAN_DEBUG_LOG caused an exception
35484           (with GCC 3.0 at least) unless the value contained %% - fixed.
35486 Tue Apr 29 14:29:36 BST 2003  Olly Betts <olly@survex.com>
35488         * api/ompositionlistiterator.cc: Fixed to compile in debug mode.
35490 Tue Apr 29 01:06:02 BST 2003  Olly Betts <olly@survex.com>
35492         * xapian.spec.in: Removed %changelog - it hasn't been reliably updated
35493           and only really makes sense when the packaging is done by a third
35494           party anyway.
35496 Tue Apr 29 01:03:20 BST 2003  Fabrice Colin
35498         * xapian.spec.in: Fixed packaging of docs.
35500 Tue Apr 29 00:33:21 BST 2003  Olly Betts <olly@survex.com>
35502         * HACKING,testsuite/testsuite.cc,testsuite/testsuite.h: valgrind is
35503           now mostly hooked into the testsuite.
35504         * HACKING: Bison 1.875 doesn't work but Bison 1.875a probably does;
35505           suggest CXXFLAGS=-Werror, not CFLAGS.
35507 Tue Apr 29 00:14:00 BST 2003  Olly Betts <olly@survex.com>
35509         * INSTALL: Updated.
35511 Wed Apr 23 14:31:51 BST 2003  Olly Betts <olly@survex.com>
35513         * api/omtermlistiterator.cc,api/omtermlistiteratorinternal.h,
35514           api/omvalueiteratorinternal.h,backends/inmemory/inmemory_database.cc,
35515           backends/inmemory/inmemory_positionlist.cc,
35516           common/inmemory_positionlist.h: Added InMemoryPositionList ctor
35517           which takes the positions data to avoid needing to construct and
35518           immediately call set_data().
35520 Wed Apr 23 14:14:34 BST 2003  Olly Betts <olly@survex.com>
35522         * api/,backends/,common/,include/,matcher/: OmPositionListIterator
35523           -> Xapian::PositionListIterator, etc.
35525 Wed Apr 23 13:47:49 BST 2003  Olly Betts <olly@survex.com>
35527         * xapian.spec.in: Minor tweaks.
35529 Sun Apr 20 22:55:04 BST 2003  Olly Betts <olly@survex.com>
35531         * extra/omparsequery.h,include/xapian/stem.h,tests/api_db.cc,
35532           tests/api_nodb.cc,tests/api_posdb.cc,testsuite/backendmanager.cc:
35533           OmStem -> Xapian::Stem; OmExpandDecider -> Xapian::ExpandDecider.
35535 Sun Apr 20 22:52:42 BST 2003  Olly Betts <olly@survex.com>
35537         * configure.in,api/omenquire.cc,common/expand.h,
35538           common/omenquireinternal.h,docs/overview.html,include/,
35539           matcher/expand.cc,tests/api_db.cc: OmExpandDecider ->
35540           Xapian::ExpandDecider, etc.
35542 Sun Apr 20 22:42:32 BST 2003  Olly Betts <olly@survex.com>
35544         * PLATFORMS,api/,backends/,common/,docs/,include/,matcher/,net/,
35545           netprogs/,tests/,testsuite/: OmError -> Xapian::Error, etc.
35547 Fri Apr 18 22:40:31 BST 2003  Sam Liddicott <sam@liddicott.com>
35549         * matcher/multimatch.cc: Fixed so that it updates the OmMSetItem in
35550           the MSet with the collapse_count from the OmMSetItem twin in
35551           collapse_tab or we lose collapse_count if newer collapsing hits are
35552           less relevant than the hits they collapse over.  I think we need
35553           collapse_tab maybe to keep a reference to the item in the mset?  But
35554           this works for now.
35555         * xapian.spec.in: Fixed to also install include/xapian stuff
35557 Fri Apr 18 19:17:56 BST 2003  Olly Betts <olly@survex.com>
35559         * configure.in,include/Makefile.am,include/om/.cvsignore,
35560           include/om/Makefile.am,include/om/om.h,include/om/om.h.in,
35561           include/xapian/.cvsignore,include/xapian/Makefile.am,
35562           include/xapian/dir_contents,include/xapian/version.h.in:
35563           C++ ABI version checking is now done by xapian/version.h.
35565 Fri Apr 18 17:57:21 BST 2003  Olly Betts <olly@survex.com>
35567         * configure.in,api/omstem.cc,include/Makefile.am,include/om/om.h.in,
35568           include/om/omstem.h,include/xapian/.cvsignore,
35569           include/xapian/Makefile.am,include/xapian/base.h,
35570           include/xapian/stem.h: Reworked OmStem to use reference counted
35571           internals; renamed OmStem to Xapian::Stem and added a #define for
35572           compatibility with existing code.
35574 Fri Apr 18 17:02:56 BST 2003  Olly Betts <olly@survex.com>
35576         * api/,backends/,common/,docs/overview.html,docs/quickstart.html,
35577           docs/quickstartexpand.cc.html,extra/,include/om/,matcher/,net/,
35578           tests/,testsuite/: Use std::string instead of typedef-ing it as
35579           om_termname.  The typedef doesn't really buy us anything.  Keep
35580           a typedef for compatibility with existing code for now.
35582 Fri Apr 18 16:12:32 BST 2003  Olly Betts <olly@survex.com>
35584         * PLATFORMS: GCC 3.2.2 on Redhat 7.1 works with CXXFLAGS=-Werror
35586 Thu Apr 10 20:05:27 BST 2003  Olly Betts <olly@survex.com>
35588         * common/Makefile.am,common/indexer.h,testsuite/Makefile.am,
35589           testsuite/indexer.h: Moved indexer.h from common to testsuite
35590           and altered it to use iosfwd instead of iostream and to
35591           declare OmDocument as a class instead of include omdocument.h.
35593 Thu Apr 10 18:55:55 BST 2003  Olly Betts <olly@survex.com>
35595         * xapian-config.nodep.in: Removed --prefix and --exec-prefix - you
35596           can't reliably install Xapian with a different prefix to the one
35597           it was configured with, yet these options give the impression you
35598           can.
35600 Thu Apr 10 18:53:53 BST 2003  Olly Betts <olly@survex.com>
35602         * .cvsignore: Added config.sub.
35604 Thu Apr 10 02:41:50 BST 2003  Olly Betts <olly@survex.com>
35606         * NEWS,configure.in: Updated for 0.6.5 release.
35608 Thu Apr 10 02:29:12 BST 2003  Olly Betts <olly@survex.com>
35610         * docs/doxygen_api_footer.html_tmpl,docs/doxygen_full_footer.html_tmpl,
35611           docs/overview.html: Use http://www.doxygen.org/ as URL for doxygen.
35612         * docs/overview.html: Fixed bad link to our own website!
35614 Thu Apr 10 02:12:00 BST 2003  Olly Betts <olly@survex.com>
35616         * Makefile.am,backends/Makefile.am,backends/net/.cvsignore,
35617           backends/net/Makefile.am,netprogs/.cvsignore: Renamed libnetdb.la
35618           to libremote.la, and LIB_REMOTE1 to LIBNET_LA.
35620 Thu Apr 10 02:08:24 BST 2003  Olly Betts <olly@survex.com>
35622         * PLATFORMS: Updated mingw notes to reflect the change to
35623           automatically disable the remote backend when fork() isn't
35624           available.
35626 Thu Apr 10 01:56:34 BST 2003  Olly Betts <olly@survex.com>
35628         * docs/mkdoc.pl: Fixed to only look at directories listed in
35629           DIST_SUBDIRS.
35631 Thu Apr 10 00:23:28 BST 2003  Olly Betts <olly@survex.com>
35633         * configure.in: Automatically disable the remote backend if we don't
35634           have fork() since the remote backend requires it in several places;
35635           AM_CONDITIONAL ENABLE_SHARED isn't used anywhere so commented it
35636           out.
35638 Wed Apr 09 22:48:20 BST 2003  Olly Betts <olly@survex.com>
35640         * NEWS: Updated with recent changes.
35642 Wed Apr 09 22:43:31 BST 2003  Olly Betts <olly@survex.com>
35644         * docs/remote_protocol.html: Talk about Server/Client rather than
35645           ProgServer/ProgClient; reworked first paragraph.
35647 Wed Apr 09 13:23:05 BST 2003  Olly Betts <olly@survex.com>
35649         * docs/Makefile.am: Install docs in /usr/share/doc/xapian-core to be
35650           FHS compliant.
35651         * xapian.spec.in: Package quartzcheck and quartzcompact too; sorted
35652           out docs so they all install in the right place.
35654 Wed Apr 09 01:16:11 BST 2003  Olly Betts <olly@survex.com>
35656         * configure.in,backends/quartz/quartz_log.cc,
35657           backends/quartz/quartz_table_manager.cc,common/omdebug.cc,
35658           common/omdebug.h: Don't use HAVE_GETPID - if it's not set we assume
35659           GetCurrentProcessId() works, so it's cleaner to test with
35660           #ifdef WIN32 instead.
35662 Tue Apr 08 19:56:57 BST 2003  Olly Betts <olly@survex.com>
35664         * PLATFORMS: Updated with the results of many test builds.
35666 Tue Apr 08 19:55:15 BST 2003  Olly Betts <olly@survex.com>
35668         * configure.in,backends/quartz/Makefile.am,backends/quartz/btree.cc,
35669           netprogs/nettest.cc,common/getopt.h,common/omtime.h,common/utils.cc,
35670           common/utils.h,tests/Makefile.am,tests/api_db.cc: Now builds with
35671           Linux to mingw cross-compiler.
35672         * tests/Makefile.am: don't include findheaders.pl in the tarball -
35673           it's no longer used.
35674         * tests/internaltest.cc: removed "#include <dlfcn.h>" and disabled
35675           code which used to use it.
35676         * testsuite/backendmanager.cc,testsuite/backendmanager.h: fixed to
35677           work if any backends are disabled.
35679 Tue Apr 08 16:09:11 BST 2003  Olly Betts <olly@survex.com>
35681         * backends/quartz/btree.cc,backends/quartz/quartz_log.cc,
35682           backends/quartz/quartz_table_manager.cc,testsuite/testsuite.cc:
35683           Some fixes for building with Linux to mingw cross-compiler.
35685 Tue Apr 08 02:26:51 BST 2003  Olly Betts <olly@survex.com>
35687         * backends/quartz/btreetest.cc: If we don't have <sstream> and so are
35688           using our own stringstream implementation, we can't pass it as an
35689           ostream reference so BtreeCheck::check() can't be run in btreetest.
35690           This is only an issue on old compilers (for GCC <= 2.95.2 it seems)
35691           so just disable the checking in that case - it's probably not worth
35692           the effort of trying to make our stringstream a subclass of ostream.
35694 Tue Apr 08 01:20:36 BST 2003  Olly Betts <olly@survex.com>
35696         * testsuite/testsuite.cc: Updated unfinished hooks to use valgrind in
35697           the test harness.
35699 Fri Apr 04 03:12:27 BST 2003  Olly Betts <olly@survex.com>
35701         * api/omenquire.cc,api/omstem.cc,common/omdebug.cc: Fixed to compile
35702           when configure-d with --enable-debug-verbose --enable-debug=full.
35704 Fri Apr 04 03:10:53 BST 2003  Olly Betts <olly@survex.com>
35706         * common/omstringstream.h: Removed unused code for writing
35707           vector<string> to our own implementation of om_ostringstream.
35709 Fri Apr 04 03:08:35 BST 2003  Olly Betts <olly@survex.com>
35711         * api/ompostlistiterator.cc: Use "using namespace std;"; replaced
35712           gratuitous use of om_ostringstream.
35714 Fri Apr 04 03:07:05 BST 2003  Olly Betts <olly@survex.com>
35716         * tests/api_nodb.cc: Use "using namespace std;"; removed stray cout
35717           debug line.
35719 Wed Apr 02 16:54:50 BST 2003  Olly Betts <olly@survex.com>
35721         * tests/internaltest.cc: More Sun C++ fixes.
35722         * PLATFORMS: Updated.
35724 Wed Apr 02 16:39:48 BST 2003  Olly Betts <olly@survex.com>
35726         * tests/api_db.cc,net/tcpserver.cc,common/tcpserver.h: More Sun C++
35727           fettling.
35729 Wed Apr 02 15:42:54 BST 2003  Olly Betts <olly@survex.com>
35731         * matcher/emptymatch.h,tests/api_db.cc: More fixes for Sun C++.
35733 Wed Apr 02 15:13:58 BST 2003  Olly Betts <olly@survex.com>
35735         * api/omenquire.cc,api/omqueryinternal.cc,
35736           backends/inmemory/inmemory_database.h,common/document.h,
35737           common/netclient.h,common/netserver.h,common/networkstats.h,
35738           common/omlinebuf.h,common/stats.h,include/om/omerror.h,
35739           include/om/omerrorhandler.h,indexer/indexgraph/nodetest.cc,
35740           indexer/indexgraph/omindexerbuilder.cc,
35741           indexer/indexgraph/omindexerinternal.h,
35742           indexer/indexgraph/omstopwordnode.cc,
35743           indexer/indexgraph/regexcommon.h,indexer/indexgraph/toposort.h,
35744           tests/api_db.cc,tests/api_nodb.cc,testsuite/backendmanager.h:
35745           More fixes for Sun C++; removed many superfluous ";" after "}".
35747 Wed Apr 02 03:45:42 BST 2003  Olly Betts <olly@survex.com>
35749         * api/omdocument.cc,api/omenquire.cc,api/omtermlistiteratorinternal.h,
35750           backends/inmemory/inmemory_database.h,backends/quartz/btree.cc,
35751           backends/quartz/btree.h,common/alltermslist.h,common/expandweight.h,
35752           common/getopt.h,common/utils.h,include/om/omenquire.h,
35753           matcher/expandweight.cc,matcher/multimatch.cc,
35754           testsuite/backendmanager.h: Resolved various issues so that
35755           libxapian now builds with Sun's C++ compiler.  However
35756           libomqueryparser and the test programs don't yet.
35758 Tue Apr 01 02:52:57 BST 2003  Olly Betts <olly@survex.com>
35760         * backends/quartz/quartz_types.h: use "unsigned int" rather than
35761           "unsigned long int" so that quartz_tablesize_t matches om_doccount
35762           on 64 bit machines.
35764 Mon Mar 31 19:34:54 BST 2003  Olly Betts <olly@survex.com>
35766         * AUTHORS,xapian.spec.in: Merged in changes to RPM packaging from
35767           Fabrice Colin and reworked further.
35769 Fri Mar 28 20:04:04 GMT 2003  Olly Betts <olly@survex.com>
35771         * NEWS: Updated.
35773 Fri Mar 28 19:53:59 GMT 2003  Olly Betts <olly@survex.com>
35775         * README: Removed out-of-date sourceforge references; tidied up
35776           wording in places.
35778 Fri Mar 28 19:52:11 GMT 2003  Olly Betts <olly@survex.com>
35780         * HACKING: Removed out-of-date sourceforge references; tidied up
35781           wording in places; docs/tests.txt is now docs/tests.html .
35783 Fri Mar 28 17:35:15 GMT 2003  Olly Betts <olly@survex.com>
35785         * NEWS: Wrote most of the entries for the next release.
35787 Fri Mar 28 17:34:57 GMT 2003  Olly Betts <olly@survex.com>
35789         * docs/todo.xml: Updated.
35791 Thu Mar 27 05:42:41 GMT 2003  Olly Betts <olly@survex.com>
35793         * .cvsignore,Makefile.am,configure.in,docs/.cvsignore,docs/Makefile.am,
35794           docs/index.html,docs/todo2html.pl: removed machinery to generate
35795           TODO, TODO.release, docs/todo.html, and docs/todo-release.html from
35796           docs/todo.xml - bug and todo items will be tracked in bugzilla
35797           instead.
35799 Thu Mar 27 05:25:12 GMT 2003  Olly Betts <olly@survex.com>
35801         * docs/todo.xml: Removed completed items and those already fed into
35802           bugzilla.
35804 Thu Mar 27 05:17:05 GMT 2003  Olly Betts <olly@survex.com>
35806         * api/omstem.cc,include/om/omstem.h: Added default OmStem ctor,
35807           and "none" language.  Both of these give a stemmer object which
35808           leaves terms unchanged which should allow for simpler logic
35809           in programs using Xapian.  The default ctor also removes the
35810           need to mess with pointers in some cases.
35812 Thu Mar 27 04:52:27 GMT 2003  Olly Betts <olly@survex.com>
35814         * NEWS: Started to prepare for next release.
35816 Thu Mar 27 04:49:52 GMT 2003  Olly Betts <olly@survex.com>
35818         * include/om/omenquire.h,include/om/omerror.h: Improved documentation
35819           comments.
35821 Thu Mar 27 01:09:04 GMT 2003  Olly Betts <olly@survex.com>
35823         * docs/todo.xml,tests/api_db.cc: Added regression test for Quartz
35824           bug which caused problems with long terms on machines with signed
35825           chars.
35827 Wed Mar 26 20:30:18 GMT 2003  Olly Betts <olly@survex.com>
35829         * matcher/multimatch.cc: fixed interaction of collapsing and
35830           sort_bands == 1.
35832 Wed Mar 26 01:04:30 GMT 2003  Olly Betts <olly@survex.com>
35834         * matcher/multimatch.cc: Fixed sort_bands == 1 bug which would
35835           incorrectly reject many documents with a low score.
35837 Thu Mar 06 13:04:06 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35839         * docs/matcherdesign.html: Add writeup about document collapsing.
35841 Thu Mar 06 11:32:05 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35843         * Add collapse_count threshold checking to ensure that most
35844           relevant collapsed-away hit is more relevant than threshold
35845           (if specified)
35847 Mon Mar 03 14:04:56 GMT 2003  Olly Betts <olly@survex.com>
35849         * docs/quartzdesign.html: Corrected 2kB to 2KB.
35851 Fri Feb 28 10:11:04 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35853         * Add get_collapse_count() to OmMSetIterator
35854         * Add collapse_count to OmMSetItem
35855         * Add collapse_count tracking to get_mset()
35857 Thu Feb 27 15:28:08 GMT 2003  Olly Betts <olly@survex.com>
35859         * common/match.h,common/multimatch.h,matcher/multimatch.cc: Optimise
35860           the common sort_bands == 1 case better.
35861         * tests/api_db.cc: sortbands2 now tests 1 sortband as well as 10.
35863 Wed Feb 26 09:58:01 GMT 2003  Sam Liddicott <sam.liddicott@orange.co.uk>
35865         * bootstrap: Fix success message when building in non-src dir
35866           as configure is written to the src dir.
35868 Mon Feb 24 10:33:52 GMT 2003  Olly Betts <olly@survex.com>
35870         * matcher/multimatch.cc: Disabled (for now) sort_bands
35871           optimisation which is misbehaving.  Fixed forward ordered boolean
35872           optimisation broken by last check-in.
35873         * tests/api_db.cc: Added test_sortbands2 based on James' test code.
35875 Sun Feb 23 20:28:47 GMT 2003  Olly Betts <olly@survex.com>
35877         * matcher/multimatch.cc: Fixed problem with sort_bands when asking
35878           for an m-set which didn't start with the first match.
35880 Sun Jan 05 22:20:33 GMT 2003  Olly Betts <olly@survex.com>
35882         * testsuite/index_utils.cc: Handling of ^x was just downright wrong
35883           due to a typo.
35885 Sun Jan 05 22:19:56 GMT 2003  Olly Betts <olly@survex.com>
35887         * backends/quartz/.cvsignore: Ignore quartzcompact binary.
35889 Sun Jan 05 22:18:57 GMT 2003  Olly Betts <olly@survex.com>
35891         * extra/parsequerytest.cc: Fixed to build with GCC 2.95.
35893 Tue Dec 24 20:21:03 GMT 2002  Olly Betts <olly@survex.com>
35895         * NEWS: Added omega 0.6.4 changes.
35897 Tue Dec 24 19:53:10 GMT 2002  Olly Betts <olly@survex.com>
35899         * NEWS,PLATFORMS,configure.in: Version 0.6.4.
35901 Tue Dec 24 19:29:27 GMT 2002  Olly Betts <olly@survex.com>
35903         * backends/quartz/quartz_database.cc,backends/quartz/quartz_table.cc:
35904           Don't bother checking is position_list is empty - just delete it and
35905           let the layer below handle not having anything to delete.
35906         * backends/quartz/quartz_termlist.cc,docs/todo.xml: Fixed unpacking
35907           of termlist on platforms where char is signed.
35909 Tue Dec 24 05:48:06 GMT 2002  Olly Betts <olly@survex.com>
35911         * backends/quartz/quartz_database.cc: Fixed double setting of position
35912           list when updating a document with term position information.  The
35913           behaviour before was correct, just inefficient.
35915 Mon Dec 23 04:44:46 GMT 2002  Olly Betts <olly@survex.com>
35917         * docs/todo.xml: Updated.
35919 Mon Dec 23 03:22:19 GMT 2002  Olly Betts <olly@survex.com>
35921         * extra/parsequery.yy: If a stemmed form with a "." is in the query,
35922           include the "." on the form in the unstem multimap.
35924 Sun Dec 22 21:44:06 GMT 2002  Olly Betts <olly@survex.com>
35926         * extra/omparsequery.h,extra/parsequery.yy,extra/parsequerytest.cc:
35927           Added support for searching probabilistic fields (using
35928           <field>:<term>).
35930 Sat Dec 21 01:38:59 GMT 2002  Olly Betts <olly@survex.com>
35932         * configure.in: Don't include "om.h" in APIDOC_SRC, otherwise
35933           people building from source will need to regenerate the source
35934           docs which will require them to have doxygen installed.
35936 Fri Dec 20 15:39:51 GMT 2002  James Aylett  <james@tartarus.org>
35938         * Bindings build using SWIG 1.3.14u-20020706-1222, with very
35939           basic functionality tested with the Python target.
35941 Fri Dec 20 12:38:26 GMT 2002  James Aylett  <tartarus@users.sourceforge.net>
35943         * Tidied up some bindings-related issues, including changes to
35944           the Python bindings to work with Python 2.2. This probably won't
35945           compile as it stands, but it's disabled anyway.
35947 Sun Dec 15 18:23:42 GMT 2002  Olly Betts <olly@survex.com>
35949         * api/omdatabase.cc,backends/muscat36/da_database.cc,
35950           backends/muscat36/db_database.cc,matcher/phrasepostlist.cc:
35951           Muscat 3.6 DA and DB databases don't have word position information.
35952           Instead of throwing an exception when this information is requested,
35953           return an empty position list (i.e. behave as a quartz database with
35954           no position information would).
35956 Sun Dec 15 03:08:28 GMT 2002  Olly Betts <olly@survex.com>
35958         * backends/muscat36/: DADatabase and DBDatabase ctors need to public
35959           so that they can called from the database factory functions.
35960         * api/omenquire.cc,backends/muscat36/,backends/quartz/btree.cc,
35961           tests/api_db.cc: Fixed compilation warnings.
35963 Sat Dec 14 23:02:55 GMT 2002  Olly Betts <olly@survex.com>
35965         * docs/quartzdesign.html,docs/todo.xml: Updated.
35967 Sat Dec 14 22:57:41 GMT 2002  Olly Betts <olly@survex.com>
35969         * backends/quartz/Makefile.am,backends/quartz/quartzcheck.cc,
35970           backends/quartz/quartzcompact.cc,backends/quartz/quartzdump.cc:
35971           Enhanced quartzcheck to check all the btrees in a quartz database
35972           if passed a directory name.  It also default to "v" rather than
35973           "+" which is more appropriate for an end user checking if tables
35974           in a non-trivial sized database are corrupt.  Added quartzcompact
35975           utility to make a copy of a quartz database with full compaction
35976           turned on - this results in a smaller database which is faster to
35977           search.  The next update will result in a lot of block splitting
35978           though (since all blocks are as full as possible).
35980 Sat Dec 14 16:28:11 GMT 2002  Olly Betts <olly@survex.com>
35982         * NEWS: Updated for 0.6.3 release.
35984 Sat Dec 14 04:28:16 GMT 2002  Olly Betts <olly@survex.com>
35986         * PLATFORMS,configure.in: Version 0.6.3.
35988 Sat Dec 14 03:54:08 GMT 2002  Olly Betts <olly@survex.com>
35990         * extra/omparsequery.h,extra/parsequery.yy: Create an "unstem" multimap
35991           so users can convert the stemmed terms back into their query
35992           representation.
35994 Sat Dec 14 03:48:27 GMT 2002  Olly Betts <olly@survex.com>
35996         * docs/todo.xml: Updated.
35998 Sat Dec 14 02:37:41 GMT 2002  Olly Betts <olly@survex.com>
36000         * docs/todo.xml: Updated.
36002 Sat Dec 14 02:26:29 GMT 2002  Olly Betts <olly@survex.com>
36004         * docs/remote_protocol.html,net/socketclient.cc,net/socketserver.cc:
36005           Updated remote protocol description.
36007 Sat Dec 14 02:05:59 GMT 2002  Olly Betts <olly@survex.com>
36009         * docs/: Updated.
36011 Fri Dec 13 23:43:23 GMT 2002  Olly Betts <olly@survex.com>
36013         * include/om/om.h.in: Removed bogus // in the middle of a comment.
36015 Fri Dec 13 22:17:41 GMT 2002  Olly Betts <olly@survex.com>
36017         * configure.in,testsuite/testsuite.cc: Added hooks for using valgrind
36018           to find leaks in the test suite.  Just need to sort out suitable
36019           hooks in valgrind now!
36021 Fri Dec 13 19:57:23 GMT 2002  Olly Betts <olly@survex.com>
36023         * docs/: OmSettings removal updates.
36025 Fri Dec 13 19:44:23 GMT 2002  Olly Betts <olly@survex.com>
36027         * bindings/: Made a start updating bindings for OmSettings removal.
36029 Fri Dec 13 19:13:36 GMT 2002  Olly Betts <olly@survex.com>
36031         * api/omenquire.cc,common/omenquireinternal.h,include/om/omenquire.h,
36032           net/socketclient.cc,tests/api_db.cc: Finished removal of OmSettings
36033           - all tests now pass once more!
36035 Fri Dec 13 16:35:12 GMT 2002  Olly Betts <olly@survex.com>
36037         * api/,backends/quartz/quartz_table_manager.h,common/,docs/,include/,
36038           matcher/,net/,tests/internaltest.cc: Removed last use of OmSettings.
36039           Just a check-point check in - the code compiles, but doesn't pass
36040           tests yet.
36042 Fri Dec 13 12:53:01 GMT 2002  Olly Betts <olly@survex.com>
36044         * netprogs/nettest.cc: Updated disabled code to use new database
36045           factory functions; Added "using namespace std;".
36047 Thu Dec 12 23:52:32 GMT 2002  Olly Betts <olly@survex.com>
36049         * docs/todo.xml: Tidied my desk and converted lots of scraps of paper
36050           to todo entries.
36052 Thu Dec 12 16:43:22 GMT 2002  Olly Betts <olly@survex.com>
36054         * backends/quartz/btree.cc: Added workaround for shared_level problem;
36055           Improved error reporting.
36057 Thu Dec 12 01:05:00 GMT 2002  Olly Betts <olly@survex.com>
36059         * docs/overview.html: Updated docs on stub databases.
36061 Wed Dec 11 20:49:11 GMT 2002  Olly Betts <olly@survex.com>
36063         * api/omdatabaseinternal.cc,include/om/omdatabase.h,tests/api_db.cc:
36064           Reimplemented stub databases in the new scheme of things.
36065         * backends/inmemory/: fully disabled inmemory_errornext and
36066           inmemory_abortnext code.
36068 Tue Dec 10 13:47:44 GMT 2002  Olly Betts <olly@survex.com>
36070         * HACKING: Added note that Bison 1.50 seems to work with Xapian's
36071           .yy files.
36073 Mon Dec 09 20:13:00 GMT 2002  Olly Betts <olly@survex.com>
36075         * api/omenquire.cc,common/omenquireinternal.h,docs/todo.xml,
36076           include/om/omenquire.h,tests/api_db.cc: OmEnquire::get_eset()
36077           now takes a flags argument of bit constants |-ed together
36078           instead of 2 bools.
36080 Mon Dec 09 12:52:38 GMT 2002  Olly Betts <olly@survex.com>
36082         * backends/quartz/btree.cc,backends/quartz/btree.h: Applied patch
36083           from Martin Porter with better fix for sequential addition bug.
36085 Mon Dec 09 09:57:42 GMT 2002  Olly Betts <olly@survex.com>
36087         * docs/todo.xml: Updated.
36089 Mon Dec 09 07:32:46 GMT 2002  Olly Betts <olly@survex.com>
36091         * backends/quartz/quartztest.cc: Corrected name of database used
36092           by test adddoc2 (was using testdb_adddoc1!)
36094 Mon Dec 09 05:10:09 GMT 2002  Olly Betts <olly@survex.com>
36096         * backends/quartz/quartz_postlist.cc,backends/quartz/quartz_table.cc:
36097           More fettling.
36099 Mon Dec 09 04:48:39 GMT 2002  Olly Betts <olly@survex.com>
36101         * backends/quartz/: Minor code fettle.
36103 Mon Dec 09 03:32:11 GMT 2002  Olly Betts <olly@survex.com>
36105         * backends/quartz/quartz_postlist.cc: Gratuitous layout fettling.
36107 Mon Dec 09 03:30:27 GMT 2002  Olly Betts <olly@survex.com>
36109         * docs/quartzdesign.html: Improved wording and punctuation in 3
36110           places.
36112 Mon Dec 09 03:25:09 GMT 2002  Olly Betts <olly@survex.com>
36114         * common/,docs/todo.xml,include/om/omenquire.h,matcher/,
36115           net/socketclient.cc,net/socketserver.cc,netprogs/omprogsrv.cc,
36116           netprogs/omtcpsrv.cc: Fixed the remote backend to handle non-default
36117           weighting schemes.  You can now even implement your own weighting
36118           scheme and use it with the remote backend provided you register it
36119           with SocketServer at runtime.
36121 Sat Dec 07 21:18:39 GMT 2002  Olly Betts <olly@survex.com>
36123         * PLATFORMS: Updated.
36125 Sat Dec 07 21:09:52 GMT 2002  Olly Betts <olly@survex.com>
36127         * NEWS,PLATFORMS,configure.in: Version 0.6.2.
36129 Sat Dec 07 20:24:46 GMT 2002  Olly Betts <olly@survex.com>
36131         * NEWS: Updated.
36133 Sat Dec 07 20:21:41 GMT 2002  Olly Betts <olly@survex.com>
36135         * docs/quickstart.html: Fixed parameters passed to OmQuartz__open().
36137 Sat Dec 07 20:17:42 GMT 2002  Olly Betts <olly@survex.com>
36139         * backends/quartz/quartztest.cc: Fixed parameters passed to
36140           OmQuartz__open().
36142 Sat Dec 07 16:41:25 GMT 2002  Olly Betts <olly@survex.com>
36144         * docs/tests.html,testsuite/testsuite.cc: The testsuite won't install
36145           its signal handler if XAPIAN_SIG_DFL is set.
36147 Sat Dec 07 16:39:01 GMT 2002  Olly Betts <olly@survex.com>
36149         * HACKING: OM_DEBUG_XXX -> XAPIAN_DEBUG_YYY.
36151 Sat Dec 07 04:48:37 GMT 2002  Olly Betts <olly@survex.com>
36153         * backends/quartz/btree.cc: max_item_size wasn't being set due to
36154           some over-zealous code pruning.  It was defaulting to 0, and
36155           was causing the code to write off the end of allocated memory
36156           blocks.
36158 Sat Dec 07 03:22:05 GMT 2002  Olly Betts <olly@survex.com>
36160         * backends/inmemory/,matcher/multimatch.cc: Minor code tidying.
36161         * backends/quartz/btree.cc: Added Assert in Btree::add() to detect
36162           running off end of buffer.
36164 Sat Dec 07 03:20:52 GMT 2002  Olly Betts <olly@survex.com>
36166         * matcher/localmatch.cc: fixed handling of wtscheme() - we were
36167           trying to use it for the extra weights, and then double
36168           deleting it!
36170 Fri Dec 06 23:05:22 GMT 2002  Olly Betts <olly@survex.com>
36172         * api/omstem.cc,backends/quartz/,common/omdebug.cc,common/utils.h,
36173           matcher/tradweight.cc,net/socketcommon.cc,net/tcpclient.cc,
36174           tests/api_db.cc: Fixed to build with configure --enable-debug=full.
36176 Fri Dec 06 23:01:08 GMT 2002  Olly Betts <olly@survex.com>
36178         * common/omdebug.cc,common/omdebug.h: Fixed permissions on newly
36179           created log file (was getting 000!); Simplified class internals;
36180           Renamed env vars: OM_DEBUG_FILE is now XAPIAN_DEBUG_LOG,
36181           OM_DEBUG_TYPES is now XAPIAN_DEBUG_FLAGS (old versions still work
36182           for now).
36184 Fri Dec 06 22:58:57 GMT 2002  Olly Betts <olly@survex.com>
36186         * testsuite/testsuite.cc: Fixed so running "gdb .libs/apitest"
36187           finds srcdir (for an in-tree build at least).
36189 Fri Dec 06 03:51:35 GMT 2002  Olly Betts <olly@survex.com>
36191         * common/,include/om/omenquire.h,matcher/localmatch.h,matcher/rset.cc,
36192           matcher/stats.cc: Fixed to compile with GCC 3.0.
36194 Thu Dec 05 23:28:29 GMT 2002  Olly Betts <olly@survex.com>
36196         * include/om/omdatabase.h: Added missing "std::".
36198 Thu Dec 05 23:27:57 GMT 2002  Olly Betts <olly@survex.com>
36200         * docs/remote.html: Updated from OmSettings to factory functions.
36202 Thu Dec 05 23:26:42 GMT 2002  Olly Betts <olly@survex.com>
36204         * PLATFORMS: ixion is actually Linux 2.2.
36206 Thu Dec 05 04:32:40 GMT 2002  Olly Betts <olly@survex.com>
36208         * testsuite/backendmanager.cc: Fixed BackendManager::do_getdb_quartz()
36209           and do_getwritedb_quartz() to work correctly and so resolved some
36210           test failures.
36212 Wed Dec 04 03:35:12 GMT 2002  Olly Betts <olly@survex.com>
36214         * api/omdatabaseinternal.cc,backends/quartz/,docs/todo.xml,
36215           include/om/omdatabase.h: Replace create and allow_overwrite
36216           boolean flags with OM_DB_XXX constants.  And we now support
36217           OM_DB_CREATE_OR_OPEN which is a common action to want to
36218           perform, but was fiddly to achieve before.
36220 Tue Dec 03 23:59:30 GMT 2002  Olly Betts <olly@survex.com>
36222         * docs/todo.xml: Updated.
36224 Tue Dec 03 23:26:27 GMT 2002  Olly Betts <olly@survex.com>
36226         * api/omenquire.cc,backends/quartz/quartz_postlist.h,common/,
36227           docs/omsettings,docs/todo.xml,include/om/omenquire.h,matcher/,
36228           net/socketcommon.cc,net/socketserver.cc,tests/api_db.cc,
36229           tests/api_posdb.cc: Weighting schemes are now specified by passing
36230           in a weighting object, rather than via OmSetttings.  The weight
36231           class can be sub-classed by the library user to allow them to
36232           specify their own weighting scheme).  Everything works apart
36233           from the remote backend where the weighting scheme type and
36234           parameters aren't passed across the link.
36236 Mon Dec 02 20:12:31 GMT 2002  Olly Betts <olly@survex.com>
36238         * NEWS: Updated with changes since 0.6.1.
36240 Mon Dec 02 19:44:37 GMT 2002  Olly Betts <olly@survex.com>
36242         * api/ompostlistiterator.cc,backends/multi/multi_postlist.h,
36243           common/irweight.h,common/leafpostlist.h,matcher/: IRWeight
36244           renamed to OmWeight in preparation for making it externally
36245           visible.
36247 Mon Dec 02 18:10:55 GMT 2002  Olly Betts <olly@survex.com>
36249         * matcher/bm25weight.cc,matcher/irweight.cc,matcher/tradweight.cc,
36250           matcher/tradweight.h: Started to rework weighting scheme code.
36252 Mon Dec 02 17:36:21 GMT 2002  Olly Betts <olly@survex.com>
36254         * api/omdatabaseinternal.cc,backends/quartz/quartz_table_manager.cc:
36255           Tidying up after the recent backend reworking.
36257 Mon Dec 02 03:59:39 GMT 2002  Olly Betts <olly@survex.com>
36259         * matcher/: Changed BoolWeight ctor not to take an OmSettings
36260           parameter which is simply ignored.
36262 Mon Dec 02 01:35:41 GMT 2002  Olly Betts <olly@survex.com>
36264         * include/om/omdatabase.h: Added documentation comments for all of
36265           the database factory functions.
36267 Sun Dec 01 21:45:49 GMT 2002  Olly Betts <olly@survex.com>
36269         * include/om: Added \file documentation comments so doxygen
36270           extracts documentation for functions too.
36271         * docs/: Made a start on updating for the new database factory
36272           functions.
36274 Sun Dec 01 15:38:10 GMT 2002  Olly Betts <olly@survex.com>
36276         * api/,backends/,common/,docs/omsettings,docs/todo.xml,
36277           include/om/omdatabase.h,netprogs/,tests/,testsuite/backendmanager.cc,
36278           testsuite/backendmanager.h: No longer use OmSettings to specify
36279           parameters for constructing databases.  Instead there's a factory
36280           function for each database type - temporary naming scheme is
36281           OmXxx__open(), mostly because it's easy to grep for later.  At
36282           present stub databases and the machinery in InMemory to allow
36283           the multierrhandler1 test aren't working.  Everything else should
36284           be.
36286 Thu Nov 28 20:15:47 GMT 2002  Olly Betts <olly@survex.com>
36288         * api/omenquire.cc,common/omenquireinternal.h,docs/omsettings,
36289           docs/overview.html,include/om/omenquire.h,tests/api_db.cc:
36290           No longer use OmSettings in OmEnquire::get_eset(); fixed
36291           reversed sense of use_query_terms (and fixed reversed sense
36292           test in apitest which meant this wasn't spotted).
36294 Thu Nov 28 20:14:54 GMT 2002  Olly Betts <olly@survex.com>
36296         * docs/index.html: Link to annotated class lists in doxygen generated
36297           documentation rather than rather empty index page.
36299 Thu Nov 28 02:23:33 GMT 2002  Olly Betts <olly@survex.com>
36301         * configure.in,NEWS: Version 0.6.1.
36303 Thu Nov 28 01:38:05 GMT 2002  Olly Betts <olly@survex.com>
36305         * PLATFORMS: Updated.
36307 Thu Nov 28 01:33:25 GMT 2002  Olly Betts <olly@survex.com>
36309         * backends/quartz/: Fixed to compile with GCC 3.0.
36311 Thu Nov 28 01:32:31 GMT 2002  Olly Betts <olly@survex.com>
36313         * PLATFORMS: Updated with test results from 0.5.4 release.
36315 Wed Nov 27 22:11:38 GMT 2002  Olly Betts <olly@survex.com>
36317         * backends/quartz/btree.h: fixed "public:" bodge added during
36318           factoring-out of BtreeCheck.
36320 Wed Nov 27 05:01:14 GMT 2002  Olly Betts <olly@survex.com>
36322         * NEWS,PLATFORMS,configure.in: Updated for 0.6.0 release.
36324 Wed Nov 27 05:00:39 GMT 2002  Olly Betts <olly@survex.com>
36326         * AUTHORS,HACKING: Removed or replaced sourceforge.net URLs.
36328 Wed Nov 27 04:58:29 GMT 2002  Olly Betts <olly@survex.com>
36330         * docs/quartzdesign.html: Reworded "under development" warning;
36331           Updated Btree::check(), which is now BtreeCheck::check().
36333 Wed Nov 27 01:36:26 GMT 2002  Olly Betts <olly@survex.com>
36335         * backends/quartz/btreecheck.cc,backends/quartz/btreecheck.h,
36336           backends/quartz/btreetest.cc: Tidied up BtreeCheck - btreetest now
36337           sends check output to tout so it's only displayed if the check fails
36338           (or btreetest is run with -v).
36340 Tue Nov 26 19:47:24 GMT 2002  Olly Betts <olly@survex.com>
36342         * backends/quartz/: Split the btree checking code out into a separate
36343           file, so it's not linked in when we don't need it.
36345 Tue Nov 26 05:47:32 GMT 2002  Olly Betts <olly@survex.com>
36347         * backends/quartz/btree.cc: Suppress all output from a successful
36348           Btree::Check() is no options are specified, so that btreetest
36349           generates clean output when all tests pass.
36351 Tue Nov 19 02:08:30 GMT 2002  Olly Betts <olly@survex.com>
36353         * NEWS: Updated.
36355 Tue Nov 19 01:46:35 GMT 2002  Olly Betts <olly@survex.com>
36357         * backends/quartz/btree.cc,backends/quartz/btree.h,
36358           backends/quartz/btreetest.cc,backends/quartz/quartztest.cc,
36359           docs/quartzdesign.html: Quartz B-tree minimum blocksize is
36360           now 2048 bytes (as was in fact documented already).  This
36361           means the max term length is now always 252 bytes.
36363 Mon Nov 18 22:16:57 GMT 2002  Olly Betts <olly@survex.com>
36365         * api/omenquire.cc,matcher/expand.cc,matcher/expandweight.cc:
36366           Bit of an expand tidy up.
36368 Mon Nov 18 19:49:09 GMT 2002  Olly Betts <olly@survex.com>
36370         * backends/quartz/quartz_termlist.cc: I'd put the new termlist stuff
36371           in the disabled branch of a "#ifdef" so it wasn't being used!  Fixed
36372           this and made it actually compile as an encore.
36374 Mon Nov 18 02:51:55 GMT 2002  Olly Betts <olly@survex.com>
36376         * docs/todo.xml: Retargetted 0.6 tasks for 0.7 or 0.8; updated a few
36377           entries.
36379 Mon Nov 18 02:28:55 GMT 2002  Olly Betts <olly@survex.com>
36381         * docs/quartzdesign.html,backends/quartz/: We can just store the term
36382           name raw in position list key, since we know its length from the key
36383           length; tweaked storing of deltas to store (delta - 1) as 0 is
36384           invalid.
36386 Mon Nov 18 00:47:54 GMT 2002  Olly Betts <olly@survex.com>
36388         * backends/quartz/quartz_termlist.cc: First cut of compressed term
36389           lists.
36391 Sun Nov 17 20:19:23 GMT 2002  Olly Betts <olly@survex.com>
36393         * backends/quartz/quartz_lexicon.cc,backends/quartz/quartz_values.cc:
36394           Use new pack_uint_last() and unpack_uint_last() where appropriate.
36396 Sun Nov 17 20:03:24 GMT 2002  Olly Betts <olly@survex.com>
36398         * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h:
36399           Added a more compact integer packing for the last integer in
36400           a key or tag.
36402 Sun Nov 17 18:54:05 GMT 2002  Olly Betts <olly@survex.com>
36404         * backends/quartz/btree.cc,backends/quartz/btree.h: more
36405           int -> bool changes.
36406         * backends/quartz/btree_base.cc: Clarified comments.
36408 Sun Nov 17 14:19:30 GMT 2002  Olly Betts <olly@survex.com>
36410         * docs/quartzdesign.html: Updated to reflect removal of Btree_item.
36412 Sun Nov 17 14:12:12 GMT 2002  Olly Betts <olly@survex.com>
36414         * backends/quartz/: Eliminate Btree_item - wherever it's used we
36415           only actually want the tag or key, so it's cleaner and clearer
36416           to just pass a pointer to a string.
36418 Sun Nov 17 13:34:08 GMT 2002  Olly Betts <olly@survex.com>
36420         * backends/quartz/,docs/quartzdesign.html: Quartz mini-overhaul:
36421           Removed Btree::Bcursor_create() and just made Bcursor's ctor
36422           public - now you can just create a Bcursor on the stack rather
36423           than being forced to use AutoPtr; removed valid_handle - the
36424           code is clearer without it; sys_close now inlined from header;
36425           changed int/char to bool where appropriate; changed some methods
36426           which now always throw on error to return void not bool; moved
36427           quartztest's test_btree1 to btreetest as test_simple1; changed
36428           a few remaining uses of "struct Btree" to just plain "Btree";
36429           brought the btree docs in quartzdesign.html up-to-date, apart
36430           from the error handling section.
36432 Sat Nov 16 01:45:28 GMT 2002  Olly Betts <olly@survex.com>
36434         * backends/inmemory/inmemory_database.cc,
36435           backends/inmemory/inmemory_database.h,
36436           backends/quartz/quartz_table.cc: Tidying up odds and ends.
36438 Fri Nov 15 17:46:38 GMT 2002  Olly Betts <olly@survex.com>
36440         * NEWS: Updated ready for 0.6.0 with changes made so far.
36442 Fri Nov 15 17:06:58 GMT 2002  Olly Betts <olly@survex.com>
36444         * testsuite/testsuite.cc: Avoid double debug output if we get a
36445           signal inside the testsuite code itself.
36447 Fri Nov 15 17:00:15 GMT 2002  Olly Betts <olly@survex.com>
36449         * backends/quartz/btree_api.txt,docs/Makefile.am,docs/index.html,
36450           docs/quartzdesign.html,docs/remote_protocol.html,
36451           net/README_progprotocol.txt: Converted Btree API documentation
36452           to HTML and add it to the quartz design document; converted the
36453           (seriously out of date) remote protocol document to HTML, moved it
36454           into docs/, and linked it in.
36456 Fri Nov 15 13:05:06 GMT 2002  Olly Betts <olly@survex.com>
36458         * backends/quartz/quartz_record.cc,backends/quartz/quartz_utils.h,
36459           docs/quartzdesign.html: Changed encoding of keys for quartz record
36460           and termlist tables.
36462 Fri Nov 15 12:54:39 GMT 2002  Olly Betts <olly@survex.com>
36464         * backends/quartz/quartz_table_entries.cc: Fixed
36465           QuartzTableEntries::empty() which would never return true before.
36467 Fri Nov 15 03:08:49 GMT 2002  Olly Betts <olly@survex.com>
36469         * backends/quartz/btree_api.txt: Fixed typos.
36471 Fri Nov 15 03:06:41 GMT 2002  Olly Betts <olly@survex.com>
36473         * backends/quartz/quartztest.cc,backends/quartz/btreetest.cc:
36474           added another test (btreetest: emptykey1) and added extra
36475           checks to existing tests.
36477 Thu Nov 14 01:59:06 GMT 2002  Olly Betts <olly@survex.com>
36479         * matcher/multimatch.cc,tests/api_db.cc,docs/todo.xml:
36480           match_sort_bands code fettled, and added regression test for the
36481           >100% problem (test_sortbands1).
36483 Tue Nov 12 00:00:44 GMT 2002  Olly Betts <olly@survex.com>
36485         * backends/inmemory/inmemory_database.h,backends/quartz/,
36486           include/om/omtypes.h: Pushed average length calc down into
36487           QuartzRecordManager; removed unnecessary types om_totlength
36488           and om_termid.
36490 Mon Nov 11 18:10:23 GMT 2002  Olly Betts <olly@survex.com>
36492         * docs/index.html: Fixed broken link.
36494 Mon Nov 11 18:07:41 GMT 2002  Olly Betts <olly@survex.com>
36496         * backends/quartz/,docs/quartzdesign.html: Store next free docid
36497           and total doc length in the same tag in QuartzRecord.
36499 Wed Nov 06 22:38:40 GMT 2002  Olly Betts <olly@survex.com>
36501         * backends/quartz/quartz_database.cc,backends/quartz/quartz_database.h:
36502           Eliminated QuartzDatabase::get_doccount_internal() and
36503           QuartzDatabase::get_avlength_internal() - now the thread
36504           locking code has gone, the indirection serves no purpose.
36506 Wed Nov 06 17:50:12 GMT 2002  Olly Betts <olly@survex.com>
36508         * backends/quartz/: Removed QuartzBufferedTable::write() (unused and
36509           unimplemented), and merged QuartzBufferedTable::write_internal()
36510           into QuartzBufferedTable::write_internal().
36512 Wed Nov 06 01:56:41 GMT 2002  Olly Betts <olly@survex.com>
36514         * backends/quartz/: disable quartz lexicon table unless USE_LEXICON
36515           is defined.
36517 Wed Nov 06 01:54:30 GMT 2002  Olly Betts <olly@survex.com>
36519         * docs/overview.html: Corrected link to API docs on website.
36521 Mon Nov 04 02:35:22 GMT 2002  Olly Betts <olly@survex.com>
36523         * include/om/omerror.h,net/omerr_string.cc,netprogs/omprogsrv.cc,
36524           netprogs/omtcpsrv.cc,testsuite/testsuite.cc: don't use typeid().
36526 Mon Nov 04 01:31:47 GMT 2002  Olly Betts <olly@survex.com>
36528         * testsuite/testsuite.cc: Catch by const reference.
36530 Mon Nov 04 01:18:53 GMT 2002  Olly Betts <olly@survex.com>
36532         * HACKING: Added note about use of various C++ features.  Also
36533           tidied up various odds and ends.
36535 Sun Nov 03 22:59:34 GMT 2002  Olly Betts <olly@survex.com>
36537         * api/omdatabaseinternal.cc: Eliminated entirely superfluous use of
36538           dynamic_cast.
36540 Sun Nov 03 22:46:34 GMT 2002  Olly Betts <olly@survex.com>
36542         * matcher/multimatch.cc,common/database.h,common/net_database.h:
36543           Replace Database::is_network() with Database::as_networkdatabase()
36544           which returns a pointer or NULL.  This eliminates the need to use
36545           dynamic_cast in MultiMatch.
36547 Wed Oct 23 05:24:14 BST 2002  Olly Betts <olly@survex.com>
36549         * docs/todo.xml: Resolved TODO entry by consulting Stroustrup
36550           (it is safe to throw and catch an exception in a destructor,
36551           even when that destructor is being called during a stack unwind
36552           caused by an exception being thrown).
36554 Wed Oct 16 20:05:39 BST 2002  Olly Betts <olly@survex.com>
36556         * backends/quartz/btreetest.cc: Suppress (most) output from
36557           Btree::check unless verbose (-v) is enabled.
36559 Mon Oct 14 15:13:18 BST 2002  Olly Betts <olly@survex.com>
36561         * testsuite/testsuite.cc: Fixed compilation problem with std:: on
36562           GCC 3.2.
36564 Mon Oct 14 15:07:03 BST 2002  Olly Betts <olly@survex.com>
36566         * api/omstem.cc: French and Finnish stemmers were switched!
36568 Mon Oct 14 02:49:12 BST 2002  Olly Betts <olly@survex.com>
36570         * backends/quartz/quartz_utils.h: change sort preserving packing for
36571           strings.  This one does better provided the strings being packed
36572           don't contain many zero bytes (which is true of the termnames which
36573           we pack with this).
36575 Mon Oct 14 02:45:20 BST 2002  Olly Betts <olly@survex.com>
36577         * tests/stemtest.cc: Updated to reflect new naming of stemming test
36578           data.
36580 Sun Oct 13 17:06:26 BST 2002  Olly Betts <olly@survex.com>
36582         * docs/todo.xml: Updated.
36584 Sun Oct 13 16:40:24 BST 2002  Olly Betts <olly@survex.com>
36586         * api/omstem.cc,backends/quartz/,common/,extra/omparsequery.h,matcher/,
36587           net/socketclient.cc: Added private copy ctors and assignment
36588           operators to classes with pointer members (which shouldn't be
36589           copied).
36591 Sun Oct 13 15:12:40 BST 2002  Olly Betts <olly@survex.com>
36593         * docs/todo.xml: Updated.
36595 Sun Oct 13 02:33:57 BST 2002  Olly Betts <olly@survex.com>
36597         * .cvsignore: Added install-sh.
36599 Sun Oct 13 02:16:31 BST 2002  Olly Betts <olly@survex.com>
36601         * backends/quartz/{quartz_lexicon.cc,quartz_lexicon.h}: key to lexicon
36602           is now simply the termname - no need to encode the length there too
36603           since the Btree knows how long the key is.
36604         * backends/quartz/{quartz_table_manager.cc,quartz_values.cc}: finished
36605           the terminology change from "attribute" to "value" (including
36606           renaming the btree files, which is why it wasn't done before).
36608 Sun Oct 13 02:09:00 BST 2002  Olly Betts <olly@survex.com>
36610         * tests/api_db.cc: Snowball stems "this" to "this" rather than "thi",
36611           so update apitest source to reflect this.
36613 Sun Oct 13 01:03:04 BST 2002  Olly Betts <olly@survex.com>
36615         * configure.in: Removed references to languages/*/Makefile.
36617 Sun Oct 13 00:50:01 BST 2002  Olly Betts <olly@survex.com>
36619         * docs/indexerquickstart.html,docs/quartzdesign.html: Updated.
36621 Sat Oct 12 23:34:52 BST 2002  Olly Betts <olly@survex.com>
36623         * languages/{api.c,api.h,header.h,utilities.c}: 4 new files.
36625 Sat Oct 12 23:29:50 BST 2002  Olly Betts <olly@survex.com>
36627         * languages/: removed all the old .cvsignore files.
36629 Sat Oct 12 22:34:01 BST 2002  Olly Betts <olly@survex.com>
36631         * api/omstem.cc,docs/stemming.html,docs/todo.xml,languages/: Replaced
36632           our stemmers with those from Snowball.  Note that these give better
36633           results, but this also means that existing databases won't work
36634           quite correctly if they contain stemmed terms.
36636 Sat Oct 12 17:17:26 BST 2002  Olly Betts <olly@survex.com>
36638         * configure.in,NEWS: Version 0.5.3.
36640 Sat Oct 12 16:49:50 BST 2002  Olly Betts <olly@survex.com>
36642         * PLATFORMS,api/omvalueiteratorinternal.h,extra/parsequery.yy,
36643           include/om/omdocument.h: Fixed std:: namespace issues to
36644           allow compilation with GCC 3 once again.
36646 Sat Oct 12 15:43:22 BST 2002  Olly Betts <olly@survex.com>
36648         * docs/todo.xml: Updated.
36650 Fri Oct 11 02:14:47 BST 2002  Olly Betts <olly@survex.com>
36652         * backends/quartz/Makefile.am: Include test data for btreetest
36653           in distribution tarball.
36655 Fri Oct 11 01:43:03 BST 2002  Olly Betts <olly@survex.com>
36657         * backends/quartz/{z_note,z_sequence,z_Cversion/,z_make/,z_test/}:
36658           Removed all the unused old C btree stuff.
36660 Thu Oct 10 17:32:10 BST 2002  Olly Betts <olly@survex.com>
36662         * backends/quartz/{btree.cc,btree.h}: More Btree tidying.
36664 Thu Oct 10 17:14:28 BST 2002  Olly Betts <olly@survex.com>
36666         * backends/quartz/{bcursor.cc,btree.cc,btree.h}: Btree::prev* and
36667           Btree::next* are no longer static methods.
36668         * backends/quartz/btree.h: Tweaked comments so doxygen will
36669           understand them.
36671 Thu Oct 10 16:12:29 BST 2002  Olly Betts <olly@survex.com>
36673         * backends/quartz/quartz_postlist.cc: return docids rather
36674           than passing in a pointer to fill in.
36676 Thu Oct 10 16:08:22 BST 2002  Olly Betts <olly@survex.com>
36678         * backends/quartz/quartzcheck.cc: Fixed #include-d files;
36679           Example in usage message now uses the directory where
36680           omega looks for its database by default.
36682 Thu Oct 10 15:25:10 BST 2002  Olly Betts <olly@survex.com>
36684         * backends/quartz/btree.cc,backends/quartz/btree.h: More comment
36685           improvements; Removed superfluous Cursor parameter from
36686           Btree::add_kt() - it always gets passed the C member of Btree
36687           which we have available anyway.
36689 Thu Oct 10 14:49:11 BST 2002  Olly Betts <olly@survex.com>
36691         * backends/quartz/btree.cc: Removed "struct" from in front of
36692           Btree and Cursor; Updated and reformatted many comments.
36694 Thu Oct 10 03:45:56 BST 2002  Olly Betts <olly@survex.com>
36696         * testsuite/backendmanager.cc: Reworded comment to make it clearer.
36698 Thu Oct 10 03:29:52 BST 2002  Olly Betts <olly@survex.com>
36700         * docs/todo.xml: Updated.
36702 Wed Oct 09 14:05:07 BST 2002  Olly Betts <olly@survex.com>
36704         * backends/quartz/{quartz_alltermslist.cc,quartz_alltermslist.h,
36705           quartz_database.cc}: Implemented
36706           QuartzAllTermsList::get_approx_size().
36708 Wed Oct 09 10:46:42 BST 2002  Olly Betts <olly@survex.com>
36710         * extra/omparsequery.h,include/om/omvalueiterator.h: Don't use
36711           "using std::foo;" in externally visible headers.
36713 Wed Oct 09 10:26:05 BST 2002  Olly Betts <olly@survex.com>
36715         * extra/omparsequery.h: fixed unused parameter warning.
36717 Tue Oct 08 20:32:46 BST 2002  Olly Betts <olly@survex.com>
36719         * tests/stemtest.cc: Added missing space to output.
36721 Tue Oct 08 20:10:35 BST 2002  Olly Betts <olly@survex.com>
36723         * With GCC, add warning flags "-Wall -W" rather than "-Wall -Wunused"
36724           (-Wall implies -Wunused anyway).  Fixed all the warnings this throws
36725           up, except in languages/ (that code is to be replaced with Snowball
36726           soon).
36728 Tue Oct 08 19:57:03 BST 2002  Olly Betts <olly@survex.com>
36730         * testsuite/: Disable colour test output if stdout isn't a terminal;
36731           reworked check for broken exception handling as the previous
36732           version never seemed to fire; added "using" for all the things
36733           we want from std::; improved how signal handlers are set and
36734           unset; report exception class for exceptions derived from OmError
36735           rather than a blanket "OMEXCEPT"; added private copy ctor and
36736           assignment to test_driver to prevent copying.
36738 Tue Oct 08 19:53:02 BST 2002  Olly Betts <olly@survex.com>
36740         * include/om/Makefile.am: remove include/om/om.h on "make distclean",
36741           not "make clean".  Otherwise "./configure ; make clean ; make"
36742           fails which is wrong.
36744 Sun Oct 06 18:37:39 BST 2002  Olly Betts <olly@survex.com>
36746         * PLATFORMS: Updated.
36747         * docs/: Removed Martin's paper - background information for stemmers
36748           is best left to the Snowball documentation.
36750 Sat Oct 05 20:31:55 BST 2002  Olly Betts <olly@survex.com>
36752         * NEWS,configure.in: 0.5.2 release.
36754 Sat Oct 05 03:01:49 BST 2002  Olly Betts <olly@survex.com>
36756         * PLATFORMS: Updated.
36758 Sat Oct 05 02:09:35 BST 2002  Olly Betts <olly@survex.com>
36760         * docs/todo.xml: Updated.
36762 Fri Oct 04 22:34:12 BST 2002  Olly Betts <olly@survex.com>
36764         * PLATFORMS,testsuite/testutils.h: Code to spot mishandled exceptions
36765           doesn't always work - noted this in PLATFORMS, and tweaked the code
36766           a little.
36768 Fri Oct 04 19:08:08 BST 2002  Olly Betts <olly@survex.com>
36770         * backends/quartz/.cvsignore: Added quartzcheck.
36772 Fri Oct 04 18:24:55 BST 2002  Olly Betts <olly@survex.com>
36774         * docs/: converted all text docs to HTML (except omsettings which will
36775           has odd markup (LaTeX?) and will probably soon be obsolete anyway).
36776         * docs/todo.xml: updated.
36778 Fri Oct 04 17:18:33 BST 2002  Olly Betts <olly@survex.com>
36780         * net/socketcommon.cc: Fixed handling of timeouts in the past.
36782 Fri Oct 04 13:51:39 BST 2002  Olly Betts <olly@survex.com>
36784         * PLATFORMS,testsuite/testutils.h: Use typeid() to spot when GCC 2.95
36785           mishandles an exception, and don't count this as a test failure.
36787 Fri Oct 04 03:59:29 BST 2002  Olly Betts <olly@survex.com>
36789         * api/omdatabaseinternal.cc,backends/multi/multi_termlist.h,
36790           matcher/multimatch.cc,matcher/networkmatch.cc,matcher/networkmatch.h:
36791           pulled uses of dynamic_cast<> to higher up in the code.
36793 Fri Oct 04 03:53:44 BST 2002  Olly Betts <olly@survex.com>
36795         * PLATFORMS,backends/quartz/{btree.cc,quartz_metafile.cc}: Fixed quartz
36796           problems on platforms where sizeof(long) != 4.
36797         * PLATFORMS: Updated in the light of investigations into test failures
36798           on x86 Redhat Linux - only multierrhandler1 with the remote backend
36799           is actually a problem.
36801 Wed Oct 02 16:32:48 BST 2002  Olly Betts <olly@survex.com>
36803         * NEWS: Updated for 0.5.1 release.
36805 Wed Oct 02 16:01:50 BST 2002  Olly Betts <olly@survex.com>
36807         * PLATFORMS,configure.in: 0.5.1 release.
36809 Tue Oct 01 13:34:24 BST 2002  Olly Betts <olly@survex.com>
36811         * docs/: tweaked navigation links in index.html; converted bm25
36812           text document to HTML and linked it in; added todo entry to
36813           locate the "illusion of control" paper.
36815 Tue Oct 01 12:48:41 BST 2002  Olly Betts <olly@survex.com>
36817         * docs/: renamed intro.html to install.html, and userman.html to
36818           overview.html; changed navbar on index.html.
36820 Tue Oct 01 12:37:20 BST 2002  Olly Betts <olly@survex.com>
36822         * bootstrap: fixed adding of directory with xapian.m4 in to
36823           ACLOCAL_FLAGS; added trap to tell user if bootstrapping failed.
36825 Tue Oct 01 12:33:38 BST 2002  Olly Betts <olly@survex.com>
36827         * HACKING,Makefile.am,bootstrap,buildall,xapian.spec.in,
36828           autoconf/dir_contents,docs/todo.xml: Added bootstrap script as a
36829           replacement for buildall (buildall left in place for now until
36830           bootstrap receives wider testing).
36832 Tue Oct 01 12:19:32 BST 2002  Olly Betts <olly@survex.com>
36834         * HACKING,Makefile.am,configure.in,PLATFORMS: require automake 1.6.3
36835           (and hence autoconf 2.54) to fix problem building tests/internaltest
36836           with Solaris make.
36838 Mon Sep 30 20:30:42 BST 2002  Olly Betts <olly@survex.com>
36840         * PLATFORMS: Improved wording about bogus OMEXCEPT failures);
36841           Added results for OpenBSD 3.0 and Solaris 8 on x86 (both work).
36843 Mon Sep 30 20:25:03 BST 2002  Olly Betts <olly@survex.com>
36845         * docs/: Pruned .cvsignore; removed cvs.html (link to CVS info
36846           on website directly); removed using_stemmers.html - those
36847           wishing to use the C API to the stemmers ought to look at
36848           Snowball instead; include HTML versions of quickstart*.cc
36849           in tarballs; improved wording in various places.
36851 Mon Sep 23 19:33:31 BST 2002  Olly Betts <olly@survex.com>
36853         * net/Makefile.am: Fixed building of readquery.cc from readquery.ll.
36855 Sun Sep 22 03:57:20 BST 2002  Olly Betts <olly@survex.com>
36857         * PLATFORMS: Updated.
36859 Fri Sep 20 15:09:25 BST 2002  Olly Betts <olly@survex.com>
36861         * PLATFORMS: Added note about bogus OMEXCEPT test failures with
36862           GCC 2.95.
36864 Fri Sep 20 01:36:35 BST 2002  Olly Betts <olly@survex.com>
36866         * NEWS,PLATFORMS,configure.in: 0.5.0 release!
36868 Fri Sep 20 01:01:52 BST 2002  Olly Betts <olly@survex.com>
36870         * Makefile.am: Perl module we need to process todo.xml is XML::Parser
36871           not XML, so corrected error message.
36872         * configure.in: Commented out MSG_WARN() when Perl modules XML::Parser
36873           or Text::Format aren't found.  In a release tarball, this only
36874           matters if you modify docs/todo.xml, and the warning message(s) may
36875           alarm those building the software.
36877 Thu Sep 19 00:57:23 BST 2002  Olly Betts <olly@survex.com>
36879         * .cvsignore: Added depcomp, missing, mkinstalldirs.
36881 Thu Sep 19 00:49:01 BST 2002  Olly Betts <olly@survex.com>
36883         * HACKING: Added note about safe way to generate files in make rules.
36885 Thu Sep 19 00:45:51 BST 2002  Olly Betts <olly@survex.com>
36887         * PLATFORMS: Tested on Solaris 7 with GCC 2.95.3 (works) and Solaris 8
36888           Sun Workshop C++ compiler (fails to compile).
36890 Thu Sep 19 00:41:53 BST 2002  Olly Betts <olly@survex.com>
36892         * ar-wrapper-solaris,ltconfig,Makefile.am: libtool 1.4 doesn't use
36893           ltconfig, and that's the only thing that uses ar-wrapper-solaris,
36894           so removed both.  Fairly sure the problem they address was fixed
36895           in libtool so time ago.  Xapian doesn't build with Sun's C++
36896           compiler at the moment anyway, so it's moot for the release.
36898 Thu Sep 19 00:26:37 BST 2002  Olly Betts <olly@survex.com>
36900         * docs/todo2html.pl: Handle release "*" specially - it indicates
36901           tasks to be done for each release.
36903 Thu Sep 19 00:05:40 BST 2002  Olly Betts <olly@survex.com>
36905         * configure.in,include/om/om.h.in: Tweaked how generation of om.h
36906           works to avoid problems with Sun's C++ compiler.
36908 Wed Sep 18 19:21:47 BST 2002  Olly Betts <olly@survex.com>
36910         * net/Makefile.am,net/readquery.ll: #include <config.h>
36911           must be included before any other headers, but that seems to be
36912           impossible to arrange in lex/flex so we use echo and cat in the
36913           Makefile to arrange this.
36915 Wed Sep 18 17:35:00 BST 2002  Olly Betts <olly@survex.com>
36917         * include/om/Makefile.am: We want to install om/om.h, but not
36918           distribute it or people with a different compiler to whoever
36919           ran "make dist" will get the "ABI mismatch" error.
36921 Wed Sep 18 13:16:14 BST 2002  Richard Boulton <richard@tartarus.org>
36923         * docs/.cvsignore: Add docs/doxygen_full_warnings.
36924         * include/om/.cvsignore: Add include/om/om.h.
36926 Wed Sep 18 11:06:12 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36928         * include/om/Makefile.am: We really should install om/om.h, or
36929           applications can't build against us.
36931 Wed Sep 18 05:10:24 BST 2002  Richard Boulton <richard@tartarus.org>
36933         * docs/doxygen_{api,full}_header.html_tmpl: Remove meta robots tag -
36934           why shouldn't this be indexed?  Now the omega I set up pointing
36935           at copies of this should actually index something.
36937 Wed Sep 18 04:52:20 BST 2002  Olly Betts <olly@survex.com>
36939         * configure.in: Merged two sed invocations into one - we don't want
36940           configure to run any slower than it has to.
36942 Wed Sep 18 04:17:58 BST 2002  Richard Boulton <richard@tartarus.org>
36944         * configure.in: Don't put confdefs.h into SOURCEDOC_H_SRC - this
36945           file only exists during the configure run.  Fixes failure of
36946           "make doxygen_docs" in docs/
36948 Tue Sep 17 13:07:39 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36950         * Updated PLATFORMS file.
36952 Mon Sep 16 19:40:02 BST 2002  Olly Betts <olly@survex.com>
36954         * docs/todo.xml: Updated.
36956 Mon Sep 16 18:09:29 BST 2002  Olly Betts <olly@survex.com>
36958         * tests/api_db.cc: don't run consistency1 test on the remote backend
36959           - it's particularly slow with that, and testing it there doesn't
36960           actually improve the test coverage really.
36962 Mon Sep 16 17:15:46 BST 2002  Olly Betts <olly@survex.com>
36964         * configure.in,docs/Makefile.am: Added workaround for pattern length
36965           limits in Solaris sed.
36967 Mon Sep 16 17:13:20 BST 2002  Olly Betts <olly@survex.com>
36969         * include/om/om.h.in: Added explanatory comments for developers.
36971 Mon Sep 16 14:22:48 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36973         * om/om.h needs to be in CLEANFILES or make distcheck fails
36975 Mon Sep 16 13:37:04 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
36977         * Now om/om.h is built from om/om.h.in, it may be in the build
36978           directly. Consequently, we need to add that to the include path
36979           for VPATH builds. Plus (also for VPATH), om/om.h needs to be
36980           output after AC_OUTPUT, because otherwise the destination
36981           directory may not exist.
36983 Mon Sep 16 04:19:54 BST 2002  Olly Betts <olly@survex.com>
36985         * configure.in,docs/todo.xml,include/om/Makefile.am,include/om/om.h,
36986           include/om/om.h.in: When building the library with GCC, generate
36987           include/om/om.h with preprocessor code to check that any version
36988           of GCC used to build applications has a matching C++ ABI.
36990           This means that users get a nice explanatory error message rather
36991           than a confusing link failure (or worse a program which builds
36992           but crashes).  Another benefit is that the check happens near the
36993           start of compilation of the first source file which uses Xapian
36994           in the user's application, rather than during the first attempt
36995           to link with Xapian.
36997 Sun Sep 15 01:42:19 BST 2002  Olly Betts <olly@survex.com>
36999         * net/tcpserver.cc: Solved std mystery - "using namespace std;" was
37000           inside a #ifdef which wasn't enabled!
37002 Sun Sep 15 01:21:34 BST 2002  Richard Boulton <richard@tartarus.org>
37004         * tests/tcpserver.cc: Hacky fix to compile with gcc-3.2 snapshot in
37005           Debian unstable - add a FIXME to work out why this is needed.
37006         * todo: add entry about checking ABI versions using
37007           __GXX_ABI_VERSION macro.
37009 Sat Sep 14 22:39:11 BST 2002  Olly Betts <olly@survex.com>
37011         * configure.in,tests/Makefile.am,tests/internaltest.cc: It turns out
37012           that internaltest *does* need -fno-access-control, so put it back.
37013           Not quite sure how I missed this.  Changed to skip refcnt tests
37014           when -fno-access-control isn't available (rather than omitting them
37015           entirely).
37017         * tests/api_db.cc: Fixed compile problem.
37019 Sat Sep 14 21:44:34 BST 2002  Olly Betts <olly@survex.com>
37021         * internaltest: doesn't actually need -fno-access-control these
37022           days, so removed it and the configure tests for it.
37024         * stemtest: recoded to be all in C++ and removed use of intermediate
37025           files for random data tests - now runs ~15% faster; no longer need
37026           HAVE_PERL so removed from configure.
37028         * apitest: use C++ streams rather than stdio; stubdb1 now cleans up
37029           the temporary file it creates.
37031 Sat Sep 14 12:54:52 BST 2002  Olly Betts <olly@survex.com>
37033         * docs/Makefile.am: fix "mv apidoc/latex/refman.ps avidoc.ps" which
37034           fails after recent change.
37036 Sat Sep 14 11:15:33 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37038         * Renamed simple* programs in quickstart docs to quickstart* to
37039           avoid confusion with the simple* programs in xapian-examples.
37040           (Thanks to Alex Bowley for pointing out the confusion.)
37042 Sat Sep 14 10:00:35 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37044         * configure.in: returned AC_CONDITIONAL for HAVE_PERL
37046 Sat Sep 14 09:29:08 BST 2002  Richard Boulton <richard@tartarus.org>
37048         * buildall: change to srcdir before testing for necessary tools
37049           so that scripts which guess which autotools version to use have more
37050           information available to guess with: for example, the Debian
37051           autoconf version guessing script looks for "configure.ac" as a sign
37052           that autoconf 2.50+ is required.
37054 Sat Sep 14 02:50:23 BST 2002  Olly Betts <olly@survex.com>
37056         * docs/distributed.txt,docs/quartzdesign.html,docs/todo.xml: assorted
37057           documentation updates.
37059 Sat Sep 14 02:10:12 BST 2002  Olly Betts <olly@survex.com>
37061         * PLATFORMS: removed note about VPATH problems.
37063 Sat Sep 14 02:02:58 BST 2002  Olly Betts <olly@survex.com>
37065         * btree.cc,btree.h: rearranged Btree::del() so control flow is clearer.
37067 Sat Sep 14 01:56:44 BST 2002  Olly Betts <olly@survex.com>
37069         * HACKING,docs/Makefile.am: added evil hack to allow VPATH builds to
37070           work with BSD make.
37072 Wed Sep 11 11:29:07 BST 2002  Olly Betts <olly@survex.com>
37074         * backends/database_builder.cc: Quartz is fairly mature - change
37075           comment which suggests that the btree names will change.
37077 Wed Sep 11 11:13:43 BST 2002  Olly Betts <olly@survex.com>
37079         * configure.in: Don't double quote `$MISSING foo' as autoconf adds them
37080         * docs/Makefile.am: Use `test a = b' rather than `test a == b'
37082 Tue Sep 10 14:50:16 BST 2002  Olly Betts <olly@survex.com>
37084         * configure.in: tweaked test for perl modules - stderr is now
37085           fully suppressed on sh (which behaves slightly differently to bash).
37087 Tue Sep 10 14:27:15 BST 2002  Richard Boulton <richard@tartarus.org>
37089         * backend_manager.cc: Fix stub database code so that it doesn't use
37090           the gnu extension "getline()".
37092 Tue Sep 10 13:51:20 BST 2002  Olly Betts <olly@survex.com>
37094         * quartz_table.cc: don't form tag when we just want to check if a
37095           key is present before calling Btree::del().  Working out why
37096           we can't call Btree::del() would still be worthwhile though.
37098 Tue Sep 10 13:02:04 BST 2002  Olly Betts <olly@survex.com>
37100         * quartztest.cc: removed unused #include-s; describe valid options
37101           in usage message.
37103 Tue Sep 10 02:07:29 BST 2002  Olly Betts <olly@survex.com>
37105         * remote backend: implemented term_exists() and get_termfreq();
37106           added test to check they work.
37108 Mon Sep  9 12:59:15 BST 2002  Richard Boulton <richard@tartarus.org>
37110         * Add stub databases: if backend type is auto, and auto_dir points
37111           to a file, read in settings from the file (overwriting the
37112           existing ones), and then use them to open the database.
37113           This allows, for example, omega to open a remote database by
37114           putting in a stub database file in the omega directory.
37115           Updated documentation for opening databases in userman.html.
37116         * apitest: Added test for stub databases.
37118 Mon Sep 09 02:26:36 BST 2002  Olly Betts <olly@survex.com>
37120         * Documentation updates: move suggested books into intro_ir.html
37121           and added URL for citeseer reference Richard posted to mailing
37122           list recently; clarified wording in a couple of places.
37124 Sat Sep  7 12:52:12 2002  James Aylett  <tartarus@users.sourceforge.net>
37126         * docs: fixed references to OmDocumentContents (now OmDocument)
37127           which had clearly been broken for a while. Also fixed get_data()
37128           and set_data() example usage so it reflects reality (I hope).
37130 Wed Sep 04 22:46:17 BST 2002  Olly Betts <olly@survex.com>
37132         * Corrected min_item.wt to min_wt in two assertions.
37134 Thu Aug 15 11:42:20 BST 2002  Richard Boulton <richard@tartarus.org>
37136         * buildall: Only add the directory derived from xapian-config
37137           to ACLOCAL_FLAGS if it actually exists.
37139 Mon Aug 12 01:13:55 BST 2002  Richard Boulton <richard@tartarus.org>
37141         * quartz_table.cc: Check that a key exists before calling
37142           Btree::del() - there seems to be a bug in the btree code
37143           causing a failure when deleting keys if they don't exist.
37144           This work around appears to make things work correctly, but
37145           won't be terribly efficient.
37147 Mon Aug 12 00:09:21 BST 2002  Richard Boulton <richard@tartarus.org>
37149         * quartz_table_manager.cc: When unable to apply modifications,
37150           call cancel on the buffered table after reopening disk table
37151           at old revision - otherwise, the entry count gets messed up.
37152         * quartz_table.cc, quartz_database.cc: Improve debugging and
37153           error reporting: I'm trying to work out why the failure Olly
37154           reported is occurring.
37156 Sat Aug 10 15:12:42 2002  James Aylett  <tartarus@users.sourceforge.net>
37158         * Fixed missing include in quartzcheck.cc
37160 Sat Aug 10 14:57:17 2002  James Aylett  <tartarus@users.sourceforge.net>
37162         * Fixed typo in quartzcheck.cc
37164 Tue Jul 23 22:12:34 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37166         * Added a note to the effect that the indexgraph stuff isn't
37167           really considered useful to the HTML document introducing it.
37169 Tue Jul 23 22:09:39 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37171         * Added some comments in quartztest test_create1(), in case anyone
37172           else who didn't write it needs to understand it.
37174         * Added Olly as an active participant to the AUTHORS file :)
37176 Tue Jul 23 21:59:50 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37178         * Reworded quickstart document so it does not refer to the example
37179           code (it was never actually in sync).
37181 Mon Jul 22 14:07:18 BST 2002  Sam Liddicott <sam@ananova.com>
37183         * Forgot to actually add the quartzcheck.cc file last time
37185 Mon Jul 22 13:28:09 BST 2002  Sam Liddicott <sam@ananova.com>
37187         * Add buildprereq to package
37188           Add quartzcheck which runs btree::check to backends
37190 Tue Jul 16 09:44:56 BST 2002  Sam Liddicott <sam@ananova.com>
37192         * Fix banding problem; bands are now based on the percentage
37193           not the weight, and using integer maths to avoid problems
37194           with ceil() rounding up supposed integers which are really
37195           slightly larger due to precision errors
37197 Thu Jul 11 00:16:22 BST 2002  Olly Betts <olly@survex.com>
37199         * configure.in, docs/Makefile.am: configure fixes for Solaris - clear
37200           cached result for fdatasync since it may be wrong if we decide we
37201           need to link librt; split SOURCEDOC_SRC into two to avoid hitting
37202           4096 char line length in Solaris sed.
37204 Tue Jul 09 17:47:31 BST 2002  Olly Betts <olly@survex.com>
37206         * PLATFORMS, tests/Makefile.am: improved internaltest.cc automake rules
37207           - they should now work in VPATH builds with Solaris make.
37209 Tue Jul 09 03:30:41 BST 2002  Olly Betts <olly@survex.com>
37211         * configure.in, docs/Makefile.am: Fixed up apidoc and sourcedoc
37212           dependencies so that they work correctly in VPATH builds.  Also
37213           only use portable find arguments to generate SOURCEDOC_SRC.
37215 Sat Jul 06 13:53:27 BST 2002  Olly Betts <olly@survex.com>
37217         * xapian.spec.in: Updated in preparation for release.
37219 Sat Jul 06 13:04:45 BST 2002  Olly Betts <olly@survex.com>
37221         * docs/Makefile.am: Run latex twice to get forward references resolved.
37223 Fri Jul 05 18:23:08 BST 2002  Olly Betts <olly@survex.com>
37225         * matcher/multimatch.cc: better (perhaps even completely correct) fix
37226           for sorting into bands.
37228         * matcer/localmatch.cc: removed entirely bogus comment from over-eager
37229           cut-and-paste.
37231         * tests/api_db.cc: added otherwise pointless statement to deldoc3
37232           which seems to fix occasional miscompilation by GCC 2.95.
37234 Fri Jul 05 16:37:12 BST 2002  Olly Betts <olly@survex.com>
37236         * docs/Makefile.am: "make dist" now fails if dot (part of graphviz)
37237           isn't installed.
37239 Fri Jul 05 08:54:33 BST 2002  Sam Liddicott <sam@ananova.com>
37241         * bindings/: removed some typemap hacks as swig has better typemaps now
37243 Fri Jul 05 08:46:06 BST 2002  Sam Liddicott <sam@ananova.com>
37245         * matcher/multimatch.cc: Quick hack to stop 100% being in a band all on
37246           its own.  The real problem is that bands need to include the integer
37247           at the upper end of the range, rather than the lower end.
37249 Thu Jul 04 16:23:52 BST 2002  Olly Betts <olly@survex.com>
37251         * docs/mkdoc.pl: Fixed to work in VPATH builds.
37253 Thu Jul 04 12:42:06 BST 2002  Olly Betts <olly@survex.com>
37255         * configure.in, docs/Makefile.am: use "missing" to give more helpful
37256           errors when we don't find tools we need.
37258 Wed Jul 03 12:39:15 BST 2002  Olly Betts <olly@survex.com>
37260         * NEWS: incorporated recent changes into provisional version.
37262         * docs/: sorted out make rules for running doxygen; don't tell doxygen
37263           to build man pages which we aren't using.
37265 Tue Jul 02 16:36:54 BST 2002  Olly Betts <olly@survex.com>
37267         * docs/: run through ispell; fixed OM_MOP to OmQuery::OP; other
37268           corrections.
37270 Fri Jun 28 02:59:49 BST 2002  Olly Betts <olly@survex.com>
37272         * Backend "auto" now works when creating an OmWritableDatabase which
37273           doesn't already exist - it'll pick a backend which supports writing
37274           and is compiled in (currently this means quartz).
37276 Thu Jun 27 20:31:13 BST 2002  Richard Boulton <richard@tartarus.org>
37278         * backends/quartz/btreetest.cc (sequent1): Add regression test for
37279           recently fixed bug with sequential addition.
37280         * backends/quartz/z_data/ordnum[+-]: Data files for new test.
37282 Thu Jun 27 13:13:37 BST 2002  Olly Betts <olly@survex.com>
37284         * Documentation fettling: removed docs/Notes and
37285           docs/coding_policy.txt moving relevant content into HACKING,
37286           common/postlist.h, docs/todo.xml, and include/om/omtypes.h; install
37287           docs as PostScript rather than DVI; include text docs in tarball and
37288           install them; "make dist" will now fail if a tool needed to build
37289           docs is missing; removed last vestiges of Doc++ support;
37290           doc/Makefile no longer uses include (include isn't portable);
37291           improved doc/tests.txt.
37293 Thu Jun 27 12:10:37 BST 2002  Olly Betts <olly@survex.com>
37295         * apitest: doesn't directly use anything from utils.h, so don't
37296           #include it.
37298 Thu Jun 27 12:05:53 BST 2002  Olly Betts <olly@survex.com>
37300         * Removed includetest - it was useful early in development, but isn't
37301           really now.
37303 Wed Jun 26 22:09:57 BST 2002  Olly Betts <olly@survex.com>
37305         * apitest: deldoc2 and deldoc3 now pass when the library is compiled
37306           with --enable-debug.
37308 Wed Jun 26 19:35:56 BST 2002  Olly Betts <olly@survex.com>
37310         * Removed code which causes quartztest to fail with an --enable-debug
37311           build.
37313 Wed Jun 26 13:55:11 BST 2002  Olly Betts <olly@survex.com>
37315         * todo.xml: added note to fix 100% being in its own sort band.
37317 Wed Jun 26 13:46:02 BST 2002  Richard Boulton <richard@tartarus.org>
37319         * btree.cc: Fix splitting of blocks in sequential mode to ensure
37320           that split happens no earlier than the midpoint.
37322 Wed Jun 26 12:32:47 BST 2002  Richard Boulton <richard@tartarus.org>
37324         * btree.cc: Asserts to check that add_item in sequential mode
37325           when splitting a block is not trying to add to the wrong block,
37326           or to add to a new block which is not empty (or containing more
37327           than one item).
37329 Tue Jun 25 17:53:19 BST 2002  Olly Betts <olly@survex.com>
37331         * Assert that the value of c is sane in GETINT1, etc.
37333 Tue Jun 25 16:30:09 BST 2002  Olly Betts <olly@survex.com>
37335         * btreetest.cc: use C++ IO rather than C stdio; removed commented out
37336           LFSinsertdelete1 test (it was never written and a test suite which
37337           creates 2G files is probably a bit too resource hungry).
37339 Tue Jun 25 13:56:01 BST 2002  Olly Betts <olly@survex.com>
37341         * btree/quartz: More use of const pointers; more use of C++ strings.
37343 Wed Jun 19 08:56:00 BST 2002  Sam Liddicott <sam@ananova.com>
37345         * Fixed spec file to build for prefix=/usr not just install there
37347 Fri Jun 14 16:35:04 BST 2002  Olly Betts <olly@survex.com>
37349         * docs/todo.xml: added 4 new tasks.
37351 Fri Jun 14 16:33:08 BST 2002  Olly Betts <olly@survex.com>
37353         * backends/quartz/quartz_database.cc: Cosmetic changes.
37355 Wed Jun 12 16:31:11 BST 2002  Olly Betts <olly@survex.com>
37357         * QuartzDbKey, QuartzDbTag: just use a string instead of a string
37358           wrapped in a structure.  We've stopped inflicting this on external
37359           developers (OmData, OmKey/OmValue) so why inflict it on ourselves?
37361 Wed Jun 12 12:26:04 BST 2002  Olly Betts <olly@survex.com>
37363         * Btree_item: use C++ strings rather than trying to reimplement them.
37365         * Fix a few warnings about unused parameters.
37367 Wed Jun 12 02:53:16 BST 2002  Olly Betts <olly@survex.com>
37369         * Btree_full_compaction, Btree_close: removed - they just wrap methods
37370           of Btree.
37372 Wed Jun 12 02:28:30 BST 2002  Olly Betts <olly@survex.com>
37374         * Btree_item_create and Btree_item_lose subsumed into Btree_item
37375           and ~Btree_item.
37377         * Pass C++ strings rather than const char * into various Btree open
37378           methods.
37380         * Removed pointless wrapper functions for Btree open methods.
37382         * Btree_quit removed (just use delete directly).
37384         * Btree_create removed (just use Btree::create directly).
37386 Wed Jun 12 00:48:52 BST 2002  Olly Betts <olly@survex.com>
37388         * form_key is now a method of Btree; more passing of strings rather
37389           than pointer/length pairs); buffer overrun check added to btreetest.
37391 Tue Jun 11 18:04:08 BST 2002  Olly Betts <olly@survex.com>
37393         * More C++ like interfaces (e.g. bool returns, strings rather than
37394           pointer/length pairs).
37396 Tue Jun 11 16:40:08 BST 2002  Richard Boulton <richard@tartarus.org>
37398         * quartz/btree.cc: Fix so that it compiles when BTREE_FULL_DEBUG is on,
37399           and added a couple of Assert()s.
37401 Tue Jun 11 13:09:39 BST 2002  Olly Betts <olly@survex.com>
37403         * Removed a number of btree functions which were simply wrappers for
37404           calling methods on their first parameter, and most of which weren't
37405           even used!
37407         * btree_api.txt: updated to better reflect the object-ized API.
37409 Tue Jun 11 02:01:53 BST 2002  Olly Betts <olly@survex.com>
37411         * Btree::make_index_item(): Added check for buffer overflow.
37413 Tue Jun 11 01:49:51 BST 2002  Olly Betts <olly@survex.com>
37415         * Still more...
37417 Tue Jun 11 01:08:03 BST 2002  Olly Betts <olly@survex.com>
37419         * More btree and quartz tidying.
37421 Mon Jun 10 20:33:24 BST 2002  Olly Betts <olly@survex.com>
37423         * btree.cc,btree.h: cleaned up further.
37425 Mon Jun 10 15:54:49 BST 2002  Olly Betts <olly@survex.com>
37427         * Further btree and quartz cleanups.
37429 Mon Jun 10 14:46:00 BST 2002  Olly Betts <olly@survex.com>
37431         * Fixed typo in recent quartzdump change.
37433 Mon Jun 10 13:20:20 BST 2002  Olly Betts <olly@survex.com>
37435         * Quartz clean-ups - especially QuartzTermList.
37437 Mon Jun 10 12:18:40 BST 2002  Olly Betts <olly@survex.com>
37439         * Bcursor_create made a method of class Btree as suggested by a FIXME.
37441 Mon Jun 10 01:57:53 BST 2002  Olly Betts <olly@survex.com>
37443         * More btree fixes and tidying.  Fixed bug introduced by typo in
37444           previous change which causes tests to fail.
37446 Sun Jun 09 17:50:28 BST 2002  Olly Betts <olly@survex.com>
37448         * btree_util.h: use inlines rather than macros.
37450         * Fix CompileTimeAssert() to avoid potential clashes.
37452 Sun Jun 09 12:46:25 BST 2002  Olly Betts <olly@survex.com>
37454         * btree.cc,btree.h: fixed bug caused by local variable masking member
37455           variable with same name.  Tidied up a lot.
37457 Wed Jun  5 12:22:57 BST 2002  Sam Liddicott <sam@ananova.com>
37459         * Fix OmQuery::op enum handling.
37461 Mon May 27 14:28:06 BST 2002  Sam Liddicott <sam@ananova.com>
37463         * Add crash-protected next() to OmMSetIterator
37465         * Add ->valid() method to iterator which returns FALSE if
37466           the iterator has reached the end
37468         * Added namespace fixes for latest cvs swig to be released next month
37470 Fri May 24 15:28:18 BST 2002  Sam Liddicott <sam@ananova.com>
37472         * Took out the string typemaps as swig now has them in stl.i
37474         * Added om_percent to omtypes.i - I wonder if we might just
37475           read omtypes.h instead, as swig can
37477         * Added OmMSetIterator and made changes to OmMSet
37479 Fri May 24 11:46:50 BST 2002  Sam Liddicott <sam@ananova.com>
37481         * Now support get_matching_terms via swig
37482           I'm not sure how to generally map iterators to php but in
37483           cases where we know only a small number of items exist
37484           to be iterated over it makes sense to return them as a
37485           php array
37487 Tue May 21 15:28:40 BST 2002  Richard Boulton <richard@tartarus.org>
37489         * multi_postlist.cc (get_doclength):  Get the document length from
37490           the appropriate sub-postlist, rather than from the database.
37491           This causes a huge speedup in some cases, since it avoids having
37492           to go to the termlist database for every document considered for
37493           an mset to get the document length.
37494           Added an AssertParanoid to check that the value from the postlist
37495           is the same as that from the database.
37496           This problem was noticed because "delve -v" was running several
37497           orders of magnitude slower than without -v - it is now of
37498           comparable speed.
37500 Tue May 21 15:27:37 BST 2002  Richard Boulton <richard@tartarus.org>
37502         * quartz_values.cc: Small fixes to enable it to compile with debug
37503           turned on.
37505 Fri May 17 14:52:45 BST 2002  Olly Betts <olly@survex.com>
37507         * OmQueryParser::set_database() method added.
37509         * Added disabled code to search for a keyword used in the query.
37511         * Added ' and * to the list of "phrase making characters".
37513         * To make a phrase, a phrase-maker must be followed by an alphanumeric
37514           rather than just a non-space.
37516 Fri May 17 14:49:54 BST 2002  Olly Betts <olly@survex.com>
37518         * INSTALL: GCC 3.1 release version works, so noted this.
37520         * HACKING: Added note about warning-free compilation being desirable
37521           and suggesting using "./configure CFLAGS=-Werror" to promote this.
37523         * NEWS: Minor updates.
37525 Thu May 16 16:57:42 BST 2002  Olly Betts <olly@survex.com>
37527         * Minor tweaks to get a warning-less compile with GCC 3.1.
37529 Thu May 16 13:36:19 BST 2002  Sam Liddicott <sam@ananova.com>
37531         * Clean up the spec file
37533 Thu May 16 12:20:09 BST 2002  Olly Betts <olly@survex.com>
37535         * Documented match_sort_key.
37537 Thu May 16 10:42:47 BST 2002  Sam Liddicott <sam@ananova.com>
37539         * A few quick tips from Olly, now the tarfile name and version no.
37540           stuff comes from autoconf so the spec file won't need tweaking
37541           each time the version number changes
37543 Wed May 15 15:48:42 BST 2002  Sam Liddicott <sam@ananova.com>
37545         * This can build RPM packages.
37546           Get the make-dist tarball and do:
37547           rpm -ta xapian-core-0.4.1-cvs.tar.gz
37548           and it will make source and binary rpms
37549           It doesn't build bindings packages yet but this will come when I
37550           build them
37552 Wed May 15 13:27:21 BST 2002  Richard Boulton <richard@tartarus.org>
37554         * buildall: Allow use of automake 1.6.1 and later, and CVS
37555           automake (versions 1.6[a-z])
37557 Wed May 15 11:40:58 BST 2002  Sam Liddicott <sam@ananova.com>
37559         * SWIG cvs (php4) now writes all output files to the same directory as
37560           the main output file, so need for hacks to move these, also no more
37561           clobbering our source files when building in the checkout dir
37563 Tue May 14 21:54:02 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37565         * Updated PLATFORMS file.
37567 Tue May 14 16:48:07 BST 2002  Olly Betts <olly@survex.com>
37569         * Removed multiple-include protection from config.h - if it's
37570           included more than once it's now a bug and we want to know!
37572 Tue May 14 15:25:05 BST 2002  Olly Betts <olly@survex.com>
37574         * OmQueryParser: parse acronyms as a single term (so "E.T." -> "ET"
37575           and "N.A.T.O" -> "NATO").
37577 Tue May 14 15:23:20 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37579         * Fixed config.h includes: source definition (ie not header) files
37580           #include <config.h> as their first action.
37582 Tue May 14 14:47:00 BST 2002  Olly Betts <olly@survex.com>
37584         * Updated todo.
37586         * extra/parsequery.yy: Fettled indentation.
37588 Tue May 14 13:14:51 BST 2002  Olly Betts <olly@survex.com>
37590         * Added test case for new "embedded &" rule, and fix problem bug it
37591           revealed.
37593 Tue May 14 13:10:33 BST 2002  Olly Betts <olly@survex.com>
37595         * OmQueryParser: Parse <word>&<word> as a single term (e.g. AT&T,
37596           M&S, A&P).
37598 Tue May 14 11:50:03 BST 2002  Olly Betts <olly@survex.com>
37600         * When including config.h, always specify it as <config.h>, not
37601           "config.h", and always do it first.  Both are recommended by
37602           the autoconf documentation.
37604 Mon May 13 17:17:13 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37606         * missing fallback rule all-local in docs/Makefile.am was failing
37607           the build on Solaris
37609 Mon May 13 15:50:31 BST 2002  Sam Liddicott <sam@ananova.com>
37611         * Use new %extends notation for swig.
37613         * Update for new omValue usage
37615         * Add omqueryparser support
37617 Mon May 13 15:12:30 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37619         * shipped getopt will now build in absence of system getopt
37621 Mon May 13 15:09:17 BST 2002  Olly Betts <olly@survex.com>
37623         * configure.in: Moved AH_TOP/AH_BOTTOM to more logical place.
37625         * docs/todo.xml: Updated.
37627 Mon May 13 14:13:27 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37629         * added getopt to DIST_SUBDIRS so distributions work
37631 Fri May 10 14:54:06 BST 2002  Olly Betts <olly@survex.com>
37633         * getopt/: Checked in files I missed last time.
37635 Fri May 10 14:35:52 BST 2002  Olly Betts <olly@survex.com>
37637         * Make sure GNU getopt is linked to everything which might need it so
37638           we build in non-glibc environments.
37640 Fri May 10 13:42:59 BST 2002  Olly Betts <olly@survex.com>
37642         * Replaced second match_sort_key optimisation with one which is
37643           faster and not flawed.
37645 Thu May 09 18:27:30 BST 2002  Olly Betts <olly@survex.com>
37647         * match_sort_key now runs at a sensible speed (approx. 20x speed
37648           up on my test case).
37650 Thu May 09 16:58:11 BST 2002  Olly Betts <olly@survex.com>
37652         * Added another optimisation for match_sort_key - my test case
37653           is now 25% faster (still slow though).
37655 Thu May 09 11:57:59 BST 2002  Olly Betts <olly@survex.com>
37657         * NEWS, PLATFORMS, README: Updated to something approximating what we
37658           want for a release.
37660         * docs/todo.xml: Updated.
37662 Thu May 09 10:57:59 BST 2002  Olly Betts <olly@survex.com>
37664         * Removed references to match_max_or_terms (which was replaced
37665           by OmQuery::OP_ELITE_SET long, long ago).
37667 Wed May 08 17:38:50 BST 2002  Olly Betts <olly@survex.com>
37669         * Improved api documentation comments.
37671 Wed May 08 17:09:14 BST 2002  Olly Betts <olly@survex.com>
37673         * Include findheaders.pl in tarball.
37675 Wed May 08 16:09:14 BST 2002  Olly Betts <olly@survex.com>
37677         * Killed off acconfig.h.
37679 Wed May 08 15:53:11 BST 2002  Olly Betts <olly@survex.com>
37681         * Added autom4te-*.cache to .cvsignore.
37683 Wed May 08 15:50:56 BST 2002  Olly Betts <olly@survex.com>
37685         * Rebuild docs on "make", not just "make dist" or "make install".
37687 Wed May 08 15:07:01 BST 2002  Olly Betts <olly@survex.com>
37689         * Added workaround for problems with <fcntl.h> on Solaris when LFS
37690           is enabled.
37692 Wed May 08 13:44:10 BST 2002  Olly Betts <olly@survex.com>
37694         * Matcher can now sort on a key.  Can be rather slow at present...
37696 Wed May 08 13:15:21 BST 2002  Olly Betts <olly@survex.com>
37698         * Updated todo.
37700 Wed May 08 12:22:53 BST 2002  Olly Betts <olly@survex.com>
37702         * Removed ltmain.sh-s from CVS.
37704 Wed May 08 12:21:32 BST 2002  Olly Betts <olly@survex.com>
37706         * buildall: run libtoolize; stripped out unnecessary stuff.
37708 Wed May 08 09:44:45 BST 2002  Olly Betts <olly@survex.com>
37710         * matcher/msetpostlist.cc: Removed bogus comment cut and pasted from
37711           matcher/mergepostlist.cc.
37713 Tue May 07 17:51:57 BST 2002  Olly Betts <olly@survex.com>
37715         * It's "m4_include", not "m4include".
37717 Tue May 07 17:52:36 BST 2002  Olly Betts <olly@survex.com>
37719         * Added autoconf/type_socklen_t macro.
37721 Tue May 07 16:50:20 BST 2002  Olly Betts <olly@survex.com>
37723         * Now require autoconf 2.50, which allows us to clean up some of the
37724           more unpleasant parts of the build system.
37726 Tue May 07 14:55:37 BST 2002  Olly Betts <olly@survex.com>
37728         * Added "match_sort_bands" option to sort results within relevance
37729           bands.  Currently the sort within each band is by document id, which
37730           isn't really very useful.  The plan is to allow sorting by a key.
37732 Tue May 07 14:54:12 BST 2002  Olly Betts <olly@survex.com>
37734         * Sorted out tests/findheaders.pl wrt last change.
37736 Tue May 07 13:12:23 BST 2002  Olly Betts <olly@survex.com>
37738         * Run perl scripts from Makefiles explicitly with $(PERL) rather than
37739           having them as generated files in AC_OUTPUT.
37741 Mon May  6 16:04:37 2002  James Aylett  <tartarus@users.sourceforge.net>
37743         * Distribution fixes: make clean should now clear up all
37744           required files.
37746 Mon May  6 14:42:46 2002  James Aylett  <tartarus@users.sourceforge.net>
37748         * Don't include dlfcn.h since we don't use it (and doesn't exist
37749           on some target platforms).
37751 Mon May  6 14:07:24 2002  James Aylett  <tartarus@users.sourceforge.net>
37753         * Minor documentation corrections.
37755 Fri May 03 18:14:14 BST 2002  Olly Betts <olly@survex.com>
37757         * Changed autoconf/automake project name to xapian-core, and updated
37758           the documentation to reflect this.
37760         * Disabled the bindings from being included in distribution tarballs.
37762 Fri May 03 18:13:43 BST 2002  Olly Betts <olly@survex.com>
37764         * Updated todo list.
37766 Fri May  3 18:02:06 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37768         * Overloading ambiguity resolutions for linux/alpha build on CF
37770 Fri May 03 17:13:36 BST 2002  Olly Betts <olly@survex.com>
37772         * buildall: Don't run configure or make; removed --no-make and --quiet.
37774 Fri May  3 16:52:01 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37776         * tests/testdata/etext.txt needs to be included in the distribution
37778 Fri May 03 16:18:38 BST 2002  Olly Betts <olly@survex.com>
37780         * Removed OmValue in favour of simply using a string (analogous to
37781           recent OmData change).
37783 Fri May 03 14:52:04 BST 2002  Olly Betts <olly@survex.com>
37785         * Removed unused om_docname typedef.
37787 Fri May 03 14:42:31 BST 2002  Olly Betts <olly@survex.com>
37789         * Terminology change - a "key" (in the OmKey sense) is now a "value".
37791 Fri May  3 14:31:57 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
37793         * Fixed up todo list and HTML generation script to cope with
37794           items without an assigned priority.
37796 Fri May 03 14:29:58 BST 2002  Olly Betts <olly@survex.com>
37798         * It's HACKING (not INSTALL) that has details of developer tools.
37800 Thu May 02 15:57:48 BST 2002  Olly Betts <olly@survex.com>
37802         * Removed OmData - just return and take a string instead.
37804 Thu May 02 14:40:21 BST 2002  Olly Betts <olly@survex.com>
37806         * docs/.cvsignore: updated.
37808 Thu May 02 14:38:36 BST 2002  Olly Betts <olly@survex.com>
37810         * Removed assorted references to pthread locking; updated HACKING.
37812 Thu May 02 14:15:47 BST 2002  Olly Betts <olly@survex.com>
37814         * Stripped out OmBatchEnquire stuff, as it's unlikely to get sorted
37815           out any time soon, and it can be extracted from CVS when someone
37816           wants it.
37818 Thu May 02 13:50:04 BST 2002  Olly Betts <olly@survex.com>
37820         * Check for bison >= 1.35 in buildall.
37822 Wed May 01 17:39:57 BST 2002  Olly Betts <olly@survex.com>
37824         * Removed lingering references to Omsee and OpenMuscat.
37826 Wed May 01 16:34:13 BST 2002  Olly Betts <olly@survex.com>
37828         * Removed unused methods from NetClient (read_data and write_data).
37830 Wed May 01 14:01:12 BST 2002  Olly Betts <olly@survex.com>
37832         * Added test consistency1 to check matcher optimisations don't
37833           result in inconsistent results (i.e. that same matches and
37834           weights are returned regardless of size of mset asked for).
37836 Wed May 01 11:48:10 BST 2002  Olly Betts <olly@survex.com>
37838         * Fixed mismatched tags in todo.xml.
37840 Wed May 01 11:46:42 BST 2002  Olly Betts <olly@survex.com>
37842         * Updated todo.
37844 Wed May 01 11:40:47 BST 2002  Olly Betts <olly@survex.com>
37846         * Corrected configure warning message - it's XML::Parser not XML.
37848 Wed May 01 11:34:49 BST 2002  Olly Betts <olly@survex.com>
37850         * Tweaks to get queryparser building cleanly.
37852 Tue Apr 30 17:44:48 BST 2002  Olly Betts <olly@survex.com>
37854         * Updated query parser in extra from the updated one in omega,
37855           and fettled it to cope better with multiple instantiations
37856           (though it's a long way from being reentrant at the moment).
37858 Tue Apr 30 11:03:44 BST 2002  Olly Betts <olly@survex.com>
37860         * Updated todo.
37862 Mon Apr 29 19:28:04 BST 2002  Olly Betts <olly@survex.com>
37864         * More string.c_str() tidying.
37866 Mon Apr 29 17:41:33 BST 2002  Olly Betts <olly@survex.com>
37868         * Tidied up some uses of string.c_str().
37870         * Cleaned up todo list.
37872 Mon Apr 29 16:08:21 BST 2002  Olly Betts <olly@survex.com>
37874         * Updated buildall to check various tools have the required version
37875           numbers.
37877 Mon Apr 29 15:58:57 BST 2002  Olly Betts <olly@survex.com>
37879         * Tweaked use of HAVE_STREAMBUF
37881 Fri Apr 26 14:41:09 BST 2002  Sam Liddicott <sam@ananova.com>
37883         * Swig is now modified so it can build config.m4 and Makefile.in
37884           for php modules so I removed these from bindings/php4
37886 Tue Apr 23 18:21:03 BST 2002  Olly Betts <olly@survex.com>
37888         * Tried compiling with GCC 3.1 prerelease snapshot and fixed various
37889           STL-related warnings (mostly uses of istrstream).
37891         * Fixed usage of AM_CFLAGS and AM_CXXFLAGS.
37893 Tue Apr 23 15:48:36 BST 2002  Olly Betts <olly@survex.com>
37895         * Updated buildall (and had to tweak it again, sigh).
37897 Tue Apr 23 14:21:01 BST 2002  Sam Liddicott <sam@ananova.com>
37899         * Added typemap conversion to generate OmSettings from php hash
37900         * Changed order of classes in interface file
37902 Tue Apr 23 14:20:05 BST 2002  Olly Betts <olly@survex.com>
37904         * Revamped xapian-config and xapian.m4.  Important change - it's now
37905           "xapian-config --cxxflags" and XAPIAN_CXXFLAGS, not --cflags and
37906           _CFLAGS.
37908 Mon Apr 22 17:58:56 BST 2002  Olly Betts <olly@survex.com>
37910         * Removed leak checker.
37912 Mon Apr 22 13:40:01 BST 2002  Olly Betts <olly@survex.com>
37914         * Tiny code tweak.
37916 Mon Apr 22 13:11:32 BST 2002  Olly Betts <olly@survex.com>
37918         * Write debug log using unbuffered IO and O_APPEND which should prevent
37919           the log file becoming garbled when used from applications which use
37920           Xapian objects in multiple threads.
37922 Mon Apr 22 12:19:18 BST 2002  Olly Betts <olly@survex.com>
37924         * Updated copyright notices for last change.
37926 Mon Apr 22 11:20:28 BST 2002  Olly Betts <olly@survex.com>
37928         * Removed thread locks.
37930 Fri Apr 19 17:38:23 BST 2002  Olly Betts <olly@survex.com>
37932         * Removed completed tasks from todo list.
37934 Fri Apr 19 17:26:23 BST 2002  Olly Betts <olly@survex.com>
37936         * Removed placeholder code for OmQuery::OP_PERCENT_CUTOFF - it's
37937           actually impossible to implement since we started rescaling
37938           percentages so that 100% is attainable.
37940 Fri Apr 19 16:42:42 BST 2002  Olly Betts <olly@survex.com>
37942         * Tracked down and fixed the bug in the quartz backend which was making
37943           test poslist2 fail.
37945 Fri Apr 19 16:06:39 BST 2002  Olly Betts <olly@survex.com>
37947         * Fixed some compilation problems which I somehow failed to notice
37948           before the last check-in.
37950 Fri Apr 19 15:04:13 BST 2002  Olly Betts <olly@survex.com>
37952         * Added more RETURN(...) wrappers.
37954 Fri Apr 19 14:46:19 BST 2002  Olly Betts <olly@survex.com>
37956         * Added more DEBUGCALL tracing to quartz.
37958 Fri Apr 19 13:29:57 BST 2002  Olly Betts <olly@survex.com>
37960         * Minor tweaks to quartz_database.cc.
37962 Fri Apr 19 13:07:50 BST 2002  Olly Betts <olly@survex.com>
37964         * Moved test poslist1 into correct place and renamed it to poslist2
37965           since there's already a poslist1...
37967 Fri Apr 19 11:19:15 BST 2002  Olly Betts <olly@survex.com>
37969         * poslist1 (when actually run!) reveals that Quartz fails to throw
37970           errors in this case.  Disabled test for now, as I can't see why it
37971           fails to throw...
37973 Thu Apr 18 17:44:56 BST 2002  Olly Betts <olly@survex.com>
37975         * Added poslist1 test as suggested by a TODO entry.
37977 Thu Apr 18 14:17:24 BST 2002  Olly Betts <olly@survex.com>
37979         * buildall: Removed search for GNU make (as of automake
37980           1.5 it's not needed for automake and we aim to have portable
37981           makefiles).  Made buildall more portable.
37983 Thu Apr 18 14:16:18 BST 2002  Olly Betts <olly@survex.com>
37985         * xapian-config.nodep is a generated file, so don't look for it in
37986           srcdir.
37988 Thu Apr 18 12:45:04 BST 2002  Olly Betts <olly@survex.com>
37990         * Added bindings/php4/xapian/.cvsignore.
37992 Thu Apr 18 12:36:53 BST 2002  Olly Betts <olly@survex.com>
37994         * Minor tweaks to "Makefile" section in HACKING.
37996 Thu Apr 18 12:26:21 BST 2002  Olly Betts <olly@survex.com>
37998         * Yet more Makefile portability fixes; added section to HACKING
37999           summarising my recent experiences.
38001 Thu Apr 18 11:26:37 BST 2002  Olly Betts <olly@survex.com>
38003         * Corrected the sense of the test in the previous check-in.
38005 Thu Apr 18 11:08:04 BST 2002  Olly Betts <olly@survex.com>
38007         * Use case instead of echo/sed to replace dirname.
38009 Thu Apr 18 10:19:01 BST 2002  Olly Betts <olly@survex.com>
38011         * Another Makefile portability tweak.
38013 Wed Apr 17 16:07:02 BST 2002  Olly Betts <olly@survex.com>
38015         * bindings/php4/Makefile.am: Fixed a couple of problems with
38016           recent changes.
38018 Wed Apr 17 15:32:44 BST 2002  Olly Betts <olly@survex.com>
38020         * Makefile portability improvements.
38022 Wed Apr 17 14:29:21 BST 2002  Olly Betts <olly@survex.com>
38024         * Replaced uses of GNU make specific features with more portable
38025           ones.
38027 Wed Apr 17 12:43:07 BST 2002  Olly Betts <olly@survex.com>
38029         * Update todo list.
38031 Wed Apr 17 12:41:03 BST 2002  Olly Betts <olly@survex.com>
38033         * Removed BrightStation's logo from the documentation.
38035 Wed Apr 17 12:27:07 BST 2002  Olly Betts <olly@survex.com>
38037         * xapian-config: Removed --uninst support - it's very hard to make it
38038           work reliably and we're better off directing our efforts towards
38039           improving the library than trying to get it working and keep it
38040           working.
38042 Wed Apr 17 10:39:02 BST 2002  Olly Betts <olly@survex.com>
38044         * Fixed btreetest code to use new names "ord+" and "ord-" for
38045           datafiles; disabled LFSinsertdelete1 test as it's exactly the
38046           same as insertdelete1 (despite the comment above which suggests
38047           it tests files >2G).
38049 Mon Apr 15 17:14:22 BST 2002  Olly Betts <olly@survex.com>
38051         * Fix a few OmDatabase::InternalInterface uses I'd somehow missed.
38053 Mon Apr 15 16:08:20 BST 2002  Olly Betts <olly@survex.com>
38055         * Mark internal classes as @internal for doxygen; removed all uses
38056           of OmDatabase::InternalInterface as it's no longer needed.
38058 Mon Apr 15 15:42:47 BST 2002  Olly Betts <olly@survex.com>
38060         * Updated TODO list.
38062 Mon Apr 15 2002  Sam Liddicott <sam@ananova.com>
38064         * Hacked around bindings and bindings/php to remove some SWIG
38065           workarounds.  SWIG cvs + some new non-committed patches is need still.
38067 Mon Apr 15 12:12:05 BST 2002  Olly Betts <olly@survex.com>
38069         * stemtest: getopt fix.
38071         * stemtest.pl.in: output now: less verbose by default and coloured.
38073 Mon Apr 15 11:18:58 BST 2002  Olly Betts <olly@survex.com>
38075         * Updated HACKING to say that automake 1.5 is required, and note that
38076           automake 1.6.1 is better than 1.6.
38078 Sat Apr 13 20:35:51 2002  James Aylett  <tartarus@users.sourceforge.net>
38080         * Fixed stemtest getopt usage so it works again.
38082 Sat Apr 13 20:20:52 BST 2002  James Aylett  <tartarus@users.sourceforge.net>
38084         * Fixed omtcpsrv getopt usage so it works again.
38086 Fri Apr 12 16:24:06 BST 2002  Olly Betts <olly@survex.com>
38088         * Require automake 1.5.
38090 Fri Apr 12 12:11:57 BST 2002  Olly Betts <olly@survex.com>
38092         * omtcpsrv: Namespace fixes.
38094 Fri Apr 12 12:25:42 BST 2002  Olly Betts <olly@survex.com>
38096         * Fixed everything to use getopt rather than icky handparsing of
38097           options.
38099 Fri Apr 12 11:26:57 BST 2002  Olly Betts <olly@survex.com>
38101         * Removed delve - it's going to be an example program.
38103 Thu Apr 11 18:09:35 BST 2002  Olly Betts <olly@survex.com>
38105         * Command line argument improvements - added FIXMEs where getopt
38106           should be used.
38108 Thu Apr 11 17:01:44 BST 2002  Richard Boulton <richard@tartarus.org>
38110         * Fixes to work with automake 1.6.1.
38111           I recommend using 1.6.1 rather than 1.6, since this fixes many
38112           bugs in 1.6.  I havn't tested with 1.6 recently, but it is likely
38113           to report problems.
38115 Thu Apr 11 17:25:37 BST 2002  Olly Betts <olly@survex.com>
38117         * Use GNU getopt.
38119 Thu Apr 11 15:06:15 BST 2002  Olly Betts <olly@survex.com>
38121         * Updated to recommend automake 1.5, noting problem with automake 1.4
38122           and that we'll probably soon insist on 1.5, and later autoconf 2.50.
38123           Also added notes on recommended and usable GCC versions.
38125 Thu Apr 11 14:23:44 BST 2002  Olly Betts <olly@survex.com>
38127         * Cleaning up build system.
38129 Thu Apr 11 13:18:23 BST 2002  Olly Betts <olly@survex.com>
38131         * Use AndPostList with boolean weights on the RHS instead of
38132           FilterPostList - this appears to fix a bug, but I suspect it's
38133           actually just moving it around.  Will investigate later.
38135 Thu Apr 11 10:11:11 BST 2002  Olly Betts <olly@survex.com>
38137         * Sorted out automake for php4 bindings.
38139 Wed Apr 10 14:44:50 BST 2002  Olly Betts <olly@survex.com>
38141         * Removed a superfluous DEBUGLINE.
38143 Tue Apr  9 19:02:09 BST 2002  Richard Boulton <richard@tartarus.org>
38145         * Fix some DEBUGLINE() macros in the matcher which had
38146           the first parameter missing.
38148 Tue Apr 09 17:50:44 BST 2002  Olly Betts <olly@survex.com>
38150         * Removed stray bit of debug code.
38152 Tue Apr 09 17:05:09 BST 2002  Olly Betts <olly@survex.com>
38154         * More debug tracing added.
38156 Tue Apr 09 10:48:42 BST 2002  Olly Betts <olly@survex.com>
38158         * Disabled pthread support by default.
38160 Sat Apr  6 20:45:21 2002  James Aylett  <tartarus@users.sourceforge.net>
38162         * Reordered some output generation in configure so it won't
38163           complain about directories not existing. (I don't understand
38164           what the problem is, but this does fix it.)
38166 Sat Apr 06 20:27:57 BST 2002  Olly Betts <olly@survex.com>
38168         * Moved a few lingering traces of XML indexer stuff to indexer
38169           subdirectory.
38171 Sat Apr 06 17:37:02 BST 2002  Olly Betts <olly@survex.com>
38173         * Removed -pedantic (read the gcc docs - it's doesn't turn on
38174           useful warnings) and fixed all the remaining compilation
38175           warnings in a non-debug build.
38177 Fri Apr 05 10:21:28 BST 2002  Olly Betts <olly@survex.com>
38179         * Removed --enable-profiling, --enable-purify, and --enable-insure.
38180           They don't do anything which can't be achieved by passing
38181           environment variables and switches to configure (now documented
38182           in HACKING).  Adding a separate switch for every profiling and
38183           code-quality tool out there isn't a sensible approach.
38185 Thu Apr 04 20:37:12 BST 2002  Olly Betts <olly@survex.com>
38187         * Updated .cvsignore files.
38189 Thu Apr 04 20:25:41 BST 2002  Olly Betts <olly@survex.com>
38191         * PTHREAD_CFLAGS was only being used for compiling C, not C++, which
38192           was causing builds to fail unless threading was disabled.  This
38193           problem has been there a long time, but until recently was hidden
38194           by the check for fdatasync erroneously linking in -lrt which pulls
38195           in pthreads anyway (at least this is the situation on Linux).
38197 Thu Apr 04 20:06:00 BST 2002  Olly Betts <olly@survex.com>
38199         * Removed XML indexer stuff from the main xapian library.  All the
38200           removed bits are now in the indexer subdirectory, ready to be
38201           reassembled into a supplementary library.
38203 Thu Apr 04 15:43:43 BST 2002  Olly Betts <olly@survex.com>
38205         * More debug tracing in the matcher.
38207 Thu Apr 04 14:17:10 BST 2002  Olly Betts <olly@survex.com>
38209         * Added debug tracing to most of the matcher.
38211 Thu Mar 28 17:21:16 GMT 2002  Olly Betts <olly@survex.com>
38213         * Give up trying to make internals private or protected in the
38214           header files in include - the consequences are just too ugly, and
38215           it's clear enough that they shouldn't be messed with except by the
38216           library itself.
38218 Wed Mar 27 10:24:26 GMT 2002  Olly Betts <olly@survex.com>
38220         * Don't add "-lrt" to the link line unless it's actually needed for
38221           fdatasync().
38223 Wed Mar 27 10:11:09 GMT 2002  Olly Betts <olly@survex.com>
38225         * Fixed two problems in the matcher which were respectively causing
38226           problems with boolean filters, and with situations where OR or
38227           ANDMAYBE decayed to AND.
38229 Fri Jan 11 18:00:44 GMT 2002  James Aylett  <tartarus@users.sourceforge.net>
38231         * Various build fixes for libxml2: define CHAR as needed,
38232           --enable-validation (off by default), check for and discard
38233           'blank' text/cdata nodes as we encounter them
38235 Fri Jan 11 15:40:50 GMT 2002  Sam Liddicott <sam@ananova.com>
38237         * Added Large File Support in the same way it was added to GNU tar.
38238           (If it's good enough for them...)
38239           This is by means of autoconf/ac_sys_largefile which I'm told is
38240           built in to later versions of autoconf, and may possibly give us
38241           trouble redefining it for those versions...  But we'll see about
38242           that when/if it happens.
38244           It seems to work fine here on some DB's which I had to stop growing
38245           cos they got too big; I'm now past the 2G boundary with no problems
38247           I guess we should still add overflow detection for 2^31 blocks.
38248           Ideas?
38250           I need some help on the btreetest.cc as I haven't yet worked out
38251           what it does; so while I've added a test, it doesn't yet test
38252           what it says it does.  I have changed btreetest.cc so you can
38253           tell it where to dump the test DB
38255 Fri Dec 21 17:48:09 GMT 2001  Olly Betts <olly@survex.com>
38257         * Fixed halflife calculation in OmBiasFunctor.
38259 Fri Dec 21 15:24:58 GMT 2001  Olly Betts <olly@survex.com>
38261         * Added a temporary API to allow use of OmBiasFunctor.
38263 Fri Dec 21 12:58:23 GMT 2001  Olly Betts <olly@survex.com>
38265         * Disable conversion of OR to AND/ANDMAYBE in matcher tree - there's
38266           a bug which sometimes manifests when there's a date filter and a
38267           threshold cutoff in omega, and results in just one match when there
38268           should be more.  I don't believe the bug is actually in OrPostList
38269           but I've been tracking it for 4 days without success and turning off
38270           this optimisation seems to stop it occurring so will have to do for
38271           now.
38273 Thu Dec 20 17:41:04 GMT 2001  Olly Betts <olly@survex.com>
38275         * matcher/multimatch.cc: added more percent_cutoff assertions.
38277 Thu Dec 20 13:41:41 GMT 2001  Olly Betts <olly@survex.com>
38279         * Fixed incorrectly classified debug message; fixed compiler warning;
38280           more comments about matches_* with a percent_cutoff.
38282 Thu Dec 20 13:09:51 GMT 2001  Olly Betts <olly@survex.com>
38284         * Better OmPostListIterator::get_description() (call get_description
38285           on internal->postlist).
38287 Thu Dec 20 12:42:55 GMT 2001  Olly Betts <olly@survex.com>
38289         * Fixed assorted problems with omtcpsrv and co from recent change.
38291 Thu Dec 20 10:41:57 GMT 2001  Richard Boulton <richard@tartarus.org>
38293         * In ./configure --help, correctly report muscat36 backend as
38294           defaulting to off.
38296 Thu Dec 20 10:36:18 GMT 2001  Olly Betts <olly@survex.com>
38298         * Don't delete internal in ~OmWritableDatabase - ~OmDatabase
38299           does that for us (internal was zeroed after delete, so this
38300           was probably harmless)
38302         * Tweaked OmEnquire::get_description() and
38303           OmPostListIterator::get_description() to do less - there's a
38304           debug related bug somewhere and get_description() should be a
38305           non-intrusive method...
38307 Thu Dec 20 10:32:56 GMT 2001  Richard Boulton <richard@tartarus.org>
38309         * Fix a couple of misquoted messages in configure.in.
38311 Tue Dec 18 23:22:00 2001  James Aylett  <tartarus@users.sourceforge.net>
38313         * Use xapian.org where appropriate in documentation references
38315 Tue Dec 18 14:32:32 2001  James Aylett  <tartarus@users.sourceforge.net>
38317         * Use xapian.org not sourceforge for schemas
38319 Mon Dec 17 18:47:08 GMT 2001  Olly Betts <olly@survex.com>
38321         * Cured problems with string('x') caused by overzealous search
38322           and replace on my part.
38324 Mon Dec 17 16:44:31 GMT 2001  Olly Betts <olly@survex.com>
38326         * Improved matches_estimated when a percent_cutoff is in effect.
38328 Sun Dec 16 18:09:28 GMT 2001  Olly Betts <olly@survex.com>
38330         * You can now register a match decider functor by name with an
38331           OmEnquire object.  It's not yet used for anything though.
38333 Sun Dec 16 17:31:08 GMT 2001  Olly Betts <olly@survex.com>
38335         * omtcpsrv: simplified arguments - just list database directories and
38336           they'll be opened with the auto backend.  Removed --im as it didn't
38337           work as advertised and nobody's noticed (as actually implemented it
38338           was useless).
38340 Sat Dec 15 14:10:32 GMT 2001  Olly Betts <olly@survex.com>
38342         * Minor update to todo.xml.
38344 Sat Dec 15 13:43:47 GMT 2001  Olly Betts <olly@survex.com>
38346         * More fettling of OmBiasFunctor stuff - still not ready for use yet...
38348 Tue Dec 11 13:06:08 GMT 2001  Olly Betts <olly@survex.com>
38350         * Don't work out probabilistic weights for boolean bits of the query
38351           (rhs of FILTER and AND_NOT) which fixes incorrect percentage weights
38352           in filtered queries.
38354 Tue Dec 11 12:26:44 GMT 2001  Olly Betts <olly@survex.com>
38356         * Added test singlesubq1 to keep an eye on can_replace_by_single_subq.
38358 Mon Dec 10 16:58:21 GMT 2001  Olly Betts <olly@survex.com>
38360         * can_replace_by_single_subq shouldn't return true for OP_ELITE_SET
38361           since you can't call set_elite_set_size() on an arbitrary subquery.
38363 Thu Dec  6 15:02:05 GMT 2001  Richard Boulton <richard@tartarus.org>
38365         * (omqueryinternal.cc, omtermlistiteratorinternal.h)
38366           Fix some compiler warnings (when compiling with no debug) due
38367           to methods which should return a value but simply contain
38368           "Assert(false);".  Throw an exception in such methods instead
38369           (after the Assert).
38371 Mon Dec 03 11:20:42 GMT 2001  Olly Betts <olly@survex.com>
38373         * New BiasPostList - not yet enabled as it needs more work.
38375 Mon Dec 03 11:16:44 GMT 2001  Olly Betts <olly@survex.com>
38377         * quartzdump: give syntax error if no tables specified.
38379 Thu Nov 29 14:10:43 GMT 2001  Olly Betts <olly@survex.com>
38381         * ExtraWeightPostlist wasn't handling prune correctly.
38383 Thu Nov 22 13:46:59 GMT 2001  Olly Betts <olly@survex.com>
38385         * Fixed segfault when percentage_cutoff emptied the proto-mset.
38387 Thu Nov 22 12:27:49 GMT 2001  Olly Betts <olly@survex.com>
38389         * Enhanced test emptyquery1.
38391 Fri Nov 16 15:32:09 GMT 2001  Olly Betts <olly@survex.com>
38393         * Added OmQuery::is_empty() method.
38395 Thu Nov 15 15:36:07 GMT 2001  Olly Betts <olly@survex.com>
38397         * Updated todo list.
38399 Thu Nov 15 13:03:05 GMT 2001  Olly Betts <olly@survex.com>
38401         * Fixed percent_cutoff problems.
38403 Wed Nov 14 12:05:44 GMT 2001  Olly Betts <olly@survex.com>
38405         * Empty OmQuery() now matches no documents (rather than causing an
38406           exception).
38408 Thu Nov 08 18:23:21 GMT 2001  Olly Betts <olly@survex.com>
38410         * SIGSTKFLT isn't portable, so added #ifdef checks for it.
38412 Wed Nov 07 15:34:29 GMT 2001  Olly Betts <olly@survex.com>
38414         * Fixed 2 GCC 3.0 warnings in muscat36 backend.
38416 Wed Nov 07 14:21:47 GMT 2001  Olly Betts <olly@survex.com>
38418         * Made doc counts returned from percentage cutoff matches more
38419           accurate.
38421 Wed Nov 07 12:30:32 GMT 2001  Olly Betts <olly@survex.com>
38423         * GCC 3.0 fixes.
38425 Tue Nov 06 11:16:42 GMT 2001  Olly Betts <olly@survex.com>
38427         * Matcher now calculates percentages like Omega does (or did as I'm
38428           about to remove that code from Omega), rather than as a percentage
38429           of the theoretical maximum possible weight.  The old way generally
38430           gives disappointingly low values, and by pushing the percentage
38431           code down into the matcher, it can be used to optimise the query.
38433 Tue Nov 06 11:13:06 GMT 2001  Olly Betts <olly@survex.com>
38435         * Quick fix for problems with null OmQuery-s.
38437 Mon Nov 05 15:52:55 GMT 2001  Olly Betts <olly@survex.com>
38439         * Added signal handling to testsuite - if a testcase generates a
38440           signal it is caught and reported, then the testsuite continues
38441           with further testcases.
38443 Wed Oct 31 14:26:59 GMT 2001  Olly Betts <olly@survex.com>
38445         * Removed needless complications in matcher when a weight threshold
38446           has been set.
38448 Tue Oct 30 16:50:46 GMT 2001  Olly Betts <olly@survex.com>
38450         * Removed superfluous lines from configure.in; fixed warning from
38451           automake 1.5.
38453 Mon Oct 29 11:54:36 GMT 2001  Olly Betts <olly@survex.com>
38455         * Changed matcher to form proto-mset using a min-heap (as described
38456           in "Managing Gigabytes", 2nd ed., pp 211-213).  Compared to the
38457           previous "nth-element" approach, this uses about half the memory,
38458           allows the min-weight based matcher optimisations to work sooner,
38459           and should be inherently faster (not yet benchmarked though).  The
38460           code's slightly simpler too.
38462 Mon Oct 29 11:53:38 GMT 2001  Olly Betts <olly@survex.com>
38464         * Fixed remote backend to pass match_cutoff setting across.
38466 Fri Oct 26 13:43:08 BST 2001  Olly Betts <olly@survex.com>
38468         * Reserve size needed for mset vector.
38470 Thu Oct 25 18:00:54 BST 2001  Olly Betts <olly@survex.com>
38472         * Fixed a couple of stray references to the old sleepycat backend.
38474 Tue Oct 23 18:19:32 BST 2001  Olly Betts <olly@survex.com>
38476         * More cleaning up of MultiMatch.
38478 Tue Oct 23 16:14:27 BST 2001  Olly Betts <olly@survex.com>
38480         * Removed RemotePostList - it was an experimental idea which proved
38481           to be too slow even on a fast network.  Cleaned up code where hooks
38482           were bodged in for it.
38484 Tue Oct 23 13:27:12 2001  James Aylett  <tartarus@users.sourceforge.net>
38486         * Added documentation of the test system (albeit brief). Also
38487           mentioned the autotools book in HACKING.
38489 Tue Oct 23 12:07:59 BST 2001  Olly Betts <olly@survex.com>
38491         * Updated .cvsignore files.
38493 Tue Oct 23 11:29:47 BST 2001  Olly Betts <olly@survex.com>
38495         * Code tidying while investigating sporadic fails from quartztest.
38497 Mon Oct 22 17:42:30 BST 2001  Olly Betts <olly@survex.com>
38499         * Minor fettles to quartztest: fixed warnings, whitespace tidying,
38500           use mkdir(...) rather than system("mkdir ...")
38502 Mon Oct 22 16:41:12 2001  James Aylett  <tartarus@users.sourceforge.net>
38504         * Renamed project to Xapian.
38506 Mon Oct 22 14:22:00 BST 2001  Olly Betts <olly@survex.com>
38508         * Fixed non-ISO C++ code so Xapian will compile under GCC 3.0
38509           (and also RedHat's "GCC 2.96").
38511 Mon Oct 22 11:21:45 2001  James Aylett  <tartarus@users.sourceforge.net>
38513         * Altered omseek-config and the AC m4 macro to make uninst
38514           executables link to the right version of the library
38516 Mon Oct 22 10:38:20 2001  James Aylett  <tartarus@users.sourceforge.net>
38518         * Minor fixes to enable build (and test) under Solaris.
38520 Fri Jun 22 13:24:59 2001  Sam Liddicott <sam@ananova.com>
38522         * Added some explicit type casts in xmlindexer and quartz backend
38523           to help gcc2.96 compile.
38525 Thu Jun 21 11:05:31 2001  James Aylett  <tartarus@users.sourceforge.net>
38527         * HACKING updated to (a) remove inaccurate statements about
38528           copyright assignment, and (b) talk about developer write
38529           access to CVS.
38531 Mon Jun 11 13:24:43 2001  James Aylett  <tartarus@users.sourceforge.net>
38533         * pthread support detected using an automake macro. Should
38534           be more portable as a result.
38536         * We need GNU make: buildall now tries to find it.
38538 Mon Jun 11 12:07:00 2001  Hein Ragas <hragas@users.sourceforge.net>
38540         * Modified QuartzWritableDatabase::do_add_document and
38541           QuartzWritableDatabase::do_replace_document to leave the PositionList
38542           empty for a term with no positions associated with it.
38544 Mon May 29 12:17:00 2001  Hein Ragas <hragas@users.sourceforge.net>
38546         * Modified QuartzPostList::add_entry to allow for adding of entries
38547           in the middle of the postlist, not only at the end.
38549 Mon May 28 12:00:00 2001  Hein Ragas <hragas@users.sourceforge.net>
38551         * Fixed a bug in replace_document for Quartz, added a test to
38552           ensure proper working of the fix.
38554 Fri Apr 27 15:16:10 2001  James Aylett  <tartarus@users.sourceforge.net>
38556         * Project name change to Omseek.
38558 Wed Apr 11 09:06:37 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38560         * Implemented deleting of items from postlists, and added some
38561           tests to check that it works properly.
38563         * Fixed a potential memory leak in QuartzPostList if an exception
38564           was thrown from the constructor.
38566         * BackendManager now sets the quartz_logfile setting, to make
38567           the logs available from the testsuite.
38569         * Added mention of quartz_logfile to docs/omsettings
38571         * Removed a bad assert from InMemoryDatabase::get_doclength()
38573 Mon Apr  9 21:48:18 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38575         * Added #include <cmath> to testutils.cc
38577 Fri Mar 30 17:37:24 BST 2001 Olly Betts
38579         * Added extra/.cvsignore
38581 Fri Mar 30 17:22:13 BST 2001 Olly Betts
38583         * Disabled allocation checking of new[] and delete[] since some STL
38584           implementations use them which leads to leaks being reported where
38585           none exist.  This is addressable longer term...
38587 Thu Mar 29 19:05:46 BST 2001  Richard Boulton <richard.boulton@omsee.com>
38589         * Add "extra" directory to om source tree, to hold extra libraries
38590           for use with omsee, which aren't part of the core.
38592         * Put a query parser into "extra".  This is roughly the parser
38593           from omega.  Needs some work: in particular, it needs to be
38594           made reentrant.
38596         * Added extra/ directory to top level Makefile.am and configure.in.
38597           Added AC_PROG_YACC to Makefile.am
38599         * Add includes of required header files to omquery.h.
38601 Wed Mar 28 17:15:22 BST 2001  Richard Boulton <richard.boulton@omsee.com>
38603         * Modifications to OmQuery.  Remove the isbool flag: there is
38604           no longer any need for the concept of a "pure boolean query".
38605           The same effect as was obtained by setting isbool can be
38606           obtained by setting the match_weighting_scheme parameter to
38607           bool.
38609         * Also, undefined queries may no longer be used when
38610           building up composite queries; the correct behaviour for this
38611           is hard to define and implement and harder to document, and
38612           removing this removes lots of special case code.
38614         * Updated network query passing code.
38616         * Remove special cases for bool weighting in localmatch and irweight.
38618         * Updated omsettings docs.  Updated comments in omsetting.h.
38620         * Updated todo.xml
38622         * Incremented network protocol version.
38624         * Added test_emptyop1, which checks what happens when an attempt is
38625           made to use an empty list of subqueries to build up a query, and
38626           then use the query.
38628         * Remove test_boolsubq1: no such thing as a boolean query now, so
38629           no need to test what happens when one is used.
38631         * Updated testsuite to use "match_weighting_scheme" setting, rather
38632           than calling OmQuery::set_bool().
38634 Wed Mar 28 15:05:46 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38636         * Fixes to InMemoryDatabase:
38637           + do_open_post_list returns an EmptyPostList rather than an
38638             assertion error if the term doesn't exist
38639           + Fixed doccount(), which wasn't decrementing on delete_doc()
38640           + Remove terms from the database when they have no more postings.
38641           + Implement collection frequencies, and run collfreq tests for
38642             inmemory.
38644 Wed Mar 28 14:24:38 BST 2001  Richard Boulton <richard.boulton@omsee.com>
38646         * Set elite set size to max(10, sqrt(number of subqueries)) by
38647           default.  This is rather more useful than the old default of 0.
38649 Wed Mar 28 10:25:35 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38651         * QuartzDatabase now implements replace_document(), and
38652           delete_document() now removes keys/attributes as well.
38653           However, postlist entries are not yet correctly removed,
38654           so this will cause problems.
38656         * Added a test for deleting/replacing documents, which passes.
38658 Tue Mar 27 17:31:58 BST 2001 Chris Emerson <chris.emerson@omsee.com>
38660         * QuartzAttributes now has a method to delete a document's
38661           attributes, and QuartzRecordManager has a replace_ method.
38662           (But the code which uses these isn't in this commit).
38664 Thu Mar 22 15:58:08 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38666         * Change definition of OmQuery::is_defined(), so that elite set
38667           queries are undefined until a size is specified for the set.
38669 Wed Mar 21 14:29:04 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38671         * Implemented delete_document and replace_document in inmemory
38672           database.
38674 Wed Mar 21 12:39:13 GMT 2001 Olly Betts
38676         * Tweak to docs/quickstart.html.
38678 Wed Mar 21 02:50:19 GMT 2001 Olly Betts
38680         * Entirely removed sleepcat backend and all references to it.
38682         * Disable muscat36 backend by default.
38684 Tue Mar 20 18:47:12 GMT 2001 Olly Betts
38686         * open_document() now takes a lazy flag - if not set we need to check
38687           that the docid given actually exists.
38689         * heavy_duty flag now a bool instead of an int.
38691 Mon Mar 19 19:16:34 GMT 2001 Olly Betts
38693         * Added test getdoc1 to check exceptions are thrown for out-of-range
38694           docids (currently they aren't for quartz and muscat36 backends).
38696 Mon Mar 19 17:17:31 GMT 2001 Olly Betts
38698         * New simpler implementation of leak detection in testsuite.
38699           Currently doesn't support malloc/calloc/realloc/free.
38701 Mon Mar 19 16:46:16 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38703         * Further small modification to omsee-config: will now look in
38704           .libs subdirectories, too.
38706 Mon Mar 19 15:57:18 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38708         * Update omsee-config to work when a prefix is specified that
38709           points directly to the directory with the library, rather than
38710           expecting the library to be in a subdir "libs/".  (libs/ is
38711           still used if it exists).
38713         * Update omsee.m4, to use omsee-config even when using an
38714           uninstalled version of omsee.  This in turn fixes problems using
38715           uninstalled versions of omsee with STLport.
38717 Fri Mar 16 18:14:52 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38719         * Updated licenses, to include year 2001.
38721 Fri Mar 16 15:40:49 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38723         * Fix up small bug in quartztest causing it to fail for lack of an
38724           expected exception.  Initialise values in quartz_positionlist.cc
38725           when position list is not present.
38727 Thu Mar 15 17:40:38 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38729         * Make timeout absolute, rather than cumulative, when fetching
38730           multiple documents from database: if two nodes fail, the total
38731           timeout should still be that specified, not twice it.
38733         * Make the timeout set by SocketClient::set_query() get reset
38734           correctly if an exception happens (which used to prevent
38735           SocketClient::get_mset() ever getting called).
38737 Thu Mar 15 17:06:51 GMT 2001 Olly Betts
38739         * Oops, checked in too much - backing out the wrong stuff.
38741 Thu Mar 15 16:30:14 GMT 2001 Olly Betts
38743         * Include autoconf/definedir.m4 in tarball.
38745 Thu Mar 15 16:06:02 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38747         * Updated network protocol number to reflect change adding
38748           OP_ELITE_SET.
38750 Thu Mar 15 15:31:35 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38752         * QuartzPositionList should no longer complain if positional
38753           information isn't available for a particular term / document
38754           combination.
38756         * Updated todo.
38758 Thu Mar 15 13:55:53 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38760         * Removed OmDocument::set_wdf() and OmDocument::add_term().
38761           Replaced with OmDocument::add_term_nopos(), which adds a term
38762           without specifying positional information, taking an optional
38763           wdfinc parameter.  Updated testsuite correspondingly.
38765 Thu Mar 15 13:14:10 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38767         * Update TODO
38769 Wed Mar 14 17:51:40 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38771         * Added new operator OP_ELITE_SET, which replaces match_max_or_terms
38772           option.  Can now specify exactly which terms to apply max_or_terms
38773           to.  max_or_terms is obsolete: an error will be thrown if an
38774           attempt is made to use it.
38776 Wed Mar 14 15:56:20 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38778         * Added test for and implementation of multiple XOR queries.
38780         * Fix small bugs with get_termfreq_est() for xor and andnot
38781           postlists.
38783 Mon Mar  5 16:08:01 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38785         * Catch exceptions within the loop in SocketServer - exceptions
38786           should normally not kill the server.  This means that that a
38787           client still works after eg an OmDocNotFoundError, which was
38788           causing problems before.
38790 Fri Mar  2 18:15:47 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38792         * Add a new query operator, OP_WEIGHT_CUTOFF, which returns only
38793           those documents from a query which have a weight greater than a
38794           specified cutoff value.  Also added OP_PERCENT_CUTOFF, but this
38795           is not yet implemented.
38797         * Added test of new cutoff function, cutoff2.
38799         * Updated network protocol to pass new queries.  Increased protocol
38800           version number (to 10).
38802         * Added set_cutoff() function to OmQuery, to set cutoff parameter.
38804         * Updated TODO.
38806         * Remove unused member "PostList * postlist" of LocalSubMatch.
38808 Thu Mar  1 12:04:53 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38810         * Updates to HACKING.
38812 Wed Feb 28 18:42:47 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38814         * Fixes to neaten up configure output, and to test for the Perl
38815           Text::Format module, thanks to James Aylett (patch slightly
38816           modified, so if it doesn't work it's probably my fault).
38818         * configure.in checks for presence of ftime() and gettimeofday()
38820         * Added OmTime, a class to deal with times to an accuracy of
38821           microseconds, or whatever the best accuracy the system supports
38822           is.
38824         * Use OmTime in network code instead of time(NULL).
38826 Wed Feb 28 14:23:11 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38828         * Merge common code from OmSocketLineBuf::wait_for_data() and
38829           OmSocketLineBuf::do_readline() into
38830           OmSocketLineBuf::attempt_to_read(), and thus fix bug in
38831           wait_for_data() when 0 bytes returned from read().
38833 Tue Feb 27 18:40:33 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38835         * Fixes to remote matcher code to cope better with failure of
38836           submatchers:
38837           - Timeout for all submatches now correctly start at same time.
38839         * Added more extensive testing of above code, involving adding
38840           new parameters to inmemory to cause abort()s at various stages of
38841           the match.
38843         * Remove obsolete (and unused) method
38844           SocketServer::read_global_stats()
38846         * Errors are now generated from strings by using omerrortypes.h with
38847           suitable #defines before including it.  Updated todo accordingly.
38849         * Extend scope of try{} clause in socketserver, so that
38850           SocketServerFinished exception never escapes.
38852         * Default timeout in progserver increased to 30000.
38854         * Default timeout in tcpserver increased to 15000.
38856 Mon Feb 26 23:51:23 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38858         * Split query generation into stages: make new query, add subqueries,
38859           then finalise.  Add private methods to OmQuery reflecting this, and
38860           convert constructors into template methods, allowing any iterator
38861           to be used for constructing queries.  Removed reference to
38862           <vector> from omquery.h
38864         * Add omqueryinternal.cc, containing implementation of query
38865           internals. (surprise!)
38867         * OmQuery::Internal now has some helper functions to determine the
38868           properties of each particular query.  These should be converted
38869           into a lookup table, and the remaining hard-coded properties (for
38870           AND_MAYBE, AND_NOT and FILTER) factored out.
38872         * window property removed from constructor.  This can now be set by a
38873           separate call, to "OmQuery::set_window()"
38875         * Added a deleter_vector class, to store subquery pointers in a more
38876           exception-safe way.
38878         * Represent undefined queries by the new OP_UNDEF operation, rather
38879           than a dedicated flag - cleaned up some logic.
38881         * Some modifications to XOR handling: should now behave like OR and
38882           AND - doesn't need to be binary.  (*untested*)
38884         * Fixes to serialisation code in socketcommon.cc to work with new
38885           OmQuery::Internals - this should really be done in
38886           OmQuery::Internal.
38888         * One tiny fix in tcpclient.cc - an &fdset was missed for exception
38889           conditions in a select() call.
38891         * Testsuite modified and expanded to check changes to OmQuery.
38893 Mon Feb 26 18:20:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38895         * Fixed some compiler warnings reported by James Aylett.
38897 Mon Feb 26 14:27:09 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38899         * Avoid waiting for a timeout when closing a SocketClient.
38901 Fri Feb 23 14:38:09 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38903         * Updated todo.xml
38905 Thu Feb 22 18:14:41 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38907         * OmRegexFilterNode has an output for non-matching strings as
38908           well as matching.  "out" output renamed to "matching".
38910 Thu Feb 22 16:56:33 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38912         * Fixed a bug in the fetch() bits: requesting documents at the
38913           same time from different OmMSet instances could cause a
38914           document to disappear from the cache at the wrong moment.
38916 Thu Feb 22 15:39:49 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38918         * Updated todo.
38920 Thu Feb 22 12:14:12 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38922         * Some small changes in quartz to improve exception safety and
38923           error checking.
38925         * Remove unwanted OmExpandWeight::get_expand_k() method.
38927 Wed Feb 21 19:02:44 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38929         * Overhauled the OmMSet::fetch() etc. methods.  Documents are
38930           requested when fetch() is called, but are only fetched (all
38931           at once) when the first get_document() is called.
38933 Wed Feb 21 19:30:20 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
38935         * Add an errorhandler member to MultiMatch, and remove it from
38936           various calls which used to pass it about.
38938         * Add an EmptyMatch object, which always returns an emptypostlist.
38940         * Implement errorhandlers at start of query for initially down
38941           nodes.  Improve test for errorhandlers to cover many more cases.
38943         * Add many debug messages to error handling code.
38945 Wed Feb 21 14:33:50 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38947         * Use a deque<> directly instead of a queue, due to conflict
38948           with Solaris headers.
38950         * Split the collect_doc loop into a separate function
38952         * SocketClient should be more robust against request_doc() being
38953           used without collect_doc().
38955 Tue Feb 20 18:01:13 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38957         * SocketClient implements a queue/cache system which means that
38958           collect_doc() doesn't need to be called in the same order as
38959           request_doc().
38961 Mon Feb 19 15:43:49 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38963         * Converted btree code to use new/delete instead of [mc]alloc/free.
38965 Mon Feb 19 13:52:23 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38967         * Added new test collapsekey2 designed to work with muscat36
38968           databases, which have different key handling.  Added two new
38969           categories of tests to cope with this.
38971         * Adjusted BackendManager's key generation, and updated
38972           test_specialterms1() accordingly.
38974 Fri Feb 16 17:26:59 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38976         * Implemented a test for keep-alives
38978         * Added "-tNNNN" option to omprogsrv to pass a timeout value in.
38980         * Added get_network_database() in apitest to set the timeout.
38982 Fri Feb 16 16:13:47 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38984         * Incremented the remote protocol version, since a new message
38985           type has been added.
38987 Fri Feb 16 15:55:31 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38989         * Added an OmDatabase keep_alive() method to gently prod any
38990           remote databases.  Applications can use it to avoid the remote
38991           servers timing out between queries.  Not properly tested yet...
38993 Thu Feb 15 19:05:24 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
38995         * The remote server now supports a separate timeout used while
38996           idle, rather than actually servicing a request from the client.
38997           Options --idle-timeout and --active-timeout added to omtcpsrv,
38998           and --timeout sets both timeouts.
39000         * Added a documentation comment or two.
39002 Wed Feb 14 18:43:00 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39004         * In Muscat3.6 backends, don't read the key from the keyfile unless
39005           keyno is 0.
39007 Tue Feb 13 13:57:34 GMT 2001 Andy MacFarlane <andym@omsee.com>
39009         * Added parameter expand_k in omsettings in order to change
39010           value of weighting in expand process.
39012 Tue Feb 13 13:25:45 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39014         * Network timeouts now apply to write() operations as well
39015           as read().
39017         * SocketLineBuf::do_writeline() now correctly deals with EAGAIN.
39019         * SocketServer has new method writeline() which handles write
39020           access to the OmLineBuf.
39022 Mon Feb 12 12:35:41 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39024         * Make OmPositionListIterators and any other appropriate iterators
39025           (postlist, termlist) have a default constructor allowing them to
39026           be declared uninitialised.
39028 Mon Feb 12 10:51:41 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39030         * Updated todo.xml
39032 Thu Feb  8 17:59:44 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39034         * Moved omnodepad.h from include/om to indexer/indexgraph/
39036         * Updated todo.xml
39038 Thu Feb  8 17:35:45 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39040         * Updated todo.xml
39042 Thu Feb  8 17:00:02 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39044         * Quartz now has a metafile which for now has a magic string
39045           and a version number.
39047         * sys_open_to_read() and delete_file() exported from btree.cc.
39048           The latter was renamed to sys_unlink_if_exists().
39050         * Include btree_types.h from btree_util.h
39052 Wed Feb  7 17:33:00 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39054         * Fix to InMemory databases: terms can be added even if they
39055           don't have any positions.  (Was causing adddoc2 to fail).
39057 Tue Feb  6 18:06:13 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39059         * Rename OmMSet::fetch_items() to fetch().  Add an overloaded
39060           fetch() method taking a single iterator, to fetch a single item.
39062         * Fix some documentation comments.
39064 Mon Feb  5 19:16:45 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39066         * Update TODO
39068 Mon Feb  5 19:12:39 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39070         * Test behaviour of OmDocument methods add_term(), set_wdf(),
39071           remove_posting() and remove_term().  Fails for inmemory databases.
39073 Mon Feb  5 17:46:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39075         * Modified the behaviour of timeouts during a match.  Internally,
39076           an absolute timeout time is set from start_match().  Now remote
39077           nodes should timeout at NOW + remote_timeout, rather than
39078           waiting remote_timeout milliseconds for each read().  Needs
39079           some more testing.
39081 Mon Feb  5 17:21:52 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39083         * Fix a missing #include in socketcommon.h
39085 Mon Feb  5 17:15:46 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39087         * Sort generated todo lists.
39089 Fri Feb  2 17:44:54 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39091         * Add an OmDocument::add_term() method.
39093         * Remove an unwanted check that wdf's are greater than 0: wdf of 0
39094           _is_ allowed.
39096 Fri Feb  2 15:04:08 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39098         * Hopefully, a fix for segfaults/assertions when network errors
39099           happen halfway through a match, when handled by OmErrorHandler
39100           objects: give the place-holder EmptyTermLists weighting objects.
39102 Thu Feb  1 19:03:10 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39104         * Fixes to OmDocument interface: add parameters specifying the
39105           changes to be made to the wdf to add_posting and remove_posting,
39106           properly implement remove_posting and remove_term, including
39107           throwing of exceptions, and add a set_wdf() method to set the wdf
39108           to an absolute value.  Corresponding modifications to
39109           OmDocumentTerm.
39111         * Fix commented out errorhandler code in multimatch.cc, so it still
39112           compiles.
39114         * Add a check to avoid division by zero in bm25weight.cc
39116 Thu Feb  1 15:59:30 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39118         * Add a missed #include to omqueryinternal.h
39120 Thu Feb  1 14:44:04 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39122         * Add some error handler code, with a "#if 0"ed out comment,
39123           to multimatch.cc
39125 Wed Jan 31 15:45:16 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39127         * Remote servers should close down more gracefully when the
39128           client closes down in the middle of a request.
39130 Tue Jan 30 16:52:05 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39132         * Removed unneeded #includes of STL headers from API headers.
39134         * All #includes of files which are not installed use "" rather than
39135           <>.  This means all #includes of OM files except for those which
39136           are in example programs (and hence might be compiled against the
39137           installed library).  "" search paths are a superset of <> search
39138           paths: hence this should ensure that the om headers work however
39139           they are used.
39141         * Moved supplied OmExpandDecider subclasses into
39142           include/om/omexpanddecider.h
39144         * Remove om_termname_list from API: not used except by code which
39145           displays it, and in testsuite.
39147 Tue Jan 30 12:45:22 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39149         * Removed #include <vector> from omstem.h
39151 Tue Jan 30 11:09:29 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39153         * OmStem::get_available_languages() now returns a string
39154           rather than a vector.  Languages are space-separated.
39155           Updated apitest.
39157         * Added definition of RTLD_DEFAULT to internaltest.cc
39159 Mon Jan 29 16:11:15 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39161         * OmIndexerMessage's copy-on-write slightly more careful.
39163         * Improved debugging in OmIndexerNode
39165         * Fixed a bug in the termlistadd node - it tried to append to a
39166           non-vector.
39168 Fri Jan 26 16:21:09 GMT 2001 Olly Betts
39170         * indexerxml.cc: Removed some dead code.
39172 Fri Jan 26 16:11:13 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39174         * Added omindexerdescinternal.h to the Makefile
39176 Fri Jan 26 15:50:32 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39178         * Move OmQuery definition into a separate header file.
39180 Fri Jan 26 15:46:42 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39182         * Move OmQuery::OP_LEAF out of public visibility, by taking it out
39183           of the enum, making it a static const member of OmQuery::Internal,
39184           and introducing an OmQuery::Internal::op_t to store query
39185           operators in internally.  We lose the ability for the compiler to
39186           warn us if we forget to check for a particular operator in a
39187           switch statement, but this can't really be avoided.
39189 Fri Jan 26 13:49:33 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39191         * Added get_output_{node,pad} to OmIndexerDesc
39193         * Implemented and testes OmNodeInstanceIterator
39195         * Implemented OmIndexerBuilder::build_from_desc, which somehow
39196           hadn't been.  indextest now uses it.
39198 Thu Jan 25 18:47:08 GMT 2001 Olly Betts
39200         * Fixed various .cvsignore files (omus -> omsee, and
39201           bindings/java/.cvsignore which seemed to have been copied from
39202           the top level one at some point).
39204         * Fixed bug in OrPostList when used in a pure boolean context
39205           (uninitialised variables).
39207         * tests/internaltest.cc: removed unused reference to getopt.h.
39209         * tests/stemtest.pl.in: removed lots of bogus semicolons after
39210           closing braces.
39212 Thu Jan 25 17:53:08 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39214         * Turn debugging messages (OM_DEBUG_TYPES) off by default.
39216         * Add todo items for release to pages generated for website.
39218 Thu Jan 25 15:11:14 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39220         * Add a couple of documentation comments: we need many more of
39221           these.  No method, and certainly no class, in the API should be
39222           without an explanatory comment (not least so that they're
39223           accessible from the doxygen browser).
39225 Thu Jan 25 14:51:55 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39227         * Hide the internals of OmIndexerDesc, and adding member functions
39228           to do all the necessary operations (not all yet implemented).
39230         * Indexer internals mostly deal with OmIndexerDesc::Internal
39232         * Removed '#include <vector>' from omindexerdesc.h
39234 Thu Jan 25 13:45:49 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39236         * When setting up an RSet, allow documents to be referenced by
39237           OmMSetIterator, for convenience.
39239         * Allow OmMSetIterators and OmESetIterators to be created without
39240           initialising, also for convenience.
39242         * Include CFLAGS for STLPORT in the flags produced by omsee-config.
39244         * Change several more missed "omus"s to omsee.
39246 Thu Jan 25 13:50:06 GMT 2001 Chris Emerson <chris.emerson@omsee.com>
39248         * Changed a mention of libomus in netprogs/Makefile.am to libomsee
39250 Thu Jan 25 12:33:46 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39252         * Build only the API docs when making dist / install.  Full source
39253           docs only get built if explicitly asked for.
39255 Thu Jan 25 11:36:39 GMT 2001  Richard Boulton <richard.boulton@omsee.com>
39257         * Project name changed to Omsee.
39259           Ramifications from a technical viewpoint are:
39261           - library name changed from libomus.* to libomsee.*
39262           - libomus-config renamed to omsee-config
39263           - Autoconf macro file libomus.m4 renamed to omsee.m4,
39264             macro name OM_PATH_LIBOMUS changed to OM_PATH_OMSEE
39265             and macro now defines OMSEE_CFLAGS and OMSEE_LIBS rather
39266             than LIBOMUS_CFLAGS and LIBOMUS_LIBS.  configure arguments
39267             changed name, also.
39269 Wed Jan 24 15:57:10 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39271         * Improve test of OmMSetIterators equality comparisons.
39273         * Update TODO
39275 Wed Jan 24 15:11:11 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39277         * Renamed OmNodeConnection to OmNodePad.  The old name was
39278           confusing.
39280         * Added OmPadIterator, and OmNodeDescriptor::{in,out}puts_{begin,end}.
39281           Also implemented OmNodeDescriptor::get_type()
39283         * Added output function for OmPadIterator
39285         * Added test for OmPadIterators
39287 Tue Jan 23 19:01:29 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39289         * Remove OmBatchEnquire from system: it may return at a later date,
39290           but for now it is simply out of date and a maintenance liability,
39291           and gives no significant advantage.  Code now exists in
39292           ombatchenquire.h in CVS, but is not part of build process.
39294         * Make OmEnquire and OmMSet have reference counted internals: this
39295           introduces a further layer of indirection, but tidies up things
39296           greatly.
39298         * Remove get_docs() and get_doc() methods from OmEnquire.
39299           get_doc(docid) is catered for by OmDatabase::get_document(docid).
39300           Added OmMSetIterator::get_document() to replace get_doc on a
39301           MSetIterator.  Added OmMSet::fetch_items() to replace get_docs():
39302           it prefetches the documents (or just those specified by some
39303           MSetIterators into a cache in the Mset).
39305         * OmMSet internals now have a reference to the creating OmEnquire
39306           object: this is set up after the mset returns from the matcher.
39307           If the reference is null, the Mset was created standalone, and
39308           get_doc methods will fail.
39310         * OmMSetIterators now have a reference to the MSet, instead of a
39311           percent_factor stored.  This allows the percent_factor to be
39312           lazily calculated, and also allows get_doc to work.
39314         * Add get_rank() method to OmMSetIterators.
39316         * Improve introspection on OmDocument, and fix a bug with assignment
39317           of OmDocument (wasn't assigning most of the internals).
39319         * Add a missing std:: on a string in omstopwordnode.
39321         * Fixed several documentation comments.
39323         * Add some more debugging to quartz.
39325         * Update TODO.
39327         * Add test_fetchdocs1 to apitest.  Disable test_batchquery1.
39329         * Remove sign comparison error in VectorTermList.
39331 Tue Jan 23 16:24:04 GMT 2001 Olly Betts
39333         * No longer compile with -ansi under gcc - it causes problems by
39334           preventing Linux system headers defining various functions we need.
39336         * testsuite/testsuite.cc: when reporting exceptions, display
39337           exception's errno value if set.
39339 Tue Jan 23 15:13:58 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39341         * Killed OmIndexerBuilder::NodeType.  Now use OmNodeDescriptor
39342           in its place, getting rid of another vector usage in the API.
39344         * OmNodeDescriptor adjusted for its new role: internals are
39345           refcounted, and some query as well as setting functions.
39347         * Cast the fourth argument to getsockopt() to void *.  On Solaris
39348           that argument is char *.
39350 Tue Jan 23 11:24:13 GMT 2001 Olly Betts
39352         * Tiny tweak to da_document.cc.
39354 Fri Jan 19 18:36:15 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39356         * Removed get/set vector methods from OmSettings
39358         * Remote/prog arguments now passed in a string separated be spaces,
39359           not a vector.
39361         * split_words() moved from netutils.h to utils.{h,cc}
39363         * Some unnecessary #include <vector> lines removed from API headers
39365         * Removed get_config_vector() from OmIndexerNode
39367         * OmConstantNode no longer handles vector values, and
39368           OmStopWordNode and OmSelectItemsNode use space-separated
39369           values instead.
39371 Thu Jan 18 17:31:55 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39373         * Removed mentions of std::vector from OmIndexerMessage, and
39374           updated the relevant bits.
39376         * Fixed a bug with the copy-on-write parts of OmIndexerMessage.
39378 Thu Jan 18 17:09:43 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39380         * Fix to btreetest.cc: shouldn't fail if test data files are not
39381           available.
39383         * Fix to multimatch.cc: clamp hits values to number of documents
39384           matched after collapsing and match functors, rather than before.
39386 Thu Jan 18 14:13:21 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39388         * Fix error messages thrown by quartz when a database doesn't exist /
39389           already exists and isn't to be overwritten.
39391         * Make quartz clean up an old database directory, if
39392           database_allow_overwrite is specified, so that old base files don't
39393           confuse things.
39395 Wed Jan 17 18:18:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39397         * Added all used toplevel directories to DIST_SUBDIRS
39399 Wed Jan 17 18:13:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39401         * Martin committed changes to btree.cc which should fix some random
39402           problems experienced with quartz.
39404         * Added in a test framework for the btree code, which exhibited the
39405           bug fixed by martin until updating to his fixed version.
39407 Wed Jan 17 16:10:02 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39409         * Moved the socklen_t definition so that tcpclient.cc could see
39410           it.
39412 Tue Jan 16 20:35:18 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39414         * Fix creation of quartz databases in backendmanager: all tests should
39415           now pass.
39417 Tue Jan 16 20:28:46 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39419         * Fix quartztest so that the tables / databases get created.
39420           Implement new test "create1" to check that creation of databases
39421           works as specified.
39423         * Fix test for whether we are allowed to overwrite a database.
39425         * Implement much better logging from quartz when making new databases.
39427         * Clean up an error message from btree.cc
39429 Tue Jan 16 19:24:49 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39431         * Don't display messages about allocation failures in the first
39432           iteration: if the failures go away when repeating, we're not
39433           interested.
39435 Tue Jan 16 18:28:03 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39437         * Add two new OmSettings, for use when opening databases:
39438           database_create and database_allow_overwrite.  The idea is that
39439           databases will only be created if database_create is specified,
39440           and that when they are being created an exception will be thrown
39441           if there's an existing database unless database_allow_overwrite
39442           is specified.
39444         * Implemented database_create and database_allow_overwrite for
39445           Quartz, which is the only relevant type for now.  Note that this
39446           breaks the testsuite, quite badly.
39448         * Add OmDatabaseCreateError, which is thrown when creating a database
39449           fails.
39451 Tue Jan 16 17:08:47 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39453         * Fixed a typo in -ldl detection
39455 Tue Jan 16 15:15:30 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39457         * Remove OmNeedRecoveryError, and quartz's quartz_perform_recovery
39458           parameter.  Quartz now always performs recovery if needed: there
39459           is no need for this added complication.
39461         * Update TODO
39463 Tue Jan 16 14:25:03 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39465         * Changed references to SIGCLD to SIGCHLD as it's more portable.
39467 Tue Jan 16 14:02:34 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39469         * Added check for whether -ldl is necessary.
39471 Tue Jan 16 11:51:25 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39473         * Added compatibility bits for early libxml1 versions.
39475 Mon Jan 15 18:18:01 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39477         * Removed use of hstrerror, which isn't portable.
39479 Mon Jan 15 18:02:42 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39481         * Fix assertion which was the wrong way round in multimatch.cc
39483 Mon Jan 15 17:46:13 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39485         * Fix initialisation of Btree_base::sequential when creating database.
39487 Mon Jan 15 15:43:46 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39489         * Renamed some uses of XML node structure for libxml2 compatibility.
39491 Mon Jan 15 15:35:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39493         * Add some fixes to sequential access to btrees from Martin.
39495 Mon Jan 15 12:23:02 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39497         * Set matches_* to the known value of the number of hits if we have
39498           been unable to return as many hits as were requested, and therefore
39499           know the exact number.
39501         * Update test_matches1() to check this works correctly.  Passes.
39503 Fri Jan 12 17:45:27 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39505         * Implement get_doclength() for QuartzDatabase
39507         * Remove unused parameter from QuartzRecordManager::add_record()
39509 Fri Jan 12 17:14:16 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39511         * Fixed MultiAllTermsList, which had stopped working.
39513 Fri Jan 12 15:32:34 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39515         * Add test to apitest (postlist6) that doclengths got from postlists
39516           are the same as those from databases.  Fails for Quartz for the
39517           moment.
39519         * Add test to quartztest (disktable3) to try and bring out a bug in
39520           adding to tables.
39522 Fri Jan 12 15:20:09 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39524         * Fix STLport macro so that it will accept an STLport installation
39525           with foo/include/stlport and foo/lib instead of foo/stlport and
39526           foo/lib.
39528 Fri Jan 12 14:04:37 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39530         * Fixed buglet in configure.in which produced a bogus warning
39531           about regex libraries.
39533         * Added an AC_MSG_RESULT corresponding to an AC_MSG_CHECKING
39534           for the libxml flags
39536 Fri Jan 12 13:18:07 GMT 2001 Chris Emerson <chris.emerson@open.muscat.com>
39538         * Fixed skip_to() in QuartzAllTermsList
39540 Fri Jan 12 12:52:57 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39542         * Turn debugging off in btree.cc: accidentally committed a version
39543           with lots of verbose debugging on.
39545 Fri Jan 12 11:16:17 GMT 2001 Olly Betts
39547         * glibc 2.2 needs `#define _GNU_SOURCE' to give us RTLD_NEXT.
39549         * C++ comments changed to C comments in malloccheck.c.
39551 Thu Jan 11 16:42:07 GMT 2001 Olly Betts
39553         * Removed unnecessary `#include "alltermslist.h"' from
39554           d[ab]_database.h.
39556 Wed Jan 10 14:28:10 GMT 2001 Olly Betts
39558         * Updated various .cvsignore files.
39560 Tue Jan 09 19:03:12 GMT 2001 Olly Betts
39562         * Tidied up dead code from OmAllTermIterator.
39564 Tue Jan 09 18:41:21 GMT 2001 Olly Betts
39566         * OmAllTermsIterator merged into OmTermIterator.
39568         * When iterating over all terms, skip_to() doesn't set at_end()
39569           when it skips off the end.  Fixed except for quartz and added
39570           regression test (allterms3).
39572 Tue Jan  9 18:14:04 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39574         * Add some extra debugging code into btree code in quartz.
39576 Tue Jan  9 17:22:12 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39578         * Make skip_to() work (ie, do nothing) on OmTermIterators, when the
39579           term iterator is at_end() already.
39581 Tue Jan  9 13:32:08 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39583         * Updates to make the quartzdump utility more useful.
39585         * Added new test to test cursor behaviour in quartz.
39587 Tue Jan  9 11:31:26 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39589         * Remove an item from TODO
39591 Tue Jan  9 10:27:35 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39593         * Add a missing \ in tests/Makefile.am
39595 Mon Jan  8 19:03:42 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39597         * Increment format number in quartz/btree_base.cc.  This isn't
39598           actually due to a change in the btree format, but to ensure that
39599           some databases which were causing problems are rebuilt.
39601           We need to add quartz format numbers, separate from the btree format
39602           numbers, to check this kind of thing.
39604 Mon Jan  8 15:13:04 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39606         * Add some debugging, and fix a test data file.
39608 Mon Jan  8 13:49:50 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39610         * Fix failure to initialise OmMSet::Internal::have_percent_factor.
39612 Thu Jan  4 17:21:24 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39614         * Add new test for a postlist with many documents, designed to fail
39615           and exhibit the bug andy has found.  So far doesn't fail.
39617 Wed Jan  3 19:30:30 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39619         * Add get_percent method to OmMSetIterator.  Untested.
39621         * Add om_percent type to om_types.
39623         * Add test of sort order of terms in get_matching_terms.
39625 Tue Jan  2 15:05:53 GMT 2001  Richard Boulton <richard.boulton@open.muscat.com>
39627         * Move documentation of parameters for OmSettings out of omsettings.h
39628           and into docs/.  Not in distribution at the moment: it is awaiting
39629           placement into a permanent home (I think the user manual is the
39630           correct place).
39632         * Add a bm25weight_min_normlen parameter: this specifies a cutoff
39633           on the minimum value that can be used for a normalised document
39634           length: smaller values will be forced up to this cutoff.  This
39635           prevents very small documents getting a huge bonus weight.
39637 Wed Dec 20 16:54:41 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39639         * Fix warning in QuartzTable
39641 Wed Dec 20 15:13:05 GMT 2000 Olly Betts
39643         * OmTermListIterator merged into OmTermIterator.
39645         * Added OmRSet::contains() - checks if an RSet contains a given
39646           docid.
39648         * Methods returning `const om_termname' now just return
39649           `om_termname'.
39651 Tue Dec 19 16:55:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39653         * Implemented AllTermsIterator for DA and Multi databases.
39654           Added a test which actually uses a multidatabase, but
39655           disabled it as it currently fails for both Quartz and DA.
39657 Tue Dec 19 12:14:05 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39659         * Adjusted TODO
39661 Tue Dec 19 20:06:43 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39663         * Escaping for termnames in remote database communication modified
39664           to use only characters in range 33 to 126.  Should now work on all
39665           architectures.
39667         * Increased OM_SOCKET_PROTOCOL_VERSION to 8.
39669 Mon Dec 18 17:23:48 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39671         * Added "match_cutoff" option to get_mset OmSettings.
39673         * Added test for "match_cutoff" to apitest.
39675         * Updated todo.xml
39677 Mon Dec 18 17:19:40 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39679         * Implemented opening positionlists from inmemory databases.  Added
39680           a testcase as well, which is run for quartz and inmemory.
39682 Mon Dec 18 15:48:16 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39684         * Implemented AllTermsIterator for quartz.  Interaction with
39685           QuartzPostList needs to be cleaned up.
39687         * Added new functions [un]pack_string_preserving_sort(), which
39688           pack a string in a way which preserves sort order.  Added a
39689           testcase to quartztest.
39691         * Now use [un]pack_string_preserving_order() on postlist keys, so
39692           that we can get at terms in sorted order.  (And get_tname_from_key()
39693           added to separate out the term-unpacking as well as the packing)
39695         * Enabled test_allterms1 in apitest, but put it in a group of
39696           tests only run for inmemory and quartz.  This should be extended
39697           to other backends.
39699 Mon Dec 18 14:33:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39701         * Implemented tests of msetiterator and esetiterator copying and
39702           assignment.
39704         * Fix segfault when assigning to [me]setiterator to end.
39706         * Updated todo.xml
39708 Mon Dec 18 13:52:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39710         * Move creation of first key in a quartz postlist into a named
39711           function (was scattered through the code).
39713 Mon Dec 18 11:19:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39715         * Update todo.xml
39717 Mon Dec 18 10:47:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39719         * Remove const from reverse_iterators in api_db.cc, so get around
39720           brokenness of egcs 1.1.2
39722 Mon Dec 18 09:41:54 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39724         * Added apitest_space.txt to the Makefile.am
39726 Sun Dec 17 16:15:03 GMT 2000 Olly Betts
39728         * Replaced all API uses of om_termname_list with OmTermIterator.
39730 Fri Dec 15 18:54:10 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39732         * Implemented OmAllTermsIterator interface in API.  It works for
39733           inmemory - the rest haven't been implemented yet.  The test
39734           is commented out.
39736 Fri Dec 15 15:47:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39738         * Updated TODO.
39740         * database returns positionlists as AutoPtrs; this neatens some of
39741           the code from the previous changelog entry, and makes explicit the
39742           ownership of the pointer.  postlists and termlists should be
39743           AutoPtrs, likewise.
39745 Fri Dec 15 14:59:41 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39747         * Make OmPositionListIterators retrieved from OmPostListIterators
39748           valid indefinitely (were only valid until OmPostListIterator was
39749           moved).  This makes them consistent with OmPositionListIterators
39750           retrieved from OmDatabases.
39752         * Renamed PostList::get_position_list() to read_position_list.
39753           Added PostList::open_position_list() which opens a new positionlist
39754           and returns it as an AutoPtr.
39756 Fri Dec 15 13:09:51 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39758         * Make TODO.release file, containing TODO items for next release.
39760 Fri Dec 15 12:06:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39762         * QuartzDatabases now autoflush after 1000 changes.
39764 Fri Dec 15 11:40:37 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39766         * Fix segfault in quartz_table
39768 Fri Dec 15 11:23:15 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39770         * Removed begin/end_session() from quartztest
39772 Thu Dec 14 19:19:40 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39774         * Done todo item: For writable databases, make the behaviour currently
39775           obtained by calling begin_session() and later end_session() the
39776           default behaviour.  If users want the changes to be applied
39777           immediately following a change, they should call flush().
39779 Thu Dec 14 17:48:27 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39781         * Fix problem with recalc_maxweight() not being called before a
39782           get_maxweight() in multimatch.cc if a node prunes at the top level,
39783           since recalculate_w_max wasn't being checked at this point.
39784           Introduced helper function getorrecalc_maxweight() to tidy this up.
39786         * Tidy up Asserts in common/netutils.h.
39788 Thu Dec 14 17:11:17 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39790         * Adjusted todo.xml
39792 Thu Dec 14 16:21:27 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39794         * Removed handling of OmDatabaseModifiedError in the API - it's
39795           up to the users to know what to do.  Disabled quartzoverwrite2
39796           as it's now inappropriate.
39798         * Added OmDatabase::reopen() to help them do so.
39800         * Adjusted todo.xml
39802 Thu Dec 14 14:38:39 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39804         * Added another quoting regression test.
39806 Thu Dec 14 14:36:53 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39808         * Fixed the quoting _again_, since it broke with backslashes.
39810 Thu Dec 14 12:49:58 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39812         * Fix problems with recalculation of maxweight in postlists, causing
39813           AssertParanoid at multimatch.cc:393.  When a prune was happening,
39814           recalc_maxweight flag was not always being set, because some
39815           {next,skip_to}_handling_prune() methods weren't being passed the
39816           matcher, and a default argument of 0 was being used.  I've now
39817           removed the default argument and pass the matcher always.
39819           Sometimes the recalc could perhaps be avoided, but this is
39820           certainly safer for now.
39822 Thu Dec 14 12:30:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39824         * Sleepcat is now disabled by default.
39826         * Fixed a problem with tabs not being quoted in the remote case.  All
39827           control characters are now quoted.  Incremented the protocol ver
39828           number.
39830 Thu Dec 14 11:54:17 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39832         * Added regression test to check that all characters can be
39833           are safe to exist in document keys.
39835         * Fixed OmDebug so that it can display messages containing zero bytes
39836           (use fwrite instead for fprintf)
39838 Wed Dec 13 18:43:40 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39840         * Add regression tests to apitest to check that OmMSet and OmESet
39841           begin() and end() iterators compare equal if the mset is empty.
39842           Fix matchfunctor used in test_matchfunctor1 so that it works for
39843           Muscat3.6 databases.
39845 Wed Dec 13 18:35:05 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39847         * Fixed bugs in OmMSet and OmESet iterators: begin() when the set
39848           was empty produced an invalid iterator, and the assignment
39849           operators would have failed when end iterators were involved.
39851         * Added a check in test_matchfunctor1() that the mset returned is
39852           not empty.
39854 Wed Dec 13 18:18:09 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39856         * Turn off tests involving terms with newlines or zero bytes in terms
39857           with Muscat3.6 backends; these can't be expected to work.
39859 Wed Dec 13 18:06:29 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39861         * Uncommented the code in pctcutoff1 - test now passes.
39863 Wed Dec 13 17:53:19 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39865         * Fix: m36_key_file parameter wasn't being set with DA flimsy
39866           databases (thanks to Mark Hagger).
39868         * indextest.cc changed to use "\n" instead of endl - compiles
39869           with STLport again.
39871 Wed Dec 13 17:27:17 GMT 2000 Olly Betts
39873         * OmMSet is now an STL compatible container.
39875         * Om*Iterator::difference_type was unsigned - now signed.
39877         * net/readquery.ll: fixed compiler warning.
39879         * Remote backend was defaulting to collapse on key 0.
39881 Wed Dec 13 16:48:49 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39883         * Add handling of DatabaseModified to OmEnquire::get_mset()
39885 Wed Dec 13 16:28:47 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39887         * Escape zero bytes in the network protocol, since these were
39888           breaking things when being passed across as part of keys.
39890         * Add test of having zero bytes in the collapse keys.
39892         * In testsuite, only display the context of errors if there is one
39893           present.
39895 Wed Dec 13 14:44:46 GMT 2000 Olly Betts
39897         * Implemented OmMSet::operator[]().
39899 Wed Dec 13 14:30:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39901         * Added support for handling overwritten database conditions.
39902           Currently works for OmDocument::get_{data,key}().
39904 Wed Dec 13 13:20:45 GMT 2000 Olly Betts
39906         * Elaborated API hitlist in todo.xml.
39908 Wed Dec 13 12:28:18 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39910         * Fix to BackendManager to stop it removing tables prematurely.
39912 Wed Dec 13 11:49:53 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39914         * Apply the stemmer to query terms used in spaceterms1.  (Not doing
39915           so caused the test to fail spuriously on local databases, since the
39916           terms are stemmed at index time).  The test still fails with da and
39917           db databases.
39919         * Fixed a problem when stats were unpacked from the network stream,
39920           where term names were not correctly unquoted.  This led to double
39921           quoting of global statistics.
39923 Wed Dec 13 02:49:05 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39925         * Implement copy and assignment methods for OmPositionListIterator.
39927 Wed Dec 13 02:37:14 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39929         * ESet and MSet iterators now cope with being copied / assigned when
39930           the internals are null.
39932         * Added copy method to OmPositionListIterator interface.  No
39933           implementation for this yet though, or for the already existing
39934           assignment method.
39936         * Added a couple of easy items to the todo list to check regarding
39937           iterators.
39939 Wed Dec 13 02:19:50 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39941         * Fix small bug in mset_range_is_same{,_weights}()
39943 Wed Dec 13 02:07:59 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39945         * And add copy and assignment for OmESet, similarly.
39947 Wed Dec 13 01:58:38 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39949         * Add copy and assignment operators to OmMSet so that the internals
39950           get copied (rather than just the pointer to them).  Really want a
39951           small internals class, holding a refcount to the real internals, or
39952           else to use refcntptrs for the members of OmMSet::Internal which are
39953           potentially large (eg, items)
39955 Wed Dec 13 01:05:44 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39957         * Add Asserts to api/omdatabaseinternal.cc to ensure that there is at
39958           least one database present when opening termlists, etc.  This should
39959           really be done by throwing errors.
39961         * Add destructor to OmMSet, deleting internals.
39963         * Implement getting positionlists from QuartzDatabases.
39965         * Fix bug in copy constructor of OmDocument::Internal - some fields
39966           were not being copied.
39968         * Fix api_db.cc so it compiles: code referring to mset by subscripting
39969           temporarily commented out.
39971 Tue Dec 12 20:05:10 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39973         * Fix bug with truncation of intermediate keys in btrees.
39975 Tue Dec 12 18:33:12 GMT 2000 Olly Betts
39977         * OmMSet::get_docs() now takes sane parameters.
39979         * Various test programs updated to nearly work with new OmMSet
39980           interface.
39982 Tue Dec 12 17:18:33 GMT 2000 Olly Betts
39984         * Finished cleaning up OmMSet; updated TODO to reflect this.
39986 Tue Dec 12 17:16:02 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
39988         * Fix bug with sorting keys in btrees.
39990         * Various fixes to quartzdump.
39992 Tue Dec 12 15:40:28 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39994         * Nettest compiles with new OmMSet interface.
39996 Tue Dec 12 15:09:14 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
39998         * Fixed an endless loop in QuartzWritableDatabase::do_delete_document.
40000 Tue Dec 12 15:07:39 GMT 2000 Olly Betts
40002         * OmMSetItem replaced by OmMSetIterator.
40004         * Added OmESet::empty().
40006         * Fixed == on OmESetIterator.
40008 Tue Dec 12 14:16:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40010         * Renamed arguments to compare_keys()
40012 Tue Dec 12 12:05:24 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40014         * Added quartzdump utility to dump the contents of a quartz table.
40016 Tue Dec 12 10:54:44 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40018         * Added constructors and destructor to OmRSet.
40020 Mon Dec 11 16:32:07 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40022         * Remove caching of average length in OmDatabaseInternal, was breaking
40023           asking for the average length of a database which was being
40024           modified.
40026 Mon Dec 11 16:03:46 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40028         * If no documents in database, don't divide by zero in
40029           omdatabaseinternal.cc
40031         * If a document object doesn't come from the database, when iterating
40032           through its termlist don't open postlists from the nonexistent
40033           database; open them from the DocumentTerm objects in the document
40034           instead.
40036         * Remove old unused and undefined method
40037           OmDocument::Internal::add_posting()
40039 Mon Dec 11 13:53:18 GMT 2000 Olly Betts
40041         * omenquire.h: Removed superfluous declaration of OmMSetCmp.
40043 Mon Dec 11 13:38:12 GMT 2000 Olly Betts
40045         * Updated TODO list.
40047 Mon Dec 11 13:24:45 GMT 2000 Olly Betts
40049         * OmRSet internals encapsulated.
40051 Mon Dec 11 12:42:02 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40053         * OmIndexerMessage::get_element and ...::operator[] now have
40054           non-const versions.  Fixes const-warning in omstemmernode.cc.
40056 Mon Dec 11 12:17:32 GMT 2000 Olly Betts
40058         * Better typedef-s for Om*Iterator::difference_type.
40060 Sun Dec 10 17:51:41 GMT 2000 Olly Betts
40062         * Corrected various typedef-s for Om*Iterator.
40064 Sun Dec 10 17:28:59 GMT 2000 Olly Betts
40066         * Updated TODO to reflect OmESet being cleaned up.
40068         * Term position argument to OmDocument::add_posting() is now
40069           optional (as it was for OmDocumentContents).
40071 Sun Dec 10 16:55:17 GMT 2000 Olly Betts
40073         * OmESetItem is dead - long live OmESetIterator!
40075         * net/socketclient.cc: fixed compiler warning.
40077         * net/socketserver.cc: fixed compiler warning.
40079 Sun Dec 10 13:29:15 GMT 2000 Olly Betts
40081         * Started to encapsulate OmESet/OmESetItem interface.  Interface is
40082           close, but currently implementation is exposed in omenquire.h.
40084         * apitest wasn't running puncterms1 or spaceterms1 - fixed.
40086 Sun Dec 10 11:34:39 GMT 2000 Olly Betts
40088         * om/autoptr.h -> autoptr.h in lots of places.
40090 Fri Dec  8 17:20:04 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40092         * Updated indextest to not use AutoPtr<OmIndexer>
40094 Fri Dec  8 17:14:09 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40096         * Oops - removed one too many #include "autoptr.h"
40098 Fri Dec 08 16:50:42 GMT 2000 Olly Betts
40100         * Updated TODO.
40102 Fri Dec  8 16:44:26 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40104         * IndexerBuilder now returns OmIndexer objects instead of
40105           AutoPtr<OmIndexer>.  OmIndexer's internals are reference
40106           counted.
40108         * Moved autoptr.h from include/om to common/, since it's no
40109           longer used in the API.
40111 Fri Dec  8 16:22:48 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40113         * Fixed omstemmer node bug and made debug slightly more verbose
40114           in indextest.cc.
40116 Fri Dec  8 16:13:36 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40118         * Added a test for OmIndexerMessage to indextest
40120         * Added output operator for OmIndexerMessage
40122         * Fixed a bug introduced into omvectorsplit node
40124         * Changed couts in indextest.cc to touts.
40126 Fri Dec 08 14:53:24 GMT 2000 Olly Betts
40128         * quartztest: removed OmDocumentTerm reference so that it'll
40129           compile (tests fail though).
40131 Fri Dec  8 14:42:46 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40133         * OmIndexerMessage is now a class by itself, replacing OmIndexerData
40134           and the typedef to AutoPtr<OmindexerData>.  It's now a copy-on-write
40135           object.
40137         * The indexer stuff all changed.
40139 Fri Dec 08 14:24:02 GMT 2000 Olly Betts
40141         * omindexdoc.{cc,h}: no longer used so removed.
40143         * Pushed OmDocumentTerm from API level into the internals of the
40144           library.
40146         * Updated TODO.
40148 Fri Dec 08 12:08:49 GMT 2000 Olly Betts
40150         * delve: if just given a database (or list of databases), report the
40151           number of documents and average document length.
40153 Thu Dec  7 20:39:24 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40155         * Fix bug: Om*Iterators which were created over empty lists didn't
40156           have null internals, causing them not to compare equal to end
40157           iterators.
40159         * Added many asserts to iterator code.
40161 Thu Dec  7 20:02:43 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40163         * Removed OmTermListIteratorMap - OmTermListIterator can now be
40164           across either a map or an actual termlist.
40166         * Om*Iterator classes all now delete internals when reaching end,
40167           freeing resources sooner and making the comparison operators much
40168           simpler.
40170 Thu Dec  7 18:33:03 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40172         * Updates to TODO
40174 Thu Dec  7 18:32:39 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40176         * Implementation of write locks for Quartz
40178 Thu Dec  7 18:28:55 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40180         * Fix to backendmanager which doesn't return writable databases
40181           unnecessarily (which breaks things when there are write locks)
40183 Thu Dec  7 18:25:50 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40185         * Added test for Quartz write locks
40187 Thu Dec  7 17:56:19 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40189         * Add OmDocument::set_data() method which takes a string, instead of
40190           an OmData object.  This allows, implicitly, use of const char *'s
40191           as well.
40193         * Further fixes to quartztest.  It now compiles (though I've not
40194           tried linking it yet...)  :)
40196 Thu Dec  7 17:49:50 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40198         * Fixed omkeylistiterator return types.
40200 Thu Dec  7 17:27:57 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40202         * Moved get_document() from OmWritableDatabase to OmDatabase.
40204         * Added -> operator to OmKeyListIterator.  Fixed return values
40205           and constness of Om*Iterator::operator *() methods.
40207         * Some fixes to quartztest.cc, but not enough to get it compiling.
40209 Thu Dec 07 16:21:28 GMT 2000 Olly Betts
40211         * Some work on getting quartztest working.
40213 Thu Dec 07 16:10:00 GMT 2000 Olly Betts
40215         * The library now builds, but "make check" still fails.
40217 Thu Dec  7 15:39:19 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40219         * Fixes to testsuite/index_utils.cc to not segfault.
40221 Thu Dec  7 14:31:56 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40223         * Fixes to api_db.cc so that it compiles.
40225 Wed Dec  6 18:50:48 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40227         * Add test for terms with spaces, newlines, zero bytes, or
40228           backslashes.
40230         * Updates to TODO
40232 Wed Dec 06 18:18:16 GMT 2000 Olly Betts
40234         * Woohoo!  Now builds with just --disable-indexer!
40235           (still doesn't pass any tests).
40237 Wed Dec 06 17:24:19 GMT 2000 Olly Betts
40239         * Minor fix.  Now builds with --disable-indexer
40240           --disable-quartz-backend (but doesn't pass any tests).
40242 Wed Dec 06 16:35:34 GMT 2000 Olly Betts
40244         * Fixed up lots of build errors.
40246 Wed Dec 06 14:56:59 GMT 2000 Olly Betts
40248         * Begin the long job of replacing OmDocumentContents with
40249           OmDocument.  Won't currently build - expect the tree to be broken
40250           for a few days.  As usual, if you want a working build, use the
40251           "snapshot_latest" tag.
40253 Wed Dec  6 12:03:44 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40255         * Backed out yesterday's overwritten-handling stuff.
40257 Wed Dec  6 11:36:55 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40259         * Increase sleep in tcpclient1 to 3 (did tcpmatch1 last time, duh!)
40261 Tue Dec  5 17:13:38 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40263         * QuartzDocument now has a QuartzTableManager pointer rather than
40264           two QuartzTable pointers.
40266         * QuartzDatabase::do_get_document_internal() copes with Btree
40267           overwritten conditions.
40269         * QuartzDocument methods cope with Btree overwritten conditions
40271         * New method QuartzTableManager::reopen_tables_because_overwritten()
40272           for helping with the above.
40274         * New test in quartztest for testing overwritten problems from the
40275           API rather than just internally to Quartz.
40277         * Fixed a typo in omsettings.h comment (quartz_dir used to refer to
40278           a sleepycat database)
40280 Tue Dec  5 16:53:46 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40282         * Update todo.
40284         * Fix undesirable assert in stats.h
40286 Tue Dec  5 15:41:40 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40288         * Replace OmMSet::docs_considered with
40289           OmMSet::matches_{lower_bound,estimated,upper_bound}, giving more
40290           useful information.
40292         * PostLists now have get_termfreq_{min,est,max}(), instead of
40293           get_termfreq(), so the postlist tree can be used to calculate
40294           the matches_* values for the mset.  Implemented for all the
40295           postlist subclasses.
40297           LeafPostList's still has a virtual get_termfreq() method,
40298           and implements get_termfreq_* in terms of it, so database postlists
40299           don't need to be modified.
40301         * Passing of MSets across network modified to pass the new
40302           information.
40304         * PendingMSet uses the values from the mset to return the values
40305           of get_termfreq_*().  This assumes that recalc_maxweight has been
40306           called first, which is has been.
40308         * Muscat36 databases get_termfreq() methods fixed to use a
40309           LeafPostList rather than a PostList.
40311         * Renamed test docs_considered1 to matches1, and add several
40312           more cases to it.
40314 Tue Dec 05 15:38:27 GMT 2000 Olly Betts
40316         * Added tests/testdata/apitest_punc.txt to distribution.
40318 Tue Dec 05 15:07:26 GMT 2000 Olly Betts
40320         * Oops, failed to add new file `tests/testdata/apitest_punc.txt'
40321           with last check-in.
40323 Tue Dec 05 14:34:04 GMT 2000 Olly Betts
40325         * OmTermListIterator implemented for an OmDocument with terms stored
40326           in a map rather than coming from a Document.
40328         * Fixes to remote protocol so solve problems with terms with
40329           punctuation in (regression test punc_terms1).
40331 Mon Dec  4 15:02:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40333         * Makefile tweak in docs/
40335 Mon Dec 04 14:13:05 GMT 2000 Olly Betts
40337         * More OmDocument work.
40339 Mon Dec  4 11:43:46 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40341         * Renamed OmMSet::mbound to docs_considered.
40343 Mon Dec  4 10:11:11 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40345         * Added some more std:: prefixes for STLport.
40347 Fri Dec  1 17:45:01 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40349         * Increase the sleep after the server is started by tcpclient1 to 3
40350           seconds so that the server is more likely to have started when
40351           then test ran.  This seems to be what was causing the test to
40352           randomly fail.  Really, we want a better solution to this (such as
40353           the server picking a port and writing it out on stdout once it is
40354           listening.)
40356 Fri Dec  1 17:27:02 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40358         * Swapped the ports used by tcpclient1 and tcpmatch1 to see if the
40359           random failures follow suit.
40361 Fri Dec  1 17:21:07 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40363         * Another minor fix to work with STLport.
40365 Fri Dec  1 17:01:02 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40367         * Add std::'s and similar to fix compilation with STLport.
40369         * Fix bug in expander due to nth_element being called on the wrong
40370           element.  This is the counterpoint of the bug fixed on Nov 24th
40371           with the matcher.
40373 Fri Dec  1 16:30:26 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40375         * Minor tweaks in error strings.
40377 Fri Dec 01 12:57:59 GMT 2000 Olly Betts
40379         * Corrected erroneous documentation comment.
40381 Thu Nov 30 18:50:16 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40383         * OmSettings no longer throws exceptions internally (at the cost of
40384           slightly more code duplication).
40386 Thu Nov 30 18:05:39 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40388         * Add a few std::'s to strings which had been missed.
40390 Thu Nov 30 16:41:11 GMT 2000 Olly Betts
40392         * OmDocument::Internal now knows its OmDatabase.
40394 Thu Nov 30 16:40:33 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40396         * Add context to network errors thrown from OmSocketLineBuf.
40398 Thu Nov 30 16:21:47 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40400         * Added a quartz test for largish bitmaps.
40402         * Fixed the code so that the above test would pass.
40404 Thu Nov 30 16:10:37 GMT 2000 Olly Betts
40406         * OmDocument::add_posting() pretty much done.
40408 Thu Nov 30 15:51:46 GMT 2000 Olly Betts
40410         * More work on OmDocument::add_posting().
40412         * Added OmTermListIterator::positionlist_begin() and
40413           OmTermListIterator::positionlist_end().
40415 Thu Nov 30 14:16:28 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40417         * Fixed a prototype bug introduced with the last commit.
40419 Thu Nov 30 13:23:14 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40421         * Bcursor::find_key now more const-correct.
40423         * Bcursor_create now returns an AutoPtr.  The resultant changes
40424           fixed a memory leak.
40426         * New exception: OmDatabaseModifiedError.  Thrown when an open
40427           revision of a table is no longer valid due to multiple updates.
40429         * quartzoverwrite1 test re-enabled, and passes.
40431 Thu Nov 30 13:23:27 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40433         * nettest now uses quartz backend: should always run all tests now
40434           (apart from tcpdead1, which doesn't work).
40436 Wed Nov 29 19:46:22 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40438         * In testsuite, report the context of Om exceptions as well as their
40439           type and message.
40441 Wed Nov 29 18:30:10 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40443         * Add "remote_connect_timeout" parameter to be supplied when opening
40444           a remote database, to specify a separate timeout for the connect
40445           operation to that used once the connection has been opened.
40447         * Add setting of the context of errors thrown by tcpclient or
40448           progclient, so that the node which failed can be determined.
40450 Wed Nov 29 17:50:03 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40452         * Reworked Btree_base::read() a bit so that it's hopefully more
40453           readable.
40455         * Hopefully fixed a bug when the bitmap approaches 1k.
40457         * Fix to catch problems re-opening databases after an apply in
40458           Quartz.
40460 Wed Nov 29 17:30:26 GMT 2000 Olly Betts
40462         * Added OmDocument::termlist_begin() and OmDocument::termlist_end()
40464 Wed Nov 29 16:53:13 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40466         * Comment out quartzoverwrite1 test so that it doesn't cause problems
40467           for other developers.
40469 Wed Nov 29 16:27:19 GMT 2000 Olly Betts
40471         * docid now in Document class rather than subclasses.
40473 Wed Nov 29 14:54:13 GMT 2000 Olly Betts
40475         * leafdocument.cc renamed to document.cc
40477         * Document class now has a pointer to the associated Database class
40478           so we can open termlists, etc.
40480 Wed Nov 29 14:03:43 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40482         * Add quartztest to test for case when a database block gets
40483           overwritten.  Currently, this fails because an exception doesn't
40484           get thrown when it should.
40486 Wed Nov 29 13:18:24 GMT 2000 Olly Betts
40488         * LeafDocument class renamed to Document.
40490 Wed Nov 29 12:35:49 GMT 2000 Olly Betts
40492         * Added OmDocument::remove_posting(), OmDocument::remove_term(),
40493           and OmDocument::clear_terms()
40495 Wed Nov 29 12:31:22 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40497         * Added another revision number in the middle of the base file,
40498           before the bitmap.  Also now check that there isn't any extra
40499           data at the end after we finish reading it.  Incremented the
40500           database format.
40502 Wed Nov 29 11:55:03 GMT 2000 Olly Betts
40504         * Added OmDocument::remove_key() and OmDocument::clear_keys()
40506 Tue Nov 28 18:34:57 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40508         * Btree bitmap now merged with base - one object, one file.
40510 Tue Nov 28 17:13:56 GMT 2000 Olly Betts
40512         * Added OmDocument::set_data()
40514 Tue Nov 28 16:47:06 GMT 2000 Olly Betts
40516         * Started to alter OmDocument to be a general purpose document class
40517           which includes the functionality currently in OmDocumentContents.
40519 Tue Nov 28 15:08:38 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40521         * Added OmSplitOnCharsNode, which does a subset of OmRegexSplitNode
40522           but less slowly.
40524         * Modified RegexSplit node and regexcommon so that less copying
40525           of strings is needed.
40527 Tue Nov 28 13:42:41 GMT 2000 Chris Emerson <chris.emerson@open.muscat.com>
40529         * Moved the Btree's bitmap into a separate object.
40531 Tue Nov 28 13:06:36 GMT 2000 Olly Betts
40533         * Eliminated OmDocumentParams.
40535         * Removed unnecessary mutex from OmDocument::Internal.
40537 Mon Nov 27 18:45:27 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40539         * Implement get_position_list() on databases.  Untested.  Also needs
40540           some work to make consistent with open_position_list() on posting
40541           lists: see todo list.
40543 Mon Nov 27 18:29:00 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40545         * Change #define LEVEL ... to #define GET_LEVEL ... in btree_util.h:
40546           fixes problem reported by includetest
40548 Mon Nov 27 18:20:42 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40550         * Added a set of modifications to the todo.xml.  Also, add a
40551           "release" field, recording the release that the work must be
40552           performed by.
40554 Mon Nov 27 18:08:35 GMT 2000 Olly Betts
40556         * A RefCntPtr now copes with being assigned to itself (used to
40557           delete the underlying object if the reference count was 1).  Added
40558           regression test (refcnt2).
40560         * Now overwrite pointer inside RefCntPtr before deleting the pointed
40561           to object so there's no window where another thread can access the
40562           pointer and get the just-deleted object.
40564 Mon Nov 27 14:36:59 GMT 2000 Olly Betts
40566         * OmError class now optionally stores an errno value.
40568 Mon Nov 27 13:04:18 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40570         * Quartztest builds its test databases in a subdirectory, which
40571           is now in .cvsignore, so we shouldn't get cvs complaining about
40572           so many unknown files any more.
40574 Mon Nov 27 12:53:16 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40576         * Another TODO item.
40578 Mon Nov 27 12:15:53 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40580         * Added a couple of new items to the todo list.
40582 Fri Nov 24 19:23:56 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40584         * Quartztests now deletes all old tables, so that database formats
40585           don't cause problems.
40587 Fri Nov 24 19:03:59 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40589         * Added std:: prefix to lots of strings which didn't have it.
40590           I've probably added some where they shouldn't be: there were rather
40591           a lot of cases of this.
40593 Fri Nov 24 18:27:06 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40595         * Major bug fix!  When removing elements, matcher was performing
40596           nth_element() on the first element to be thrown away, rather than
40597           the lowest element to keep.  This meant that, after throwing away
40598           low scoring items, items.back() was a random item rather than the
40599           lowest scoring item.  This caused the min weight for getting into
40600           the mset to go up faster than it should have done, and generally
40601           broke everything.
40603           It will be interesting to compare evaluation measures before and
40604           after this fix.
40606 Fri Nov 24 15:34:17 GMT 2000  Richard Boulton <richard.boulton@open.muscat.com>
40608         * Declare this to be version 0.4.1