mhs-xapian 1.0.18a

Sign up to get free protection for your applications and to get access to all the features.
Files changed (328) hide show
  1. data/.gitignore +3 -0
  2. data/AUTHORS +1 -0
  3. data/COPYING +340 -0
  4. data/ChangeLog +5876 -0
  5. data/HACKING +101 -0
  6. data/INSTALL +293 -0
  7. data/Makefile +722 -0
  8. data/Makefile.am +26 -0
  9. data/Makefile.in +722 -0
  10. data/NEWS +2110 -0
  11. data/README +59 -0
  12. data/Rakefile +51 -0
  13. data/TODO +47 -0
  14. data/aclocal.m4 +7675 -0
  15. data/config.guess +1501 -0
  16. data/config.h +56 -0
  17. data/config.h.in +55 -0
  18. data/config.status +1298 -0
  19. data/config.sub +1705 -0
  20. data/configure +18536 -0
  21. data/configure.ac +944 -0
  22. data/csharp/.deps/xapian_wrap.Plo +1 -0
  23. data/csharp/AssemblyInfo.cs +40 -0
  24. data/csharp/AssemblyInfo.cs.in +40 -0
  25. data/csharp/Auto.cs +46 -0
  26. data/csharp/BM25Weight.cs +107 -0
  27. data/csharp/BoolWeight.cs +103 -0
  28. data/csharp/Database.cs +275 -0
  29. data/csharp/DateValueRangeProcessor.cs +61 -0
  30. data/csharp/Document.cs +177 -0
  31. data/csharp/ESet.cs +94 -0
  32. data/csharp/ESetIterator.cs +117 -0
  33. data/csharp/Enquire.cs +274 -0
  34. data/csharp/ExpandDecider.cs +76 -0
  35. data/csharp/Flint.cs +58 -0
  36. data/csharp/InMemory.cs +46 -0
  37. data/csharp/MSet.cs +193 -0
  38. data/csharp/MSetIterator.cs +141 -0
  39. data/csharp/Makefile +868 -0
  40. data/csharp/Makefile.am +106 -0
  41. data/csharp/Makefile.in +868 -0
  42. data/csharp/MatchDecider.cs +76 -0
  43. data/csharp/MultiValueSorter.cs +63 -0
  44. data/csharp/NumberValueRangeProcessor.cs +61 -0
  45. data/csharp/PositionIterator.cs +101 -0
  46. data/csharp/PostingIterator.cs +125 -0
  47. data/csharp/Quartz.cs +58 -0
  48. data/csharp/Query.cs +150 -0
  49. data/csharp/QueryParser.cs +174 -0
  50. data/csharp/RSet.cs +102 -0
  51. data/csharp/Remote.cs +100 -0
  52. data/csharp/SWIGTYPE_p_std__string.cs +30 -0
  53. data/csharp/SWIGTYPE_p_std__vectorTXapian__Query_t.cs +30 -0
  54. data/csharp/SWIGTYPE_p_std__vectorTstd__string_t.cs +30 -0
  55. data/csharp/SimpleStopper.cs +64 -0
  56. data/csharp/SmokeTest.cs +178 -0
  57. data/csharp/Sorter.cs +76 -0
  58. data/csharp/Stem.cs +66 -0
  59. data/csharp/Stopper.cs +91 -0
  60. data/csharp/StringValueRangeProcessor.cs +53 -0
  61. data/csharp/TermGenerator.cs +152 -0
  62. data/csharp/TermIterator.cs +125 -0
  63. data/csharp/TradWeight.cs +107 -0
  64. data/csharp/ValueIterator.cs +102 -0
  65. data/csharp/ValueRangeProcessor.cs +76 -0
  66. data/csharp/Version.cs +60 -0
  67. data/csharp/Weight.cs +93 -0
  68. data/csharp/WritableDatabase.cs +153 -0
  69. data/csharp/Xapian.cs +65 -0
  70. data/csharp/XapianPINVOKE.cs +1527 -0
  71. data/csharp/docs/Makefile +450 -0
  72. data/csharp/docs/Makefile.am +16 -0
  73. data/csharp/docs/Makefile.in +450 -0
  74. data/csharp/docs/examples/SimpleExpand.cs +109 -0
  75. data/csharp/docs/examples/SimpleIndex.cs +71 -0
  76. data/csharp/docs/examples/SimpleSearch.cs +78 -0
  77. data/csharp/docs/index.html +211 -0
  78. data/csharp/util.i +233 -0
  79. data/csharp/xapian_wrap.cc +10338 -0
  80. data/csharp/xapian_wrap.h +93 -0
  81. data/depcomp +632 -0
  82. data/extconf.rb +20 -0
  83. data/generic/except.i +80 -0
  84. data/generic/generic.mk +48 -0
  85. data/install-sh +520 -0
  86. data/java-swig/.deps/xapian_wrap.Plo +1 -0
  87. data/java-swig/Auto.java +35 -0
  88. data/java-swig/BM25Weight.java +81 -0
  89. data/java-swig/BoolWeight.java +77 -0
  90. data/java-swig/Database.java +195 -0
  91. data/java-swig/DateValueRangeProcessor.java +51 -0
  92. data/java-swig/Document.java +135 -0
  93. data/java-swig/ESet.java +71 -0
  94. data/java-swig/ESetIterator.java +71 -0
  95. data/java-swig/Enquire.java +246 -0
  96. data/java-swig/ExpandDecider.java +59 -0
  97. data/java-swig/Flint.java +43 -0
  98. data/java-swig/InMemory.java +35 -0
  99. data/java-swig/MSet.java +143 -0
  100. data/java-swig/MSetIterator.java +87 -0
  101. data/java-swig/Makefile +781 -0
  102. data/java-swig/Makefile.am +132 -0
  103. data/java-swig/Makefile.in +781 -0
  104. data/java-swig/MatchDecider.java +59 -0
  105. data/java-swig/MultiValueSorter.java +51 -0
  106. data/java-swig/NumberValueRangeProcessor.java +51 -0
  107. data/java-swig/PositionIterator.java +63 -0
  108. data/java-swig/PostingIterator.java +83 -0
  109. data/java-swig/Quartz.java +43 -0
  110. data/java-swig/Query.java +189 -0
  111. data/java-swig/QueryParser.java +214 -0
  112. data/java-swig/RSet.java +79 -0
  113. data/java-swig/Remote.java +71 -0
  114. data/java-swig/SWIGTYPE_p_std__string.java +25 -0
  115. data/java-swig/SimpleStopper.java +51 -0
  116. data/java-swig/SmokeTest.java +161 -0
  117. data/java-swig/Sorter.java +59 -0
  118. data/java-swig/Stem.java +51 -0
  119. data/java-swig/Stopper.java +63 -0
  120. data/java-swig/StringValueRangeProcessor.java +43 -0
  121. data/java-swig/TermGenerator.java +158 -0
  122. data/java-swig/TermIterator.java +83 -0
  123. data/java-swig/TradWeight.java +81 -0
  124. data/java-swig/ValueIterator.java +67 -0
  125. data/java-swig/ValueRangeProcessor.java +59 -0
  126. data/java-swig/Version.java +47 -0
  127. data/java-swig/Weight.java +68 -0
  128. data/java-swig/WritableDatabase.java +123 -0
  129. data/java-swig/Xapian.java +39 -0
  130. data/java-swig/XapianConstants.java +15 -0
  131. data/java-swig/XapianJNI.java +508 -0
  132. data/java-swig/run-java-test +6 -0
  133. data/java-swig/xapian_wrap.cc +12594 -0
  134. data/java-swig/xapian_wrap.h +91 -0
  135. data/java/Makefile +660 -0
  136. data/java/Makefile.am +35 -0
  137. data/java/Makefile.in +660 -0
  138. data/java/README +76 -0
  139. data/java/SmokeTest.java +148 -0
  140. data/java/native/.deps/Database.Plo +1 -0
  141. data/java/native/.deps/Document.Plo +1 -0
  142. data/java/native/.deps/ESet.Plo +1 -0
  143. data/java/native/.deps/ESetIterator.Plo +1 -0
  144. data/java/native/.deps/Enquire.Plo +1 -0
  145. data/java/native/.deps/MSet.Plo +1 -0
  146. data/java/native/.deps/MSetIterator.Plo +1 -0
  147. data/java/native/.deps/PositionIterator.Plo +1 -0
  148. data/java/native/.deps/Query.Plo +1 -0
  149. data/java/native/.deps/RSet.Plo +1 -0
  150. data/java/native/.deps/Stem.Plo +1 -0
  151. data/java/native/.deps/TermIterator.Plo +1 -0
  152. data/java/native/.deps/WritableDatabase.Plo +1 -0
  153. data/java/native/.deps/org_xapian_XapianJNI.Plo +1 -0
  154. data/java/native/.deps/utils.Plo +1 -0
  155. data/java/native/Database.cc +222 -0
  156. data/java/native/Document.cc +173 -0
  157. data/java/native/ESet.cc +79 -0
  158. data/java/native/ESetIterator.cc +82 -0
  159. data/java/native/Enquire.cc +271 -0
  160. data/java/native/MSet.cc +169 -0
  161. data/java/native/MSetIterator.cc +107 -0
  162. data/java/native/Makefile +594 -0
  163. data/java/native/Makefile.am +51 -0
  164. data/java/native/Makefile.in +594 -0
  165. data/java/native/PositionIterator.cc +64 -0
  166. data/java/native/Query.cc +180 -0
  167. data/java/native/RSet.cc +98 -0
  168. data/java/native/Stem.cc +75 -0
  169. data/java/native/TermIterator.cc +107 -0
  170. data/java/native/WritableDatabase.cc +118 -0
  171. data/java/native/XapianObjectHolder.h +115 -0
  172. data/java/native/org_xapian_XapianJNI.cc +78 -0
  173. data/java/native/org_xapian_XapianJNI.h +1369 -0
  174. data/java/native/utils.cc +51 -0
  175. data/java/native/xapian_jni.h +116 -0
  176. data/java/org/xapian/Database.java +148 -0
  177. data/java/org/xapian/Document.java +135 -0
  178. data/java/org/xapian/ESet.java +66 -0
  179. data/java/org/xapian/ESetIterator.java +97 -0
  180. data/java/org/xapian/Enquire.java +136 -0
  181. data/java/org/xapian/ExpandDecider.java +30 -0
  182. data/java/org/xapian/MSet.java +104 -0
  183. data/java/org/xapian/MSetIterator.java +132 -0
  184. data/java/org/xapian/Makefile +580 -0
  185. data/java/org/xapian/Makefile.am +38 -0
  186. data/java/org/xapian/Makefile.in +580 -0
  187. data/java/org/xapian/MatchDecider.java +30 -0
  188. data/java/org/xapian/PositionIterator.java +89 -0
  189. data/java/org/xapian/Query.java +190 -0
  190. data/java/org/xapian/RSet.java +89 -0
  191. data/java/org/xapian/Stem.java +80 -0
  192. data/java/org/xapian/TermIterator.java +142 -0
  193. data/java/org/xapian/WritableDatabase.java +92 -0
  194. data/java/org/xapian/Xapian.java +114 -0
  195. data/java/org/xapian/XapianJNI.java +444 -0
  196. data/java/org/xapian/errors/AssertionError.java +40 -0
  197. data/java/org/xapian/errors/DatabaseCorruptError.java +40 -0
  198. data/java/org/xapian/errors/DatabaseError.java +40 -0
  199. data/java/org/xapian/errors/DatabaseLockError.java +40 -0
  200. data/java/org/xapian/errors/DatabaseModifiedError.java +40 -0
  201. data/java/org/xapian/errors/DatabaseOpeningError.java +40 -0
  202. data/java/org/xapian/errors/DocNotFoundError.java +40 -0
  203. data/java/org/xapian/errors/FeatureUnavailableError.java +40 -0
  204. data/java/org/xapian/errors/InternalError.java +40 -0
  205. data/java/org/xapian/errors/InvalidArgumentError.java +40 -0
  206. data/java/org/xapian/errors/InvalidOperationError.java +40 -0
  207. data/java/org/xapian/errors/LogicError.java +40 -0
  208. data/java/org/xapian/errors/Makefile +416 -0
  209. data/java/org/xapian/errors/Makefile.am +32 -0
  210. data/java/org/xapian/errors/Makefile.in +416 -0
  211. data/java/org/xapian/errors/NetworkError.java +40 -0
  212. data/java/org/xapian/errors/NetworkTimeoutError.java +40 -0
  213. data/java/org/xapian/errors/RangeError.java +40 -0
  214. data/java/org/xapian/errors/RuntimeError.java +40 -0
  215. data/java/org/xapian/errors/UnimplementedError.java +40 -0
  216. data/java/org/xapian/errors/XapianError.java +40 -0
  217. data/java/org/xapian/errors/XapianRuntimeError.java +49 -0
  218. data/java/org/xapian/examples/Makefile +391 -0
  219. data/java/org/xapian/examples/Makefile.am +8 -0
  220. data/java/org/xapian/examples/Makefile.in +391 -0
  221. data/java/org/xapian/examples/SimpleIndex.java +68 -0
  222. data/java/org/xapian/examples/SimpleSearch.java +71 -0
  223. data/java/run-java-test +6 -0
  224. data/libtool +7618 -0
  225. data/ltmain.sh +6956 -0
  226. data/mhs-xapian.gemspec +368 -0
  227. data/missing +378 -0
  228. data/php/.deps/xapian_wrap.Plo +1 -0
  229. data/php/Makefile +871 -0
  230. data/php/Makefile.am +82 -0
  231. data/php/Makefile.in +871 -0
  232. data/php/docs/Makefile +453 -0
  233. data/php/docs/Makefile.am +19 -0
  234. data/php/docs/Makefile.in +453 -0
  235. data/php/docs/examples/simpleexpand.php4 +108 -0
  236. data/php/docs/examples/simpleexpand.php5 +104 -0
  237. data/php/docs/examples/simpleindex.php4 +76 -0
  238. data/php/docs/examples/simpleindex.php5 +73 -0
  239. data/php/docs/examples/simplesearch.php4 +75 -0
  240. data/php/docs/examples/simplesearch.php5 +72 -0
  241. data/php/docs/index.html +313 -0
  242. data/php/except.i +98 -0
  243. data/php/php4/php_xapian.h +323 -0
  244. data/php/php4/xapian.php +32 -0
  245. data/php/php4/xapian_wrap.cc +27656 -0
  246. data/php/php5/php_xapian.h +319 -0
  247. data/php/php5/xapian.php +1566 -0
  248. data/php/php5/xapian_wrap.cc +24330 -0
  249. data/php/smoketest.php +246 -0
  250. data/php/smoketest4.php +84 -0
  251. data/php/smoketest5.php +79 -0
  252. data/php/util.i +187 -0
  253. data/python/.deps/xapian_wrap.Plo +1 -0
  254. data/python/Makefile +891 -0
  255. data/python/Makefile.am +105 -0
  256. data/python/Makefile.in +891 -0
  257. data/python/doccomments.i +5134 -0
  258. data/python/docs/Makefile +448 -0
  259. data/python/docs/Makefile.am +14 -0
  260. data/python/docs/Makefile.in +448 -0
  261. data/python/docs/examples/simpleexpand.py +98 -0
  262. data/python/docs/examples/simpleindex.py +65 -0
  263. data/python/docs/examples/simplematchdecider.py +78 -0
  264. data/python/docs/examples/simplesearch.py +65 -0
  265. data/python/docs/index.html +420 -0
  266. data/python/except.i +290 -0
  267. data/python/extra.i +1048 -0
  268. data/python/extracomments.i +28 -0
  269. data/python/generate-python-exceptions +189 -0
  270. data/python/generate-python-exceptions.in +189 -0
  271. data/python/modern/xapian.py +5662 -0
  272. data/python/modern/xapian_wrap.cc +35170 -0
  273. data/python/modern/xapian_wrap.h +244 -0
  274. data/python/pythontest.py +1110 -0
  275. data/python/smoketest.py +328 -0
  276. data/python/testsuite.py +382 -0
  277. data/python/util.i +517 -0
  278. data/ruby/.deps/xapian_wrap.Plo +494 -0
  279. data/ruby/.libs/_xapian.bundle +0 -0
  280. data/ruby/.libs/_xapian.bundle.dSYM/Contents/Info.plist +25 -0
  281. data/ruby/.libs/_xapian.bundle.dSYM/Contents/Resources/DWARF/_xapian.bundle +0 -0
  282. data/ruby/.libs/_xapian.la +35 -0
  283. data/ruby/.libs/_xapian.lai +35 -0
  284. data/ruby/Makefile +854 -0
  285. data/ruby/Makefile.am +62 -0
  286. data/ruby/Makefile.in +854 -0
  287. data/ruby/_xapian.la +35 -0
  288. data/ruby/docs/Makefile +487 -0
  289. data/ruby/docs/Makefile.am +50 -0
  290. data/ruby/docs/Makefile.in +487 -0
  291. data/ruby/docs/examples/simpleexpand.rb +98 -0
  292. data/ruby/docs/examples/simpleindex.rb +60 -0
  293. data/ruby/docs/examples/simplematchdecider.rb +74 -0
  294. data/ruby/docs/examples/simplesearch.rb +63 -0
  295. data/ruby/docs/index.html +197 -0
  296. data/ruby/smoketest.rb +211 -0
  297. data/ruby/util.i +232 -0
  298. data/ruby/xapian.rb +280 -0
  299. data/ruby/xapian_wrap.cc +25837 -0
  300. data/ruby/xapian_wrap.h +65 -0
  301. data/ruby/xapian_wrap.lo +12 -0
  302. data/skiptest +2 -0
  303. data/stamp-h1 +1 -0
  304. data/tcl8/.deps/xapian_wrap.Plo +1 -0
  305. data/tcl8/Makefile +835 -0
  306. data/tcl8/Makefile.am +49 -0
  307. data/tcl8/Makefile.in +835 -0
  308. data/tcl8/docs/Makefile +448 -0
  309. data/tcl8/docs/Makefile.am +14 -0
  310. data/tcl8/docs/Makefile.in +448 -0
  311. data/tcl8/docs/examples/simpleexpand.tcl +104 -0
  312. data/tcl8/docs/examples/simpleindex.tcl +68 -0
  313. data/tcl8/docs/examples/simplesearch.tcl +66 -0
  314. data/tcl8/docs/index.html +208 -0
  315. data/tcl8/except.i +48 -0
  316. data/tcl8/pkgIndex.tcl +1 -0
  317. data/tcl8/pkgIndex.tcl.in +1 -0
  318. data/tcl8/run-tcl-test +15 -0
  319. data/tcl8/runtest.tcl +29 -0
  320. data/tcl8/smoketest.tcl +155 -0
  321. data/tcl8/util.i +76 -0
  322. data/tcl8/xapian_wrap.cc +20900 -0
  323. data/xapian-bindings.spec +206 -0
  324. data/xapian-bindings.spec.in +206 -0
  325. data/xapian-version.h +1 -0
  326. data/xapian-version.h.in +1 -0
  327. data/xapian.i +939 -0
  328. metadata +395 -0
data/NEWS ADDED
@@ -0,0 +1,2110 @@
1
+ Xapian-bindings 1.0.18 (2010-02-14):
2
+
3
+ General:
4
+
5
+ * Wrap new C++ API method Document::add_boolean_term().
6
+
7
+ Ruby:
8
+
9
+ * Generate entries in the Ruby rdocs for all classes which aren't documented
10
+ because of Ruby-specific methods. Fixes ticket#417.
11
+
12
+ * Avoid absolute paths in the generated rdocs.
13
+
14
+ Xapian-bindings 1.0.17 (2009-11-18):
15
+
16
+ Packaging:
17
+
18
+ * Improve RPM package summaries - the files are needed to *use* scripts as well
19
+ as to develop them. Use "Tcl" instead of "TCL" as the former is more
20
+ conventional.
21
+
22
+ Portability:
23
+
24
+ * python/Makefile.am: Restore the "./" path to the sourced file
25
+ libtoolconfig.tmp as ksh requires it.
26
+
27
+ Java:
28
+
29
+ * Fix memory leak when passing a MatchDecider to Enquire::get_mset().
30
+
31
+ Xapian-bindings 1.0.16 (2009-09-10):
32
+
33
+ Python:
34
+
35
+ * Improved docstrings for QueryParser::set_default_op() and
36
+ QueryParser::get_default_op() (automatically generated from changes in
37
+ xapian-core).
38
+
39
+ Xapian-bindings 1.0.15 (2009-08-26):
40
+
41
+ Python:
42
+
43
+ * Don't break long words when wrapping text in the generated API documentation
44
+ comments as this was causing identifiers to be broken in two.
45
+
46
+ Xapian-bindings 1.0.14 (2009-07-21):
47
+
48
+ General:
49
+
50
+ * configure: If $CSC is empty, don't try to run it. This was a cosmetic bug
51
+ and the only side-effect was an odd looking message.
52
+
53
+ Python:
54
+
55
+ * Rename methods at build-time using SWIG rather than a run-time in Python, as
56
+ the latter approach adds a small time overhead when the module is being
57
+ loaded.
58
+
59
+ Ruby:
60
+
61
+ * Fix to accept an integer value > MAXINT for a double parameter.
62
+
63
+ Xapian-bindings 1.0.13 (2009-05-23):
64
+
65
+ Packaging:
66
+
67
+ * xapian-bindings.spec: Update C# packaging for rename of XapianSharp.so to
68
+ _XapianSharp.so in 1.0.11.
69
+
70
+ * xapian-bindings.spec: Update Tcl8 packaging for where we now install the
71
+ bindings since 1.0.6.
72
+
73
+ PHP:
74
+
75
+ * Backport fix from SWIG SVN for misuse of formatted error function in
76
+ SWIG-generated code.
77
+
78
+ Python:
79
+
80
+ * Change the SWIG-generated wrapper code so it doesn't attempt to acquire
81
+ Python's Global Interpreter Lock (GIL) in situations where we know that it
82
+ will already be locked. This avoids some dead-locks with mod_python (due to
83
+ mod_python bugs which are apparently unlikely to ever be fixed), and results
84
+ in smaller wrappers which run a little faster (in tests with Xapian on x86-64
85
+ Ubuntu 9.04, the stripped wrapper library was 11% smaller and ran 2.7%
86
+ faster). (ticket#185)
87
+
88
+ * README,python/docs/index.html: Update documentation of the above mod_python
89
+ issue and also document the related mod_wsgi issue. The status is now that
90
+ everything seems to work if you stick to the main interpreter (ticket#364).
91
+
92
+ * Backport fix from SWIG SVN for misuse of formatted error function in
93
+ SWIG-generated code.
94
+
95
+ * python/docs/examples/simplematchdecider.py: Read "avoid_value" from the
96
+ second parameter, not the third.
97
+
98
+ * python/docs/examples/simplematchdecider.py,
99
+ python/docs/examples/simplesearch.py: Make use of str.join() for simpler,
100
+ clearer code.
101
+
102
+ Ruby:
103
+
104
+ * README: Note that the testsuite fails due to a bug in the test/unit module in
105
+ Ruby 1.9.0, but applications using the bindings should work, and that the
106
+ testsuite works with Ruby 1.9.1. Drop all mention of Ruby 1.6.x as that
107
+ appears to be completely dead both upstream and in the wild.
108
+
109
+ Xapian-bindings 1.0.12 (2009-04-19):
110
+
111
+ Documentation:
112
+
113
+ * INSTALL: Add a note about being able to pass variables to configure to pick
114
+ which of several parallel installations of a language to build for.
115
+
116
+ Python:
117
+
118
+ * python/pythontest.py: Round the weights returned for the OP_SCALE_WEIGHT
119
+ test to avoid failing due to rounding differences.
120
+
121
+ * python/testsuite.py: Remove bare except: handlers from testsuite, so Ctrl-C
122
+ stop the whole testsuite, not just the currently running testcase.
123
+
124
+ Xapian-bindings 1.0.11 (2009-03-15):
125
+
126
+ Documentation:
127
+
128
+ * README: Note that 1.0.x doesn't (and isn't currently planned to) support
129
+ Python 3, and possible current issues with Ruby 1.9.
130
+
131
+ Portability:
132
+
133
+ * Merge fixes from Cygwin Ports, so bindings should build out of the box on
134
+ Cygwin.
135
+
136
+ Python:
137
+
138
+ * python/docs/examples/: Use str(obj) rather than obj.get_description() (the
139
+ latter is deprecated, and support was removed in 1.0.0).
140
+
141
+ * Add support for using the new name ("reverse") for the second argument of
142
+ set_sort_by_key() and set_sort_by_value() and friends as a named parameter.
143
+ The old name ("ascending") is still supported, but will be deprecated in
144
+ 1.1.0.
145
+
146
+ * Keep Python references to Sorter, Stopper, and ValueRangeProcessor objects
147
+ which get set on other objects to avoid segmentation faults if they go out
148
+ of scope before the object they are set on does. (ticket#341)
149
+
150
+ Ruby:
151
+
152
+ * Fixes for Ruby 1.9 compatibility (ticket#323). The test harness currently
153
+ fails so "make check" doesn't pass, but code using the bindings should work.
154
+
155
+ Xapian-bindings 1.0.10 (2008-12-23):
156
+
157
+ Python:
158
+
159
+ * Need to clean testsuite.pyc from srcdir since that's where it gets generated
160
+ as things stand (upstream fix for Debian bug 506090).
161
+
162
+ Xapian-bindings 1.0.9 (2008-10-31):
163
+
164
+ General:
165
+
166
+ * configure: Add support for "--enable-quiet" like xapian-core and omega have.
167
+
168
+ * Wrap new Database::metadata_keys_begin() and Database::metadata_keys_end()
169
+ methods.
170
+
171
+ Xapian-bindings 1.0.8 (2008-09-04):
172
+
173
+ General:
174
+
175
+ * configure: Report bug report URL in --help output.
176
+
177
+ Python:
178
+
179
+ * Fix mangling of exceptions thrown from Python subclasses of Xapian classes.
180
+ (bug#289)
181
+
182
+ * Fix memory leaks in the xapian.Query constructor. (bug#294)
183
+
184
+ Xapian-bindings 1.0.7 (2008-07-14):
185
+
186
+ Documentation:
187
+
188
+ * Document how all the database factory functions and library version functions
189
+ are wrapped for all languages.
190
+
191
+ General:
192
+
193
+ * Fix to build against a xapian-core which has quartz and/or flint disabled.
194
+
195
+ * The "program" version of Remote::open() has been wrapped for some time, so
196
+ update the documentation which said it wasn't.
197
+
198
+ Packaging:
199
+
200
+ * xapian-bindings.spec: Remove "www." from xapian.org and oligarchy.co.uk URLs.
201
+
202
+ Portability:
203
+
204
+ * For Java, Python, and Ruby, use the libtool -shrext option to specify a
205
+ different module extension rather than our own ugly bodge.
206
+
207
+ Java:
208
+
209
+ * Make passing string from Java to C++ zero-byte safe. It doesn't appear to be
210
+ simple to make C++ to Java work though.
211
+
212
+ PHP:
213
+
214
+ * Add test that OP_VALUE_GE works for PHP.
215
+
216
+ Python:
217
+
218
+ * Several corrections to the Python documentation.
219
+
220
+ * configure: Fix problem with building under mingw.
221
+
222
+ Ruby:
223
+
224
+ * Include simplematchdecider.rb example.
225
+
226
+ * smoketest.rb: Test the version reporting functions.
227
+
228
+ Tcl:
229
+
230
+ * Include simpleexpand.tcl example.
231
+
232
+ * Fix where the Tcl module gets installed.
233
+
234
+ * README: Note that Tcl 8.3 and earlier are no longer supported by upstream.
235
+
236
+ Xapian-bindings 1.0.6 (2008-03-17):
237
+
238
+ General:
239
+
240
+ * Wrap OP_VALUE_GE and OP_VALUE_LE and the new Query constructor which they are
241
+ used with.
242
+
243
+ * configure: Correct the required SWIG version given in an error message.
244
+
245
+ PHP:
246
+
247
+ * php/smoketest.php: Add note that this script should be run using 'make check'
248
+ in the build tree (rather than trying to copy it to a webserver as someone
249
+ recently tried to).
250
+
251
+ * php/smoketest.php: Fix to work under PHP4.
252
+
253
+ Python:
254
+
255
+ * The Python module now always has the extension which Python expects, which
256
+ fixes a failure on Mac OS X.
257
+
258
+ Ruby:
259
+
260
+ * Automatically install/uninstall the Ruby rdoc-generated documentation along
261
+ with the ruby bindings.
262
+
263
+ Tcl:
264
+
265
+ * configure: Sort out the default value of TCL_LIB, which could end up being
266
+ under /usr/share in xapian-bindings 1.0.4 and 1.0.5.
267
+
268
+ Xapian-bindings 1.0.5 (2007-12-21):
269
+
270
+ General:
271
+
272
+ * Wrap Xapian::Sorter and subclasses.
273
+
274
+ * Wrap Enquire::set_sort_by_key(), Enquire::set_sort_by_key_then_relevance(),
275
+ and Enquire::set_sort_by_relevance_then_key().
276
+
277
+ * Factor out the code to protect multitarget rules against parallel make, and
278
+ fix it to handle the source being changed while the rule is executing, and to
279
+ correctly return an error code if we fail while trying to recover from the
280
+ removal of a target of a multi-target rule.
281
+
282
+ * configure: Improve the clarity of the error given when none of the tools
283
+ needed for any supported language are found.
284
+
285
+ * configure: SWIG 1.3.32 has now been released, so require at least this
286
+ released version for maintainer builds.
287
+
288
+ Java:
289
+
290
+ * Add explicit '#include <cstring>' to fix build with the latest snapshots of
291
+ GCC 4.3.
292
+
293
+ * configure: Log the output of trying to compile conftest.java in config.log;
294
+ if the test fails, report whether the failure was compiling or running the
295
+ test program.
296
+
297
+ * Check for directory existence rather than calling mkdir unconditionally as
298
+ despite the "(ignored)", the error message seems to confuse some people.
299
+
300
+ PHP:
301
+
302
+ * Add feature test for XapianMultiValueSorter.
303
+
304
+ * php/smoketest5.php: Fix use of Database_get_document to new style OO
305
+ interface. Fix the error reported when the PHP5 exception test fails.
306
+
307
+ * php/smoketest.php: Add feature test to confirm that optional arguments to
308
+ XapianQuery's "term" constructor are wrapped.
309
+
310
+ Python:
311
+
312
+ * Don't drop the GIL when calling Xapian.MSet.items and Xapian.ESet.items -
313
+ these properties build a python list, so dropping the GIL isn't safe and
314
+ may cause undefined behaviour in multithreaded environments.
315
+
316
+ * configure: Update error message to reflect requirement for at least python
317
+ 2.2.
318
+
319
+ * configure: Change "print foo" to "print(foo)" in python version checks, for
320
+ compatibility with python 3.0.
321
+
322
+ Ruby:
323
+
324
+ * The Ruby bindings now work on Mac OS X (the Ruby module's extension was
325
+ previously incorrect).
326
+
327
+ * Run "rdoc" to generate HTML for the Ruby-specific API documentation which
328
+ ruby/docs/index.html previously had a dead link to.
329
+
330
+ Tcl:
331
+
332
+ * configure: Overhaul code to find tcl.h since the old version no longer worked
333
+ with Debian unstable.
334
+
335
+ * tcl8/docs/index.html: Update documentation to cover flint and mention that
336
+ quartz is now deprecated.
337
+
338
+ * Remove code to handle `const char *' exceptions - as of 1.0.0 the QueryParser
339
+ throws QueryParserError instead.
340
+
341
+ Xapian-bindings 1.0.4 (2007-10-30):
342
+
343
+ General:
344
+
345
+ * Wrap new OP_SCALE_WEIGHT query operator, and corresponding Query constructor.
346
+ Add feature tests for all languages.
347
+
348
+ * The "bindings.html" file documenting each of the bindings has been renamed to
349
+ "index.html".
350
+
351
+ Packaging:
352
+
353
+ * Fix the PHP Makefile.am to work with autoconf < 2.60 to fix RPM builds for
354
+ older distros.
355
+
356
+ Portability:
357
+
358
+ * Fix warnings when compiling with GCC 4.2.
359
+
360
+ PHP:
361
+
362
+ * Update to newer SWIG SVN snapshot to fix memory leaks in wrapped constructors
363
+ and methods/functions which return a wrapped class.
364
+
365
+ * For PHP4, wrap Xapian::sortable_serialise() as xapian_sortable_serialise()
366
+ and Xapian::sortable_unserialise() as xapian_sortable_unserialise().
367
+
368
+ * Document how non-class functions are wrapped.
369
+
370
+ * Fix wrapping of NumberValueRangeProcessor for PHP4.
371
+
372
+ * smoketest.php: Split the regression test for bug#193 into separate
373
+ versions for PHP4 and PHP5 as the previous version only worked for PHP5.
374
+
375
+ Python:
376
+
377
+ * python/docs/index.html: Promote the Pythonic iterators, and deprecate the
378
+ non-pythonic iterators. Make it clearer that the "sequence API" is
379
+ deprecated.
380
+
381
+ * Add test of a custom ValueRangeProcessor (ie, one written in python).
382
+
383
+ * Update the examples to use the new-style attributes to access MSet item
384
+ values rather than the old-style MSET_* constants.
385
+
386
+ * Document MSET_DOCUMENT.
387
+
388
+ Ruby:
389
+
390
+ * smoketest.rb: Rename test of metadata access methods which had been named the
391
+ same as the matchdecider test due to a copy-and-paste error.
392
+
393
+ Xapian-bindings 1.0.3 (2007-09-28):
394
+
395
+ General:
396
+
397
+ * Wrap new methods Database::get_metadata() and
398
+ WritableDatabase::set_metadata().
399
+
400
+ * "make uninstall" now removes the loadable module we install for each of
401
+ the bindings.
402
+
403
+ * "make distcheck" now works.
404
+
405
+ * Distribution tarballs are now in the POSIX "ustar" format since it saves
406
+ about 40KB and we need to use it for xapian-core anyway.
407
+
408
+ Packaging:
409
+
410
+ * RPMs: Package xapian.php.
411
+
412
+ CSharp:
413
+
414
+ * Remove wrapper for ValueRangeProcessor::operator(), since it can't be
415
+ usefully used currently.
416
+
417
+ Java:
418
+
419
+ * Remove wrappers for the Muscat36 backend, which has now been dropped from the
420
+ C++ library.
421
+
422
+ * "make clean" now removes the class files generated for inner classes.
423
+
424
+ PHP:
425
+
426
+ * Add feature test for DateValueRangeProcessor when used with QueryParser.
427
+
428
+ * ValueRangeProcessor::apply() can now be called from PHP (bug#193). This
429
+ isn't actually very useful, since you can't subclass it in PHP currently.
430
+
431
+ * Fixed wrapping of Enquire::set_cutoff() - previously this would only work
432
+ if the third parameter was specified and a floating point number (e.g. 0.0).
433
+
434
+ * php/docs/bindings.html: Fix errors in example code.
435
+
436
+ Python:
437
+
438
+ * ValueRangeProcessor::operator() is now wrapped as a __call__ method in
439
+ Python which takes two strings and returns a 3-tuple (value_number,
440
+ modified_begin, modified_end). Previously this always failed with a
441
+ type error, so this doesn't break existing code.
442
+
443
+ * python/pythontest.py: Interpret any commandline arguments as a list of
444
+ tests to be run (the default is to run all tests).
445
+
446
+ * README,python/docs/bindings.html: Add a note about the problems with
447
+ mod-python (as described in bug #185).
448
+
449
+ * python/pythontest.py: Delete the database handles before deleting a database
450
+ to fix problems running the Python tests on MS Windows (bug#179).
451
+
452
+ * "make clean" now removes testsuite.pyc.
453
+
454
+ Ruby:
455
+
456
+ * Check for RUBY_INC, RUBY_LIB, and RUBY_LIB_ARCH in the environment or on
457
+ the configure command-line. The defaults for RUBY_LIB and RUBY_LIB_ARCH are
458
+ now the site-specific directories, which is more correct when building
459
+ from source. Debian packages, etc can override this by setting RUBY_LIB and
460
+ RUBY_LIB_ARCH.
461
+
462
+ Tcl:
463
+
464
+ * Check for TCL_LIB in the environment or on the configure command-line to
465
+ allow installing without root access more cleanly.
466
+
467
+ Xapian-bindings 1.0.2 (2007-07-05):
468
+
469
+ Documentation:
470
+
471
+ * Document use of PYTHON_LIB and PHP_EXTENSION_DIR instead of pylibdir and
472
+ phpextdir.
473
+
474
+ * Remove documentation of removed "--with-swig" configure option.
475
+
476
+ General:
477
+
478
+ * Add methods of NumberValueRangeProcessor for serialising and
479
+ unserialising doubles.
480
+
481
+ * Add methods and constants supporting spelling correction and synonyms.
482
+
483
+ * Value of XAPIAN_CONFIG supplied to configure is now passed to distcheck,
484
+ to ensure that it works with uninstalled copies of Xapian.
485
+
486
+ * Value of PYTHON_LIB supplied to configure is now respected - previously
487
+ it was documented, but ignored.
488
+
489
+ * Add support for supplying PHP_EXTENSION_DIR to configure.
490
+
491
+ * Change to using "%include", rather than reproducing contents of header
492
+ files, for "queryparser.h", "document.h" and "postingiterator.h".
493
+
494
+ * Add new form of get_mset() which allows a matchspy matchdecider to be
495
+ set.
496
+
497
+ * RPMs: Don't mention %makeinstall in a .spec file comment as that makes RPM
498
+ explode. Add in a missing "mv" in the command for installing tcl8
499
+ documentation.
500
+
501
+ CSharp:
502
+
503
+ * Fix rule handling parallel make to include xapian_wrap.h
504
+
505
+ PHP:
506
+
507
+ * Install xapian.php as <PREFIX>/share/php<PHPMAJOR>/xapian.php. There
508
+ doesn't seem to be a standard location, but this works for Debian at
509
+ least, and it seems better to at least try to install it.
510
+
511
+ * Rename ValueRangeProcessor and subclasses and TermGenerator to have a Xapian
512
+ prefix for PHP4.
513
+
514
+ Python:
515
+
516
+ * Fix a threading problem: the GIL was not being acquired in the exception
517
+ handling code before setting the Python exception state, leading to
518
+ various memory corruption symptoms in threaded programs.
519
+
520
+ * Add special iterators to Database for synonyms, synonym_keys and
521
+ spellings.
522
+
523
+ * Add test cases for OP_VALUE_RANGE queries, getting spelling corrections,
524
+ synonym iterators and spelling iterators.
525
+
526
+ * In the test suite, expect_query() now adds "Xapian::Query(" and ")" around
527
+ the expected description to make the tests more readable.
528
+
529
+ Xapian-bindings 1.0.1 (2007-06-11):
530
+
531
+ Documentation:
532
+
533
+ * NEWS: Fix the recent headings which said "Xapian-core" to say
534
+ "Xapian-bindings".
535
+
536
+ General:
537
+
538
+ * Wrap Xapian::Query constructor for creating ValueRange queries.
539
+
540
+ * Wrap new forms of Xapian::Database::allterms_begin() and allterms_end()
541
+ which take a prefix.
542
+
543
+ Packaging:
544
+
545
+ * RPMs: Use "make install" instead of %makeinstall to avoid doubled
546
+ %{buildroot} prefix on most files which we then have to work around.
547
+
548
+ CSharp:
549
+
550
+ * SimpleIndex now uses Xapian.TermGenerator.
551
+
552
+ * SimpleSearch now uses Xapian.QueryParser.
553
+
554
+ * New SimpleExpand example.
555
+
556
+ * Document explicitly how STEM_SOME constants are currently wrapped.
557
+
558
+ * Update GetTermName() reference in documentation to GetTerm().
559
+
560
+ * SmokeTest.cs: Update comment about Portable.NET bug - the bug is fixed in
561
+ their CVS repo, and the fix should be in their 0.8.2 release.
562
+
563
+ Java:
564
+
565
+ * `configure --help' documented that environmental variable JNI_INCLUDE_DIR was
566
+ looked at, but in fact its value was read but ignored. We now use it as the
567
+ first place to look for jni.h.
568
+
569
+ * configure will now automatically add an extra "-I" for the
570
+ linux/solaris/win32 subdirectory which Sun's JDK requires.
571
+
572
+ * Document JAVA_HOME and JDK_HOME in ./configure --help and mark them as
573
+ "precious" so their values are preserved for when configure is automatically
574
+ rerun.
575
+
576
+ PHP:
577
+
578
+ * Enquire::get_mset(first, maxitems, omrset) now works for PHP5.
579
+
580
+ * The PHP examples have been rewritten to be clearer and to make use of the
581
+ new XapianTermGenerator class.
582
+
583
+ Python:
584
+
585
+ * Python examples now use xapian.QueryParser and xapian.TermGenerator.
586
+
587
+ * Add support for prefix-restricted pythonic allterms iterators.
588
+
589
+ * Update documentation in a couple of places to refer to updated replacements
590
+ for MSetIterator.
591
+
592
+ * Change testsuite output to be more vim-friendly (vim should be able to jump
593
+ to the right lines now).
594
+
595
+ * __str__ on Xapian::Error now includes extra information in some cases (the
596
+ error_string and context, if they are set).
597
+
598
+ * python/smoketest.py: Eliminate uses of the legacy sequence API.
599
+
600
+ * python/pythontest.py: The legacy sequence API is only supported for Python
601
+ 2.3 and later, so don't run tests for it when running under Python 2.2.
602
+
603
+ * We now generate and install xapian.pyo as well as xapian.pyc.
604
+
605
+ Ruby:
606
+
607
+ * The Ruby examples now use the Xapian::QueryParser and Xapian::TermGenerator
608
+ classes.
609
+
610
+ * Add missing rename for the C++ TermGenerator::set_document() method so it can
611
+ be used as "tg.document = doc" in Ruby.
612
+
613
+ * Fixed compilation on Mac OS X and warning from GCC on 32-bit Linux platforms.
614
+
615
+ Tcl:
616
+
617
+ * tcl8/docs/examples/simpleexpand.tcl: New example to demonstrate relevance
618
+ feedback, based on C++ simpleexpand.cc.
619
+
620
+ * tcl8/docs/example/simpleindex.tcl: New simpler example making use of the
621
+ TermGenerator class.
622
+
623
+ * tcl8/docs/example/simplesearch.tcl: New simpler example making use of the
624
+ QueryParser class.
625
+
626
+ * tcl8/docs/bindings.html: Document how constants are wrapped.
627
+
628
+ * Update smoketest and examples to require version 1.0.0 - previously this
629
+ required 0.9.6, which failed since TCL doesn't accept differing major
630
+ version numbers.
631
+
632
+ * pkgIndex.tcl is now generated by configure.
633
+
634
+ Packaging:
635
+
636
+ * The required automake version has been lowered to 1.8.3, so RPMs can now be
637
+ built on RHEL 4 and SLES 9.
638
+
639
+ Xapian-bindings 1.0.0 (2007-05-17):
640
+
641
+ Documentation:
642
+
643
+ * Document Unicode support for each language.
644
+
645
+ * Assorted minor improvements and typo fixes.
646
+
647
+ General:
648
+
649
+ * Add wrappers for ExpandDecider, and Enquire::get_eset() variants which use
650
+ it, for languages where SWIG supports directors.
651
+
652
+ * Wrap new features: TermGenerator, ValueRangeProcessor hierarchy, the
653
+ OP_VALUE_RANGE query operator, the new overloaded form of parse_query, which
654
+ allows the "default_prefix" argument to be supplied, QueryParser flags
655
+ FLAG_PURE_NOT and FLAG_PARTIAL.
656
+
657
+ * Deprecated Xapian::Stem's stem_word() method in favour of apply().
658
+
659
+ * Remove wrappers for deprecated features removed from the C++ API (see
660
+ docs/deprecation.html in xapian-core for full details and upgrade
661
+ information).
662
+
663
+ * Deprecate ESetIterator::get_termname() in favour of ESetIterator::get_term().
664
+
665
+ * QueryParserError is now a real error, so remove special handling for "const
666
+ char *" exceptions.
667
+
668
+ * Use a stamp file in "make" rules with multiple targets so that parallel
669
+ make works.
670
+
671
+ * configure: Now quotes $PYTHON, etc so that you can specify a program with
672
+ arguments.
673
+
674
+ * configure: If the user specifies a program which doesn't exist (e.g.
675
+ PYTHON=/opt/bin/ptyhon) don't autoprobe after failing to find it.
676
+
677
+ * configure: Disable probes for f77, gcj, and rc completely by preventing
678
+ the probe code from even appearing in configure - this reduces the size of
679
+ configure by 28% and should speed it up significantly.
680
+
681
+ * configure: If the version check against the xapian-core version detects a
682
+ mismatch, we now issue a warning rather than a hard error since if you're
683
+ careful this can work. The warning is issued late on in configure, so it's
684
+ harder for the user to miss.
685
+
686
+ * configure: The --with-swig option has been removed. It no longer has a
687
+ purpose as we now ship the files which are generated by SWIG.
688
+
689
+ Portability:
690
+
691
+ * The PHP bindings can now be built with MSVC for Microsoft Windows.
692
+
693
+ CSharp:
694
+
695
+ * When using Mono 1.2, we must build with gmcs (the C# 2.0 compiler) rather
696
+ than mcs to avoid segmentation faults at runtime due to unimplemented
697
+ features in mcs. Document this, and update configure to prefer gmcs.
698
+
699
+ * The return type of MatchDecider::operator() is now `bool' rather than `int'
700
+ (in line with the same change in the C++ API).
701
+
702
+ * Xapian.Stem.StemWord() deprecated in favour of Xapian.Stem.Apply().
703
+
704
+ Java:
705
+
706
+ * The Java bindings have been updated to use C++ replacements for deprecated
707
+ methods, so they still build. The Java wrappers still provide the old
708
+ deprecated names for now though. The longer term plan is to replace the
709
+ hand-written JNI with SWIG generated wrappers (work has now begun on this)
710
+ which is likely to require some API changes, and it seems more sensible to
711
+ make any changes to align with C++ API changes at the same time.
712
+
713
+ * Enquire.getQuery() is implemented entirely in Java, so strip out the unused
714
+ MyQuery mechanism, and so fix a memory link which it caused (bug#105).
715
+
716
+ PHP:
717
+
718
+ * Fix undefined behaviour in get_matching_terms().
719
+
720
+ * Document the (existing) renaming of methods which are PHP reserved words
721
+ (empty() to is_empty() and clone() to clone_object()).
722
+
723
+ * Deprecated Xapian::Stem's stem_word() method in favour of apply().
724
+
725
+ Python:
726
+
727
+ * The Python bindings now throw exceptions as classes with a hierarchy which
728
+ mirrors that of the C++ Xapian::Error and its subclasses. The xapian.Error
729
+ base class inherits from the standard Python Exception class.
730
+
731
+ * All Python methods which accept strings can now be passed either a unicode
732
+ object or a simple string. Strings are returned as simple strings: unicode
733
+ input will be returned as utf-8 encoded output. The documentation now
734
+ contains a "Unicode" section.
735
+
736
+ * The Python bindings should now be usable more efficiently from threaded
737
+ Python applications since we now use SWIG's -threads option when generating
738
+ them, so that the GIL is released during long-running Xapian operations
739
+ (bug#137).
740
+
741
+ * Most classes, methods, functions, etc now have docstrings which are either
742
+ automatically extracted from the C++ documentation comments, or overridden by
743
+ more appropriate versions.
744
+
745
+ * Most of the Pythonic iterators now return an object instead of a sequence,
746
+ which means they now lazily fetch the information which previously had to be
747
+ fetched to put it in the sequence. The old sequence API is supported for
748
+ compatibility, but is scheduled for removal in Xapian 1.1.0.
749
+
750
+ * Those Python iterators which have skip_to() methods now return the item
751
+ skipped to, and next() will return the following item. Previously, they
752
+ returned None, and next() returned the item skipped to. Several bugs in the
753
+ skip_to() wrappers were fixed.
754
+
755
+ * Because of the lazy access, some objects returned by iterators will raise
756
+ an error if the lazy evaluation happens after the iterator has moved on
757
+ (since the underlying Xapian API doesn't allow efficient access to the
758
+ information in this situation). The exact semantics are defined in the
759
+ docstrings for each iterator.
760
+
761
+ * Those Pythonic iterators which return only a list of terms now return
762
+ simple strings, instead of a sequence or an object containing the term. This
763
+ is an incompatible change with earlier releases. The affected iterators are
764
+ Enquire.matching_terms, Query.__iter__, QueryParser.stoplist and
765
+ QueryParser.unstemlist.
766
+
767
+ * The contents of an MSet can now be iterated in the standard Python way.
768
+ The iteration will return MSetItem objects. The __contains__ and __getitem__
769
+ methods are also implemented, allowing the "in" and [] operators to work.
770
+ MSet.__getitem__ is a synonym for MSet.get_hit.
771
+
772
+ * MSet.get_hit() now returns an MSetItem object instead of an MSetIterator,
773
+ so that lazy access to its attributes is supported. MSetItem has some
774
+ deprecated methods which mimic the MSetIterator interface to allow old code
775
+ to work without modification until release 1.1.0.
776
+
777
+ * MSetItem provides access to the collapse_key and collapse_count, which
778
+ weren't accessible from the sequence returned by the iterators before this
779
+ release.
780
+
781
+ * Out-of-range access to MSets will now raise an IndexError - it used to
782
+ cause undefined behaviour (usually a crash).
783
+
784
+ * The Python testsuite is now much more extensive, and supports colour output
785
+ and verbosity levels, much like the C++ testsuite. Tests of deprecated
786
+ features are separated out, so that they can easily be removed when the
787
+ features are removed. The Python tests currently focus mainly on Python
788
+ specific iterators and related functionality - general Xapian behaviour is
789
+ tested by the C++ testsuite.
790
+
791
+ * The pure Python code in the bindings now uses new-style classes, since we
792
+ have required Python >= 2.2 since Xapian release 0.9.9.
793
+
794
+ * Enquire.get_matching_terms is now deprecated - use Enquire.matching_terms
795
+ instead.
796
+
797
+ * The get_description() method which many classes support has been deprecated
798
+ in favour of new more pythonic __str__ methods, so that the str() builtin can
799
+ be used. get_description() is deprecated and scheduled for removal in 1.1.0.
800
+
801
+ Ruby:
802
+
803
+ * We no longer regard the Ruby bindings as "beta quality", so remove the
804
+ warning from their documentation.
805
+
806
+ * Document that that C++ operator() becomes the method "call" in Ruby.
807
+
808
+ * Don't read termfreq in safe wrapper for Document::termlist_begin(). Don't
809
+ read wdf in safe wrapper for Database::allterms_begin() (bug#133).
810
+
811
+ Tcl:
812
+
813
+ * Deprecated Xapian::Stem's stem_word() method in favour of apply().
814
+
815
+ Xapian-bindings 0.9.10.1 (2007-04-04):
816
+
817
+ PHP:
818
+
819
+ * Fix PHP5 class wrapper generation in a few cases for overloaded methods with
820
+ default parameters. The most notable case was a missing Query constructor
821
+ which meant that QueryParser was unusable.
822
+
823
+ * Fix compilation of the PHP4 bindings with ZTS-enabled versions of PHP
824
+ (which mostly seems to mean the MS Windows version).
825
+
826
+ * Fix PHP5 crash on exit with ZTS-enabled versions of PHP (which mostly
827
+ seems to mean the MS Windows version).
828
+
829
+ * Add note to the documentation that PHP examples are written for CLI version
830
+ of PHP, but that the bindings work with any version.
831
+
832
+ * Add check to all PHP examples that they are being run under a CLI version of
833
+ PHP.
834
+
835
+ Python:
836
+
837
+ * simpleexpand.py: Print each term's expand weight as a floating point value,
838
+ not an integer.
839
+
840
+ Ruby:
841
+
842
+ * INSTALL: document how to install Xapian's Ruby bindings in your home
843
+ directory.
844
+
845
+ Xapian-bindings 0.9.10 (2007-03-04):
846
+
847
+ Java:
848
+
849
+ * Under Mac OS X, automatically look in the standard location for jni.h,
850
+ and automatically rename the JNI library we build to ".jnilib", as is
851
+ required by the OS X JVM.
852
+
853
+ * java/README: Note success with Sun's JDK 1.5.0_06-b05, plus the requirement
854
+ to add the linux header directory to the include path when using this JDK.
855
+
856
+ * Add missing default constructor for RSet class - it's not much use without
857
+ this!
858
+
859
+ * Fix Enquire.getESet() to actually work.
860
+
861
+ * Fix bug in ESetIterator.hasNext().
862
+
863
+ * Fix MatchDecider and ExpandDecider so subclassing in Java actually works.
864
+
865
+ * Fix memory leak with some JVMs in the "Query from array" constructor.
866
+
867
+ * Fix memory leak in Enquire.setQuery().
868
+
869
+ * SmokeTest.java: Add regression tests for RSet default constructor,
870
+ Enquire.getESet(), ESetIterator.hasNext(), MatchDecider, ExpandDecider.
871
+ Add feature tests for Enquire.getQuery(), and to make sure we get passed
872
+ the right document in a java subclass of MatchDecider.
873
+
874
+ * configure: Look for jni.h in $JAVA_HOME/include and $JDK_HOME/include if the
875
+ respective variables are set.
876
+
877
+ PHP:
878
+
879
+ * Update the documentation to fix out-of-date information and document the
880
+ differences between the PHP4 and PHP5 wrappers.
881
+
882
+ * Update the examples to use the new Object Oriented API, and provide versions
883
+ for both PHP4 and PHP5.
884
+
885
+ * Add a "simpleexpand" example.
886
+
887
+ * For PHP4, Xapian::DB_CREATE_OR_OPEN should be wrapped as
888
+ Xapian_DB_CREATE_OR_OPEN not DB_CREATE_OR_OPEN, so wrap it with the
889
+ new name, but keep the old name for now for backward compatibility.
890
+
891
+ * configure: Try `$(PHP_CONFIG) --php-binary` when looking for a PHP
892
+ interpreter - this works with PHP5.
893
+
894
+ * configure: Remove the sanity check for PHP_EXTENSION_DIR added in Xapian
895
+ 0.9.8 - if Xapian is the first PHP extension to be installed, the extension
896
+ directory may not exist and "make install" will create it.
897
+
898
+ * configure: If zend.h isn't found and configure was run with "--with-php",
899
+ exit with an error rather than automatically disabling PHP support.
900
+
901
+ Python:
902
+
903
+ * Fix a problem which preventing building for Python 2.5 on 64 bit platforms.
904
+
905
+ Packaging:
906
+
907
+ * RPMs: Add support for passing "--without python" to rpmbuild. Document the
908
+ various "--without" options in a comment at the start of the .spec file.
909
+
910
+ * RPMs: Remove "." from the end of the Summary.
911
+
912
+ Xapian-bindings 0.9.9 (2006-11-09):
913
+
914
+ Documentation:
915
+
916
+ * Ship our custom INSTALL file rather than the generic one from autoconf which
917
+ we've accidentally been shipping instead since 0.9.5.
918
+
919
+ General:
920
+
921
+ * Wrap Flint::open() and Flint::open_writable().
922
+
923
+ * configure: Require SWIG 1.3.30 (1.3.30 isn't out yet, but 1.3.30rc1 is
924
+ suitable).
925
+
926
+ Python:
927
+
928
+ * Generate the bindings using SWIG 1.3.30rc1 which fixes a build error on 64
929
+ bit platforms with Python 2.5.
930
+
931
+ Packaging:
932
+
933
+ * RPMs: Prevent binaries getting an rpath for /usr/lib64 on FC6.
934
+
935
+ * RPMs: The Python bindings now require Python >= 2.2.
936
+
937
+ Portability:
938
+
939
+ * configure: Remove unnecessary backticks from tclsh version test.
940
+
941
+ Xapian-bindings 0.9.8 (2006-11-02):
942
+
943
+ General:
944
+
945
+ * Wrap the "prog" form of Remote::open() (which is suitable for general purpose
946
+ use as of 0.9.7) and the Remote::open_writable() methods (new in 0.9.7).
947
+
948
+ * The C++ method QueryParser::parse_query() current throws "std:string"
949
+ exceptions if there's a parse error. Previously the bindings didn't catch
950
+ these. Now we catch them and handle them as if they were exceptions of
951
+ type Xapian::QueryParserError (in anticipation of this changing in
952
+ xapian-core). Added testcases for this for PHP, Python, and C#.
953
+
954
+ * configure: Note that SWIG is only useful for Xapian developers in --help
955
+ output.
956
+
957
+ * configure: If we failed to find any languages to build for, give a more
958
+ helpful message.
959
+
960
+ CSharp:
961
+
962
+ * SmokeTest.cs: Fix warning about unused variable in OP_ELITE_SET check.
963
+
964
+ Java:
965
+
966
+ * configure: Fix check for jni.h in /usr/lib/jvm/java-gcj/include to actually
967
+ work rather than using the cached failure of the first jni.h check.
968
+
969
+ * SmokeTest.java: Fix check for value of Query.OP_ELITE_SET.
970
+
971
+ * SmokeTest.java: Avoid gcj "set but not used" warning.
972
+
973
+ PHP:
974
+
975
+ * configure: Sanity check PHP_EXTENSION_DIR and PHP_INC.
976
+
977
+ * smoketest4.php,smoketest5.php: Check the exception message given by the
978
+ DocNotFoundError testcase.
979
+
980
+ Python:
981
+
982
+ * Drop support for Python 2.1.
983
+
984
+ Xapian-bindings 0.9.7 (2006-10-10):
985
+
986
+ Documentation:
987
+
988
+ * NEWS: Fix the recent headings which said "Xapian-core" to say
989
+ "Xapian-bindings".
990
+
991
+ General:
992
+
993
+ * Specify required automake version in the call to AM_INIT_AUTOMAKE in
994
+ configure.ac.
995
+
996
+ * If we're building with GCC 4.0 or higher, pass -fvisibility=hidden when
997
+ compiling SWIG generated code which makes the compiled modules a few percent
998
+ smaller and perhaps a little faster.
999
+
1000
+ * Wrap the newly implemented transaction API.
1001
+
1002
+ * configure: Use "-fno-strict-aliasing" when compiling all the SWIG bindings
1003
+ (this option was supposed to be used to compile the Python bindings from
1004
+ 0.9.3 onwards, but this wasn't actually working correctly).
1005
+
1006
+ * Use CVS snapshot of SWIG to generate files (fixes bugs #83, #85).
1007
+
1008
+ * In maintainer-mode, "make clean" now removes the SWIG generated files
1009
+ which would otherwise only be removed on "make maintainer-clean".
1010
+
1011
+ CSharp:
1012
+
1013
+ * Xapian::MatchDecider can now be subclassed in C#.
1014
+
1015
+ * The value of OP_ELITE_SET was wrong in C# which caused an error if you tried
1016
+ to use it. This has been fixed and a regression test added.
1017
+
1018
+ * SmokeTest.cs: Added exception handling test.
1019
+
1020
+ Java:
1021
+
1022
+ * Correct two misuses of delete to delete[]. Fixes bug#78.
1023
+
1024
+ * configure: We need to look for jni.h in /usr/lib/jvm/java-gcj/include on some
1025
+ Debian and Ubuntu boxes at least.
1026
+
1027
+ PHP:
1028
+
1029
+ * We now generate class wrappers for PHP5.
1030
+
1031
+ * We now generate proxy classes for PHP4, which is an incompatible change
1032
+ from previous versions of xapian-bindings. A perl script to upgrade
1033
+ your scripts is included.
1034
+
1035
+ * smoketest.php:
1036
+
1037
+ + Now that we're throwing PHP exceptions with PHP5 we need separate versions
1038
+ of the exception handling test for PHP4 and PHP5. Fixes bug#76.
1039
+
1040
+ + Rely on xapian.php to load the extension module for us.
1041
+
1042
+ + Fix error messages to show PHP code, not Python code.
1043
+
1044
+ * When running smoketest.php, pass the "-q" option to php, which suppresses
1045
+ HTTP header output for PHP < 4.3 and is ignored for compatibility by more
1046
+ recent versions of PHP.
1047
+
1048
+ * configure: Fix typo - PHP_tried should be PHP_found. This might have caused
1049
+ the PHP interpreter not to be found in some cases when it was actually
1050
+ available, but it's only used to run the smoketest not for building the
1051
+ bindings.
1052
+
1053
+ Python:
1054
+
1055
+ * configure: Fixed check for PYTHON_PATHSEP to use $PYTHON rather than python,
1056
+ and also report the check and its result to the user.
1057
+
1058
+ * python/Makefile.am: xapian.pyc can't be generated until _xapian.la has been
1059
+ built, so add an explicit dependency so that this works reliably in parallel
1060
+ builds. Fixes bug#77.
1061
+
1062
+ * In examples and documentation, don't call the MatchDecider class/object
1063
+ "matcher", since we use the term "matcher" to mean something else in
1064
+ the library documentation.
1065
+
1066
+ * smoketest.py:
1067
+
1068
+ + Add test of exception handling.
1069
+
1070
+ + Add test that MatchDecider can be subclassed successfully.
1071
+
1072
+ * Wrap TermIterator::skip_to() so that it can be used from the TermIter
1073
+ pythonic iterator class.
1074
+
1075
+ Ruby:
1076
+
1077
+ * Xapian::MatchDecider can now be subclassed in Ruby.
1078
+
1079
+ * configure: Look for ruby interpreter as "ruby1.8" since it's called that
1080
+ (with no "ruby" alias) on Ubuntu dapper at least.
1081
+
1082
+ * simplesearch.rb: Lowercase terms before stemming. "First ten" is inaccurate
1083
+ since we may have less than 10 matches, so say "1-<N>" instead.
1084
+
1085
+ * simplematchdecider.rb: Implemented.
1086
+
1087
+ Tcl:
1088
+
1089
+ * Implement saner exception handling for Tcl and document it.
1090
+
1091
+ * smoketest.tcl:
1092
+
1093
+ + Add check that xapian::Query_OP_ELITE_SET has the right value.
1094
+
1095
+ + Rework how the smoketest gets run to eliminate special code for using
1096
+ uninstalled bindings from smoketest.tcl itself. This allows the smoketest
1097
+ to be run using installed bindings, and also makes it a better example
1098
+ program.
1099
+
1100
+ + Add test for exception handling.
1101
+
1102
+ + Send error messages to stderr.
1103
+
1104
+ + Add comment about Tcl storing zero bytes as \xc0\x80.
1105
+
1106
+ * simpleindex.tcl,simplesearch.tcl: Print $errorCode in the exception handler.
1107
+
1108
+ * For SVN snapshots, remove any _svn6789 suffix from the Xapian version number
1109
+ used for the Tcl bindings.
1110
+
1111
+ Xapian-bindings 0.9.6 (2006-05-15):
1112
+
1113
+ Documentation:
1114
+
1115
+ * INSTALL: Add section describing how to install without root access.
1116
+
1117
+ General:
1118
+
1119
+ * Updated to reflect the renaming of Xapian::xapian_version_string and
1120
+ companions to Xapian::version_string.
1121
+
1122
+ * Wrap optional length parameter to Enquire::set_query().
1123
+
1124
+ * In PHP, Python, and Tcl bindings, rename get_document_id to get_docid for
1125
+ consistency. Keep get_document_id as an alias for now for backward
1126
+ compatibility.
1127
+
1128
+ * Fixed ESet::empty() to return bool instead of Xapian::termcount (this was
1129
+ probably a largely harmless error).
1130
+
1131
+ * Stop SWIG from adding exception handling wrappers to the calls which return
1132
+ version strings, since they can't throw exceptions.
1133
+
1134
+ * xapian.i: Removed superfluous "const" from return type "docid" which is just
1135
+ a typedef for an unsigned integer type.
1136
+
1137
+ * configure: Add some missing "checking ..." messages so the user has more idea
1138
+ what is going on.
1139
+
1140
+ * Language specific util.i files can now define
1141
+ XAPIAN_TERMITERATOR_PAIR_OUTPUT_TYPEMAP and
1142
+ XAPIAN_MIXED_VECTOR_QUERY_INPUT_TYPEMAP to indicate which optional typemaps
1143
+ are provided for each language. This avoids needing to keep this
1144
+ information in two different places.
1145
+
1146
+ * xapian.i: Uncomment commented-out parameter names and fix duplicate
1147
+ parameter names (for the benefit of bindings which use the parameter names,
1148
+ like the OO PHP5 patch for SWIG I'm working on...)
1149
+
1150
+ Portability:
1151
+
1152
+ * configure: Fix warning flags passed for Intel C++ compiler.
1153
+
1154
+ CSharp:
1155
+
1156
+ * We now support building with Portable.NET.
1157
+
1158
+ * Note that the passing of strings from C# into Xapian and back isn't currently
1159
+ zero byte safe. If you try to handle string containing zero bytes, you'll
1160
+ find they get truncated at the zero byte.
1161
+
1162
+ * C# bindings now build and pass tests when srcdir != builddir.
1163
+
1164
+ * In configure.ac, the "#" in "C#" seems to sometimes confuse autoconf so
1165
+ always say "CSharp" instead.
1166
+
1167
+ * Not all machines are set up to run compiled C# programs when invoked
1168
+ directly, so get configure to check if we can, and otherwise see if using
1169
+ mono or ilrun works. If not, just skip the C# tests.
1170
+
1171
+ * configure: If "mcs" isn't found, we now look for a CSharp compiler as "gmcs"
1172
+ (alternative name for "mcs"), "cscc" (Portable.NET), and then "csc"
1173
+ (Microsoft, but we check it isn't the unrelated Chicken csc program.)
1174
+
1175
+ * Move the C# specific %rename list to csharp/util.i.
1176
+
1177
+ * Store the strong name key in the key container so we reuse it for later
1178
+ builds.
1179
+
1180
+ * Wrap the version functions as more sensible names and document them (and
1181
+ continue to provide the older undocumented names for now just in case anyone
1182
+ was using them.)
1183
+
1184
+ * Set the version of XapianSharp.dll correctly when building a snapshot from
1185
+ SVN and set informational attributes (which e.g. MS Windows Explorer shows.)
1186
+
1187
+ * SmokeTest.cs: Add test of version functions.
1188
+
1189
+ Guile:
1190
+
1191
+ * The Guile bindings don't work and aren't being actively worked on, so we're
1192
+ no longer including them in the distributed tarball to avoid disappointing
1193
+ users who notice a "guile" subdirectory. It also makes the download smaller.
1194
+
1195
+ Java:
1196
+
1197
+ * Simplify (and improve portability of) run-java-test by using "libtool
1198
+ --mode=execute"'s -dlopen option.
1199
+
1200
+ * Need to make sure "built" subdirectory exists or building from clean fails.
1201
+
1202
+ * Fix "make check" to work when srcdir != builddir.
1203
+
1204
+ PHP:
1205
+
1206
+ * Using "php -c myphp.ini" still loads the system php.ini (at least for PHP
1207
+ 4.3.10), so use "php -n" and then set the options we specifically want using
1208
+ "-d".
1209
+
1210
+ * Fix the smoketest invocation to work better when srcdir != builddir.
1211
+
1212
+ * Look for PHP interpreter first in prefix given by "php-config --prefix".
1213
+
1214
+ * Fix SWIG_RuntimeError to be handled as an exception in PHP5.
1215
+
1216
+ * simplesearch.php: MAX_PROB_TERM_LENGTH isn't used here so remove it.
1217
+
1218
+ * smoketest.php:
1219
+
1220
+ + Add test for version reporting functions
1221
+
1222
+ + If a test fails, say which one to aid debugging.
1223
+
1224
+ + Added simple test that zero-bytes are handled correctly when passing
1225
+ strings to and from Xapian.
1226
+
1227
+ Python:
1228
+
1229
+ * README: Note that Python bindings have been built with MSVC.
1230
+
1231
+ * Install xapian.py and xapian.pyc as _DATA not _SCRIPTS because we don't want
1232
+ to make them executable (they don't have a #! line).
1233
+
1234
+ * simplematchdecider.py: Rename confusingly-named "mymatcher" to
1235
+ "mymatchdecider". Add description of what this example does.
1236
+
1237
+ * simpleexpand.py: Don't define MAX_PROB_TERM_LENGTH as it isn't used.
1238
+
1239
+ * smoketest.py: Added simple test that zero-bytes are handled when passing
1240
+ strings to and from Xapian.
1241
+
1242
+ Ruby:
1243
+
1244
+ * Added new Ruby bindings from Paul Legato.
1245
+
1246
+ Tcl:
1247
+
1248
+ * smoketest.tcl:
1249
+
1250
+ + Add test for version reporting functions
1251
+
1252
+ + If a test fails, say which one to aid debugging.
1253
+
1254
+ + Added simple test that zero-bytes are handled correctly when passing
1255
+ strings to and from Xapian.
1256
+
1257
+ Xapian-bindings 0.9.5 (2006-04-08):
1258
+
1259
+ Documentation:
1260
+
1261
+ * HACKING,README: Split off HACKING to contain information which is only
1262
+ relevant to those wishing to modify the bindings.
1263
+
1264
+ General:
1265
+
1266
+ * SWIG-based bindings are now built with SWIG 1.3.29.
1267
+
1268
+ * configure: Report which languages we're building bindings for just before
1269
+ configure finishes.
1270
+
1271
+ * xapian.i: Make the stub definitions for disabled backends static.
1272
+
1273
+ * configure: Don't quote $PHP in AC_PATH_PROGS to avoid "checking for ... no"
1274
+ message.
1275
+
1276
+ * xapian.i: Wrap new method Enquire::set_sort_by_relevance_then_value().
1277
+
1278
+ Packaging:
1279
+
1280
+ * RPMs: xapian-bindings.spec.in: Use "%{_libdir}" instead of "/usr/lib" for
1281
+ Python bindings to support 64 bit systems.
1282
+
1283
+ * RPMs: Package the C# bindings.
1284
+
1285
+ Portability:
1286
+
1287
+ * java/run-java-test: Fix to work on platforms where LD_LIBRARY_PATH has a
1288
+ different name.
1289
+
1290
+ * configure: Detect Intel's C++ compiler and set suitable warning flags to
1291
+ avoid noise from compiling generated code.
1292
+
1293
+ CSharp:
1294
+
1295
+ * Rename Database::GetDoccount() to Database::GetDocCount() for consistency.
1296
+
1297
+ Guile:
1298
+
1299
+ * configure: Disable --with-guile since Guile support doesn't currently work.
1300
+
1301
+ Java:
1302
+
1303
+ * Override deprecation warnings for Xapian methods/functions/etc.
1304
+
1305
+ * SmokeTest.java: Write a helpful diagnostic to stderr if a check fails so we
1306
+ have some idea what went wrong!
1307
+
1308
+ * Rework how we include headers to get hash_map to avoid compiler warnings
1309
+ since it's usually not in the std namespace nowadays.
1310
+
1311
+ * Previously the "all" target also ran the "install" target, but this has
1312
+ proved very problematic, so change "make check" to use the uninstalled JNI
1313
+ glue library, and update the instructions to say that "make install" is now
1314
+ required.
1315
+
1316
+ * Use JAVA_PATHSEP when specifying the classpath for compiling .java files to
1317
+ .class files.
1318
+
1319
+ * README: Note that some platforms need "-pthread" or similar flags.
1320
+
1321
+ * Add a new Query constructor wrapper which take an OP_xxx and an array of
1322
+ Query objects.
1323
+
1324
+ * Compiling a .java file to a .class file now deletes the .jar file to ensure
1325
+ it gets updated.
1326
+
1327
+ PHP:
1328
+
1329
+ * php -n avoids reading any php.ini, but the compiled in default may be to
1330
+ enable the dubiously named "safe_mode" which prevents dl() being used so
1331
+ "make check" fails. So instead provide a very simple php.ini which turns off
1332
+ safe_mode and makes sure enable_dl is on.
1333
+
1334
+ * Fix handling of bool parameters when resolving overloaded methods and/or
1335
+ default arguments. This fixes Enquire_sort_by_value() to work when the
1336
+ second argument is specified. Added regression test for this case.
1337
+
1338
+ * simpleindex.php: Lowercase terms before stemming. Fixes bug#73.
1339
+
1340
+ * Fix segmentation fault when PHP "Null" is passed where C++ wants an object
1341
+ passed by reference. Fixes bug#74.
1342
+
1343
+ * simpleindex.php: Flushing after every call to WritableDatabase_add_document
1344
+ isn't required and will kill performance, so stop doing it. Fixes bug#75.
1345
+
1346
+ Python:
1347
+
1348
+ * Use the fairly new "swig -O" option for the "modern" python bindings as
1349
+ it generates a smaller glue library and runs faster. Some of the features
1350
+ enabled also work on python 2.1, so enable these for the "olde" bindings.
1351
+
1352
+ * configure: Catch the case where the user has python installed but not the
1353
+ module "distutils.sysconfig" and explain that they probably need to install a
1354
+ python-dev or python-devel package.
1355
+
1356
+ * "make check" now works in VPATH builds.
1357
+
1358
+ * smoketest.py: If a check fails, write a diagnostic message to stderr so we
1359
+ know which check it was!
1360
+
1361
+ * smoketest.py: catch Exception objects and print them.
1362
+
1363
+ * smoketest.py: Add feature tests for the various pythonic iterator
1364
+ wrappers
1365
+
1366
+ * python/docs/bindings.html: Document the Pythonic iterators.
1367
+
1368
+ * Fix TermIter not to try to read termfreqs or positions if they aren't
1369
+ meaningful for the current TermIter.
1370
+
1371
+ Xapian-bindings 0.9.4 (2006-02-21):
1372
+
1373
+ Documentation:
1374
+
1375
+ * COPYING: Updated FSF address.
1376
+
1377
+ General:
1378
+
1379
+ * Wrap Stopper::get_description().
1380
+
1381
+ * Wrap xapian_version_string() and related functions.
1382
+
1383
+ Portability:
1384
+
1385
+ * If we're overriding MACOSX_DEPLOYMENT_TARGET then override it for commands
1386
+ run from "make" too.
1387
+
1388
+ PHP:
1389
+
1390
+ * Fix so that generated code compiles with ZTS-enabled PHP (which is the
1391
+ default on Windows).
1392
+
1393
+ Python:
1394
+
1395
+ * smoketest.py: Test wrapping of xapian_version_string() and related functions.
1396
+
1397
+ Xapian-bindings 0.9.3 (2006-02-16):
1398
+
1399
+ Documentation:
1400
+
1401
+ * README: Updated and expanded (now covers supported platforms, and lists
1402
+ criteria which bindings for an additional language need to fulfil before
1403
+ we're likely to accept them).
1404
+
1405
+ * INSTALL: Updated and improved.
1406
+
1407
+ * TODO: Move C#-specific TODO to top level so we can track to-do items for
1408
+ all languages.
1409
+
1410
+ General:
1411
+
1412
+ * configure: Change how the user selects which bindings to build. If no
1413
+ --with* arguments are passed, then we default to building bindings we detect
1414
+ the required tools for (as before). But instead of requiring the user to
1415
+ deselect all bindings they don't actually want, we now let them select the
1416
+ bindings they do want. So "./configure --with-python" will only build the
1417
+ python bindings (and will fail if the required tools aren't installed).
1418
+
1419
+ * Every wrapped method contains exception handling code. The bulk of this
1420
+ is now factored out into a single helper function, which cuts the compile
1421
+ time by around a factor of 3 and halves the size of the stripped library
1422
+ (figures are for Tcl on x86_64).
1423
+
1424
+ * configure: Rework how XAPIAN_CXXFLAGS is passed through so that the user can
1425
+ override CXXFLAGS in the make invocation like so: make CXXFLAGS=-g
1426
+
1427
+ * configure: Bump required SWIG version to 1.3.28 and drop the special
1428
+ requirement for 1.3.22 for PHP (hurrah!) Note that you don't need
1429
+ SWIG to install the bindings - SWIG is run by the Xapian developers
1430
+ so these updated requirements are only relevant if you want to modify
1431
+ the bindings.
1432
+
1433
+ * Eliminate separate Makefile in each examples subdirectory, which makes the
1434
+ build system simpler, smaller, and a little faster.
1435
+
1436
+ * xapian.i: Include default constructors for all classes so that SWIG knows it
1437
+ doesn't have to use SwigValueWrapper for them, which makes the bindings code
1438
+ a bit smaller and faster. Also stop SWIG using SwigValueWrapper for
1439
+ std::pair<...>.
1440
+
1441
+ * configure: Document special environmental variables which configure
1442
+ recognises. Enhance handling of environmental variables so you can
1443
+ e.g. './configure PYTHON=python23' (previously you had to give a full
1444
+ path in such environmental variables or they would be ignored.
1445
+
1446
+ Packaging:
1447
+
1448
+ * RPM spec file:
1449
+
1450
+ + Automatically detect the python version.
1451
+
1452
+ + Rename "php4" references to "php".
1453
+
1454
+ + Automatically detect the PHP extension directory.
1455
+
1456
+ + Relax Tcl requirement to >= 8.1, since that's what we actually require.
1457
+
1458
+ + Add support for "--without php" and --without tcl8" options to rpmbuild.
1459
+
1460
+ Portability:
1461
+
1462
+ * configure: On Mac OS X, ensure MACOSX_DEPLOYMENT_TARGET is set to at least
1463
+ 10.3. This is required to link the bindings, and it doesn't seem to be
1464
+ possible to link them on 10.1 or 10.2 anyway.
1465
+
1466
+ * configure: Add -lstdc++ to XAPIAN_LIBS if we're using GCC. OpenBSD needs it
1467
+ to be explicitly specified and libtool correctly handles platforms where it
1468
+ would have been implicitly linked with anyway.
1469
+
1470
+ * Try to enable PHP bindings to build out of the box on cygwin (needs testing).
1471
+
1472
+ * configure: Add missing ";;" on the last alternative in some case statements.
1473
+
1474
+ * Only pass -no-undefined on platforms where it is required in order to link a
1475
+ shared library at all (it causes problems on Mac OS X in some cases).
1476
+
1477
+ CSharp:
1478
+
1479
+ * This release includes a lot of improvements for the C# bindings. They're
1480
+ now pretty much on a par with the other language bindings.
1481
+
1482
+ * Added documentation and examples.
1483
+
1484
+ * Method and function names are now renamed to match C# conventions
1485
+ (e.g. from get_description() to GetDescription()). This is obviously an
1486
+ incompatible change, but the C# bindings haven't been suitable for real world
1487
+ use prior to this release.
1488
+
1489
+ * Optional parameters are now wrapped so no longer need be specified
1490
+ explicitly.
1491
+
1492
+ * Overload ++ and -- for iterators.
1493
+
1494
+ * Overload == and != for iterators. Now comparisons with the end iterator
1495
+ work as expected, and SmokeTest passes.
1496
+
1497
+ * SmokeTest now reports exceptions verbosely.
1498
+
1499
+ * Xapian::InMemory::open() is now wrapped as Xapian.InMemory.Open(), and
1500
+ similarly for other database factory functions.
1501
+
1502
+ * Heed compatibility warnings from mcs and use different forms for
1503
+ command-line switches to the C# compiler (presumably for compatibility with
1504
+ Microsoft's compiler, though the warnings don't actually say that
1505
+ explicitly).
1506
+
1507
+ Guile:
1508
+
1509
+ * Rewrote guile/util.i. The old version caused SWIG warnings and wasn't
1510
+ zero-byte safe. The guile bindings are still a long way from actually
1511
+ working though.
1512
+
1513
+ Java:
1514
+
1515
+ * Wrap optional second parameter (query length) to Enquire::set_query().
1516
+
1517
+ * configure now probes for the Java path separator, which we then use to
1518
+ separate entries in the java -classpath command line option so we can
1519
+ build on platforms where it isn't ":".
1520
+
1521
+ * SmokeTest.java: Expand to test more features.
1522
+
1523
+ * java/README:
1524
+
1525
+ + Note that the bindings work with the Eclipse javac and GIJ 4.0.1.
1526
+
1527
+ + Add note about how wrapped methods are named.
1528
+
1529
+ * Query.java: OP_* code 9 no longer exists, so add it to those rejected by the
1530
+ validity check.
1531
+
1532
+ * Query.java: Comment out unused code.
1533
+
1534
+ * Fixed memory leak in Query-from-array-of-strings constructor.
1535
+
1536
+ * Eliminate the "_errormap" hashmap - we don't need to use RTTI here, since
1537
+ Xapian::Error subclasses can tell you their typename directly (using
1538
+ get_type()).
1539
+
1540
+ PHP:
1541
+
1542
+ * Some problems with overloaded methods in PHP have been fixed by a major
1543
+ overhaul of SWIG's PHP support. So we no longer rename such methods
1544
+ for PHP. This is an incompatible change, but it's easy to update your
1545
+ PHP scripts (just change new_Query_from_term_pair -> new_Query, etc).
1546
+
1547
+ * Previously the documentation and simpleindex.php suggested that you
1548
+ should call delete_CLASS(). This was incorrect and resulted in a
1549
+ double-free() in some cases, so we've fixed the documentation and
1550
+ examples and eliminated the delete_CLASS() wrappers. This is another
1551
+ incompatible change, but again easy to update for.
1552
+
1553
+ * We now support PHP5 as well as PHP4, so the configure test now looks
1554
+ for either and all references to "PHP4" or "php4" have been adjusted.
1555
+
1556
+ * PHP5 supports exceptions, so throw exceptions under PHP5. For PHP4
1557
+ we now handle DocNotFoundError and FeatureUnavailableError by issuing a
1558
+ warning and making the method return "Null". This isn't ideal, but it's
1559
+ the best we can easily do without proper exceptions.
1560
+
1561
+ * For the smoketest, instead of using "$(PHP) -c $(srcdir)" and having an
1562
+ empty php.ini in srcdir (which we were failing to distribute anyway), use
1563
+ "$(PHP) -n" which tells PHP not to use any php.ini file.
1564
+
1565
+ * Update PHP documentation to include new features.
1566
+
1567
+ * Redo Xapian section in phpinfo() to look more like most other modules.
1568
+
1569
+ * You can now construct a Query object from an array of strings or Query
1570
+ objects (or even a mixture).
1571
+
1572
+ * PHP examples now give a more useful error message if a database can't be
1573
+ opened.
1574
+
1575
+ * smoketest.php: Expanded the tests performed, including feature tests for
1576
+ the new Query-from-list constuctor.
1577
+
1578
+ * simplesearch.php: Use newly wrapped Query-from-list constructor.
1579
+
1580
+ * Use std::string::data() instead of c_str() as it may be more efficient for
1581
+ some STL implementations.
1582
+
1583
+ * Enquire::get_matching_terms() now generates the PHP list directly from the
1584
+ TermIterator rather than constructing a temporary C++ std::list, which is
1585
+ faster and requires less temporary memory.
1586
+
1587
+ Python:
1588
+
1589
+ * The Python constructor xapian.Query(OP, LIST_OF_STRINGS [, PARAM]) works
1590
+ once again (it has been broken since 0.9.0). Added a regression test to
1591
+ help keep this working.
1592
+
1593
+ * Enhance the above constructor to accept any Python sequence (e.g. a tuple
1594
+ instead of a list). Also the sequence can contain xapian.Query objects or
1595
+ strings or a mixture. Documented these enhancements.
1596
+
1597
+ * smoketest.py: Expanded the tests performed.
1598
+
1599
+ * Convert C++ strings to python ones in a zero-byte clean way.
1600
+
1601
+ * Added more error checking of the results of calls into the python
1602
+ interpreter.
1603
+
1604
+ * If using GCC, compile the python bindings with -fno-strict-aliasing (python
1605
+ itself is compiled with this option to avoid problems and it appears we ought
1606
+ to use it too to avoid the risk of hitting the same problems, although I'm
1607
+ not aware of anyone actually encountering such problems).
1608
+
1609
+ * When making xapian.pyc, "import _xapian;" before we "import xapian;" to
1610
+ avoid creating a broken xapian.pyc is the shared library can't be loaded for
1611
+ some reason.
1612
+
1613
+ * Enquire::get_matching_terms() now generates the Python list directly from the
1614
+ TermIterator rather than constructing a temporary C++ std::list, which is
1615
+ faster and requires less temporary memory.
1616
+
1617
+ Tcl:
1618
+
1619
+ * Terms with a leading underscore now work (thanks to changes in SWIG).
1620
+
1621
+ * Implement custom typemaps for Tcl, so that you can now construct a Query from
1622
+ a list of Query objects and/or strings, and Enquire::get_matching_terms is
1623
+ now wrapped.
1624
+
1625
+ * simplesearch.tcl: Use the new Query from list constructor.
1626
+
1627
+ * simplesearch.tcl: Fix to lowercase and stem query terms.
1628
+
1629
+ * simpleindex.tcl: Tweak regex to not tokenise "foo--bar" as "foo-" and "bar".
1630
+
1631
+ * simpleindex.tcl,simplesearch.tcl: Need explicit "xapian::" on constants.
1632
+
1633
+ Xapian-bindings 0.9.2 (2005-07-15):
1634
+
1635
+ General:
1636
+
1637
+ * Added wrappers for new optional flags argument to QueryParser::parse_query().
1638
+
1639
+ CSharp:
1640
+
1641
+ * Enhance configure to check that "mcs" is actually GNU Mono mcs and not
1642
+ another tool with the same name.
1643
+
1644
+ Java:
1645
+
1646
+ * Include SmokeTest.java in the distribution so "make check" works.
1647
+
1648
+ * Added success report for Sun java 1.4.1_01a.
1649
+
1650
+ Python:
1651
+
1652
+ * When converting a python list to vector<string> we know the number of elements
1653
+ so reserve that number in the vector.
1654
+
1655
+ Xapian-bindings 0.9.1 (2005-06-06):
1656
+
1657
+ General:
1658
+
1659
+ * Releases are now created using libtool 1.5.18 and automake 1.9.5.
1660
+
1661
+ Tcl:
1662
+
1663
+ * Updated documentation to include information from Michael Schlenker about how
1664
+ to delete a database object such that the destructor gets called.
1665
+
1666
+ Xapian-bindings 0.9.0 (2005-05-13):
1667
+
1668
+ General:
1669
+
1670
+ * Updated SWIG-based bindings to latest Xapian API
1671
+
1672
+ * Improve support for building the bindings on MS Windows:
1673
+
1674
+ + Provide stub versions of any backend functions which are disabled in the
1675
+ library we're wrapping to avoid a link failure on MS Windows (where the
1676
+ remote backend is automatically disabled). These stubs just throw
1677
+ Xapian::FeatureUnavailableError.
1678
+
1679
+ + Add -no-undefined to *_la_LDFLAGS.
1680
+
1681
+ + Use $(PATH_SEPARATOR) or Python's os.pathsep instead of ':' where
1682
+ appropriate.
1683
+
1684
+ + For python, paths for finding headers and installing libraries are now
1685
+ handled so they work on MS Windows; an extra static library needs to be
1686
+ linked in too.
1687
+
1688
+ * Wrap the Muscat36 Database factory functions (easy to do now we have stubs
1689
+ for disabled backends).
1690
+
1691
+ * Don't wrap MSet::max_size() as it's there for STL compatibility rather than
1692
+ being useful functionality.
1693
+
1694
+ * configure: Fix all SWIG warnings and pass -Werror to SWIG so any which get
1695
+ introduced in future get fixed.
1696
+
1697
+ * configure: Fix version test to allow for _svn6789 suffix which SVN snapshots
1698
+ have.
1699
+
1700
+ * Generate SWIG bindings with SWIG 1.3.24 (except for PHP which we still use
1701
+ 1.3.22 for as more recent versions don't work with methods with optional
1702
+ arguments - the arguments become non-optional!)
1703
+
1704
+ Guile:
1705
+
1706
+ * configure: Disable guile by default, as it needs more work.
1707
+
1708
+ Java:
1709
+
1710
+ * Updated to compile against 0.9.0 API.
1711
+
1712
+ * Added missing make rule to build SmokeTestWrap.class to "make check" works.
1713
+
1714
+ * Wrap optional parameters to Query(term) constructor.
1715
+
1716
+ PHP4:
1717
+
1718
+ * For PHP4, rename default Database constructor to Database_empty
1719
+ instead of suppressing the much more useful Database(const string &path)
1720
+ constructor.
1721
+
1722
+ * Use a blank config file when running PHP4 tests to avoid problems
1723
+ when the bindings are already installed as an extension which is
1724
+ loaded automatically in the default config.
1725
+
1726
+ * configure.ac: If configure can't find the PHP interpreter (as php4 or php),
1727
+ it probably just means it's not in PATH. We only need it for running tests,
1728
+ so substitute a trivial shell script which just exits with code 77 so PHP
1729
+ tests are skipped (previously we substituted "missing" which caused the tests
1730
+ to fail).
1731
+
1732
+ Python:
1733
+
1734
+ * Added Python-style iterators ESetIter, TermIter, PostingIter, PositionIter,
1735
+ and ValueIter.
1736
+
1737
+ * configure: If python is found, also check that Python.h exists (it may not be
1738
+ if the python-dev package (or similar) isn't installed).
1739
+
1740
+ Xapian-bindings 0.8.5.1 (2005-02-23):
1741
+
1742
+ General:
1743
+
1744
+ * configure: Run compiler feature tests using the C++ compiler, not the C
1745
+ compiler.
1746
+
1747
+ * Allow bindings version to have an extra "patchlevel", yet still match with
1748
+ corresponding xapian-core version (e.g. 0.8.5.1 and 0.8.5);
1749
+
1750
+ Java:
1751
+
1752
+ * Added a missing .java source file and removed several unused ones.
1753
+
1754
+ * Fixed several glitches in the java bindings automake build system.
1755
+
1756
+ * Use "-Wno-unused" when compiling JNI C++ code to ignore harmless
1757
+ warnings in generated code (we were carefully passing "-Wunused"
1758
+ which is the opposite of what is needed!)
1759
+
1760
+ * Fixed a couple of warnings from GCJ.
1761
+
1762
+ * Wrapped a few missing methods added since Eric created the bindings. There
1763
+ are still some missing methods - there's now a (probably incomplete) list in
1764
+ java/README.
1765
+
1766
+ * Added various useful bits of information to java/README.
1767
+
1768
+ * Tweaked SimpleSearch.java to be more like the C++ version.
1769
+
1770
+ PHP4:
1771
+
1772
+ * 0.8.5 was generated with SWIG 1.3.24, but PHP support is broken there so
1773
+ we now generate the PHP bindings with SWIG 1.3.22 and everything else with
1774
+ a more recent version.
1775
+
1776
+ * configure: Check for "php" as a program name as well as "php4", and
1777
+ fall-back to missing so the error message from "make check" is better.
1778
+
1779
+ Xapian-bindings 0.8.5 (2004-12-23):
1780
+
1781
+ General:
1782
+
1783
+ * INSTALL: Added non-generic installation instructions.
1784
+
1785
+ Python:
1786
+
1787
+ * Fixed bytecode compilation of xapian.py. xapian.pyc was being generated in
1788
+ the same directory as xapian.py, but Makefile.am was looking in current
1789
+ directory when installing it. Additionally, VPATH builds were broken.
1790
+ These problems were introduced by changes in 0.8.4.
1791
+
1792
+ Xapian-bindings 0.8.4 (2004-12-08):
1793
+
1794
+ General:
1795
+
1796
+ * README: Now clearly says which languages we currently support, which people
1797
+ are working on, etc.
1798
+
1799
+ * Instead of requiring the user to have a really recent SWIG installed, ship
1800
+ the files SWIG generates. Disable all the SWIG rules unless configure is run
1801
+ with --enable-maintainer-mode to make sure they aren't triggered accidentally
1802
+ (e.g. by make with dodgy VPATH).
1803
+
1804
+ * configure: Require SWIG 1.3.22 or higher (but note that SWIG is no longer
1805
+ needed if you just want to install the bindings).
1806
+
1807
+ * Wrap the new Database and WritableDatabase constructors which replace
1808
+ Auto::open().
1809
+
1810
+ * It turns out that we do need to wrap MSet::MSet() (wrapping removed in 0.8.2)
1811
+ (for example, simpleexpand.py needs it).
1812
+
1813
+ * In the Query constructor which takes a vector of terms, only call set_window
1814
+ if window is non-zero. Otherwise things go wrong if we're passed an empty
1815
+ vector.
1816
+
1817
+ * Second argument to Document::add_posting() isn't optional, but xapian.i
1818
+ indicated that it was.
1819
+
1820
+ * xapian.i: Added wrappers for Xapian::Weight and standard subclasses.
1821
+ Deriving your own weight class in the scripting language isn't currently
1822
+ supported.
1823
+
1824
+ * xapian.i: %name is deprecated, so use %rename instead. This also works
1825
+ around a bug in SWIG 1.3.23.
1826
+
1827
+ * configure: Removed pointless probe for a C compiler - everything we compile
1828
+ is C++.
1829
+
1830
+ * configure: Reinstated the check that the bindings version matches the version
1831
+ of the xapian library. It was added in 0.8.2, but accidentally removed in
1832
+ 0.8.3.
1833
+
1834
+ * Use newly added option `xapian-config --swigflags` which (a) avoids always
1835
+ passing -I/usr/include which could cause problems if we're using a Xapian
1836
+ install not in /usr and there's another one in /usr and (b) avoids problems
1837
+ if `xapian-config --cxxflags` contains flags other than -I<something>.
1838
+
1839
+ CSharp:
1840
+
1841
+ * Richard Boulton has put together bindings for C#. These build successfully
1842
+ with the Mono tools, but the smoketest currently fails. Unclear if the
1843
+ problem is the bindings or the smoketest code.
1844
+
1845
+ Guile:
1846
+
1847
+ * The guile bindings now build successfully, so we've enabled the guile
1848
+ detection machinery in configure. They're untested though (we don't
1849
+ know guile!) so success or failure reports are encouraged!
1850
+
1851
+ PHP4:
1852
+
1853
+ * Mention the example scripts near the start of the documentation, not right at
1854
+ the end.
1855
+
1856
+ * Remove documentation explicitly saying how we wrap Xapian::QueryParser and
1857
+ Xapian::Stem since we wrap them exactly as we wrap everything else we don't
1858
+ mention!
1859
+
1860
+ Python:
1861
+
1862
+ * Make overloaded Query(Query::op, vector<string>*, termpos) constructor
1863
+ work in Python.
1864
+
1865
+ * Changed examples to use the newly wrapped Query from list of terms ctor.
1866
+
1867
+ * Mention the example scripts near the start of the documentation, not right at
1868
+ the end.
1869
+
1870
+ * python/Makefile.am: Added xapian_wrap.h as a target for the rule which runs
1871
+ SWIG.
1872
+
1873
+ * Remove documentation explicitly saying how we wrap Xapian::QueryParser and
1874
+ Xapian::Stem since we wrap them exactly as we wrap everything else we don't
1875
+ mention!
1876
+
1877
+ * Mention simpleexpand example in documentation.
1878
+
1879
+ * Examples now report messages for Xapian exceptions.
1880
+
1881
+ * Removed MAX_PROB_TERM_LENGTH from example scripts which don't use it.
1882
+
1883
+ * Make the example MatchDecider exclude documents matching a value, rather than
1884
+ a term. The latter is a very inefficient way to do what AND_NOT does, and we
1885
+ don't want examples to mislead like that.
1886
+
1887
+ * python/docs/bindings.html: Note that you can construct a query
1888
+ from a list of terms, even if you can't from a list of queries.
1889
+ Add HTML links to the examples.
1890
+
1891
+ * simpleindex.py: Trim spaces from the start as well as from the end of each
1892
+ line. Simplify the loop slightly.
1893
+
1894
+ Tcl:
1895
+
1896
+ * Wrap in a tcl8 namespace "Xapian".
1897
+
1898
+ * Added a smoketest.
1899
+
1900
+ * Translated simpleindex and simplesearch into Tcl.
1901
+
1902
+ * Set the Tcl package version.
1903
+
1904
+ * Create pkgIndex.tcl so the package can be loaded in the usual Tcl way.
1905
+
1906
+ * Install in "xapian<VERSION>" directory in the conventional Tcl way.
1907
+
1908
+ * Added documentation for tcl8 bindings.
1909
+
1910
+ * Use the TCL_STUBS mechanism so that compiled extensions are portable between
1911
+ different versions of Tcl. This needs Tcl 8.1, so bump the required Tcl
1912
+ version (was 8.0).
1913
+
1914
+ * configure.ac: Noted that the bindings can easily be compiled for use with
1915
+ Tcl 8.0, in case anybody needs that for some reason.
1916
+
1917
+ * Don't wrap the factory functions which return a quartz WritableDatabase as
1918
+ the destructor never gets called so changes aren't flushed and the lock file
1919
+ isn't removed.
1920
+
1921
+ Xapian-bindings 0.8.3 (2004-09-20):
1922
+
1923
+ General:
1924
+
1925
+ * Fixed mismatching versions of libtool used to produce configure and
1926
+ ltmain.sh. The obvious symptom was ".so" missing from the shared object
1927
+ names.
1928
+
1929
+ * RPM spec file contributed by Fabrice Colin. Currently this packages Python,
1930
+ PHP4, and Tcl bindings.
1931
+
1932
+ Java:
1933
+
1934
+ * Pass -classpath to javac to fix build problems.
1935
+
1936
+