Revision history for Data-Domain

1.16 03.03.2023
  - new builtin domain 'Struict'
  - new -if_absent parameter
  - bug fix : default value was incorrectly propagated to the next undef field

1.15 13.01.2024
  - add missing dependency on List::Util v1.45  

1.14 07.01.2024
  - new methods: validate(), func_signature(), meth_signature()
  - new domain option: -default
  - new domain shortcut : Coderef
  - fix old bug on checks for tainted data

1.13 02.12.2023
  - new option Struct(-may_ignore => ...)
  - NOT BACKWARD COMPATIBLE : the API for coderefs also passes the domain name
    (but the old API can be restored through a global flag)
  - global messages can contain coderefs
  - $global_msgs can be localized

1.12 16.05.2023
  - Struct(..., -exclude => ..) returns richer error messages

1.11 24.04.2023
  - "no warnings 'experimental'" only for perl >= 5.018

1.10 23.04.2023
  - no longer use smartmatch for perl >= 5.37.10
  - removed 'node_from_path'; backwards compat through Data::Reach

1.09 21.04.2023
  - fix one special case of warning 'redundant' that was omitted in the 1.07 fix

1.08 10.03.2023
  - remove internal uses of smartmatch and 'when'
  - drop support for "~~" overloading if perl version >= 5.037
  - the -matches feature is now implemented through match::simple::XS
  - pod tests moved to xt

1.07 29.04.2020
  - fix warning 'redundant' appeared in perl 5.22 

1.06 05.04.2014
  - #94464 fix missing dependency on List::MoreUtils

1.05 04.08.2013
  - additional options -keys and -values for Struct

1.04 16.06.2013
  - use experimental 'smartmatch' to avoid warnings from perl 5.18 

1.03 01.12.2012
  - fixed definition of 'Class' and added new option "-package"

1.02 27.10.2012
  - better check of min/max values
  - revised documentation
  - new options :  -ref, -isweak, -readonly, -tainted
  - most options moved to parent inspect() -- now they apply to all domains
  - new domains : 'Nat', 'Handle'
  - new shortcuts : 'Regexp', 'Obj', 'Class', 'Ref', 'Unref'
  - changed names of export groups ('constructors' and 'shortcuts')
  - experimental support for checking method calls and coderef calls
  - added $MAX_DEEP to control the recursion level 

1.01 21.10.2012
  - removed internal domain _None (useless because same as 'Empty')
  - fiddle with Sub::Exporter to support use Data::Domain qw/:all !Date/   

1.00 11.10.2012
  - use Scalar::Does instead of UNIVERSAL::isa
  - new Whatever options : -blessed, -matches, -does
  - overloads stringification and smart match operators
  - use Sub::Exporter for exporting functions
  - exports builtin domains : True, False, Blessed, Defined, etc.
  - new domain generator 'All_of'
  - tests structured in subtests

0.16 11.08.2011
  - specify POD =encoding so that new Pod::Simple is happy

0.15 29.09.2011
  - https://rt.cpan.org/Ticket/Display.html?id=71188 (String accepts non-scalar)

0.14 01.07.2009
  - undef not allowed in Enum list

0.13 24.02.2009
  - added builtin Empty domain

0.12 23.01.2009
  - catch errors in lazy domain creation (reported as INVALID)

0.11 02.12.2008 
  - parse Date in an eval && check_date to generate 
    INVALID => msg instead of low-level exception

0.10   04.06.2008
  - renamed internal subclasses as ::Ctor::.. to avoid name clashes
    with the functional interface (i.e Data::Domain::Num(...), 
    Data::Domain::Ctor::Num->new(...) ).

0.09   04.02.2008
  - removed warning in Time::_print_time
  - check that lazy domains return proper domains
  - fixes in documentation

0.08
  - changed messages in Time() to display real time for dynamic times

0.07
  - changed messages in Date() to display real dates for dynamic dates

0.06
  - typos in doc

0.05    
  - Bug fix : wrong message in List(-any)
  - renamed build.pl in build.PL

0.04    07.03.2006
  - Fixed dependencies in Build.PL
  - Revisited code for List(-any) 

0.03    23.02.2006
  - Bug fix in method msgs()

0.02    27.12.2006
  - Documentation restructured and completed (esp. -messages option)
  - minor modifications in msg() method
  - added range options (e.g. -size=>[$min, $max])

0.01    01.10.2006
  - initial release