diff options
Diffstat (limited to 'Changes')
-rw-r--r-- | Changes | 860 |
1 files changed, 860 insertions, 0 deletions
@@ -0,0 +1,860 @@ +1.20 2015-06-28 + +- Fixed a bug with stack handling in the XS code. If a callback sub caused + Perl to reallocate the stack this could trigger weird errors of the form + "Bizarre copy of ARRAY" from Perl itself. Fixed by Noel Maddy. GH #5. + +- Fixed use of inlining in the XS code to work when "gcc -std=c89" is + specified. Fixed by Vincent Pit. GH #6. + +- Previously, Params::Validate would eagerly stringify all values it was + validating, even though this stringification was only needed for error + messages that are used when a parameter fails. For objects which overload + stringification and do real work, this added an unnecessary + slowdown. Stringification is now delayed until it is needed. Reported by + Klaus. RT #105326. + + +1.19 2015-06-12 + +- Fixed an uninitialized value warning from the pure Perl implementation under + 5.8.8. Reported by Jim Bacon. RT #105198. + + +1.18 2015-02-13 + +- We no longer attempt to save and restore an existing $SIG{__DIE__} hook + before calling a validation callback. This uses undocumented black magic + poking at the Perl interpreter guts, which seems to cause sporadic + segfaults. Reported by David Wheeler with help from Andreas Koenig. RT + #102112. + + +1.17 2015-01-08 + +- More XS fixes. Simplified how we localize $@ in the XS code and fixed error + with Perls compiled with -DDEBUGGING. Reported by Lars Dɪᴇᴄᴋᴏᴡ. RT #101416. + + +1.16 2015-01-07 + +- The changes in 1.14 introduced a memory leak any time a callback was called + and it did not throw an error that was a reference. This affected the + DateTime constructor and probably many other things. Reported by David + Kayal. RT #101380. + + +1.15 2015-01-01 + +- No changes from 1.14 + + +1.14 2014-12-20 (TRIAL RELEASE) + +- Callbacks can now die to provide a custom error message or exception + object. Requested by multiple people. Addresses RT #95701 and will allow + MooseX::Params::Validate to use messages provided by the type object. + + +1.13 2014-06-28 + +- Fix my brain damage so that this code compiles with Perl 5.14. + + +1.12 2014-06-27 + +- Temporarily skip tests that use Readonly with Readonly 1.50+ until various + bugs are worked out in Readonly. + + +1.11 2014-06-26 + +- Fixes for MSVC compilation. Patch by J.R. Mash. PR #1. + + +1.10 2014-05-11 + +- Require Readonly 1.03+ and Scalar::Util 1.20 for testing with + Readonly. AFAICT, earlier versions of Readonly worked very differently, + and/or this is related to Scalar::Util. Either way, this test isn't that + important anyway. RT #95402. + + +1.09 2014-05-04 + +- A call to validate() where the spec was a reference to a Readonly hash would + segfault. Reported by Salvatore Bonaccorso. RT #80572. + +- When using the XS implementation, attempting to validate parameters with + tainted values would cause an "Insecure dependency in eval_sv() while + running with -T switch" exception from Perl *if the validation failed*. This + is fixed, but only for Perl 5.14+. Older Perls do not include the necessary + XS API. RT #70174. + +- Fixed some potential segfaults from the XS implementation including the one + reported by Анатолий Гришаев in RT #50412. However, the XS code in general + is pretty crufty and tends to assume that values which could be NULL aren't. + +- Fixed bad example of state() in POD. Reported by Salvatore Bonaccorso. RT + #80250. + + +1.08 2013-06-07 + +- The handling of defaults in the XS version of validate_pos was broken. The + default were simply pushed into the returned array, rather than being + explicitly stored in the right index based on the order of the specs passed + to validate_pos(). RT #83780. + + +1.07 2012-10-26 + +- Params::Validate's XS implementation would overwrite $@ when validation subs + were called. Patch by Salvador Fandino. RT #80124. + +- The use of state in the POD was broken. It only works with scalars. Reported + by Salvatore Bonaccorso. RT #80250. + + +1.06 2012-02-10 + +- Shut up warnings when XS is loaded on older 5.8.x Perl versions. Reported by + Aaron James Trevena. RT #74742. + + +1.05 2012-02-08 + +- The XS code had a code path where it could pass the contents of a Perl + variable as the first argument to the XS croak() subroutine. This subroutine + is like printf(), and should receive a format string as its first + argument. According to RT #74777, this can lead to segfaults on some systems. + + This could in theory be a security bug, but it's very unlikely that + untrusted user input could end up being passed to this croak(). It is called + when a spec specifies a "depend" value on another parameter. The value of + the "depend" parameter was passed in the first argument to croak(). + + Reported by Andreas Voegele. + + +1.04 2012-02-08 + +- Use the latest Module::XSOrPP dzil plugin to generate a saner Build.PL. No + need update if you're using an earlier version. + + +1.03 2012-02-06 + +- This release uses Module::Implementation to handle loading the XS or pure + Perl implementation of Params::Validate. + + +1.02 2012-02-06 + +- The previous release never loaded the XS implementation, even if it had been + compiled. + +- With newer versions of Perl, the pure Perl implementation treated regexp + objects differently than the XS implementation. They should be treated as + belonging to the SCALARREF type for backwards compatibility. + +- These two bugs combined managed to break the test suites of a number of + modules on CPAN. This release should fix them. + + +1.01 2012-02-05 + +- The generated Build.PL detects whether or not the machine it's run on has a + working compiler, and disables XS automatically if it doesn't. Fixes RT + #44719. + + +1.00 2011-06-11 + +- Fix documentation indexing on search.cpan.org. Reported by Lutz Gehlen. RT + #68756. + + +0.99 2011-05-27 + +- The metadata file - META.{json,yml} - had references to a different distro + because of a copy and paste error. Reported by Bernhad Graf. RT #68514. + + +0.98 2011-04-23 + +- Attribute::Params::Validate's $VERSION regressed in 0.96. It now manually + set to 1.07. Reported by tokuhirom. RT #67715. + + +0.97 2011-04-19 + +- The spec validation added in 0.96 broke MooseX::Params::Validate, so it has + been removed until I can work out how to make the two modules play nice. + + +0.96 2011-04-19 + +- The XS version of the code always called Carp::confess, regardless of + whether you provided your own on_fail callback. Reported by Scott Bolte. RT + #66359. + +- There were a couple spots that called eval without localizing $@ first. RT + #58087. + +- The parameters for each key validation (can, isa, regex) are now checked, + and an error is thrown if any of the keys are not valid. Basically, we + validate the validation spec. Based on a patch by Andreas Faafeng. RT + #57831. + +- Lots of little pod fixes. RT #61002. + +- This module now requires Perl 5.8.1. + +- Switched to version 2.0 of the Artistic License. + + +0.95 2010-02-16 + +- Skip t/29-taint-mode.t entirely, since it seems to randomly fail for people, + despite already being marked a todo test. + + +0.94 2009-12-01 + +- Removed the Makefile.PL entirely. If it was used then the XS code was never + built, because I'm using the Module::Build XS layout. Reported by jawnsy on + IRC. + + +0.93 2009-11-30 + +- If the pure Perl version of validate() received a hash reference it would + alter that reference directly. Reported by Paul Eckhardt. RT #51155. + +- Author-only tests now only run if $ENV{AUTHOR_TESTING} is true. RT #49890. + + +0.92 2009-09-25 + +- Switched to Module::Build and don't try to detect a compiler. If you want to + force a Perl-only build, run the Build.PL as "perl Build.PL --pp". Addresses + RT #44719 (more or less), Reported by Olivier Mengué. + +- Require Scalar::Util 1.10, since that is the first version with + looks_like_number. Reported by Olivier Mengué. RT #45103. + +- Require Attribute::Handlers 0.79. Reported by Olivier Mengué. RT #44066. + + +0.91 2008-05-03 + +- The fix for handling @_'s readonly-ness introduced a refcounting + bug. One symptom of this was a failing Log::Dispatch test. Reported + by Andreas Koenig. RT #35608. + + +0.90 2008-05-01 + +- Make the XS version of Params::Validate recognize regexp objects + with Perl 5.11.0-to-be. Patch by Andreas Koenig. RT #32872. + +- With the XS version, when you passed @_ directly to validate() and + then got a hash reference back, the values of that hash reference + would be marked readonly. Reported by W J Moore. RT #34410. + + +0.89 2007-10-31 + +- With validation turned off, the pure Perl version incorrectly + ignored an odd number of parameters when a hash was expected (no + validation still does the bare minimum of checks needed to set + defaults). + +- Added pod & pod coverage tests. + +- Modernized test suite to use Test::More and fixed some test suite + bugs along the way. + +- Attribute::Params::Validate would die when given a ValidatePos + attribute containing one element. + +- More tests are skipped on 5.6.0. + + +0.88 2007-03-07 + +- The XS version threw an error when it attempted to do "isa" or "can" + validation on a value that was not a string or object, such as undef + or a number. Reported by Steffen Winkler. RT #25229. + +- Fixed a compilation failure with bleadperl (5.9.x) that happened + because of a new scalar type introduced in blead. Patch by Nicholas + Clark. Fixes RT #24458. + + +0.87 2007-01-18 + +- When determining the caller of a function in the XS version, use + Perl's caller() function rather than CopSTASHPV. The caller() + function apparently ignores the DB package, whereas the latter + doesn't. This caused validate_options to be ignored when running + under profiling (and probably the debugger as well). Thanks to Jeff + Weisberg for pointing this out. + + +0.86 2006-08-09 + +* I cannot get this module to compile with Perl 5.00504 any more. I + get errors from including CORE/perl.h, so the problem may be outside + my control, but help is welcome. + +- Only turn inlining on if __GNUC__ is defined, since it seems that so + many other compilers don't support this. RT #20881. + +- Removed spaces in #define, #ifdef, etc. Suggested by Peter + Marquardt. + +- If a type is specified as a string ('SCALAR', not SCALAR), this is + now caught and a useful error is thrown. RT #9660. + + +0.85 2006-06-07 + +- Compiles without warnings under gcc's -Wall. Warnings reported by + Scott Godin. + +- Turned off inlining with HP-UX compiler. RT #19763. + + +0.84 2006-05-29 + +- 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. + +- The new compiler detection code always returned false if you didn't + have ExtUtils::CBuilder installed. + + +0.83 2006-05-28 + +- 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. + +- 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. + + +0.82 2006-05-09 + +- Disabled function inlining if _MSC_VER is defined. Patch from Audrey + 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. + + +0.81 2006-04-01 + +- 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. + +- Inlined some C functions for additional speed in the XS + version. Patch by Daisuke Maki. + + +0.80 2006-01-22 + +- If a undef value was given for a parameter that had a regex in its + spec, a warning was emitted. RT #15196. + + +0.79 2006-01-13 + +- The XS version of Params::Validate did not work if a spec hash + 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). + + +0.78 2005-07-19 + +- If an overloaded object returned false in boolean context, then it + would always fail "can" tests. Patch by Chi-Fung Fan. + + +0.77 2005-04-29 + +- Neither --xs or --pm worked with the Makefile.PL the way they were + supposed to. Reported by Doug Treder. + +- Moved source to my personal SVN repo. + 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. + + +0.76 2004-11-13 + +(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. + + +0.75 2004-11-13 + +(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. + + +0.74 2004-04-04 + +(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 ... + + +0.73 2004-03-28 + +(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. + +- Add a new untaint key to the validation spec, which untaints a value + if it passes its validation checks. + + +0.72 2003-12-03 + +- If a normalize_keys callback returns the same normalized key for two + 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. + + +0.71 2003-12-02 + +- Suppressed some annoying "subroutine redefined" warnings if the pure + Perl version ended up being loaded after attempting to load the XS + version. + + +0.70 2003-11-23 + +- 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. + + +0.69 2003-11-03 + +- 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. + + +0.68 2003-10-21 + +- Added spiffy new parameter dependency feature. Implemented by + Daisuke Maki. + + +0.67 2003-10-10 + +- 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. + +- 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. + + +0.66 2003-10-08 + +- 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. + +- Added a new parameter normalization callback feature, the + "normalize_keys" option. Implemented by Daisuke Maki. + +* The "strip_leading" and "ignore_case" options are now + deprecated. Use the new "normalize" feature instead. + + +0.65 2003-08-07 + +- 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 2003-07-14 + +- 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 2003-07-14 + +- 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 2003-06-25 + +- Remove a warn() statement left in from debugging. Reported by Shane + McCarron. + + +0.61 2003-06-23 + +- The last release had some debugging code left in which tried to load + Devel::StackTrace. Reported by Iain Truskett. + + +0.60 2003-06-21 + +- 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 2003-05-24 + +- 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 2003-04-03 + +- Fix some compiler warnings from MS Visual Studio 6. Reported by Ron + Hill. + + +0.57 2003-02-28 + +- 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 2003-02-24 + +- The XS code that handled callbacks expected 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 2003-02-21 + +- Fixed Params::Validate for Perl configurations where sizeof(IV) != + sizeof(int). Reported by Alain Barbet. + + +0.54 2003-02-20 + +- 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 2003-02-19 + +- When testing for a compiler, use nmake on Win32. Implemented by + Ronald Hill. + + +0.52 2003-02-14 + +- Added regex validation option. + + +0.51 2003-01-14 + +- Added copyright info to each source file. Added LICENSE file to + distro. + + +0.50 2003-01-09 + +- 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 2002-07-19 + +- 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 2002-07-19 + +- 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 2002-07-15 + +- The last version's tarball was a mess, and had blib and other junk + in it. This is a nice clean one. + + +0.21 2002-07-14 + +- 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 2002-07-13 + +- 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 2002-06-18 + +- 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 2002-06-15 + +- 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 2002-05-11 + +- Improve skipping of tests when run with 5.6.0. Patch by Ken + Williams. + +- Silence an uninit value warning + + +0.15 2002-04-19 + +- validate_pos would die stupidly when it received an array with an + odd number of elements. + + +0.14 2002-03-14 + +- validate_pos used exists on an array element, which only works with + Perl 5.6.0. This release makes it work 5.00503 again. Reported by + Jon Swartz. + + +0.13 2002-03-10 + +- 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 2002-03-10 + +- 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 2002-01-04 + +- 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 2002-01-04 + +- 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 2002-01-04 + +- I forgot to put the Makefile.PL in the MANIFEST. I am dumb. + Reported by Blair Zajac. + + +0.08 2002-01-03 + +- 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 2001-09-23 + +- 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 2001-08-23 + +- Require Attribute::Handlers if using Perl 5.6.0+. + +- fix doc nits. + + +0.05 2001-08-23 + +- 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 2001-04-14 + +- Tweaks to make the code work under 5.00404 + + +0.03 2001-03-17 + +- 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 2001-03-06 + +- Fix a bug in the test suite that caused failures in 5.6.0. + + +0.01 2001-02-16 + +- Original release + |