diff --git a/Changes b/Changes index d8ed9d9..56be00a 100644 --- a/Changes +++ b/Changes @@ -1,15 +1,16 @@ 0.86 -- Turned off inlining with osf1 compiler. Patch from Peter Marquardt. +- Only turn inlining on if __GNUC__ is defined, since it seems that so + many other compilers don't support this. - Removed spaces in #define, #ifdef, etc. Suggested by Peter -Marquardt. + Marquardt. 0.85 June 7, 2006 - Compiles without warnings under gcc's -Wall. Warnings reported by -Scott Godin. + Scott Godin. - Turned off inlining with HP-UX compiler. RT #19763. @@ -17,196 +18,196 @@ Scott Godin. 0.84 May 29, 2006 - The XS version of the code used Carp::croak to report failures, -while the Perl version used Carp::confess. The module has always been -documented as using confess, so now the XS version uses this. + while the Perl version used Carp::confess. The module has always + been documented as using confess, so now the XS version uses this. - The new compiler detection code always returned false if you didn't -have ExtUtils::CBuilder installed. + have ExtUtils::CBuilder installed. 0.83 May 28, 2006 - Change how C compiler detection is done in the Makefile.PL so it -does not rely on having make on the system. The new way should work on -(most?) Unix and Win32 systems. Suggested by David Golden. See RT -18969 (for DateTime.pm, but equally applicable to this module). Will -hopefully fix RT 17644. + does not rely on having make on the system. The new way should work + on (most?) Unix and Win32 systems. Suggested by David Golden. See RT + 18969 (for DateTime.pm, but equally applicable to this module). Will + hopefully fix RT 17644. - Previously, if a parameter was undefined, regex checks for that -parameter always failed. However, it's quite possible for a regex to -successfully match an undefined value (qr/^$/, for example). Now the -code treats undef as an empty string ('') in regex checks. Reported by -Duncan Salada. + parameter always failed. However, it's quite possible for a regex to + successfully match an undefined value (qr/^$/, for example). Now the + code treats undef as an empty string ('') in regex checks. Reported + by Duncan Salada. 0.82 May 9, 2006 - Disabled function inlining if _MSC_VER is defined. Patch from Audrey -Tang. + Tang. - Check isa by calling it as a method on the thing being checked. - Do the same for can in the pure Perl version. This was already fixed -for the XS version in 0.75. + for the XS version in 0.75. 0.81 Apr 1, 2006 - Speed up no validation in XS version by short-circuiting immediately -if validation is off. This gives a noticeable speed boost when -$ENV{NO_VALIDATION} is in use. Patch by Daisuke Maki. + if validation is off. This gives a noticeable speed boost when + $ENV{NO_VALIDATION} is in use. Patch by Daisuke Maki. - Inlined some C functions for additional speed in the XS -version. Patch by Daisuke Maki. + version. Patch by Daisuke Maki. 0.80 Jan 22, 2006 - If a undef value was given for a parameter that had a regex in its -spec, a warning was emitted. RT #15196. + spec, a warning was emitted. RT #15196. 0.79 Jan 13, 2006 - The XS version of Params::Validate did not work if a spec hash -reference was marked Readonly using Readonly::XS. + reference was marked Readonly using Readonly::XS. - Added some tests for using tied values for params or spec, and -discovered that a tied spec causes a segfault, but could not figure -out how to fix this (Grr, Perl magic is a huge pain in the nether -regions). + discovered that a tied spec causes a segfault, but could not figure + out how to fix this (Grr, Perl magic is a huge pain in the nether + regions). 0.78 Jul 19, 2005 - If an overloaded object returned false in boolean context, then it -would always fail "can" tests. Patch by Chi-Fung Fan. + would always fail "can" tests. Patch by Chi-Fung Fan. 0.77 Apr 29, 2005 - Neither --xs or --pm worked with the Makefile.PL the way they were -supposed to. Reported by Doug Treder. + supposed to. Reported by Doug Treder. - Moved source to my personal SVN repo. -https://svn.urth.org/svn/Params-Validate + https://svn.urth.org/svn/Params-Validate - Updated ppport.h, which allows XS version to work with 5.00504. -This was broken since 0.75, at least. + This was broken since 0.75, at least. 0.76 Nov 13, 2004 (The "Cancan some more" release) - Make sure that both the XS and Perl versions give the same error -when checking "can" for an undefined value. + when checking "can" for an undefined value. 0.75 Nov 13, 2004 (The "Cancan" release) - When checking if a parameter has a method, P::V now calls the ->can -method on the parameter, rather than calling UNIVERSAL::can() -directly. Requested by Don Armstrong. + method on the parameter, rather than calling UNIVERSAL::can() + directly. Requested by Don Armstrong. 0.74 Apr 4, 2004 (The "I hate old Perls" release) - Sometimes, but not always, Perl 5.00504 and 5.00503 cannot produce a -string value for a glob (as opposed to glob reference) parameter. -This was uncovered by a test in the HTML::Mason test suite, but I -cannot reproduce it in a simple testable form for this test suite. -Sigh ... + string value for a glob (as opposed to glob reference) parameter. + This was uncovered by a test in the HTML::Mason test suite, but I + cannot reproduce it in a simple testable form for this test suite. + Sigh ... 0.73 Mar 28, 2004 (The "YAPC::Taipei release party" release) - The minimum number of arguments required was reported incorrectly by -the XS code when a call to validate_pos() failed because too few -parameters were given. Patch from Britton Kerin. + the XS code when a call to validate_pos() failed because too few + parameters were given. Patch from Britton Kerin. - Add a new untaint key to the validation spec, which untaints a value -if it passes its validation checks. + if it passes its validation checks. 0.72 Dec 3, 2003 - If a normalize_keys callback returns the same normalized key for two -different inputs, Params::Validate will die. + different inputs, Params::Validate will die. - The pure Perl implementation had a bug where if the same hash -reference was used for the spec in multiple calls to validate(), then -any call made after a parameter failed a validation check could -exhibit strange behaviors (like parameters passing that shouldn't, -etc.). This was due to the fact that the Perl implementation uses -each() internally, and was leaving the hash's iterator partially -iterated. Reported via an apparent problem with DateTime.pm by Jost -Krieger. + reference was used for the spec in multiple calls to validate(), + then any call made after a parameter failed a validation check could + exhibit strange behaviors (like parameters passing that shouldn't, + etc.). This was due to the fact that the Perl implementation uses + each() internally, and was leaving the hash's iterator partially + iterated. Reported via an apparent problem with DateTime.pm by Jost + Krieger. 0.71 Dec 2, 2003 - Suppressed some annoying "subroutine redefined" warnings if the pure -Perl version ended up being loaded after attempting to load the XS -version. + Perl version ended up being loaded after attempting to load the XS + version. 0.70 Nov 23, 2003 - Any validation call that used a callback leaked memory when using -the XS version. This was introduced in 0.67, when callbacks started -receiving a reference to the parameters as a second argument. -Reported by Eugene van der Pijll. + the XS version. This was introduced in 0.67, when callbacks started + receiving a reference to the parameters as a second argument. + Reported by Eugene van der Pijll. 0.69 Nov 3, 2003 - The key normalization feature introduced in 0.66 leaked one SV* -every time a parameter _hash_ was run through the XS version of -validate() or validate_with(). This happened if one of -normalize_keys, allow_extra, or ignore_case was set, or if -validate_with() was used. Upgrading is strongly recommended! -Reported by Ruslan. + every time a parameter _hash_ was run through the XS version of + validate() or validate_with(). This happened if one of + normalize_keys, allow_extra, or ignore_case was set, or if + validate_with() was used. Upgrading is strongly recommended! + Reported by Ruslan. 0.68 Oct 21, 2003 -- Added spiffy new parameter dependency feature. Implemented by -Daisuke Maki. +- Added spiffy new parameter dependency feature. Implemented by + Daisuke Maki. 0.67 Oct 10, 2003 -- The test count for 06-option.t was off. Reported by Christian -Schaffner. +- The test count for 06-option.t was off. Reported by Christian + Schaffner. - Validation callbacks now receive a reference to the (normalized) -parameter hash/array as their second argument. + parameter hash/array as their second argument. - Shut up an "unitialized value in subroutine entry" warning caused by -calling validate_pos() with an undef value in the parameter array. -This was introduced in 0.66. + calling validate_pos() with an undef value in the parameter array. + This was introduced in 0.66. 0.66 Oct 08, 2003 -- Skip a few more tests under Perl 5.6.0. Patch from Christian -Schaffner. +- Skip a few more tests under Perl 5.6.0. Patch from Christian + Schaffner. - Error messages now include the stringified value of the variable -that was invalid. Implemented by Daisuke Maki. + that was invalid. Implemented by Daisuke Maki. - Added a new parameter normalization callback feature, the -"normalize_keys" option. Implemented by Daisuke Maki. + "normalize_keys" option. Implemented by Daisuke Maki. -** The "strip_leading" and "ignore_case" options are now deprecated. -Use the new "normalize" feature instead. +* The "strip_leading" and "ignore_case" options are now + deprecated. Use the new "normalize" feature instead. 0.65 Aug 07, 2003 -- It is now possible to turn validation on and off at runtime. To -make this easier, it can be set via the PERL_NO_VALIDATION environment -variable, or the $Params::Validate::NO_VALIDATION global variable. Go -ahead, shoot yourself in the foot with it! +- It is now possible to turn validation on and off at runtime. To + make this easier, it can be set via the PERL_NO_VALIDATION + environment variable, or the $Params::Validate::NO_VALIDATION global + variable. Go ahead, shoot yourself in the foot with it! 0.64 Jul 14, 2003 @@ -220,33 +221,33 @@ ahead, shoot yourself in the foot with it! 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. + 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. +- 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. + 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. + 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. + 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+. @@ -254,53 +255,55 @@ Perl 5.6.0 and 5.6.1 is slightly slower than that used with 5.00503 or 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. + 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. + 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. +- 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. + 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). + 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. + 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. + 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. +- When testing for a compiler, use nmake on Win32. Implemented by + Ronald Hill. 0.52 Feb 14, 2003 @@ -310,93 +313,91 @@ Ronald Hill. 0.51 Jan 14, 2003 -- Added copyright info to each source file. Added LICENSE file to -distro. +- 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. +- 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. + 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. + 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. + 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. +- 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. + 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. + 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 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%. --- 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 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. + 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. + 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. +- 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. + 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. +- Improve skipping of tests when run with 5.6.0. Patch by Ken + Williams. - Silence an uninit value warning @@ -404,94 +405,94 @@ Williams. 0.15 Apr 19, 2002 - validate_pos would die stupidly when it received an array with an -odd number of elements. + 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. + Perl 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%. +- 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. +- 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. + 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. + 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. +- 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. + 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. + 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. +- 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. + 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. + handle defaults at all. - The 'NO_VALIDATION' env var was mis-documented as being -'NO_VALIDATE'. + 'NO_VALIDATE'. - The 'NO_VALIDATION' env var is now 'PERL_NO_VALIDATION' and this -method of disabling validation is no longer considered alpha. + 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. + 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. + 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. + hash/array back from validate or validate_pos. Partial patch + submitted by Ken Williams. 0.06 Aug 23, 2001 @@ -505,32 +506,32 @@ submitted by Ken Williams. - 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. +- 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 +- 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. +- 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. +- 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. +- 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. +- Fix a bug in the test suite that caused failures in 5.6.0. 0.01 Feb 16, 2001