1Xapian-bindings 1.2.25 (2017-09-26): 2 3Java: 4 5* Disable parallel make for java subdirectory as it causes random build 6 failures. Reported by Lucas Nussbaum in https://bugs.debian.org/848733 7 8Xapian-bindings 1.2.24 (2016-09-16): 9 10Documentation: 11 12* python/doxy2swig.py: Specify encoding so we can handle UTF-8 doxygen 13 comments. Patch from Vivek Pal. 14 15Java: 16 17* Fix configure to find jni_md.h on Cygwin, OS X, *BSD, AIX. The issue with 18 Cygwin was reported by John Bankert on xapian-discuss. There doesn't seem to 19 be an explicit list of the subdirectory names jni_md.h can be in anywhere, 20 but grepping the OpenJDK 8 source code finds additional values "darwin" and 21 "aix", and *BSD seems to use "bsd". 22 23Perl: 24 25* Fix typo in POD docs for Perl bindings (outputing -> outputting). Fixes 26 #730, reported by Nick Morrott. 27 28Xapian-bindings 1.2.23 (2016-03-28): 29 30Documentation: 31 32* Update links to Xapian website and trac to use https, which is now supported, 33 thanks to James Aylett. 34 35PHP: 36 37* Check that the PHP interpreter we find is actually PHP5, and if not look 38 harder. On current Debian unstable, php-config5 --php-binary reports 39 /usr/bin/php which can be PHP7. 40 41* Document that PHP7 isn't currently supported, and explicitly check for and 42 reject it in configure. 43 44Ruby: 45 46* configure: Stop preferring rdoc-1.8 to rdoc (this only happened in a 47 fall-back case when rdoc wasn't found in the same directory as the ruby 48 interpreter). 49 50Xapian-bindings 1.2.22 (2015-12-29): 51 52Documentation: 53 54* Stop maintaining ChangeLog files. They make merging patches harder, and stop 55 'git cherry-pick' from working as it should. The git repo history should be 56 sufficient for complying with GPLv2 2(a). 57 58General: 59 60* Stop wrapping internal methods of Xapian::Weight. 61 62* Return Error::get_description() rather than get_type + ": " + get_msg(). In 63 many cases this is the same, but if context or errno are available, 64 get_description() includes them. 65 66* Catch and report std::exception rather than handling it as an unknown error 67 (so in particular std::bad_alloc will now be reported more helpfully). 68 69CSharp: 70 71* Fix configure test for whether $MONO can run CSharp programs - previously it 72 would always fail, which would mean that the CSharp tests would only be run 73 on systems where CSharp programs can be run directly. 74 75Lua: 76 77* Send stderr from lua version check to config.log instead of letting it appear 78 on the terminal. 79 80PHP: 81 82* Fix memory leak and crash when using PHP subclasses of Xapian functors. 83 84* Subclasses of XapianMatchSpy and XapianPostingSource with implicit 85 constructors now work. 86 87Python: 88 89* Add new testcase to catch any internal functions, methods, constants, etc 90 which have accidentally been wrapped. 91 92Xapian-bindings 1.2.21 (2015-05-20): 93 94Lua: 95 96* README: Remove note about the Lua bindings being experimental - it's not 97 really been true for some time now. 98 99Perl: 100 101* Wrap missing constants OP_SYNONYM and STEM_ALL_Z. 102 103* Add workaround for Perl defining a seed() macro which breaks compilation with 104 GCC in C++11 mode (due to <algorithm> now pulling in random number generation 105 classes with a method called seed). 106 107* Update list of unwrapped things in POD documentation. 108 109* Perl tests are ordering-dependent, so use .NOTPARALLEL to avoid problems 110 during parallel builds. 111 112* Add test coverage for Enquire::set_collapse_key() with 1 and 2 parameters. 113 114* Add test that we can create all the stemmers returned by 115 Stem::get_available_languages(). 116 117* t/symbol-test.t: If the symboltest module build fails, skip the test - it's 118 likely due to external reasons, like incompatible compiler flags being taken 119 from Perl's Config module, due to Perl having been built with a different 120 compiler to Xapian. 121 122* Use croak_sv() or ERRSV if defined. 123 124PHP: 125 126* README: Remove note about the subclassing bug with PHP 5.4 and later - that 127 was fixed in 1.2.19. 128 129Python: 130 131* README: Add note that 1.3.2 has Python 3 support, and that this will be in 132 stable release 1.4.0. 133 134Ruby: 135 136* smoketest.rb: Fix "warning: assigned but unused variable - mset". 137 138* Ship generate-rdoc-stubs in the tarball. Reported by Matthias Klose in 139 https://bugs.debian.org/782270 140 141Xapian-bindings 1.2.20 (2015-03-04): 142 143Portability: 144 145* configure: Avoid using \? in sed command in Lua detection - it isn't 146 supported by all sed implementations. 147 148Lua: 149 150* configure: Rework LUA_SO checks to be clearer and to properly handle LUA_SO 151 being specified without a leading '.'. 152 153* configure: Add an example of specifying LUA_SO to --help output. 154 155PHP: 156 157* Remove text about subclassing bug with PHP 5.4 and later - that was fixed in 158 1.2.19. 159 160* In current PHP releases, dl() is disabled in most SAPIs, and even where 161 available it will now only look in the configured extension directory. The 162 upshot is that there no longer seems to be a sane way to install the PHP 163 bindings without being root, so update the documentation to reflect this. 164 Fixes #661, reported by Felix Ostmann. 165 166Xapian-bindings 1.2.19 (2014-10-21): 167 168PHP: 169 170* Fix up SWIG generated C++ wrapper code so that subclassing of wrapped classes 171 in PHP works with PHP 5.4 and later. (Fixes #652, reported by Sebastian 172 Gottfried) 173 174* Fix XapianQueryParser::set_stopper() and XapianTermGenerator::set_stopper() 175 which were getting incorrectly wrapped such that they didn't actually do 176 anything. Fixes #659, reported by jmienert. This bug was introduced by the 177 reference tracking fix in 1.2.14. 178 179Ruby: 180 181* README: Note that Ruby 2.1 works too. 182 183Xapian-bindings 1.2.18 (2014-06-22): 184 185Documentation: 186 187* README: Add links to Erlang and Node.js bindings. 188 189Lua: 190 191* lua/smoketest.lua: Change expect() parameter order to the more natural (got, 192 expected), which most of the calls already used, and fix up the few calls 193 which passed (expected, got). 194 195PHP: 196 197* php/smoketest.php: Add missing "exit(1);" after reporting failure of check 198 that MatchDecider returns an MSet with the expected docid in. Luckily this 199 wasn't masking a test failure. 200 201Python: 202 203* python/pythontest.py: There's no longer a need to use chert_open() explicitly 204 - chert is the default backend now, and both chert and brass support the 205 required functionality for the tests which do this, so this just needlessly 206 causes the tests to fail if chert is disabled in xapian-core. 207 208* configure: If the Python version is too new or too old, only report it once 209 not twice. 210 211Ruby: 212 213* configure: Fix Ruby bindings to build on Windows (and other platforms where 214 allow_undefined_flag=unsupported. (fixes#634, reported by Alexis Denis) 215 216Xapian-bindings 1.2.17 (2014-01-29): 217 218Portability: 219 220* Improve workaround which allows building against an uninstalled xapian-core 221 on OS X - this should now work with any uninstalled xapian-core (not only in 222 a tree with the same layout as an SVN or git checkout) and it also won't try 223 to build against "../xapian-core/.libs" just because it happens to exist. 224 (Backported from 1.3.1; fixes #322) 225 226Python: 227 228* configure: Some distros now point /usr/bin/python at Python 3, so the check 229 for a Python 2 interpreter now checks for 'python2' first, and checks that 230 the version of found interpreter is 2.x. 231 232Ruby: 233 234* Tweak configure to work with Ruby 2.0. 235 236Tcl: 237 238* Link against -ltclstubX.Y for Tcl 8.5 and later (reported by Sergei Golovan 239 in http://bugs.debian.org/724830). 240 241* Use a better check for TCL_INC for Tcl 8.5 and later. 242 243Xapian-bindings 1.2.16 (2013-12-04): 244 245Documentation: 246 247* README: Note that the SWIG Perl bindings should replace the XS ones in 1.4.x. 248 249General: 250 251* Compress source tarballs with xz instead of gzip. 252 253* configure: Handle git snapshot naming. 254 255Portability: 256 257* configure: Update list of platforms where we tell libtool not to link in 258 deplibs to match the list used for xapian-core. 259 260Perl: 261 262* Pass 0 instead of NULL for non-pointer parameter to av_fetch (spotted due to 263 GCC 4.7 warning). 264 265* symboltest.t: Pass $CPPFLAGS and $CXXFLAGS from the environment through to 266 the sub-build, fixing failure when built with CPPFLAGS=-D_GLIBCXX_DEBUG. 267 268PHP: 269 270* smoketest.php: If running under PHP >= 5.4, skip the tests we know will fail 271 with a message explaining this. 272 273Python: 274 275* Provide bindings version in xapian.__version__ as per PEP 396. (see #346) 276 277* python/docs/examples/simpleexpand.py: Use Pythonic iteration over the ESet. 278 279* pythontest.py: Fix testcase checking we get an exception from using 280 non-random-access iterators after then have advanced - previously these 281 didn't actually test as fully as intended. 282 283Ruby: 284 285* Omit internal classes and methods from the rdocs. 286 287Xapian-bindings 1.2.15 (2013-04-16): 288 289General: 290 291* Fix configure --enable-quiet option to actually work for the bindings. 292 293Perl: 294 295* Fix doc typo: "as as" -> "as a" 296 297Ruby: 298 299* Fix deprecation warning in configure from Ruby 1.9.3. 300 301Xapian-bindings 1.2.14 (2013-03-14): 302 303Python: 304 305* Fix typo in doccomment. 306 307PHP: 308 309* Keep references to the PHP wrapper object when an object is set on another 310 object. (fixes #614) 311 312Tcl: 313 314* Allow TCL_INC to be passed to configure. (fixes #612) 315 316Xapian-bindings 1.2.13 (2012-11-09): 317 318CSharp: 319 320* configure: Overhaul checks for C# tools to use modern names in preference. 321 322Lua: 323 324* Fix examples to use str(query) to get the query description. (Fixes #600) 325 326* Document that get_description() is mapped to str(), and end() to _end(). 327 328* Fix functor wrappers which return strings to be zero-byte clean. 329 330Perl: 331 332* Forward port tests of StringValueRangeProcessor with a prefix or suffix from 333 1.2's XS Search::Xapian. (ticket#607) 334 335* Update testsuite not to use UNIVERSAL::isa() as a function, since doing so 336 is deprecated. 337 338PHP: 339 340* Document that subclassing Xapian classes in PHP currently doesn't work with 341 PHP 5.4. 342 343Xapian-bindings 1.2.12 (2012-06-27): 344 345No changes since 1.2.11 except to bump the version - this release was made to 346fix an incorrect library version information update in xapian-core 1.2.11. 347 348Xapian-bindings 1.2.11 (2012-06-26): 349 350General: 351 352* Ship the scripts which generate the except.i files for Lua, Perl and Python. 353 354Perl: 355 356* In generated C++ code, pass 0 instead of NULL for non-pointer parameter to 357 av_fetch() (spotted due to GCC 4.7 warning). 358 359PHP: 360 361* Fix "make check" to work for PHP when building from a release tarball with 362 srcdir != builddir. 363 364* Work around "undefined symbol: zend_error_noreturn" error. 365 366Xapian-bindings 1.2.10 (2012-05-09): 367 368CSharp: 369 370* Use -keyfile and -keycontainer options to the C# compiler, because it warns 371 us to do this instead of setting them in AssemblyInfo.cs. 372 373* Use diff's -c option when comparing the files SWIG generated against those we 374 were expecting to get as the output should be easier to understand. 375 376* Sort both the lists of expected and of found SWIG-generated sources with 377 Perl, to avoid problems with locale-specific sort orders. 378 379Java-SWIG: 380 381* Remove now superfluous old check that SWIG generated at least the sources we 382 want - we now check it generated *exactly* the sources we want. 383 384* Use diff's -c option when comparing the files SWIG generated against those we 385 were expecting to get as the output should be easier to understand. 386 387* Sort both the lists of expected and of found SWIG-generated sources with 388 Perl, to avoid problems with locale-specific sort orders. 389 390Lua: 391 392* Now works with Lua 5.2. 393 394* "require 'xapian'" now returns the module table. (ticket #593) 395 396* lua/smoketest.lua: Improve reporting of test failures. 397 398Perl: 399 400* Avoid importing isa from UNIVERSAL to fix Perl 5.12 deprecation warning. 401 402* Remove #! lines with -W to fix "Name "Test::More::TODO" used only once: 403 possible typo at /usr/share/perl/5.14/Exporter/Heavy.pm line 190." warnings. 404 405Python: 406 407* python/docs/examples/simpleexpand.py: Update to not use deprecated MSet 408 iteration features which have been removed on trunk. This also fixes a 409 segfault if there are no matches and no documents are explicitly marked as 410 relevant. 411 412* python/testsuite2.py: Explicitly suggest "make check VERBOSE=1" as a simple 413 way to rerun tests with verbose output. 414 415Ruby: 416 417* configure: Make sure the ruby subdirectory exists before trying to create 418 ruby/rubyio.h, so this works in a VPATH build from a clean tree. 419 420Xapian-bindings 1.2.9 (2012-03-08): 421 422Java: 423 424* configure: Fix test for jni.h to try looking for jni.h relative to the real 425 location of javac, which should work for more JDKs. 426 427Lua: 428 429* Handle an exception from C++ by raising a xapian.Error object as an error in 430 Lua. 431 432* Rename get_description() methods to __tostring(), so that you can use write 433 tostring(obj) in Lua. 434 435* configure: Honour LUA_LIB if already set. Fixes #581. 436 437* configure: Improve probing for LUA_LIB, and also probe for LUA_SO so we 438 support platforms where the compiled Lua module isn't called .so. 439 440Perl: 441 442* Add tests of Document::get_docid(). 443 444PHP: 445 446* Add a test that Query constructor taking OP_NEAR with a window size works. 447 448Python: 449 450* python/testsuite2.py: Don't run off the traceback looking for a test function 451 if the exception wasn't from a test function. 452 453Xapian-bindings 1.2.8 (2011-12-13): 454 455Lua: 456 457* Wrap user-subclassable functor objects by allowing the user to pass a 458 Lua function where the functor object would be passed in the C++ API. 459 460PHP: 461 462* Fix "PHP Notice: Undefined variable: r in xapian.php". (Fixes bug#576) 463 464* The PHP bindings will now work again with a version of PHP built with ZTS 465 enabled (which is the default on Microsoft Windows). This was broken by 466 the changes to support subclassing in PHP in the version of SWIG used since 467 1.2.6. 468 469Python: 470 471* Add a module docstring. (Fixes bug #573) 472 473* The python testsuite now checks for object leaks during each testcase. 474 475* In test_matchingterms_iter, run the code we're testing for leaks twice, and 476 only check for leaks the second time to avoid falsely reporting a leak when 477 some cached value gets initialised under Python 2.5. 478 479Ruby: 480 481* Wrap optional prefix parameter to Database::allterms. 482 483Xapian-bindings 1.2.7 (2011-08-10): 484 485Documentation: 486 487* INSTALL: Pull in a few updates from the latest version of the automake 488 document which this file was originally based on. Add in the missing 489 copyright and licensing information. 490 491* INSTALL: Add --with-lua to list of options. 492 493* INSTALL,README: It's no longer noteworthy that Mac OS X 10.1 and 10.2 aren't 494 supported as Apple ditched them long ago, so drop this as a "Known Issue" in 495 INSTALL and instead just say "Mac OS X >= 10.3" in the discussion of 496 supported platforms in the README. 497 498* HACKING: Update and start section on deprecation warnings for the bindings. 499 500General: 501 502* Add missing wrappers for Database::has_positions() and 503 TermIterator::positionlist_count(), and correct the return type of 504 Database::get_doclength() from double to Xapian::termcount. 505 506CSharp: 507 508* README: Note a recent version of Mono which we've tested the C# bindings 509 with. 510 511* Check that exactly the sources we expect are generated, and add some sources 512 which were missing from the list. 513 514* Fix "make uninstall" so the compiled C++ module (typically _XapianSharp.so) 515 gets removed. 516 517* Fix iterator ++ and -- so that the reference to the object isn't released 518 prematurely, which was causing an occasional crash if the garbage collection 519 happened at just the wrong moment, 520 521* Add test coverage for QueryParser.ParseQuery() with flags argument. 522 523* Wrap Query::MatchAll and Query::MatchNothing. (ticket#158) 524 525Java: 526 527* SmokeTest.java: Fix == comparisons with strings to use equals(). 528 529* Add test that string passing is zero byte safe. 530 531* Fix MyExpandDecider.accept() to really check the passed parameter. 532 533Java-SWIG: 534 535* Put the SWIG-generated Java bindings in package org.xapian. 536 537* Wrap Query::MatchAll and Query::MatchNothing. (ticket#158) 538 539* SmokeTest.java: Fix == comparisons with literal strings to use equals() 540 541* Add test that string passing is zero byte safe. 542 543* Fix MyExpandDecider.accept() to really check the passed parameter. 544 545* Fix the compile JNI code to have a .jnilib extension on Mac OS X. 546 547* Create an HTML documentation page based on java/README. 548 549* Copy java examples from the hand-coded JNI ones. 550 551* docs/examples/SimpleIndex.java: Update to use commit() rather than flush(). 552 553* Check that exactly the sources we expect are generated, and add some sources 554 which were missing from the list. 555 556Lua: 557 558* Merge latest Lua changes from Xiaona Han. 559 560* lua/smoketest.lua: Add simple test for Database::positionlist_begin(). 561 562* simpleexpand.lua: Don't try to add anything to the RSet if there are no 563 matches. 564 565Perl: 566 567* Sync updates to examples from XS Search::Xapian: 568 569 + Require Perl >= 5.6 so we can "use warnings;". 570 571 + Loop over file using while() (which reads a line per iteration) not 572 foreach() (which reads the whole file up front). 573 574* Wrap MatchAll and MatchNothing for Perl (as Search::Xapian::Query::MatchAll 575 and Search::Xapian::Query::MatchNothing). (ticket#158) 576 577* perl/t/termgenerator.t: Test TermIterator::index_text() with two arguments. 578 579* perl/Makefile.am: Fix "make check". 580 581* perl/t/symbol-test.t: Fix to work when built against an installed 582 xapian-core. (ticket#558) 583 584PHP: 585 586* php/smoketest.php: Install an error handler so the test fails if there are 587 any errors, warnings, notices, etc. 588 589* Change PHP examples and test program to use 'include "xapian.php"' like user 590 code should (rather than 'include "php5/xapian.php"' as they did previously). 591 592* Wrap MatchAll and MatchNothing for PHP as XapianQuery::MatchAll() and 593 XapianQuery::MatchNothing(). (ticket#158) 594 595Ruby: 596 597* Wrap MatchAll and MatchNothing for Ruby. (ticket#158) 598 599Xapian-bindings 1.2.6 (2011-06-12): 600 601General: 602 603* SWIG-based bindings are now generated with a newer version of SWIG 604 (ticket#538). 605 606Portability: 607 608* On Mac OS X 10.5 or later, and 10.4 on x86, build Java JNI library with a 609 .jnilib extension as we do for older versions. 610 611CSharp: 612 613* Upgrading to newer SWIG fixes issues with strings with newer C# versions. 614 615Java: 616 617* Fix memory leaks when functions taking string parameters throw exceptions. 618 619* Previously a hash table was used to map Java objects to C++ ones, but we 620 now just cast the address of the C++ object to a jlong (which is 64 bits 621 so will hold a pointer on current platforms). This is more efficient and 622 avoids the need for thread locks around accesses to the hash table. 623 624* Remove explicit checks for NULL around calls to delete. 625 626* Mark makefiles which build Java code as .NOTPARALLEL to avoid race conditions 627 during parallel builds. 628 629Lua: 630 631* Add support for Lua, which is being developed by Xiaona Han during GSoC this 632 year. The current support should be regarded as experimental - it passes 633 its automated tests, but the details of the Lua API are likely to evolve as 634 the project progresses. 635 636Perl: 637 638* README: say that Perl bindings probably need Perl 5.8 or later. 639 640PHP: 641 642* Directors now work for PHP (ticket#488). New simplematchdecider.php example. 643 644Python: 645 646* python/pythontest2.py: With Python 2.7, gc.collect() doesn't always collect 647 all the garbage, so repeat until no further objects are freed. 648 (http://bugs.debian.org/625679 and https://bugs.gentoo.org/349484). 649 650Ruby: 651 652* ruby/smoketest.rb: Older Ruby 1.8.x doesn't have Dir.mktmpdir() - just skip 653 the compaction tests for these versions. 654 655Xapian-bindings 1.2.5 (2011-04-04): 656 657Documentation: 658 659* README: Update info on SWIG-based Perl bindings. 660 661* INSTALL: Copy new Multi-Arch section from xapian-core/INSTALL. Replace VPATH 662 section with better equivalent from xapian-core/INSTALL. 663 664General: 665 666* Wrap ESet::get_eset() with min_wt parameter (new in C++ API in 1.2.5). 667 668* configure: If xapian-core is a different release series, promote the 669 mismatched versions warning to an error. 670 671Portability: 672 673* Mac OS X: Don't override MACOSX_DEPLOYMENT_TARGET on 10.5 and later, or 674 10.4 on x86, as the default if unset on these versions is the current OS 675 version. (ticket#541) 676 677* python/pythontest2.py: In test_compactor(), close any open databases before 678 removing the directory as you can't delete an open database on Microsoft 679 Windows. (ticket#526) 680 681CSharp: 682 683* Don't pass extra flags to Microsoft's gacutil. (ticket#516) 684 685* Clarify the licence is GPL "version 2 or later" in the meta information 686 we put in the module. 687 688Python: 689 690* Remove old and broken Enquire.get_matching_terms() method. We deprecated 691 Enquire.get_matching_terms() in 1.0.x, and removed it in 1.1.0, but 692 accidentally left an older version of get_matching_terms() exposed. 693 694* Remove broken implementation of MSet.__contains__. This appears never to 695 have worked, and to have been broken for at least the past 3.5 years without 696 anyone mentioning it, and is probably of little use anyway, so no need to 697 deprecate. 698 699* python/docs/index.html: Document that MSet.items and ESet.items are 700 deprecated, and what to use instead. Note that MSET_DOCUMENT never worked on 701 the tuple returned by MSet.items. (ticket#531) 702 703* Add test coverage for mset.items. 704 705Ruby: 706 707* Add test coverage for Xapian::Compactor. 708 709* Handle an empty response to $RUBY --version specially. This gives a less 710 opaque error in cases where the user specified RUBY but the value given 711 wasn't an executable file. 712 713Xapian-bindings 1.2.4 (2010-12-19): 714 715General: 716 717* Wrap the new Xapian::Compactor class. The resolve_duplicate_metadata() 718 virtual method is wrapped for subclassing for Python and Ruby currently. 719 720* Eliminate separate Makefile.am in the docs subdirectory of each language 721 subdirectory and just inline any rules into the main sub-Makefile.am, which 722 allows more of the build to run in parallel. 723 724* Don't ship some files which are generated at build time. 725 726* configure: Need python in maintainer mode to run doxy2swig.py. 727 728Packaging: 729 730* RPM: Package the Perl bindings. 731 732* RPM: Don't package _XapianSharp.la. 733 734Portability: 735 736* For Mac OS X builds, set DYLD_LIBRARY_PATH to allow tests to find an 737 uninstalled Xapian library. See ticket #322. 738 739* configure: Fix typo in code to set PYTHON_LIBS under cygwin. (ticket#509) 740 741CSharp: 742 743* Don't install _XapianSharp.la. 744 745Perl: 746 747* Merge SWIG-based Perl bindings originally developed by Kosei Moriyama during 748 GSoC 2009. These are close to being a compatible replacement for the 749 hand-coded XS bindings in Search::Xapian but also offer a more complete 750 wrapping of the C++ API. We're planning to replace the XS bindings with the 751 SWIG ones for easier maintenance. We encourage you to try them and let us 752 know how you get on - particularly if you find cases where code which works 753 with the XS bindings doesn't work with the SWIG ones. 754 755PHP: 756 757* Document that iterators shouldn't be dereferenced or advanced when at their 758 end points (ticket#520). 759 760Python: 761 762* Fix memory leaks in typemaps which return Python lists. 763 764* MatchSpy can now be subclassed in Python. Remote use isn't currently 765 supported. 766 767* configure: Use sys.version_info tuple, rather than string splicing which 768 assumes the Python "major.minor" is 3 characters (which would fail if Python 769 2.10 were ever released, for example). 770 771Xapian-bindings 1.2.3 (2010-08-24): 772 773Packaging: 774 775* xapian-bindings.spec: Don't run autoreconf - it's no longer required. 776 777Xapian-bindings 1.2.2 (2010-06-27): 778 779* No user-visible change except for bumping the version to indicate 780 compatibility with Xapian-core 1.2.2. 781 782Xapian-bindings 1.2.1 (2010-06-22): 783 784This release includes all changes from 1.0.21 which are relevant. 785 786General: 787 788* Wrap Xapian::StemImplementation. Currently this has only been tested for 789 Python. (ticket#448) 790 791Guile: 792 793* Remove non-functional disabled guile bindings left over from Open Muscat 794 days - if someone wanted to add guile bindings, it would be easier to start 795 from scratch. 796 797Java-SWIG: 798 799* Update list of generated java sources in the SWIG-based Java bindings. 800 801PHP: 802 803* zend_throw_exception() returns, so return control to PHP directly after 804 calling it to avoid needless extra work and possible issues. 805 806Python: 807 808* Fix "from xapian import *". (ticket#477) 809 810* Fix testcase weight_normalise - a change in xapian-core means that 811 get_max_possible() can now return zero for a non-existent term, so don't 812 blindly calculate the reciprocal of it. 813 814* python/replicationtest2.py: Extend to check that changesets get applied 815 correctly. 816 817* python/smoketest2.py: Check len(mset) works (improving test coverage of 818 Python-specific wrapping). 819 820Xapian-bindings 1.2.0 (2010-04-28): 821 822This release includes all changes from 1.0.20 which are relevant. 823 824Portability: 825 826* configure: Tell libtool not to link in deplibs on platforms where we know 827 they aren't needed. 828 829* configure: On Linux, extract the library search path from ldconfig which 830 gives us the default entries reliably. 831 832Xapian-bindings 1.1.5 (2010-04-15): 833 834This release includes all changes from 1.0.19 which are relevant. 835 836Tcl: 837 838* tcl8/docs/index.html: Document WritableDatabase::close() as a way to 839 sidestep the whole destructor issue. (ticket#62) 840 841Xapian-bindings 1.1.4 (2010-02-15): 842 843This release includes all changes from 1.0.18 which are relevant. 844 845General: 846 847* Update for the new Brass backend and other C++ API changes. 848 849* Wrap Database::get_doclength_lower_bound(), 850 Database::get_doclength_upper_bound(), Database::get_wdf_upper_bound(), 851 Database::valuestream_begin() and Database::valuestream_end() for all 852 languages. (ticket#431) 853 854* Wrap ValueIterator::skip_to() and ValueIterator::check() for all languages. 855 856Python: 857 858* Wrap valuestreams as Database.valuestream(), returning a ValueStreamIter 859 object which dereferences to a ValueStreamItem object, 860 861* Fix Enquire.clear_matchspies() wrapper which crashed in 1.1.3. 862 863Ruby: 864 865* Add safe wrapper for the valuestream iterator. 866 867Xapian-bindings 1.1.3 (2009-11-18): 868 869This release includes all changes from 1.0.15-1.0.17 which are relevant. 870 871General: 872 873* configure: Default to looking for xapian-config-1.1 unless XAPIAN_CONFIG is 874 specified. 875 876* Wrap the new MatchSpy class, and associated features. 877 878* Don't wrap PostingSource::serialise(), Weight::serialise() and 879 Weight::unserialise() as they aren't useful from the bindings. 880 881* Update for the Sorter to KeyMaker changes. 882 883PHP: 884 885* Fix PHP bindings to build when PHP has been compiled in multithreaded mode, 886 as it standardly is on Microsoft Windows. Fixes #411. 887 888* Merged the PHP "smoketest" back together now we don't need to support 889 PHP4 now. 890 891Python: 892 893* Fix a memory leak on error (in theory - we've not got a way to generate this 894 error, so haven't been able to reproduce the leak or test the fix). 895 896Xapian-bindings 1.1.2 (2009-07-23): 897 898This release includes all changes from 1.0.14 which are relevant to trunk. 899 900Python: 901 902* Several changes towards fully supporting Python 3, but more work is required. 903 (ticket#246) 904 905Xapian-bindings 1.1.1 (2009-06-09): 906 907This release includes all changes from 1.0.13 which are relevant to trunk. 908 909General: 910 911* Wrap the recently added extra parameter to Enquire::set_collapse_key(). 912 913CSharp: 914 915* Document that Query::MatchAll and Query::MatchNothing aren't wrapped for 916 C# yet, and to use Query("") and Query() instead. 917 918* configure: If we don't find a C# compiler, don't test an empty command name 919 further which saves a fork and avoids an odd looking message. 920 921PHP: 922 923* Document that Query::MatchAll and Query::MatchNothing aren't wrapped for 924 PHP yet, and to use Query("") and Query() instead. 925 926Python: 927 928* Wrap Query::MatchAll and Query::MatchNothing for Python and document how they 929 are wrapped (ticket#158). 930 931* python/smoketest2.py,python/smoketest3.py: Update tests with FLAG_PARTIAL to 932 expect SYNONYM in generated query. 933 934Ruby: 935 936* Document that Query::MatchAll and Query::MatchNothing aren't wrapped for 937 Ruby yet, and to use Query("") and Query() instead. 938 939Tcl: 940 941* Wrap Query::MatchAll and Query::MatchNothing for Tcl and document how they 942 are wrapped (ticket#158). 943 944Xapian-bindings 1.1.0 (2009-04-22): 945 946Documentation: 947 948* INSTALL: Python 2.6 and later look in ~/.local for Python modules so update 949 the instructions to suggest users use this standard location for installing 950 without root access. 951 952General: 953 954* All deprecated features slated for removal in 1.1.0 have been removed. 955 956* All new C++ API features have been wrapped. Also, since we now supply some 957 standard MatchDecider subclasses, we now wrap Enquire::get_mset() so that 958 these can be passed in even for languages for which SWIG doesn't support 959 subclassing. 960 961Packaging: 962 963* xapian-bindings.spec: Updated to reflect the new Python packaging. 964 965Portability: 966 967* configure: Use XAPIAN_CXXFLAGS for test compiles since it may include options 968 to put the compiler into ISO C++ mode). 969 970PHP: 971 972* PHP4 support has been removed, since PHP4 is no longer supported upstream 973 as of 2008-08-08. 974 975Python: 976 977* Python 2.3 or later is now required. 2.2 is essentially unsupported 978 upstream. 979 980* The import method used has been changed (by using a newer SWIG version) 981 and no longer gives a warning with Python 2.6. 982 983* Initial support for Python 3.0 has been added. This currently doesn't 984 work correctly and should be treated as experimental. (ticket#346) 985 986* The newer SWIG version handles exceptions in director methods correctly 987 so we no longer need our workaround for ticket #289. 988 989* Database::metadata_keys_begin() and Database::metadata_keys_end() are 990 wrapped for Python as Database.metadata_keys(). 991 992* The Python bindings are now installed as a python package, with the 993 files in a xapian subdirectory, hiding the internal _xapian module 994 better. 995 996* Python now flags deprecation warnings for the single argument form and old 997 parameter name (ascending) in set_sort_by_key(), set_sort_by_value() and 998 friends. 999 1000Xapian-bindings 1.0.23 (2011-01-14): 1001 1002Portability: 1003 1004* configure: Fix typo in code to set PYTHON_LIBS under cygwin. (ticket#509) 1005 1006PHP: 1007 1008* Document that iterators shouldn't be dereferenced or advanced when at their 1009 end points (ticket#520). 1010 1011Python: 1012 1013* Fix memory leaks in typemaps which return Python lists. 1014 1015Xapian-bindings 1.0.22 (2010-10-03): 1016 1017Packaging: 1018 1019* RPM: Don't package _XapianSharp.la. 1020 1021CSharp: 1022 1023* Don't install _XapianSharp.la. 1024 1025Python: 1026 1027* configure: Use sys.version_info tuple, rather than string splicing which 1028 assumes the Python "major.minor" is 3 characters (which would fail if Python 1029 2.10 were ever released, for example). 1030 1031* Add test_xapian_star.py to distribution - fixes failure of "test_import_star" 1032 testcase in pythontest.py. 1033 1034Xapian-bindings 1.0.21 (2010-06-18): 1035 1036Python: 1037 1038* xapian.BAD_VALUENO is now wrapped as a constant rather than variable which 1039 can't be written to. (ticket#297) 1040 1041* Fix cleaning of test directories to use "rm -rf" rather than "rm -f". 1042 1043* Add test to check that "from xapian import *" works. 1044 1045Xapian-bindings 1.0.20 (2010-04-27): 1046 1047Python: 1048 1049* Set PYTHONDONTWRITEBYTECODE=1 in the environment to prevent Python from 1050 generating .pyc files in srcdir for Python >= 2.6, and use a Bourne shell 1051 trap to delete them after running tests for older versions of Python. 1052 (ticket#315) 1053 1054Ruby: 1055 1056* configure: Fix typo so path to ruby is reported if Ruby < 1.8 is found. 1057 1058Xapian-bindings 1.0.19 (2010-04-15): 1059 1060Tcl: 1061 1062* tcl8/docs/index.html: Improve wording in a few places. 1063 1064Xapian-bindings 1.0.18 (2010-02-14): 1065 1066General: 1067 1068* Wrap new C++ API method Document::add_boolean_term(). 1069 1070Ruby: 1071 1072* Generate entries in the Ruby rdocs for all classes which aren't documented 1073 because of Ruby-specific methods. Fixes ticket#417. 1074 1075* Avoid absolute paths in the generated rdocs. 1076 1077Xapian-bindings 1.0.17 (2009-11-18): 1078 1079Packaging: 1080 1081* Improve RPM package summaries - the files are needed to *use* scripts as well 1082 as to develop them. Use "Tcl" instead of "TCL" as the former is more 1083 conventional. 1084 1085Portability: 1086 1087* python/Makefile.am: Restore the "./" path to the sourced file 1088 libtoolconfig.tmp as ksh requires it. 1089 1090Java: 1091 1092* Fix memory leak when passing a MatchDecider to Enquire::get_mset(). 1093 1094Xapian-bindings 1.0.16 (2009-09-10): 1095 1096Python: 1097 1098* Improved docstrings for QueryParser::set_default_op() and 1099 QueryParser::get_default_op() (automatically generated from changes in 1100 xapian-core). 1101 1102Xapian-bindings 1.0.15 (2009-08-26): 1103 1104Python: 1105 1106* Don't break long words when wrapping text in the generated API documentation 1107 comments as this was causing identifiers to be broken in two. 1108 1109Xapian-bindings 1.0.14 (2009-07-21): 1110 1111General: 1112 1113* configure: If $CSC is empty, don't try to run it. This was a cosmetic bug 1114 and the only side-effect was an odd looking message. 1115 1116Python: 1117 1118* Rename methods at build-time using SWIG rather than a run-time in Python, as 1119 the latter approach adds a small time overhead when the module is being 1120 loaded. 1121 1122Ruby: 1123 1124* Fix to accept an integer value > MAXINT for a double parameter. 1125 1126Xapian-bindings 1.0.13 (2009-05-23): 1127 1128Packaging: 1129 1130* xapian-bindings.spec: Update C# packaging for rename of XapianSharp.so to 1131 _XapianSharp.so in 1.0.11. 1132 1133* xapian-bindings.spec: Update Tcl8 packaging for where we now install the 1134 bindings since 1.0.6. 1135 1136PHP: 1137 1138* Backport fix from SWIG SVN for misuse of formatted error function in 1139 SWIG-generated code. 1140 1141Python: 1142 1143* Change the SWIG-generated wrapper code so it doesn't attempt to acquire 1144 Python's Global Interpreter Lock (GIL) in situations where we know that it 1145 will already be locked. This avoids some dead-locks with mod_python (due to 1146 mod_python bugs which are apparently unlikely to ever be fixed), and results 1147 in smaller wrappers which run a little faster (in tests with Xapian on x86-64 1148 Ubuntu 9.04, the stripped wrapper library was 11% smaller and ran 2.7% 1149 faster). (ticket#185) 1150 1151* README,python/docs/index.html: Update documentation of the above mod_python 1152 issue and also document the related mod_wsgi issue. The status is now that 1153 everything seems to work if you stick to the main interpreter (ticket#364). 1154 1155* Backport fix from SWIG SVN for misuse of formatted error function in 1156 SWIG-generated code. 1157 1158* python/docs/examples/simplematchdecider.py: Read "avoid_value" from the 1159 second parameter, not the third. 1160 1161* python/docs/examples/simplematchdecider.py, 1162 python/docs/examples/simplesearch.py: Make use of str.join() for simpler, 1163 clearer code. 1164 1165Ruby: 1166 1167* README: Note that the testsuite fails due to a bug in the test/unit module in 1168 Ruby 1.9.0, but applications using the bindings should work, and that the 1169 testsuite works with Ruby 1.9.1. Drop all mention of Ruby 1.6.x as that 1170 appears to be completely dead both upstream and in the wild. 1171 1172Xapian-bindings 1.0.12 (2009-04-19): 1173 1174Documentation: 1175 1176* INSTALL: Add a note about being able to pass variables to configure to pick 1177 which of several parallel installations of a language to build for. 1178 1179Python: 1180 1181* python/pythontest.py: Round the weights returned for the OP_SCALE_WEIGHT 1182 test to avoid failing due to rounding differences. 1183 1184* python/testsuite.py: Remove bare except: handlers from testsuite, so Ctrl-C 1185 stop the whole testsuite, not just the currently running testcase. 1186 1187Xapian-bindings 1.0.11 (2009-03-15): 1188 1189Documentation: 1190 1191* README: Note that 1.0.x doesn't (and isn't currently planned to) support 1192 Python 3, and possible current issues with Ruby 1.9. 1193 1194Portability: 1195 1196* Merge fixes from Cygwin Ports, so bindings should build out of the box on 1197 Cygwin. 1198 1199Python: 1200 1201* python/docs/examples/: Use str(obj) rather than obj.get_description() (the 1202 latter is deprecated, and support was removed in 1.0.0). 1203 1204* Add support for using the new name ("reverse") for the second argument of 1205 set_sort_by_key() and set_sort_by_value() and friends as a named parameter. 1206 The old name ("ascending") is still supported, but will be deprecated in 1207 1.1.0. 1208 1209* Keep Python references to Sorter, Stopper, and ValueRangeProcessor objects 1210 which get set on other objects to avoid segmentation faults if they go out 1211 of scope before the object they are set on does. (ticket#341) 1212 1213Ruby: 1214 1215* Fixes for Ruby 1.9 compatibility (ticket#323). The test harness currently 1216 fails so "make check" doesn't pass, but code using the bindings should work. 1217 1218Xapian-bindings 1.0.10 (2008-12-23): 1219 1220Python: 1221 1222* Need to clean testsuite.pyc from srcdir since that's where it gets generated 1223 as things stand (upstream fix for Debian bug 506090). 1224 1225Xapian-bindings 1.0.9 (2008-10-31): 1226 1227General: 1228 1229* configure: Add support for "--enable-quiet" like xapian-core and omega have. 1230 1231* Wrap new Database::metadata_keys_begin() and Database::metadata_keys_end() 1232 methods. 1233 1234Xapian-bindings 1.0.8 (2008-09-04): 1235 1236General: 1237 1238* configure: Report bug report URL in --help output. 1239 1240Python: 1241 1242* Fix mangling of exceptions thrown from Python subclasses of Xapian classes. 1243 (bug#289) 1244 1245* Fix memory leaks in the xapian.Query constructor. (bug#294) 1246 1247Xapian-bindings 1.0.7 (2008-07-14): 1248 1249Documentation: 1250 1251* Document how all the database factory functions and library version functions 1252 are wrapped for all languages. 1253 1254General: 1255 1256* Fix to build against a xapian-core which has quartz and/or flint disabled. 1257 1258* The "program" version of Remote::open() has been wrapped for some time, so 1259 update the documentation which said it wasn't. 1260 1261Packaging: 1262 1263* xapian-bindings.spec: Remove "www." from xapian.org and oligarchy.co.uk URLs. 1264 1265Portability: 1266 1267* For Java, Python, and Ruby, use the libtool -shrext option to specify a 1268 different module extension rather than our own ugly bodge. 1269 1270Java: 1271 1272* Make passing string from Java to C++ zero-byte safe. It doesn't appear to be 1273 simple to make C++ to Java work though. 1274 1275PHP: 1276 1277* Add test that OP_VALUE_GE works for PHP. 1278 1279Python: 1280 1281* Several corrections to the Python documentation. 1282 1283* configure: Fix problem with building under mingw. 1284 1285Ruby: 1286 1287* Include simplematchdecider.rb example. 1288 1289* smoketest.rb: Test the version reporting functions. 1290 1291Tcl: 1292 1293* Include simpleexpand.tcl example. 1294 1295* Fix where the Tcl module gets installed. 1296 1297* README: Note that Tcl 8.3 and earlier are no longer supported by upstream. 1298 1299Xapian-bindings 1.0.6 (2008-03-17): 1300 1301General: 1302 1303* Wrap OP_VALUE_GE and OP_VALUE_LE and the new Query constructor which they are 1304 used with. 1305 1306* configure: Correct the required SWIG version given in an error message. 1307 1308PHP: 1309 1310* php/smoketest.php: Add note that this script should be run using 'make check' 1311 in the build tree (rather than trying to copy it to a webserver as someone 1312 recently tried to). 1313 1314* php/smoketest.php: Fix to work under PHP4. 1315 1316Python: 1317 1318* The Python module now always has the extension which Python expects, which 1319 fixes a failure on Mac OS X. 1320 1321Ruby: 1322 1323* Automatically install/uninstall the Ruby rdoc-generated documentation along 1324 with the ruby bindings. 1325 1326Tcl: 1327 1328* configure: Sort out the default value of TCL_LIB, which could end up being 1329 under /usr/share in xapian-bindings 1.0.4 and 1.0.5. 1330 1331Xapian-bindings 1.0.5 (2007-12-21): 1332 1333General: 1334 1335* Wrap Xapian::Sorter and subclasses. 1336 1337* Wrap Enquire::set_sort_by_key(), Enquire::set_sort_by_key_then_relevance(), 1338 and Enquire::set_sort_by_relevance_then_key(). 1339 1340* Factor out the code to protect multitarget rules against parallel make, and 1341 fix it to handle the source being changed while the rule is executing, and to 1342 correctly return an error code if we fail while trying to recover from the 1343 removal of a target of a multi-target rule. 1344 1345* configure: Improve the clarity of the error given when none of the tools 1346 needed for any supported language are found. 1347 1348* configure: SWIG 1.3.32 has now been released, so require at least this 1349 released version for maintainer builds. 1350 1351Java: 1352 1353* Add explicit '#include <cstring>' to fix build with the latest snapshots of 1354 GCC 4.3. 1355 1356* configure: Log the output of trying to compile conftest.java in config.log; 1357 if the test fails, report whether the failure was compiling or running the 1358 test program. 1359 1360* Check for directory existence rather than calling mkdir unconditionally as 1361 despite the "(ignored)", the error message seems to confuse some people. 1362 1363PHP: 1364 1365* Add feature test for XapianMultiValueSorter. 1366 1367* php/smoketest5.php: Fix use of Database_get_document to new style OO 1368 interface. Fix the error reported when the PHP5 exception test fails. 1369 1370* php/smoketest.php: Add feature test to confirm that optional arguments to 1371 XapianQuery's "term" constructor are wrapped. 1372 1373Python: 1374 1375* Don't drop the GIL when calling Xapian.MSet.items and Xapian.ESet.items - 1376 these properties build a python list, so dropping the GIL isn't safe and 1377 may cause undefined behaviour in multithreaded environments. 1378 1379* configure: Update error message to reflect requirement for at least python 1380 2.2. 1381 1382* configure: Change "print foo" to "print(foo)" in python version checks, for 1383 compatibility with python 3.0. 1384 1385Ruby: 1386 1387* The Ruby bindings now work on Mac OS X (the Ruby module's extension was 1388 previously incorrect). 1389 1390* Run "rdoc" to generate HTML for the Ruby-specific API documentation which 1391 ruby/docs/index.html previously had a dead link to. 1392 1393Tcl: 1394 1395* configure: Overhaul code to find tcl.h since the old version no longer worked 1396 with Debian unstable. 1397 1398* tcl8/docs/index.html: Update documentation to cover flint and mention that 1399 quartz is now deprecated. 1400 1401* Remove code to handle `const char *' exceptions - as of 1.0.0 the QueryParser 1402 throws QueryParserError instead. 1403 1404Xapian-bindings 1.0.4 (2007-10-30): 1405 1406General: 1407 1408* Wrap new OP_SCALE_WEIGHT query operator, and corresponding Query constructor. 1409 Add feature tests for all languages. 1410 1411* The "bindings.html" file documenting each of the bindings has been renamed to 1412 "index.html". 1413 1414Packaging: 1415 1416* Fix the PHP Makefile.am to work with autoconf < 2.60 to fix RPM builds for 1417 older distros. 1418 1419Portability: 1420 1421* Fix warnings when compiling with GCC 4.2. 1422 1423PHP: 1424 1425* Update to newer SWIG SVN snapshot to fix memory leaks in wrapped constructors 1426 and methods/functions which return a wrapped class. 1427 1428* For PHP4, wrap Xapian::sortable_serialise() as xapian_sortable_serialise() 1429 and Xapian::sortable_unserialise() as xapian_sortable_unserialise(). 1430 1431* Document how non-class functions are wrapped. 1432 1433* Fix wrapping of NumberValueRangeProcessor for PHP4. 1434 1435* smoketest.php: Split the regression test for bug#193 into separate 1436 versions for PHP4 and PHP5 as the previous version only worked for PHP5. 1437 1438Python: 1439 1440* python/docs/index.html: Promote the Pythonic iterators, and deprecate the 1441 non-pythonic iterators. Make it clearer that the "sequence API" is 1442 deprecated. 1443 1444* Add test of a custom ValueRangeProcessor (ie, one written in python). 1445 1446* Update the examples to use the new-style attributes to access MSet item 1447 values rather than the old-style MSET_* constants. 1448 1449* Document MSET_DOCUMENT. 1450 1451Ruby: 1452 1453* smoketest.rb: Rename test of metadata access methods which had been named the 1454 same as the matchdecider test due to a copy-and-paste error. 1455 1456Xapian-bindings 1.0.3 (2007-09-28): 1457 1458General: 1459 1460* Wrap new methods Database::get_metadata() and 1461 WritableDatabase::set_metadata(). 1462 1463* "make uninstall" now removes the loadable module we install for each of 1464 the bindings. 1465 1466* "make distcheck" now works. 1467 1468* Distribution tarballs are now in the POSIX "ustar" format since it saves 1469 about 40KB and we need to use it for xapian-core anyway. 1470 1471Packaging: 1472 1473* RPMs: Package xapian.php. 1474 1475CSharp: 1476 1477* Remove wrapper for ValueRangeProcessor::operator(), since it can't be 1478 usefully used currently. 1479 1480Java: 1481 1482* Remove wrappers for the Muscat36 backend, which has now been dropped from the 1483 C++ library. 1484 1485* "make clean" now removes the class files generated for inner classes. 1486 1487PHP: 1488 1489* Add feature test for DateValueRangeProcessor when used with QueryParser. 1490 1491* ValueRangeProcessor::apply() can now be called from PHP (bug#193). This 1492 isn't actually very useful, since you can't subclass it in PHP currently. 1493 1494* Fixed wrapping of Enquire::set_cutoff() - previously this would only work 1495 if the third parameter was specified and a floating point number (e.g. 0.0). 1496 1497* php/docs/bindings.html: Fix errors in example code. 1498 1499Python: 1500 1501* ValueRangeProcessor::operator() is now wrapped as a __call__ method in 1502 Python which takes two strings and returns a 3-tuple (value_number, 1503 modified_begin, modified_end). Previously this always failed with a 1504 type error, so this doesn't break existing code. 1505 1506* python/pythontest.py: Interpret any commandline arguments as a list of 1507 tests to be run (the default is to run all tests). 1508 1509* README,python/docs/bindings.html: Add a note about the problems with 1510 mod-python (as described in bug #185). 1511 1512* python/pythontest.py: Delete the database handles before deleting a database 1513 to fix problems running the Python tests on MS Windows (bug#179). 1514 1515* "make clean" now removes testsuite.pyc. 1516 1517Ruby: 1518 1519* Check for RUBY_INC, RUBY_LIB, and RUBY_LIB_ARCH in the environment or on 1520 the configure command-line. The defaults for RUBY_LIB and RUBY_LIB_ARCH are 1521 now the site-specific directories, which is more correct when building 1522 from source. Debian packages, etc can override this by setting RUBY_LIB and 1523 RUBY_LIB_ARCH. 1524 1525Tcl: 1526 1527* Check for TCL_LIB in the environment or on the configure command-line to 1528 allow installing without root access more cleanly. 1529 1530Xapian-bindings 1.0.2 (2007-07-05): 1531 1532Documentation: 1533 1534* Document use of PYTHON_LIB and PHP_EXTENSION_DIR instead of pylibdir and 1535 phpextdir. 1536 1537* Remove documentation of removed "--with-swig" configure option. 1538 1539General: 1540 1541* Add methods of NumberValueRangeProcessor for serialising and 1542 unserialising doubles. 1543 1544* Add methods and constants supporting spelling correction and synonyms. 1545 1546* Value of XAPIAN_CONFIG supplied to configure is now passed to distcheck, 1547 to ensure that it works with uninstalled copies of Xapian. 1548 1549* Value of PYTHON_LIB supplied to configure is now respected - previously 1550 it was documented, but ignored. 1551 1552* Add support for supplying PHP_EXTENSION_DIR to configure. 1553 1554* Change to using "%include", rather than reproducing contents of header 1555 files, for "queryparser.h", "document.h" and "postingiterator.h". 1556 1557* Add new form of get_mset() which allows a matchspy matchdecider to be 1558 set. 1559 1560* RPMs: Don't mention %makeinstall in a .spec file comment as that makes RPM 1561 explode. Add in a missing "mv" in the command for installing tcl8 1562 documentation. 1563 1564CSharp: 1565 1566* Fix rule handling parallel make to include xapian_wrap.h 1567 1568PHP: 1569 1570* Install xapian.php as <PREFIX>/share/php<PHPMAJOR>/xapian.php. There 1571 doesn't seem to be a standard location, but this works for Debian at 1572 least, and it seems better to at least try to install it. 1573 1574* Rename ValueRangeProcessor and subclasses and TermGenerator to have a Xapian 1575 prefix for PHP4. 1576 1577Python: 1578 1579* Fix a threading problem: the GIL was not being acquired in the exception 1580 handling code before setting the Python exception state, leading to 1581 various memory corruption symptoms in threaded programs. 1582 1583* Add special iterators to Database for synonyms, synonym_keys and 1584 spellings. 1585 1586* Add test cases for OP_VALUE_RANGE queries, getting spelling corrections, 1587 synonym iterators and spelling iterators. 1588 1589* In the test suite, expect_query() now adds "Xapian::Query(" and ")" around 1590 the expected description to make the tests more readable. 1591 1592Xapian-bindings 1.0.1 (2007-06-11): 1593 1594Documentation: 1595 1596* NEWS: Fix the recent headings which said "Xapian-core" to say 1597 "Xapian-bindings". 1598 1599General: 1600 1601* Wrap Xapian::Query constructor for creating ValueRange queries. 1602 1603* Wrap new forms of Xapian::Database::allterms_begin() and allterms_end() 1604 which take a prefix. 1605 1606Packaging: 1607 1608* RPMs: Use "make install" instead of %makeinstall to avoid doubled 1609 %{buildroot} prefix on most files which we then have to work around. 1610 1611CSharp: 1612 1613* SimpleIndex now uses Xapian.TermGenerator. 1614 1615* SimpleSearch now uses Xapian.QueryParser. 1616 1617* New SimpleExpand example. 1618 1619* Document explicitly how STEM_SOME constants are currently wrapped. 1620 1621* Update GetTermName() reference in documentation to GetTerm(). 1622 1623* SmokeTest.cs: Update comment about Portable.NET bug - the bug is fixed in 1624 their CVS repo, and the fix should be in their 0.8.2 release. 1625 1626Java: 1627 1628* `configure --help' documented that environmental variable JNI_INCLUDE_DIR was 1629 looked at, but in fact its value was read but ignored. We now use it as the 1630 first place to look for jni.h. 1631 1632* configure will now automatically add an extra "-I" for the 1633 linux/solaris/win32 subdirectory which Sun's JDK requires. 1634 1635* Document JAVA_HOME and JDK_HOME in ./configure --help and mark them as 1636 "precious" so their values are preserved for when configure is automatically 1637 rerun. 1638 1639PHP: 1640 1641* Enquire::get_mset(first, maxitems, omrset) now works for PHP5. 1642 1643* The PHP examples have been rewritten to be clearer and to make use of the 1644 new XapianTermGenerator class. 1645 1646Python: 1647 1648* Python examples now use xapian.QueryParser and xapian.TermGenerator. 1649 1650* Add support for prefix-restricted pythonic allterms iterators. 1651 1652* Update documentation in a couple of places to refer to updated replacements 1653 for MSetIterator. 1654 1655* Change testsuite output to be more vim-friendly (vim should be able to jump 1656 to the right lines now). 1657 1658* __str__ on Xapian::Error now includes extra information in some cases (the 1659 error_string and context, if they are set). 1660 1661* python/smoketest.py: Eliminate uses of the legacy sequence API. 1662 1663* python/pythontest.py: The legacy sequence API is only supported for Python 1664 2.3 and later, so don't run tests for it when running under Python 2.2. 1665 1666* We now generate and install xapian.pyo as well as xapian.pyc. 1667 1668Ruby: 1669 1670* The Ruby examples now use the Xapian::QueryParser and Xapian::TermGenerator 1671 classes. 1672 1673* Add missing rename for the C++ TermGenerator::set_document() method so it can 1674 be used as "tg.document = doc" in Ruby. 1675 1676* Fixed compilation on Mac OS X and warning from GCC on 32-bit Linux platforms. 1677 1678Tcl: 1679 1680* tcl8/docs/examples/simpleexpand.tcl: New example to demonstrate relevance 1681 feedback, based on C++ simpleexpand.cc. 1682 1683* tcl8/docs/example/simpleindex.tcl: New simpler example making use of the 1684 TermGenerator class. 1685 1686* tcl8/docs/example/simplesearch.tcl: New simpler example making use of the 1687 QueryParser class. 1688 1689* tcl8/docs/bindings.html: Document how constants are wrapped. 1690 1691* Update smoketest and examples to require version 1.0.0 - previously this 1692 required 0.9.6, which failed since TCL doesn't accept differing major 1693 version numbers. 1694 1695* pkgIndex.tcl is now generated by configure. 1696 1697Packaging: 1698 1699* The required automake version has been lowered to 1.8.3, so RPMs can now be 1700 built on RHEL 4 and SLES 9. 1701 1702Xapian-bindings 1.0.0 (2007-05-17): 1703 1704Documentation: 1705 1706* Document Unicode support for each language. 1707 1708* Assorted minor improvements and typo fixes. 1709 1710General: 1711 1712* Add wrappers for ExpandDecider, and Enquire::get_eset() variants which use 1713 it, for languages where SWIG supports directors. 1714 1715* Wrap new features: TermGenerator, ValueRangeProcessor hierarchy, the 1716 OP_VALUE_RANGE query operator, the new overloaded form of parse_query, which 1717 allows the "default_prefix" argument to be supplied, QueryParser flags 1718 FLAG_PURE_NOT and FLAG_PARTIAL. 1719 1720* Deprecated Xapian::Stem's stem_word() method in favour of apply(). 1721 1722* Remove wrappers for deprecated features removed from the C++ API (see 1723 docs/deprecation.html in xapian-core for full details and upgrade 1724 information). 1725 1726* Deprecate ESetIterator::get_termname() in favour of ESetIterator::get_term(). 1727 1728* QueryParserError is now a real error, so remove special handling for "const 1729 char *" exceptions. 1730 1731* Use a stamp file in "make" rules with multiple targets so that parallel 1732 make works. 1733 1734* configure: Now quotes $PYTHON, etc so that you can specify a program with 1735 arguments. 1736 1737* configure: If the user specifies a program which doesn't exist (e.g. 1738 PYTHON=/opt/bin/ptyhon) don't autoprobe after failing to find it. 1739 1740* configure: Disable probes for f77, gcj, and rc completely by preventing 1741 the probe code from even appearing in configure - this reduces the size of 1742 configure by 28% and should speed it up significantly. 1743 1744* configure: If the version check against the xapian-core version detects a 1745 mismatch, we now issue a warning rather than a hard error since if you're 1746 careful this can work. The warning is issued late on in configure, so it's 1747 harder for the user to miss. 1748 1749* configure: The --with-swig option has been removed. It no longer has a 1750 purpose as we now ship the files which are generated by SWIG. 1751 1752Portability: 1753 1754* The PHP bindings can now be built with MSVC for Microsoft Windows. 1755 1756CSharp: 1757 1758* When using Mono 1.2, we must build with gmcs (the C# 2.0 compiler) rather 1759 than mcs to avoid segmentation faults at runtime due to unimplemented 1760 features in mcs. Document this, and update configure to prefer gmcs. 1761 1762* The return type of MatchDecider::operator() is now `bool' rather than `int' 1763 (in line with the same change in the C++ API). 1764 1765* Xapian.Stem.StemWord() deprecated in favour of Xapian.Stem.Apply(). 1766 1767Java: 1768 1769* The Java bindings have been updated to use C++ replacements for deprecated 1770 methods, so they still build. The Java wrappers still provide the old 1771 deprecated names for now though. The longer term plan is to replace the 1772 hand-written JNI with SWIG generated wrappers (work has now begun on this) 1773 which is likely to require some API changes, and it seems more sensible to 1774 make any changes to align with C++ API changes at the same time. 1775 1776* Enquire.getQuery() is implemented entirely in Java, so strip out the unused 1777 MyQuery mechanism, and so fix a memory link which it caused (bug#105). 1778 1779PHP: 1780 1781* Fix undefined behaviour in get_matching_terms(). 1782 1783* Document the (existing) renaming of methods which are PHP reserved words 1784 (empty() to is_empty() and clone() to clone_object()). 1785 1786* Deprecated Xapian::Stem's stem_word() method in favour of apply(). 1787 1788Python: 1789 1790* The Python bindings now throw exceptions as classes with a hierarchy which 1791 mirrors that of the C++ Xapian::Error and its subclasses. The xapian.Error 1792 base class inherits from the standard Python Exception class. 1793 1794* All Python methods which accept strings can now be passed either a unicode 1795 object or a simple string. Strings are returned as simple strings: unicode 1796 input will be returned as utf-8 encoded output. The documentation now 1797 contains a "Unicode" section. 1798 1799* The Python bindings should now be usable more efficiently from threaded 1800 Python applications since we now use SWIG's -threads option when generating 1801 them, so that the GIL is released during long-running Xapian operations 1802 (bug#137). 1803 1804* Most classes, methods, functions, etc now have docstrings which are either 1805 automatically extracted from the C++ documentation comments, or overridden by 1806 more appropriate versions. 1807 1808* Most of the Pythonic iterators now return an object instead of a sequence, 1809 which means they now lazily fetch the information which previously had to be 1810 fetched to put it in the sequence. The old sequence API is supported for 1811 compatibility, but is scheduled for removal in Xapian 1.1.0. 1812 1813* Those Python iterators which have skip_to() methods now return the item 1814 skipped to, and next() will return the following item. Previously, they 1815 returned None, and next() returned the item skipped to. Several bugs in the 1816 skip_to() wrappers were fixed. 1817 1818* Because of the lazy access, some objects returned by iterators will raise 1819 an error if the lazy evaluation happens after the iterator has moved on 1820 (since the underlying Xapian API doesn't allow efficient access to the 1821 information in this situation). The exact semantics are defined in the 1822 docstrings for each iterator. 1823 1824* Those Pythonic iterators which return only a list of terms now return 1825 simple strings, instead of a sequence or an object containing the term. This 1826 is an incompatible change with earlier releases. The affected iterators are 1827 Enquire.matching_terms, Query.__iter__, QueryParser.stoplist and 1828 QueryParser.unstemlist. 1829 1830* The contents of an MSet can now be iterated in the standard Python way. 1831 The iteration will return MSetItem objects. The __contains__ and __getitem__ 1832 methods are also implemented, allowing the "in" and [] operators to work. 1833 MSet.__getitem__ is a synonym for MSet.get_hit. 1834 1835* MSet.get_hit() now returns an MSetItem object instead of an MSetIterator, 1836 so that lazy access to its attributes is supported. MSetItem has some 1837 deprecated methods which mimic the MSetIterator interface to allow old code 1838 to work without modification until release 1.1.0. 1839 1840* MSetItem provides access to the collapse_key and collapse_count, which 1841 weren't accessible from the sequence returned by the iterators before this 1842 release. 1843 1844* Out-of-range access to MSets will now raise an IndexError - it used to 1845 cause undefined behaviour (usually a crash). 1846 1847* The Python testsuite is now much more extensive, and supports colour output 1848 and verbosity levels, much like the C++ testsuite. Tests of deprecated 1849 features are separated out, so that they can easily be removed when the 1850 features are removed. The Python tests currently focus mainly on Python 1851 specific iterators and related functionality - general Xapian behaviour is 1852 tested by the C++ testsuite. 1853 1854* The pure Python code in the bindings now uses new-style classes, since we 1855 have required Python >= 2.2 since Xapian release 0.9.9. 1856 1857* Enquire.get_matching_terms is now deprecated - use Enquire.matching_terms 1858 instead. 1859 1860* The get_description() method which many classes support has been deprecated 1861 in favour of new more pythonic __str__ methods, so that the str() builtin can 1862 be used. get_description() is deprecated and scheduled for removal in 1.1.0. 1863 1864Ruby: 1865 1866* We no longer regard the Ruby bindings as "beta quality", so remove the 1867 warning from their documentation. 1868 1869* Document that that C++ operator() becomes the method "call" in Ruby. 1870 1871* Don't read termfreq in safe wrapper for Document::termlist_begin(). Don't 1872 read wdf in safe wrapper for Database::allterms_begin() (bug#133). 1873 1874Tcl: 1875 1876* Deprecated Xapian::Stem's stem_word() method in favour of apply(). 1877 1878Xapian-bindings 0.9.10.1 (2007-04-04): 1879 1880PHP: 1881 1882* Fix PHP5 class wrapper generation in a few cases for overloaded methods with 1883 default parameters. The most notable case was a missing Query constructor 1884 which meant that QueryParser was unusable. 1885 1886* Fix compilation of the PHP4 bindings with ZTS-enabled versions of PHP 1887 (which mostly seems to mean the MS Windows version). 1888 1889* Fix PHP5 crash on exit with ZTS-enabled versions of PHP (which mostly 1890 seems to mean the MS Windows version). 1891 1892* Add note to the documentation that PHP examples are written for CLI version 1893 of PHP, but that the bindings work with any version. 1894 1895* Add check to all PHP examples that they are being run under a CLI version of 1896 PHP. 1897 1898Python: 1899 1900* simpleexpand.py: Print each term's expand weight as a floating point value, 1901 not an integer. 1902 1903Ruby: 1904 1905* INSTALL: document how to install Xapian's Ruby bindings in your home 1906 directory. 1907 1908Xapian-bindings 0.9.10 (2007-03-04): 1909 1910Java: 1911 1912* Under Mac OS X, automatically look in the standard location for jni.h, 1913 and automatically rename the JNI library we build to ".jnilib", as is 1914 required by the OS X JVM. 1915 1916* java/README: Note success with Sun's JDK 1.5.0_06-b05, plus the requirement 1917 to add the linux header directory to the include path when using this JDK. 1918 1919* Add missing default constructor for RSet class - it's not much use without 1920 this! 1921 1922* Fix Enquire.getESet() to actually work. 1923 1924* Fix bug in ESetIterator.hasNext(). 1925 1926* Fix MatchDecider and ExpandDecider so subclassing in Java actually works. 1927 1928* Fix memory leak with some JVMs in the "Query from array" constructor. 1929 1930* Fix memory leak in Enquire.setQuery(). 1931 1932* SmokeTest.java: Add regression tests for RSet default constructor, 1933 Enquire.getESet(), ESetIterator.hasNext(), MatchDecider, ExpandDecider. 1934 Add feature tests for Enquire.getQuery(), and to make sure we get passed 1935 the right document in a java subclass of MatchDecider. 1936 1937* configure: Look for jni.h in $JAVA_HOME/include and $JDK_HOME/include if the 1938 respective variables are set. 1939 1940PHP: 1941 1942* Update the documentation to fix out-of-date information and document the 1943 differences between the PHP4 and PHP5 wrappers. 1944 1945* Update the examples to use the new Object Oriented API, and provide versions 1946 for both PHP4 and PHP5. 1947 1948* Add a "simpleexpand" example. 1949 1950* For PHP4, Xapian::DB_CREATE_OR_OPEN should be wrapped as 1951 Xapian_DB_CREATE_OR_OPEN not DB_CREATE_OR_OPEN, so wrap it with the 1952 new name, but keep the old name for now for backward compatibility. 1953 1954* configure: Try `$(PHP_CONFIG) --php-binary` when looking for a PHP 1955 interpreter - this works with PHP5. 1956 1957* configure: Remove the sanity check for PHP_EXTENSION_DIR added in Xapian 1958 0.9.8 - if Xapian is the first PHP extension to be installed, the extension 1959 directory may not exist and "make install" will create it. 1960 1961* configure: If zend.h isn't found and configure was run with "--with-php", 1962 exit with an error rather than automatically disabling PHP support. 1963 1964Python: 1965 1966* Fix a problem which preventing building for Python 2.5 on 64 bit platforms. 1967 1968Packaging: 1969 1970* RPMs: Add support for passing "--without python" to rpmbuild. Document the 1971 various "--without" options in a comment at the start of the .spec file. 1972 1973* RPMs: Remove "." from the end of the Summary. 1974 1975Xapian-bindings 0.9.9 (2006-11-09): 1976 1977Documentation: 1978 1979* Ship our custom INSTALL file rather than the generic one from autoconf which 1980 we've accidentally been shipping instead since 0.9.5. 1981 1982General: 1983 1984* Wrap Flint::open() and Flint::open_writable(). 1985 1986* configure: Require SWIG 1.3.30 (1.3.30 isn't out yet, but 1.3.30rc1 is 1987 suitable). 1988 1989Python: 1990 1991* Generate the bindings using SWIG 1.3.30rc1 which fixes a build error on 64 1992 bit platforms with Python 2.5. 1993 1994Packaging: 1995 1996* RPMs: Prevent binaries getting an rpath for /usr/lib64 on FC6. 1997 1998* RPMs: The Python bindings now require Python >= 2.2. 1999 2000Portability: 2001 2002* configure: Remove unnecessary backticks from tclsh version test. 2003 2004Xapian-bindings 0.9.8 (2006-11-02): 2005 2006General: 2007 2008* Wrap the "prog" form of Remote::open() (which is suitable for general purpose 2009 use as of 0.9.7) and the Remote::open_writable() methods (new in 0.9.7). 2010 2011* The C++ method QueryParser::parse_query() current throws "std:string" 2012 exceptions if there's a parse error. Previously the bindings didn't catch 2013 these. Now we catch them and handle them as if they were exceptions of 2014 type Xapian::QueryParserError (in anticipation of this changing in 2015 xapian-core). Added testcases for this for PHP, Python, and C#. 2016 2017* configure: Note that SWIG is only useful for Xapian developers in --help 2018 output. 2019 2020* configure: If we failed to find any languages to build for, give a more 2021 helpful message. 2022 2023CSharp: 2024 2025* SmokeTest.cs: Fix warning about unused variable in OP_ELITE_SET check. 2026 2027Java: 2028 2029* configure: Fix check for jni.h in /usr/lib/jvm/java-gcj/include to actually 2030 work rather than using the cached failure of the first jni.h check. 2031 2032* SmokeTest.java: Fix check for value of Query.OP_ELITE_SET. 2033 2034* SmokeTest.java: Avoid gcj "set but not used" warning. 2035 2036PHP: 2037 2038* configure: Sanity check PHP_EXTENSION_DIR and PHP_INC. 2039 2040* smoketest4.php,smoketest5.php: Check the exception message given by the 2041 DocNotFoundError testcase. 2042 2043Python: 2044 2045* Drop support for Python 2.1. 2046 2047Xapian-bindings 0.9.7 (2006-10-10): 2048 2049Documentation: 2050 2051* NEWS: Fix the recent headings which said "Xapian-core" to say 2052 "Xapian-bindings". 2053 2054General: 2055 2056* Specify required automake version in the call to AM_INIT_AUTOMAKE in 2057 configure.ac. 2058 2059* If we're building with GCC 4.0 or higher, pass -fvisibility=hidden when 2060 compiling SWIG generated code which makes the compiled modules a few percent 2061 smaller and perhaps a little faster. 2062 2063* Wrap the newly implemented transaction API. 2064 2065* configure: Use "-fno-strict-aliasing" when compiling all the SWIG bindings 2066 (this option was supposed to be used to compile the Python bindings from 2067 0.9.3 onwards, but this wasn't actually working correctly). 2068 2069* Use CVS snapshot of SWIG to generate files (fixes bugs #83, #85). 2070 2071* In maintainer-mode, "make clean" now removes the SWIG generated files 2072 which would otherwise only be removed on "make maintainer-clean". 2073 2074CSharp: 2075 2076* Xapian::MatchDecider can now be subclassed in C#. 2077 2078* The value of OP_ELITE_SET was wrong in C# which caused an error if you tried 2079 to use it. This has been fixed and a regression test added. 2080 2081* SmokeTest.cs: Added exception handling test. 2082 2083Java: 2084 2085* Correct two misuses of delete to delete[]. Fixes bug#78. 2086 2087* configure: We need to look for jni.h in /usr/lib/jvm/java-gcj/include on some 2088 Debian and Ubuntu boxes at least. 2089 2090PHP: 2091 2092* We now generate class wrappers for PHP5. 2093 2094* We now generate proxy classes for PHP4, which is an incompatible change 2095 from previous versions of xapian-bindings. A perl script to upgrade 2096 your scripts is included. 2097 2098* smoketest.php: 2099 2100 + Now that we're throwing PHP exceptions with PHP5 we need separate versions 2101 of the exception handling test for PHP4 and PHP5. Fixes bug#76. 2102 2103 + Rely on xapian.php to load the extension module for us. 2104 2105 + Fix error messages to show PHP code, not Python code. 2106 2107* When running smoketest.php, pass the "-q" option to php, which suppresses 2108 HTTP header output for PHP < 4.3 and is ignored for compatibility by more 2109 recent versions of PHP. 2110 2111* configure: Fix typo - PHP_tried should be PHP_found. This might have caused 2112 the PHP interpreter not to be found in some cases when it was actually 2113 available, but it's only used to run the smoketest not for building the 2114 bindings. 2115 2116Python: 2117 2118* configure: Fixed check for PYTHON_PATHSEP to use $PYTHON rather than python, 2119 and also report the check and its result to the user. 2120 2121* python/Makefile.am: xapian.pyc can't be generated until _xapian.la has been 2122 built, so add an explicit dependency so that this works reliably in parallel 2123 builds. Fixes bug#77. 2124 2125* In examples and documentation, don't call the MatchDecider class/object 2126 "matcher", since we use the term "matcher" to mean something else in 2127 the library documentation. 2128 2129* smoketest.py: 2130 2131 + Add test of exception handling. 2132 2133 + Add test that MatchDecider can be subclassed successfully. 2134 2135* Wrap TermIterator::skip_to() so that it can be used from the TermIter 2136 pythonic iterator class. 2137 2138Ruby: 2139 2140* Xapian::MatchDecider can now be subclassed in Ruby. 2141 2142* configure: Look for ruby interpreter as "ruby1.8" since it's called that 2143 (with no "ruby" alias) on Ubuntu dapper at least. 2144 2145* simplesearch.rb: Lowercase terms before stemming. "First ten" is inaccurate 2146 since we may have less than 10 matches, so say "1-<N>" instead. 2147 2148* simplematchdecider.rb: Implemented. 2149 2150Tcl: 2151 2152* Implement saner exception handling for Tcl and document it. 2153 2154* smoketest.tcl: 2155 2156 + Add check that xapian::Query_OP_ELITE_SET has the right value. 2157 2158 + Rework how the smoketest gets run to eliminate special code for using 2159 uninstalled bindings from smoketest.tcl itself. This allows the smoketest 2160 to be run using installed bindings, and also makes it a better example 2161 program. 2162 2163 + Add test for exception handling. 2164 2165 + Send error messages to stderr. 2166 2167 + Add comment about Tcl storing zero bytes as \xc0\x80. 2168 2169* simpleindex.tcl,simplesearch.tcl: Print $errorCode in the exception handler. 2170 2171* For SVN snapshots, remove any _svn6789 suffix from the Xapian version number 2172 used for the Tcl bindings. 2173 2174Xapian-bindings 0.9.6 (2006-05-15): 2175 2176Documentation: 2177 2178* INSTALL: Add section describing how to install without root access. 2179 2180General: 2181 2182* Updated to reflect the renaming of Xapian::xapian_version_string and 2183 companions to Xapian::version_string. 2184 2185* Wrap optional length parameter to Enquire::set_query(). 2186 2187* In PHP, Python, and Tcl bindings, rename get_document_id to get_docid for 2188 consistency. Keep get_document_id as an alias for now for backward 2189 compatibility. 2190 2191* Fixed ESet::empty() to return bool instead of Xapian::termcount (this was 2192 probably a largely harmless error). 2193 2194* Stop SWIG from adding exception handling wrappers to the calls which return 2195 version strings, since they can't throw exceptions. 2196 2197* xapian.i: Removed superfluous "const" from return type "docid" which is just 2198 a typedef for an unsigned integer type. 2199 2200* configure: Add some missing "checking ..." messages so the user has more idea 2201 what is going on. 2202 2203* Language specific util.i files can now define 2204 XAPIAN_TERMITERATOR_PAIR_OUTPUT_TYPEMAP and 2205 XAPIAN_MIXED_VECTOR_QUERY_INPUT_TYPEMAP to indicate which optional typemaps 2206 are provided for each language. This avoids needing to keep this 2207 information in two different places. 2208 2209* xapian.i: Uncomment commented-out parameter names and fix duplicate 2210 parameter names (for the benefit of bindings which use the parameter names, 2211 like the OO PHP5 patch for SWIG I'm working on...) 2212 2213Portability: 2214 2215* configure: Fix warning flags passed for Intel C++ compiler. 2216 2217CSharp: 2218 2219* We now support building with Portable.NET. 2220 2221* Note that the passing of strings from C# into Xapian and back isn't currently 2222 zero byte safe. If you try to handle string containing zero bytes, you'll 2223 find they get truncated at the zero byte. 2224 2225* C# bindings now build and pass tests when srcdir != builddir. 2226 2227* In configure.ac, the "#" in "C#" seems to sometimes confuse autoconf so 2228 always say "CSharp" instead. 2229 2230* Not all machines are set up to run compiled C# programs when invoked 2231 directly, so get configure to check if we can, and otherwise see if using 2232 mono or ilrun works. If not, just skip the C# tests. 2233 2234* configure: If "mcs" isn't found, we now look for a CSharp compiler as "gmcs" 2235 (alternative name for "mcs"), "cscc" (Portable.NET), and then "csc" 2236 (Microsoft, but we check it isn't the unrelated Chicken csc program.) 2237 2238* Move the C# specific %rename list to csharp/util.i. 2239 2240* Store the strong name key in the key container so we reuse it for later 2241 builds. 2242 2243* Wrap the version functions as more sensible names and document them (and 2244 continue to provide the older undocumented names for now just in case anyone 2245 was using them.) 2246 2247* Set the version of XapianSharp.dll correctly when building a snapshot from 2248 SVN and set informational attributes (which e.g. MS Windows Explorer shows.) 2249 2250* SmokeTest.cs: Add test of version functions. 2251 2252Guile: 2253 2254* The Guile bindings don't work and aren't being actively worked on, so we're 2255 no longer including them in the distributed tarball to avoid disappointing 2256 users who notice a "guile" subdirectory. It also makes the download smaller. 2257 2258Java: 2259 2260* Simplify (and improve portability of) run-java-test by using "libtool 2261 --mode=execute"'s -dlopen option. 2262 2263* Need to make sure "built" subdirectory exists or building from clean fails. 2264 2265* Fix "make check" to work when srcdir != builddir. 2266 2267PHP: 2268 2269* Using "php -c myphp.ini" still loads the system php.ini (at least for PHP 2270 4.3.10), so use "php -n" and then set the options we specifically want using 2271 "-d". 2272 2273* Fix the smoketest invocation to work better when srcdir != builddir. 2274 2275* Look for PHP interpreter first in prefix given by "php-config --prefix". 2276 2277* Fix SWIG_RuntimeError to be handled as an exception in PHP5. 2278 2279* simplesearch.php: MAX_PROB_TERM_LENGTH isn't used here so remove it. 2280 2281* smoketest.php: 2282 2283 + Add test for version reporting functions 2284 2285 + If a test fails, say which one to aid debugging. 2286 2287 + Added simple test that zero-bytes are handled correctly when passing 2288 strings to and from Xapian. 2289 2290Python: 2291 2292* README: Note that Python bindings have been built with MSVC. 2293 2294* Install xapian.py and xapian.pyc as _DATA not _SCRIPTS because we don't want 2295 to make them executable (they don't have a #! line). 2296 2297* simplematchdecider.py: Rename confusingly-named "mymatcher" to 2298 "mymatchdecider". Add description of what this example does. 2299 2300* simpleexpand.py: Don't define MAX_PROB_TERM_LENGTH as it isn't used. 2301 2302* smoketest.py: Added simple test that zero-bytes are handled when passing 2303 strings to and from Xapian. 2304 2305Ruby: 2306 2307* Added new Ruby bindings from Paul Legato. 2308 2309Tcl: 2310 2311* smoketest.tcl: 2312 2313 + Add test for version reporting functions 2314 2315 + If a test fails, say which one to aid debugging. 2316 2317 + Added simple test that zero-bytes are handled correctly when passing 2318 strings to and from Xapian. 2319 2320Xapian-bindings 0.9.5 (2006-04-08): 2321 2322Documentation: 2323 2324* HACKING,README: Split off HACKING to contain information which is only 2325 relevant to those wishing to modify the bindings. 2326 2327General: 2328 2329* SWIG-based bindings are now built with SWIG 1.3.29. 2330 2331* configure: Report which languages we're building bindings for just before 2332 configure finishes. 2333 2334* xapian.i: Make the stub definitions for disabled backends static. 2335 2336* configure: Don't quote $PHP in AC_PATH_PROGS to avoid "checking for ... no" 2337 message. 2338 2339* xapian.i: Wrap new method Enquire::set_sort_by_relevance_then_value(). 2340 2341Packaging: 2342 2343* RPMs: xapian-bindings.spec.in: Use "%{_libdir}" instead of "/usr/lib" for 2344 Python bindings to support 64 bit systems. 2345 2346* RPMs: Package the C# bindings. 2347 2348Portability: 2349 2350* java/run-java-test: Fix to work on platforms where LD_LIBRARY_PATH has a 2351 different name. 2352 2353* configure: Detect Intel's C++ compiler and set suitable warning flags to 2354 avoid noise from compiling generated code. 2355 2356CSharp: 2357 2358* Rename Database::GetDoccount() to Database::GetDocCount() for consistency. 2359 2360Guile: 2361 2362* configure: Disable --with-guile since Guile support doesn't currently work. 2363 2364Java: 2365 2366* Override deprecation warnings for Xapian methods/functions/etc. 2367 2368* SmokeTest.java: Write a helpful diagnostic to stderr if a check fails so we 2369 have some idea what went wrong! 2370 2371* Rework how we include headers to get hash_map to avoid compiler warnings 2372 since it's usually not in the std namespace nowadays. 2373 2374* Previously the "all" target also ran the "install" target, but this has 2375 proved very problematic, so change "make check" to use the uninstalled JNI 2376 glue library, and update the instructions to say that "make install" is now 2377 required. 2378 2379* Use JAVA_PATHSEP when specifying the classpath for compiling .java files to 2380 .class files. 2381 2382* README: Note that some platforms need "-pthread" or similar flags. 2383 2384* Add a new Query constructor wrapper which take an OP_xxx and an array of 2385 Query objects. 2386 2387* Compiling a .java file to a .class file now deletes the .jar file to ensure 2388 it gets updated. 2389 2390PHP: 2391 2392* php -n avoids reading any php.ini, but the compiled in default may be to 2393 enable the dubiously named "safe_mode" which prevents dl() being used so 2394 "make check" fails. So instead provide a very simple php.ini which turns off 2395 safe_mode and makes sure enable_dl is on. 2396 2397* Fix handling of bool parameters when resolving overloaded methods and/or 2398 default arguments. This fixes Enquire_sort_by_value() to work when the 2399 second argument is specified. Added regression test for this case. 2400 2401* simpleindex.php: Lowercase terms before stemming. Fixes bug#73. 2402 2403* Fix segmentation fault when PHP "Null" is passed where C++ wants an object 2404 passed by reference. Fixes bug#74. 2405 2406* simpleindex.php: Flushing after every call to WritableDatabase_add_document 2407 isn't required and will kill performance, so stop doing it. Fixes bug#75. 2408 2409Python: 2410 2411* Use the fairly new "swig -O" option for the "modern" python bindings as 2412 it generates a smaller glue library and runs faster. Some of the features 2413 enabled also work on python 2.1, so enable these for the "olde" bindings. 2414 2415* configure: Catch the case where the user has python installed but not the 2416 module "distutils.sysconfig" and explain that they probably need to install a 2417 python-dev or python-devel package. 2418 2419* "make check" now works in VPATH builds. 2420 2421* smoketest.py: If a check fails, write a diagnostic message to stderr so we 2422 know which check it was! 2423 2424* smoketest.py: catch Exception objects and print them. 2425 2426* smoketest.py: Add feature tests for the various pythonic iterator 2427 wrappers 2428 2429* python/docs/bindings.html: Document the Pythonic iterators. 2430 2431* Fix TermIter not to try to read termfreqs or positions if they aren't 2432 meaningful for the current TermIter. 2433 2434Xapian-bindings 0.9.4 (2006-02-21): 2435 2436Documentation: 2437 2438* COPYING: Updated FSF address. 2439 2440General: 2441 2442* Wrap Stopper::get_description(). 2443 2444* Wrap xapian_version_string() and related functions. 2445 2446Portability: 2447 2448* If we're overriding MACOSX_DEPLOYMENT_TARGET then override it for commands 2449 run from "make" too. 2450 2451PHP: 2452 2453* Fix so that generated code compiles with ZTS-enabled PHP (which is the 2454 default on Windows). 2455 2456Python: 2457 2458* smoketest.py: Test wrapping of xapian_version_string() and related functions. 2459 2460Xapian-bindings 0.9.3 (2006-02-16): 2461 2462Documentation: 2463 2464* README: Updated and expanded (now covers supported platforms, and lists 2465 criteria which bindings for an additional language need to fulfil before 2466 we're likely to accept them). 2467 2468* INSTALL: Updated and improved. 2469 2470* TODO: Move C#-specific TODO to top level so we can track to-do items for 2471 all languages. 2472 2473General: 2474 2475* configure: Change how the user selects which bindings to build. If no 2476 --with* arguments are passed, then we default to building bindings we detect 2477 the required tools for (as before). But instead of requiring the user to 2478 deselect all bindings they don't actually want, we now let them select the 2479 bindings they do want. So "./configure --with-python" will only build the 2480 python bindings (and will fail if the required tools aren't installed). 2481 2482* Every wrapped method contains exception handling code. The bulk of this 2483 is now factored out into a single helper function, which cuts the compile 2484 time by around a factor of 3 and halves the size of the stripped library 2485 (figures are for Tcl on x86_64). 2486 2487* configure: Rework how XAPIAN_CXXFLAGS is passed through so that the user can 2488 override CXXFLAGS in the make invocation like so: make CXXFLAGS=-g 2489 2490* configure: Bump required SWIG version to 1.3.28 and drop the special 2491 requirement for 1.3.22 for PHP (hurrah!) Note that you don't need 2492 SWIG to install the bindings - SWIG is run by the Xapian developers 2493 so these updated requirements are only relevant if you want to modify 2494 the bindings. 2495 2496* Eliminate separate Makefile in each examples subdirectory, which makes the 2497 build system simpler, smaller, and a little faster. 2498 2499* xapian.i: Include default constructors for all classes so that SWIG knows it 2500 doesn't have to use SwigValueWrapper for them, which makes the bindings code 2501 a bit smaller and faster. Also stop SWIG using SwigValueWrapper for 2502 std::pair<...>. 2503 2504* configure: Document special environmental variables which configure 2505 recognises. Enhance handling of environmental variables so you can 2506 e.g. './configure PYTHON=python23' (previously you had to give a full 2507 path in such environmental variables or they would be ignored. 2508 2509Packaging: 2510 2511* RPM spec file: 2512 2513 + Automatically detect the python version. 2514 2515 + Rename "php4" references to "php". 2516 2517 + Automatically detect the PHP extension directory. 2518 2519 + Relax Tcl requirement to >= 8.1, since that's what we actually require. 2520 2521 + Add support for "--without php" and --without tcl8" options to rpmbuild. 2522 2523Portability: 2524 2525* configure: On Mac OS X, ensure MACOSX_DEPLOYMENT_TARGET is set to at least 2526 10.3. This is required to link the bindings, and it doesn't seem to be 2527 possible to link them on 10.1 or 10.2 anyway. 2528 2529* configure: Add -lstdc++ to XAPIAN_LIBS if we're using GCC. OpenBSD needs it 2530 to be explicitly specified and libtool correctly handles platforms where it 2531 would have been implicitly linked with anyway. 2532 2533* Try to enable PHP bindings to build out of the box on cygwin (needs testing). 2534 2535* configure: Add missing ";;" on the last alternative in some case statements. 2536 2537* Only pass -no-undefined on platforms where it is required in order to link a 2538 shared library at all (it causes problems on Mac OS X in some cases). 2539 2540CSharp: 2541 2542* This release includes a lot of improvements for the C# bindings. They're 2543 now pretty much on a par with the other language bindings. 2544 2545* Added documentation and examples. 2546 2547* Method and function names are now renamed to match C# conventions 2548 (e.g. from get_description() to GetDescription()). This is obviously an 2549 incompatible change, but the C# bindings haven't been suitable for real world 2550 use prior to this release. 2551 2552* Optional parameters are now wrapped so no longer need be specified 2553 explicitly. 2554 2555* Overload ++ and -- for iterators. 2556 2557* Overload == and != for iterators. Now comparisons with the end iterator 2558 work as expected, and SmokeTest passes. 2559 2560* SmokeTest now reports exceptions verbosely. 2561 2562* Xapian::InMemory::open() is now wrapped as Xapian.InMemory.Open(), and 2563 similarly for other database factory functions. 2564 2565* Heed compatibility warnings from mcs and use different forms for 2566 command-line switches to the C# compiler (presumably for compatibility with 2567 Microsoft's compiler, though the warnings don't actually say that 2568 explicitly). 2569 2570Guile: 2571 2572* Rewrote guile/util.i. The old version caused SWIG warnings and wasn't 2573 zero-byte safe. The guile bindings are still a long way from actually 2574 working though. 2575 2576Java: 2577 2578* Wrap optional second parameter (query length) to Enquire::set_query(). 2579 2580* configure now probes for the Java path separator, which we then use to 2581 separate entries in the java -classpath command line option so we can 2582 build on platforms where it isn't ":". 2583 2584* SmokeTest.java: Expand to test more features. 2585 2586* java/README: 2587 2588 + Note that the bindings work with the Eclipse javac and GIJ 4.0.1. 2589 2590 + Add note about how wrapped methods are named. 2591 2592* Query.java: OP_* code 9 no longer exists, so add it to those rejected by the 2593 validity check. 2594 2595* Query.java: Comment out unused code. 2596 2597* Fixed memory leak in Query-from-array-of-strings constructor. 2598 2599* Eliminate the "_errormap" hashmap - we don't need to use RTTI here, since 2600 Xapian::Error subclasses can tell you their typename directly (using 2601 get_type()). 2602 2603PHP: 2604 2605* Some problems with overloaded methods in PHP have been fixed by a major 2606 overhaul of SWIG's PHP support. So we no longer rename such methods 2607 for PHP. This is an incompatible change, but it's easy to update your 2608 PHP scripts (just change new_Query_from_term_pair -> new_Query, etc). 2609 2610* Previously the documentation and simpleindex.php suggested that you 2611 should call delete_CLASS(). This was incorrect and resulted in a 2612 double-free() in some cases, so we've fixed the documentation and 2613 examples and eliminated the delete_CLASS() wrappers. This is another 2614 incompatible change, but again easy to update for. 2615 2616* We now support PHP5 as well as PHP4, so the configure test now looks 2617 for either and all references to "PHP4" or "php4" have been adjusted. 2618 2619* PHP5 supports exceptions, so throw exceptions under PHP5. For PHP4 2620 we now handle DocNotFoundError and FeatureUnavailableError by issuing a 2621 warning and making the method return "Null". This isn't ideal, but it's 2622 the best we can easily do without proper exceptions. 2623 2624* For the smoketest, instead of using "$(PHP) -c $(srcdir)" and having an 2625 empty php.ini in srcdir (which we were failing to distribute anyway), use 2626 "$(PHP) -n" which tells PHP not to use any php.ini file. 2627 2628* Update PHP documentation to include new features. 2629 2630* Redo Xapian section in phpinfo() to look more like most other modules. 2631 2632* You can now construct a Query object from an array of strings or Query 2633 objects (or even a mixture). 2634 2635* PHP examples now give a more useful error message if a database can't be 2636 opened. 2637 2638* smoketest.php: Expanded the tests performed, including feature tests for 2639 the new Query-from-list constuctor. 2640 2641* simplesearch.php: Use newly wrapped Query-from-list constructor. 2642 2643* Use std::string::data() instead of c_str() as it may be more efficient for 2644 some STL implementations. 2645 2646* Enquire::get_matching_terms() now generates the PHP list directly from the 2647 TermIterator rather than constructing a temporary C++ std::list, which is 2648 faster and requires less temporary memory. 2649 2650Python: 2651 2652* The Python constructor xapian.Query(OP, LIST_OF_STRINGS [, PARAM]) works 2653 once again (it has been broken since 0.9.0). Added a regression test to 2654 help keep this working. 2655 2656* Enhance the above constructor to accept any Python sequence (e.g. a tuple 2657 instead of a list). Also the sequence can contain xapian.Query objects or 2658 strings or a mixture. Documented these enhancements. 2659 2660* smoketest.py: Expanded the tests performed. 2661 2662* Convert C++ strings to python ones in a zero-byte clean way. 2663 2664* Added more error checking of the results of calls into the python 2665 interpreter. 2666 2667* If using GCC, compile the python bindings with -fno-strict-aliasing (python 2668 itself is compiled with this option to avoid problems and it appears we ought 2669 to use it too to avoid the risk of hitting the same problems, although I'm 2670 not aware of anyone actually encountering such problems). 2671 2672* When making xapian.pyc, "import _xapian;" before we "import xapian;" to 2673 avoid creating a broken xapian.pyc is the shared library can't be loaded for 2674 some reason. 2675 2676* Enquire::get_matching_terms() now generates the Python list directly from the 2677 TermIterator rather than constructing a temporary C++ std::list, which is 2678 faster and requires less temporary memory. 2679 2680Tcl: 2681 2682* Terms with a leading underscore now work (thanks to changes in SWIG). 2683 2684* Implement custom typemaps for Tcl, so that you can now construct a Query from 2685 a list of Query objects and/or strings, and Enquire::get_matching_terms is 2686 now wrapped. 2687 2688* simplesearch.tcl: Use the new Query from list constructor. 2689 2690* simplesearch.tcl: Fix to lowercase and stem query terms. 2691 2692* simpleindex.tcl: Tweak regex to not tokenise "foo--bar" as "foo-" and "bar". 2693 2694* simpleindex.tcl,simplesearch.tcl: Need explicit "xapian::" on constants. 2695 2696Xapian-bindings 0.9.2 (2005-07-15): 2697 2698General: 2699 2700* Added wrappers for new optional flags argument to QueryParser::parse_query(). 2701 2702CSharp: 2703 2704* Enhance configure to check that "mcs" is actually GNU Mono mcs and not 2705 another tool with the same name. 2706 2707Java: 2708 2709* Include SmokeTest.java in the distribution so "make check" works. 2710 2711* Added success report for Sun java 1.4.1_01a. 2712 2713Python: 2714 2715* When converting a python list to vector<string> we know the number of elements 2716 so reserve that number in the vector. 2717 2718Xapian-bindings 0.9.1 (2005-06-06): 2719 2720General: 2721 2722* Releases are now created using libtool 1.5.18 and automake 1.9.5. 2723 2724Tcl: 2725 2726* Updated documentation to include information from Michael Schlenker about how 2727 to delete a database object such that the destructor gets called. 2728 2729Xapian-bindings 0.9.0 (2005-05-13): 2730 2731General: 2732 2733* Updated SWIG-based bindings to latest Xapian API 2734 2735* Improve support for building the bindings on MS Windows: 2736 2737 + Provide stub versions of any backend functions which are disabled in the 2738 library we're wrapping to avoid a link failure on MS Windows (where the 2739 remote backend is automatically disabled). These stubs just throw 2740 Xapian::FeatureUnavailableError. 2741 2742 + Add -no-undefined to *_la_LDFLAGS. 2743 2744 + Use $(PATH_SEPARATOR) or Python's os.pathsep instead of ':' where 2745 appropriate. 2746 2747 + For python, paths for finding headers and installing libraries are now 2748 handled so they work on MS Windows; an extra static library needs to be 2749 linked in too. 2750 2751* Wrap the Muscat36 Database factory functions (easy to do now we have stubs 2752 for disabled backends). 2753 2754* Don't wrap MSet::max_size() as it's there for STL compatibility rather than 2755 being useful functionality. 2756 2757* configure: Fix all SWIG warnings and pass -Werror to SWIG so any which get 2758 introduced in future get fixed. 2759 2760* configure: Fix version test to allow for _svn6789 suffix which SVN snapshots 2761 have. 2762 2763* Generate SWIG bindings with SWIG 1.3.24 (except for PHP which we still use 2764 1.3.22 for as more recent versions don't work with methods with optional 2765 arguments - the arguments become non-optional!) 2766 2767Guile: 2768 2769* configure: Disable guile by default, as it needs more work. 2770 2771Java: 2772 2773* Updated to compile against 0.9.0 API. 2774 2775* Added missing make rule to build SmokeTestWrap.class to "make check" works. 2776 2777* Wrap optional parameters to Query(term) constructor. 2778 2779PHP4: 2780 2781* For PHP4, rename default Database constructor to Database_empty 2782 instead of suppressing the much more useful Database(const string &path) 2783 constructor. 2784 2785* Use a blank config file when running PHP4 tests to avoid problems 2786 when the bindings are already installed as an extension which is 2787 loaded automatically in the default config. 2788 2789* configure.ac: If configure can't find the PHP interpreter (as php4 or php), 2790 it probably just means it's not in PATH. We only need it for running tests, 2791 so substitute a trivial shell script which just exits with code 77 so PHP 2792 tests are skipped (previously we substituted "missing" which caused the tests 2793 to fail). 2794 2795Python: 2796 2797* Added Python-style iterators ESetIter, TermIter, PostingIter, PositionIter, 2798 and ValueIter. 2799 2800* configure: If python is found, also check that Python.h exists (it may not be 2801 if the python-dev package (or similar) isn't installed). 2802 2803Xapian-bindings 0.8.5.1 (2005-02-23): 2804 2805General: 2806 2807* configure: Run compiler feature tests using the C++ compiler, not the C 2808 compiler. 2809 2810* Allow bindings version to have an extra "patchlevel", yet still match with 2811 corresponding xapian-core version (e.g. 0.8.5.1 and 0.8.5); 2812 2813Java: 2814 2815* Added a missing .java source file and removed several unused ones. 2816 2817* Fixed several glitches in the java bindings automake build system. 2818 2819* Use "-Wno-unused" when compiling JNI C++ code to ignore harmless 2820 warnings in generated code (we were carefully passing "-Wunused" 2821 which is the opposite of what is needed!) 2822 2823* Fixed a couple of warnings from GCJ. 2824 2825* Wrapped a few missing methods added since Eric created the bindings. There 2826 are still some missing methods - there's now a (probably incomplete) list in 2827 java/README. 2828 2829* Added various useful bits of information to java/README. 2830 2831* Tweaked SimpleSearch.java to be more like the C++ version. 2832 2833PHP4: 2834 2835* 0.8.5 was generated with SWIG 1.3.24, but PHP support is broken there so 2836 we now generate the PHP bindings with SWIG 1.3.22 and everything else with 2837 a more recent version. 2838 2839* configure: Check for "php" as a program name as well as "php4", and 2840 fall-back to missing so the error message from "make check" is better. 2841 2842Xapian-bindings 0.8.5 (2004-12-23): 2843 2844General: 2845 2846* INSTALL: Added non-generic installation instructions. 2847 2848Python: 2849 2850* Fixed bytecode compilation of xapian.py. xapian.pyc was being generated in 2851 the same directory as xapian.py, but Makefile.am was looking in current 2852 directory when installing it. Additionally, VPATH builds were broken. 2853 These problems were introduced by changes in 0.8.4. 2854 2855Xapian-bindings 0.8.4 (2004-12-08): 2856 2857General: 2858 2859* README: Now clearly says which languages we currently support, which people 2860 are working on, etc. 2861 2862* Instead of requiring the user to have a really recent SWIG installed, ship 2863 the files SWIG generates. Disable all the SWIG rules unless configure is run 2864 with --enable-maintainer-mode to make sure they aren't triggered accidentally 2865 (e.g. by make with dodgy VPATH). 2866 2867* configure: Require SWIG 1.3.22 or higher (but note that SWIG is no longer 2868 needed if you just want to install the bindings). 2869 2870* Wrap the new Database and WritableDatabase constructors which replace 2871 Auto::open(). 2872 2873* It turns out that we do need to wrap MSet::MSet() (wrapping removed in 0.8.2) 2874 (for example, simpleexpand.py needs it). 2875 2876* In the Query constructor which takes a vector of terms, only call set_window 2877 if window is non-zero. Otherwise things go wrong if we're passed an empty 2878 vector. 2879 2880* Second argument to Document::add_posting() isn't optional, but xapian.i 2881 indicated that it was. 2882 2883* xapian.i: Added wrappers for Xapian::Weight and standard subclasses. 2884 Deriving your own weight class in the scripting language isn't currently 2885 supported. 2886 2887* xapian.i: %name is deprecated, so use %rename instead. This also works 2888 around a bug in SWIG 1.3.23. 2889 2890* configure: Removed pointless probe for a C compiler - everything we compile 2891 is C++. 2892 2893* configure: Reinstated the check that the bindings version matches the version 2894 of the xapian library. It was added in 0.8.2, but accidentally removed in 2895 0.8.3. 2896 2897* Use newly added option `xapian-config --swigflags` which (a) avoids always 2898 passing -I/usr/include which could cause problems if we're using a Xapian 2899 install not in /usr and there's another one in /usr and (b) avoids problems 2900 if `xapian-config --cxxflags` contains flags other than -I<something>. 2901 2902CSharp: 2903 2904* Richard Boulton has put together bindings for C#. These build successfully 2905 with the Mono tools, but the smoketest currently fails. Unclear if the 2906 problem is the bindings or the smoketest code. 2907 2908Guile: 2909 2910* The guile bindings now build successfully, so we've enabled the guile 2911 detection machinery in configure. They're untested though (we don't 2912 know guile!) so success or failure reports are encouraged! 2913 2914PHP4: 2915 2916* Mention the example scripts near the start of the documentation, not right at 2917 the end. 2918 2919* Remove documentation explicitly saying how we wrap Xapian::QueryParser and 2920 Xapian::Stem since we wrap them exactly as we wrap everything else we don't 2921 mention! 2922 2923Python: 2924 2925* Make overloaded Query(Query::op, vector<string>*, termpos) constructor 2926 work in Python. 2927 2928* Changed examples to use the newly wrapped Query from list of terms ctor. 2929 2930* Mention the example scripts near the start of the documentation, not right at 2931 the end. 2932 2933* python/Makefile.am: Added xapian_wrap.h as a target for the rule which runs 2934 SWIG. 2935 2936* Remove documentation explicitly saying how we wrap Xapian::QueryParser and 2937 Xapian::Stem since we wrap them exactly as we wrap everything else we don't 2938 mention! 2939 2940* Mention simpleexpand example in documentation. 2941 2942* Examples now report messages for Xapian exceptions. 2943 2944* Removed MAX_PROB_TERM_LENGTH from example scripts which don't use it. 2945 2946* Make the example MatchDecider exclude documents matching a value, rather than 2947 a term. The latter is a very inefficient way to do what AND_NOT does, and we 2948 don't want examples to mislead like that. 2949 2950* python/docs/bindings.html: Note that you can construct a query 2951 from a list of terms, even if you can't from a list of queries. 2952 Add HTML links to the examples. 2953 2954* simpleindex.py: Trim spaces from the start as well as from the end of each 2955 line. Simplify the loop slightly. 2956 2957Tcl: 2958 2959* Wrap in a tcl8 namespace "Xapian". 2960 2961* Added a smoketest. 2962 2963* Translated simpleindex and simplesearch into Tcl. 2964 2965* Set the Tcl package version. 2966 2967* Create pkgIndex.tcl so the package can be loaded in the usual Tcl way. 2968 2969* Install in "xapian<VERSION>" directory in the conventional Tcl way. 2970 2971* Added documentation for tcl8 bindings. 2972 2973* Use the TCL_STUBS mechanism so that compiled extensions are portable between 2974 different versions of Tcl. This needs Tcl 8.1, so bump the required Tcl 2975 version (was 8.0). 2976 2977* configure.ac: Noted that the bindings can easily be compiled for use with 2978 Tcl 8.0, in case anybody needs that for some reason. 2979 2980* Don't wrap the factory functions which return a quartz WritableDatabase as 2981 the destructor never gets called so changes aren't flushed and the lock file 2982 isn't removed. 2983 2984Xapian-bindings 0.8.3 (2004-09-20): 2985 2986General: 2987 2988* Fixed mismatching versions of libtool used to produce configure and 2989 ltmain.sh. The obvious symptom was ".so" missing from the shared object 2990 names. 2991 2992* RPM spec file contributed by Fabrice Colin. Currently this packages Python, 2993 PHP4, and Tcl bindings. 2994 2995Java: 2996 2997* Pass -classpath to javac to fix build problems. 2998 2999* Make sure errors subdirectory is built before we try to build the jar file. 3000 3001* Fixed "make install" to not give libtool error. 3002 3003PHP4: 3004 3005* Include PHP4 documentation and exmples in the tarball. 3006 3007* Reverted "Use special SWIG PHP ldflags when linking the PHP glue library." 3008 change from 0.8.2 - it turns out we only need to pass these flags if we use 3009 swig's -noruntime option (which we don't do). 3010 3011Python: 3012 3013* Use swig's -modern switch for Python 2.2 and up - it gives cleaner, leaner, 3014 faster Python wrapper code. 3015 3016Tcl: 3017 3018* Don't install xapian.la. 3019 3020* Improved configure check for tcl.h to work with Fedora Core 2. 3021 3022Xapian-bindings 0.8.2 (2004-09-13): 3023 3024General: 3025 3026* Added wrappers for recently added methods: ESet::back() and 3027 Database::get_lastdocid(), and wrap the new optional third parameter 3028 to Enquire::set_sorting(). 3029 3030* No longer wrap MSet::MSet() - it's not of use in scripting languages. 3031 3032* Wrap operator-- as prev() for MSetIterator and ESetIterator. 3033 3034* Wrap Quartz, InMemory, and Remote database factory functions as 3035 quartz_open(), inmemory_open(), and remote_open(). 3036 3037* Added missing wrappers for static Stem::get_available_languages() and 3038 Stem::get_description(). 3039 3040* Wrap renamed method Query::empty() (was Query::is_empty()). 3041 3042* Remove renaming of other empty() methods to is_empty() (but keep is_empty() 3043 as an alias for now). 3044 3045* Require autoconf 2.59 and automake 1.8.5. 3046 3047* configure: Added check that the bindings version matches the version of 3048 the xapian library. 3049 3050* configure: Check if we're using GCC and only pass GCC specific warning 3051 control options if we are. 3052 3053* configure: When running with GCC, also pass -Wno-uninitialized so the 3054 SWIG glue builds without warnings. 3055 3056* README: Updated list of languages which SWIG supports. 3057 3058PHP4: 3059 3060* Document that the 2 argument form of Xapian::Auto::open() for opening a 3061 writable database is wrapped as open_writable() (bug #32). 3062 3063* Include Xapian version in output from phpinfo(). 3064 3065* Build the SWIG glue library like we build the others rather than using 3066 SWIG's -phpfull option. This avoids problems with newer automake versions 3067 and means we can build against an uninstalled xapian library. 3068 3069* Corrected documentation to refer to Xapian::DB_* not Xapian::Auto::DB_*. 3070 Fixed documentation of how Xapian::Query::OP_* are wrapped. 3071 3072* Use special SWIG PHP ldflags when linking the PHP glue library. 3073 3074* simplesearch.py now works with multi-term queries. 3075 3076* Added documentation on how to install the PHP4 bindings. 3077 3078* Added a simple testcase to at least ensure the PHP4 bindings can be 3079 initialised and some simple operations work. 3080 3081Python: 3082 3083* configure: Now checks for Python >= 2.1 which we need for __cmp__ and __eq__. 3084 3085* Don't install _xapian.la and _xapian.a. 3086 3087* Byte compile xapian.py to xapian.pyc and install it. 3088 3089* Suppress SWIG warning about MatchDecider::operator() director discarding 3090 const. 3091 3092* "make clean" no longer leaves "xapian_wrap.h" behind. 3093 3094* Added a simple testcase to at least ensure the python bindings can be 3095 initialised and some simple operations work. 3096 3097Tcl8: 3098 3099* configure: Disable building tcl8 bindings if the headers are missing 3100 (probably because the tcl8.X-dev package isn't installed). 3101 3102Xapian-bindings 0.8.1 (2004-06-30): 3103 3104General: 3105 3106* configure: Require SWIG 1.3.20 or higher (previously was 1.3.14). 3107 3108* Add "-I/usr/include" to the swig line. This is needed when xapian is 3109 installed with a prefix of /usr, since "xapian-config --cxxflags" carefully 3110 doesn't emit -I/usr/include in this situation (because it causes problems 3111 with some GCC versions). 3112 3113* Fixed the %exception handler to cover all the exceptions Xapian can throw, 3114 not just a subset. 3115 3116Java: 3117 3118* Removed wrappers for unused error classes which have been pruned from C++. 3119 3120* Make finalize() methods of Database and WritableDatabase public so they can 3121 be called from by the user. 3122 3123* Document Document.add_term_nopos() as deprecated. 3124 3125PHP4: 3126 3127* Make sure that PHP bindings build a module which exports get_module() so PHP 3128 is able to load it. 3129 3130* Configure now checks that phpize can actually be run, rather than just that 3131 it's executable (test -x isn't portable anyhow). 3132 3133* Added basic documentation and examples to PHP4 bindings. 3134 3135* Rename overloaded methods and constructors. 3136 3137* Add simple access to the prefixes map in QueryParser. 3138 3139* Correct simpleindex ports to never generate empty termnames. 3140 3141Python: 3142 3143* configure: Use $PYTHON instead of python when running python to determine 3144 library and include paths and version number. 3145 3146* Actually ship python examples and documentation. 3147 3148Xapian-bindings 0.8.0 (2004-04-20): 3149 3150* README: Started collecting information on supporting Xapian from even 3151 more languages. 3152 3153* Added configure tests to enable bindings only where the necessary tools 3154 are installed and have a supported version. ./configure --without-LANGUAGE 3155 allows particular languages to be forcibly disabled. 3156 3157* Added Xapian::Document::add_term() - the new name for add_term_nopos(). 3158 3159* A couple of Xapian::Query constructors weren't being wrapped - fixed. 3160 3161* Added Eric B. Ridge's JNI bindings for Java. The JNI bindings themselves 3162 have been well tested, but integration with the xapian-bindings configure 3163 system hasn't been tested at all - please alert us to any problems. 3164 3165* Xapian can now be used from TCL. 3166 3167* Python: MSet now provides a Python iterator. 3168 3169* Python: OMMSET_* and OMESET_* renamed to MSET_* and ESET_*. 3170 3171* Python: enable directors for MatchDecider, to allow subclassing in Python. 3172 3173* Python: Added basic documentation, and some examples. 3174