#12643: xapian-core-1.4.13
-------------------------+-----------------------
Reporter: bdubbs | Owner: bdubbs
Type: enhancement | Status: assigned
Priority: normal | Milestone: 9.1
Component: BOOK | Version: SVN
Severity: normal | Resolution:
Keywords: |
-------------------------+-----------------------
Comment (by bdubbs):
Xapian-core 1.4.13 (2019-10-14):
API:
* Fix write one past end of std::vector on certain QueryParser parser
errors.
This is undefined behaviour, but the write was always into reserved
space, so
in practice we'd actually get away with it (it was noticed because it
triggers an error when running under ubsan and using libc++). Reported
by
Germán M. Bravo.
* MSet::get_matches_estimated(): Improve rounding of result - a bug meant
we
would almost always round down.
* Optimise test for UTF-8 continuation character. Performing a signed
char
comparison shaves an instruction or two on most architectures.
* Database::get_revision(): Return revision 0 for a Database with no
shards
rather that throwing InvalidOperationError.
* DPHWeight: Avoid dividing by 0 when searching a sharded database when
one
shard is empty. The result wasn't used in this case, but it's still
undefined behaviour. Detected by UBSan.
testsuite:
* The "singlefile" test harness backend manager now creates databases by
compacting the corresponding underlying backend database (creating it
first
if need be) rather than always creating a temporary database to compact.
* Enable compaction testcases for multi and singlefile test harness
backends.
* Add generated database support for remoteprog and remotetcp test harness
backends. Implemented by Tanmay Sachan.
* Add test harness support for running testcases using a multi database
comprised of one local and one remote shard, or two remote shards.
Implemented by Tanmay Sachan.
* Check if removing existing multi stub failed. Previously if removing an
existing stub failed, the test harness would create a temporary new stub
and
then try to rename it over the old one, which will always fail on
Microsoft
Windows.
* Wait for xapian-tcpsrv processes to finish before moving on to the next
testcase under __WIN32__ like we already do on POSIX platforms.
matcher:
* Optimise OP_AND_NOT better. We now combine its left argument with other
connected and-like subqueries, and gather up and hoist the negated
subqueries
and apply them together above the combined and-like subqueries, just
below
any positional filters.
* Optimise OP_AND_MAYBE better. We now combine its left argument with
other
connected and-like subqueries, and gather up and hoist the optional
subqueries and apply them together above the combined and-like
subqueries and
any hoisted positional filters.
* Treat all BoolWeight queries as scaled by 0 - we can optimise better if
we
know the query is unweighted.
glass backend:
* Allow zlib compression to reduce size by one byte. We were specifying
an
output buffer size one byte smaller than the input, but it appears zlib
won't
use the final byte in the buffer, so we actually need to pass the input
size
as the output buffer size.
* Only try to compress Btree item values > 18 bytes, which saves CPU time
without sacrificing any significant size savings.
remote backend:
* Fix match stats when searching with collapsing over multiple shards and
at
least some shards are remote. Bug discovered by Tanmay Sachan's test
harness
improvements.
* Ignore orphaned remote protocol replies which can happen when searching
with
a remote shard if an exception is thrown by another shard. Bug
discovered
by Tanmay Sachan's test harness improvements.
* Wait for xapian-progsrv child to exit when a remote Database or
WritableDatabase object is closed under __WIN32__ like we already do for
POSIX platforms.
documentation:
* Correct documentation of initial messages in replication protocol.
tools:
* quest: Report bounds and estimate of number of matches.
* xapian-delve: Improve output when database revision information is not
available. We now specially handle the cases of a DB with multiple
shards
and a backend which doesn't support get_revision().
portability:
* Fix warning from GCC 9 with -Wdeprecated-copy (which is enabled by
-Wextra)
if a reference to an Error object is thrown.
* Suppress GCC warning in our API headers when compiling code using Xapian
with
GCC and -Wduplicated-branches.
* Mark some internal classes as final (following GCC -Wsuggest-final-types
suggestions to allow some method calls to be devirtualised).
* Fix to build with --enable-maintainer-mode and Perl < 5.10, which
doesn't
have the `//=` operator. It's unlikely developers will have such an old
Perl, but the mingw environment on appveyor CI does. The use of `//=`
was
introduced by changes in 1.4.10.
--
Ticket URL: <http://wiki.linuxfromscratch.org/blfs/ticket/12643#comment:2>
BLFS Trac <http://wiki.linuxfromscratch.org/blfs>
Beyond Linux From Scratch
--
http://lists.linuxfromscratch.org/listinfo/blfs-book
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page