1.07
[ZOOM-Perl-moved-to-github.git] / Changes
1 $Id: Changes,v 1.31 2006-05-11 16:44:24 mike Exp $
2
3 Revision history for Perl extension Net::Z3950::ZOOM.
4
5 1.07  Thu May 11 17:44:11 BST 2006
6         - Makefile.PL checks for at least version 2.1.11 of YAZ, and
7           refuses to build if it's not present.  Thanks to "gregor"
8           (an otherwise anonymous CPAN tester) for notifying me of the
9           previously poor reporting of failure when running against an
10           earlier YAZ.
11         - No changes to functionality or documentation.
12
13 1.06  Wed Apr 19 21:11:52 BST 2006
14         - Avoid mixed statement/declaration in ZOOM.xs.  *sigh*  Why
15           the heck GCC allows this by default I will never understand.
16         - Add (commented out) OPTIMIZE option to Makefile.PL, to turn
17           on -Wdeclaration-after-statement, which makes mixed
18           statement/declaration illegal.
19
20 1.05  Wed Apr 12 13:31:27 BST 2006
21         - Implementation of asynchronous events!  The Net::Z3950::ZOOM
22           interface provides this through the event, last_event() and
23           event_str() functions.  The ZOOM interface provides it
24           through the ZOOM::event() and ZOOM:event_str() functions,
25           and the ZOOM::Connection class's last_event() function.
26         - New sample programs added illustrating both asynchronous
27           interfaces: samples/net-z3950-zoom/zoomtst3.pl and
28           samples/zoom/zoomtst3.pl respectively.  Additional sample
29           programs "async.pl" and "trivial-async.pl" for the ZOOM
30           interface only, the latter being a "shortest possible
31           broadcast search application".
32         - Added documentation on writing asynchronous applications.
33         - Added test-scripts "t/19-events.t" and "t/29-event.t" for
34           events on an asynchronous connection.
35         - Fix ZOOM::Connection::new so that options are handled in
36           accordance with the documentation: applied _before_ the
37           connection is forged, so that "async" and similar options
38           can take effect.
39
40 1.04  Mon Apr  3 14:56:11 BST 2006
41         - The ZOOM-Perl layer now provides access to the underlying
42           ZOOM-C's character-translation functionality, through new
43           optional arguments to ZOOM::Record's render() and raw()
44           methods, and a new underlying get() method.
45
46 1.03  Thu Mar  9 12:55:23 GMT 2006
47         - Allow additional key => value pairs as arguments to the
48           ZOOM::Connectoion constructor; these are added as Connection
49           options before the protocol connection is forged.
50
51 1.02  Thu Mar  9 11:36:55 GMT 2006
52         - Add interface to yaz_version().
53         - Emit big warning at startup time if YAZ version is less than
54           2.0.11 (which is what ZOOM-Perl 1.02 requires) unless the
55           file /tmp/ignore-ZOOM-YAZ-version-mismatch exists.
56         - Fix incorrect ZOOM-package URL in documentation.
57         - Fix typo ("createdb" package) in documentation.
58         - The ZOOM::Connection constructor may now be called with only
59           a single argument (host-string) and does not require a
60           dummy port-number argument.
61
62 1.01  Thu Dec 22 14:13:34 GMT 2005
63         - Place some CODE: chunks in "ZOOM.xs" inside curly brackets
64           so that the declarations they begin with are at the start of
65           the block.  This avoid mixed code/declarations.  (The
66           "correct" solution is to use INIT: clauses in the XS file,
67           but they don't seem to work: the code in them is slapped
68           down right next to the CODE:, so declarations are not
69           acceptable there either.)
70         - Add new function Net::Z3950::ZOOM::connection_scan1(), which
71           uses a query object to indicate the start-term.  This opens
72           the way for using CQL queries for scanning once the
73           underlying ZOOM-C code supports this.
74         - NOTE BACKWARDS-INCOMPATIBLE CHANGE: The ZOOM::Connection
75           method scan() is renamed scan_pqf(), and a new scan() method
76           is introduced which calls the underlying scan1() function.
77           Thus the scan()/scan_pqf() dichotomy is consistent with that
78           between search()/search_pqf().
79         - The tests t/15-scan.t and t/25-scan.t now also test for
80           scanning by CQL query.  To support these tests, a new files
81           is added to the distribution, "samples/cql/pqf.properties"
82         - Remove nonsensical clause about CQL sort-specifications from
83           the documentation.
84         - Add new function Net::Z3950::ZOOM::query_cql2rpn(), for
85           client-side CQL compilation.
86         - Add new ZOOM::Query::CQL2RPN class, encapsulating CQL
87           compiler functionality as a Query subclass.
88         - Add two new error-codes, CQL_PARSE and CQL_TRANSFORM,
89           returned by the client-side CQL facilities.
90         - The test-scripts t/12-query.t and t/22-query.t are extended
91           to also test client-side CQL compilation.
92         - Add all the yaz_log*() functions within the Net::Z3950::ZOOM
93           namespace. 
94         - Add new ZOOM::Log class for logging, providing aliases for
95           the functions in the Net::Z3950::ZOOM layer.
96         - Add diagnostic set to rendering of Exception objects.
97         - Documentation added for CQL compilation and logging.
98
99 1.00  Wed Dec 14 11:18:33 GMT 2005
100         - First distributed version.
101
102 0.01  Fri Oct  7 16:14:20 2005
103         - original version; created by h2xs 1.23 with options
104                 --name=Net::Z3950::ZOOM --compat-version=5.8.0 \
105                 --omit-constant --skip-exporter --skip-ppport \
106                 --autogen-xsubs yaz/zoom.h -lyaz -lxml2
107
108 --
109
110 To be done in future releases:
111         - Complete, test and document "update.pl"
112         - Fix Net::Z3950::ZOOM::record_get() to use a struct datachunk
113           _when_ appropriate, e.g. for "render" but probably not for
114           "database" and "syntax".
115         - Create old-style Net::Z3950 compatibility layer.
116         - Fix memory leaks in callback functions for option sets.
117         - Fix limitation that option-set callback functions must be
118           specified as strings containing package-qualified function
119           names.
120