API:
* MSet::snippet(): The snippet now includes trailing punctuation which carries
meaning or gives useful context. See
https://github.com/xapian/xapian/pull/180, reported by Robert Stepanek.
* MSet::snippet(): Fix segfault generating snippet from default-constructed
MSet. This probably isn't something you'd typically do, but it shouldn't
crash. Found during extended testing of #803 (which only affected git
master) which was reported by Robert Stepanek.
* Remove trailing full stop from exception messages. We conventionally don't
include one, but a few cases didn't follow that convention.
testsuite:
* Replace direct use of ftime() which gives deprecation warnings with recent
mingw. Reported by srinivasyadav22.
matcher:
* Fix segfault in rare cases in the query optimiser. We keep a pointer to the
most recent posting list to use as a hint for opening the next posting list,
but the existing mechanism to take ownership of this hint had a flaw. We now
invalidate the hint in situations where it might be indirectly deleted which
is safe, but somewhat conservative.
* Improve the optimisation of an always-matching OP_VALUE_GE to also take
effect when the value slot's lower bound is equal to the limit of the
OP_VALUE_GE. Patch from boda sadalla.
glass backend:
* Report the correct errno value if commit() fails. We were potentially
reporting ENOENT from an unlink() call cleaning up a temporary file prior to
throwing the exception instead.
documentation:
* Fix missing menus in API documentation. Newer doxygen generates .js files
which we also need to distribute and install. Reported by sec^nd on #xapian.
* Note OP_FILTER ignored subquery bug fixed in 1.4.15 as present in 1.4.14 and
older.
portability:
* Use our own autoconf cache variable namespace (xo_cv_ prefix instead of
ac_cv_) to avoid colliding with standard autoconf macro use if config.site or
a shared config.cache is used. The former case caused a build failure for
the OpenBSD port with 1.4.15, reported by Lucas R.
* Use clock_gettime() and nanosleep() under modern mingw as these allow higher
precision than what we previously used.
Bindings:
* Remove code to support SVN snapshots since we stopped using SVN more than 5
years ago.
* Ignore overloads for logical ops, *, /. These were already ignored for
several languages, and aren't actually usefully wrapped for any of the other
languages.
CSharp:
* Work around mono terminfo parsing bug in more cases. With this, "make",
"make check", "make install" and "make uninstall" all work on Ubuntu 18.10.
Patch from Dipanshu Garg, fixes https://github.com/xapian/xapian/pull/287 and
#801.
Lua:
* Allow passing a Lua function as a MatchSpy. This was supposed to be
supported already, but the typemaps weren't set up.
* On platforms where sizeof(long) is 4, SWIG was wrapping Xapian::BAD_VALUENO
as a negative constant in Lua, which was then rejected by a check which
disallows passing negative values for unsigned C++ types. We now direct SWIG
to handle Xapian::valueno as double (which is what numbers in Lua usually
actually are) which gives us an unsigned constant, and also eliminates the
negative value check.
* Correct documentation - get_description() is wrapped as tostring() in Lua,
not str() as we previously claimed.
* Add test coverage for passing Lua function for a Stopper.
Perl:
* Resolve the remaining issues and remove the "experimental" marker:
+ Add search_xapian_compat() function which sets up aliases in the
Search::Xapian namespace to aid writing code which uses either
Search::Xapian or this module.
+ Allow passing Perl sub for simpler Xapian functor classes. This fills in a
missing feature compared to Search::Xapian. See #523.
+ Remove useless PerlStopper class which was an incomplete copy of the
apparently non-functional Search::Xapian::PerlStopper. We now support
passing a Perl sub for a Stopper object.
+ Adjust some method names to match Search::Xapian. Iterators now support
inc() (and dec() where the C++ class supports operator--) like
Search::Xapian, rather than increment() and prev(). Reported by Eric Wong
in #523.
+ Drop undocumented and unexpected extra equals() method.
+ Provide compatibility with ENQ_ASCENDING, etc constants. SWIG wraps these
as $Xapian::Enquire::ASCENDING, which better matches the C++ API, but
Search::Xapian wraps this as Search::Xapian::ENQ_ASCENDING, etc so provide
those too for compatibility. Reported by Eric Wong in #523.
+ Drop stringification and int conversion overloads. These seem more
confusing than helpful, and overloading stringification works badly
with SWIG-generated bindings.
+ Document remaining known differences from Search::Xapian.
* Update recently tested versions in README.
* Improve documentation.
* Fix t/02pod.t to look for files in right directory.
Ruby:
* Don't print iterator sizes to stdout. This was some debugging accidentally
left in as part of a change in 1.4.12. Patch from Dan Callaghan.