------- ReDIF-perl v. 2.57-gamma, 2007-04-18 01:41 ----------------------------

  - Added support for UTF-16 as input data encoding (in its
    two variants: UTF-16BE and UTF-16LE).  BOM is used to
    identify the exact encoding.  Latin1 encoding is still
    the default.

------- ReDIF-perl v. 2.56-gamma, 2007-02-27 22:54 ----------------------------

  - Language attribute was recently added to ReDIF.  Updated redif.spec 
    with it's value checking.

------- ReDIF-perl v. 2.55-beta, 2006-10-18 20:19 ----------------------------

  - JELcodes.pm fixed to reflect changed classification
    as per http://www.aeaweb.org/journal/jel_class_system.html

------- ReDIF-perl v. 2.54-beta, 2006-07-15 12:56 ----------------------------

  - fix to the chapter template's postproc to make it -w safe
    (to avoid perl warnings)  

------- ReDIF-perl v. 2.53-beta, 2006-07-10 16:31 ----------------------------

  - classification-jel (and other schemes) are again
    officially allowed in the software templates

  - deprecated attributes introduced, e.g. publisher-org*
    and provider-institution in series templates,
    publication-date in article templates, price, length and
    contact-email in book templates, etc.

------- ReDIF-perl v. 2.52-beta, 2006-06-28 23:07 ----------------------------

------- ReDIF-perl v. 2.51-beta, 2006-06-24 19:00 ----------------------------

  - 2006-06-24 19:00 institution template type: added 
    Quaternary-(ORGANIZATION*) 

------- ReDIF-perl v. 2.50-beta, 2006-06-01 02:37 ----------------------------

  - 2006-06-01 02:38 A major revision of redif.spec, based
    on Thomas/Ivan meeting in Moscow and revision of the
    specification document.
    http://openlib.org/acmes/root/docu/redif_1.html

  - 2006-06-01 02:40 Minor update to JELcodes.pm: F5..F59
    codes added.

------- ReDIF-perl v. 2.49-alpha, 2006-06-01 02:37 ----------------------------

  - 2005-12-04 12:26 checking for at least one of
    Sponsor-(ORGANIZATION*) and Provider-(ORGANIZATION*)
    attributes added to the Chapter template type.

  - 2005-11-29 23:06 author is now optional for the Book
    templates and checking added that at least one of
    "author" and "editor" is specified for a book.

  - 2005-07-19 22:57 added checking for series template
    type's "type" attribute values

------- what's new in ReDIF-perl v. 2.46, 2005-03-21 13:48 -------------------

  - Minor: fixed warnings (when running 'make test') under a
    recent perl 5.8.3.

  - Minor: Safer work with some system calls -- now checking
    return values.

------- what's new in ReDIF-perl v. 2.45, 2005-02-11 17:51 -------------------

  - Fixed a bug in X-attribute processing.  The bug would
    cause X-attributes inaccessible to an application even
    with 'x_attributes' parser option enabled in certain
    conditions.  Thanks to Jose Manuel for reporting!

  - 2005-02-03 14:03 A little language fix in documentation
    in ReDIF::Parser.

------- what's new in ReDIF-perl v. 2.44, 2005-01-28 01:51 -------------------

  - JEL codes updated from EconLit site.  New codes added,
    changed descriptions fixed; disappeared codes are still
    in my list.
    http://www.econlit.org/subject_descriptors.html

  - Some tests and test data files were added.

  - Internal change: now distribution modules and helper
    files assume perl version 5.8 by default.  Makefile.PL
    script overwrites them with 5.6 versions if necessary
    upon installation.

  - 2004-10-28 12:54  ReDIF::Writer module rewritten, to a
    great improvement.  Now it checks everything it is
    given.

------- what's new in ReDIF-perl v. 2.43, 2004-10-13 19:42 -------------------

  - redif.spec: Added Contact-Email attribute to the
    document template types.  Also fixed a couple of
    unintended differences between perl 5.6 and perl 5.8
    versions.

  - a fix to ReDIF::Record's get_value() method to return
    only first match if called in scalar context.  

  - A couple of minutes spent on ReDIF::Record's
    documentation.

------- what's new in ReDIF-perl v. 2.42, 2004-09-01 12:43 -------------------

  - Support for parsing AMF files if:

    - AMF::Parser is installed, http://acis.openlib.org/code/

    - if you load ReDIF::AMF module before loading ReDIF::Parser

    AMF is Academic Metadata Format, http://amf.openlib.org/

  - New parser option: "ReDIF::Record", off by default.
    When on, parser will bless each produced template hash
    as object of class "ReDIF::Record".  You can still use
    all your techniques to access its data, or you can use
    get_value( SPEC ) method, where SPEC is a simple,
    XPath-inspired specification of what data you want to
    get.

    Watch ReDIF::Record for documentation.  There's little
    documentation there right now, but some basic examples
    and more to appear later.

  - ReDIF::Parser's redif_parse_string() and parse_string()
    now will identify the string as being in UTF-8 encoding,
    if it marked as such by the Perl itself (the utf8 flag,
    described in Encode manpage).  This means, UTF-8 BOM is
    not required in that case.  Only works under Perl 5.8.
    Thanks to Sune Karlsson for suggesting it.

------- what's new in ReDIF-perl v. 2.41, 2004-08-24 15:35 -------------------

  - short-ids are now allowed where person-handles are allowed.
    Should be only in Person attributes of the person cluster, 
    but now it is not so.

  - a valid E26 JEL code added.  Christian reported that one.

  - Abstract top length is now 4200 chars

------- what's new in ReDIF-perl v. 2.40, 2004-05-26 00:46 -------------------

  - Attribute value length checking is now optional, user
    chooses at installation time

  - Name-Suffix attribute were missing in Person template type

  - JEL codes N91-N97 are now valid; N910-N970 removed

------- what's new in ReDIF-perl v. 2.39, 2004-03-24 12:12 -------------------

  - Name length checking relaxed (min setting)

  - Name-ASCII attribute introduced in Person template

  - Editor-Paper, Editor-Article attributes added

------- what's new in ReDIF-perl v. 2.38, 2004-03-15 22:15 -------------------

  - Again weird regex matching/uc() bug in perl 5.8.0,
    workaround in redif.spec and a test case added

  - Fixed a bug of win1251 support.  Some undefined
    codepoints would incorrectly be resolved to good
    characters.  (2004-02-17 01:10)

------- what's new in ReDIF-perl v. 2.37-l, 2004-02-02 02:57 -------------------

  - Length control settings added to the redif.spec files.
    These settings and the checking functionality hasn't yet
    been tested enough, so I make a special testing release.

------- what's new in ReDIF-perl v. 2.37, 2004-02-02 02:10 -------------------

  - Introduced default attribute value type.  Restrictions
    can be set in redif.spec so that every untyped attribute
    will be checked.  Special type name: "default_type".

  - Attribute value length checking, by attribute value
    type.  The code is there, but the length specifications
    are not in redif.spec, because they need more testing.

  - redif.spec: some attributes' value type checking was
    off.  ORGANIZATION and PERSON clusters' email and
    homepage; Person's template email and classification-jel
    attributes.  I don't remember why, so I turned it on
    now.

    Also fixed a regular expression bug which would allow
    high-ASCII characters in a document handle.

  - Added a number of JEL codes to the JELcodes.pm module,
    as per Christian's RePEc-run message from Wed, 7 Jan
    2004.

  - Added Windows-1252 charset support in ReDIF input (in
    Unicode output mode and only in p5.8 version).

------ what's new in ReDIF-perl v. 2.36-c, 2004-01-22 01:41 -------------------

  - Proposed person template extentions to come into use
    with ACIS replacing HoPEc.

  - separate redif.spec file version for perl 5.8

  - another slight change in institution templates
    post-processing.  First, Second and Tertiary names will
    now be separated by "\n\n" in $t->{name}.

------ what's new in ReDIF-perl v. 2.36-b, 2003-12-06 19:06 -------------------

  - Institution templates post-processing bug.  (Fixed.)
    The bug caused empty "name-english" appearence where it
    didn't originally exist in the template.  Thanks: Sune.

------ what's new in ReDIF-perl v. 2.36, 2003-11-21 15:00 -------------------

  - A bug when processing templates, whose physical encoding is utf8.
    Found by Sune, as always.  Now fixed, I hope.

  - rech now will skip unicode template error reports, when
    in default (iso-latin-1) mode.  Will not skip them, when
    in Unicode mode.

------ what's new in ReDIF-perl v. 2.35, 2003-10-16 16:43 -------------------

  - weird regex matching bug on solaris workaround (person handles)

  - Makefile.PL and Makefile.PL.5.8 joined into one single file
 
  - require 5.8 replaced with require 5.800_000

------ what's new in ReDIF-perl v. 2.34, 2003-07-16 16:57 ------------------

  - JEL code values, consisting exclusively of 3-digit codes will be
    silently ignored (no warning)

  - MIME types with something/x-... will now be accepted, which
    probably should have been done long time ago, but it wasn't
 
  - a fix back, against Kit Baum's suggestions (removed:
    application/dvi, application/stata, application/vnd.ms-word)

------ a quick-fix in-between-versions release 

  - a fix of ReDIF/MIME_types.pm, according to Kit Baum's corrections

------ what's new in ReDIF-perl v. 2.33, 2003-06-13 14:34 ------------------
  
    in fact there are many little changes

  - a ReDIF::Record class now included.  Needed for the ongoing work
    on ARDB.

  - a typo in redif.spec in the programming languages fixed ('Shazam')

  - a version of ReDIF/Parser/Input.pm and ReDIF/Unicode.pm for perl
    5.8.x and Makefile.PL.5.8

    To install ReDIF-perl on Perl 5.8.x start the process with "perl
    Makefile.PL.5.8" instead of the usual "perl Makefile.PL".

------ changes on 2003-02-04 11:58 -----------------------------------------

  - redif.spec: JEL type now does no longer convert C00/C0 codes to the C
    code, and it doesn't do this to all other zero-finishing codes.

------ what's new in ReDIF-perl v. 2.31, 2003-02-04 11:58 ------------------
 
  - An minor addition to the parser core.  Now the template's type and
    handle will also be available as $t->{TYPE} and $t->{ID},
    respectively.  That's adds to usual $t->{'template-type'}[0] and
    $t->{'handle'}[0]. ($t here is a template hash reference as
    returned by the ReDIF::Parser module's functions).

  - lib/ReDIF/JELcodes.pm: added F16 code (re-appeared at
    <http://www.aeaweb.org/journal/elclasjn.html>) and outdated codes
    requested by Christian: H27, L24, L87, P25, P28.

  - redif.spec, Chapter template-type fix: Publisher-(*ORG)

  - redif.spec, JEL codes checking.  Now an invalid code doesn't
    generate an error.  Instead it generates a warning and should not
    invalidate the whole value (if several codes are used).
  
  - redif.spec, Person template-type fix: added attributes: 

	Author-Book:documenthandle
	Editor-Book:documenthandle
	Author-Chapter:documenthandle
	Editor-Chapter:documenthandle

    Thank you, Christian.

------ what's new in ReDIF-perl v 2.30 --------------------------------------

  - book template type in redif.spec now includes price and number
    attributes.

  - new (almost untested alpha) module ReDIF::Writer.  It's function
    stringify_template() accepts a hash structure reference and
    returns a string representing the template data.  It is not
    guaranteed to produce ReDIF-valid results, but likely to do so, if
    the data structure passed is valid.  There's some minimal POD
    documentation in the module file and there's a test file
    t/writer.t.

------ what's new in ReDIF-perl v 2.29 --------------------------------------

  - ReDIF comments introduced.  Use hash sign ('#') in the first
    position of a line to make parser ignore the line.

  - Handles' checking regexp in redif.spec changed.  Not after the
    community's decision on the question, but after my will.  Some
    middle grounds.

  - Another Sune's reported bug fixed.  Dealing with error/warning
    statistics zeroing between files parsing. (Parser/Core.pm)

  - redif.spec now includes several new attributes in the Person
    template type: Short-ID, Last-Login-Date, Registered-Date,
    Last-Modified-Date.

------ what's new in ReDIF-perl v 2.28 --------------------------------------

  - A bug in implementation of the recently introduced
    remove_newline_from_values parser option fixed.  So it simply
    didn't work.  Also it was ON by default, contrary to my intent.
    Now it is OFF by default.

  - ReDIF::Parser::Core [lib/ReDIF/Parser/Core.pm]: 
      
       . removed a die about line 302 ("INTERNAL ERROR...") 

       . now runs under "use strict;" 

  - now Parser runs at least 25-30 percent faster than before in usual
    mode!  Just used Devel::DProf to figure out some bottlenecks and
    refactored them a bit.

  - rech output slightly changed. It now prints the redif.spec version
    upon start.  Per Sune's suggestion.

------ what's new in ReDIF-perl v 2.27 --------------------------------------

  - ReDIF::Parser::Input module reworked again in attempt to solve the
    end-of-line issue, at least to bring it to the level of old
    ReDIF-perl versions.  Per Sune Karlsson's request.

  - New ReDIF::Parser compatibility option: remove_newline_from_values.
    When ON, the parser will normalize whitespace, including new-line
    chars in multi-line attribute values.

  - New parser feature.  If you have Digest::MD5 module installed, the
    parser can calculate MD5 checksums of each processed templates.
    User scripts should consult $template->{MD5SUM} element.

    The feature is disabled if you don't have the Digest::MD5 module
    installed or if you choose to disable it at installation time (at
    Configure, precisely).  See ReDIF::Parser for details.

------ what's new in ReDIF-perl v 2.26 --------------------------------------

  - Fixed two bugs in ReDIF/Parser.pm.  The most important is that
    get_next_template() function actually often behaved like
    get_next_template_good_or_bad()...  Also removed a mistakenly left
    debugging print "dir elem:..." in redif_open_dir().  Thanks, Sune!
    What else can I say?

    Upgrading to this version is strongly recommended.

------ what's new in ReDIF-perl v 2.25 --------------------------------------

  - I seem to have resolved (mainly) the line-ending issue, came up in
    previous releases.  The problems were with processing correctly
    files with different end-of-line characters.  Especially, when
    different conventions are used in one file.  Now this is far from
    100%-bullet-proof, but would work in most cases.  If you find a
    problematic case, let me know.

  - Several bugs in Input.pm module fixed.

  - A special module added for URL syntax checking.  Now redif.spec's
    "url" type checking would call a function in that
    ReDIF::URL_Syntax module.  The regular expressions used for
    checking loosely aim to comply with RFC2396 (a copy taken from the
    URI.pm distribution).

    Appropriate test script added (url_syntax.t).

  - Created a special utility module ReDIF::Testing, just for the test
    scripts.  Currently that is only used for url_syntax.t.

  - Another change in redif.spec. "documenthandle" type prohibited
    characters '(', ')' and ',' in the document id.  Fixed now.  But
    the problem persists, because ReDIF documentation doesn't define
    clearely what characters can be used in a handle, and what can't.

  - rech output changed in a minor way.  For each file with no error
    or warning messages to report rech will show the number of
    succesfully processed templates in the file.  It will do so by
    appending the number in parentheses to the "file OK" line like
    this:

       file ReDIF/test.rdf: OK (4)


------ what's new in ReDIF-perl v 2.24b --------------------------------------

  - Now ReDIF::Parser::Input uses binmode() on each opened data file,
    and that should help at least in one regard, though useless at
    this time.  The file positions of the templates (and attributes)
    in data files should be NOW platform-independent.  Why it wasn't
    before: read in perlport manpage and see binmode() function
    documentation.

  - Fixed the t/parser_open_dir.t test script, which failed on Win32
    platforms.  The file-list sorting test is made optional, depending
    on the possibility to test it.  Sometimes the list of files read
    from a directory is already alphabetically sorted, I have no idea
    why...

    Thanks to Sune Karlsson, for testing the thing on Win32 platform.
    
------ what's new in ReDIF-perl v 2.24 ---------------------------------------

  - bugfixing the ReDIF/init.pm and the test scripts in t/, many of
    which were wrongly trying to use ./spec/redif.spec

  - introducing new redif.spec concept: context postprocessing.  Each
    of the cluster or template types can have a procedure defined for
    additional checking or tweakening of the corresponding context
    object.  That is done in redif.spec in a manner, similar to data
    types check-evals.

  - redif.spec parser changed: now all perl and cluster/template
    blocks are terminated by a line with a single closing curly brace
    ('}') in the FIRST position on the line, and optional
    whitespace(s) after, but nothing else.
 
    Previously, all blocks closed with any line, which held single '}'
    in any position.

------ what's new in ReDIF-perl v 2.23 ---------------------------------------

  - fixed a very small problem in ReDIF/init.pm which caused wrong
    start-up behaviour sometimes.

------ what's new in ReDIF-perl v 2.22 ---------------------------------------

  - redif.spec: changed case-normalization of the Person template
    handles to make it compatible with established practice

  - spec/redif.spec file would not anymore appear in the packages to
    minimize confusion between three redif.spec files present in the
    package (the third one is a test's private copy in t/ dir).  Use
    lib/ReDIF/redif.spec if you need the actual specification.

  - a "closing an already closed template" complain (Carp::cluck)
    removed, bacause it was appearing when a bad-started template was
    read right after some valid ReDIF...

------ what's new in ReDIF-perl v 2.21 ---------------------------------------

  - a very serious memory leak, discovered by Sune Karlsson, fixed.
    (Although I still don't know the reason why an eval operator
    leaked.  Probably it shouldn't have and it may be a bug of perl.)
    As a side-effect, performance improved greatly, roughly twice at
    my estimation.  But still performance is lower than that of the
    older before-unicode version (e.g. 2.16)

  - fixed minor problems in rr.pm which caused complains in "perl -w"
    mode

  - added redif_open_dir() and redif_open_dir_recursive() functions to
    the ReDIF::Parser.  That is to ease porting from now deprecated
    rr.pm-based applications.

  - fixed a problem in ReDIF::init module, which didn't allow to
    actually use install-time defined ReDIF home directory setting.
    It was always trying to use current directory as home, unless
    specified with command-line option or with an environment
    variable.

  - also now ReDIF home is NOT anymore NECESSARY to use ReDIF::Parser
    or rech.  Since redif.spec is installed with all .pm files, we do
    not actually need the home for many operations.  So if your script
    used ReDIF home dir, provided by ReDIF::init, you probably should add
    a check for it (look in rech for an example).

------ what's new in ReDIF-perl v 2.20 ---------------------------------------

  - rech output improved/fixed

------ what's new in ReDIF-perl v 2.19 ---------------------------------------

  - new templates validation rule: if an error happens while checking
    value of an attribute which is not required, the error is turned 
    into a warning

  - now rech always quotes the original data text on errors & warnings
    (before that it was close to original but reformated).

  - fixed processing of "X-" attributes, including cluster-level:
    (e.g. author-x-haircolor: red)

  - removed huge flow of warnings generated in "perl -w" mode.  that may be
    incomplete.  please let me know if you come accross any unfixed causes

  - unicode (UTF-8) support.  see README.unicode for more info

  - completely new parser interface module ReDIF::Parser with new
    capabilities (see ReDIF::Parser manpage).  use it instead of
    outdated and deprecated rr.pm!

  - changed redif.spec format: more readable, easier to understand.
    among the rest, it now has version parameter.

  - new redif.spec features: RePEc handles case-correction and some other

  - now continuation lines in ReDIF templates doesn't have to start
    with a whitespace, it would be enough that they don't start with 
    an attribute-like construct: /^[a-zA-Z\-]+:/ (so called
    "sloppy-lines")

  - another potentially problematic change: now even if using rr.pm,
    the attribute values don't have some formatting it used to have.
    Line-break characters in the multi-line attribute values are not
    eliminited anymore.  They used to be joined into a single line.

  - changed some options of rech and rere, see their respective
    manpages for details.  rech now doesn't need a configuration file
    and has new (improved) output format    

  - ReDIF::init's initialize() is now silent by default

  - added lots of tests for automated and simplified code quality control

  - added/updated more documentation bits and pieces in pod (manpages)
    and in READMEs

  - almost every piece of old code rewritten, became more readable,
    manageable, more logically structured into modules

