$Id: Changes,v 1.30 2006/04/19 20:12:02 mike Exp $

Revision history for Perl extension Net::Z3950::ZOOM.

1.06  Wed Apr 19 21:11:52 BST 2006
	- Avoid mixed statement/declaration in ZOOM.xs.  *sigh*  Why
	  the heck GCC allows this by default I will never understand.
	- Add (commented out) OPTIMIZE option to Makefile.PL, to turn
	  on -Wdeclaration-after-statement, which makes mixed
	  statement/declaration illegal.

1.05  Wed Apr 12 13:31:27 BST 2006
	- Implementation of asynchronous events!  The Net::Z3950::ZOOM
	  interface provides this through the event, last_event() and
	  event_str() functions.  The ZOOM interface provides it
	  through the ZOOM::event() and ZOOM:event_str() functions,
	  and the ZOOM::Connection class's last_event() function.
	- New sample programs added illustrating both asynchronous
	  interfaces: samples/net-z3950-zoom/zoomtst3.pl and
	  samples/zoom/zoomtst3.pl respectively.  Additional sample
	  programs "async.pl" and "trivial-async.pl" for the ZOOM
	  interface only, the latter being a "shortest possible
	  broadcast search application".
	- Added documentation on writing asynchronous applications.
	- Added test-scripts "t/19-events.t" and "t/29-event.t" for
	  events on an asynchronous connection.
	- Fix ZOOM::Connection::new so that options are handled in
	  accordance with the documentation: applied _before_ the
	  connection is forged, so that "async" and similar options
	  can take effect.

1.04  Mon Apr  3 14:56:11 BST 2006
	- The ZOOM-Perl layer now provides access to the underlying
	  ZOOM-C's character-translation functionality, through new
	  optional arguments to ZOOM::Record's render() and raw()
	  methods, and a new underlying get() method.

1.03  Thu Mar  9 12:55:23 GMT 2006
	- Allow additional key => value pairs as arguments to the
	  ZOOM::Connectoion constructor; these are added as Connection
	  options before the protocol connection is forged.

1.02  Thu Mar  9 11:36:55 GMT 2006
	- Add interface to yaz_version().
	- Emit big warning at startup time if YAZ version is less than
	  2.0.11 (which is what ZOOM-Perl 1.02 requires) unless the
	  file /tmp/ignore-ZOOM-YAZ-version-mismatch exists.
	- Fix incorrect ZOOM-package URL in documentation.
	- Fix typo ("createdb" package) in documentation.
	- The ZOOM::Connection constructor may now be called with only
	  a single argument (host-string) and does not require a
	  dummy port-number argument.

1.01  Thu Dec 22 14:13:34 GMT 2005
	- Place some CODE: chunks in "ZOOM.xs" inside curly brackets
	  so that the declarations they begin with are at the start of
	  the block.  This avoid mixed code/declarations.  (The
	  "correct" solution is to use INIT: clauses in the XS file,
	  but they don't seem to work: the code in them is slapped
	  down right next to the CODE:, so declarations are not
	  acceptable there either.)
	- Add new function Net::Z3950::ZOOM::connection_scan1(), which
	  uses a query object to indicate the start-term.  This opens
	  the way for using CQL queries for scanning once the
	  underlying ZOOM-C code supports this.
	- NOTE BACKWARDS-INCOMPATIBLE CHANGE: The ZOOM::Connection
	  method scan() is renamed scan_pqf(), and a new scan() method
	  is introduced which calls the underlying scan1() function.
	  Thus the scan()/scan_pqf() dichotomy is consistent with that
	  between search()/search_pqf().
	- The tests t/15-scan.t and t/25-scan.t now also test for
	  scanning by CQL query.  To support these tests, a new files
	  is added to the distribution, "samples/cql/pqf.properties"
	- Remove nonsensical clause about CQL sort-specifications from
	  the documentation.
	- Add new function Net::Z3950::ZOOM::query_cql2rpn(), for
	  client-side CQL compilation.
	- Add new ZOOM::Query::CQL2RPN class, encapsulating CQL
	  compiler functionality as a Query subclass.
	- Add two new error-codes, CQL_PARSE and CQL_TRANSFORM,
	  returned by the client-side CQL facilities.
	- The test-scripts t/12-query.t and t/22-query.t are extended
	  to also test client-side CQL compilation.
	- Add all the yaz_log*() functions within the Net::Z3950::ZOOM
	  namespace. 
	- Add new ZOOM::Log class for logging, providing aliases for
	  the functions in the Net::Z3950::ZOOM layer.
	- Add diagnostic set to rendering of Exception objects.
	- Documentation added for CQL compilation and logging.

1.00  Wed Dec 14 11:18:33 GMT 2005
	- First distributed version.

0.01  Fri Oct  7 16:14:20 2005
	- original version; created by h2xs 1.23 with options
		--name=Net::Z3950::ZOOM --compat-version=5.8.0 \
		--omit-constant --skip-exporter --skip-ppport \
		--autogen-xsubs yaz/zoom.h -lyaz -lxml2

--

To be done in future releases:
	- Complete, test and document "update.pl"
	- Fix Net::Z3950::ZOOM::record_get() to use a struct datachunk
	  _when_ appropriate, e.g. for "render" but probably not for
	  "database" and "syntax".
	- Create old-style Net::Z3950 compatibility layer.
	- Fix memory leaks in callback functions for option sets.
	- Fix limitation that option-set callback functions must be
	  specified as strings containing package-qualified function
	  names.

