Changes for version 1.000000 - 2014-08-16

  • Documentation
    • Document the Type::Tiny versioning policy.
    • Updated NEWS file.
    • Updated TODO file.

Changes for version 0.047_09 - 2014-08-12

  • Bug Fixes
    • Fix documentation typo. Benct Philip Jonsson++
  • Documentation
    • Improvements and clarifications to Type::Coercion documentation.
  • Test Suite
    • Add tests for Error::TypeTiny::Assertion's predicate methods.
    • Add tests for Type::Coercion's i_really_want_to_unfreeze method.
  • Other
    • Better integration between Type::Library and Type::Registry. If you import a type constraint from a Type::Library-based module, it will automatically be inserted into your modules' type registry.
    • The to_Foo functions exported by Type::Library-based modules are now significantly faster. (But only if the type's coercion is frozen.)
    • Type::Utils::dwim_type now takes into account what OO framework the caller is using (Moose or Mouse) if it needs to fall back to asking the OO framework about a type constraint.

Changes for version 0.047_08 - 2014-08-05

  • Bug Fixes
    • Fix non-inlined version of NegativeOrZeroInt.
  • Documentation
    • Document the remaining RT#93345-related issues - see "Deep Caveat" in Type::Tiny::Manual::Coercions. <http://purl.org/NET/cpan-uri/rt/ticket/93345>
  • Test Suite
    • Alter the Types::Common::* test cases to use Test::TypeTiny.
    • Test to avoid the "too few arguments for type constraint check functions" error. Diab Jerius++ <http://purl.org/NET/cpan-uri/rt/ticket/97684>
    • Update t/30-integration/Moose/coercion.t to Moose 2.1200 which throws an exception rather than printing a warning when coerce=>1 is used on a type constraint with no coercions.
  • Other
    • Prevent inlining of coercions if they've not been frozen. <http://purl.org/NET/cpan-uri/rt/ticket/93345>

Changes for version 0.047_07 - 2014-08-04

  • Bug Fixes
    • The extract_type function was missing from Type::Parser's @EXPORT_OK list.
  • Test Suite
    • Test cases for Type::Parser::extract_type.
  • Other
    • Parameterized Maybe constraints are now XS-accelerated.

Changes for version 0.047_06 - 2014-07-31

  • Bug Fixes
    • Bugfix in coercion inheritance where the child's type_coercion_map arrayref would end up as a reference to the parent's type_coercion_map. (Which was not good.)
  • Test Suite
    • More Type::Registry test cases.
  • Other
    • Added: Type::Coercion now has a i_really_want_to_unfreeze method.
    • Added: Type::Library now has a make_immutable method.
    • Coercions for the types defined in Types::Common::Numeric are now frozen.
    • Coercions for the types defined in Types::Common::String are now frozen.
    • Coercions for the types defined in Types::Standard are now frozen.
    • Parameterized types now have their coercions frozen automatically, so you can no longer add coercions to, say, ArrayRef[Int]. However, you can create a subtype of ArrayRef[Int] and add coercions to that. Michael G Schwern++ <http://purl.org/NET/cpan-uri/rt/ticket/97516>
    • Type::Registry now has methods for creating union/intersection/class/role type constraints. Type::Parser delegates to these, making it potentially reusable outside Type::Tiny by simply passing it an alternative type registry object.
    • Type::Registry/Type::Parser will now auto-load MouseX::Types libraries.

Changes for version 0.047_05 - 2014-07-29

  • Documentation
    • Improve the documentation of Optional[] and slurpy.
  • Other
    • A far saner implementation of Optional[].
    • A slightly saner implementation of Types::TypeTiny's meta methods.
    • Optimizations for slurpy Any.
    • When slurping the tail of a Tuple into a hashref, check it's an even number of elements.

Changes for version 0.047_04 - 2014-07-28

  • Documentation
    • Type::Utils does not export english_list() and classifier() by default.
  • Test Suite
    • Check that Mouse type converted to Type::Tiny objects keep their original error messages.
    • Improve test coverage for Type::Registry.
    • Improve test coverage for Type::Utils' match_on_type and compile_match_on_type.
    • Test code from SYNOPSIS sections (only in xt).
    • Test exceptions thrown by Types::Standard::ScalarRef.
    • Test that Sub::Quote-enabled coderefs generated by Type::Tiny and Type::Coercion can actually be retrieved by Sub::Quote.
    • Test the Type::Coercion overloading of ~~.
    • Test warnings raised by Type::Utils::declare().
    • Tests for Test::TypeTiny::matchfor().
    • Tests for dynamically delegated Type::Tiny an Type::Coercion methods.
    • Tests for introspection methods of Type::Coercion.
    • Tests for introspection methods of Types::TypeTiny.
  • Other
    • Straighten out the relationships between Type::Coercion and its subclasses.
    • Type:Utils::match_on_type no longer automatically loads Types::Standard.

Changes for version 0.047_03 - 2014-07-26

  • Bug Fixes
    • Fix for slurpy Map within a Tuple.
    • Types::TypeTiny->has_type was incorrectly returning whether Types::TypeTiny contained the named *coercion* instead of a named *type*.
  • Test Suite
    • Check Type::Library-based type libraries can extend MouseX::Types-based type libraries.
    • Check that Type::Registry works in conjunction with MouseX::Types. (There's some TODO stuff there.)
    • Checks for more Error::TypeTiny::Assertion explanations (Tuple, Duck, Intersection, Union, Dicts containing slurpy things).
    • Checks non-inlineable deep coercions for Tuple.
    • Fake a very old Validation::Class::Simple for a certain test by overriding $Validation::Class::Simple::VERSION.
    • Improved type constraint constructor tests (exceptions thrown for bad parameters, coercion=>ARRAY|CODE parameter).
    • Improved type introspection method tests (find_parent/is_supertype_of/is_subtype_of/is_strictly_supertype_of/is_s trictly_subtype_of).
    • Test the immutability of Type::Coercion::Union.
    • Tests for `isa`.
    • Tests for non-inlineable type constraints in `match_on_type` and `compile_match_on_type`.
    • Tests for various little methods which were added for Moose/Mouse-compatibility.
  • Packaging
    • Bundle my TODO file.
  • Other
    • Better `isa` faking - returns true to Class::MOP::Object.

Changes for version 0.047_02 - 2014-07-23

  • Documentation
    • Type::Tiny::Manual no longer says that Perl 5.6.x support is at risk.
  • Test Suite
    • Add tests explicitly testing Type::Tiny objects conversion to Moose::Meta::TypeConstraint and Mouse::Meta::TypeConstraint objects.
    • Include test case relating to Type::Tiny::XS GitHub issue #1. <https://github.com/tobyink/p5-type-tiny-xs/issues/1>
    • Stop using base.pm.
    • Test exceptions thrown by Type::Tiny::Class.
    • Test exceptions thrown by Type::Tiny::Enum.
    • Test exceptions thrown by Type::Tiny::Role.
    • Test the Error::TypeTiny::Compilation exception class.
    • Test the Error::TypeTiny::WrongNumberOfParameters exception class.
  • Other
    • Allow Enums containing hyphens to be accelerated by Type::Tiny::XS.
    • Type::Tiny::Class should stop using Class::ISA. Instead, if mro.pm is not available, use a private sub stolen from MRO::Compat.
    • Type::Tiny::Intersection is now XS-accelerated. <https://gist.github.com/tobyink/71eab715ac16178cbcfb>
    • Type::Tiny::Union is now XS-accelerated. <https://gist.github.com/tobyink/71eab715ac16178cbcfb>

Changes for version 0.047_01 - 2014-07-21

  • Bug Fixes
    • Fix a silly test case that was relying on Exporter::Tiny to always load B.pm. (Current versions of Exporter::Tiny do load B.pm, but future versions might not.)
  • Documentation
    • Better document which type constraints will be accelerated by Type::Tiny::XS and Mouse.
  • Other
    • Type::Tiny::Enum is now XS-accelerated. <https://gist.github.com/tobyink/dfdf9bb826a530781e3d>
    • Types::Common::Numeric::PositiveInt is now XS-accelerated. <https://gist.github.com/tobyink/dcc15cf283c90c749501>
    • Types::Common::Numeric::PositiveOrZeroInt is now XS-accelerated. <https://gist.github.com/tobyink/dcc15cf283c90c749501>
    • Types::Common::String::NonEmptyStr is now XS-accelerated. <https://gist.github.com/tobyink/dcc15cf283c90c749501>
    • Types::Standard::Map is now XS-accelerated. <https://gist.github.com/tobyink/e733f839cecc0dd193a6>
    • Types::Standard::Tuple is now XS-accelerated. <https://gist.github.com/tobyink/e733f839cecc0dd193a6>
    • Unify _USE_XS/_USE_MOUSE logic in Type::Tiny. (It was previously scattered across Types::Standard and various other modules.)

Documentation

an overview of Type::Tiny
adding coercions to type constraints
how to build a type library with Type::Tiny, Type::Library and Type::Utils
squeeze the most out of your CPU
coerce and validate arguments to functions and methods
Type::Tiny policies
how to use Type::Tiny and Type::Library with Moo
how to use Type::Tiny and Type::Library with Moose
how to use Type::Tiny and Type::Library with Mouse
how to use Type::Tiny and Type::Library with other OO frameworks

Modules

shims to allow Type::Tiny to run on Perl 5.6.x
shims to allow Type::Tiny to run on Perl 5.8.x
exceptions for Type::Tiny and friends
exception when a value fails a type constraint
exception for Eval::TypeTiny
exception for Type::Params
utility to evaluate a string of Perl code in a clean environment
improved type constraint exceptions in Reply
useful functions for testing the efficacy of type constraints
a set of coercions to a particular target type constraint
a set of coercions borrowed from Moose
a set of coercions to a union type constraint
tiny, yet Moo(se)-compatible type libraries
Params::Validate-like parameter validation using Type::Tiny type constraints and coercions
parse type constraint strings
a glorified hashref for looking up type constraints
tiny, yet Moo(se)-compatible type constraint
type constraints based on the "isa" method
type constraints based on the "can" method
string enum type constraints
intersection type constraints
type constraints based on the "DOES" method
union type constraints
half-completed overloaded operation
utility functions to make defining and using type constraints a little easier
drop-in replacement for MooseX::Types::Common::Numeric
drop-in replacement for MooseX::Types::Common::String
bundled set of built-in types for Type::Tiny
internals for the Types::Standard ArrayRef type constraint
internals for the Types::Standard Dict type constraint
internals for the Types::Standard HashRef type constraint
internals for the Types::Standard Map type constraint
internals for the Types::Standard ScalarRef type constraint
internals for the Types::Standard Tuple type constraint
type constraints used internally by Type::Tiny