pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/textproc/xapian Update to 1.4.8. From the changelog:



details:   https://anonhg.NetBSD.org/pkgsrc/rev/0e2e6b2ba83e
branches:  trunk
changeset: 386711:0e2e6b2ba83e
user:      schmonz <schmonz%pkgsrc.org@localhost>
date:      Sun Oct 28 03:43:17 2018 +0000

description:
Update to 1.4.8. From the changelog:

API:

* QueryParser,TermGenerator: Add new stemming mode STEM_SOME_FULL_POS.
  This stores positional information for both stemmed and unstemmed terms,
  allowing NEAR and ADJ to work with stemmed terms.  The extra positional
  information is likely to take up a significant amount of extra disk space so
  the default STEM_SOME is likely to be a better choice for most users.

* Database::check(): Fetch and decompress the document data to catch problems
  with the splitting of large data into multiple entries, corruption of the
  compressed data, etc.  Also check that empty document data isn't explicitly
  stored for glass.

* Fix an incorrect type being used for term positions in the TermGenerator API.
  These were Xapian::termcount but should be Xapian::termpos.  Both are
  typedefs for the same 32-bit unsigned integer type by default (almost always
  "unsigned int") so this change is entirely compatible, except that if you
  were configuring 1.4.7 or earlier with --enable-64bit-termcount you need to
  also use the new --enable-64bit-termpos configure option with 1.4.8 and up or
  rebuild your applications.  This change was necessary to make
  --enable-64bit-termpos actually useful.

* Add Document::remove_postings() method which removes all postings in a
  specified term position range much more efficiently than by calling
  remove_posting() repeatedly.  It returns the number of postings removed.

* Fix bugs with handling term positions >= 0x80000000.  Reported by Gaurav
  Arora.

* Document::add_posting(): More efficiently handle insertion of a batch of
  extra positions in ascending order.

* Query: Simplify OP_SYNONYM with single OP_WILDCARD subquery by converting to
  OP_WILDCARD with combiner OP_SYNONYM, which means such cases can take
  advantage of the new matcher optimisation in this release to avoid needing
  document length for OP_WILDCARD with combiner OP_SYNONYM.

matcher:

* Avoid needing document length for an OP_WILDCARD with combiner OP_SYNONYM.
  We know that we can't get any duplicate terms in the expansion of a wildcard
  so the sum of the wdf from them can't possibly exceed the document length.

* OP_SYNONYM: No longer tries to initialise weights for its subquery, which
  should reduce the time taken to set up a large wildcard query.

* OP_SYNONYM: Fix frequency estimates when OP_SYNONYM is used with a
  subquery containing OP_XOR or OP_MAX - in such cases the frequency
  estimates for the first subquery of the OP_XOR/OP_MAX were used for
  all its subqueries.  Also the estimated collection frequency is
  now rounded to the nearest integer rather than always being rounded
  down.

glass backend:

* Revert change made in 1.4.6:

    Enable glass's "open_nearby_postlist" optimisation (which especially helps
    large wildcard queries) for writable databases without any uncommitted
    changes as well.

  The amended check isn't conservative enough as there may be postlist changes
  in the inverter while the table is unmodified.  This breaks testcase
  T150-tagging.sh in notmuch's testsuite, reported by David Bremner.

* When indexing a document without any terms we now avoid some unnecessary work
  when storing its termlist.

tools:

* xapian-delve: Test for all docs empty using get_total_length() which is
  slightly simpler internally than get_avlength(), and avoids an exact floating
  point equality check.

examples:

* quest: Support --weight=coord.

* xapian-pos: New tool to show term position info to help debugging when using
  positional information in more complex ways.

portability:

* Fix undefined behaviour from C++ ODR violation due to using the same name
  two different non-static inline functions.  It seems that with current GCC
  versions the desired function always ends up being used, but with current
  clang the other function is sometimes used, resulting in database corruption
  when using value slots in docid 16384 or higher with the default glass
  backend.  Patch from Germ?n M. Bravo.

* Suppress alignment cast warning on sparc Linux.  The pointer being cast is to
  a record returned by getdirentries(), so it should be suitable aligned.

* Drop special handling for Compaq C++.  We never actually achieved a working
  build using it, and I can find no evidence that this compiler still exists,
  let alone that it was updated for C++11 which we now require.

* Create new database directories in race-free way.

* Avoid throwing and handling an exception in replace_document() when
  adding a document with a specified docid which is <= last_docid but currently
  unused.

* Use our portable code for handling UUIDs on all platforms, and only use
  platform-specific code for generating a new UUID.  This fixes a bug with
  converting UUIDs to and from string representation on FreeBSD, NetBSD and
  OpenBSD on little-endian platforms which resulted in reversed byte order in
  the first three components, so the same database would report a different
  UUID on these platforms compared to other platforms.  With this fix, the
  UUIDs of existing databases will appear to change on these platforms
  (except in rare "palindronic" cases).  Reported by Germ?n M. Bravo.

* Fix to build with a C++17 compiler.  Previously we used a "byte" type
  internally which clashed with "std::byte" in source files which use
  "using namespace std;".  Fixes #768, reported by Laurent Stacul.

* Adjust apitest testcase stubdb2 to allow for NetBSD oddity: NetBSD's
  getaddrinfo() in IPv4 mode seems to resolve ::1 to an IPv4 address on the
  local network.

* Avoid timer_create() on OpenBSD and NetBSD.  On OpenBSD it always fails with
  ENOSYS (and there's no prototype in the libc headers), while on NetBSD it
  seems to work, but the timer never seems to fire, so it's useless to us (see
  #770).

* Use SOCK_NONBLOCK if available to avoid a call to fcntl().  It's supported by
  at least Linux, FreeBSD, NetBSD and OpenBSD.

* Use O_NOINHERIT for O_CLOEXEC on Windows.  This flag has essentially the same
  effect, and it's common in other codebases to do this.

* On AIX O_CLOEXEC may be a 64-bit constant which won't fit in an int.  To
  workaround this stupidity we now call the non-standard open64x() instead
  of open() when the flags don't fit in an int.

* Add functions to add/multiply with overflow check.  These are implemented
  with compiler builtins or equivalent where possible, so the overflow check
  will typically just require a check of the processor's overflow or carry
  flag.

diffstat:

 textproc/xapian/Makefile.common   |   4 ++--
 textproc/xapian/PLIST             |   4 +++-
 textproc/xapian/distinfo          |  10 +++++-----
 textproc/xapian/distinfo-bindings |  10 +++++-----
 4 files changed, 15 insertions(+), 13 deletions(-)

diffs (77 lines):

diff -r aef95d3608b2 -r 0e2e6b2ba83e textproc/xapian/Makefile.common
--- a/textproc/xapian/Makefile.common   Sat Oct 27 21:44:53 2018 +0000
+++ b/textproc/xapian/Makefile.common   Sun Oct 28 03:43:17 2018 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.common,v 1.4 2018/08/26 13:25:33 schmonz Exp $
+# $NetBSD: Makefile.common,v 1.5 2018/10/28 03:43:17 schmonz Exp $
 # used by textproc/csharp-xapian/Makefile
 # used by textproc/lua-xapian/Makefile
 # used by textproc/p5-Xapian/Makefile
@@ -9,7 +9,7 @@
 # used by textproc/xapian/Makefile
 # used by textproc/xapian-omega/Makefile
 
-VERSION=               1.4.7
+VERSION=               1.4.8
 CATEGORIES=            textproc
 MASTER_SITES=          http://oligarchy.co.uk/xapian/${VERSION}/
 EXTRACT_SUFX=          .tar.xz
diff -r aef95d3608b2 -r 0e2e6b2ba83e textproc/xapian/PLIST
--- a/textproc/xapian/PLIST     Sat Oct 27 21:44:53 2018 +0000
+++ b/textproc/xapian/PLIST     Sun Oct 28 03:43:17 2018 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.13 2018/07/06 16:21:56 schmonz Exp $
+@comment $NetBSD: PLIST,v 1.14 2018/10/28 03:43:17 schmonz Exp $
 bin/copydatabase
 bin/quest
 bin/simpleexpand
@@ -9,6 +9,7 @@
 bin/xapian-config
 bin/xapian-delve
 bin/xapian-metadata
+bin/xapian-pos
 bin/xapian-progsrv
 bin/xapian-replicate
 bin/xapian-replicate-server
@@ -61,6 +62,7 @@
 man/man1/xapian-config.1
 man/man1/xapian-delve.1
 man/man1/xapian-metadata.1
+man/man1/xapian-pos.1
 man/man1/xapian-progsrv.1
 man/man1/xapian-replicate-server.1
 man/man1/xapian-replicate.1
diff -r aef95d3608b2 -r 0e2e6b2ba83e textproc/xapian/distinfo
--- a/textproc/xapian/distinfo  Sat Oct 27 21:44:53 2018 +0000
+++ b/textproc/xapian/distinfo  Sun Oct 28 03:43:17 2018 +0000
@@ -1,7 +1,7 @@
-$NetBSD: distinfo,v 1.30 2018/08/26 13:25:33 schmonz Exp $
+$NetBSD: distinfo,v 1.31 2018/10/28 03:43:17 schmonz Exp $
 
-SHA1 (xapian-core-1.4.7.tar.xz) = 38c93710d586a2d8b8b870fbef25013387aea244
-RMD160 (xapian-core-1.4.7.tar.xz) = b26adebde8acc808396672b08596c3c06ae2fe38
-SHA512 (xapian-core-1.4.7.tar.xz) = 9e77a78bd63036966ebb9bbed91e36fef17b37c9465c8d4b7dc8041f0e24b040e6520de645babfeeade952771d145176a204328718cfa8bc2291bb6fdbe840d2
-Size (xapian-core-1.4.7.tar.xz) = 2874172 bytes
+SHA1 (xapian-core-1.4.8.tar.xz) = 996d655dfac8549c0ef503356a52b80a48605de3
+RMD160 (xapian-core-1.4.8.tar.xz) = bb93500f12aeae650bcc541d34bc66b3823e5879
+SHA512 (xapian-core-1.4.8.tar.xz) = 9ed1f34ec1bf53a4dc628ebb8d080af79a4ac6a315bf1ae52441f0ac3a63e5478ed02887382116b28157b926e685fdc730489426edce560aa4bba27cb7295e48
+Size (xapian-core-1.4.8.tar.xz) = 2880432 bytes
 SHA1 (patch-common_safesyssocket.h) = 032d441853914d510bc285bb682a98c4ee264d52
diff -r aef95d3608b2 -r 0e2e6b2ba83e textproc/xapian/distinfo-bindings
--- a/textproc/xapian/distinfo-bindings Sat Oct 27 21:44:53 2018 +0000
+++ b/textproc/xapian/distinfo-bindings Sun Oct 28 03:43:17 2018 +0000
@@ -1,9 +1,9 @@
-$NetBSD: distinfo-bindings,v 1.7 2018/08/26 13:25:33 schmonz Exp $
+$NetBSD: distinfo-bindings,v 1.8 2018/10/28 03:43:17 schmonz Exp $
 
-SHA1 (xapian-bindings-1.4.7.tar.xz) = 5b9f10cf02846e2e426e2fb2c9f6ad9117bbda9f
-RMD160 (xapian-bindings-1.4.7.tar.xz) = 52f150df6c818c2e7c4bcdffdd10ea3827d05261
-SHA512 (xapian-bindings-1.4.7.tar.xz) = c904cd3abf19d68495b0487ea77265fdc92a3cd8b1c2437b89034efd349ce41198bbc4abca49f259f71a1ba0fd269b2cf9b6dd4c1607678a73cbed4de9c5a1d5
-Size (xapian-bindings-1.4.7.tar.xz) = 1121700 bytes
+SHA1 (xapian-bindings-1.4.8.tar.xz) = eaab162c2f687c95f4d748063c824e4806516a82
+RMD160 (xapian-bindings-1.4.8.tar.xz) = 98ff42ca245ddb098494769f72618c9ad8768466
+SHA512 (xapian-bindings-1.4.8.tar.xz) = f979c32b096ecdc7a71b2bd032c6d0e7131f3d304e47e44005989ca79ea1f940c39626c60a8e52ff3cdb2cb380aa5ddf82a99bae08e06629c0bd47d8e0bfa7cc
+Size (xapian-bindings-1.4.8.tar.xz) = 1123812 bytes
 SHA1 (patch-configure) = d1c3edf1efcd105aef23bf9245650971f8df6ced
 SHA1 (patch-lua_Makefile.in) = 7f1c5077f0d46dfdf33c2b65f144bb08d5031330
 SHA1 (patch-perl_Makefile.in) = 993b137b319d7d28c2b3a70d2e46e1a38d380578



Home | Main Index | Thread Index | Old Index