10.91 May 3, 2008
2
3- The fix for handling @_'s readonly-ness introduced a refcounting
4  bug. One symptom of this was a failing Log::Dispatch test. Reported
5  by Andreas Koenig. RT #35608.
6
7
80.90 May 1, 2008
9
10- Make the XS version of Params::Validate recognize regexp objects
11  with Perl 5.11.0-to-be. Patch by Andreas Koenig. RT #32872.
12
13- With the XS version, when you passed @_ directly to validate() and
14  then got a hash reference back, the values of that hash reference
15  would be marked readonly. Reported by W J Moore. RT #34410.
16
17
180.89 October 31, 2007
19
20- With validation turned off, the pure Perl version incorrectly
21  ignored an odd number of parameters when a hash was expected (no
22  validation still does the bare minimum of checks needed to set
23  defaults).
24
25- Added pod & pod coverage tests.
26
27- Modernized test suite to use Test::More and fixed some test suite
28  bugs along the way.
29
30- Attribute::Params::Validate would die when given a ValidatePos
31  attribute containing one element.
32
33- More tests are skipped on 5.6.0.
34
35
360.88 March 7, 2007
37
38- The XS version threw an error when it attempted to do "isa" or "can"
39  validation on a value that was not a string or object, such as undef
40  or a number. Reported by Steffen Winkler. RT #25229.
41
42- Fixed a compilation failure with bleadperl (5.9.x) that happened
43  because of a new scalar type introduced in blead. Patch by Nicholas
44  Clark. Fixes RT #24458.
45
46
470.87 January 18, 2007
48
49- When determining the caller of a function in the XS version, use
50  Perl's caller() function rather than CopSTASHPV. The caller()
51  function apparently ignores the DB package, whereas the latter
52  doesn't. This caused validate_options to be ignored when running
53  under profiling (and probably the debugger as well). Thanks to Jeff
54  Weisberg for pointing this out.
55
56
570.86 August 9, 2006
58
59* I cannot get this module to compile with Perl 5.00504 any more. I
60  get errors from including CORE/perl.h, so the problem may be outside
61  my control, but help is welcome.
62
63- Only turn inlining on if __GNUC__ is defined, since it seems that so
64  many other compilers don't support this. RT #20881.
65
66- Removed spaces in #define, #ifdef, etc. Suggested by Peter
67  Marquardt.
68
69- If a type is specified as a string ('SCALAR', not SCALAR), this is
70  now caught and a useful error is thrown. RT #9660.
71
72
730.85 June 7, 2006
74
75- Compiles without warnings under gcc's -Wall. Warnings reported by
76  Scott Godin.
77
78- Turned off inlining with HP-UX compiler. RT #19763.
79
80
810.84 May 29, 2006
82
83- The XS version of the code used Carp::croak to report failures,
84  while the Perl version used Carp::confess. The module has always
85  been documented as using confess, so now the XS version uses this.
86
87- The new compiler detection code always returned false if you didn't
88  have ExtUtils::CBuilder installed.
89
90
910.83 May 28, 2006
92
93- Change how C compiler detection is done in the Makefile.PL so it
94  does not rely on having make on the system. The new way should work
95  on (most?) Unix and Win32 systems. Suggested by David Golden. See RT
96  18969 (for DateTime.pm, but equally applicable to this module). Will
97  hopefully fix RT 17644.
98
99- Previously, if a parameter was undefined, regex checks for that
100  parameter always failed. However, it's quite possible for a regex to
101  successfully match an undefined value (qr/^$/, for example). Now the
102  code treats undef as an empty string ('') in regex checks. Reported
103  by Duncan Salada.
104
105
1060.82 May 9, 2006
107
108- Disabled function inlining if _MSC_VER is defined. Patch from Audrey
109  Tang.
110
111- Check isa by calling it as a method on the thing being checked.
112
113- Do the same for can in the pure Perl version. This was already fixed
114  for the XS version in 0.75.
115
116
1170.81 Apr 1, 2006
118
119- Speed up no validation in XS version by short-circuiting immediately
120  if validation is off. This gives a noticeable speed boost when
121  $ENV{NO_VALIDATION} is in use. Patch by Daisuke Maki.
122
123- Inlined some C functions for additional speed in the XS
124  version. Patch by Daisuke Maki.
125
126
1270.80 Jan 22, 2006
128
129- If a undef value was given for a parameter that had a regex in its
130  spec, a warning was emitted. RT #15196.
131
132
1330.79 Jan 13, 2006
134
135- The XS version of Params::Validate did not work if a spec hash
136  reference was marked Readonly using Readonly::XS.
137
138- Added some tests for using tied values for params or spec, and
139  discovered that a tied spec causes a segfault, but could not figure
140  out how to fix this (Grr, Perl magic is a huge pain in the nether
141  regions).
142
143
1440.78 Jul 19, 2005
145
146- If an overloaded object returned false in boolean context, then it
147  would always fail "can" tests. Patch by Chi-Fung Fan.
148
149
1500.77 Apr 29, 2005
151
152- Neither --xs or --pm worked with the Makefile.PL the way they were
153  supposed to. Reported by Doug Treder.
154
155- Moved source to my personal SVN repo.
156  https://svn.urth.org/svn/Params-Validate
157
158- Updated ppport.h, which allows XS version to work with 5.00504.
159  This was broken since 0.75, at least.
160
161
1620.76 Nov 13, 2004 (The "Cancan some more" release)
163
164- Make sure that both the XS and Perl versions give the same error
165  when checking "can" for an undefined value.
166
167
1680.75 Nov 13, 2004 (The "Cancan" release)
169
170- When checking if a parameter has a method, P::V now calls the ->can
171  method on the parameter, rather than calling UNIVERSAL::can()
172  directly. Requested by Don Armstrong.
173
174
1750.74 Apr 4, 2004 (The "I hate old Perls" release)
176
177- Sometimes, but not always, Perl 5.00504 and 5.00503 cannot produce a
178  string value for a glob (as opposed to glob reference) parameter.
179  This was uncovered by a test in the HTML::Mason test suite, but I
180  cannot reproduce it in a simple testable form for this test suite.
181  Sigh ...
182
183
1840.73 Mar 28, 2004  (The "YAPC::Taipei release party" release)
185
186- The minimum number of arguments required was reported incorrectly by
187  the XS code when a call to validate_pos() failed because too few
188  parameters were given. Patch from Britton Kerin.
189
190- Add a new untaint key to the validation spec, which untaints a value
191  if it passes its validation checks.
192
193
1940.72 Dec 3, 2003
195
196- If a normalize_keys callback returns the same normalized key for two
197  different inputs, Params::Validate will die.
198
199- The pure Perl implementation had a bug where if the same hash
200  reference was used for the spec in multiple calls to validate(),
201  then any call made after a parameter failed a validation check could
202  exhibit strange behaviors (like parameters passing that shouldn't,
203  etc.). This was due to the fact that the Perl implementation uses
204  each() internally, and was leaving the hash's iterator partially
205  iterated. Reported via an apparent problem with DateTime.pm by Jost
206  Krieger.
207
208
2090.71 Dec 2, 2003
210
211- Suppressed some annoying "subroutine redefined" warnings if the pure
212  Perl version ended up being loaded after attempting to load the XS
213  version.
214
215
2160.70 Nov 23, 2003
217
218- Any validation call that used a callback leaked memory when using
219  the XS version. This was introduced in 0.67, when callbacks started
220  receiving a reference to the parameters as a second argument.
221  Reported by Eugene van der Pijll.
222
223
2240.69 Nov 3, 2003
225
226- The key normalization feature introduced in 0.66 leaked one SV*
227  every time a parameter _hash_ was run through the XS version of
228  validate() or validate_with(). This happened if one of
229  normalize_keys, allow_extra, or ignore_case was set, or if
230  validate_with() was used. Upgrading is strongly recommended!
231  Reported by Ruslan.
232
233
2340.68 Oct 21, 2003
235
236- Added spiffy new parameter dependency feature. Implemented by
237  Daisuke Maki.
238
239
2400.67 Oct 10, 2003
241
242- The test count for 06-option.t was off. Reported by Christian
243  Schaffner.
244
245- Validation callbacks now receive a reference to the (normalized)
246  parameter hash/array as their second argument.
247
248- Shut up an "unitialized value in subroutine entry" warning caused by
249  calling validate_pos() with an undef value in the parameter array.
250  This was introduced in 0.66.
251
252
2530.66 Oct 08, 2003
254
255- Skip a few more tests under Perl 5.6.0. Patch from Christian
256  Schaffner.
257
258- Error messages now include the stringified value of the variable
259  that was invalid. Implemented by Daisuke Maki.
260
261- Added a new parameter normalization callback feature, the
262  "normalize_keys" option. Implemented by Daisuke Maki.
263
264* The "strip_leading" and "ignore_case" options are now
265  deprecated. Use the new "normalize" feature instead.
266
267
2680.65 Aug 07, 2003
269
270- It is now possible to turn validation on and off at runtime. To
271  make this easier, it can be set via the PERL_NO_VALIDATION
272  environment variable, or the $Params::Validate::NO_VALIDATION global
273  variable. Go ahead, shoot yourself in the foot with it!
274
275
2760.64 Jul 14, 2003
277
278- Fix an XS compilation error under 5.6.1:
279
280 Validate.xs: In function `validate_isa':
281 Validate.xs:381: `perl_on_error' undeclared (first use in this function)
282
283
2840.63 Jul 14, 2003
285
286- The XS version of validate_with failed if the params key contained
287  an array reference containing a single hash reference. Since this
288  works with the pure Perl version, it should work with the XS
289  version. Reported by Diab Jerius. Bug #2791 on rt.cpan.org.
290
291
2920.62 Jun 25, 2003
293
294- Remove a warn() statement left in from debugging. Reported by Shane
295  McCarron.
296
297
2980.61 Jun 23, 2003
299
300- The last release had some debugging code left in which tried to load
301  Devel::StackTrace. Reported by Iain Truskett.
302
303
3040.60 Jun 21, 2003
305
306- Fixed a weird segfault that could occur with Perl 5.6.1 when a
307  user-defined on_fail callback died with an object as its argument.
308  This only happened with the XS version of the code. Reported by Ken
309  Williams.
310
311  The end result is that the version of the XS code that is used with
312  Perl 5.6.0 and 5.6.1 is slightly slower than that used with 5.00503
313  or 5.8.0, as it requires an additional Perl-level wrapper.
314
315- Use XSLoader in preference to Dynaloader with Perl 5.6.0+.
316
317
3180.59 May 24, 2003
319
320- If an odd number of parameters was given to validate() in the array
321  as its first argument, the error given would be different depending
322  on whether or not the pure Perl or XS version of the code was being
323  used.
324
325- Fixed incredibly odd bug that occurred in XS code when tainting was
326  on with Perl 5.00503. Unfortunately, the only test case that
327  reliably reproduces this is one of Mason's tests, so no test was
328  added.
329
330
3310.58 Apr 03, 2003
332
333- Fix some compiler warnings from MS Visual Studio 6. Reported by Ron
334  Hill.
335
336
3370.57 Feb 28, 2003
338
339- When called from the main body of a script, the validation routines
340  would cause an undefined value warning if validation failed.
341  Reported by Britton Kerin and fixed by Ilya Martynov.
342
343
3440.56 Feb 24, 2003
345
346- The XS code that handled callbacks expected all callbacks to return
347  an integer, instead of simply testing the returned value for truth.
348  This could cause strange warnings like 'Argument "InMemory" isn't
349  numeric in subroutine entry...'. Based on a bug report from Robert
350  Dick for another module I wrote (Lingua::ZH::CCDICT).
351
352
3530.55 Feb 21, 2003
354
355- Fixed Params::Validate for Perl configurations where sizeof(IV) !=
356  sizeof(int). Reported by Alain Barbet.
357
358
3590.54 Feb 20, 2003
360
361- Something around test 5 in 06-options.t appear to cause Perl to
362  die/segfault/something under 5.6.0. These tests will be skipped
363  with 5.6.0 in the future. Reported by Christian Schaffner.
364
365
3660.53 Feb 19, 2003
367
368- When testing for a compiler, use nmake on Win32. Implemented by
369  Ronald Hill.
370
371
3720.52 Feb 14, 2003
373
374- Added regex validation option.
375
376
3770.51 Jan 14, 2003
378
379- Added copyright info to each source file. Added LICENSE file to
380  distro.
381
382
3830.50 Jan 9, 2003
384
385- Added an XS implementation, written by Ilya Martynov. The pure Perl
386  implementation is still included as a fallback for users who do not
387  have a compiler handy. The XS implementation gives a speed boost of
388  150% to 300%, depending on the complexity of the validation being
389  done.
390
391  This XS code is known to work Perl 5.00503+, but it may not work
392  with earlier versions of Perl.
393
394
3950.24  Jul 19, 2002
396
397- Fix Attribute::Params::Validate docs to show that attribute
398  declaration must have open paren immediately after "Validate" or
399  "ValidatePos". Reported by Britton Kerin.
400
401- Fix bug with Perl 5.8.0 when in PERL_NO_VALIDATION mode and calling
402  validate() expecting a hash ref to be returned. Reported by Randal
403  Schwartz.
404
405
4060.23 Jul 19, 2002
407
408- Argh. In 0.22 some of the tests printed their test counts (1..x)
409  after doing the tests. This works with newer versions of
410  Test::Harness so I didn't notice it. Reported by Peter Asemann.
411
412
4130.22 Jul 15, 2002
414
415- The last version's tarball was a mess, and had blib and other junk
416  in it. This is a nice clean one.
417
418
4190.21 Jul 14, 2002
420
421- The various validation functions are now context sensitive, and will
422  return a reference in scalar context. This may be a helpful
423  speedup, especially for large parameter lists.
424
425
4260.20 Jul 13, 2002
427
428- Improved the speed of both validate() and validate_pos() by about
429  20-25%.
430
431- Improved the speed of the 'no validation' mode for validate() by
432  over 30%, for validation_pos() by 15%, and for validate_with() by
433  125%.
434
435- The speed of validate_with() has been improved by over 100%, but
436  this was at the expense of not validating its own incoming
437  arguments, thus making it a little more fragile.
438
439- The PERL_NO_VALIDATION env var is now _only_ checked when the module
440  is loaded. This means you cannot change it mid-program. This is a
441  backwards incompatibility.
442
443
4440.18 June 18, 2002
445
446- Added a new function, validate_with(), that allow you to set various
447  options on a per-invocation basis, rather than on a per-package
448  basis. Patch by Ken Williams.
449
450
4510.17 Jun 15, 2002
452
453- Fix a doc nit where I had a wrong code example. Reported by Britton
454  Kerin.
455
456- Added a new validation option parameter, stack_skip, which allows
457  you to change how errors are reported by Params::Validate.
458
459
4600.16 May 11, 2002
461
462- Improve skipping of tests when run with 5.6.0. Patch by Ken
463  Williams.
464
465- Silence an uninit value warning
466
467
4680.15 Apr 19, 2002
469
470- validate_pos would die stupidly when it received an array with an
471  odd number of elements.
472
473
4740.14 Mar 14, 2002
475
476- validate_pos used exists on an array element, which only works with
477  Perl 5.6.0. This release makes it work 5.00503 again. Reported by
478  Jon Swartz.
479
480
4810.13 Mar 10, 2002
482
483- Apply some of the same optimizations to positional parameters. The
484  speedup here seems to be about 7-8%.
485
486- Fix stupid bug in 04-defaults tests.
487
488
4890.12 Mar 10, 2002
490
491- Add BOOLEAN type (equivalent to UNDEF | SCALAR). Suggested by Ken
492  Williams.
493
494- This version is about 8-10% faster on named parameters than previous
495  versions. This may not seem like that much but if most, or all, of
496  your subroutines/methods use validation then this can be a
497  significant improvement.
498
499- This version has slightly different semantics for dealing with
500  missing parameters. Previously, if parameters were missing, an
501  exception was thrown before any of the other validation parameters
502  were checked. Now, the validation parameters (type, isa, etc.) are
503  checked first, so that these errors will show up before missing
504  parameters.
505
506
5070.11 Jan 04, 2002
508
509- Accidentally removed the set_options function (in 0.08). Though this
510  will go away in the future it isn't happening quite yet.
511
512
5130.10 Jan 04, 2002
514
515- Apparently making a tarball for CPAN is beyond my limited abilities.
516  0.09 was missing a file needed for tests. Also reported by Blair
517  Zajac.
518
519- When running Makefile.PL you get some warnings that can be ignored.
520  Add a message saying you can ignore them.
521
522
5230.09 Jan 04, 2002
524
525- I forgot to put the Makefile.PL in the MANIFEST. I am dumb.
526  Reported by Blair Zajac.
527
528
5290.08 Jan 03, 2002
530
531- Explicitly mention that, by default, Params::Validate uses
532  Carp::confess to report a validation failure. Suggested by Mark
533  Stosberg.
534
535- The 'NO_VALIDATION' mode was seriously broken in that it didn't
536  handle defaults at all.
537
538- The 'NO_VALIDATION' env var was mis-documented as being
539  'NO_VALIDATE'.
540
541- The 'NO_VALIDATION' env var is now 'PERL_NO_VALIDATION' and this
542  method of disabling validation is no longer considered alpha.
543
544- The validation functions now check this environment variable every
545  time they are called. This is probably a bit slower than the
546  previous implementation, which only checked once when the module was
547  loaded.  If you have a problem with this, let me know.
548
549
5500.07 Sep 23, 2001
551
552- Fix problem with CPAN shell's 'r' command that
553  Attribute::Params::Validate was causing with older Perl's. Reported
554  by Rob BloodGood.
555
556- Add ability to specify defaults for parameters and get a new
557  hash/array back from validate or validate_pos. Partial patch
558  submitted by Ken Williams.
559
560
5610.06 Aug 23, 2001
562
563- Require Attribute::Handlers if using Perl 5.6.0+.
564
565- fix doc nits.
566
567
5680.05 Aug 23, 2001
569
570- Added Attribute::Params::Validate - do validation via attributes!
571
572- Rename set_options to validation_options. This can now be exported
573  safely and is included in the :all export tag. set_options is
574  deprecated and will be removed in a future release. Thanks to Jon
575  Swartz for the suggestion.
576
577
5780.04 Apr 14, 2001
579
580- Tweaks to make the code work under 5.00404
581
582
5830.03 Mar 17, 2001
584
585- Make sure all error messages contain the name of the subroutine that
586  was called.
587
588- The error message given when an argument doesn't match the 'isa'
589  spec has been improved.
590
591- Use Carp::confess by default when dying with an error. This
592  produces a more useful error message.
593
594
5950.02 Mar 6, 2001
596
597- Fix a bug in the test suite that caused failures in 5.6.0.
598
599
6000.01 Feb 16, 2001
601
602- Original release
603
604