$Header: /home/cvsroot/NetZ3950/Changes,v 1.43 2003/09/12 22:47:45 mike Exp $
Revision history for Perl extension Net::Z3950.
0.36 Fri Sep 12 23:47:00 2003
- Add support for the OPAC record syntax: OPAC records are now
translated into self-describing Perl data-structures,
blessed into the class Net::Z3950::Record::OPAC. There is a
rudimentary renderer included in that class, but
sophisticated applications will want to deal with the data
structure itself. To see it in action, use something like:
$ perl samples/simple.pl alpha.calarts.edu 210 \
MARION fruit preferredRecordSyntax 35
WARNING: for some servers, e.g. troy.lib.sfu.ca:210/innopac,
you MUST request elementSetName "F", otherwise you'll just
be fed USMARC records whatever your preferredRecordSyntax.
- Deal better with unrecognised or malformed APDUs from the
server, e.g. library.ucfv.bc.ca:2200/unicorn when asked
for the USMARC record found by "@attr 1=4 time". Now, the
operation fails with diagnostic code 1001 (Malformed APDU).
- Change all <mike@tecc.co.uk> addresses to
<mike@indexdata.com>. (This change is well overdue, since I
changed jobs seven months ago!)
- Fix reference for PQF in the YAZ manual.
0.35 Fri Jun 27 10:48:03 2003
- Fix all non-US MARC record-types to return raw data from the
rawdata() method rather than, as before, the render()
method.
- Add a new delete() method to Net::Z3950::ResultSet
0.34 Mon May 12 10:17:07 2003
- Slightly more robust cleanup in Manager::forget()
- Make samples/simple.pl a little less simple(!) by making a
manager so that pre-connection options such as
authentication parameters can be set.
- In Makefile.PL, LIBS and INC are now both set via yaz-config,
so you don't need to mess with that file before building.
(Adam Dickmeiss)
- The INC is now inherited by yazwrap/Makefile.PL, so that
this file also does not need to be edited. (Adam Dickmeiss)
- CCFLAGS is no longer set in the yazwrap directory. I only
did that in order to add "-Wall", which is pleasant luxury
but not really necessary; and doing so caused problems as
other, default, components of that setting were discarded on
some platforms. (Adam Dickmeiss)
- Add support for the MAB record syntax, thanks to Heiko
Jansen <JANSEN@hbz-nrw.de>
0.33 Thu Apr 3 09:10:16 2003
- Add explicit statement of GPL licence.
No code changes at all.
0.32 Tue Jan 21 16:46:23 2003
- Remove the old, unnecessary and confusing code that patched
around the absence of cs_look() and cs_rcvconnect() in YAZ.
In fact, they've both been there since version 1.8 (the one
that introduced ZOOM-C), fourteen months ago. This change
cleans up the code and fixes an intermittent error that Dave
Mitchell had run into. You now need v1.8 of YAZ or newer.
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:
- Use the newer MARC::Record module instead of MARC.pm
### Not yet done
Render with MARC::File::USMARC::decode($rec->rawdata())
Or with MARC::Record ->as_formatted()
- ### 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()