$Header: /home/cvsroot/NetZ3950/Changes,v 1.27 2002/11/27 12:41:54 mike Exp $
Revision history for Perl extension Net::Z3950.
0.31 Wed Nov 27 12:40:50 2002
- Add command-line options to samples/simple.pl
- Add samples/canonical.pl
- Change the default element-set names in Manager.pm to be
upper-case "F" and "B" rather than "f" and "b", as specified
in section 3.6.2 (Composition Specification, Comp-spec
Omitted) of the standard.
http://lcweb.loc.gov/z3950/agency/markup/08.html#3.6.2
Even though a clarification makes it clear that element-set
names should be treated case-insensitively.
http://lcweb.loc.gov/z3950/agency/clarify/esncase.html
- Formally deprecate the non-working records() method of the
ResultSet class.
- When a new Connection object can't be made because of Init
being refused (rather than due to a lower-level error such
as ECONNREFUSED), $! is set to the distinguished value -1.
(Dave Mitchell)
- Neater code for connection-closing.
(Dave Mitchell)
- Fake up a diagnostic record (BIB-1 error 3, "unsupported
search") for servers which illegally fail to include
diagnostic records in the result of a failed search.
(Dave Mitchell)
- Added #include "XSUB.h" to the yazwrap directory's private
code, which means it now does The Right Thing when compiling
against a Perl build with the MULTIPLICITY flag set. This
means that we now build and run under cygwin on Windows 2000
(Dave Mitchell)
- Add new option "namedResultSets", initially true, which if
set false caters for brain-damaged servers by always using
the same result-set name, "default", thereby invalidating
previous ResultSet objects.
(Dave Mitchell)
- Documentation tweaks.
0.30 Fri Jul 19 13:55:45 2002
Today's release is brought to you entirely by Dave Mitchell
<davem@fdgroup.com>, who has done an astonishing amount of
really useful work on Net::Z3950. Thanks, Dave!
- Added the present() method and "prefetch" option to optimise
multiple calls of record() in synchronous mode.
- Made $conn->close() actually clean up and close the connection
- Fixed memory leak in receive.c, decodeAPDU()
- Added functions to decode close request/response APDUs.
- Really do add ability to set custom exception-handler via
"die_handler" option -- I [Mike] did it wrong last time.
- Changed all print()s to die()s, which can be caught as
exceptions.
- Commented out a debugging warn()
- Added a dummy "test" target to yazwrap/Makefile.PL to stop
it complaining during "make test" [At last! -- Mike]
- Removed "debug => 5" from watcher creators.
- Updated the synchronous synopsis:
* Replaced use of records() with record(), since the former
is deprecated.
* Added error-checking, so that people who cut-and-paste the
synposis start off with good habits.
* Added $conn->close(), so people know this doesn't happen
automatically.
0.29 Fri May 17 17:07:53 2002
- Add ability to set custom exception-handler via
'die_handler' option.
- Fix dereference-undef bug occurring when performing a second
search on a connection without having fetched any records
following the first search.
- Cope with servers which lie about the number of records in
their present responses (the cads!)
- Fix to correctly translate OIDs in which one or more
components is "0".
All of these changes are due to Dave Mitchell
<davem@fdgroup.com> -- thanks, Dave!
0.28 Wed Feb 27 17:28:26 2002
- Change representation of OIDs from blessed reference to
array of intergers to Boring Old String (dot-separated
numbers). Resulting tweaks elsewhere in the module, e.g. in
GRS::render()
- Fix Tutorial's incorrect description of the GRS-1 record
structure. How come no-one noticed this gross error in all
the time it was there?
- Minor fixes to the APDU class's documentation (but you
shouldn't be reading that anyway :-)
- Fix the top-level documentation file (index.html) to use the
same stylesheet as all the API documentation.
0.27 Mon Feb 11 12:59:05 2002
- Incorporate a patch from Adam <adam@indexdata.dk> to allow
Net::Z3950 to work against servers that don't support named
result sets. Ah, so simple, so elegant!
0.26 Fri Feb 8 16:06:15 2002
- OK. This time I have _really_ fixed connecting to work
properly either synchronously or asynchronously, and
slightly clarified some of the event-handling code while I
was at it. In particular, ECONNREFUSED is handled properly
now.
- Add AUTHOR and ABSTRACT to my Makefile.PL, as recommended in
passing by R. Geoffrey Avery's Lightning Talk _h2xs has
eXceeded its Stay_, at
http://www.platypiventures.com/perl/present/tpc5modules/004.html
0.25 Tue Jan 29 15:56:48 2002
- Remove some obsolete comments (documenting bugs that are now
fixed!)
- Fix type mismatch in encode_APDU() -- we've been getting
away with it until now because sizeof(size_t)==sizeof(int)
on most systems, but not on the 64-bit DEC Alpha OSF/1.
- Fix daft-but-harmless bug in yazwrap/receive.c's setString()
functions, in which we return the value of a void function.
Most compilers DWIM, but not all.
- Add explicit casts to (char*) in yazwrap/receive.c where I'd
been assuming the conversion from unsigned char*. Ho hum.
0.24 Wed Jan 23 11:39:32 2002
- Fix a truly stupid bug which prevents synchronous connection
from working. I missed this in 0.23 because the test script
-- unlike almost every other Net::Z3950 program -- uses
asynchronous connection. D'oh!
0.23 Tue Jan 22 16:11:41 2002
- Handle surrogate diagnostics (e.g. bad element set name).
- Finally fix that stupid "No rule to make target `pure_all'"
message that "make test" always used to produce in the
yazwrap directory.
- Add support for retrieving HTML records: new record-syntax
enumeration TEXT_HTML, and a new record-type class
Net::Z3950::Record::HTML.
- Fix hanging on ECONNREFUSED.
0.22 Fri Oct 19 16:37:44 2001
- Add rudimentary ("straight through") support for the OPAC
record syntax.
- Fix URLs for perl.z3950.org to omit obsolete /nz/ directory.
- Fix "make clean" in doc directory to remote the Z3950
subdirectory.
- Fix documentation stylesheet to match perl.z3950.org
0.21 Thu Oct 18 14:29:06 2001
- Fix samples/multiplex.pl not to die when one server fails a
search - it just prints and error message now.
- Get rid of stupid "field `DESTROY' not defined" messages.
0.20 Fri Oct 12 17:12:04 2001
- Add name() method to the Net::Z3950::Connection class.
- Add the wherewithal for asynchronous operations to invoke
callbacks when they complete
- Fix staggeringly stupid bug in which the synchronous
search() method would always expect an initResponse, so that
you couldn't call search() twice on one connection.
- Add support for the UNIMARC record syntax (required by Bath)
- Remove the stupid and implemented records() method from the
Connection class.
- Implement CCL qualifiers, specified in "ccl.qual" file.
- Improve diagnostics from APDU assembly.
- Fix a rather silly bug where records, once fetched, were
cached irrespective of their element-set name, so that
record fetched as 'b' and then as 'f' would appear brief.
- Revamp the "samples" directory: all examples now work(!)
- Add ZOOM references to the documentation.
- Minor fixes to documentation, comments, etc.
(This major revision - indicated by the increment of the
first-decimal-place version number - was largely motivated
by the October 2001 ZIG meeting's tutorial, for which I
prepared a simple multiplexing client, and was surprised at
how hard it turned out to be.)
0.14 Wed Jul 18 13:25:06 2001
- Add support for retrieving XML records: new record-syntax
enumerations TEXT_XML and APPLICATION_XML, and a new
record-type class Net::Z3950::Record::XML.
- Minor fixes to documentation, comments, etc.
0.13 Fri Jun 22 09:30:55 2001
- In yazwrap/util.c, change socklen_t to size_t since the
former does not seem to be defined on all platforms. In
particular, Solaris 2.6 uses a size_t* for the last argument
to getsockopt().
0.12 Wed Feb 21 16:47:03 2001
- Change my email address and web-page in the README.
- Add conditionally-compiled debugging code to Yaz-wrapper.
- Add rudimentary support for rendering MARC records and
remove the MARC-related apology from the tutorial.
- Add note to README about "make test" error message.
- Add note to README about support options, including the
Net::Z3950 mailing list.
0.11 Fri Feb 9 11:31:34 2001
- Fix Net::Z3950::ResultSet->record() to work correctly in
synchronous mode (i.e. wait for the record to become
available before returning.)
- Add rawdata() method to the various Net::Z3950::Record::*
classes: we now have a distinction between render() and
rawdata(), concepts which were previously mulched in
together very unhelpfully.
- Add Tutorial.
- FIRST PUBLIC RELEASE ON CPAN
0.10 Wed Nov 29 16:39:47 2000
- Change module name from Z3950 to Net::Z3950
0.04 Fri Sep 22 17:51:28 2000
- Fix so that diagnostics are available after search failure.
- Add trivial "straight through" support for USMARC and some
of the related record syntaxes.
- Support for OID-typed fields in GRS-1 records.
- Change default database to "Default" (it had the profoundly
unhelpful default of "hardwired-databaseName"!)
- Modify the internal class hierarchy to make MARC support
hang together more easily (yazwrap library now returns
...::Record::<RS> objects instead of ...::APDU::<RS>)
- Improve diagnostics when low-level translation of C objects
into Perl objects fails.
0.03 Thu Jun 29 15:38:33 2000
- First version to be held in CVS at indexdata.dk
- Add CVS identification headers where they're missing, fix
some that lacked the trailing $-sign (duh.)
- Fix the search() and records() wrapper methods so that much
simpler single-threaded clients can be easily written.
0.02 Tue Jun 27 21:28:56 2000
- Make the $port argument optional in the Z3950::Connection
constructor.
- Add support for mnchar* (T_MNPV) to the typemap file: this
is a Maybe-Null PV, into which undefined values may be
passed yielding null pointers.
- Add samples/fetch1.pl, which actually works (unlike the
other scripts in the samples directory, which are written to
a pre-0.1 version of the interface.)
- Remove obsolete bits of the README file.
0.01 Tue May 23 09:20:30 2000
- Originally created by h2xs 1.19
- 0.01 was the first numbered version. Earlier versions were
never assigned numbers as they never got outside the
author's house; this is the first one that was sent to Index
Data.
--
To be done:
- ### Fix test.pl to work against either local or remote server.
- ### Make managers drop references to closed connections.
- ### Make $mgr->wait() finish when there are no connections left.
- ### Add optional timeout parameter to $mgr->wait()
- ### Add GPL.