1Xapian-bindings 1.4.18 (2021-01-14): 2 3Portability: 4 5* Support macOS 11.0 - AC_CANONICAL_HOST identifies this as darwin20, which 6 wasn't caught by our glob pattern. Patch from FX Coudert in 7 https://github.com/xapian/xapian/pull/319 8 9CSharp: 10 11* Wrap const std::string* parameters to accept a string or null in C#. See #204. 12 13Java: 14 15* Wrap const std::string* parameters to accept a String or null in Java. 16 17Perl: 18 19* Fix minor documentation typo. 20 21Xapian-bindings 1.4.17 (2020-08-21): 22 23* No user-visible change except for bumping the version to indicate 24 compatibility with Xapian-core 1.4.17. 25 26Xapian-bindings 1.4.16 (2020-06-08): 27 28General: 29 30* Remove code to support SVN snapshots since we stopped using SVN more than 5 31 years ago. 32 33* Ignore overloads for logical ops, *, /. These were already ignored for 34 several languages, and aren't actually usefully wrapped for any of the other 35 languages. 36 37CSharp: 38 39* Work around mono terminfo parsing bug in more cases. With this, "make", 40 "make check", "make install" and "make uninstall" all work on Ubuntu 18.10. 41 Patch from Dipanshu Garg, fixes https://github.com/xapian/xapian/pull/287 and 42 #801. 43 44Lua: 45 46* Allow passing a Lua function as a MatchSpy. This was supposed to be 47 supported already, but the typemaps weren't set up. 48 49* On platforms where sizeof(long) is 4, SWIG was wrapping Xapian::BAD_VALUENO 50 as a negative constant in Lua, which was then rejected by a check which 51 disallows passing negative values for unsigned C++ types. We now direct SWIG 52 to handle Xapian::valueno as double (which is what numbers in Lua usually 53 actually are) which gives us an unsigned constant, and also eliminates the 54 negative value check. 55 56* Correct documentation - get_description() is wrapped as tostring() in Lua, 57 not str() as we previously claimed. 58 59* Add test coverage for passing Lua function for a Stopper. 60 61Perl: 62 63* Resolve the remaining issues and remove the "experimental" marker: 64 65 + Add search_xapian_compat() function which sets up aliases in the 66 Search::Xapian namespace to aid writing code which uses either 67 Search::Xapian or this module. 68 69 + Allow passing Perl sub for simpler Xapian functor classes. This fills in a 70 missing feature compared to Search::Xapian. See #523. 71 72 + Remove useless PerlStopper class which was an incomplete copy of the 73 apparently non-functional Search::Xapian::PerlStopper. We now support 74 passing a Perl sub for a Stopper object. 75 76 + Adjust some method names to match Search::Xapian. Iterators now support 77 inc() (and dec() where the C++ class supports operator--) like 78 Search::Xapian, rather than increment() and prev(). Reported by Eric Wong 79 in #523. 80 81 + Drop undocumented and unexpected extra equals() method. 82 83 + Provide compatibility with ENQ_ASCENDING, etc constants. SWIG wraps these 84 as $Xapian::Enquire::ASCENDING, which better matches the C++ API, but 85 Search::Xapian wraps this as Search::Xapian::ENQ_ASCENDING, etc so provide 86 those too for compatibility. Reported by Eric Wong in #523. 87 88 + Drop stringification and int conversion overloads. These seem more 89 confusing than helpful, and overloading stringification works badly 90 with SWIG-generated bindings. 91 92 + Document remaining known differences from Search::Xapian. 93 94* Update recently tested versions in README. 95 96* Improve documentation. 97 98* Fix t/02pod.t to look for files in right directory. 99 100Ruby: 101 102* Don't print iterator sizes to stdout. This was some debugging accidentally 103 left in as part of a change in 1.4.12. Patch from Dan Callaghan. 104 105Xapian-bindings 1.4.15 (2020-02-24): 106 107Perl: 108 109* Improve comment about App::Prove. 110 111Ruby: 112 113* Support Ruby 2.7. 114 115Xapian-bindings 1.4.14 (2019-11-23): 116 117Python: 118 119* Remove broken replicationtest.py. It's never worked reliably, and because 120 of that was disabled shortly after being added over a decade ago. 121 Unsurprisingly it's bit-rotted at least a bit since. Nobody seems interested 122 in fixing it, so it's time to just get rid of it. Closes #320. 123 124Python3: 125 126* Remove broken replicationtest.py. It's never worked reliably, and because 127 of that was disabled shortly after being added over a decade ago. 128 Unsurprisingly it's bit-rotted at least a bit since. Nobody seems interested 129 in fixing it, so it's time to just get rid of it. Closes #320. 130 131Xapian-bindings 1.4.13 (2019-10-14): 132 133General: 134 135* Omit SWIG exception handling for destructors. Since C++11, destructors can't 136 throw by default and we don't override that default, so there's no point 137 adding exception handling code for them. 138 139* Ensure doccomments.i is distributed. If you unpacked a distribution tarball, 140 configured it and then ran "make dist" python/doccomments.i and 141 python3/doccomments.i would be missing unless you configured the tree with 142 --enable-maintainer-mode. 143 144PHP: 145 146* Check for php-config5.6 and php-config5.5 in configure as these versioned 147 names are used in some packages (such as those from the ondrej/php PPA). 148 149PHP7: 150 151* Work around build failure on Illuminos. Fixes 152 https://trac.xapian.org/ticket/793, reported by Amitai Schleier. 153 154Ruby: 155 156* smoketest.rb: Use #push not #append on Array to restore compatibility with 157 Ruby < 2.5 (broken by changes in 1.4.12). 158 159* Expand tabs in Ruby code since using spaces for indentation seems to be 160 preferred Ruby style. 161 162* Remove trailing `;` from Ruby code. 163 164Xapian-bindings 1.4.12 (2019-07-23): 165 166Documentation: 167 168* Update bindings HACKING document. Reported as out of date by Niwesh Gupta. 169 170CSharp: 171 172* Work around mono terminfo parsing bug - older cli-sn fails with e.g. 173 TERM=xterm-256color due to: https://github.com/mono/mono/issues/6752 174 Encountered on Kubuntu 18.10 and debugged by Tejasvi Tomar. Seems to be 175 fixed in the mono version in Debian buster. 176 177Perl: 178 179* Suppress warnings from older Perl headers due to use of constructs which look 180 like C++11 user-defined literals. They're fixed in newer versions so they're 181 just noise in our build. We were working around these in the CI build, so 182 drop that workaround as we want to make the build warning-clean for users 183 too. Reported by daniel93 on #xapian. 184 185Python3: 186 187* Fix build for changes in Sphinx 2.0 (which drops support for sphinx.main()). 188 Fixes #778, reported by karolyi. Also reported by Gaurav Arora. 189 190* We now throw UnicodeEncodeError for bad Unicode string input. Previously 191 cases such as a lone surrogate would be handled by quietly skipping the bad 192 codepoints when converting to UTF-8 to pass to Xapian. 193 194* We no longer use the deprecated old-style Py_UNICODE API, which currently 195 gives deprecation warnings and is slated to be removed in Python 4.0. 196 197Ruby: 198 199* Add support for block iteration. All the iterator methods in the Ruby API 200 now accept an optional block. If no block is given an array is returned so 201 existing code will still work. Partly based on a patch in 202 https://github.com/xapian/xapian/pull/232 from Cong Ding. 203 204* Add missing wrappers for all the C++ methods returning iterators which 205 weren't wrapped for Ruby. Fixes #777, reported by do. 206 207* Suppress warnings from Ruby 2.3 headers due to use of register and 208 constructs which look like C++11 user-defined literals. They're fixed in 209 newer versions so they're just noise in our build. We were working around 210 these in the CI build, so drop that workaround as we want to make the build 211 warning-clean for users too. Reported by daniel93 on #xapian. 212 213* smoketest.rb: Don't leave temporary databases behind in /tmp. 214 215Xapian-bindings 1.4.11 (2019-03-02): 216 217CSharp: 218 219* Make MatchAll and MatchNothing readonly. 220 221Java: 222 223* Simplify load-time setup of Query.OP_OR, etc which are provided for 224 compatibility with the original hand-written JNI bindings. 225 226PHP: 227 228* We now load the module for "make check" using -d extension=xapian which 229 avoids needing to turn off safe_mode and turn on enable_dl, and matches how 230 the module is usually loaded in production use. 231 232PHP7: 233 234* Fix access to already released memory during PHP module shutdown, which often 235 didn't cause visible problems, but could result in segmentation faults, bus 236 errors, etc. 237 238* Fix generated code to compile when using a ZTS-enabled build of PHP. 239 240* We now load the module for "make check" using -d extension=xapian which 241 avoids needing to turn off safe_mode and turn on enable_dl, and matches how 242 the module is usually loaded in production use. 243 244Xapian-bindings 1.4.10 (2019-02-12): 245 246Documentation: 247 248* Use https for URLs where supported. 249 250General: 251 252* Wrap new DatabaseClosedError and DatabaseNotFoundError exceptions. 253 See #772 and #773. Patches from Vaibhav Kansagara. 254 255* Update expected query descriptions in tests for the xapian-core 256 change to produce flatter Query trees. 257 258* Workaround Perl 5.28 -i quirk when postprocessing SWIG-generated code. 259 The commands in question are only run when maintainer-mode is enabled. 260 261CSharp: 262 263* C++ constant Xapian::BAD_VALUENO is now wrapped without using a getter. 264 This shouldn't affect existing user code. 265 266Java: 267 268* C++ constant Xapian::BAD_VALUENO is now wrapped as Java constant 269 Xapian.BAD_VALUENO. The previous Java wrapping as function 270 Xapian.getBAD_VALUENO() is still supported for compatibility with 271 existing code. 272 273* Remove redundant std::string initialisation. 274 275Lua: 276 277* C++ constant Xapian::BAD_VALUENO is now wrapped as a constant rather than 278 an immutable attribute. This shouldn't affect existing user code. 279 280Perl: 281 282* C++ constant Xapian::BAD_VALUENO is now wrapped as Perl constant 283 Xapian::BAD_VALUENO. The previous Perl wrapping as variable 284 $Xapian::BAD_VALUENO is still supported for compatibility with existing 285 code. 286 287* Note in the POD documentation that the Error base classes which are abstract 288 in C++ don't have a new method in Perl. 289 290PHP: 291 292* C++ constant Xapian::BAD_VALUENO is now wrapped as PHP constant 293 Xapian::BAD_VALUENO. The previous PHP wrapping as function 294 Xapian::BAD_VALUENO_get() is still supported for compatibility with existing 295 code. 296 297* Remove code to work around a SWIG bug which was fixed in 2006. 298 299PHP7: 300 301* C++ constant Xapian::BAD_VALUENO is now wrapped as PHP constant 302 Xapian::BAD_VALUENO. The previous PHP wrapping as function 303 Xapian::BAD_VALUENO_get() is still supported for compatibility with existing 304 code. 305 306* configure: Check for php-config7.3 and php-config7.2 as well as 307 php-config7.1, php-config7.0 and php-config. 308 309* Correct references to PHP5 in PHP7 script comments. 310 311* Remove some C code which is no longer needed with PHP7. 312 313Ruby: 314 315* C++ constant Xapian::BAD_VALUENO is now wrapped as Ruby constant 316 Xapian::BAD_VALUENO. The previous Ruby wrapping as function 317 Xapian::BAD_VALUENO() is still supported for compatibility with existing 318 code. 319 320* We now recommend using String#encode instead of the Iconv class, since the 321 latter is no longer included with Ruby. 322 323Tcl: 324 325* C++ constant Xapian::BAD_VALUENO is now wrapped as a constant rather than 326 variable which can't be written to. This shouldn't affect existing user 327 code. 328 329Xapian-bindings 1.4.9 (2018-11-02): 330 331PHP7: 332 333* Fix to build with upcoming PHP 7.3 release, which changes array_init() 334 to not return a value instead of always returning the constant SUCCESS. 335 We were checking this return value but no longer do. 336 337Xapian-bindings 1.4.8 (2018-10-25): 338 339Perl: 340 341* Wrap new STEM_SOME_FULL_POS constant. 342 343* Add STEM_ALL_Z to qpstem export tag and POD docs. 344 345* Fix Perl bindings documentation typos. 346 347Python: 348 349* Fix RST formatting warning during build. 350 351Python3: 352 353* Fix RST formatting warning during build. 354 355Xapian-bindings 1.4.7 (2018-07-19): 356 357Ruby: 358 359* Fix -Wconversion-null warnings with newer GCC. 360 361Xapian-bindings 1.4.6 (2018-07-02): 362 363Documentation: 364 365* Stop using "probabilistic" to mean "weighted" - we've supported other 366 families of weighting schemes since 1.3.2. 367 368Packaging: 369 370* Use https for tarball URLs in .spec files. This provides protection against 371 MITM attacks on people building packages using these spec files, and is also 372 slightly more efficient as the http: URLs redirect to the https: versions 373 anyway. 374 375CSharp: 376 377* Use SWIG_exception() to handle exceptions. It seems this didn't used to work 378 with older SWIG, but it does with current versions, and using it means that 379 we skip any return value translation logic when an exception has been thrown. 380 381Java: 382 383* Use SWIG_exception() to handle exceptions. It seems this didn't used to work 384 with older SWIG, but it does with current versions, and using it means that 385 we skip any return value translation logic when an exception has been thrown. 386 387* Fix leaks in binary std::string typemaps. These are used for document values 388 and serialised data. 389 390* Improve VPATH build. Previously we looked for class files and java sources 391 in srcdir first, then in builddir. That's backwards from how autotools 392 VPATH builds search for targets and prerequisites so reverse this order to 393 make handling of Java files more consistent. 394 395Perl: 396 397* Invoke prove via the App::Prove module. This avoids potentially using 398 prove from a different Perl installation to perl (previously the user 399 needed to manually specify the corresponding PROVE= if they specify PERL= to 400 configure). In particular this is useful on macOS when using Perl from 401 homebrew. 402 403* Improve Perl Enquire::set_docid_order documentation by syncing improvements 404 from the C++ API docs. 405 406Python: 407 408* Support sphinx >= 1.7 while still working with < 1.7. Patch from 409 James Aylett. 410 411* Suppress clang -Wdeprecated-register warnings about uses register in C code 412 in Python.h. We can't do anything about these other than suppress them. 413 414Python3: 415 416* Support sphinx >= 1.7 while still working with < 1.7. Patch from 417 James Aylett. 418 419* Suppress clang -Wdeprecated-register warnings about uses register in C code 420 in Python.h. We can't do anything about these other than suppress them 421 (and they appear to have been removed in Python 3.4 and later). 422 423* Remove unused MSet::__cmp__ extend method. This was used in Python 2, but 424 Python 3 does things differently. There doesn't seem a good reason to 425 provide comparison operations for MSet objects, and we don't for other 426 classes, so let's just drop this feature - it seems nobody has noticed it has 427 gone. 428 429* Simplify generated wrapper post-processing. 430 431Xapian-bindings 1.4.5 (2017-10-16): 432 433Documentation: 434 435* HACKING: Add details of Debian PHP7 packages to install for development. 436 437General: 438 439* Use a pattern match to ignore methods meant for internal use only rather 440 than having to list them all - they're consistently named to end with an 441 underscore. 442 443* Stop using deprecated Xapian::percent typedef in bindings-specific code. 444 Deprecation warnings are suppressed when building the bindings (because the 445 bindings usually still need to wrap deprecated C++ features) so this probably 446 has no user-visible consequences. 447 448Java: 449 450* Fix JNI code to be compatible with Java 6 and earlier, where the final 451 parameter of SetByteArrayRegion() was not const. This also seems to affect 452 GCJ (though GCJ was removed in GCC 7). The incompatibility was introduced in 453 1.4.4. 454 455Lua: 456 457* Support subclassing of RangeProcessor in Lua. 458 459Perl: 460 461* Add CLONE_SKIP to RangeProcessor and subclases to avoid double deletion 462 if the Perl threads module is in use. 463 464* Keep references for set RangeProcessor objects, like how we do for 465 ValueRangeProcessor and various other functor objects. 466 467* Use RangeProcessor instead of ValueRangeProcessor in perl examples, as 468 ValueRangeProcessor is now deprecated. 469 470PHP: 471 472* Keep references for set RangeProcessor objects, like how we do for 473 ValueRangeProcessor and various other functor objects. 474 475* Add type hints to QueryParser::add_rangeprocessor(). 476 477PHP7: 478 479* Keep references for set RangeProcessor objects, like how we do for 480 ValueRangeProcessor and various other functor objects. 481 482* Add type hints to QueryParser::add_rangeprocessor(). 483 484* Fix PHP7 "make check" to use right path separator. It was using the PHP5 485 one, which in general is going to be the same but we won't have probed for 486 that unless we're also building the PHP5 bindings, which means "make check" 487 failed for PHP7 unless you also had the PHP5 bindings enabled. 488 489Python3: 490 491* Fix "make check" under Python 3.2, which was broken in 1.4.4 because Python 492 3.2 doesn't support the u'foo' syntax. 493 494* Copy over Python2 check which aims to catch any internal functions, methods, 495 constants, etc which have accidentally been wrapped. 496 497Ruby: 498 499* Fix dependency generation for Ruby SWIG command (only relevant at all if 500 you configure with --enable-maintainer-mode). 501 502Xapian-bindings 1.4.4 (2017-04-19): 503 504General: 505 506* Update tests for xapian-core changes to avoid unnecessary "0 *" in query 507 descriptions in certain cases. 508 509Packaging: 510 511* Ship java.i in tarball. 512 513Java: 514 515* Handle object serialisations and document values as Java byte[]. These will 516 usually contain binary data, so Java String doesn't work well and byte[] is a 517 much better fit. 518 519* Correct various errors in java examples and documentation on how to run them. 520 521* Fix java examples not to abuse doc values as fields - use the document data 522 instead. 523 524* "make clean" now removes additional class files. 525 526PHP7: 527 528* Update version of SWIG required to >= 3.0.12 so that the code generated 529 for PHP7 no longer results in a segmentation fault on module unload with 530 PHP 7.1. Fixes #748, reported by Victor Sakovich. 531 532Python: 533 534* Fix QueryParser methods add_boolean_prefix() and add_prefix() to accept a 535 string for the `grouping` parameter. Reported by Jameson Graef Rollins in 536 https://bugs.debian.org/849722 537 538* Fix configure --with-python to fail if sphinx isn't found. Patch from 539 Patricio Paez. Fixes #749. 540 541Python3: 542 543* Fix QueryParser methods add_boolean_prefix() and add_prefix() to accept a 544 string for the `grouping` parameter. Reported by Jameson Graef Rollins in 545 https://bugs.debian.org/849722 546 547Xapian-bindings 1.4.3 (2017-01-25): 548 549Python: 550 551* Remove compatibility code for Python < 2.5 - 1.4.x requires Python >= 2.6. 552 553* Avoid unnecessary pointer indirection in XapianSWIG_anystring() helper 554 function, which should be a little more efficient and makes the Python 2 555 code more closely match the Python 3 code. 556 557Ruby: 558 559* "make clean" should only remove docs/xapian.rb if configure option 560 --enable-documentation was used to enable all rules to rebuild documentation. 561 Reported by Samuel Williams on xapian-discuss. 562 563* Fix make rule for running rdoc for the cases where srcdir != builddir. 564 565* Use 'test a = b' rather than 'test a == b' - the former is portable, the 566 latter a bashism. In many cases the autotools will set SHELL = /bin/bash in 567 the makefiles, but if it doesn't and /bin/sh isn't bash, then this will 568 cause "make install" and "make uninstall" to fail for the Ruby bindings. 569 570Xapian-bindings 1.4.2 (2016-12-26): 571 572General: 573 574* configure: Fail with clear error with xapian-core < 1.4.0. 575 576* Work around OS X "System Integrity Protection". We can't address the problem 577 of being unable to run tests against an uninstalled tree when the interpreter 578 is in a system directory (you have to "make install" in xapian-core for that 579 case), but we can at least make this work for interpreters which aren't in 580 system directories. 581 582Java: 583 584* Disable parallel make for java subdirectory as it causes random build 585 failures. Reported by Lucas Nussbaum in https://bugs.debian.org/848733 586 587* Disable automatic use of -Xcheck:jni for now as it seems to report false 588 positives with OpenJDK 8 and 9. 589 590PHP: 591 592* Generates smaller PHP wrappers by only emitting each unique arginfo 593 combination once (~6% saving in stripped extension module size for 594 PHP7 on x86_64 Linux). 595 596* Fix to work again with a version of PHP5 built with ZTS enabled (which is the 597 default on Microsoft Windows). 598 599* Add support for PHP7. 600 601* Drop workaround for PHP4 from test code. 602 603Python: 604 605* Handle sphinx-build being a shell script wrapper by invoking sphinx.main() 606 from a command line Python code snippet. Reported by Alex Dunn in 607 https://github.com/xapian/xapian/pull/126 and solved with help from James 608 Aylett. 609 610* Hold python reference to set RangeProcessor objects - until #714 is fixed we 611 need to keep such a reference (as we already do for ValueRangeProcessor and 612 several other classes). 613 614Python3: 615 616* Handle sphinx-build being a shell script wrapper by invoking sphinx.main() 617 from a command line Python code snippet. Reported by Alex Dunn in 618 https://github.com/xapian/xapian/pull/126 and solved with help from James 619 Aylett. 620 621* Hold python reference to set RangeProcessor objects - until #714 is fixed we 622 need to keep such a reference (as we already do for ValueRangeProcessor and 623 several other classes). 624 625Ruby: 626 627* Use more conventional Ruby variable names in the examples (Ruby convention 628 uses underscores not camelcase) and fix comma/space transposition in a couple 629 of places. 630 631Xapian-bindings 1.4.1 (2016-10-21): 632 633Documentation: 634 635* Fix --disable-documentation - in maintainer-mode, we still tried to make 636 docs/index.html for most of the bindings, which failed because the rule to do 637 so was disabled. 638 639General: 640 641* Update for additions to C++ API. 642 643* When a backend is disabled in the xapian-core we're building against, we 644 have a stub version of any factory functions so the bindings still have 645 something to wrap. Update these for 1.4: 646 + Disable stub for InMemory::open() when 647 XAPIAN_BINDINGS_SKIP_DEPRECATED_DB_FACTORIES is defined (Perl, Python3). 648 + Add new optional flags parameter to both overloaded forms of 649 Remote::open_writable(). 650 651Portability: 652 653* Drop compiler options that are no longer useful: 654 + -fshow-column is the default in all GCC versions we now support 655 (checked as GCC 4.6). 656 + -Wno-long-long is no longer necessary now that we require C++11 where 657 "long long" is a standard type. 658 659Java: 660 661* Use a cleaner technique to insert the Java code to load JNI library into the 662 generated wrapper - we now use "%pragma(java) jniclasscode" instead of using 663 Perl to post-process the generated wrapper. Suggested by James Aylett. 664 665* Run Java tests with -Xcheck:jni if supported, which should help catch any 666 any bugs in the JNI code. 667 668* Fix configure to find jni_md.h under Cygwin. There doesn't seem to be an way 669 to automatically determine the machine-dependent JNI include path, so add 670 another case to use "win32" on Cygwin. Reported by John Bankert on 671 xapian-discuss. 672 673* Add more special cases to find jni_md.h on Cygwin, OS X, *BSD, AIX. 674 There doesn't seem to be an explicit list of these directories anywhere, but 675 grepping the OpenJDK 8 source code finds additional values "darwin" and 676 "aix", *BSD seems to use "bsd", and Cygwin uses "win32" (reported by John 677 Bankert on xapian-discuss). 678 679* Generate xapian.jar rather than xapian_jni.jar - the fact that JNI is 680 involved is really just an implementation detail. 681 682* SmokeTest.java: Add simple test of subclassing FieldProcessor. 683 684Perl: 685 686* Merge Perl POD doc improvements from Search::Xapian. The most notable 687 improvement is a number of methods previously lacking docs now have them. 688 689* Fix typo in POD docs for Perl bindings ("outputing" -> "outputting"). 690 Reported by knowledgejunkie in #730. 691 692Python: 693 694* Fix repr() to not return None. Reported by Stuart Prescott on IRC. 695 696* Fix Python2 bindings to work out of the box. SWIG changed the code it 697 generates for importing the compiled module in a recent version, and 698 the newer code no longer works with the wrapper renamed to 699 xapian/__init__.py. There's currently no way to configure SWIG to produce 700 what we need so for now we run a "fixup" script over the generated wrapper 701 which replaces the complex import code with a single statement which does 702 what we want. It also strips out various unneeded code, mostly to do with 703 handling Python 3.x (which we don't need since we have an entirely 704 separate set of bindings for that). Reported by James Aylett in #731. 705 The way we were importing the bindings to generate the .pyc and .pyo 706 files was masking this problem, so rework that as suggested by James. 707 708* Make sphinx docs dependent on SWIG wrapper. Without this dependency, 709 parallel builds (make -j) may attempt to schedule the sphinx doc build before 710 the relevant wrapper has been compiled and moved into position. This won't 711 result in a build failure, but will silently omit API docs that sphinx 712 would otherwise include. Patch from James Aylett. 713 714* doxy2swig: Specify encoding when reading doxygen's XML output so UTF-8 in 715 doxygen comments is handled. Patch from Vivek Pal. 716 717* Specify Python2 wrapper encoding is UTF-8. This is needed when we pick up 718 doxygen comments from the C++ API which contain UTF-8. For Python3, the 719 default source encoding is UTF-8, so we don't need the equivalent change 720 there. 721 722Python3: 723 724* Fix repr() to not return None. Reported by Stuart Prescott on IRC. 725 726* Fix Python3 bindings to work out of the box. SWIG changed the code it 727 generates for importing the compiled module in a recent version, and 728 the newer code no longer works with the wrapper renamed to 729 xapian/__init__.py. There's currently no way to configure SWIG to produce 730 what we need so for now we run a "fixup" script over the generated wrapper 731 which replaces the complex import code with a single statement which does 732 what we want. It also strips out various unneeded code, mostly to do with 733 handling Python 2.x (which we don't need since we have an entirely 734 separate set of bindings for that). Reported by James Aylett in #731. 735 The way we were importing the bindings to generate the .pyc and .pyo 736 files was masking this problem, so rework that as suggested by James. 737 738* Make sphinx docs dependent on SWIG wrapper. Without this dependency, 739 parallel builds (make -j) may attempt to schedule the sphinx doc build before 740 the relevant wrapper has been compiled and moved into position. This won't 741 result in a build failure, but will silently omit API docs that sphinx 742 would otherwise include. Patch from James Aylett. 743 744* Fix memory leak converting string from Python to C++. 745 XapianSWIG_anystring_as_ptr() was failing to flag the returned value as 746 allocated, so it wasn't being deleted. Reported by Sean Robinson in #729. 747 748Xapian-bindings 1.4.0 (2016-06-24): 749 750Documentation: 751 752* Mark SWIG-generated Java and Perl bindings as "experimental" until we've 753 had a chance to sort out any remaining changes we want to make. 754 755Xapian-bindings 1.3.7 (2016-06-01): 756 757Documentation: 758 759* Remove long out-dated reference to tinderbox. 760 761General: 762 763* Use SWIG 3.0.9 to generate the bindings. There's nothing very important to 764 us in the changes since the git snapshot we were using - mostly this means 765 we're using a released version, which seems preferable. 766 767Tcl: 768 769* Fix segfault in tcl bindings "make check". The location of tclConfig.sh 770 wasn't being found, so libtclstub wasn't being linked to, which is required 771 with Tcl >= 8.6. 772 773Xapian-bindings 1.3.6 (2016-05-09): 774 775General: 776 777* Update for changes to the C++ API. 778 779* Use WritableDatabase::commit() instead of flush() in testcases, as the 780 latter is now formally deprecated. 781 782Java: 783 784* Fix syntax error in SmokeTest.java, introduced by the DB_BACKEND_INMEMORY 785 change. Noted on #xapian-discuss by Aakash Muttineni. 786 787* Update Java TODO list. 788 789* SmokeTest.java: Port over version checks from SmokeTest.cs. 790 791* Update list of recently tested JDK versions. 792 793Lua: 794 795* Note Lua bindings work with Lua 5.3. 796 797Perl: 798 799* Explicitly specify POD docs encoding as utf8. Fixes warning in generated 800 HTML docs. 801 802* Convert POD to HTML when building from a source tarball - the conversion 803 code comes as standard with Perl. In 1.3.5 we were failing to ship the HTML 804 output, as reported by Anthony Basile. 805 806* For extra robustness, convert POD to HTML using the bundled Pod::Html module 807 from the Perl interpreter found by configure, rather than assuming pod2html 808 is on PATH, and the right one (this matters more now that it's not just 809 people building from git who build these docs). 810 811* Improve Perl bindings POD documentation. 812 813* Remove workaround for Perl macro vs C++11 header. SWIG 3.0.6 and later adds 814 a different workaround to the generated C++ wrapper file, and we require SWIG 815 3.0.8 for a Python fix, so we no longer need our workaround. 816 817Python: 818 819* Fix "make check" in VPATH build. Nothing seems to have changed in our build 820 system, so I'm guessing this is now required due to a change in the code SWIG 821 generates. 822 823Python3: 824 825* Fix "make check" in VPATH build. Nothing seems to have changed in our build 826 system, so I'm guessing this is now required due to a change in the code SWIG 827 generates. 828 829* Fix install location for python3 docs. They were being install to the same 830 path as the python docs - now the path includes "python3" instead of 831 "python". 832 833Ruby: 834 835* Increase minimum Ruby version to 2.1, as older versions are no longer 836 supported by the Ruby developers. 837 838Xapian-bindings 1.3.5 (2016-04-01): 839 840This release includes all changes from 1.2.23 which are relevant. 841 842Documentation: 843 844* Fix to install docs when not in maintainer-mode. 845 846* Note open_stub() is deprecated (most of the bindings already noted this, but 847 now ruby and tcl do too). 848 849General: 850 851* Update for changes to the C++ API. 852 853* PostingSource is now fully wrapped for the bindings. Fixes #499, reported by 854 Joost Cassee. 855 856* Ship swig-depcomp and doxy2swig scripts in the source tarball. 857 858* Add installcheck-local make targets for most languages - these run the 859 testsuites using the installed bindings. 860 861CSharp: 862 863* configure: Stop checking for obsolete mono compiler names - gmcs, smcs and 864 dmcs were all deprecated in Mono 2.11. 865 866* configure: Strip out handling of DotGNU - it's been inactive for years, and 867 was officially "decommissioned" in December 2012. 868 869* README: Update list of mono versions recently tested with. 870 871Lua: 872 873* smoketest.lua: Fix to work with newer lua - coercing a number to a string 874 now appends ".0" for whole numbers. 875 876Perl: 877 878* Run pod2html with explicit --podpath=. - recent versions of pod2html seem to 879 need this to correctly handle references to other Xapian classes. Reported 880 on #xapian-discuss by HowManny and abhishek_rand0wn. 881 882Python: 883 884* Run sphinx at build time. It's an extra tool for people building from source 885 to have to install, but its output is rather large (this change reduces our 886 tar.xz size by ~20%), and its output includes a source-less minified copy of 887 jquery. 888 889Python3: 890 891* Run sphinx at build time. It's an extra tool for people building from source 892 to have to install, but its output is rather large (this change reduces our 893 tar.xz size by ~20%), and its output includes a source-less minified copy of 894 jquery. 895 896* Fix handling of integer values larger than a C int by bootstraping with a 897 newer version of SWIG. Fixes #703, reported by Barry Warsaw. 898 899* Remove xapian.inmemory_open() - we've deprecated the corresponding C++ 900 function, and the Python3 bindings haven't yet had a stable release. 901 902Ruby: 903 904* Run rdoc at build time - it is included as part of the Ruby core 905 distribution, so we can assume it is available if ruby is, and avoid shipping 906 its rather large generated output in our source tarball. 907 908Xapian-bindings 1.3.4 (2016-01-01): 909 910This release includes all changes from 1.2.22 which are relevant. 911 912General: 913 914* Wrap new and changed features in C++ API. 915 916* PostingSource set_maxweight() is now accessible to the bindings. Fixes #498, 917 reported by Richard Boulton. 918 919* configure script now defaults to looking for xapian-config-1.3. This is now 920 automatically done for development series (odd middle component of the 921 version number), but not for stable series (even middle component). Fixes 922 #695, reported by Jorge C. Leitão 923 924PHP: 925 926* Make PHP 5.5 the minimum officially supported version, as 5.4 has now reached 927 EOL. 928 929* In the examples, when iterating an MSet with foreach, don't throw the docid 930 away as $dummy, put it in $docid and use it - the code looks cleaner, and 931 this avoids an extra call to C++ to get the docid on each iteration. 932 933Python: 934 935* Drop support for Python 2.5. 936 937Python3: 938 939* Document installation of Python 3 bindings. Fixes #694, reported by Jorge C. 940 Leitão. 941 942* Fix testsuite for changes in Python 3.5. Fixes #690, patch from UsusDei. 943 944* Handle renaming of .pyo to .opt-1.pyc files due to PEP-0488. Fixes #689, 945 patch from UsusDei. 946 947* Fix Python 3 version check to accept 3.10. 948 949Xapian-bindings 1.3.3 (2015-06-01): 950 951This release includes all changes from 1.2.20-1.2.21 which are relevant. 952 953Documentation: 954 955* INSTALL: IRIX is past EOL so drop information about IRIX make. 956 957General: 958 959* Add DB_RETRY_LOCK as a constant to wrap. 960 961* Don't wrap Query::LEAF_* - they're for internal use in xapian-core. 962 963* Fix "make install" from a git tree configured with --disable-documentation. 964 (Fixes #658, reported by Germán M. Bravo) 965 966* Fix "make install" when building from git with --disable-documentation. 967 968* Fix to handle a VPATH build from a tarball when the generated docs will be in 969 $(srcdir). 970 971* Update testcases for lazy wildcard expansion change in xapian-core. 972 973* Update for addition of XAPIAN_NOEXCEPT. 974 975* Don't wrap internal methods of Xapian::Weight. 976 977Portability: 978 979* Require a compiler with good C++11 support, like xapian-core now does. 980 981* doxygen_xml.conf.in: Update to avoid warnings about obsolete tags from newer 982 doxygen. 983 984* configure: Update check for -fvisibility to match xapian-core's. 985 986CSharp: 987 988* Fix configure test for whether $CLI can run CSharp programs - previously it 989 would always fail, which would mean that the CSharp tests wouldn't be run on 990 platforms where CSharp programs can't be run directly. 991 992Java: 993 994* java/docs/examples/SimpleSearch.java: Update to actually build and work. 995 996Lua: 997 998* The Lua bindings are no longer considered to be "experimental" (in reality 999 they haven't been for some time). 1000 1001Perl: 1002 1003* Add a "LICENSE" section to the main POD. 1004 1005* Add 'use strict' to all testcases, and add missing instances of 'my' that 1006 this change uncovered. 1007 1008* Wrap new WILDCARD_LIMIT_* constants as constants. 1009 1010Python: 1011 1012* Don't release the GIL when constructing a Query object from a sequence of 1013 Query objects and/or strings. 1014 1015* python/smoketest.py: Add new testcase to catch any internal functions, 1016 methods, constants, etc which have accidentally been wrapped. 1017 1018Python3: 1019 1020* The Python3 bindings are no longer considered to be "experimental". 1021 1022* Don't release the GIL when constructing a Query object from a sequence of 1023 Query objects and/or strings. (fixes #346) 1024 1025* python3/pythontest.py: Expand comment about disabling test_import_star under 1026 threads. 1027 1028Tcl: 1029 1030* Require Tcl 8.5 as older versions are no longer supported upstream, and this 1031 version added ::tcl::pkgconfig, which makes the configure tests simpler and 1032 more reliable. 1033 1034* Adjust precedence of the typecheck typemap for wrapping constructing a query 1035 from a Tcl list so that we disambiguate this from the new OP_WILDCARD 1036 constructor correctly. 1037 1038Xapian-bindings 1.3.2 (2014-11-24): 1039 1040This release includes all changes from 1.2.16-1.2.19 which are relevant. 1041 1042Documentation: 1043 1044* Convert HTML docs to reStructured text. (Patch from Mayank Chaudhary) 1045 1046* Update for deprecation of Xapian::Chert::open(). 1047 1048* Update for renaming of "brass" backend to "glass". 1049 1050* Remove SVN "$Date" placeholders as they aren't expanded by git, and the "last 1051 updated" information isn't all that informative anyway - there can still be 1052 stale information even if the file was updated very recently. 1053 1054General: 1055 1056* Releases and snapshots are now bootstrapped using a more recent version of 1057 SWIG (a git snapshot from after the 3.0.3 release). 1058 1059* configure: Fix SWIG version check to accept 3.x, and update the minimum 1060 accepted version to be what we actually currently want. 1061 1062* Wrap new C++ API features, and in particular all the new weighting schemes, 1063 the changes to opening databases, and Xapian::Snipper. 1064 1065* Wrap Xapian::Database::check() for the bindings ignoring the std::ostream* 1066 argument which the C++ API takes. If opts != 0, then output is sent to 1067 stdout, otherwise no output is produced. 1068 1069* Object descriptions are now always valid UTF-8. (see #620) 1070 1071* Provide a SimpleStopper constructor which provides the ability to initialise 1072 from a stopword list in a file. Based on patch from Assem Chelli. 1073 1074CSharp: 1075 1076* README: Note that C# bindings now need .NET 2 or later (because that's what 1077 SWIG-generated code now requires). 1078 1079Java: 1080 1081* Add testcase that FLAG_SPELLING is now wrapped in a usable way. Patch from 1082 Anish Kanchan. (see #616, reported by "Naveen") 1083 1084Lua: 1085 1086* Document that constants can now be accessed using CLASS.CONSTANT as well as 1087 CLASS_CONSTANT. 1088 1089Perl: 1090 1091* Move the new SWIG-based Perl bindings into a 'Xapian' module, to smooth the 1092 overlap with the hand-coded XS 'Search::Xapian' module. 1093 1094* Perl tests are ordering-dependent, so use .NOTPARALLEL to avoid problems 1095 during parallel builds. 1096 1097* Use croak_sv() or ERRSV if defined. 1098 1099PHP: 1100 1101* Make PHP 5.4 the minimum version we officially support, as 5.3 has now 1102 reached EOL. 1103 1104* Wrap Xapian iterator classes as PHP iterators - requires PHP 5.5 for full 1105 support, under PHP 5.4 you can't use `foreach ($it as $k => $c)`, but 1106 `foreach ($it as $c)` works and allows iterating through the equivalent of 1107 C++ operator* on the iterator. (fixes#652) 1108 1109* Fix handling of an exception thrown from a PHP implementation of 1110 FieldProcessor::apply(). 1111 1112* smoketest.php: Add tests of get_eset() with an ExpandDecider and with a min 1113 weight threshold. 1114 1115* In current PHP releases, dl() is disabled in most SAPIs, and even where 1116 available it will now only look in the configured extension directory. The 1117 upshot is that there no longer seems to be a sane way to install the PHP 1118 bindings without being root. Fixes #661, reported by Felix Ostmann. 1119 1120Python2: 1121 1122* The python testsuite already tested if any constants weren't marked with 1123 the CONSTANT macro in xapian-headers.i, but the resulting error didn't 1124 clearly point to the actual problem. Now we report the names of any 1125 such constants. 1126 1127* In the testsuite, use the xapian.WritableDatabase constructor rather than 1128 chert_open() - that code dates back to when chert was the only disk-based 1129 backend to support valuestreams, but flint was the default backend. 1130 1131* Fix typo in code to keep a reference to a FieldProcessor object, reported by 1132 Germán M. Bravo in github PR59. 1133 1134* Generate Python API docs with Sphinx. (Fixes #138, patch from Assem Chelli) 1135 1136Python3: 1137 1138* Python 3 support has been split off into its own subdirectory, and should now 1139 be usable. 3.2 is the minimum supported version currently. Existing code 1140 will need updating for Python 3, and the wrapped API is necessarily different 1141 in how Unicode is handled, so we've dropped deprecated features (such as 1142 'MSet.items' and 'ESet.items') from the Python 3 bindings. (see #346) 1143 1144* Fix typo in code to keep a reference to a FieldProcessor object, reported by 1145 Germán M. Bravo in github PR59. 1146 1147* Generate Python API docs with Sphinx. (Fixes #138, patch from Assem Chelli) 1148 1149Ruby: 1150 1151* configure: Don't prefer ruby1.8 to ruby when looking for a ruby interpreter - 1152 these days it's more likely to ignore ruby 1.9 or 2.0 rather than avoid 1153 picking ruby 1.6. 1154 1155Xapian-bindings 1.3.1 (2013-05-03): 1156 1157This release includes all changes from 1.2.10-1.2.15 which are relevant. 1158 1159Documentation: 1160 1161* HACKING: Document Debian packages needed for each language. 1162 1163General: 1164 1165* Wrap new C++ API features. 1166 1167* Use new XAPIAN_NOTHROW markers in C++ API headers to avoid generating 1168 unnecessary exception handling code where we call such functions and 1169 methods. 1170 1171* Tweak wrapping of Query from list constructor so the needed number of 1172 elements get preallocated. 1173 1174* Ignore Query(Query::Internal&) constructor, which is for internal use 1175 only. 1176 1177* For all languages except C# and Java, wrap the functions declared in 1178 xapian/dbfactory.h by getting SWIG to parse the header. This means we now 1179 wrap the WritableDatabase form of Xapian::Auto::open_stub() for these 1180 languages. 1181 1182* swig-depcomp: Script which wraps invoking SWIG, tells it to generate 1183 dependencies, and adjusts the generated dependencies to work in our build 1184 system. 1185 1186* Remove support for 'configure --enable-quiet', 'make QUIET=' and 'make 1187 QUIET=y' - automake now supports 'configure --enable-silent-rules', 'make 1188 V=1' and 'make V=0' which are broadly equivalent and more standard. 1189 1190* Fix the tests to work with the new automake parallel test driver. 1191 1192Portability: 1193 1194* Improve workaround which allows building against an uninstalled xapian-core 1195 on OS X - this should now work with any uninstalled xapian-core (not only in 1196 a tree with the same layout as an SVN or git checkout) and it also won't try 1197 to build against "../xapian-core/.libs" just because it happens to exist. 1198 (Fixes #322) 1199 1200CSharp: 1201 1202* configure: The variable to specify the interpreter is now CLI (was MONO, but 1203 didn't actually work properly). 1204 1205Java: 1206 1207* Document that we aim to support JDK 1.6 (Java 6) and later. 1208 1209* Avoid generating a temporary C++ vector of Query objects when constructing 1210 a Query from a Java array of Query objects or a Java array of strings. 1211 1212* Implement and test MSetIterator, ESetIterator. Fix PostingIterator, 1213 ValueIterator, and TermIterator. 1214 1215* Add Enquire.getMatchingTerms(). 1216 1217* Use JAVACFLAGS when running JAVAC to allow extra flags to be specified when 1218 building, e.g. "make JAVACFLAGS=-g". 1219 1220* java/SmokeTest.java: Avoid using System.err.printf() which fails to compile 1221 with (the rather elderly) ECJ 3.3.1. 1222 1223Perl: 1224 1225* Fix PostingIterator wrapper to work. 1226 1227* Update list of unwrapped things in POD documentation. 1228 1229* Improve test coverage. 1230 1231* perl/t/10query.t: Adjust regexp which checks expected error message to work 1232 with Perl 5.16, which adds a '.' after "at foo line 123". (ticket#610) 1233 1234* Probe for the test running tool 'prove' in configure. 1235 1236PHP: 1237 1238* Avoid using zend_error_noreturn() as it doesn't work with all builds of PHP. 1239 Instead we now wrap it in a SWIG_FAIL() function which we annotate as 1240 "noreturn" for GCC to avoids warnings. This also reduces the size of the 1241 compiled PHP module by 6%. 1242 1243* php/smoketest.php: Add more tests of geospatial API. 1244 1245Python: 1246 1247* Drop support for Python 2.4. 1248 1249* python/smoketest2.py: Add more testcases. 1250 1251* python/smoketest2.py: Improve reporting of test failures for certain 1252 testcases. 1253 1254* Update Python 3 tests from Python 2 versions using 2to3. 1255 1256Xapian-bindings 1.3.0 (2012-03-14): 1257 1258Documentation: 1259 1260* In maintainer builds, run doxygen to generate XML for the bindings in the 1261 bindings build system, not as a side-effect in xapian-core's. (ticket#262) 1262 1263General: 1264 1265* Wrap new geospatial API. 1266 1267* Wrap new database checking API. 1268 1269* Deprecated features scheduled for removal in 1.3.0 have been removed. 1270 1271* Wrap ExpandDecider even if we don't have director support - there's a 1272 ExpandDeciderFilterTerms subclass which is useful in itself, though it still 1273 needs some typemap work to actually get it usefully wrapped. 1274 1275* configure: 1276 1277 + Add --disable-visibility option to match xapian-core. 1278 1279 + Add -fshow-column for GCC. 1280 1281 + Don't put -Werror in SWIG_FLAGS - instead put it in a new SWIG_WERROR 1282 variable, so that it's easy to override it if you're getting a new warning 1283 from SWIG but want to just ignore it for the time being. 1284 1285* Exception handling now uses Error::get_description() rather than get_type + 1286 ": " + get_msg(). In many cases this is the same, but if context or errno 1287 are available, get_description() includes them. Catch and report 1288 std::exception rather than handling it as an unknown error (so in particular 1289 std::bad_alloc will now be reported more helpfully). 1290 1291CSharp: 1292 1293* Avoid generating unwanted wrapper sources 1294 SWIGTYPE_p_std__vectorT_std__string_t.cs and 1295 SWIGTYPE_p_std__vectorT_Xapian__Query_t.cs. 1296 1297Java: 1298 1299* The hand-coded JNI Java bindings have been removed and the SWIG-based Java 1300 bindings promoted in their place. This means almost the entire C++ API is 1301 now wrapped for Java, but the downside is there are some changes required 1302 to existing code. Overall we feel the short-term pain is worth the long 1303 term benefits of having Java bindings which stay up to date. 1304 1305* java/SmokeTest.java: Add test that string passing is zero byte safe. 1306 1307Lua: 1308 1309* Improve error messages. 1310 1311Perl: 1312 1313* Fix "Use of qw(...) as parentheses is deprecated" warnings in test cases with 1314 Perl 5.14. 1315 1316* Fix Search::Xapian::Query->new() to work. 1317 1318* Enable warnings for all test cases and make them fatal. 1319 1320* Add "use Carp;" where we use functions from that module. 1321 1322* Improve POD docs for Document and TermGenerator methods - "weight" is 1323 misleading, so use "wdfinc" and "wdfdec" like the C++ API docs do. 1324 1325* The Query constructor which takes an array of subqueries is now wrapped more 1326 efficiently - previous a temporary C++ std::vector was built but now we avoid 1327 doing this. 1328 1329PHP: 1330 1331* PHP >= 5.3 is now required. 1332 1333* Add PHP type hints to the class wrappers. Fixes ticket#577. 1334 1335* The XapianQuery constructor which takes an array of subqueries is now 1336 wrapped more efficiently - previous a temporary C++ std::vector was built 1337 but now we avoid doing this. 1338 1339Python: 1340 1341* Python >= 2.4 is now required. 1342 1343* Remove deprecated Stem_get_available_languages(). 1344 1345* Hide away the deprecated non-pythonic iterators - we still need them to 1346 implement the pythonic iterators, so we can't entirely remove them. 1347 1348* Replace SWIG's thread locking with code which does nothing unless threads 1349 are already initialised, to avoid the overhead of thread locking in the 1350 common case of single-threaded Python code. This seems to be about 5-10% 1351 faster for pythontest2.py modified to repeat the tests 100 times. 1352 1353* Handle the GIL in a way which also works in sub-interpreters. Fixes ticket 1354 #364. 1355 1356* The Query constructor which takes an array of subqueries is now wrapped more 1357 efficiently - previous a temporary C++ std::vector was built but now we avoid 1358 doing this. 1359 1360Ruby: 1361 1362* The XapianQuery constructor which takes an array of subqueries is now 1363 wrapped more efficiently - previous a temporary C++ std::vector was built 1364 but now we avoid doing this. 1365 1366Tcl: 1367 1368* The XapianQuery constructor which takes an array of subqueries is now 1369 wrapped more efficiently - previous a temporary C++ std::vector was built 1370 but now we avoid doing this. 1371 1372Xapian-bindings 1.2.23 (2016-03-28): 1373 1374Documentation: 1375 1376* Update links to Xapian website and trac to use https, which is now supported, 1377 thanks to James Aylett. 1378 1379PHP: 1380 1381* Check that the PHP interpreter we find is actually PHP5, and if not look 1382 harder. On current Debian unstable, php-config5 --php-binary reports 1383 /usr/bin/php which can be PHP7. 1384 1385* Document that PHP7 isn't currently supported, and explicitly check for and 1386 reject it in configure. 1387 1388Ruby: 1389 1390* configure: Stop preferring rdoc-1.8 to rdoc (this only happened in a 1391 fall-back case when rdoc wasn't found in the same directory as the ruby 1392 interpreter). 1393 1394Xapian-bindings 1.2.22 (2015-12-29): 1395 1396Documentation: 1397 1398* Stop maintaining ChangeLog files. They make merging patches harder, and stop 1399 'git cherry-pick' from working as it should. The git repo history should be 1400 sufficient for complying with GPLv2 2(a). 1401 1402General: 1403 1404* Stop wrapping internal methods of Xapian::Weight. 1405 1406* Return Error::get_description() rather than get_type + ": " + get_msg(). In 1407 many cases this is the same, but if context or errno are available, 1408 get_description() includes them. 1409 1410* Catch and report std::exception rather than handling it as an unknown error 1411 (so in particular std::bad_alloc will now be reported more helpfully). 1412 1413CSharp: 1414 1415* Fix configure test for whether $MONO can run CSharp programs - previously it 1416 would always fail, which would mean that the CSharp tests would only be run 1417 on systems where CSharp programs can be run directly. 1418 1419Lua: 1420 1421* Send stderr from lua version check to config.log instead of letting it appear 1422 on the terminal. 1423 1424PHP: 1425 1426* Fix memory leak and crash when using PHP subclasses of Xapian functors. 1427 1428* Subclasses of XapianMatchSpy and XapianPostingSource with implicit 1429 constructors now work. 1430 1431Python: 1432 1433* Add new testcase to catch any internal functions, methods, constants, etc 1434 which have accidentally been wrapped. 1435 1436Xapian-bindings 1.2.21 (2015-05-20): 1437 1438Lua: 1439 1440* README: Remove note about the Lua bindings being experimental - it's not 1441 really been true for some time now. 1442 1443Perl: 1444 1445* Wrap missing constants OP_SYNONYM and STEM_ALL_Z. 1446 1447* Add workaround for Perl defining a seed() macro which breaks compilation with 1448 GCC in C++11 mode (due to <algorithm> now pulling in random number generation 1449 classes with a method called seed). 1450 1451* Update list of unwrapped things in POD documentation. 1452 1453* Perl tests are ordering-dependent, so use .NOTPARALLEL to avoid problems 1454 during parallel builds. 1455 1456* Add test coverage for Enquire::set_collapse_key() with 1 and 2 parameters. 1457 1458* Add test that we can create all the stemmers returned by 1459 Stem::get_available_languages(). 1460 1461* t/symbol-test.t: If the symboltest module build fails, skip the test - it's 1462 likely due to external reasons, like incompatible compiler flags being taken 1463 from Perl's Config module, due to Perl having been built with a different 1464 compiler to Xapian. 1465 1466* Use croak_sv() or ERRSV if defined. 1467 1468PHP: 1469 1470* README: Remove note about the subclassing bug with PHP 5.4 and later - that 1471 was fixed in 1.2.19. 1472 1473Python: 1474 1475* README: Add note that 1.3.2 has Python 3 support, and that this will be in 1476 stable release 1.4.0. 1477 1478Ruby: 1479 1480* smoketest.rb: Fix "warning: assigned but unused variable - mset". 1481 1482* Ship generate-rdoc-stubs in the tarball. Reported by Matthias Klose in 1483 https://bugs.debian.org/782270 1484 1485Xapian-bindings 1.2.20 (2015-03-04): 1486 1487Portability: 1488 1489* configure: Avoid using \? in sed command in Lua detection - it isn't 1490 supported by all sed implementations. 1491 1492Lua: 1493 1494* configure: Rework LUA_SO checks to be clearer and to properly handle LUA_SO 1495 being specified without a leading '.'. 1496 1497* configure: Add an example of specifying LUA_SO to --help output. 1498 1499PHP: 1500 1501* Remove text about subclassing bug with PHP 5.4 and later - that was fixed in 1502 1.2.19. 1503 1504* In current PHP releases, dl() is disabled in most SAPIs, and even where 1505 available it will now only look in the configured extension directory. The 1506 upshot is that there no longer seems to be a sane way to install the PHP 1507 bindings without being root, so update the documentation to reflect this. 1508 Fixes #661, reported by Felix Ostmann. 1509 1510Xapian-bindings 1.2.19 (2014-10-21): 1511 1512PHP: 1513 1514* Fix up SWIG generated C++ wrapper code so that subclassing of wrapped classes 1515 in PHP works with PHP 5.4 and later. (Fixes #652, reported by Sebastian 1516 Gottfried) 1517 1518* Fix XapianQueryParser::set_stopper() and XapianTermGenerator::set_stopper() 1519 which were getting incorrectly wrapped such that they didn't actually do 1520 anything. Fixes #659, reported by jmienert. This bug was introduced by the 1521 reference tracking fix in 1.2.14. 1522 1523Ruby: 1524 1525* README: Note that Ruby 2.1 works too. 1526 1527Xapian-bindings 1.2.18 (2014-06-22): 1528 1529Documentation: 1530 1531* README: Add links to Erlang and Node.js bindings. 1532 1533Lua: 1534 1535* lua/smoketest.lua: Change expect() parameter order to the more natural (got, 1536 expected), which most of the calls already used, and fix up the few calls 1537 which passed (expected, got). 1538 1539PHP: 1540 1541* php/smoketest.php: Add missing "exit(1);" after reporting failure of check 1542 that MatchDecider returns an MSet with the expected docid in. Luckily this 1543 wasn't masking a test failure. 1544 1545Python: 1546 1547* python/pythontest.py: There's no longer a need to use chert_open() explicitly 1548 - chert is the default backend now, and both chert and brass support the 1549 required functionality for the tests which do this, so this just needlessly 1550 causes the tests to fail if chert is disabled in xapian-core. 1551 1552* configure: If the Python version is too new or too old, only report it once 1553 not twice. 1554 1555Ruby: 1556 1557* configure: Fix Ruby bindings to build on Windows (and other platforms where 1558 allow_undefined_flag=unsupported. (fixes#634, reported by Alexis Denis) 1559 1560Xapian-bindings 1.2.17 (2014-01-29): 1561 1562Portability: 1563 1564* Improve workaround which allows building against an uninstalled xapian-core 1565 on OS X - this should now work with any uninstalled xapian-core (not only in 1566 a tree with the same layout as an SVN or git checkout) and it also won't try 1567 to build against "../xapian-core/.libs" just because it happens to exist. 1568 (Backported from 1.3.1; fixes #322) 1569 1570Python: 1571 1572* configure: Some distros now point /usr/bin/python at Python 3, so the check 1573 for a Python 2 interpreter now checks for 'python2' first, and checks that 1574 the version of found interpreter is 2.x. 1575 1576Ruby: 1577 1578* Tweak configure to work with Ruby 2.0. 1579 1580Tcl: 1581 1582* Link against -ltclstubX.Y for Tcl 8.5 and later (reported by Sergei Golovan 1583 in https://bugs.debian.org/724830). 1584 1585* Use a better check for TCL_INC for Tcl 8.5 and later. 1586 1587Xapian-bindings 1.2.16 (2013-12-04): 1588 1589Documentation: 1590 1591* README: Note that the SWIG Perl bindings should replace the XS ones in 1.4.x. 1592 1593General: 1594 1595* Compress source tarballs with xz instead of gzip. 1596 1597* configure: Handle git snapshot naming. 1598 1599Portability: 1600 1601* configure: Update list of platforms where we tell libtool not to link in 1602 deplibs to match the list used for xapian-core. 1603 1604Perl: 1605 1606* Pass 0 instead of NULL for non-pointer parameter to av_fetch (spotted due to 1607 GCC 4.7 warning). 1608 1609* symboltest.t: Pass $CPPFLAGS and $CXXFLAGS from the environment through to 1610 the sub-build, fixing failure when built with CPPFLAGS=-D_GLIBCXX_DEBUG. 1611 1612PHP: 1613 1614* smoketest.php: If running under PHP >= 5.4, skip the tests we know will fail 1615 with a message explaining this. 1616 1617Python: 1618 1619* Provide bindings version in xapian.__version__ as per PEP 396. (see #346) 1620 1621* python/docs/examples/simpleexpand.py: Use Pythonic iteration over the ESet. 1622 1623* pythontest.py: Fix testcase checking we get an exception from using 1624 non-random-access iterators after then have advanced - previously these 1625 didn't actually test as fully as intended. 1626 1627Ruby: 1628 1629* Omit internal classes and methods from the rdocs. 1630 1631Xapian-bindings 1.2.15 (2013-04-16): 1632 1633General: 1634 1635* Fix configure --enable-quiet option to actually work for the bindings. 1636 1637Perl: 1638 1639* Fix doc typo: "as as" -> "as a" 1640 1641Ruby: 1642 1643* Fix deprecation warning in configure from Ruby 1.9.3. 1644 1645Xapian-bindings 1.2.14 (2013-03-14): 1646 1647Python: 1648 1649* Fix typo in doccomment. 1650 1651PHP: 1652 1653* Keep references to the PHP wrapper object when an object is set on another 1654 object. (fixes #614) 1655 1656Tcl: 1657 1658* Allow TCL_INC to be passed to configure. (fixes #612) 1659 1660Xapian-bindings 1.2.13 (2012-11-09): 1661 1662CSharp: 1663 1664* configure: Overhaul checks for C# tools to use modern names in preference. 1665 1666Lua: 1667 1668* Fix examples to use str(query) to get the query description. (Fixes #600) 1669 1670* Document that get_description() is mapped to str(), and end() to _end(). 1671 1672* Fix functor wrappers which return strings to be zero-byte clean. 1673 1674Perl: 1675 1676* Forward port tests of StringValueRangeProcessor with a prefix or suffix from 1677 1.2's XS Search::Xapian. (ticket#607) 1678 1679* Update testsuite not to use UNIVERSAL::isa() as a function, since doing so 1680 is deprecated. 1681 1682PHP: 1683 1684* Document that subclassing Xapian classes in PHP currently doesn't work with 1685 PHP 5.4. 1686 1687Xapian-bindings 1.2.12 (2012-06-27): 1688 1689No changes since 1.2.11 except to bump the version - this release was made to 1690fix an incorrect library version information update in xapian-core 1.2.11. 1691 1692Xapian-bindings 1.2.11 (2012-06-26): 1693 1694General: 1695 1696* Ship the scripts which generate the except.i files for Lua, Perl and Python. 1697 1698Perl: 1699 1700* In generated C++ code, pass 0 instead of NULL for non-pointer parameter to 1701 av_fetch() (spotted due to GCC 4.7 warning). 1702 1703PHP: 1704 1705* Fix "make check" to work for PHP when building from a release tarball with 1706 srcdir != builddir. 1707 1708* Work around "undefined symbol: zend_error_noreturn" error. 1709 1710Xapian-bindings 1.2.10 (2012-05-09): 1711 1712CSharp: 1713 1714* Use -keyfile and -keycontainer options to the C# compiler, because it warns 1715 us to do this instead of setting them in AssemblyInfo.cs. 1716 1717* Use diff's -c option when comparing the files SWIG generated against those we 1718 were expecting to get as the output should be easier to understand. 1719 1720* Sort both the lists of expected and of found SWIG-generated sources with 1721 Perl, to avoid problems with locale-specific sort orders. 1722 1723Java-SWIG: 1724 1725* Remove now superfluous old check that SWIG generated at least the sources we 1726 want - we now check it generated *exactly* the sources we want. 1727 1728* Use diff's -c option when comparing the files SWIG generated against those we 1729 were expecting to get as the output should be easier to understand. 1730 1731* Sort both the lists of expected and of found SWIG-generated sources with 1732 Perl, to avoid problems with locale-specific sort orders. 1733 1734Lua: 1735 1736* Now works with Lua 5.2. 1737 1738* "require 'xapian'" now returns the module table. (ticket #593) 1739 1740* lua/smoketest.lua: Improve reporting of test failures. 1741 1742Perl: 1743 1744* Avoid importing isa from UNIVERSAL to fix Perl 5.12 deprecation warning. 1745 1746* Remove #! lines with -W to fix "Name "Test::More::TODO" used only once: 1747 possible typo at /usr/share/perl/5.14/Exporter/Heavy.pm line 190." warnings. 1748 1749Python: 1750 1751* python/docs/examples/simpleexpand.py: Update to not use deprecated MSet 1752 iteration features which have been removed on trunk. This also fixes a 1753 segfault if there are no matches and no documents are explicitly marked as 1754 relevant. 1755 1756* python/testsuite2.py: Explicitly suggest "make check VERBOSE=1" as a simple 1757 way to rerun tests with verbose output. 1758 1759Ruby: 1760 1761* configure: Make sure the ruby subdirectory exists before trying to create 1762 ruby/rubyio.h, so this works in a VPATH build from a clean tree. 1763 1764Xapian-bindings 1.2.9 (2012-03-08): 1765 1766Java: 1767 1768* configure: Fix test for jni.h to try looking for jni.h relative to the real 1769 location of javac, which should work for more JDKs. 1770 1771Lua: 1772 1773* Handle an exception from C++ by raising a xapian.Error object as an error in 1774 Lua. 1775 1776* Rename get_description() methods to __tostring(), so that you can use write 1777 tostring(obj) in Lua. 1778 1779* configure: Honour LUA_LIB if already set. Fixes #581. 1780 1781* configure: Improve probing for LUA_LIB, and also probe for LUA_SO so we 1782 support platforms where the compiled Lua module isn't called .so. 1783 1784Perl: 1785 1786* Add tests of Document::get_docid(). 1787 1788PHP: 1789 1790* Add a test that Query constructor taking OP_NEAR with a window size works. 1791 1792Python: 1793 1794* python/testsuite2.py: Don't run off the traceback looking for a test function 1795 if the exception wasn't from a test function. 1796 1797Xapian-bindings 1.2.8 (2011-12-13): 1798 1799Lua: 1800 1801* Wrap user-subclassable functor objects by allowing the user to pass a 1802 Lua function where the functor object would be passed in the C++ API. 1803 1804PHP: 1805 1806* Fix "PHP Notice: Undefined variable: r in xapian.php". (Fixes bug#576) 1807 1808* The PHP bindings will now work again with a version of PHP built with ZTS 1809 enabled (which is the default on Microsoft Windows). This was broken by 1810 the changes to support subclassing in PHP in the version of SWIG used since 1811 1.2.6. 1812 1813Python: 1814 1815* Add a module docstring. (Fixes bug #573) 1816 1817* The python testsuite now checks for object leaks during each testcase. 1818 1819* In test_matchingterms_iter, run the code we're testing for leaks twice, and 1820 only check for leaks the second time to avoid falsely reporting a leak when 1821 some cached value gets initialised under Python 2.5. 1822 1823Ruby: 1824 1825* Wrap optional prefix parameter to Database::allterms. 1826 1827Xapian-bindings 1.2.7 (2011-08-10): 1828 1829Documentation: 1830 1831* INSTALL: Pull in a few updates from the latest version of the automake 1832 document which this file was originally based on. Add in the missing 1833 copyright and licensing information. 1834 1835* INSTALL: Add --with-lua to list of options. 1836 1837* INSTALL,README: It's no longer noteworthy that Mac OS X 10.1 and 10.2 aren't 1838 supported as Apple ditched them long ago, so drop this as a "Known Issue" in 1839 INSTALL and instead just say "Mac OS X >= 10.3" in the discussion of 1840 supported platforms in the README. 1841 1842* HACKING: Update and start section on deprecation warnings for the bindings. 1843 1844General: 1845 1846* Add missing wrappers for Database::has_positions() and 1847 TermIterator::positionlist_count(), and correct the return type of 1848 Database::get_doclength() from double to Xapian::termcount. 1849 1850CSharp: 1851 1852* README: Note a recent version of Mono which we've tested the C# bindings 1853 with. 1854 1855* Check that exactly the sources we expect are generated, and add some sources 1856 which were missing from the list. 1857 1858* Fix "make uninstall" so the compiled C++ module (typically _XapianSharp.so) 1859 gets removed. 1860 1861* Fix iterator ++ and -- so that the reference to the object isn't released 1862 prematurely, which was causing an occasional crash if the garbage collection 1863 happened at just the wrong moment, 1864 1865* Add test coverage for QueryParser.ParseQuery() with flags argument. 1866 1867* Wrap Query::MatchAll and Query::MatchNothing. (ticket#158) 1868 1869Java: 1870 1871* SmokeTest.java: Fix == comparisons with strings to use equals(). 1872 1873* Add test that string passing is zero byte safe. 1874 1875* Fix MyExpandDecider.accept() to really check the passed parameter. 1876 1877Java-SWIG: 1878 1879* Put the SWIG-generated Java bindings in package org.xapian. 1880 1881* Wrap Query::MatchAll and Query::MatchNothing. (ticket#158) 1882 1883* SmokeTest.java: Fix == comparisons with literal strings to use equals() 1884 1885* Add test that string passing is zero byte safe. 1886 1887* Fix MyExpandDecider.accept() to really check the passed parameter. 1888 1889* Fix the compile JNI code to have a .jnilib extension on Mac OS X. 1890 1891* Create an HTML documentation page based on java/README. 1892 1893* Copy java examples from the hand-coded JNI ones. 1894 1895* docs/examples/SimpleIndex.java: Update to use commit() rather than flush(). 1896 1897* Check that exactly the sources we expect are generated, and add some sources 1898 which were missing from the list. 1899 1900Lua: 1901 1902* Merge latest Lua changes from Xiaona Han. 1903 1904* lua/smoketest.lua: Add simple test for Database::positionlist_begin(). 1905 1906* simpleexpand.lua: Don't try to add anything to the RSet if there are no 1907 matches. 1908 1909Perl: 1910 1911* Sync updates to examples from XS Search::Xapian: 1912 1913 + Require Perl >= 5.6 so we can "use warnings;". 1914 1915 + Loop over file using while() (which reads a line per iteration) not 1916 foreach() (which reads the whole file up front). 1917 1918* Wrap MatchAll and MatchNothing for Perl (as Search::Xapian::Query::MatchAll 1919 and Search::Xapian::Query::MatchNothing). (ticket#158) 1920 1921* perl/t/termgenerator.t: Test TermIterator::index_text() with two arguments. 1922 1923* perl/Makefile.am: Fix "make check". 1924 1925* perl/t/symbol-test.t: Fix to work when built against an installed 1926 xapian-core. (ticket#558) 1927 1928PHP: 1929 1930* php/smoketest.php: Install an error handler so the test fails if there are 1931 any errors, warnings, notices, etc. 1932 1933* Change PHP examples and test program to use 'include "xapian.php"' like user 1934 code should (rather than 'include "php5/xapian.php"' as they did previously). 1935 1936* Wrap MatchAll and MatchNothing for PHP as XapianQuery::MatchAll() and 1937 XapianQuery::MatchNothing(). (ticket#158) 1938 1939Ruby: 1940 1941* Wrap MatchAll and MatchNothing for Ruby. (ticket#158) 1942 1943Xapian-bindings 1.2.6 (2011-06-12): 1944 1945General: 1946 1947* SWIG-based bindings are now generated with a newer version of SWIG 1948 (ticket#538). 1949 1950Portability: 1951 1952* On Mac OS X 10.5 or later, and 10.4 on x86, build Java JNI library with a 1953 .jnilib extension as we do for older versions. 1954 1955CSharp: 1956 1957* Upgrading to newer SWIG fixes issues with strings with newer C# versions. 1958 1959Java: 1960 1961* Fix memory leaks when functions taking string parameters throw exceptions. 1962 1963* Previously a hash table was used to map Java objects to C++ ones, but we 1964 now just cast the address of the C++ object to a jlong (which is 64 bits 1965 so will hold a pointer on current platforms). This is more efficient and 1966 avoids the need for thread locks around accesses to the hash table. 1967 1968* Remove explicit checks for NULL around calls to delete. 1969 1970* Mark makefiles which build Java code as .NOTPARALLEL to avoid race conditions 1971 during parallel builds. 1972 1973Lua: 1974 1975* Add support for Lua, which is being developed by Xiaona Han during GSoC this 1976 year. The current support should be regarded as experimental - it passes 1977 its automated tests, but the details of the Lua API are likely to evolve as 1978 the project progresses. 1979 1980Perl: 1981 1982* README: say that Perl bindings probably need Perl 5.8 or later. 1983 1984PHP: 1985 1986* Directors now work for PHP (ticket#488). New simplematchdecider.php example. 1987 1988Python: 1989 1990* python/pythontest2.py: With Python 2.7, gc.collect() doesn't always collect 1991 all the garbage, so repeat until no further objects are freed. 1992 (https://bugs.debian.org/625679 and https://bugs.gentoo.org/349484). 1993 1994Ruby: 1995 1996* ruby/smoketest.rb: Older Ruby 1.8.x doesn't have Dir.mktmpdir() - just skip 1997 the compaction tests for these versions. 1998 1999Xapian-bindings 1.2.5 (2011-04-04): 2000 2001Documentation: 2002 2003* README: Update info on SWIG-based Perl bindings. 2004 2005* INSTALL: Copy new Multi-Arch section from xapian-core/INSTALL. Replace VPATH 2006 section with better equivalent from xapian-core/INSTALL. 2007 2008General: 2009 2010* Wrap ESet::get_eset() with min_wt parameter (new in C++ API in 1.2.5). 2011 2012* configure: If xapian-core is a different release series, promote the 2013 mismatched versions warning to an error. 2014 2015Portability: 2016 2017* Mac OS X: Don't override MACOSX_DEPLOYMENT_TARGET on 10.5 and later, or 2018 10.4 on x86, as the default if unset on these versions is the current OS 2019 version. (ticket#541) 2020 2021* python/pythontest2.py: In test_compactor(), close any open databases before 2022 removing the directory as you can't delete an open database on Microsoft 2023 Windows. (ticket#526) 2024 2025CSharp: 2026 2027* Don't pass extra flags to Microsoft's gacutil. (ticket#516) 2028 2029* Clarify the licence is GPL "version 2 or later" in the meta information 2030 we put in the module. 2031 2032Python: 2033 2034* Remove old and broken Enquire.get_matching_terms() method. We deprecated 2035 Enquire.get_matching_terms() in 1.0.x, and removed it in 1.1.0, but 2036 accidentally left an older version of get_matching_terms() exposed. 2037 2038* Remove broken implementation of MSet.__contains__. This appears never to 2039 have worked, and to have been broken for at least the past 3.5 years without 2040 anyone mentioning it, and is probably of little use anyway, so no need to 2041 deprecate. 2042 2043* python/docs/index.html: Document that MSet.items and ESet.items are 2044 deprecated, and what to use instead. Note that MSET_DOCUMENT never worked on 2045 the tuple returned by MSet.items. (ticket#531) 2046 2047* Add test coverage for mset.items. 2048 2049Ruby: 2050 2051* Add test coverage for Xapian::Compactor. 2052 2053* Handle an empty response to $RUBY --version specially. This gives a less 2054 opaque error in cases where the user specified RUBY but the value given 2055 wasn't an executable file. 2056 2057Xapian-bindings 1.2.4 (2010-12-19): 2058 2059General: 2060 2061* Wrap the new Xapian::Compactor class. The resolve_duplicate_metadata() 2062 virtual method is wrapped for subclassing for Python and Ruby currently. 2063 2064* Eliminate separate Makefile.am in the docs subdirectory of each language 2065 subdirectory and just inline any rules into the main sub-Makefile.am, which 2066 allows more of the build to run in parallel. 2067 2068* Don't ship some files which are generated at build time. 2069 2070* configure: Need python in maintainer mode to run doxy2swig.py. 2071 2072Packaging: 2073 2074* RPM: Package the Perl bindings. 2075 2076* RPM: Don't package _XapianSharp.la. 2077 2078Portability: 2079 2080* For Mac OS X builds, set DYLD_LIBRARY_PATH to allow tests to find an 2081 uninstalled Xapian library. See ticket #322. 2082 2083* configure: Fix typo in code to set PYTHON_LIBS under cygwin. (ticket#509) 2084 2085CSharp: 2086 2087* Don't install _XapianSharp.la. 2088 2089Perl: 2090 2091* Merge SWIG-based Perl bindings originally developed by Kosei Moriyama during 2092 GSoC 2009. These are close to being a compatible replacement for the 2093 hand-coded XS bindings in Search::Xapian but also offer a more complete 2094 wrapping of the C++ API. We're planning to replace the XS bindings with the 2095 SWIG ones for easier maintenance. We encourage you to try them and let us 2096 know how you get on - particularly if you find cases where code which works 2097 with the XS bindings doesn't work with the SWIG ones. 2098 2099PHP: 2100 2101* Document that iterators shouldn't be dereferenced or advanced when at their 2102 end points (ticket#520). 2103 2104Python: 2105 2106* Fix memory leaks in typemaps which return Python lists. 2107 2108* MatchSpy can now be subclassed in Python. Remote use isn't currently 2109 supported. 2110 2111* configure: Use sys.version_info tuple, rather than string splicing which 2112 assumes the Python "major.minor" is 3 characters (which would fail if Python 2113 2.10 were ever released, for example). 2114 2115Xapian-bindings 1.2.3 (2010-08-24): 2116 2117Packaging: 2118 2119* xapian-bindings.spec: Don't run autoreconf - it's no longer required. 2120 2121Xapian-bindings 1.2.2 (2010-06-27): 2122 2123* No user-visible change except for bumping the version to indicate 2124 compatibility with Xapian-core 1.2.2. 2125 2126Xapian-bindings 1.2.1 (2010-06-22): 2127 2128This release includes all changes from 1.0.21 which are relevant. 2129 2130General: 2131 2132* Wrap Xapian::StemImplementation. Currently this has only been tested for 2133 Python. (ticket#448) 2134 2135Guile: 2136 2137* Remove non-functional disabled guile bindings left over from Open Muscat 2138 days - if someone wanted to add guile bindings, it would be easier to start 2139 from scratch. 2140 2141Java-SWIG: 2142 2143* Update list of generated java sources in the SWIG-based Java bindings. 2144 2145PHP: 2146 2147* zend_throw_exception() returns, so return control to PHP directly after 2148 calling it to avoid needless extra work and possible issues. 2149 2150Python: 2151 2152* Fix "from xapian import *". (ticket#477) 2153 2154* Fix testcase weight_normalise - a change in xapian-core means that 2155 get_max_possible() can now return zero for a non-existent term, so don't 2156 blindly calculate the reciprocal of it. 2157 2158* python/replicationtest2.py: Extend to check that changesets get applied 2159 correctly. 2160 2161* python/smoketest2.py: Check len(mset) works (improving test coverage of 2162 Python-specific wrapping). 2163 2164Xapian-bindings 1.2.0 (2010-04-28): 2165 2166This release includes all changes from 1.0.20 which are relevant. 2167 2168Portability: 2169 2170* configure: Tell libtool not to link in deplibs on platforms where we know 2171 they aren't needed. 2172 2173* configure: On Linux, extract the library search path from ldconfig which 2174 gives us the default entries reliably. 2175 2176Xapian-bindings 1.1.5 (2010-04-15): 2177 2178This release includes all changes from 1.0.19 which are relevant. 2179 2180Tcl: 2181 2182* tcl8/docs/index.html: Document WritableDatabase::close() as a way to 2183 sidestep the whole destructor issue. (ticket#62) 2184 2185Xapian-bindings 1.1.4 (2010-02-15): 2186 2187This release includes all changes from 1.0.18 which are relevant. 2188 2189General: 2190 2191* Update for the new Brass backend and other C++ API changes. 2192 2193* Wrap Database::get_doclength_lower_bound(), 2194 Database::get_doclength_upper_bound(), Database::get_wdf_upper_bound(), 2195 Database::valuestream_begin() and Database::valuestream_end() for all 2196 languages. (ticket#431) 2197 2198* Wrap ValueIterator::skip_to() and ValueIterator::check() for all languages. 2199 2200Python: 2201 2202* Wrap valuestreams as Database.valuestream(), returning a ValueStreamIter 2203 object which dereferences to a ValueStreamItem object, 2204 2205* Fix Enquire.clear_matchspies() wrapper which crashed in 1.1.3. 2206 2207Ruby: 2208 2209* Add safe wrapper for the valuestream iterator. 2210 2211Xapian-bindings 1.1.3 (2009-11-18): 2212 2213This release includes all changes from 1.0.15-1.0.17 which are relevant. 2214 2215General: 2216 2217* configure: Default to looking for xapian-config-1.1 unless XAPIAN_CONFIG is 2218 specified. 2219 2220* Wrap the new MatchSpy class, and associated features. 2221 2222* Don't wrap PostingSource::serialise(), Weight::serialise() and 2223 Weight::unserialise() as they aren't useful from the bindings. 2224 2225* Update for the Sorter to KeyMaker changes. 2226 2227PHP: 2228 2229* Fix PHP bindings to build when PHP has been compiled in multithreaded mode, 2230 as it standardly is on Microsoft Windows. Fixes #411. 2231 2232* Merged the PHP "smoketest" back together now we don't need to support 2233 PHP4 now. 2234 2235Python: 2236 2237* Fix a memory leak on error (in theory - we've not got a way to generate this 2238 error, so haven't been able to reproduce the leak or test the fix). 2239 2240Xapian-bindings 1.1.2 (2009-07-23): 2241 2242This release includes all changes from 1.0.14 which are relevant to trunk. 2243 2244Python: 2245 2246* Several changes towards fully supporting Python 3, but more work is required. 2247 (ticket#246) 2248 2249Xapian-bindings 1.1.1 (2009-06-09): 2250 2251This release includes all changes from 1.0.13 which are relevant to trunk. 2252 2253General: 2254 2255* Wrap the recently added extra parameter to Enquire::set_collapse_key(). 2256 2257CSharp: 2258 2259* Document that Query::MatchAll and Query::MatchNothing aren't wrapped for 2260 C# yet, and to use Query("") and Query() instead. 2261 2262* configure: If we don't find a C# compiler, don't test an empty command name 2263 further which saves a fork and avoids an odd looking message. 2264 2265PHP: 2266 2267* Document that Query::MatchAll and Query::MatchNothing aren't wrapped for 2268 PHP yet, and to use Query("") and Query() instead. 2269 2270Python: 2271 2272* Wrap Query::MatchAll and Query::MatchNothing for Python and document how they 2273 are wrapped (ticket#158). 2274 2275* python/smoketest2.py,python/smoketest3.py: Update tests with FLAG_PARTIAL to 2276 expect SYNONYM in generated query. 2277 2278Ruby: 2279 2280* Document that Query::MatchAll and Query::MatchNothing aren't wrapped for 2281 Ruby yet, and to use Query("") and Query() instead. 2282 2283Tcl: 2284 2285* Wrap Query::MatchAll and Query::MatchNothing for Tcl and document how they 2286 are wrapped (ticket#158). 2287 2288Xapian-bindings 1.1.0 (2009-04-22): 2289 2290Documentation: 2291 2292* INSTALL: Python 2.6 and later look in ~/.local for Python modules so update 2293 the instructions to suggest users use this standard location for installing 2294 without root access. 2295 2296General: 2297 2298* All deprecated features slated for removal in 1.1.0 have been removed. 2299 2300* All new C++ API features have been wrapped. Also, since we now supply some 2301 standard MatchDecider subclasses, we now wrap Enquire::get_mset() so that 2302 these can be passed in even for languages for which SWIG doesn't support 2303 subclassing. 2304 2305Packaging: 2306 2307* xapian-bindings.spec: Updated to reflect the new Python packaging. 2308 2309Portability: 2310 2311* configure: Use XAPIAN_CXXFLAGS for test compiles since it may include options 2312 to put the compiler into ISO C++ mode). 2313 2314PHP: 2315 2316* PHP4 support has been removed, since PHP4 is no longer supported upstream 2317 as of 2008-08-08. 2318 2319Python: 2320 2321* Python 2.3 or later is now required. 2.2 is essentially unsupported 2322 upstream. 2323 2324* The import method used has been changed (by using a newer SWIG version) 2325 and no longer gives a warning with Python 2.6. 2326 2327* Initial support for Python 3.0 has been added. This currently doesn't 2328 work correctly and should be treated as experimental. (ticket#346) 2329 2330* The newer SWIG version handles exceptions in director methods correctly 2331 so we no longer need our workaround for ticket #289. 2332 2333* Database::metadata_keys_begin() and Database::metadata_keys_end() are 2334 wrapped for Python as Database.metadata_keys(). 2335 2336* The Python bindings are now installed as a python package, with the 2337 files in a xapian subdirectory, hiding the internal _xapian module 2338 better. 2339 2340* Python now flags deprecation warnings for the single argument form and old 2341 parameter name (ascending) in set_sort_by_key(), set_sort_by_value() and 2342 friends. 2343 2344Xapian-bindings 1.0.23 (2011-01-14): 2345 2346Portability: 2347 2348* configure: Fix typo in code to set PYTHON_LIBS under cygwin. (ticket#509) 2349 2350PHP: 2351 2352* Document that iterators shouldn't be dereferenced or advanced when at their 2353 end points (ticket#520). 2354 2355Python: 2356 2357* Fix memory leaks in typemaps which return Python lists. 2358 2359Xapian-bindings 1.0.22 (2010-10-03): 2360 2361Packaging: 2362 2363* RPM: Don't package _XapianSharp.la. 2364 2365CSharp: 2366 2367* Don't install _XapianSharp.la. 2368 2369Python: 2370 2371* configure: Use sys.version_info tuple, rather than string splicing which 2372 assumes the Python "major.minor" is 3 characters (which would fail if Python 2373 2.10 were ever released, for example). 2374 2375* Add test_xapian_star.py to distribution - fixes failure of "test_import_star" 2376 testcase in pythontest.py. 2377 2378Xapian-bindings 1.0.21 (2010-06-18): 2379 2380Python: 2381 2382* xapian.BAD_VALUENO is now wrapped as a constant rather than variable which 2383 can't be written to. (ticket#297) 2384 2385* Fix cleaning of test directories to use "rm -rf" rather than "rm -f". 2386 2387* Add test to check that "from xapian import *" works. 2388 2389Xapian-bindings 1.0.20 (2010-04-27): 2390 2391Python: 2392 2393* Set PYTHONDONTWRITEBYTECODE=1 in the environment to prevent Python from 2394 generating .pyc files in srcdir for Python >= 2.6, and use a Bourne shell 2395 trap to delete them after running tests for older versions of Python. 2396 (ticket#315) 2397 2398Ruby: 2399 2400* configure: Fix typo so path to ruby is reported if Ruby < 1.8 is found. 2401 2402Xapian-bindings 1.0.19 (2010-04-15): 2403 2404Tcl: 2405 2406* tcl8/docs/index.html: Improve wording in a few places. 2407 2408Xapian-bindings 1.0.18 (2010-02-14): 2409 2410General: 2411 2412* Wrap new C++ API method Document::add_boolean_term(). 2413 2414Ruby: 2415 2416* Generate entries in the Ruby rdocs for all classes which aren't documented 2417 because of Ruby-specific methods. Fixes ticket#417. 2418 2419* Avoid absolute paths in the generated rdocs. 2420 2421Xapian-bindings 1.0.17 (2009-11-18): 2422 2423Packaging: 2424 2425* Improve RPM package summaries - the files are needed to *use* scripts as well 2426 as to develop them. Use "Tcl" instead of "TCL" as the former is more 2427 conventional. 2428 2429Portability: 2430 2431* python/Makefile.am: Restore the "./" path to the sourced file 2432 libtoolconfig.tmp as ksh requires it. 2433 2434Java: 2435 2436* Fix memory leak when passing a MatchDecider to Enquire::get_mset(). 2437 2438Xapian-bindings 1.0.16 (2009-09-10): 2439 2440Python: 2441 2442* Improved docstrings for QueryParser::set_default_op() and 2443 QueryParser::get_default_op() (automatically generated from changes in 2444 xapian-core). 2445 2446Xapian-bindings 1.0.15 (2009-08-26): 2447 2448Python: 2449 2450* Don't break long words when wrapping text in the generated API documentation 2451 comments as this was causing identifiers to be broken in two. 2452 2453Xapian-bindings 1.0.14 (2009-07-21): 2454 2455General: 2456 2457* configure: If $CSC is empty, don't try to run it. This was a cosmetic bug 2458 and the only side-effect was an odd looking message. 2459 2460Python: 2461 2462* Rename methods at build-time using SWIG rather than a run-time in Python, as 2463 the latter approach adds a small time overhead when the module is being 2464 loaded. 2465 2466Ruby: 2467 2468* Fix to accept an integer value > MAXINT for a double parameter. 2469 2470Xapian-bindings 1.0.13 (2009-05-23): 2471 2472Packaging: 2473 2474* xapian-bindings.spec: Update C# packaging for rename of XapianSharp.so to 2475 _XapianSharp.so in 1.0.11. 2476 2477* xapian-bindings.spec: Update Tcl8 packaging for where we now install the 2478 bindings since 1.0.6. 2479 2480PHP: 2481 2482* Backport fix from SWIG SVN for misuse of formatted error function in 2483 SWIG-generated code. 2484 2485Python: 2486 2487* Change the SWIG-generated wrapper code so it doesn't attempt to acquire 2488 Python's Global Interpreter Lock (GIL) in situations where we know that it 2489 will already be locked. This avoids some dead-locks with mod_python (due to 2490 mod_python bugs which are apparently unlikely to ever be fixed), and results 2491 in smaller wrappers which run a little faster (in tests with Xapian on x86-64 2492 Ubuntu 9.04, the stripped wrapper library was 11% smaller and ran 2.7% 2493 faster). (ticket#185) 2494 2495* README,python/docs/index.html: Update documentation of the above mod_python 2496 issue and also document the related mod_wsgi issue. The status is now that 2497 everything seems to work if you stick to the main interpreter (ticket#364). 2498 2499* Backport fix from SWIG SVN for misuse of formatted error function in 2500 SWIG-generated code. 2501 2502* python/docs/examples/simplematchdecider.py: Read "avoid_value" from the 2503 second parameter, not the third. 2504 2505* python/docs/examples/simplematchdecider.py, 2506 python/docs/examples/simplesearch.py: Make use of str.join() for simpler, 2507 clearer code. 2508 2509Ruby: 2510 2511* README: Note that the testsuite fails due to a bug in the test/unit module in 2512 Ruby 1.9.0, but applications using the bindings should work, and that the 2513 testsuite works with Ruby 1.9.1. Drop all mention of Ruby 1.6.x as that 2514 appears to be completely dead both upstream and in the wild. 2515 2516Xapian-bindings 1.0.12 (2009-04-19): 2517 2518Documentation: 2519 2520* INSTALL: Add a note about being able to pass variables to configure to pick 2521 which of several parallel installations of a language to build for. 2522 2523Python: 2524 2525* python/pythontest.py: Round the weights returned for the OP_SCALE_WEIGHT 2526 test to avoid failing due to rounding differences. 2527 2528* python/testsuite.py: Remove bare except: handlers from testsuite, so Ctrl-C 2529 stop the whole testsuite, not just the currently running testcase. 2530 2531Xapian-bindings 1.0.11 (2009-03-15): 2532 2533Documentation: 2534 2535* README: Note that 1.0.x doesn't (and isn't currently planned to) support 2536 Python 3, and possible current issues with Ruby 1.9. 2537 2538Portability: 2539 2540* Merge fixes from Cygwin Ports, so bindings should build out of the box on 2541 Cygwin. 2542 2543Python: 2544 2545* python/docs/examples/: Use str(obj) rather than obj.get_description() (the 2546 latter is deprecated, and support was removed in 1.0.0). 2547 2548* Add support for using the new name ("reverse") for the second argument of 2549 set_sort_by_key() and set_sort_by_value() and friends as a named parameter. 2550 The old name ("ascending") is still supported, but will be deprecated in 2551 1.1.0. 2552 2553* Keep Python references to Sorter, Stopper, and ValueRangeProcessor objects 2554 which get set on other objects to avoid segmentation faults if they go out 2555 of scope before the object they are set on does. (ticket#341) 2556 2557Ruby: 2558 2559* Fixes for Ruby 1.9 compatibility (ticket#323). The test harness currently 2560 fails so "make check" doesn't pass, but code using the bindings should work. 2561 2562Xapian-bindings 1.0.10 (2008-12-23): 2563 2564Python: 2565 2566* Need to clean testsuite.pyc from srcdir since that's where it gets generated 2567 as things stand (upstream fix for Debian bug 506090). 2568 2569Xapian-bindings 1.0.9 (2008-10-31): 2570 2571General: 2572 2573* configure: Add support for "--enable-quiet" like xapian-core and omega have. 2574 2575* Wrap new Database::metadata_keys_begin() and Database::metadata_keys_end() 2576 methods. 2577 2578Xapian-bindings 1.0.8 (2008-09-04): 2579 2580General: 2581 2582* configure: Report bug report URL in --help output. 2583 2584Python: 2585 2586* Fix mangling of exceptions thrown from Python subclasses of Xapian classes. 2587 (bug#289) 2588 2589* Fix memory leaks in the xapian.Query constructor. (bug#294) 2590 2591Xapian-bindings 1.0.7 (2008-07-14): 2592 2593Documentation: 2594 2595* Document how all the database factory functions and library version functions 2596 are wrapped for all languages. 2597 2598General: 2599 2600* Fix to build against a xapian-core which has quartz and/or flint disabled. 2601 2602* The "program" version of Remote::open() has been wrapped for some time, so 2603 update the documentation which said it wasn't. 2604 2605Packaging: 2606 2607* xapian-bindings.spec: Remove "www." from xapian.org and oligarchy.co.uk URLs. 2608 2609Portability: 2610 2611* For Java, Python, and Ruby, use the libtool -shrext option to specify a 2612 different module extension rather than our own ugly bodge. 2613 2614Java: 2615 2616* Make passing string from Java to C++ zero-byte safe. It doesn't appear to be 2617 simple to make C++ to Java work though. 2618 2619PHP: 2620 2621* Add test that OP_VALUE_GE works for PHP. 2622 2623Python: 2624 2625* Several corrections to the Python documentation. 2626 2627* configure: Fix problem with building under mingw. 2628 2629Ruby: 2630 2631* Include simplematchdecider.rb example. 2632 2633* smoketest.rb: Test the version reporting functions. 2634 2635Tcl: 2636 2637* Include simpleexpand.tcl example. 2638 2639* Fix where the Tcl module gets installed. 2640 2641* README: Note that Tcl 8.3 and earlier are no longer supported by upstream. 2642 2643Xapian-bindings 1.0.6 (2008-03-17): 2644 2645General: 2646 2647* Wrap OP_VALUE_GE and OP_VALUE_LE and the new Query constructor which they are 2648 used with. 2649 2650* configure: Correct the required SWIG version given in an error message. 2651 2652PHP: 2653 2654* php/smoketest.php: Add note that this script should be run using 'make check' 2655 in the build tree (rather than trying to copy it to a webserver as someone 2656 recently tried to). 2657 2658* php/smoketest.php: Fix to work under PHP4. 2659 2660Python: 2661 2662* The Python module now always has the extension which Python expects, which 2663 fixes a failure on Mac OS X. 2664 2665Ruby: 2666 2667* Automatically install/uninstall the Ruby rdoc-generated documentation along 2668 with the ruby bindings. 2669 2670Tcl: 2671 2672* configure: Sort out the default value of TCL_LIB, which could end up being 2673 under /usr/share in xapian-bindings 1.0.4 and 1.0.5. 2674 2675Xapian-bindings 1.0.5 (2007-12-21): 2676 2677General: 2678 2679* Wrap Xapian::Sorter and subclasses. 2680 2681* Wrap Enquire::set_sort_by_key(), Enquire::set_sort_by_key_then_relevance(), 2682 and Enquire::set_sort_by_relevance_then_key(). 2683 2684* Factor out the code to protect multitarget rules against parallel make, and 2685 fix it to handle the source being changed while the rule is executing, and to 2686 correctly return an error code if we fail while trying to recover from the 2687 removal of a target of a multi-target rule. 2688 2689* configure: Improve the clarity of the error given when none of the tools 2690 needed for any supported language are found. 2691 2692* configure: SWIG 1.3.32 has now been released, so require at least this 2693 released version for maintainer builds. 2694 2695Java: 2696 2697* Add explicit '#include <cstring>' to fix build with the latest snapshots of 2698 GCC 4.3. 2699 2700* configure: Log the output of trying to compile conftest.java in config.log; 2701 if the test fails, report whether the failure was compiling or running the 2702 test program. 2703 2704* Check for directory existence rather than calling mkdir unconditionally as 2705 despite the "(ignored)", the error message seems to confuse some people. 2706 2707PHP: 2708 2709* Add feature test for XapianMultiValueSorter. 2710 2711* php/smoketest5.php: Fix use of Database_get_document to new style OO 2712 interface. Fix the error reported when the PHP5 exception test fails. 2713 2714* php/smoketest.php: Add feature test to confirm that optional arguments to 2715 XapianQuery's "term" constructor are wrapped. 2716 2717Python: 2718 2719* Don't drop the GIL when calling Xapian.MSet.items and Xapian.ESet.items - 2720 these properties build a python list, so dropping the GIL isn't safe and 2721 may cause undefined behaviour in multithreaded environments. 2722 2723* configure: Update error message to reflect requirement for at least python 2724 2.2. 2725 2726* configure: Change "print foo" to "print(foo)" in python version checks, for 2727 compatibility with python 3.0. 2728 2729Ruby: 2730 2731* The Ruby bindings now work on Mac OS X (the Ruby module's extension was 2732 previously incorrect). 2733 2734* Run "rdoc" to generate HTML for the Ruby-specific API documentation which 2735 ruby/docs/index.html previously had a dead link to. 2736 2737Tcl: 2738 2739* configure: Overhaul code to find tcl.h since the old version no longer worked 2740 with Debian unstable. 2741 2742* tcl8/docs/index.html: Update documentation to cover flint and mention that 2743 quartz is now deprecated. 2744 2745* Remove code to handle `const char *' exceptions - as of 1.0.0 the QueryParser 2746 throws QueryParserError instead. 2747 2748Xapian-bindings 1.0.4 (2007-10-30): 2749 2750General: 2751 2752* Wrap new OP_SCALE_WEIGHT query operator, and corresponding Query constructor. 2753 Add feature tests for all languages. 2754 2755* The "bindings.html" file documenting each of the bindings has been renamed to 2756 "index.html". 2757 2758Packaging: 2759 2760* Fix the PHP Makefile.am to work with autoconf < 2.60 to fix RPM builds for 2761 older distros. 2762 2763Portability: 2764 2765* Fix warnings when compiling with GCC 4.2. 2766 2767PHP: 2768 2769* Update to newer SWIG SVN snapshot to fix memory leaks in wrapped constructors 2770 and methods/functions which return a wrapped class. 2771 2772* For PHP4, wrap Xapian::sortable_serialise() as xapian_sortable_serialise() 2773 and Xapian::sortable_unserialise() as xapian_sortable_unserialise(). 2774 2775* Document how non-class functions are wrapped. 2776 2777* Fix wrapping of NumberValueRangeProcessor for PHP4. 2778 2779* smoketest.php: Split the regression test for bug#193 into separate 2780 versions for PHP4 and PHP5 as the previous version only worked for PHP5. 2781 2782Python: 2783 2784* python/docs/index.html: Promote the Pythonic iterators, and deprecate the 2785 non-pythonic iterators. Make it clearer that the "sequence API" is 2786 deprecated. 2787 2788* Add test of a custom ValueRangeProcessor (ie, one written in python). 2789 2790* Update the examples to use the new-style attributes to access MSet item 2791 values rather than the old-style MSET_* constants. 2792 2793* Document MSET_DOCUMENT. 2794 2795Ruby: 2796 2797* smoketest.rb: Rename test of metadata access methods which had been named the 2798 same as the matchdecider test due to a copy-and-paste error. 2799 2800Xapian-bindings 1.0.3 (2007-09-28): 2801 2802General: 2803 2804* Wrap new methods Database::get_metadata() and 2805 WritableDatabase::set_metadata(). 2806 2807* "make uninstall" now removes the loadable module we install for each of 2808 the bindings. 2809 2810* "make distcheck" now works. 2811 2812* Distribution tarballs are now in the POSIX "ustar" format since it saves 2813 about 40KB and we need to use it for xapian-core anyway. 2814 2815Packaging: 2816 2817* RPMs: Package xapian.php. 2818 2819CSharp: 2820 2821* Remove wrapper for ValueRangeProcessor::operator(), since it can't be 2822 usefully used currently. 2823 2824Java: 2825 2826* Remove wrappers for the Muscat36 backend, which has now been dropped from the 2827 C++ library. 2828 2829* "make clean" now removes the class files generated for inner classes. 2830 2831PHP: 2832 2833* Add feature test for DateValueRangeProcessor when used with QueryParser. 2834 2835* ValueRangeProcessor::apply() can now be called from PHP (bug#193). This 2836 isn't actually very useful, since you can't subclass it in PHP currently. 2837 2838* Fixed wrapping of Enquire::set_cutoff() - previously this would only work 2839 if the third parameter was specified and a floating point number (e.g. 0.0). 2840 2841* php/docs/bindings.html: Fix errors in example code. 2842 2843Python: 2844 2845* ValueRangeProcessor::operator() is now wrapped as a __call__ method in 2846 Python which takes two strings and returns a 3-tuple (value_number, 2847 modified_begin, modified_end). Previously this always failed with a 2848 type error, so this doesn't break existing code. 2849 2850* python/pythontest.py: Interpret any commandline arguments as a list of 2851 tests to be run (the default is to run all tests). 2852 2853* README,python/docs/bindings.html: Add a note about the problems with 2854 mod-python (as described in bug #185). 2855 2856* python/pythontest.py: Delete the database handles before deleting a database 2857 to fix problems running the Python tests on MS Windows (bug#179). 2858 2859* "make clean" now removes testsuite.pyc. 2860 2861Ruby: 2862 2863* Check for RUBY_INC, RUBY_LIB, and RUBY_LIB_ARCH in the environment or on 2864 the configure command-line. The defaults for RUBY_LIB and RUBY_LIB_ARCH are 2865 now the site-specific directories, which is more correct when building 2866 from source. Debian packages, etc can override this by setting RUBY_LIB and 2867 RUBY_LIB_ARCH. 2868 2869Tcl: 2870 2871* Check for TCL_LIB in the environment or on the configure command-line to 2872 allow installing without root access more cleanly. 2873 2874Xapian-bindings 1.0.2 (2007-07-05): 2875 2876Documentation: 2877 2878* Document use of PYTHON_LIB and PHP_EXTENSION_DIR instead of pylibdir and 2879 phpextdir. 2880 2881* Remove documentation of removed "--with-swig" configure option. 2882 2883General: 2884 2885* Add methods of NumberValueRangeProcessor for serialising and 2886 unserialising doubles. 2887 2888* Add methods and constants supporting spelling correction and synonyms. 2889 2890* Value of XAPIAN_CONFIG supplied to configure is now passed to distcheck, 2891 to ensure that it works with uninstalled copies of Xapian. 2892 2893* Value of PYTHON_LIB supplied to configure is now respected - previously 2894 it was documented, but ignored. 2895 2896* Add support for supplying PHP_EXTENSION_DIR to configure. 2897 2898* Change to using "%include", rather than reproducing contents of header 2899 files, for "queryparser.h", "document.h" and "postingiterator.h". 2900 2901* Add new form of get_mset() which allows a matchspy matchdecider to be 2902 set. 2903 2904* RPMs: Don't mention %makeinstall in a .spec file comment as that makes RPM 2905 explode. Add in a missing "mv" in the command for installing tcl8 2906 documentation. 2907 2908CSharp: 2909 2910* Fix rule handling parallel make to include xapian_wrap.h 2911 2912PHP: 2913 2914* Install xapian.php as <PREFIX>/share/php<PHPMAJOR>/xapian.php. There 2915 doesn't seem to be a standard location, but this works for Debian at 2916 least, and it seems better to at least try to install it. 2917 2918* Rename ValueRangeProcessor and subclasses and TermGenerator to have a Xapian 2919 prefix for PHP4. 2920 2921Python: 2922 2923* Fix a threading problem: the GIL was not being acquired in the exception 2924 handling code before setting the Python exception state, leading to 2925 various memory corruption symptoms in threaded programs. 2926 2927* Add special iterators to Database for synonyms, synonym_keys and 2928 spellings. 2929 2930* Add test cases for OP_VALUE_RANGE queries, getting spelling corrections, 2931 synonym iterators and spelling iterators. 2932 2933* In the test suite, expect_query() now adds "Xapian::Query(" and ")" around 2934 the expected description to make the tests more readable. 2935 2936Xapian-bindings 1.0.1 (2007-06-11): 2937 2938Documentation: 2939 2940* NEWS: Fix the recent headings which said "Xapian-core" to say 2941 "Xapian-bindings". 2942 2943General: 2944 2945* Wrap Xapian::Query constructor for creating ValueRange queries. 2946 2947* Wrap new forms of Xapian::Database::allterms_begin() and allterms_end() 2948 which take a prefix. 2949 2950Packaging: 2951 2952* RPMs: Use "make install" instead of %makeinstall to avoid doubled 2953 %{buildroot} prefix on most files which we then have to work around. 2954 2955CSharp: 2956 2957* SimpleIndex now uses Xapian.TermGenerator. 2958 2959* SimpleSearch now uses Xapian.QueryParser. 2960 2961* New SimpleExpand example. 2962 2963* Document explicitly how STEM_SOME constants are currently wrapped. 2964 2965* Update GetTermName() reference in documentation to GetTerm(). 2966 2967* SmokeTest.cs: Update comment about Portable.NET bug - the bug is fixed in 2968 their CVS repo, and the fix should be in their 0.8.2 release. 2969 2970Java: 2971 2972* `configure --help' documented that environmental variable JNI_INCLUDE_DIR was 2973 looked at, but in fact its value was read but ignored. We now use it as the 2974 first place to look for jni.h. 2975 2976* configure will now automatically add an extra "-I" for the 2977 linux/solaris/win32 subdirectory which Sun's JDK requires. 2978 2979* Document JAVA_HOME and JDK_HOME in ./configure --help and mark them as 2980 "precious" so their values are preserved for when configure is automatically 2981 rerun. 2982 2983PHP: 2984 2985* Enquire::get_mset(first, maxitems, omrset) now works for PHP5. 2986 2987* The PHP examples have been rewritten to be clearer and to make use of the 2988 new XapianTermGenerator class. 2989 2990Python: 2991 2992* Python examples now use xapian.QueryParser and xapian.TermGenerator. 2993 2994* Add support for prefix-restricted pythonic allterms iterators. 2995 2996* Update documentation in a couple of places to refer to updated replacements 2997 for MSetIterator. 2998 2999* Change testsuite output to be more vim-friendly (vim should be able to jump 3000 to the right lines now). 3001 3002* __str__ on Xapian::Error now includes extra information in some cases (the 3003 error_string and context, if they are set). 3004 3005* python/smoketest.py: Eliminate uses of the legacy sequence API. 3006 3007* python/pythontest.py: The legacy sequence API is only supported for Python 3008 2.3 and later, so don't run tests for it when running under Python 2.2. 3009 3010* We now generate and install xapian.pyo as well as xapian.pyc. 3011 3012Ruby: 3013 3014* The Ruby examples now use the Xapian::QueryParser and Xapian::TermGenerator 3015 classes. 3016 3017* Add missing rename for the C++ TermGenerator::set_document() method so it can 3018 be used as "tg.document = doc" in Ruby. 3019 3020* Fixed compilation on Mac OS X and warning from GCC on 32-bit Linux platforms. 3021 3022Tcl: 3023 3024* tcl8/docs/examples/simpleexpand.tcl: New example to demonstrate relevance 3025 feedback, based on C++ simpleexpand.cc. 3026 3027* tcl8/docs/example/simpleindex.tcl: New simpler example making use of the 3028 TermGenerator class. 3029 3030* tcl8/docs/example/simplesearch.tcl: New simpler example making use of the 3031 QueryParser class. 3032 3033* tcl8/docs/bindings.html: Document how constants are wrapped. 3034 3035* Update smoketest and examples to require version 1.0.0 - previously this 3036 required 0.9.6, which failed since TCL doesn't accept differing major 3037 version numbers. 3038 3039* pkgIndex.tcl is now generated by configure. 3040 3041Packaging: 3042 3043* The required automake version has been lowered to 1.8.3, so RPMs can now be 3044 built on RHEL 4 and SLES 9. 3045 3046Xapian-bindings 1.0.0 (2007-05-17): 3047 3048Documentation: 3049 3050* Document Unicode support for each language. 3051 3052* Assorted minor improvements and typo fixes. 3053 3054General: 3055 3056* Add wrappers for ExpandDecider, and Enquire::get_eset() variants which use 3057 it, for languages where SWIG supports directors. 3058 3059* Wrap new features: TermGenerator, ValueRangeProcessor hierarchy, the 3060 OP_VALUE_RANGE query operator, the new overloaded form of parse_query, which 3061 allows the "default_prefix" argument to be supplied, QueryParser flags 3062 FLAG_PURE_NOT and FLAG_PARTIAL. 3063 3064* Deprecated Xapian::Stem's stem_word() method in favour of apply(). 3065 3066* Remove wrappers for deprecated features removed from the C++ API (see 3067 docs/deprecation.html in xapian-core for full details and upgrade 3068 information). 3069 3070* Deprecate ESetIterator::get_termname() in favour of ESetIterator::get_term(). 3071 3072* QueryParserError is now a real error, so remove special handling for "const 3073 char *" exceptions. 3074 3075* Use a stamp file in "make" rules with multiple targets so that parallel 3076 make works. 3077 3078* configure: Now quotes $PYTHON, etc so that you can specify a program with 3079 arguments. 3080 3081* configure: If the user specifies a program which doesn't exist (e.g. 3082 PYTHON=/opt/bin/ptyhon) don't autoprobe after failing to find it. 3083 3084* configure: Disable probes for f77, gcj, and rc completely by preventing 3085 the probe code from even appearing in configure - this reduces the size of 3086 configure by 28% and should speed it up significantly. 3087 3088* configure: If the version check against the xapian-core version detects a 3089 mismatch, we now issue a warning rather than a hard error since if you're 3090 careful this can work. The warning is issued late on in configure, so it's 3091 harder for the user to miss. 3092 3093* configure: The --with-swig option has been removed. It no longer has a 3094 purpose as we now ship the files which are generated by SWIG. 3095 3096Portability: 3097 3098* The PHP bindings can now be built with MSVC for Microsoft Windows. 3099 3100CSharp: 3101 3102* When using Mono 1.2, we must build with gmcs (the C# 2.0 compiler) rather 3103 than mcs to avoid segmentation faults at runtime due to unimplemented 3104 features in mcs. Document this, and update configure to prefer gmcs. 3105 3106* The return type of MatchDecider::operator() is now `bool' rather than `int' 3107 (in line with the same change in the C++ API). 3108 3109* Xapian.Stem.StemWord() deprecated in favour of Xapian.Stem.Apply(). 3110 3111Java: 3112 3113* The Java bindings have been updated to use C++ replacements for deprecated 3114 methods, so they still build. The Java wrappers still provide the old 3115 deprecated names for now though. The longer term plan is to replace the 3116 hand-written JNI with SWIG generated wrappers (work has now begun on this) 3117 which is likely to require some API changes, and it seems more sensible to 3118 make any changes to align with C++ API changes at the same time. 3119 3120* Enquire.getQuery() is implemented entirely in Java, so strip out the unused 3121 MyQuery mechanism, and so fix a memory link which it caused (bug#105). 3122 3123PHP: 3124 3125* Fix undefined behaviour in get_matching_terms(). 3126 3127* Document the (existing) renaming of methods which are PHP reserved words 3128 (empty() to is_empty() and clone() to clone_object()). 3129 3130* Deprecated Xapian::Stem's stem_word() method in favour of apply(). 3131 3132Python: 3133 3134* The Python bindings now throw exceptions as classes with a hierarchy which 3135 mirrors that of the C++ Xapian::Error and its subclasses. The xapian.Error 3136 base class inherits from the standard Python Exception class. 3137 3138* All Python methods which accept strings can now be passed either a unicode 3139 object or a simple string. Strings are returned as simple strings: unicode 3140 input will be returned as utf-8 encoded output. The documentation now 3141 contains a "Unicode" section. 3142 3143* The Python bindings should now be usable more efficiently from threaded 3144 Python applications since we now use SWIG's -threads option when generating 3145 them, so that the GIL is released during long-running Xapian operations 3146 (bug#137). 3147 3148* Most classes, methods, functions, etc now have docstrings which are either 3149 automatically extracted from the C++ documentation comments, or overridden by 3150 more appropriate versions. 3151 3152* Most of the Pythonic iterators now return an object instead of a sequence, 3153 which means they now lazily fetch the information which previously had to be 3154 fetched to put it in the sequence. The old sequence API is supported for 3155 compatibility, but is scheduled for removal in Xapian 1.1.0. 3156 3157* Those Python iterators which have skip_to() methods now return the item 3158 skipped to, and next() will return the following item. Previously, they 3159 returned None, and next() returned the item skipped to. Several bugs in the 3160 skip_to() wrappers were fixed. 3161 3162* Because of the lazy access, some objects returned by iterators will raise 3163 an error if the lazy evaluation happens after the iterator has moved on 3164 (since the underlying Xapian API doesn't allow efficient access to the 3165 information in this situation). The exact semantics are defined in the 3166 docstrings for each iterator. 3167 3168* Those Pythonic iterators which return only a list of terms now return 3169 simple strings, instead of a sequence or an object containing the term. This 3170 is an incompatible change with earlier releases. The affected iterators are 3171 Enquire.matching_terms, Query.__iter__, QueryParser.stoplist and 3172 QueryParser.unstemlist. 3173 3174* The contents of an MSet can now be iterated in the standard Python way. 3175 The iteration will return MSetItem objects. The __contains__ and __getitem__ 3176 methods are also implemented, allowing the "in" and [] operators to work. 3177 MSet.__getitem__ is a synonym for MSet.get_hit. 3178 3179* MSet.get_hit() now returns an MSetItem object instead of an MSetIterator, 3180 so that lazy access to its attributes is supported. MSetItem has some 3181 deprecated methods which mimic the MSetIterator interface to allow old code 3182 to work without modification until release 1.1.0. 3183 3184* MSetItem provides access to the collapse_key and collapse_count, which 3185 weren't accessible from the sequence returned by the iterators before this 3186 release. 3187 3188* Out-of-range access to MSets will now raise an IndexError - it used to 3189 cause undefined behaviour (usually a crash). 3190 3191* The Python testsuite is now much more extensive, and supports colour output 3192 and verbosity levels, much like the C++ testsuite. Tests of deprecated 3193 features are separated out, so that they can easily be removed when the 3194 features are removed. The Python tests currently focus mainly on Python 3195 specific iterators and related functionality - general Xapian behaviour is 3196 tested by the C++ testsuite. 3197 3198* The pure Python code in the bindings now uses new-style classes, since we 3199 have required Python >= 2.2 since Xapian release 0.9.9. 3200 3201* Enquire.get_matching_terms is now deprecated - use Enquire.matching_terms 3202 instead. 3203 3204* The get_description() method which many classes support has been deprecated 3205 in favour of new more pythonic __str__ methods, so that the str() builtin can 3206 be used. get_description() is deprecated and scheduled for removal in 1.1.0. 3207 3208Ruby: 3209 3210* We no longer regard the Ruby bindings as "beta quality", so remove the 3211 warning from their documentation. 3212 3213* Document that that C++ operator() becomes the method "call" in Ruby. 3214 3215* Don't read termfreq in safe wrapper for Document::termlist_begin(). Don't 3216 read wdf in safe wrapper for Database::allterms_begin() (bug#133). 3217 3218Tcl: 3219 3220* Deprecated Xapian::Stem's stem_word() method in favour of apply(). 3221 3222Xapian-bindings 0.9.10.1 (2007-04-04): 3223 3224PHP: 3225 3226* Fix PHP5 class wrapper generation in a few cases for overloaded methods with 3227 default parameters. The most notable case was a missing Query constructor 3228 which meant that QueryParser was unusable. 3229 3230* Fix compilation of the PHP4 bindings with ZTS-enabled versions of PHP 3231 (which mostly seems to mean the MS Windows version). 3232 3233* Fix PHP5 crash on exit with ZTS-enabled versions of PHP (which mostly 3234 seems to mean the MS Windows version). 3235 3236* Add note to the documentation that PHP examples are written for CLI version 3237 of PHP, but that the bindings work with any version. 3238 3239* Add check to all PHP examples that they are being run under a CLI version of 3240 PHP. 3241 3242Python: 3243 3244* simpleexpand.py: Print each term's expand weight as a floating point value, 3245 not an integer. 3246 3247Ruby: 3248 3249* INSTALL: document how to install Xapian's Ruby bindings in your home 3250 directory. 3251 3252Xapian-bindings 0.9.10 (2007-03-04): 3253 3254Java: 3255 3256* Under Mac OS X, automatically look in the standard location for jni.h, 3257 and automatically rename the JNI library we build to ".jnilib", as is 3258 required by the OS X JVM. 3259 3260* java/README: Note success with Sun's JDK 1.5.0_06-b05, plus the requirement 3261 to add the linux header directory to the include path when using this JDK. 3262 3263* Add missing default constructor for RSet class - it's not much use without 3264 this! 3265 3266* Fix Enquire.getESet() to actually work. 3267 3268* Fix bug in ESetIterator.hasNext(). 3269 3270* Fix MatchDecider and ExpandDecider so subclassing in Java actually works. 3271 3272* Fix memory leak with some JVMs in the "Query from array" constructor. 3273 3274* Fix memory leak in Enquire.setQuery(). 3275 3276* SmokeTest.java: Add regression tests for RSet default constructor, 3277 Enquire.getESet(), ESetIterator.hasNext(), MatchDecider, ExpandDecider. 3278 Add feature tests for Enquire.getQuery(), and to make sure we get passed 3279 the right document in a java subclass of MatchDecider. 3280 3281* configure: Look for jni.h in $JAVA_HOME/include and $JDK_HOME/include if the 3282 respective variables are set. 3283 3284PHP: 3285 3286* Update the documentation to fix out-of-date information and document the 3287 differences between the PHP4 and PHP5 wrappers. 3288 3289* Update the examples to use the new Object Oriented API, and provide versions 3290 for both PHP4 and PHP5. 3291 3292* Add a "simpleexpand" example. 3293 3294* For PHP4, Xapian::DB_CREATE_OR_OPEN should be wrapped as 3295 Xapian_DB_CREATE_OR_OPEN not DB_CREATE_OR_OPEN, so wrap it with the 3296 new name, but keep the old name for now for backward compatibility. 3297 3298* configure: Try `$(PHP_CONFIG) --php-binary` when looking for a PHP 3299 interpreter - this works with PHP5. 3300 3301* configure: Remove the sanity check for PHP_EXTENSION_DIR added in Xapian 3302 0.9.8 - if Xapian is the first PHP extension to be installed, the extension 3303 directory may not exist and "make install" will create it. 3304 3305* configure: If zend.h isn't found and configure was run with "--with-php", 3306 exit with an error rather than automatically disabling PHP support. 3307 3308Python: 3309 3310* Fix a problem which preventing building for Python 2.5 on 64 bit platforms. 3311 3312Packaging: 3313 3314* RPMs: Add support for passing "--without python" to rpmbuild. Document the 3315 various "--without" options in a comment at the start of the .spec file. 3316 3317* RPMs: Remove "." from the end of the Summary. 3318 3319Xapian-bindings 0.9.9 (2006-11-09): 3320 3321Documentation: 3322 3323* Ship our custom INSTALL file rather than the generic one from autoconf which 3324 we've accidentally been shipping instead since 0.9.5. 3325 3326General: 3327 3328* Wrap Flint::open() and Flint::open_writable(). 3329 3330* configure: Require SWIG 1.3.30 (1.3.30 isn't out yet, but 1.3.30rc1 is 3331 suitable). 3332 3333Python: 3334 3335* Generate the bindings using SWIG 1.3.30rc1 which fixes a build error on 64 3336 bit platforms with Python 2.5. 3337 3338Packaging: 3339 3340* RPMs: Prevent binaries getting an rpath for /usr/lib64 on FC6. 3341 3342* RPMs: The Python bindings now require Python >= 2.2. 3343 3344Portability: 3345 3346* configure: Remove unnecessary backticks from tclsh version test. 3347 3348Xapian-bindings 0.9.8 (2006-11-02): 3349 3350General: 3351 3352* Wrap the "prog" form of Remote::open() (which is suitable for general purpose 3353 use as of 0.9.7) and the Remote::open_writable() methods (new in 0.9.7). 3354 3355* The C++ method QueryParser::parse_query() current throws "std:string" 3356 exceptions if there's a parse error. Previously the bindings didn't catch 3357 these. Now we catch them and handle them as if they were exceptions of 3358 type Xapian::QueryParserError (in anticipation of this changing in 3359 xapian-core). Added testcases for this for PHP, Python, and C#. 3360 3361* configure: Note that SWIG is only useful for Xapian developers in --help 3362 output. 3363 3364* configure: If we failed to find any languages to build for, give a more 3365 helpful message. 3366 3367CSharp: 3368 3369* SmokeTest.cs: Fix warning about unused variable in OP_ELITE_SET check. 3370 3371Java: 3372 3373* configure: Fix check for jni.h in /usr/lib/jvm/java-gcj/include to actually 3374 work rather than using the cached failure of the first jni.h check. 3375 3376* SmokeTest.java: Fix check for value of Query.OP_ELITE_SET. 3377 3378* SmokeTest.java: Avoid gcj "set but not used" warning. 3379 3380PHP: 3381 3382* configure: Sanity check PHP_EXTENSION_DIR and PHP_INC. 3383 3384* smoketest4.php,smoketest5.php: Check the exception message given by the 3385 DocNotFoundError testcase. 3386 3387Python: 3388 3389* Drop support for Python 2.1. 3390 3391Xapian-bindings 0.9.7 (2006-10-10): 3392 3393Documentation: 3394 3395* NEWS: Fix the recent headings which said "Xapian-core" to say 3396 "Xapian-bindings". 3397 3398General: 3399 3400* Specify required automake version in the call to AM_INIT_AUTOMAKE in 3401 configure.ac. 3402 3403* If we're building with GCC 4.0 or higher, pass -fvisibility=hidden when 3404 compiling SWIG generated code which makes the compiled modules a few percent 3405 smaller and perhaps a little faster. 3406 3407* Wrap the newly implemented transaction API. 3408 3409* configure: Use "-fno-strict-aliasing" when compiling all the SWIG bindings 3410 (this option was supposed to be used to compile the Python bindings from 3411 0.9.3 onwards, but this wasn't actually working correctly). 3412 3413* Use CVS snapshot of SWIG to generate files (fixes bugs #83, #85). 3414 3415* In maintainer-mode, "make clean" now removes the SWIG generated files 3416 which would otherwise only be removed on "make maintainer-clean". 3417 3418CSharp: 3419 3420* Xapian::MatchDecider can now be subclassed in C#. 3421 3422* The value of OP_ELITE_SET was wrong in C# which caused an error if you tried 3423 to use it. This has been fixed and a regression test added. 3424 3425* SmokeTest.cs: Added exception handling test. 3426 3427Java: 3428 3429* Correct two misuses of delete to delete[]. Fixes bug#78. 3430 3431* configure: We need to look for jni.h in /usr/lib/jvm/java-gcj/include on some 3432 Debian and Ubuntu boxes at least. 3433 3434PHP: 3435 3436* We now generate class wrappers for PHP5. 3437 3438* We now generate proxy classes for PHP4, which is an incompatible change 3439 from previous versions of xapian-bindings. A perl script to upgrade 3440 your scripts is included. 3441 3442* smoketest.php: 3443 3444 + Now that we're throwing PHP exceptions with PHP5 we need separate versions 3445 of the exception handling test for PHP4 and PHP5. Fixes bug#76. 3446 3447 + Rely on xapian.php to load the extension module for us. 3448 3449 + Fix error messages to show PHP code, not Python code. 3450 3451* When running smoketest.php, pass the "-q" option to php, which suppresses 3452 HTTP header output for PHP < 4.3 and is ignored for compatibility by more 3453 recent versions of PHP. 3454 3455* configure: Fix typo - PHP_tried should be PHP_found. This might have caused 3456 the PHP interpreter not to be found in some cases when it was actually 3457 available, but it's only used to run the smoketest not for building the 3458 bindings. 3459 3460Python: 3461 3462* configure: Fixed check for PYTHON_PATHSEP to use $PYTHON rather than python, 3463 and also report the check and its result to the user. 3464 3465* python/Makefile.am: xapian.pyc can't be generated until _xapian.la has been 3466 built, so add an explicit dependency so that this works reliably in parallel 3467 builds. Fixes bug#77. 3468 3469* In examples and documentation, don't call the MatchDecider class/object 3470 "matcher", since we use the term "matcher" to mean something else in 3471 the library documentation. 3472 3473* smoketest.py: 3474 3475 + Add test of exception handling. 3476 3477 + Add test that MatchDecider can be subclassed successfully. 3478 3479* Wrap TermIterator::skip_to() so that it can be used from the TermIter 3480 pythonic iterator class. 3481 3482Ruby: 3483 3484* Xapian::MatchDecider can now be subclassed in Ruby. 3485 3486* configure: Look for ruby interpreter as "ruby1.8" since it's called that 3487 (with no "ruby" alias) on Ubuntu dapper at least. 3488 3489* simplesearch.rb: Lowercase terms before stemming. "First ten" is inaccurate 3490 since we may have less than 10 matches, so say "1-<N>" instead. 3491 3492* simplematchdecider.rb: Implemented. 3493 3494Tcl: 3495 3496* Implement saner exception handling for Tcl and document it. 3497 3498* smoketest.tcl: 3499 3500 + Add check that xapian::Query_OP_ELITE_SET has the right value. 3501 3502 + Rework how the smoketest gets run to eliminate special code for using 3503 uninstalled bindings from smoketest.tcl itself. This allows the smoketest 3504 to be run using installed bindings, and also makes it a better example 3505 program. 3506 3507 + Add test for exception handling. 3508 3509 + Send error messages to stderr. 3510 3511 + Add comment about Tcl storing zero bytes as \xc0\x80. 3512 3513* simpleindex.tcl,simplesearch.tcl: Print $errorCode in the exception handler. 3514 3515* For SVN snapshots, remove any _svn6789 suffix from the Xapian version number 3516 used for the Tcl bindings. 3517 3518Xapian-bindings 0.9.6 (2006-05-15): 3519 3520Documentation: 3521 3522* INSTALL: Add section describing how to install without root access. 3523 3524General: 3525 3526* Updated to reflect the renaming of Xapian::xapian_version_string and 3527 companions to Xapian::version_string. 3528 3529* Wrap optional length parameter to Enquire::set_query(). 3530 3531* In PHP, Python, and Tcl bindings, rename get_document_id to get_docid for 3532 consistency. Keep get_document_id as an alias for now for backward 3533 compatibility. 3534 3535* Fixed ESet::empty() to return bool instead of Xapian::termcount (this was 3536 probably a largely harmless error). 3537 3538* Stop SWIG from adding exception handling wrappers to the calls which return 3539 version strings, since they can't throw exceptions. 3540 3541* xapian.i: Removed superfluous "const" from return type "docid" which is just 3542 a typedef for an unsigned integer type. 3543 3544* configure: Add some missing "checking ..." messages so the user has more idea 3545 what is going on. 3546 3547* Language specific util.i files can now define 3548 XAPIAN_TERMITERATOR_PAIR_OUTPUT_TYPEMAP and 3549 XAPIAN_MIXED_VECTOR_QUERY_INPUT_TYPEMAP to indicate which optional typemaps 3550 are provided for each language. This avoids needing to keep this 3551 information in two different places. 3552 3553* xapian.i: Uncomment commented-out parameter names and fix duplicate 3554 parameter names (for the benefit of bindings which use the parameter names, 3555 like the OO PHP5 patch for SWIG I'm working on...) 3556 3557Portability: 3558 3559* configure: Fix warning flags passed for Intel C++ compiler. 3560 3561CSharp: 3562 3563* We now support building with Portable.NET. 3564 3565* Note that the passing of strings from C# into Xapian and back isn't currently 3566 zero byte safe. If you try to handle string containing zero bytes, you'll 3567 find they get truncated at the zero byte. 3568 3569* C# bindings now build and pass tests when srcdir != builddir. 3570 3571* In configure.ac, the "#" in "C#" seems to sometimes confuse autoconf so 3572 always say "CSharp" instead. 3573 3574* Not all machines are set up to run compiled C# programs when invoked 3575 directly, so get configure to check if we can, and otherwise see if using 3576 mono or ilrun works. If not, just skip the C# tests. 3577 3578* configure: If "mcs" isn't found, we now look for a CSharp compiler as "gmcs" 3579 (alternative name for "mcs"), "cscc" (Portable.NET), and then "csc" 3580 (Microsoft, but we check it isn't the unrelated Chicken csc program.) 3581 3582* Move the C# specific %rename list to csharp/util.i. 3583 3584* Store the strong name key in the key container so we reuse it for later 3585 builds. 3586 3587* Wrap the version functions as more sensible names and document them (and 3588 continue to provide the older undocumented names for now just in case anyone 3589 was using them.) 3590 3591* Set the version of XapianSharp.dll correctly when building a snapshot from 3592 SVN and set informational attributes (which e.g. MS Windows Explorer shows.) 3593 3594* SmokeTest.cs: Add test of version functions. 3595 3596Guile: 3597 3598* The Guile bindings don't work and aren't being actively worked on, so we're 3599 no longer including them in the distributed tarball to avoid disappointing 3600 users who notice a "guile" subdirectory. It also makes the download smaller. 3601 3602Java: 3603 3604* Simplify (and improve portability of) run-java-test by using "libtool 3605 --mode=execute"'s -dlopen option. 3606 3607* Need to make sure "built" subdirectory exists or building from clean fails. 3608 3609* Fix "make check" to work when srcdir != builddir. 3610 3611PHP: 3612 3613* Using "php -c myphp.ini" still loads the system php.ini (at least for PHP 3614 4.3.10), so use "php -n" and then set the options we specifically want using 3615 "-d". 3616 3617* Fix the smoketest invocation to work better when srcdir != builddir. 3618 3619* Look for PHP interpreter first in prefix given by "php-config --prefix". 3620 3621* Fix SWIG_RuntimeError to be handled as an exception in PHP5. 3622 3623* simplesearch.php: MAX_PROB_TERM_LENGTH isn't used here so remove it. 3624 3625* smoketest.php: 3626 3627 + Add test for version reporting functions 3628 3629 + If a test fails, say which one to aid debugging. 3630 3631 + Added simple test that zero-bytes are handled correctly when passing 3632 strings to and from Xapian. 3633 3634Python: 3635 3636* README: Note that Python bindings have been built with MSVC. 3637 3638* Install xapian.py and xapian.pyc as _DATA not _SCRIPTS because we don't want 3639 to make them executable (they don't have a #! line). 3640 3641* simplematchdecider.py: Rename confusingly-named "mymatcher" to 3642 "mymatchdecider". Add description of what this example does. 3643 3644* simpleexpand.py: Don't define MAX_PROB_TERM_LENGTH as it isn't used. 3645 3646* smoketest.py: Added simple test that zero-bytes are handled when passing 3647 strings to and from Xapian. 3648 3649Ruby: 3650 3651* Added new Ruby bindings from Paul Legato. 3652 3653Tcl: 3654 3655* smoketest.tcl: 3656 3657 + Add test for version reporting functions 3658 3659 + If a test fails, say which one to aid debugging. 3660 3661 + Added simple test that zero-bytes are handled correctly when passing 3662 strings to and from Xapian. 3663 3664Xapian-bindings 0.9.5 (2006-04-08): 3665 3666Documentation: 3667 3668* HACKING,README: Split off HACKING to contain information which is only 3669 relevant to those wishing to modify the bindings. 3670 3671General: 3672 3673* SWIG-based bindings are now built with SWIG 1.3.29. 3674 3675* configure: Report which languages we're building bindings for just before 3676 configure finishes. 3677 3678* xapian.i: Make the stub definitions for disabled backends static. 3679 3680* configure: Don't quote $PHP in AC_PATH_PROGS to avoid "checking for ... no" 3681 message. 3682 3683* xapian.i: Wrap new method Enquire::set_sort_by_relevance_then_value(). 3684 3685Packaging: 3686 3687* RPMs: xapian-bindings.spec.in: Use "%{_libdir}" instead of "/usr/lib" for 3688 Python bindings to support 64 bit systems. 3689 3690* RPMs: Package the C# bindings. 3691 3692Portability: 3693 3694* java/run-java-test: Fix to work on platforms where LD_LIBRARY_PATH has a 3695 different name. 3696 3697* configure: Detect Intel's C++ compiler and set suitable warning flags to 3698 avoid noise from compiling generated code. 3699 3700CSharp: 3701 3702* Rename Database::GetDoccount() to Database::GetDocCount() for consistency. 3703 3704Guile: 3705 3706* configure: Disable --with-guile since Guile support doesn't currently work. 3707 3708Java: 3709 3710* Override deprecation warnings for Xapian methods/functions/etc. 3711 3712* SmokeTest.java: Write a helpful diagnostic to stderr if a check fails so we 3713 have some idea what went wrong! 3714 3715* Rework how we include headers to get hash_map to avoid compiler warnings 3716 since it's usually not in the std namespace nowadays. 3717 3718* Previously the "all" target also ran the "install" target, but this has 3719 proved very problematic, so change "make check" to use the uninstalled JNI 3720 glue library, and update the instructions to say that "make install" is now 3721 required. 3722 3723* Use JAVA_PATHSEP when specifying the classpath for compiling .java files to 3724 .class files. 3725 3726* README: Note that some platforms need "-pthread" or similar flags. 3727 3728* Add a new Query constructor wrapper which take an OP_xxx and an array of 3729 Query objects. 3730 3731* Compiling a .java file to a .class file now deletes the .jar file to ensure 3732 it gets updated. 3733 3734PHP: 3735 3736* php -n avoids reading any php.ini, but the compiled in default may be to 3737 enable the dubiously named "safe_mode" which prevents dl() being used so 3738 "make check" fails. So instead provide a very simple php.ini which turns off 3739 safe_mode and makes sure enable_dl is on. 3740 3741* Fix handling of bool parameters when resolving overloaded methods and/or 3742 default arguments. This fixes Enquire_sort_by_value() to work when the 3743 second argument is specified. Added regression test for this case. 3744 3745* simpleindex.php: Lowercase terms before stemming. Fixes bug#73. 3746 3747* Fix segmentation fault when PHP "Null" is passed where C++ wants an object 3748 passed by reference. Fixes bug#74. 3749 3750* simpleindex.php: Flushing after every call to WritableDatabase_add_document 3751 isn't required and will kill performance, so stop doing it. Fixes bug#75. 3752 3753Python: 3754 3755* Use the fairly new "swig -O" option for the "modern" python bindings as 3756 it generates a smaller glue library and runs faster. Some of the features 3757 enabled also work on python 2.1, so enable these for the "olde" bindings. 3758 3759* configure: Catch the case where the user has python installed but not the 3760 module "distutils.sysconfig" and explain that they probably need to install a 3761 python-dev or python-devel package. 3762 3763* "make check" now works in VPATH builds. 3764 3765* smoketest.py: If a check fails, write a diagnostic message to stderr so we 3766 know which check it was! 3767 3768* smoketest.py: catch Exception objects and print them. 3769 3770* smoketest.py: Add feature tests for the various pythonic iterator 3771 wrappers 3772 3773* python/docs/bindings.html: Document the Pythonic iterators. 3774 3775* Fix TermIter not to try to read termfreqs or positions if they aren't 3776 meaningful for the current TermIter. 3777 3778Xapian-bindings 0.9.4 (2006-02-21): 3779 3780Documentation: 3781 3782* COPYING: Updated FSF address. 3783 3784General: 3785 3786* Wrap Stopper::get_description(). 3787 3788* Wrap xapian_version_string() and related functions. 3789 3790Portability: 3791 3792* If we're overriding MACOSX_DEPLOYMENT_TARGET then override it for commands 3793 run from "make" too. 3794 3795PHP: 3796 3797* Fix so that generated code compiles with ZTS-enabled PHP (which is the 3798 default on Windows). 3799 3800Python: 3801 3802* smoketest.py: Test wrapping of xapian_version_string() and related functions. 3803 3804Xapian-bindings 0.9.3 (2006-02-16): 3805 3806Documentation: 3807 3808* README: Updated and expanded (now covers supported platforms, and lists 3809 criteria which bindings for an additional language need to fulfil before 3810 we're likely to accept them). 3811 3812* INSTALL: Updated and improved. 3813 3814* TODO: Move C#-specific TODO to top level so we can track to-do items for 3815 all languages. 3816 3817General: 3818 3819* configure: Change how the user selects which bindings to build. If no 3820 --with* arguments are passed, then we default to building bindings we detect 3821 the required tools for (as before). But instead of requiring the user to 3822 deselect all bindings they don't actually want, we now let them select the 3823 bindings they do want. So "./configure --with-python" will only build the 3824 python bindings (and will fail if the required tools aren't installed). 3825 3826* Every wrapped method contains exception handling code. The bulk of this 3827 is now factored out into a single helper function, which cuts the compile 3828 time by around a factor of 3 and halves the size of the stripped library 3829 (figures are for Tcl on x86_64). 3830 3831* configure: Rework how XAPIAN_CXXFLAGS is passed through so that the user can 3832 override CXXFLAGS in the make invocation like so: make CXXFLAGS=-g 3833 3834* configure: Bump required SWIG version to 1.3.28 and drop the special 3835 requirement for 1.3.22 for PHP (hurrah!) Note that you don't need 3836 SWIG to install the bindings - SWIG is run by the Xapian developers 3837 so these updated requirements are only relevant if you want to modify 3838 the bindings. 3839 3840* Eliminate separate Makefile in each examples subdirectory, which makes the 3841 build system simpler, smaller, and a little faster. 3842 3843* xapian.i: Include default constructors for all classes so that SWIG knows it 3844 doesn't have to use SwigValueWrapper for them, which makes the bindings code 3845 a bit smaller and faster. Also stop SWIG using SwigValueWrapper for 3846 std::pair<...>. 3847 3848* configure: Document special environmental variables which configure 3849 recognises. Enhance handling of environmental variables so you can 3850 e.g. './configure PYTHON=python23' (previously you had to give a full 3851 path in such environmental variables or they would be ignored. 3852 3853Packaging: 3854 3855* RPM spec file: 3856 3857 + Automatically detect the python version. 3858 3859 + Rename "php4" references to "php". 3860 3861 + Automatically detect the PHP extension directory. 3862 3863 + Relax Tcl requirement to >= 8.1, since that's what we actually require. 3864 3865 + Add support for "--without php" and --without tcl8" options to rpmbuild. 3866 3867Portability: 3868 3869* configure: On Mac OS X, ensure MACOSX_DEPLOYMENT_TARGET is set to at least 3870 10.3. This is required to link the bindings, and it doesn't seem to be 3871 possible to link them on 10.1 or 10.2 anyway. 3872 3873* configure: Add -lstdc++ to XAPIAN_LIBS if we're using GCC. OpenBSD needs it 3874 to be explicitly specified and libtool correctly handles platforms where it 3875 would have been implicitly linked with anyway. 3876 3877* Try to enable PHP bindings to build out of the box on cygwin (needs testing). 3878 3879* configure: Add missing ";;" on the last alternative in some case statements. 3880 3881* Only pass -no-undefined on platforms where it is required in order to link a 3882 shared library at all (it causes problems on Mac OS X in some cases). 3883 3884CSharp: 3885 3886* This release includes a lot of improvements for the C# bindings. They're 3887 now pretty much on a par with the other language bindings. 3888 3889* Added documentation and examples. 3890 3891* Method and function names are now renamed to match C# conventions 3892 (e.g. from get_description() to GetDescription()). This is obviously an 3893 incompatible change, but the C# bindings haven't been suitable for real world 3894 use prior to this release. 3895 3896* Optional parameters are now wrapped so no longer need be specified 3897 explicitly. 3898 3899* Overload ++ and -- for iterators. 3900 3901* Overload == and != for iterators. Now comparisons with the end iterator 3902 work as expected, and SmokeTest passes. 3903 3904* SmokeTest now reports exceptions verbosely. 3905 3906* Xapian::InMemory::open() is now wrapped as Xapian.InMemory.Open(), and 3907 similarly for other database factory functions. 3908 3909* Heed compatibility warnings from mcs and use different forms for 3910 command-line switches to the C# compiler (presumably for compatibility with 3911 Microsoft's compiler, though the warnings don't actually say that 3912 explicitly). 3913 3914Guile: 3915 3916* Rewrote guile/util.i. The old version caused SWIG warnings and wasn't 3917 zero-byte safe. The guile bindings are still a long way from actually 3918 working though. 3919 3920Java: 3921 3922* Wrap optional second parameter (query length) to Enquire::set_query(). 3923 3924* configure now probes for the Java path separator, which we then use to 3925 separate entries in the java -classpath command line option so we can 3926 build on platforms where it isn't ":". 3927 3928* SmokeTest.java: Expand to test more features. 3929 3930* java/README: 3931 3932 + Note that the bindings work with the Eclipse javac and GIJ 4.0.1. 3933 3934 + Add note about how wrapped methods are named. 3935 3936* Query.java: OP_* code 9 no longer exists, so add it to those rejected by the 3937 validity check. 3938 3939* Query.java: Comment out unused code. 3940 3941* Fixed memory leak in Query-from-array-of-strings constructor. 3942 3943* Eliminate the "_errormap" hashmap - we don't need to use RTTI here, since 3944 Xapian::Error subclasses can tell you their typename directly (using 3945 get_type()). 3946 3947PHP: 3948 3949* Some problems with overloaded methods in PHP have been fixed by a major 3950 overhaul of SWIG's PHP support. So we no longer rename such methods 3951 for PHP. This is an incompatible change, but it's easy to update your 3952 PHP scripts (just change new_Query_from_term_pair -> new_Query, etc). 3953 3954* Previously the documentation and simpleindex.php suggested that you 3955 should call delete_CLASS(). This was incorrect and resulted in a 3956 double-free() in some cases, so we've fixed the documentation and 3957 examples and eliminated the delete_CLASS() wrappers. This is another 3958 incompatible change, but again easy to update for. 3959 3960* We now support PHP5 as well as PHP4, so the configure test now looks 3961 for either and all references to "PHP4" or "php4" have been adjusted. 3962 3963* PHP5 supports exceptions, so throw exceptions under PHP5. For PHP4 3964 we now handle DocNotFoundError and FeatureUnavailableError by issuing a 3965 warning and making the method return "Null". This isn't ideal, but it's 3966 the best we can easily do without proper exceptions. 3967 3968* For the smoketest, instead of using "$(PHP) -c $(srcdir)" and having an 3969 empty php.ini in srcdir (which we were failing to distribute anyway), use 3970 "$(PHP) -n" which tells PHP not to use any php.ini file. 3971 3972* Update PHP documentation to include new features. 3973 3974* Redo Xapian section in phpinfo() to look more like most other modules. 3975 3976* You can now construct a Query object from an array of strings or Query 3977 objects (or even a mixture). 3978 3979* PHP examples now give a more useful error message if a database can't be 3980 opened. 3981 3982* smoketest.php: Expanded the tests performed, including feature tests for 3983 the new Query-from-list constuctor. 3984 3985* simplesearch.php: Use newly wrapped Query-from-list constructor. 3986 3987* Use std::string::data() instead of c_str() as it may be more efficient for 3988 some STL implementations. 3989 3990* Enquire::get_matching_terms() now generates the PHP list directly from the 3991 TermIterator rather than constructing a temporary C++ std::list, which is 3992 faster and requires less temporary memory. 3993 3994Python: 3995 3996* The Python constructor xapian.Query(OP, LIST_OF_STRINGS [, PARAM]) works 3997 once again (it has been broken since 0.9.0). Added a regression test to 3998 help keep this working. 3999 4000* Enhance the above constructor to accept any Python sequence (e.g. a tuple 4001 instead of a list). Also the sequence can contain xapian.Query objects or 4002 strings or a mixture. Documented these enhancements. 4003 4004* smoketest.py: Expanded the tests performed. 4005 4006* Convert C++ strings to python ones in a zero-byte clean way. 4007 4008* Added more error checking of the results of calls into the python 4009 interpreter. 4010 4011* If using GCC, compile the python bindings with -fno-strict-aliasing (python 4012 itself is compiled with this option to avoid problems and it appears we ought 4013 to use it too to avoid the risk of hitting the same problems, although I'm 4014 not aware of anyone actually encountering such problems). 4015 4016* When making xapian.pyc, "import _xapian;" before we "import xapian;" to 4017 avoid creating a broken xapian.pyc is the shared library can't be loaded for 4018 some reason. 4019 4020* Enquire::get_matching_terms() now generates the Python list directly from the 4021 TermIterator rather than constructing a temporary C++ std::list, which is 4022 faster and requires less temporary memory. 4023 4024Tcl: 4025 4026* Terms with a leading underscore now work (thanks to changes in SWIG). 4027 4028* Implement custom typemaps for Tcl, so that you can now construct a Query from 4029 a list of Query objects and/or strings, and Enquire::get_matching_terms is 4030 now wrapped. 4031 4032* simplesearch.tcl: Use the new Query from list constructor. 4033 4034* simplesearch.tcl: Fix to lowercase and stem query terms. 4035 4036* simpleindex.tcl: Tweak regex to not tokenise "foo--bar" as "foo-" and "bar". 4037 4038* simpleindex.tcl,simplesearch.tcl: Need explicit "xapian::" on constants. 4039 4040Xapian-bindings 0.9.2 (2005-07-15): 4041 4042General: 4043 4044* Added wrappers for new optional flags argument to QueryParser::parse_query(). 4045 4046CSharp: 4047 4048* Enhance configure to check that "mcs" is actually GNU Mono mcs and not 4049 another tool with the same name. 4050 4051Java: 4052 4053* Include SmokeTest.java in the distribution so "make check" works. 4054 4055* Added success report for Sun java 1.4.1_01a. 4056 4057Python: 4058 4059* When converting a python list to vector<string> we know the number of elements 4060 so reserve that number in the vector. 4061 4062Xapian-bindings 0.9.1 (2005-06-06): 4063 4064General: 4065 4066* Releases are now created using libtool 1.5.18 and automake 1.9.5. 4067 4068Tcl: 4069 4070* Updated documentation to include information from Michael Schlenker about how 4071 to delete a database object such that the destructor gets called. 4072 4073Xapian-bindings 0.9.0 (2005-05-13): 4074 4075General: 4076 4077* Updated SWIG-based bindings to latest Xapian API 4078 4079* Improve support for building the bindings on MS Windows: 4080 4081 + Provide stub versions of any backend functions which are disabled in the 4082 library we're wrapping to avoid a link failure on MS Windows (where the 4083 remote backend is automatically disabled). These stubs just throw 4084 Xapian::FeatureUnavailableError. 4085 4086 + Add -no-undefined to *_la_LDFLAGS. 4087 4088 + Use $(PATH_SEPARATOR) or Python's os.pathsep instead of ':' where 4089 appropriate. 4090 4091 + For python, paths for finding headers and installing libraries are now 4092 handled so they work on MS Windows; an extra static library needs to be 4093 linked in too. 4094 4095* Wrap the Muscat36 Database factory functions (easy to do now we have stubs 4096 for disabled backends). 4097 4098* Don't wrap MSet::max_size() as it's there for STL compatibility rather than 4099 being useful functionality. 4100 4101* configure: Fix all SWIG warnings and pass -Werror to SWIG so any which get 4102 introduced in future get fixed. 4103 4104* configure: Fix version test to allow for _svn6789 suffix which SVN snapshots 4105 have. 4106 4107* Generate SWIG bindings with SWIG 1.3.24 (except for PHP which we still use 4108 1.3.22 for as more recent versions don't work with methods with optional 4109 arguments - the arguments become non-optional!) 4110 4111Guile: 4112 4113* configure: Disable guile by default, as it needs more work. 4114 4115Java: 4116 4117* Updated to compile against 0.9.0 API. 4118 4119* Added missing make rule to build SmokeTestWrap.class to "make check" works. 4120 4121* Wrap optional parameters to Query(term) constructor. 4122 4123PHP4: 4124 4125* For PHP4, rename default Database constructor to Database_empty 4126 instead of suppressing the much more useful Database(const string &path) 4127 constructor. 4128 4129* Use a blank config file when running PHP4 tests to avoid problems 4130 when the bindings are already installed as an extension which is 4131 loaded automatically in the default config. 4132 4133* configure.ac: If configure can't find the PHP interpreter (as php4 or php), 4134 it probably just means it's not in PATH. We only need it for running tests, 4135 so substitute a trivial shell script which just exits with code 77 so PHP 4136 tests are skipped (previously we substituted "missing" which caused the tests 4137 to fail). 4138 4139Python: 4140 4141* Added Python-style iterators ESetIter, TermIter, PostingIter, PositionIter, 4142 and ValueIter. 4143 4144* configure: If python is found, also check that Python.h exists (it may not be 4145 if the python-dev package (or similar) isn't installed). 4146 4147Xapian-bindings 0.8.5.1 (2005-02-23): 4148 4149General: 4150 4151* configure: Run compiler feature tests using the C++ compiler, not the C 4152 compiler. 4153 4154* Allow bindings version to have an extra "patchlevel", yet still match with 4155 corresponding xapian-core version (e.g. 0.8.5.1 and 0.8.5); 4156 4157Java: 4158 4159* Added a missing .java source file and removed several unused ones. 4160 4161* Fixed several glitches in the java bindings automake build system. 4162 4163* Use "-Wno-unused" when compiling JNI C++ code to ignore harmless 4164 warnings in generated code (we were carefully passing "-Wunused" 4165 which is the opposite of what is needed!) 4166 4167* Fixed a couple of warnings from GCJ. 4168 4169* Wrapped a few missing methods added since Eric created the bindings. There 4170 are still some missing methods - there's now a (probably incomplete) list in 4171 java/README. 4172 4173* Added various useful bits of information to java/README. 4174 4175* Tweaked SimpleSearch.java to be more like the C++ version. 4176 4177PHP4: 4178 4179* 0.8.5 was generated with SWIG 1.3.24, but PHP support is broken there so 4180 we now generate the PHP bindings with SWIG 1.3.22 and everything else with 4181 a more recent version. 4182 4183* configure: Check for "php" as a program name as well as "php4", and 4184 fall-back to missing so the error message from "make check" is better. 4185 4186Xapian-bindings 0.8.5 (2004-12-23): 4187 4188General: 4189 4190* INSTALL: Added non-generic installation instructions. 4191 4192Python: 4193 4194* Fixed bytecode compilation of xapian.py. xapian.pyc was being generated in 4195 the same directory as xapian.py, but Makefile.am was looking in current 4196 directory when installing it. Additionally, VPATH builds were broken. 4197 These problems were introduced by changes in 0.8.4. 4198 4199Xapian-bindings 0.8.4 (2004-12-08): 4200 4201General: 4202 4203* README: Now clearly says which languages we currently support, which people 4204 are working on, etc. 4205 4206* Instead of requiring the user to have a really recent SWIG installed, ship 4207 the files SWIG generates. Disable all the SWIG rules unless configure is run 4208 with --enable-maintainer-mode to make sure they aren't triggered accidentally 4209 (e.g. by make with dodgy VPATH). 4210 4211* configure: Require SWIG 1.3.22 or higher (but note that SWIG is no longer 4212 needed if you just want to install the bindings). 4213 4214* Wrap the new Database and WritableDatabase constructors which replace 4215 Auto::open(). 4216 4217* It turns out that we do need to wrap MSet::MSet() (wrapping removed in 0.8.2) 4218 (for example, simpleexpand.py needs it). 4219 4220* In the Query constructor which takes a vector of terms, only call set_window 4221 if window is non-zero. Otherwise things go wrong if we're passed an empty 4222 vector. 4223 4224* Second argument to Document::add_posting() isn't optional, but xapian.i 4225 indicated that it was. 4226 4227* xapian.i: Added wrappers for Xapian::Weight and standard subclasses. 4228 Deriving your own weight class in the scripting language isn't currently 4229 supported. 4230 4231* xapian.i: %name is deprecated, so use %rename instead. This also works 4232 around a bug in SWIG 1.3.23. 4233 4234* configure: Removed pointless probe for a C compiler - everything we compile 4235 is C++. 4236 4237* configure: Reinstated the check that the bindings version matches the version 4238 of the xapian library. It was added in 0.8.2, but accidentally removed in 4239 0.8.3. 4240 4241* Use newly added option `xapian-config --swigflags` which (a) avoids always 4242 passing -I/usr/include which could cause problems if we're using a Xapian 4243 install not in /usr and there's another one in /usr and (b) avoids problems 4244 if `xapian-config --cxxflags` contains flags other than -I<something>. 4245 4246CSharp: 4247 4248* Richard Boulton has put together bindings for C#. These build successfully 4249 with the Mono tools, but the smoketest currently fails. Unclear if the 4250 problem is the bindings or the smoketest code. 4251 4252Guile: 4253 4254* The guile bindings now build successfully, so we've enabled the guile 4255 detection machinery in configure. They're untested though (we don't 4256 know guile!) so success or failure reports are encouraged! 4257 4258PHP4: 4259 4260* Mention the example scripts near the start of the documentation, not right at 4261 the end. 4262 4263* Remove documentation explicitly saying how we wrap Xapian::QueryParser and 4264 Xapian::Stem since we wrap them exactly as we wrap everything else we don't 4265 mention! 4266 4267Python: 4268 4269* Make overloaded Query(Query::op, vector<string>*, termpos) constructor 4270 work in Python. 4271 4272* Changed examples to use the newly wrapped Query from list of terms ctor. 4273 4274* Mention the example scripts near the start of the documentation, not right at 4275 the end. 4276 4277* python/Makefile.am: Added xapian_wrap.h as a target for the rule which runs 4278 SWIG. 4279 4280* Remove documentation explicitly saying how we wrap Xapian::QueryParser and 4281 Xapian::Stem since we wrap them exactly as we wrap everything else we don't 4282 mention! 4283 4284* Mention simpleexpand example in documentation. 4285 4286* Examples now report messages for Xapian exceptions. 4287 4288* Removed MAX_PROB_TERM_LENGTH from example scripts which don't use it. 4289 4290* Make the example MatchDecider exclude documents matching a value, rather than 4291 a term. The latter is a very inefficient way to do what AND_NOT does, and we 4292 don't want examples to mislead like that. 4293 4294* python/docs/bindings.html: Note that you can construct a query 4295 from a list of terms, even if you can't from a list of queries. 4296 Add HTML links to the examples. 4297 4298* simpleindex.py: Trim spaces from the start as well as from the end of each 4299 line. Simplify the loop slightly. 4300 4301Tcl: 4302 4303* Wrap in a tcl8 namespace "Xapian". 4304 4305* Added a smoketest. 4306 4307* Translated simpleindex and simplesearch into Tcl. 4308 4309* Set the Tcl package version. 4310 4311* Create pkgIndex.tcl so the package can be loaded in the usual Tcl way. 4312 4313* Install in "xapian<VERSION>" directory in the conventional Tcl way. 4314 4315* Added documentation for tcl8 bindings. 4316 4317* Use the TCL_STUBS mechanism so that compiled extensions are portable between 4318 different versions of Tcl. This needs Tcl 8.1, so bump the required Tcl 4319 version (was 8.0). 4320 4321* configure.ac: Noted that the bindings can easily be compiled for use with 4322 Tcl 8.0, in case anybody needs that for some reason. 4323 4324* Don't wrap the factory functions which return a quartz WritableDatabase as 4325 the destructor never gets called so changes aren't flushed and the lock file 4326 isn't removed. 4327 4328Xapian-bindings 0.8.3 (2004-09-20): 4329 4330General: 4331 4332* Fixed mismatching versions of libtool used to produce configure and 4333 ltmain.sh. The obvious symptom was ".so" missing from the shared object 4334 names. 4335 4336* RPM spec file contributed by Fabrice Colin. Currently this packages Python, 4337 PHP4, and Tcl bindings. 4338 4339Java: 4340 4341* Pass -classpath to javac to fix build problems. 4342 4343* Make sure errors subdirectory is built before we try to build the jar file. 4344 4345* Fixed "make install" to not give libtool error. 4346 4347PHP4: 4348 4349* Include PHP4 documentation and exmples in the tarball. 4350 4351* Reverted "Use special SWIG PHP ldflags when linking the PHP glue library." 4352 change from 0.8.2 - it turns out we only need to pass these flags if we use 4353 swig's -noruntime option (which we don't do). 4354 4355Python: 4356 4357* Use swig's -modern switch for Python 2.2 and up - it gives cleaner, leaner, 4358 faster Python wrapper code. 4359 4360Tcl: 4361 4362* Don't install xapian.la. 4363 4364* Improved configure check for tcl.h to work with Fedora Core 2. 4365 4366Xapian-bindings 0.8.2 (2004-09-13): 4367 4368General: 4369 4370* Added wrappers for recently added methods: ESet::back() and 4371 Database::get_lastdocid(), and wrap the new optional third parameter 4372 to Enquire::set_sorting(). 4373 4374* No longer wrap MSet::MSet() - it's not of use in scripting languages. 4375 4376* Wrap operator-- as prev() for MSetIterator and ESetIterator. 4377 4378* Wrap Quartz, InMemory, and Remote database factory functions as 4379 quartz_open(), inmemory_open(), and remote_open(). 4380 4381* Added missing wrappers for static Stem::get_available_languages() and 4382 Stem::get_description(). 4383 4384* Wrap renamed method Query::empty() (was Query::is_empty()). 4385 4386* Remove renaming of other empty() methods to is_empty() (but keep is_empty() 4387 as an alias for now). 4388 4389* Require autoconf 2.59 and automake 1.8.5. 4390 4391* configure: Added check that the bindings version matches the version of 4392 the xapian library. 4393 4394* configure: Check if we're using GCC and only pass GCC specific warning 4395 control options if we are. 4396 4397* configure: When running with GCC, also pass -Wno-uninitialized so the 4398 SWIG glue builds without warnings. 4399 4400* README: Updated list of languages which SWIG supports. 4401 4402PHP4: 4403 4404* Document that the 2 argument form of Xapian::Auto::open() for opening a 4405 writable database is wrapped as open_writable() (bug #32). 4406 4407* Include Xapian version in output from phpinfo(). 4408 4409* Build the SWIG glue library like we build the others rather than using 4410 SWIG's -phpfull option. This avoids problems with newer automake versions 4411 and means we can build against an uninstalled xapian library. 4412 4413* Corrected documentation to refer to Xapian::DB_* not Xapian::Auto::DB_*. 4414 Fixed documentation of how Xapian::Query::OP_* are wrapped. 4415 4416* Use special SWIG PHP ldflags when linking the PHP glue library. 4417 4418* simplesearch.py now works with multi-term queries. 4419 4420* Added documentation on how to install the PHP4 bindings. 4421 4422* Added a simple testcase to at least ensure the PHP4 bindings can be 4423 initialised and some simple operations work. 4424 4425Python: 4426 4427* configure: Now checks for Python >= 2.1 which we need for __cmp__ and __eq__. 4428 4429* Don't install _xapian.la and _xapian.a. 4430 4431* Byte compile xapian.py to xapian.pyc and install it. 4432 4433* Suppress SWIG warning about MatchDecider::operator() director discarding 4434 const. 4435 4436* "make clean" no longer leaves "xapian_wrap.h" behind. 4437 4438* Added a simple testcase to at least ensure the python bindings can be 4439 initialised and some simple operations work. 4440 4441Tcl8: 4442 4443* configure: Disable building tcl8 bindings if the headers are missing 4444 (probably because the tcl8.X-dev package isn't installed). 4445 4446Xapian-bindings 0.8.1 (2004-06-30): 4447 4448General: 4449 4450* configure: Require SWIG 1.3.20 or higher (previously was 1.3.14). 4451 4452* Add "-I/usr/include" to the swig line. This is needed when xapian is 4453 installed with a prefix of /usr, since "xapian-config --cxxflags" carefully 4454 doesn't emit -I/usr/include in this situation (because it causes problems 4455 with some GCC versions). 4456 4457* Fixed the %exception handler to cover all the exceptions Xapian can throw, 4458 not just a subset. 4459 4460Java: 4461 4462* Removed wrappers for unused error classes which have been pruned from C++. 4463 4464* Make finalize() methods of Database and WritableDatabase public so they can 4465 be called from by the user. 4466 4467* Document Document.add_term_nopos() as deprecated. 4468 4469PHP4: 4470 4471* Make sure that PHP bindings build a module which exports get_module() so PHP 4472 is able to load it. 4473 4474* Configure now checks that phpize can actually be run, rather than just that 4475 it's executable (test -x isn't portable anyhow). 4476 4477* Added basic documentation and examples to PHP4 bindings. 4478 4479* Rename overloaded methods and constructors. 4480 4481* Add simple access to the prefixes map in QueryParser. 4482 4483* Correct simpleindex ports to never generate empty termnames. 4484 4485Python: 4486 4487* configure: Use $PYTHON instead of python when running python to determine 4488 library and include paths and version number. 4489 4490* Actually ship python examples and documentation. 4491 4492Xapian-bindings 0.8.0 (2004-04-20): 4493 4494* README: Started collecting information on supporting Xapian from even 4495 more languages. 4496 4497* Added configure tests to enable bindings only where the necessary tools 4498 are installed and have a supported version. ./configure --without-LANGUAGE 4499 allows particular languages to be forcibly disabled. 4500 4501* Added Xapian::Document::add_term() - the new name for add_term_nopos(). 4502 4503* A couple of Xapian::Query constructors weren't being wrapped - fixed. 4504 4505* Added Eric B. Ridge's JNI bindings for Java. The JNI bindings themselves 4506 have been well tested, but integration with the xapian-bindings configure 4507 system hasn't been tested at all - please alert us to any problems. 4508 4509* Xapian can now be used from TCL. 4510 4511* Python: MSet now provides a Python iterator. 4512 4513* Python: OMMSET_* and OMESET_* renamed to MSET_* and ESET_*. 4514 4515* Python: enable directors for MatchDecider, to allow subclassing in Python. 4516 4517* Python: Added basic documentation, and some examples. 4518