Type-Tiny
=========
Created: 2013-03-23
Home page: <https://metacpan.org/release/Type-Tiny>
Bug tracker: <http://rt.cpan.org/Dist/Display.html?Queue=Type-Tiny>
Maintainer: Toby Inkster <mailto:tobyink@cpan.org>
0.006 2013-05-28
- (Packaging) Exporter::TypeTiny::mkopt_hash now works.
0.005_08 2013-05-28
- (Packaging) Rearrange test cases; add 00-begin.t.
- (Update) Use JSON::PP instead of JSON in test cases, because JSON::PP is
a core module since Perl 5.14.
0.005_07 2013-05-28
- (Addition) Add pure-Perl Mouse to examples/benchmark-constraints.pl.
- (Bugfix) Assertions using the assert_return pattern were triggering
FATAL warnings when inlined with Sub::Quote. Inlined assertions are now
prefixed with 'no warnings "void";'.
0.005_06 2013-05-26
- (Bugfix) Fix StrMatch to properly support regexps containing slashes.
- Fold Types::Standard::DeepCoercion into Types::Standard.
0.005_05 2013-05-24
- (Addition) Type::Tiny now has an assert_return method, which is used in
most places in preference to assert_valid.
- (Removal) Removed Type::Registry from the release; it will return at a
later date.
- (Update) Suggest newer version of Validation::Class.
- Fix warnings under Perl 5.18.
0.005_04 2013-05-17
- (Addition) Deep explanations for
Types::Standard::{Map,Maybe,Ref,Dict,Tuple} type constraint assertion
failures.
- (Addition) Type::Exception::Compilation.
- (Bugfix) Fixed bug in non-inlined code for Types::Standard::MkOpt.
- All error conditions now throw exception objects instead of string error
messages.
- Allow the slurpy tail of a Types::Standard::Tuple to be a treated as a
hashref rather than an arrayref.
- Improved deep explanations for
Types::Standard::{ArrayRef,HashRef,ScalarRef}.
- Test::TypeTiny performs more thorough testing if EXTENDED_TESTING
environment variable is set.
- Throw exception if people attempt to set parent types for
Type::Tiny::{Class,Role,Duck,Enum,Union,Intersection}.
0.005_03 2013-05-14
- (Removal) Bytes and Chars type constraints removed from Types::Standard.
- (Removal) Decode and Encode coercions removed from Types::Standard.
- Many error conditions now throw exception objects instead of string
error messages.
0.005_02 2013-05-14
- (Documentation) Fix a typo in declare_coercion in
Type::Tiny::Manual::Coercions.
++$MMCLERIC
- (Documentation) Link to Type::Tiny::Manual::Libraries instead of
non-existing Type::Tiny::Intro.
++$MMCLERIC
0.005_01 2013-05-07
- (Addition) ArrayLike type added to Types::TypeTiny.
- (Addition) Type::Registry.
- (Bugfix) Type::Library should require Perl 5.8.1, not 5.8.3.
0.004 2013-05-06
- (Bugfix) Eval::Closure now strips line breaks and other unsavoury
characters from descriptions.
- Minor updates to to_TypeTiny following Validation::Class 7.900048
release.
0.003_16 2013-05-05
- (Documentation) Document that Map[`k,`v] has a deep coercion.
- (Documentation) Improve Type::Coercion documentation.
- Minor updates to coderef overloading following Moo 1.002000 release.
- Rename Types::Standard::AutomaticCoercion ->
Types::Standard::DeepCoercion.
- Type::Params produces nicer error messages.
0.003_15 2013-05-03
- (Addition) Improvements to to_TypeTiny function, including accepting
Validation::Class::Simple objects.
0.003_14 2013-05-03
0.003_13 2013-05-03
- (Bugfix) Don't crash in old versions of Moose that have no
Class::MOP::_definition_context() function.
- BAIL_OUT in test suite if 00-compile.t or 01-api.t fail.
- Better documentation and tests of Moose/Mouse-compatible API.
- Fix typo in Type::Params documentation.
++$DJERIUS
0.003_12 2013-05-01
- (Bugfix) Sane behaviour for Types::Standard's 'slurpy' function when it
appears mid-list.
- Allow people to use Carp::{confess,cluck,carp} with Type::Params
validators; default is still croak.
- Improved Type::Params documentation.
- Type::Params validators now explicitly check the number of arguments
passed to them.
++$MMCLERIC
0.003_11 2013-04-30
- (Addition) Test cases for Eval::TypeTiny.
- Automatic coercion for parameterized Dict will no longer drop key/value
pairs to force a coercion.
++$MMCLERIC
- Automatic coercion for parameterized Tuple will no longer drop values to
force a coercion.
++$MMCLERIC
0.003_10 2013-04-29
- (Addition) Bundle Type::Params, which had previously appeared on CPAN in
a separate developer release.
- (Addition) Much of the stringy eval stuff has been factored out to a new
module: Eval::TypeTiny.
- (Addition) Type::Tiny::SUPPORT_SMARTMATCH constant.
- (Documentation) Improve Exporter::TypeTiny documentation.
- (Documentation) Improve advice on inlining type constraints and
coercions.
- (Packaging) Bump version of Test::More dependency fom 0.88 to 0.96.
- General code tidy-up.
0.003_09 2013-04-28
- (Addition) 'Tied' type constraint added to Types::Standard.
- (Documentation) Document usage with Params::Check and Object::Accessor.
- If Mouse is already in memory, Type::Tiny will use its super-fast XS
subs to validate values when possible.
0.003_08 2013-04-26
- (Addition) Test case using Exporter::TypeTiny with
Sub::Exporter::Lexical.
- (Documentation) More Exporter::TypeTiny docs, including usage with
Sub::Exporter::Lexical.
- ASCII-only strings are now accepted by the Chars constraint in
Types::Standard.
- Type::Tiny, Type::Coercion and their subclasses no longer call
Types::TypeTiny->import method.
- Types::TypeTiny lazily loads Exporter::TypeTiny - i.e. it loads
Exporter::TypeTiny when Types::TypeTiny->import is first called.
0.003_07 2013-04-26
- (Bugfix) Fix method conflicts when exporting type constraints to roles.
++$BOWTIE
- (Documentation) Document usage with Class::InsideOut.
- (Documentation) Minor improvements to manual.
0.002 2013-04-26
- (Addition) Chars and Bytes types added to Types::Standard.
- (Bugfix) Fix method conflicts when exporting type constraints to roles.
++$BOWTIE
- (Bugfix) Prevent warnings (about 'my $val' masking a previously declared
variable) when several Str checks are being inlined in close proximity,
such as Tuple[Str,Str]
- (Documentation) Link from Test::TypeTiny to Test::Deep::Type.
- Avoid unnecessarily regenerating parameterized type constraints.
- Make Type::Tiny's has_coercion method more DWIM.
0.003_06 2013-04-25
- (Addition) Types::TypeTiny::to_TypeTiny can now coerce from a
Mouse::Meta::TypeConstraint.
- (Documentation) Add lots of stuff to Type::Tiny::Manual::UsingWithMouse.
- (Documentation) Document deep coercions (feature added in 0.003_01).
- Add a bunch of stub methods to Type::Tiny and Type::Coercion in order to
make it less necessary to inflate to Moose/Mouse meta objects.
- No longer need to add '-mouse' when importing types into Mouse
libraries. (Same change as what we did for Moose in 0.000_11.)
- Various minor changes to Exporter::TypeTiny to make it more
Sub::Exporter compatible.
0.003_05 2013-04-19
- (Addition) Allow coercions to accept parameters.
- (Addition) Chars and Bytes types added to Types::Standard.
- (Addition) Encode, Decode, Join and Split coercions added to
Types::Standard.
- (Addition) Type::Tiny::Class now has a plus_constructors method.
- (Bugfix) Prevent warnings (about 'my $val' masking a previously declared
variable) when several Str checks are being inlined in close proximity,
such as Tuple[Str,Str]
- (Documentation) Document Exporter::TypeTiny.
- (Documentation) Type::Tiny::Manual::Coercions.
0.003_04 2013-04-18
- Factor out the sub exporting code scattered around (in Type::Utils,
Types::TypeTiny and Type::Library) into a single module,
Exporter::TypeTiny.
0.003_03 2013-04-17
- (Addition) Add OptList data type to Types::Standard, plus MkOpt
coercion.
- Make Type::Tiny's has_coercion method more DWIM.
- When inflating Moo type constraints to Moose, don't unnecessarily call
'moose_type' method.
0.003_02 2013-04-16
- (Documentation) Document how to process sub parameters with Type::Tiny,
and point people towards Type::Params.
- Avoid unnecessarily regenerating parameterized type constraints.
0.003_01 2013-04-16
- (Addition) Allow subtypes to inherit coercions from their parent type
constraint. (They do not by default.)
- (Addition) Build coercions automatically for certain type parameterized
constraints. Say there's a Num->Int coercion defined; then we should be
able to coerce ArrayRef[Num]->ArrayRef[Int].
- (Addition) Overload "+" operator for Type::Coercion and Type::Tiny
allows coercions to be added to each other, and added to type
constraints.
- (Addition) Type::Library packages can now include "standalone"
Type::Coercion objects, not attached to a type constraint. These can be
exported on request.
- (Documentation) Link from Test::TypeTiny to Test::Deep::Type.
- Allow a Type::Tiny object to "freeze" its coercions. This prevents a
Type::Tiny object from becoming out of sync with its equivalent Mouse or
Moose constraint objects.
0.001 2013-04-15 # First public release
- (Addition) More test cases for Optional[`a] within Dict[`a].
- (Bugfix) Some inline code assumed that it would be compiled in a package
that had 'blessed' imported.
- (Bugfix) Some inline code wasn't wrapped in parentheses.
- (Documentation) Minor improvements.
- Improve test names generated by Test::TypeTiny; allow test scripts to
provide test names.
- Parameterized type constraints in Types::Standard now do some sanity
checking on their arguments.
- Weaken the reference from a Moose::Meta::TypeConstraint object to its
Type::Tiny origin.
0.000_12 2013-04-12
- (Documentation) Fix minor typo.
0.000_11 2013-04-11
- (Bugfix) Fix prototype for Type::Utils::as.
- No longer need to pass '-moose' parameter when importing a library into
a Moose class; only Mouse needs that treatment now.
0.000_10 2013-04-09
- (Bugfix) Fix incorrect Test::Requires line in 'mouse-coercion.t'.
- Improvements to has_coercion_for_{type,value} from Type::Coercion.
0.000_09 2013-04-08
- (Addition) Bundle benchmarking scripts.
- (Documentation) Fill in the Usage with Moose section of the fine manual.
- (Packaging) Tidy up the 'examples' directory.
- (Packaging) When generating Moose/Mouse constraints from Type::Tiny
objects, prefer to generate anonymous ones.
0.000_08 2013-04-07
- (Addition) Types::TypeTiny::to_TypeTiny can be used to coerce a Moose
type constraint object to Type::Tiny.
- Most parts of the API that accept Type::Tiny objects (e.g.
Type::Utils::from()) now also accept Moose::Meta::TypeConstraint
objects.
- Rewrite most of the functions exported by Type::Library-based type
libraries to cope better with being used mid-list.
0.000_07 2013-04-06
- (Addition) Type::Coercion::Union - automatically handles coercion to
union types.
- (Bugfix) Fix inlining for Type::Tiny::Intersection.
- (Bugfix) Fix inlining of certain conditionals into coercion code.
- (Bugfix) Types within libraries, if accessed directly rather than
exported, did not accept parameters.
- (Documentation) Document constructor for Type::Tiny::Class.
- (Packaging) More test cases.
0.000_06 2013-04-05
- (Addition) In Moo, type assertions and coercions are now inlined.
++$MSTROUT
- (Addition) Monkey patch Moose::Meta::TypeConstraint to be able to
retrieve Type::Tiny constraints from inflated Moose constraints.
- (Addition) Type::Tiny now has an 'inline_assert' function.
- (Documentation) Improved documentation of parameterization attributes.
- (Documentation) Section in manual comparing Type::Tiny with various
other type library frameworks.
- (Documentation) Using Type::Tiny with Moo added to manual.
- (Packaging) More test cases.
- Footprint reduction: Type::Tiny and Type::Coercion no longer use if.pm.
- Footprint reduction: Type::Tiny no longer triggers Perl to load its
Unicode tables (unless you create a type constraint with a non-ASCII
type name).
- Footprint reduction: Type::Tiny, Type::Library and Type::Coerce no
longer automatically load Types::Standard and Type::Utils.
0.000_05 2013-04-04
- (Addition) Factor out some functions from test suite into a new module:
Test::TypeTiny.
- (Bugfix) Fix is_parameterized.
- (Bugfix) Get Mouse coercions working.
- (Packaging) Rearrange test suite slightly.
- Allow null type constraints with no parent type (e.g. 'Any' in
Types::Standard) to be inlined.
- Don't die with full stack trace.
- Rename Type::Standard module to Types::Standard.
- Sanity checks for type constraint names.
- Types::TypeTiny bootstrapping library now takes care of vaious internal
type checking requirements.
0.000_04 2013-04-03
- (Addition) Finally implement Type::Coercion's has_coercion_for_type
method.
- (Addition) Type::Tiny equals/is_subtype_of/is_supertype_of/is_a_type_of
methods for type constraint comparisons.
- (Addition) Type::Tiny plus_coercions/minus_coercions/no_coercions
methods for creating subtypes with different sets of coercions.
- Allow coercion code to be expressed as a string; quite a bit faster.
- Create and use compiled coercions; somewhat faster.
0.000_03 2013-04-03
- (Addition) Inlined type constraints for all of Type::Standard.
- (Addition) Test cases for ScalarRef[`a].
- (Bugfix) Fix the crashing t/moo-inflation.t test case.
- (Documentation) Document Type::Coercion's overloading.
- Create and use compiled type constraint checks; much faster!
- Make sure Type::Standard's Moose-like built-ins get inflated to real
Moose built-in types.
- Use more unique stringification for %Moo::HandleMoose::TYPE_MAP keys.
0.000_02 2013-04-02
- (Addition) StrMatch added to Type::Standard.
- (Addition) use Type::Library -base
- (Addition) use Type::Library -declare
- (Bugfix) Anchor enum regexps to beginning and end of string.
- (Documentation) Beginnings of Type::Tiny::Manual.
0.000_01 2013-04-02 # Developer preview