The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
0.64 Jul 14, 2003

- Fix an XS compilation error under 5.6.1:

 Validate.xs: In function `validate_isa':
 Validate.xs:381: `perl_on_error' undeclared (first use in this function)

0.63 Jul 14, 2003

- The XS version of validate_with failed if the params key contained
an array reference containing a single hash reference.  Since this
works with the pure Perl version, it should work with the XS version.
Reported by Diab Jerius.  Bug #2791 on rt.cpan.org.

0.62 Jun 25, 2003

- Remove a warn() statement left in from debugging.  Reported by Shane
McCarron.

0.61 Jun 23, 2003

- The last release had some debugging code left in which tried to load
Devel::StackTrace.  Reported by Iain Truskett.

0.60 Jun 21, 2003

- Fixed a weird segfault that could occur with Perl 5.6.1 when a
user-defined on_fail callback died with an object as its argument.
This only happened with the XS version of the code.  Reported by Ken
Williams.

The end result is that the version of the XS code that is used with
Perl 5.6.0 and 5.6.1 is slightly slower than that used with 5.00503 or
5.8.0, as it requires an additional Perl-level wrapper.

- Use XSLoader in preference to Dynaloader with Perl 5.6.0+.

0.59 May 24, 2003

- If an odd number of parameters was given to validate() in the array
as its first argument, the error given would be different depending on
whether or not the pure Perl or XS version of the code was being used.

- Fixed incredibly odd bug that occurred in XS code when tainting was
on with Perl 5.00503.  Unfortunately, the only test case that reliably
reproduces this is one of Mason's tests, so no test was added.

0.58 Apr 03, 2003

- Fix some compiler warnings from MS Visual Studio 6.  Reported by Ron
Hill.

0.57 Feb 28, 2003

- When called from the main body of a script, the validation routines
would cause an undefined value warning if validation failed.  Reported
by Britton Kerin and fixed by Ilya Martynov.

0.56 Feb 24, 2003

- The XS code that handled callbacks expects all callbacks to return
an integer, instead of simply testing the returned value for truth.
This could cause strange warnings like 'Argument "InMemory" isn't
numeric in subroutine entry...'.  Based on a bug report from Robert
Dick for another module I wrote (Lingua::ZH::CCDICT).

0.55 Feb 21, 2003

- Fixed Params::Validate for Perl configurations where sizeof(IV) !=
sizeof(int).  Reported by Alain Barbet.

0.54 Feb 20, 2003

- Something around test 5 in 06-options.t appear to cause Perl to
die/segfault/something under 5.6.0.  These tests will be skipped with
5.6.0 in the future.  Reported by Christian Schaffner.

0.53 Feb 19, 2003

- When testing for a compiler, use nmake on Win32.  Implemented by
Ronald Hill.

0.52 Feb 14, 2003

- Added regex validation option.

0.51 Jan 14, 2003

- Added copyright info to each source file.  Added LICENSE file to
distro.

0.50 Jan 9, 2003

- Added an XS implementation, written by Ilya Martynov.  The pure Perl
implementation is still included as a fallback for users who do not
have a compiler handy.  The XS implementation gives a speed boost of
150% to 300%, depending on the complexity of the validation being
done.

This XS code is known to work Perl 5.00503+, but it may not work with
earlier versions of Perl.

0.24  Jul 19, 2002

- Fix Attribute::Params::Validate docs to show that attribute
declaration must have open paren immediately after "Validate" or
"ValidatePos".  Reported by Britton Kerin.

- Fix bug with Perl 5.8.0 when in PERL_NO_VALIDATION mode and calling
validate() expecting a hash ref to be returned.  Reported by Randal
Schwartz.

0.23 Jul 19, 2002

- Argh.  In 0.22 some of the tests printed their test counts (1..x)
after doing the tests.  This works with newer versions of
Test::Harness so I didn't notice it.  Reported by Peter Asemann.

0.22 Jul 15, 2002

- The last version's tarball was a mess, and had blib and other junk
in it.  This is a nice clean one.

0.21 Jul 14, 2002

- The various validation functions are now context sensitive, and will
return a reference in scalar context.  This may be a helpful speedup,
especially for large parameter lists.

0.20 Jul 13, 2002

- More optimization work.

-- Improved the speed of both validate() and validate_pos() by about
20-25%.

-- Improved the speed of the 'no validation' mode for validate() by
over 30%, for validation_pos() by 15%, and for validate_with() by
125%.

-- The speed of validate_with() has been improved by over 100%, but
this was at the expense of not validating its own incoming arguments,
thus making it a little more fragile.

- The PERL_NO_VALIDATION env var is now _only_ checked when the module
is loaded.  This means you cannot change it mid-program.  This is a
backwards incompatibility.

0.18 June 18, 2002

- Added a new function, validate_with(), that allow you to set various
options on a per-invocation basis, rather than on a per-package basis.
Patch by Ken Williams.

0.17 Jun 15, 2002

- Fix a doc nit where I had a wrong code example.  Reported by Britton
Kerin.

- Added a new validation option parameter, stack_skip, which allows
you to change how errors are reported by Params::Validate.

0.16 May 11, 2002

- Improve skipping of tests when run with 5.6.0.  Patch by Ken
Williams.

- Silence an uninit value warning

0.15 Apr 19, 2002

- validate_pos would die stupidly when it received an array with an
odd number of elements.

0.14 Mar 14, 2002

- validate_pos used exists on an array element, which only works with
5.6.0.  This release makes it work 5.00503 again.  Reported by Jon
Swartz.

0.13 Mar 10, 2002

- Apply some of the same optimizations to positional parameters.  The
speedup here seems to be about 7-8%.

- Fix stupid bug in 04-defaults tests.

0.12 Mar 10, 2002

- Add BOOLEAN type (equivalent to UNDEF | SCALAR).  Suggested by Ken
Williams.

- This version is about 8-10% faster on named parameters than previous
versions.  This may not seem like that much but if most, or all, of
your subroutines/methods use validation then this can be a significant
improvement.

- This version has slightly different semantics for dealing with
missing parameters.  Previously, if parameters were missing, an
exception was thrown before any of the other validation parameters
were checked.  Now, the validation parameters (type, isa, etc.) are
checked first, so that these errors will show up before missing
parameters.

0.11 Jan 04, 2002

- Accidentally removed the set_options function (in 0.08).  Though
this will go away in the future it isn't happening quite yet.

0.10 Jan 04, 2002

- Apparently making a tarball for CPAN is beyond my limited abilities.
0.09 was missing a file needed for tests.  Also reported by Blair
Zajac.

- When running Makefile.PL you get some warnings that can be ignored.
Add a message saying you can ignore them.

0.09 Jan 04, 2002

- I forgot to put the Makefile.PL in the MANIFEST.  I am dumb.
Reported by Blair Zajac.

0.08 Jan 03, 2002

- Explicitly mention that, by default, Params::Validate uses
Carp::confess to report a validation failure.  Suggested by Mark
Stosberg.

- The 'NO_VALIDATION' mode was seriously broken in that it didn't
handle defaults at all.

- The 'NO_VALIDATION' env var was mis-documented as being
'NO_VALIDATE'.

- The 'NO_VALIDATION' env var is now 'PERL_NO_VALIDATION' and this
method of disabling validation is no longer considered alpha.

- The validation functions now check this environment variable every
time they are called.  This is probably a bit slower than the previous
implementation, which only checked once when the module was loaded.
If you have a problem with this, let me know.

0.07 Sep 23, 2001

- Fix problem with CPAN shell's 'r' command that
Attribute::Params::Validate was causing with older Perl's.  Reported
by Rob BloodGood.

- Add ability to specify defaults for parameters and get a new
hash/array back from validate or validate_pos.  Partial patch
submitted by Ken Williams.

0.06 Aug 23, 2001

- Require Attribute::Handlers if using Perl 5.6.0+.

- fix doc nits.

0.05 Aug 23, 2001

- Added Attribute::Params::Validate - do validation via attributes!

- Rename set_options to validation_options.  This can now be exported
safely and is included in the :all export tag.  set_options is
deprecated and will be removed in a future release.  Thanks to Jon
Swartz for the suggestion.

0.04 Apr 14, 2001

- tweaks to make the code work under 5.00404

0.03 Mar 17, 2001

- make sure all error messages contain the name of the subroutine that
was called.

- the error message given when an argument doesn't match the 'isa'
spec has been improved.

- use Carp::confess by default when dying with an error.  This
produces a more useful error message.

0.02 Mar 6, 2001

- fix a bug in the test suite that caused failures in 5.6.0.

0.01 Feb 16, 2001

- Original release